Riverblade Limited

Visual Lint - Version History



Overview   Features   Downloads   FAQ   Version History   Product Brief (PDF)  |  LintProject |  ResOrg     

Version History


Version 1.5.10.83 (6th May, 2008)

  • Added update checking, via an Installaware scheduled task. Note that the product update check is scheduled from a checkbox on the completion page rather than the InstallAware default of on the next login. Start menu entries for manually defining the update schedule and manually checking for updates have also been added.
     
  • Improved the prompt shown by the Configuration Wizard when the PC-Lint installation folder cannot be located.
     
  • If a background analysis task causes a manual analysis task to abort, the manual analysis dialog will now be closed.
     
  • Corrected a validation bug in the Configuration Wizard [IMS ID 261].
     
  • Replaced std::sort with std::stable_sort to ensure deterministic secondary sort ordering in the Analysis Status and Results Displays.
     
  • If an ATL exception occurs during the solution/workspace loading process, a message box will no longer be shown - the warning will instead be logged to the status window.
     
  • Inherited property sheet (.vsprops) file specifications of the form ".\FolderName" are now parsed correctly (applicable to VS2002, VS2003, VS2005 and VS2008 IDEs).
     
  • Preprocessor directives defined within inherited property sheet (.vsprops) files are now included within the returned project configuration (applicable to VS2002, VS2003, VS2005 and VS2008 IDEs).
     
  • Corrected the ordering of additional include folder specifications inherited from a .vsprops file.
     
  • When a lint issue is double clicked on in the Analysis Results Display under Visual C++ 6.0 or eMbedded Visual C++, the selected line is now more appropriately positioned within the code editior.
     
  • ".\" additional include paths are no longer filtered out when project.lnt files are written.
     
  • If the "LINT" environment variable is set, Visual Lint will now issue a warning in the status window and clear it within the process (this change is necessary to prevent the injected command line parameters causing analysis failures. If required, the same effect can be achieved via the "Custom Analysis Options" control on the "Command Line" options page).
     
  • Corrected a bug in the Analysis Results Display which was preventing the "Go to Reference" command from working if the selected item was the first item in the display.
     

Version 1.5.9.79 (27th February, 2008)

  • Added (at customer request) support for additional includes within inherited property sheets (.vsprops files) under VS2002/VS2003/VS2005/VS2008.
     
  • Improved diagnostics when loading Intel C++ compiler (.icproj) projects under VS2002, VS2003, VS2005 and VS2008. This is necessary as some versions of the compiler suite have significant flaws in their integration of the compiler into the Visual Studio automation model which affect their compatibility with Visual Lint.
     
  • The "Projects" Analysis Configuration page now handles solution folders correctly.
     
  • Fixed a crash in the Analysis Results Display.
     
  • Visual C++ 6.0 project (.dsp) files containing only one project configuration are now parsed correctly.
     
  • Fixed a bug which could cause project analysis comand lines to be incorrectly generated if the project.lnt file failed to generate.
     
  • Corrected a bug in the parsing of intermediate file folders within Visual C++ projects.
     
  • Fatal errors during whole project analysis should now be reported correctly.
     
  • Fixed several potential resource leaks.
     
  • regsvr32.exe is now used for registering VisualLint.dll by the installer instead of RegisterDll.exe, which is now only provided for diagnostic purposes on Windows Vista.
     
  • Corrected a bug in the handling of upgrade keys.
     
  • Corrected minor bugs in the installer build.
     

