Project Analyzer Detailed Version History 3.0.01 Official release New feature 1. Edit|Copy in the Hypertext window puts the procedure on the Clipboard Bug fixes 1. Another "Subscript out of range" at the end of analysis phase 1 2. Heading 3 works in RTF reports with MS Word 3. Maximum length of names (var, const, procedure) increased from 40 to 64 characters 2.9.12 Enhancements 1. Enhanced reports to printer 2. Printer setup dialog 3. RTF reports look better now. (Checked with MS Word and WordPad) The "RTF Editor is MS Word" option creates RTF optimized for MS Word, with Styles enabled => You can easily create a Table of Contents in Word with a couple of mouse clicks. Bug fixes 1. Saves Bold and Italic settings for printer font 2. Needless globals report works correctly 3. Dead procedures in Project Report reported correctly 4. Fixed a bug with "RTF Editor is MS Word" that caused Word to show error messages and start instead of editors associated with .txt and .wri 2.9.11 Bug fix 1. Fixed "An error occurred in showing procedures/Out of memory" at the end of phase 1/2 New feature 1. Ability to set printer font 2.9.10 Bug fixes 1. Fixed "This array is fixed or temporarily locked" 2. Counts While..Wend as a Nested Loop 3. Interprets procedure-level ReDim MyArray(MyFunc(123)) correctly 4. Understands As New Type 5. If MyTable is a module-level dynamic array, then ReDim Preserve MyTable(123) refers to that array 2.9.09 Bug fixes 1. Corrected a bug that caused references to MyClass.MyProcedure to be ignored if MyClass was a procedure-level variable 2. Now understands the difference between property Let/Set and Get better. MyClass.MyProp = MyClass.MyProp is interpreted correctly, but not with subscript: MyClass(1).MyProp = MyClass(1).MyProp 3. MyClass(1).MyProcedure is correctly found to be a call to MyProcedure in class module MyClass, even when subscripted. 4. References and assignment to class variables were pointing at wrong classes New debug feature: if an error occurs during analysis, may dump 4 files including debug info: errproc.lst, errgproc.lst, errpdecl.lst, errident.lst 2.9.08 New features 1. Print a call tree report in any expand/collapse state (from View|Call tree) 2. Understands the difference between variable assignment and reference 3. "Dead" variables and constants are those that are not referenced. So variables that are assigned to but never used show up as dead. 4. Hypertext window: Right click on a hyperlink brings up a popup menu with links to where the item is referenced or assigned to! 5. Vars & consts list: View references brings up a detailed reference & assignment list 6. Counts nested loops in a procedure (View|Nested loops) 7. VB 4.0: Shows project name and version at the bottom of a report Bug fixes 1. Shouldn't crash under Win NT 2. Understands the difference between Property Let and Get and Set, and sets hyperlinks correctly 3. Cyclomatic complexities now correct in Problem Report and Summary Report (increased by one) 4. Undestands ByRef, Optional and ParamArray parameters 2.9.07 Corrected many clever bugs that have cost many lives of "dead" procedures & variables. New feature: View cyclomatic complexities Now correctly interprets "Private/Global/Public Declare Function" "Private Type" is no more considered a variable named "Type" "Redim Preserve" is no more considered an array named "Preserve" Phase 2 is now faster Find procedure works in the main window Non-enhanced display output works in the 32-bit version Added 3 command line switches to help debugging the 32-bit version on Windows NT: /NOTMP32 Don't call GetTempFilename in KERNEL32.DLL /NOUSER32 Don't call USER32.DLL /NOSHELL32 Don't call SHELL32.DLL 2.9.06 Corrected stupid bugs that caused some variables & procedures to appear "dead": * Modules with only one procedure are now analyzed in Phase 2 too * Type characters $%!#@& are not part of a name: this means that myvar=2 is now correctly interpreted as a reference to myvar% 2.9.05 Corrected a stupid bug that caused all global variables to appear "dead" 2.9.04 Correctly parses indented declarations, like " Dim xyz" Corrected "Subscript out of range" at the end of phase 1/2 Remembers the position of each window Remembers the setting of "Dull gray windows" Added Collapse and Expand buttons to the call trees File details window shows if a variable/constant is dead or not New statistics at the bottom of the main window Notifies if a table has exceeded 32767 entries (16-bit version) May only happen with extremely large projects, never seen this. If you experience this, please let me know. In the 32-bit version this is not a problem Archiving in the 32-bit version handles filenames with characters >= Chr(128) correctly Procedure list on the main window now sorted in VB 4.0 too 2.9.03 Doesn't require PROJECT.DLL on the disk Won't crash on ReDim 2.9.02 Now 2 separate versions 1. 32-bit version works with VB 3.0 and 4.0 (all versions) 2. 16-bit version works with VB 3.0 and 4.0 (16-bit) Report|Needless globals report Most registered features now work in the shareware version provided you are analyzing a project with at most 10 basic files. Now correctly interprets words "Private" and "Public" Shows procedure attributes as comments FRX view detects Bitmaps, Icons, Metafiles and Cursors 2.9.01 Initial beta accepting VB 4.0 code Accepts Class Modules (.CLS files) [VB40] Hypertext shows local variables & constants, Hypertext shows class module references [VB40] Hypertext shows dead variables by overstriking Recent changes to v2.1: Formatted output on the screen & printer Hypertext jumps directly to variable/const declaration, even in the Vars/consts listbox