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