Version 1.5.8.77 (17th December, 2007)

  • Updated the project to build under Visual Studio 2008 rather than Visual Studio .NET 2003. In consequence, the runtime library files packaged within the Installer are now those for Visual C++ 9.0 rather than 7.1.
     
  • Added a workaround for a bug in the VS2008 RTM implementation of the VCProjectEngineLibrary::VCConfiguration Visual C++ automation interface.
     
  • The "icon" control in the Lint Category Properties dialog now paints high-colour icons correctly.
     
  • Updated the readme file and Getting Started Guide packaged within the installer.
     
  • Filenames containing spaces will now be enclosed in quotes when written to project.lnt files.
     
  • Escaped quotes (""") found in additional include folder definitions within VS.NET project files will now be correctly converted back to nonescaped quotes before writing to the corresponding project.lnt file.
     
  • Corrected a bug in the project.lnt file writer which was causing the length of quoted relative pathnames containing spaces to be incorrectly reported and thus truncated when written to the file.
     
  • Fixed a bug in the resolution of relative include paths within project.lnt files.
     
  • Fixed a crash in the third party colour picker control used in the Category Properties Dialog.
     
  • Reduced the size of the icon shown in balloon tips from 32x32 to 24x24.
     
  • The Riverblade logo in the About Box now has a transparent background.
     
  • Added a "Go to Reference" command to the context menu in the Analysis Results Display. Activating the command opens a submenu containing the locations specified in any following informational messages 830 and 831 ("Reference/Location cited in prior message).
     
  • Improved the method used to check for the existance of preprocessor definitions in the project.lnt file writer so it will not incorrectly identify _AFX_DLL as being defined when a symbol containing it as a substring (for example "_HYPER_AFX_DLL") is found.
     
  • Fixed a case dependency issue in the checking of project types.
     
  • If runtime type information (RTTI) is enabled in a project configuration (/GR compiler switch), the _CPPRTTI macro is now automatically defined in the corresponding project.lnt file.
     
  • If native wchar_t types are enabled in a project configuration (/ZC:wchar_t compiler switch), the _NATIVE_WCHAR_T_DEFINED macro is now automatically defined in the corresponding project.lnt file.
     
  • Improved the handling of per file configuration properties. In particular, file specific preprocessor directives will now be correctly used during whole project analysis under VS2002 onwards.
     
  • Corrected a bug which was preventing "ItemPropertyChange" events from being recognised under VS2005.
     
  • When the "excluded from build" property of a file is changed (VS2002 onwards) the new state is now written to the solution options file. This ensures that the status is persisted when the solution is reloaded.
     
  • Improved support for per file preprocessor symbols during single file ("unit checkout") analysis when hosted in VS2002 and later versions.
     
  • Files which are excluded from background analysis are longer automatically re-analysed when saved.
     
  • Corrected a bug in the parsing of whole project analysis results.
     
  • Fixed a potential deadlock when the "Delete Analysis Results" command is activated during whole project analysis.
     
  • The Analysis Results Display now checks to see whether the analysis results have changed before reloading its contents.
     
  • The default value of the "Auto-show the Analysis Results Display when analysis results are available" option is now off, as the Visual Studio EnvDTE::Window::Activate() automation interface command used to implement this functionality can cause problems with the Visual Studio editor.
     
  • Fixed a bug which could prevent project.lnt files being written correctly if one or more projects was unloaded.
     
  • If the active platform is a non-C++ platform such as "Any CPU" the Configuration Wizard will now ignore it when determining which platforms to display in the "Includes" page.
     

Version 1.5.7.74 (29th August, 2007)

  • Whole project analysis now handles multipass analysis correctly.
     
  • Most options are stored on a per-IDE version basis where appropriate, rather than being common to all supported IDEs [IMS ID 146].
     
  • The analysis configuration is now automatically reloaded when the active platform is changed in Visual Studio 2005.
     
  • Project.lnt files are now uniquely named for IDE, configuration and platform. This ensures that .lnt files for the same configuration but different platforms in the same project do not conflict.
     
  • Visual Lint will now attempt to expand internal platform based environment variables where possible. This is primarily an issue with embedded projects (notably for Smartphone and Pocket PC platforms).
     
  • If an unexpected (and undefined) environment variable is encountered within a project during the process of writing a project.lnt file, Visual Lint now refers to an XML configuration file in order to expand the variable. A default file (Platforms.xml) is installed by default into the Visual Lint installation folder. Note that this issue primarily affects eVC4 and VS2005 installations used for embedded and mobile development.
     
  • When a file with up to date analysis results is saved while the IDE is in Build or Debug mode its status is now correctly set to "Stale".
     
  • Corrected a bug which was causing the Analysis Results Display to be cleared when a window was closed in Visual Lint Free Edition.
     
  • Analysis results files are no longer parsed when a solution is loaded under Visual Lint Free Edition.
     
  • Added a "Project" control to the Analysis Results Display. This allows for easier viewing of the analysis results for files which are physically shared between projects. In consequence, selecting a new project for a shared file in the Analysis Results Display will now cause the Project/selected File in the Analysis Status Display to automatically update if "Auto select project" is active.
     
  • Clicking on the white space to the right of the item label in the first column of the Analysis Status Display no longer incorrectly toggles the analysis state of the project or file. Note that this behaviour was due to a bug in the common control itself; this change simply implements a workaround for the incorrect behaviour.
     
  • Modifications to reduce flicker in the Analysis Status and Results Displays. Effective when running under ComCtl32 v6 or later (i.e. VS2005 or later on XP, 2003 or Vista).
     
  • Added (at customer request) an option to filter out duplicated issues from the Analysis Status and Results Displays.
     
  • The Manual Analysis Dialog and Options Property Sheet now have persistant positioning within a given session.
     
  • The progress bar within the Manual Analysis Dialog is now displayed correctly on completion when running under Windows Vista.
     
  • When the Configuration Wizard is used to create new lint configuration (.lnt) files appropriate default filenames (e.g. std_vs60.lnt) are now supplied.
     
  • Minor improvements to the Configuration Wizard "Select Folder" page.
     
  • The analysis results parser no longer requires a completion line such as "error 900: (Note -- Successful completion, nnn messages produced)". This prevents the status of files being marked as "Incomplete" if PC-Lint forgot to include the completion message.
     
  • Corrected a bug in the analysis results parser which caused it to fail if a pathname in the raw analysis results contains an opening bracket. Also added a test case for such results containing such pathnames to the corresponding unit tests [IMS ID 257].
     
  • "Analysis of this file is currently in progress" messages in the raw analysis results displays are now suffixed with the analysis results collected so far.
     
  • Raw Analysis Results are now displayed using the correct "Output Window" font settings when running under Visual Studio 6.0 or eMbedded Visual C++ 4.0.
     
  • If a std.lnt file is generated by Visual Lint, subsequent updates (either via the Configuration Wizard or when the include configuration changes) will identify the version of Visual Lint which performed the update.
     
  • If Visual Lint is running under Visual Studio 9.0, the host IDE is now reported as "Visual Studio 2008" in the Visual Lint Status pane of the Output Window rather than "Visual Studio codename Orcas" .
     
  • Corrected a bug in the storage of report options.
     
  • Fixed a potential bottleneck in the processing of options changes.
     
  • Revised the DSSharedObjects::IApplicationEvents event sink implementation for better compatibility with eMbedded Visual C++ 4.0.
     
  • Moved the "Indirect File Order" option from the "Command Line" options page to the "Analysis" options page, and added interlocks to make it obvious that the "Project, then global options" option is only applicable to single file analysis.
     
  • If the selected project in the Solution Explorer (VS2002 onwards only) is not a C/C++ project, the "Lint Configuration" command is no longer shown on its context menu.
     
  • Fixed a case sensitivity issue in the project file parser.
     
  • Optimised memory usage during whole project analysis.
     
  • File status within the Analysis Results Display is now correctly set to "Complete" when the manual analysis of a file completes in Visual Lint Free Edition.
     
  • Corrected a bug in the storage of historical solution result metrics.
     
  • Made a minor tweak to the default std.lnt filenames in the Configuration Wizard.
     
  • Corrected a bug in the Visual Studio 6.0 project file parser which caused preprocessor definitions of the form "/D _SYMBOL=Value" to fail to parse correctly.
     
  • Replaced the "Analysis Underway" icon with a less fuzzy alternative [IMS ID 238].
     
  • The "Readme" page now preceeds the "Licence Agreement" page in the installer (they were the opposite way around previously).
     

Version 1.5.6.70 (26th June, 2007)

  • Fixed a bug which was preventing the Analysis Results Display from updating if the corresponding file was not the active document [IMS ID 245].
     
  • When the "pin" in the Analysis Results Display is deactivated, the display will now re-synchronise with the active file.
     
  • The Analysis Results Display no longer clears when the corresponding file is closed if the "pin" is active.
     
  • Added support to Visual Lint Professional Edition for per-file Preprocessor Definitions and Additional Include Folders. Note that as PC-Lint does not provide a way to override the settings in a .lnt file the properties added are in addition to those defined in the corresponding project specific .lnt file. As a result, these properties are used only in single file (unit checkout) analysis and the Visual Studio $(NoInherit) property cannot be supported.
     
  • Minor corrections to the analysis results parser to handle malformed issues such as:
          -- Module:   d:\Projects\magellan\main\code\magellan\MgAIAction.cpp
          (C++)
          #include "co-msc80.h" /* generated from -header(co-msc80.h) */
          d:\Projects\magellan\main\code\magellan\MgAIAction.cpp(0): error 322:
          (Error -- Unable to open include file 'co-msc80.h')
    
  • Desensitised the analysis results parser to repeated backslashes ('\\') in pathnames.
     
  • Fixed a bug which was preventing the background analysis status from being set correctly when the add-in was loaded.
     
  • Fixed a bug which could cause projects to be incorrectly excluded from analysis when running with a Standard Edition licence.
     
  • The Analysis Results Display now updates appropriately as each project within the solution loads (previously, it did not load until the solution load completed).
     
  • The Analysis Results Display is now cleared when a workspace is closed under Visual Studio 6.0 or eMbedded Visual C++ 4.0.
     
  • Temporary analysis files (.tmp) are now deleted from project analysis results folders when a solution is loaded or the active solution configuration is changed.
     
  • The Manual Analysis Dialog now uses a marquee progress bar when running on Windows Vista or later.
     
  • The "View Results" button in the Manual Analysis Dialog now forces the correct results to be shown in the Analysis Results Display.
     

Version 1.5.5.69 (12th May, 2007)

  • Added support for Visual Studio 9.0 (codename "Orcas") Beta 1.
     
  • Individual files can now be manually excluded from background analysis in Visual Lint Professional Edition (this feature works in much the same way as the current project level feature). As part of this change, a "Background Lint Analysis" command has been added to the context menu for C/C++ implementation files in the VS2002/VS2003/VS2005 Solution Explorer.
     
  • Project analysis now takes into account whether files are excluded from analysis, provided Visual Lint is configured to write project specific .lnt files directly.
     
  • If a custom report stylesheet cannot be found, Visual Lint will now issue a warning (via the Lint Analysis Status pane in the Output Window) and use the default one instead.
     
  • Corrected the text in the message database for issue 960 (MISRA Rule Violation).
     
  • Added (at customer request) an option to the "Displays" options page to allow the progress control in the Manual Analysis Dialog to be hidden if desired.
     
  • Added (at customer request) a "View Results" button to the Manual Analysis Dialog.
     
  • The "Show display colours" option in the "Categories" option page is now persistant.
     
  • Fixed a bug in the options code which could cause the "IndirectFileOrder" option to be saved incorrectly.
     
  • Fixed a bug which could cause relative pathnames in solution options files to be resolved incorrectly.
     
  • Corrected a bug in the "Report" Options page which could cause the pathnames of custom solution and project stylesheets to be saved incorrectly.
     
  • The project.lnt file writer no longer attempts to resolve relative pathnames enclosed in quotes. This ensures that filenames such as "..\Folder1\Folder2" are not incorrectly expanded to fully qualified pathnames.
     
  • Project.lnt files are now written with correct Windows line endings (CR + LF as opposed to just LF).
     
  • Desensitised Visual Lint to consequtive backslashes in global include folder specifications (this is a workaround for a VS Orcas Beta 1 bug) and in project additional include folder specifications (where they can cause the folder paths to be resolved incorrectly). Also converted forward slashes to backslashes before writing project specific includes to a .lnt file.
     
  • If a whole project analysis aborts due to a fatal analysis error, the status of individual files within the project is now set correctly.
     
  • Fixed two potential divide by zero errors.
     
  • Corrected a bug in the import of custom categories.
     

Version 1.5.4.67 (31st March, 2007)

  • Integrated a new installer built using InstallAware Studio (we previously used the installation builder supplied with Visual Studio, but we have outgrown its capabilities). This installer also addresses compatibility issues with Windows Vista.
     
  • Modified elements of the user interface for consistancy with Windows Vista. As part of this task most commonly seen message box prompts have been replaced with Vista style Task Dialogs, and the appearance and layout of the Manual Analysis Dialog, Registration Dialog and About Box have had been improved. In addition, all File Dialogs displayed by Visual Lint when running under Windows Vista are now the new style ones rather than the old style Windows 2000 ones displayed under Vista for legacy applications.
     
  • Project.lnt files are now by default written directly by Visual Lint rather than by PC-Lint. This avoids problems with MFC projects and the definitions of _AFXDLL and /MD[d] in MFC projects.
     
  • Added an option to the "Command Line" page to determine whether std.lnt or the project.lnt file should be located first on the command line. This can be important when files of the same name as SDK include files are referenced through project additional includes.
     
  • When a file is saved, any analysis tasks currently running on that file are now aborted to avoid parallel re-analysis tasks on the same file. Note that under VS2005, such analysis tasks are stopped prior to the file save being executed to avoid problems with file locking [IMS ID 141].
     
  • Added limited support (VS2002/VS2003) for Intel C++ compiler 9.1 (.icproj) projects. (see http://www.intel.com/cd/software/products/asmo-na/eng/compilers/279578.htm).

    Note that VS2005 cannot be supported in this way as EnvDTE::Project::GetObject() returns E_NOTIMPL for Intel compiler projects under VS2005. As this is a prerequisite for access to the entire Visual C++ automation model, we cannot support the Intel compiler under VS2005 until this deficiency is rectified. Note also that Under VS2002 and VS2003 minor deficiencies in Intel's implementation of the Visual C++ automation interfaces (specifically the non-implementation of VCProject::GetConfigurations and GetVCProjectEngine) any project environment variables in the Additional Include Folders and Preprocessor Definitions properties within an Intel compiler project cannot currently be expanded.
     
  • When a solution containing a single project is loaded, the Analysis Status Display will automatically show the contents of that project when loading completes, rather than leaving "All Projects" selected.
     
  • Clicking on the column in the Analysis Status Display containing a count of the total issues in a category now sets the category filter in the Analysis Results Display to that category.
     
  • Corrected a bug in the resolution of relative pathnames while activating items in the Analysis Results Display.
     
  • Added a "Lookup Meaning" command to the context menu of the Analysis Results Display. When activated, this will display details of the selected issue in the Lint Message Lookup Display, making the Display visible if required.
     
  • Disabled or hid a number of irrelevant controls under VS6/eVC4.
     
  • Improved lockouts which prevent toolwindows being docked when the Visual Assist "VA View" is active under Visual Studio 6.0 or eMbedded Visual C++ 4.0.
     
  • Files which are excluded from build (currently supported under VS2002 onwards) are no longer used when calculating analysis progress metrics [IMS ID 247].
     
  • Added a "Close this dialog when analysis completes" checkbox to the Manual Analysis Dialog. at customer request. Also corrected the calculation of the content string extent to avoid unwanted text wrapping.
     
  • Visual Lint now checks the include configuration in std.lnt against that defined in the IDE when a workspace is loaded under Visual C++ 6.0 or eMbedded Visual C++ 4.0 (comparable checks for later IDEs are already present).
     
  • Added a "Do not ask me again" checkbox to the include folder mismatch prompt displayed when a discrepency between the contents of std.lnt and the current include folder configuration is detected. When activated, the "Automatically update the lint include configuration when the Visual Studio include folder configuration is changed" option is deactivated [IMS ID 251].
     
  • If the Visual Studio 6.0/eMbedded Visual C++ 4.0 add-in determines that its VSPackage is missing (which can happen if a legacy version of Visual Studio is installed after Visual Lint) it will attempt to deploy it to the correct folder (note that this is likely to fail under Windows Vista due to UAC, so additional work is necessary on this platform).
     
  • Fixed a bug which was preventing some custom solution/project analysis options from being loaded correctly.
     
  • Added a horizontal scrollbar to the "Include Folders" control in the Configuration Wizard.
     
  • Added ".cc" to the list of supported C++ file extensions.
     
  • Corrected a potential buffer overflow in the project file parser.
     
  • Minor corrections to the way Additional Include Folders are resolved.
     
  • Corrected calls to PathResolve() to ensure that the correct drive is used when resolving paths of the form "\folder1\folder2" while generating project specific .lnt files.
     
  • When a file is manually analysed, the corresponding command line is now displayed in the "Visual Lint Status" pane of the Output Window (this already during background analysis).
     
  • Added functionality to allow Visual Lint to perform analysis with only a std.lnt file (i.e. without an options.lnt file) at customer request.
     
  • Fixed an assert in the project file parsing code, which fired if the parser found environment variables it could not resolve (but did not necessarily need to - the project.lnt file writer should handle such cases) [IMS ID 250].
     
  • Fixed a minor bug in the Visual Studio service pack reading code which was causing it to fail when run under a limited user account.
     
  • Updated the copyright notice in the Visual Studio About Box (applies to VS2002 onwards).
     
  • Minor updates to the Readme and Licence text displayed by the installer.
     

Version 1.5.3.63 (1st February, 2007)

  • Improved diagnostics while loading projects, in order to track down a solution load failure in VS6.
     
  • IApplication (Visual Studio 6.0 automation) pointers are now marshalled correctly between threads. This change is precautionary.
     
  • PathResolve() is no longer called when writing additional includes to a .lnt file if the includes are relative. This change prevents fully qualified relative paths from being resolved incorrectly.
     
  • Added support for Embedded Visual C++ 4.0 [IMS ID 181].
     
  • Fixed a bug in the Analysis Status Display which caused the included/excluded from analysis status of a project to be incorrectly toggled when text in a column other than the first was clicked.
     
  • Fixed a bug in the Analysis Status Display which could cause the status of a project to fail to update as analysis proceeded.
     
  • Where possible the Visual Studio service pack is now identified in the status pane on startup, and in the subject of emails sent from the About Box.
     
  • Updated copyright notices from "Copyright (c) 2004-2006" to "Copyright (c) 2004-2007".
     

Version 1.5.2.62 (9th January, 2007)

  • Added an "Internal Errors" category to differentiate Internal PC-Lint Errors (messages 200-299 and 1200-1299). If the analysis results parser cannot parse a message, it will also use this category.
     
  • When a category is edited, the ordering of the categories within the "Categories" options page is now defined automatically by severity. In consequence, the "Move Up" and "Move Down" buttons have been removed.
     
  • Project.lnt files can now be generated directly by Visual Lint when hosted under Visual Studio 6.0 (this option was previously only available in VS2002 onwards). Any shell environment variables found within the files or additional include folders sections of a Visual Studio 6.0 project (.dsp) file will now be expanded correctly.
     
  • Improved handling of relative paths within Visual Studio 6.0 projects.
     
  • Fixed a minor bug in the Analysis Results Display which could cause an erroneous "Invalid Pointer" error message if a file could not be opened [IMS ID 241].
     
  • The Analysis Status and Results Displays now check that pathnames are valid before attempting to open the corresponding file [IMS ID 241].
     
  • When a file completes analysis, the Analysis Status Display no longer re-sorts if the current sort column is "Filename".
     
  • Fixed a bug in the generation of project lint analysis command lines which could cause analysis to fail under some circumstances.
     
  • Links in HTML reports are now generated using forward slashes rather than backslashes for compatibility with Apache [IMS ID 240].
     
  • Corrected the default sort order in the project analysis report template.
     
  • Added PC-Lint 8.00v error 1085 (Invalid definition of 'String') to the message database.
     

Version 1.5.1.61 (20th November, 2006)

  • Fixed a bug in the generation of PC-Lint command lines which was preventing Visual Lint from using the PC-Lint executable if it was located in a folder path containing one or more spaces.
     
  • Fixed minor bugs which were preventing solution/project warning policy files from being configured unless a corresponding solution/project lint configuration file was also defined [IMS ID 234].
     
  • Corrected the default value for the "Warning Policy Usage" control on the "Project" Options page.
     
  • The "Project specific custom analysis options" control on the "Project" Options page is now enabled/disabled appropriately.
     
  • Resetting the solution or project lint configuration now enables/disables all controls appropriately.
     
  • Fixed a potential crash when a file was removed from a project.
     
  • When a new category is added, defaults for the "Plural Name" and "XML Element" fields are now automatically filled in from the category name.
     
  • Corrected the operation of the "Back" button in the Analysis Status Display [IMS ID 216].
     
  • Changed the colour of the "Back" button in the Analysis Status Display from green to blue, to reflect emerging Windows conventions (Vista/Media Player 11).
     
  • Fixed a minor bug in the validation of fields in the Lint Issue Categories Dialog.
     
  • The "Pin" button in the Analysis Results Display is now hidden in Visual Lint Free Edition, as it only works in Standard Edition and above.
     
  • Widened the initial width of the "Category Name" column in the Analysis Results Display slightly so the built-in category "Elective Note" is not truncated.
     

Version 1.5.0.60 (12th November, 2006)

  • Added support for Visual Studio 6.0.
     
  • Added support for Visual Lint Professional Edition licence keys and the corresponding features (whole project analysis, inclusion/exclusion of selected projects, customisable HTML report stylesheets, custom categories and per solution/project lint configurations).
     
  • The "All Projects" option in the Analysis Status Display now displays status information for complete projects rather than individual files. The new "All Files" option now performs the same function as "All Projects" did previously [IMS ID 182].
     
  • Fatal errors are now displayed in white text on a red background in both the Analysis Status and Results Displays. Note that in the Status Display, a file containing one or more Fatal Errors would previously have been displayed in gray if the analysis did not complete. This has now been corrected.
     
  • The Analysis Status Display now sorts the display after a project is updated. This ensures that the display remains correctly sorted during project loading.
     
  • The Analysis Results and Status Display now display pathnames using ellipses to fit the available space.
     
  • Changed the colour used for Elective Notes to one which does not conflict with the colours used to indication project and file status in the Analysis Status Display. Also changed the colour for Informational messages as a result.
     
  • The Analysis Status Display now preloads the display of projects while the solution is loaded. Projects which have not yet been loaded by Visual Lint display with the status "Loading" and are displayed in grey.
     
  • The Analysis Status Display no longer resets the selected project or fully refreshes as the solution is loaded. All updates are now incremental, and the current selection is preserved.
     
  • Revised the colours used in the Analysis Status Display and added icons. Also rationalised the code to decide what colour display elements should be in preparation for making it customisable.
     
  • Files containing fatal errors are now displayed within the Analysis Status Display in white text on a red background in order to draw attention to them.
     
  • The Analysis Results Display now has the capability to display raw analysis results directly. This feature is intended to replace the existing "Lint Analysis Results" pane within the Output Window (although that will still be optionally available in VS2002 onwards) and extends the capability to easily view raw analysis results to developers running Visual Lint within Visual Studio 6.0.

    In consequence, the "Preferred window for analysis results" option has been removed, and an option added to determine whether raw analysis results should be echoed to the Output Window as well as the Analysis Results Display. By default, this option is enabled.
     
  • Added a "pin file" button to the Analysis Results Display. When activated, this control will pin the current file within the display, preventing its contents from being replaced when the active file changes.
     
  • Prevented the Analysis Results Display from being unnecessarily refreshed when an implementation file was activated after its corresponding header file.
     
  • If a header file is the active file in the IDE and the corresponding implementation file is being analysed, the Analysis Results Display is now updated accordingly.
     
  • When a lint issue in the Analysis Results Display is double clicked, the line the issue relates to is vertically centred in the code editor. Note that this change has been made for VS2002 onwards - the behaviour under VS 6.0 is unchanged at present since it does not expose the necessary interfaces.
     
  • When an issue is double clicked on in the Analysis Results Display, the selection is extended by one character to ensure that long lines are not scrolled to the extreme right in the code editor.
     
  • Added an icon to the Analysis Results Display to indicate the status of the analysed file.
     
  • Many other minor changes, bug fixes and improvements.
     

Version 1.0.5.48 (31st May, 2006)

  • Modified the balloon tip component used by Visual Lint to display notifications when a solution analysis completes etc. for compatibility with Hardware DEP (Data Execution Prevention) enabled systems.
     
  • Increased the duration of the tooltip from 5s (the default) to 30s.
     
  • When a message is double clicked on in the Analysis Results Display, the selection is extended by one character to ensure that long lines are not scrolled to the extreme right in the code editor.
     
  • Further improvements to the Analysis Results parser (to handle messages such as "Error 314: Previously used .lnt file: C:\Lint\options.lnt").
     
  • The command line used during each analysis task is now displayed in the Visual Lint Status pane of the Output Window.
     

Version 1.0.4.46 (18th April, 2006)

  • Added support for VS2005 solution folders.
     
  • When a lint issue in the Analysis Results Display is double clicked, the line the issue relates to is now centred in the code editor
     
  • The analysis results parser now copes better with lint messages which are not in the expected format. This is most likely to happen with some fatal error messages or those generated during a specific walk
     
  • Guarded against window object retrieval failures while activating files in the Analysis Results Display. This change is precautionary.
     
  • CAddInEventManager::Opened() now reports via the Status Window if an unexpected exception occurs. This change is precautionary.
     

Version 1.0.3.45 (4th March, 2006)

  • Changed the terminology used to describe collections of lint results from "Messages" to "Issues".
     
  • When analysis of a solution has completed, the change in issues from the previous analysis is now displayed. Also fixed a minor bug in the code used to determine when the analysis of a solution has completed.
     
  • The sort column and order in the Analysis Status and Results Displays are now persistant.
     
  • The Analysis Results Display now shows the status and total issue count of the file [IMS ID 135].
     
  • Analysis results are now written to temporary files first. This reduces the possibility of a sharing violation while accessing the results files.
     
  • The Analysis Results Display no longer refreshes when the currently displayed file is re-activated.
     
  • Modified the Visual C++ "ItemAdded" and "ItemRemoved" event handlers for VS2005 compatibility.
     
  • If a configuration file is read only the Configuration Wizard now prompts to ask whether it should be overwritten [IMS ID 56].
     
  • When the analysis of a file completes, the raw analysis results are now read directly from a cached copy within the thread task rather than from the file on disk. This is not only faster but eliminates any possibility of a sharing violation while reading the file.
     
  • The Analysis Results Display and Status Display now use virtual list controls (i.e. with the LVS_OWNERDATA style). As a result, they can now handle larger solutions and sets of results more efficiently than previously.
     
  • Analysis results for open files are now cached to optimise speed and memory useage.
     
  • Optimised the way raw analysis results are written to the Lint Analysis Results pane of the output window.
     
  • Improved the way analyis failures are handled. Instead of a message box, the file for which analysis failed is highlighted in the Analysis Status Display, and details of the failure (including the command line used) are shown in the Lint Analysis Results pane of the Output Window.
     
  • Solution Pathnames are now read from a helper function which uses the Solution.Properties.Item("Path") property rather than Solution.FullName. This allows the add-in to better handle direct loading of projects rather than solutions (the "Path" property is set under these circumstances; Solution.FullName is not).
     
  • COM event sinks are now version independent, for compatibility with VSTS editions of Visual Studio 2005 [IMS ID 161].
     
  • Visual Lint is now compatible with PC-Lint 7.50. As PC-Lint 7.50 cannot parse .vcproj files, Visual Lint now checks the version of PC-Lint before asking it to generate project specific .lnt files. If the version is prior to 8.00, Visual Lint writes the file directly instead [IMS ID 162].
     
  • For support purposes, details of the version and edition of Visual Studio and PC-Lint in use are now recorded in the Status Window when the add-in is loaded, and in the subject of emails sent from the About Box.
     
  • HTML Reports are no longer automatically written automatically unless the corresponding option is active. Also added some additional diagnostics to help troubleshoot HTML report transformation failures, and regenerated the project report template - which seemed to be most likely to fail [IMS IDs 159 and 160].
     
  • Pathnames are no longer directly compared. Instead, a helper function is used for safety.
     

Version 1.0.2.43 (18th January, 2006)

  • A DTE interface pointer obtained from the COM Global Interface Table (GIT) is now used while loading solutions. This avoids potential problems caused by marshalling of COM interfaces which can occur when running under VS2005. In order to allow threads using the GIT to operate correctly, worker threads within the add-in are now implemented as multithreaded appartments [IMS ID 152].
     
  • The "BeforeExecute" command event handler no longer pauses analysis if the "Active Configuration" property is about to change, as under some circumstances VS2005 RTM will source this event regularly even though the configuration is not changing. In such cases this could cause the solution analysis state to unilaterally switch back to "Paused" when the user presses "Play" [IMS ID 152].
     
  • The code used to read the intermediate files folder for a Visual C++ project has been modified for compatibility with GIT marshalled COM interfaces - which do not support backward compatible VCProjectEngineLibrary interfaces. This is a direct consequence of the changes made to address IMS ID 152.
     
  • Changed the method of reading include folder configurations in order to improve compatibility with VS2005. The required VCPlatform interface is now obtained directly from VCProjectEngine, which itself can be obtained from the properties collection maintained by VCProjects. The same method also works with VS2002 and VS2003, so it has been adopted for all platforms [IMS ID 100].
    Note that of the platforms supported by VS2005 (Win32, x64, Pocket PC 2003 and Smartphone 2003) the wizard currently only supports the Win32 platform - this will be expanded in a subsequent release to include the other available platforms [see IMS ID 156 for details].
     
  • When running under VS2005 the include folder and active configuration are not checked periodically as they are under VS2002/2003. Not only is it unnecessary with VS2005 (which does not have the command event bug which makes it necessary for VS2002/2003) but doing so can cause instability in the VS2005 IDE.
     
  • The eAction parameter received by the "BuildBegin" event handler is now cached, as under VS2005 the companion "BuildDone" event can receive an invalid value. This caused Visual Lint to fail to restart analysis after a Rebuild All (but not Build, which works correctly).
     
  • The VCProjectEngineLibrary::_dispVCProjectEngineEvents "ItemPropertyChange" event has an additional parameter in VS2005. Visual Lint now handles this event correctly, irrespective of whether the add-in is running under VS2002, VS2003 or VS2005.
     
  • Fixed an intermittent crash when a solution is closed or a message in the Analysis Results Display is activated while the display is being updated [IMS ID 153].
     
  • Analysis results now appear correctly when a source file is analysed while no solution is open.
     
  • The "Show Display" commands now reset the position of a floating toolwindow if its size is far too small (this can happen from time to time due to a bug in Visual Studio itself). This provides an easier way of recovering a "lost" toolwindow than resetting the IDE's window layout.
     
  • When the add-in is being uninstalled the user is now prompted as to whether it should attempt to remove its commands and warns that this could affect IDE customisations (at least under VS2005) [IMS ID 154].
     
  • The parent window of uninstallation prompts and the progress dialog is now set correctly.
     
  • Error messages returned while writing HTML reports are now written to the Status Display for diagnostic purposes.
     
  • When the add-in is being uninstalled instances of Visual Studio it launches to remove its commands are now configured not to load any add-ins. This prevents any unexpected UI from being shown by other add-ins during this process [IMS ID 109].
     
  • Three +linebuf parameters are now injected into the generated command line to reduce the likelyhood of a buffer overflow in PC-Lint during analysis [IMS ID 149].
     
  • The way unloaded projects are handled has been improved. In particular, they are now identified by name when the solution is loaded (the name is accessible, the pathname is not!) and removing an unloaded project from the solution no longer results in an uncaught exception [IMS IDs 150 and 148 respectively].
     
  • Guarded the solution "BeforeClosing" event handler against calls when no solution is open (this can happen during project conversion, for example) [IMS ID 142].
     
  • The active configuration and include folder configurationare no longer checked while if no solution is open. This prevents problems during project conversion in VS2005 [IMS ID 142].
     
  • Removed unnecessary status window activation calls.
     
  • Updated the PC-Lint message database to PC-Lint 8.00t. Also improved the formatting of messages containing code samples.
     

Version 1.0.1.41 (19th December, 2005)

  • Added an "Order" column to the Analysis Results Displays so it can be sorted by the order messages are generated by PC-Lint. This assists in interpreting messages such as 830 ("Location cited in prior message") which relate to the preceeding message.
     
  • Corrected the icons used in the Analysis Results Display.
     
  • Trailing backslashes are now stripped from the Intermediate File Folder configuration before it is used in a PC-Lint command line, as PC-Lint gets rather confused by them [IMS ID 144].
     
  • Lint messages which are not associated with a source file (e.g. Fatal Errors generated during the analysis process) are now parsed correctly.
  • Messages 200-399 are now correctly identified as Fatal Errors [IMS ID 144].
     
  • The Analysis Results Display no longer attempts to jump to the source line if the lint double clicked message is not associated with a source file [IMS ID 144].
     
  • Analysis results for the file displayed in the active window are now automatically displayed when the solution finishes loading [IMS ID 147].
     
  • When a file without analysis results is activated, the Lint Analysis Results pane of the Output Window is now cleared irrespective of whether the IDE is in Design or Debug mode.
     
  • Corrected the URL of the online store in the registration page/dialog.
     
  • Balloon tips are now only displayed if the host instance of Visual Studio is the foreground window [IMS ID 143].
     

Version 1.0.0.40 (29th November, 2005)

  • Initial public release
     
  •