Version 2.5.4.136 (25th August, 2010)
- When a Visual C++ 2010 project (.vcxproj) file is parsed, the contents of each configuration are no longer read automatically. Instead, they are loaded on demand when the contents of the configuration is requested, which can significantly speed up the loading of complex projects [VS2010].
- Corrected the analysis results parser to strip leading and trailing whitespace from source file pathnames.
- Added support for the Visual C++ CL environment variable. Any compiler options contained in this variable will now be reflected in the contents of project indirect files [VS2002-VS2010].
- Added support for the Visual C++ INCLUDE environment variable. If Visual Studio is invoked with the /UseEnv option, the contents of this variable will be written by Visual Lint Enterprise Edition as -i directives to all new project indirect files. Note that for this to work correctly, a custom std.lnt file which does NOT specify the global include folder configuration must be used for the solution concerned [VS2002-VS2010] [Visual Lint Enterprise Edition].
- Added support for forced include project properties in Visual C++ 2002-2010 project (.vcproj and .vcxproj) files [VS2002-VS2010].
- Desensitised the Visual C++ project (.vcproj) file parser to doubled path delimiters in folder paths used to load inherited property sheet (.vsprops) files [VS2002-VS2008].
- The operating system version information written to the Status View now includes the name of the OS rather than just the OS version number.
- Fixed issues in the parsing of RuntimeLibrary properties within Visual C++ 2010 (.vcxproj) project files [VS2010].
- Revised the project loading sequence to avoid reading project files a second time to generate project indirect files. Note that this optimisation has an effect only when a new project indirect file needs to be written.
Version 2.5.3.134 (27th July, 2010)
- Added a workaround for a bug in Visual Studio 2010 RTM which prevents pages being reliably displayed in the IDE internal browser [VS2010].
- Fixed a potential crash in the parsing of Visual Studio 2010 C++ project (.vcxproj) files.
- Speeded up the parsing of Visual Studio 2010 C++ project (.vcxproj) files slightly. Note that further optimisation of the parsing of VS2010 projects should follow in a subsequent build [VS2010].
- Added workarounds for various bugs in the automation interfaces of Visual Studio 2010 [VS2010].
- Corrected a bug in the "PC-lint" Options page affecting some Visual Studio 2010 installations [VS2010].
- Inherited property sheets specified using system environment variables are now parsed correctly in Visual C++ project files [VS2002-VS2008].
- If a filename in a Visual C++ project contains environment variables, it will now be expanded when the file is parsed [VS2002-VS2008].
- Corrected a bug in the parsing of .vcproj project files which prevented a project from overriding a for loop compliance setting inherited from a property sheet (.vsprops) file [VS2002-VS2008].
- Added -vm to the analysis command line so that the PC-lint module header ("--- Module: ()" - required to support whole project analysis) is always present in the analysis results, even if -v is present in the analysis configuration.
- Updated the theme in the installer Updates Wizard to match the main installation.
Version 2.5.2.131 (15th June, 2010)
- Corrected a bug which was preventing analysis tasks from being reliably aborted when a file was saved. This fixes a file locking issue in the IDE [VS2005/2008/2010].
- Modified the Configuration Wizard and project indirect file writer to automatically generate "-save -e686" directives if a bracket is found within an include folder specification. This avoids erroneous occurences of Warning 686 ("Option 'String' is suspicious because of...\") when PC-lint encounters an include directive containing brackets.
- Improved the parsing of vcxproj (VS2010) project files to support changes to the structure of .vcxproj files between VS2010 RC and RTM.
- Fixed a crash which occurred if an incorrectly formed command line was written to the Status View.
- If an MSXML4 installation is not detected, an error message is now written to the Status View.
- Minor updates to the Getting Started Guide.
Version 2.5.1.128 (19th April, 2010)
- Fixed a bug in the handling of files within projects which are excluded from analysis.
- $(NoInherit) and $(Inherit) macros found within Visual Studio project files and property sheets should now be correctly processed [VS2002-VS2008].
- For Loop compliance is now correctly defined when specified in a Visual Studio property sheet (.vsprops) file [VS2002-VS2008] [also in 2.5.1.128].
- $(NoInherit) or $(Inherit) macros found in project settings are now stripped from generated project.lnt files.
- MsBuild property sheet user macros should now be correctly processed [VS2010].
- Added support for MSBuild properties (e.g. MSBuildToolsPath) introduced in the VS2010 RC [VS2010].
- Property sheets specified as relative filenames in a .vcxproj project file are now parsed correctly [VS2010].
- Corrected a bug in the parsing of MsBuild project files which do not explicitly specify the name of a project [VS2010].
- VS2010 project file properties (e.g. UseOfATL and UseofMFC) which have been renamed by Microsoft between VS2010 B2 and RC are now correctly loaded [VS2010 RC].
- Added support for the IntDir, OutDir and ConfigurationType properties in .vcxproj project files [VS2010]
- Manual analysis tasks are now (correctly) run at normal priority to ensure that they take priority over background analysis tasks.
- Added details of excluded and stale files to the solution analysis status message published in the "Visual Lint Status" pane in the Output Window.
- For diagnostic purposes the OS version is now displayed in the status log on startup.
Version 2.5.0.127 (6th February, 2010)
General
- Added support for Visual Studio 2010. Note that as a result of some rather nasty regressions in the Visual Studio 2010 automation interfaces (even at Beta 2) this support is not yet complete and further changes are expected to be required once the Visual Studio 2010 RTM build is available.
- Revised the add-in startup/connection sequence and add-in menubar configuration mechanism for compatibility with Visual Studio 2010 (these changes should be transparent to the user).
- Removed support for Visual Lint Free Edition. Available product editions in Visual Lint 2.5 are Standard, Professional and Enterprise Editions.
- Issue category export files generated by Visual Lint are now formatted in a human readable form [Visual Lint Professional and Enterprise Editions].
- Project specific analysis configuration (.vloptions) files are now formatted in a human readable form [Visual Lint Enterprise Edition].
- For diagnostic purposes, the contents of the "Visual Lint Status"pane in the Output Window are now logged to the folder CSIDL_COMMON_APPDATA\Riverblade\Visual Lint. Logfiles are automatically deleted after 30 days.
User Interface
- When licence key data is pasted into the first (registered user) edit control in the Registration Key Dialog, it is now parsed to determine if the data extends over multiple lines. If so, the second non-empty line of text is automatically entered into the licence key control.
- Added a "Host IDE/toolchain" drop list to the "PC-lint" options page. Although this is always disabled when hosted in most environments, it will soon be required to support multi-targetting in Visual Studio 2010, as well as for some non-Visual Studio environments.
- Added a "View History" button to the Analysis Status Display. Minor improvements to the corresponding "View Analysis History" context menu command.
- Added a "Do not ask me again" option to product edition prompts in registered installations and to the Manual Analysis save prompt.
- The elapsed time indicator on the Manual Analysis Dialog is now hidden until the first update.
- The confirmation text shown after a key is entered now shows the actual name of the host, not just "Visual Studio".
- Removed the old "one click activate" display option in the Analysis Status Display.
- Corrected the file filters used for the File Open dialogs in the Advanced Solution Configuration dialog.
- A Visual Lint icon is now displayed in the Visual Studio splash screen [Visual Studio 2002/2003/2005/2008 only].
- Corrected "PC-Lint" to "PC-lint" throughout.
- Renamed the "Visual C++" options page to "PC-lint" for clarity.
Analysis
- Added support for "Post Analysis" Events to the Advanced Solution Configuration dialog. When enabled, the specified application will be run when the analysis of a solution completes. This setting is defined on a per solution basis and persisted to the corresponding .vloptions file stored in the solution folder.
- When a Visual C++ project file is parsed, the default settings for for-loop compliance (false for VS2002/2003; true for VS2005 and later) and C++ exceptions (always true) are now set correctly.
- For loop compliance settings are now read from project files and written to the corresponding project indirect files directly where possible. As a result, the "for loop compliance" option on the "Command Line" page is now used only when Visual Lint has been configured to allow PC-lint to write project indirect files.
- Added limited support for the $(TargetDir) variable within project configurations by aliasing it to $(OutDir) [VS2002-VS2008].
- Minor corrections to the analysis results parser.
- The scheduler no longer attempts to populate the analysis queue if an analysis tool has not yet been defined.
- Analysis tasks (and in particular IncrediBuild analysis tasks, which often deal with high volumes of data) now respond to shutdown requests faster.
- The IncrediBuild post-task analysis results processing timeout can now be configured via a registry entry (
HKCU\Software\Riverblade\Visual Lint\Settings\Analysis\IncrediBuild).
- Added "tuning" options relating to analysis (both IncrediBuild and local) to the "Diagnostic" options page.
Installer
- Corrected a bug in the code used in the installer to detect whether a trial licence is available.
- Revised copyright dates in the installer etc. to "2004-2010".
- Added Visual Studio 2010 Beta 2 to the list of supported IDEs in the readme file packaged within the installer.
- Added Windows 7 to the list of supported operating systems in the installer Readme text and Getting Stated Guide.
- Various minor updates to the Getting Started Guide.
- The Visual Lint installer now adds a shortcut to the Getting Started Guide to the Start Menu.
- When an expired trial installation is uninstalled, an uninstallation feedback page is now displayed.
- Trial started/ended and Uninstall feedback request pages are now opened with a query string giving details of the product/OS version etc.
- Corrected a bug in the remove commands sequence during uninstallation.
Reports
- Minor revisions to the stylesheets used to generate HTML reports.
- Changes to the method used to generate file and project reports during Incredibuild analysis, for efficiency.
- Added the name of the licenced user to the footer of generated reports.
Bug Fixes
- Corrected a crash which could occur on IDE shutdown if reports had been generated during a session. The crash was caused by a COM threading model related bug in a third party component (TeeChart.ocx) [Visual Lint Enterprise Edition].
- Fixed a potential crash when a project is unloaded.
- When a project is added to or removed from the workspace in Visual C++ 6.0 or eMbedded Visual C++ 4.0, the displays and analysis queue are now updated correctly when the workspace file is saved.
- If a single project is loaded without a solution under Visual Studio .NET 2002 or later, the active project configuration will now be loaded correctly.
- The "Projects" droplist in the Analysis Status Display now correctly updates the icon of a project when its"Enable Background Analysis" property is toggled.
- The Analysis Status Display is now correctly populated by the solution load task if an analysis tool has not yet been defined.
- Analysis Status Display context menu commands which are not functional while a project is loading are now disabled if such a project is selected.
- Corrected the visual display of the droplists in the Analysis Results and Analysis History displays (the text '--- All projects ---' was previously being cut into mid-way by the current analysis status of the project).
- Visual Lint now uses a single COM container interface to support all IDEs. In consequence, when registered from the "Customize" dialog in Visual C++ 6.0 or eMbedded Visual C++ 4.0, the other COM interfaces within the add-in will no longer be listed in the dialog as possible add-ins (this is a workaround for a bug in legacy versions of Visual Studio) [VC6/eVC4].
- The "Use IncrediBuild" command handler no longer unnecessarily checks whether xgconsole (the IncrediBuild XGE interfaces console interface) is available when switching to local analysis tasks.
- Corrected a bug which affected the analysis of projects with names containing illegal filesystem characters.
- Corrected a bug in the handling of user macros within Visual Studio property sheet (.vsprops) files [VS2002-VS2008].
- Corrected a bug in the handling of solution files located by UNC paths.
- Corrected a bug in the VS2010 integration which was preventing the Visual Lint toolbar from being displayed by default the first time the IDE is loaded after installation [VS2010].
- Corrected a bug affecting the "one .vloptions file per project" option in the Advanced Solution Configuration Dialog [Visual Lint Enterprise Edition].
Version 2.0.10.124 (19th January, 2010)
- Corrected a bug in the project file reader which caused Visual Studio inherited property sheet (.vsprops) files referenced via relative paths of the form "\foldername\filename.ext" to be located incorrectly.
- Added support for the new "ShowSourceInOutput" attribute introduced in IncrediBuild 3.50 in the XGE XML interfaces used by Visual Lint to perform grid analysis tasks.
As the introduction of this new attribute is a breaking change (omitting it results in changed behaviour which prevents Visual Lint from cross referencing analysis results for individual tasks back to the initiating objects), this change is required if grid analysis is to be run with IncrediBuild 3.50 onwards.
- Corrected a bug in the IncrediBuild interfacing task which could cause no threads to be allocated for analysis results processing on single core machines.
- Updated the PC-lint 9 message database to include changes (messages 83 and 457) and new messages (1084-1085, 1096-1111 and 1574) included in the updated msg.txt file for PC-lint 9.00d.
Version 2.0.9.121 (4th December, 2009)
- Corrected a bug in the parsing of quoted preprocessor symbols within project files.
- XBox 360 project configurations are now interpreted correctly [VS2002/VS2003/VS2005/VS2008].
- "Excluded from Build" properties in VC6/eVC4 project files are now read correctly.
- Corrected a potential crash in the Analysis Status Display. The crash manifested on some installations when a solution was loaded.
- Visual Studio environment variables in the IntermediateFilesFolder property of a
project configuration being analysed will now be expanded correctly.
- Revised the layout of the Configuration Wizard "Select Files" page to make it more obvious that the filename controls apply to both "Create a new configuration file" and "Use an existing configuration file" options.
- Updated the version of TeeChart8.ocx packaged within the installer to 8.0.0.6.
- Corrected a grammatical error in the "Visual Lint Prerequisites" page within the installer.
- The "Copy -> Issue Item Text Only" command on the Analysis Results Display context menu is now correctly disabled when no issues are selected.
Version 2.0.8.117 (4th September, 2009)
- Added a "Show files in the lnt subfolder" checkbox to the "Configure Std.lnt" page in the Configuration Wizard. This allows the user to specify whether indirect files located only in the lnt folder within the PC-lint installation should be shown, or whether only those files which the PC-lint installer copied to the installation folder itself should be visible. The option is automatically selected if no suitable indirect files are found in the installation folder.
- If the options.lnt file is not located in the PC-lint installation folder, a -i directive for the folder in question is now automatically added to the command line (before that for the installation folder) so that references to local indirect files are resolved correctly.
- Fixed a bug in the "Goto Reference" context menu command in the Analysis Results Display which could cause it to perform the wrong action.
- The Analysis Status Display now reports project status as "Complete" if there are excluded files in the project but all other files have been analysed.
- Corrected a bug in the analysis results parser which was causing Internal Errors in the range 200-299 to be incorrectly categorised as Fatal Errors.
- Corrected a bug in the Analysis Status Display which could cause the add-in to become unresponsive.
- Fixed a potential crash when a project file containing an environment variable defined in terms of itself is encountered.
- Fixed a potential crash when a project was unloaded.
- Corrected a bug which was preventing the "for-loop compliance" property of Intel C++ Compiler projects from being read correctly.
- Fixed a potential deadlock when the "Excluded from build" property of a file is changed in an unregistered installation.
- Fixed a potential deadlock if a file analysis task was stopped while signalling completion to the scheduler.
- Corrected a couple of minor bugs in the evaluation of project environment variables.
- If the IDE include paths differ in case only (as will be the case if KB971092 has been installed), an "Include Folder Mismatch" warning will no longer be displayed.
- The "OK" button in the registration key dialog is now disabled until a key has been entered.
- Updated the installer with new runtime library redistributables - see KB971092 for details.
- Corrected a typo in the licence file.
Version 2.0.7.113 (22nd June, 2009)
- PC-lint analysis results generated without an environment file (i.e. no env-vc*.lnt file) can now be parsed more accurately.
- Project indirect (.lnt) files generated by previous versions of Visual Lint will now be automatically re-generated.
- When a lint issue without an associated source line number is displayed in the Analysis Results Display, the line number is now shown as blank rather than 0.
- Added a "Copy | Issue Text Only" command to the Analysis Results Display context menu. This is identical to the existing "Copy" command (now renamed "Copy | Full (with Source File Info)" but omits the source file information.
- Local analysis tasks now only report progress when the scheduler is not busy performing other tasks. This should improve performance on n-core high performance systems with "noisy" codebases.
- Visual Studio automation model interface pointers are now cached in the context of the calling thread. This reduces the use of the Global Interface Table, and hence simplifies thread synchonisation.
- Corrected a bug which was affecting Intel C++ Compiler support in Visual Lint Enterprise Edition.
- Added support for Intel C++ Compiler 11.0 projects, which use a different project file format to previous versions.
- Added support for Intel C++ Compiler 11.0 projects, which use a different project file format to previous versions.
- Modified the IncrediBuild version checking code for compatibility with IncrediBuild 3.4.
- Visual C++ 2008 project (.vcproj) files created using the "Create Project from Existing Code" wizard are now parsed correctly. Such project files are created with UTF-8 encoding instead of the usual Windows-1252, and it seems that MSXML does not correctly support loading an XML stream with a UTF-8 byte-order mark from a Unicode string.
- Fixed a bug in the "Delete Analysis Results" menu command in the Solution Explorer.
- If hosted under VS2008 and running on XP, new installations no longer create a linked window frame to contain the Analysis Status, Results and Message Lookup Displays. This avoids a recently identified shutdown crash which appears to be specific to this combination of operating system and development environment.
Version 2.0.6.111 (12th May, 2009)
- Fixed a bug in the project indirect file writer which could cause paths such as "..\..\Folder" to be incorrectly resolved.
- Fixed a bug in the project indirect file writer which could cause paths such as "Folder1\Folder2\..\Folder3" to be incorrectly resolved.
- Fixed a bug which would cause a crash if a project file containing files of the form "\\filename.ext" was encountered.
- Added support for the Visual Studio variable $(WebDeployPath) in .vcproj files.
- Corrected a bug in the Analysis Results parser which could cause a reference line in a specific walk to be parsed as a lint message - leading to an erroneous fatal error in the analysis results.
- Added support for "AdditionalOptions" within inherited property sheet (.vsprops) files [VS2002 onwards].
- Fixed a bug in the parsing of analysis results returned by IncrediBuild [Visual Lint Enterprise Edition].
- Corrected a bug in the Analysis Results Display which caused the "Categories" control to be configured incorrectly on start-up [Visual Lint Standard and Professional Editions].
- The "Auto-select project" option in the Analysis Status Display is now persistent. In addition, if this option is active when a solution is loaded the display will now automatically reflect the contents of the active window.
- The "View" control in the Analysis Results Display is now persistent.
- Version information for IncrediBuild is now only shown in the "Visual Lint Status" pane in the Output Window if the active product edition is Visual Lint Enterprise Edition.
- The default subject text in email enquires from the About Box now includes details of the active product edition.
- Added support for additional command line options of the form -I "folder path" within Visual C++ project files.
- Guarded where possible against malformed -i directives (e.g. /I"Path) in Visual C++ response files.
- Corrected the handling of .vsprops files whose location is defined via configuration specific Visual Studio environment files (e.g. "$(SolutionDir)Common_Sources\Win\CompileOptions\$(ConfigurationName)Plugin.vsprops").
- Project configurations which inherit Intermediate and Output Directory values within .vsprops files are now correctly handled [VS2002 onwards].
- Corrected a potential deadlock in the interactions between the "Delete Analysis Results" command and the IncrediBuild task scheduler [Visual Lint Enterprise Edition].
- Re-themed the installer and Configuration Wizard.
Version 2.0.5.109 (26th March, 2009)
- If exception handling (/GX) is enabled in a Visual C++ project, _CPPUNWIND will now automatically be defined in generated project.lnt files.
- System folders such as "$Recycle.Bin" are no longer searched for the PC-lint executable during installation or from the Configuration Wizard.
- Fixed a bug which was preventing yellow warning bars from appearing in the IncrediBuild Build Monitor [Visual Lint Enterprise Edition].
- Solution and project analysis configuration (.vloptions) files generated by Visual Lint are now formatted in a human readable form.
- Backward relative (i.e. beginning with "..\") paths are now supported in .vloptions (Visual Lint analysis options) files [Visual Lint Professional and Enterprise Editions].
- The lib-ole.lnt indirect file is no longer shown on the "Configure std.lnt" page of the Configuration Wizard as it is automatically included by co-msc*.lnt.
- If the std.lnt file is not located in the PC-lint installation folder, a -i directive for the folder in question is now automatically added to the command line (before that for the installation folder) so that references to local indirect files are resolved correctly.
- Charts generated as part of HTML reports are now saved as .bmp and then converted to .png using GDIplus, as the lpng.dll used by TeeChart8.ocx to perform this function natively seems to have issues with DEP on Windows Server 2008 and Windows Vista. As a result, gdiplus.dll is now packaged within the installer to allow Window 2000 support to continue (hence the increase in installer size).
- Minor changes to the way IncrediBuild analysis tasks are queued [Visual Lint Enterprise Edition].
- File reports are no longer autogenerated as each analysis task completes.
Version 2.0.4.107 (5th March, 2009)
- Updated Platforms.xml with new platform names for Smartphone and Pocket PC SDK.
- When an include folder mismatch in the global std.lnt configuration file is detected, Visual Lint can now prompt, automatically update the include folder directives in the file or ignore the discrepency.
- Added the "mark of the web" to HTML reports to avoid the "active content" warning from the browser when a Visual Lint generated report is opened on the local filesystem.
- Corrected a bug in the "View Analysis Results" command in the Analysis Status Display introduced as a result of threading modifications in 2.0.3.105.
- Fixed a bug in the generation of project.lnt files using PC-lint under Visual C++ 6 and eMbedded Visual C++ 4.0 (other IDEs and direct generation of these files by Visual Lint are unaffected).
- Corrected a bug in the detection of the Visual Assist X "VA View" under Visual C++ 6.0 and eMbedded Visual C++ 4.0.
- When a Visual C++ project file containing comma delimited preprocessor definitions (the IDE uses semicolons) is read, the corresponding definitions in generated project.lnt file will now be correctly semicolon delimited (this fixes an analysis error when definitions of the form SYMNAME=, are encountered in the project.lnt file).
- Added a missing WM_DESTROY handler to the chart control used in the Analysis Results Display. Likewise, TeeChart interface helper objects are no longer held open throughout the lifetime of a reporter object (these are potential fixes for an intermittent crash in TeeChart8.ocx seen on shutdown of Visual Studio 2008).
- Corrected the category totals and sort order in the "Issue Count by Project" section of the HTML solution report template.
- Fixed a potential crash in the Analysis Status Display.
- If the "Delete Analysis Results" command fails, a warning will now be displayed and written to the "Visual Lint Status" pane in the Output Window. Similarly, if the task dialog informing the user that Visual Lint has not yet been configured fails (this has been seen intermittently on one of our test systems), the Configuration Wizard will now be displayed automatically.
- The Visual Lint installer and Configuration Wizard now direct users without a PC-Lint installation to the online store rather than the Gimpel website.
- Updated the Visual Studio 2008 runtime libraries packaged within the installer to VS2008 SP1.
Version 2.0.3.105 (2nd February, 2009)
- Removed a duplicated status message from the "Visual Lint Status" pane when a manual analysis operation is performed.
- The name of the active configuration is now cached, removing the need for repeated calls into the automation model to read it during the loading process.
- The display filter control in the Analysis Status Display is now correctly initialised prior to a solution being opened.
- Improved the responsiveness of the user interface by moving a number of analysis event handlers from the UI thread to worker threads. Various consequential changes to thread locking and synchronisation logic.
- Visual Lint no longer uses the Visual Studio automation model to determine whether a file is open when analysis completes (which is rather slow) - a faster method using document opened/closed events is used instead.
- The Analysis History Display is no longer updated during the progress of each analysis task, as doing so can sgnificantly increase the loading on the UI thread.
- File report tasks are now only generated when an analysis task completes if the "auto generate reports" option is off.
- Increased the minimum report update interval to 60s, and modified the "Auto Refresh Reports" function to guard against repeated calls at short intervals under high CPU loading conditions.
- When a "stop" command is issued to xgconsole (the IncrediBuild XGE executable) it is now echoed to the "Visual Lint Status" pane in the Output Window [Visual Lint Enterprise Edition].
- Fixed a potential crash when an IncrediBuild analysis task is deleted [Visual Lint Enterprise Edition].
- When an IncredBuild control task is shutdown, it no longer attempts to process any outstanding analysis results - ensuring that the shutdown completes faster [Visual Lint Enterprise Edition].
- Any IncrediBuild analysis tasks which complete with errors or warnings will now be coloured red and yellow respectively in the IncrediBuild Build Monitor (note that colouring warnings in this way requires IncrediBuild 3.32 Build 930 or later) Visual Lint Enterprise Edition].
- Corrected a bug in the expansion of additional include folders during the generation of project indirect files.
- Corrected a bug in the handling of per-file preprocessor symbols during the generation of project indirect files.
- Added a check to the project indirect file writer to filter out newlines within project additional options, as these can cause PC-Lint to crash if they are encountered in an indirect file.
- Updated the copyright dates in the readme and licence files from "2004-2008" to "2004-2009".
Version 2.0.2.102 (12th December, 2008)
- Added options to allow reports to be generated to a user defined location rather than with the analysis results under the solution root folder [Visual Lint Professional and Enterprise Editions].
- Added support for distributed code analysis using the IncrediBuild XGE Interfaces Extension Package [Visual Lint Enterprise Edition].
- Corrected a bug in the VC6/eVC4 project file reader which could cause the UNICODE preprocessor directive to fail to be defined if _UNICODE was already present.
- The VC6/eVC4 add-in toolbar creation hook now correctly identifies toolbars in German editions of the IDE.
- The "CreateToolbar" registry flag is now always reset regardless of whether the add-in toolbar renaming hook succeeds. This prevents repeated creation of toolbars in some localised versions of Visual C++ 6.0 and eMbedded Visual C++ 4.0.
- When a file is added/removed from a project, the type of the file is now checked in order to determine whether it should be analysed.
- Fixed a potential crash when a project is removed from a solution.
- Corrected a bug in the handing of project additional command line options which could cause an infinite loop while writing project.lnt files in some circumstances.
- Corrected a bug in the "View Analysis Results" context menu command in the Analysis Status Display which manifested itself in Visual C++ 6.0 and eMbedded Visual C++ 4.0.
- If Visual Lint is unloaded under Visual C++ 6.0 or eMbedded Visual C++ 4.0 analysis tasks are now shut down correctly and add-in toolwindows are now correctly detached and closed before unloading the add-in.
- Fixed an intermittent crash on shutdown in Visual Studio 2008.
- If the Visual Lint add-in is loaded by the development environment while a solution is open, Visual Lint will now correctly recognise the contents of the solution.
- Prevented an unnecessary analysis queue regeneration operation when a file is removed from a project.
- When the IDE is started, the version of the Xoreax Grid Engine Console (if installed) is now displayed in the "Visual Lint Status" pane in the Output Window.
- Visual Studio environment variables defined in terms of each other are now expanded correctly.
- The analysis completed percentage shown in the Analysis Status Display now excludes stale files. This prevents status oddities such as "Partial (100%)".
- Improvements to the Registration Dialog to make it more obvious which previous key (or keys) should be entered to validate an upgrade key.
- Include file dependency tracking is now off by default.
- Minor corrections to the file save handing code using the include file dependency tracker.
- Corrected a control misalignment in the "Visual C++" options page.
- Removed "Unexpected exception during solution load" message boxes in the retail build (they were originally intended for diagnostic use, and should have been removed before now). The information they contain is still logged within the "Visual Lint Status" pane in the Output Window.
Version 2.0.1.98 (7th October, 2008)
- Additional include folder specifications delimited by commas (rather than the more usual semicolons) are now handled correctly while generating project.lnt files.
- Corrected a bug in the handling of project specific environment variables.
- Added an option to the "Visual C++" option page to allow the environment indirect file (env-vc8.lnt etc.) to be specified. By default, Visual Lint will now attempt to use the appropriate file for the host IDE, but if this cannot be located it will select a compatible alternative if possible.
- Updated the configuration file (platforms.xml) used for environment variable expansion for embedded platforms (Smartphone/Pocket PC 2003, Windows Mobile 5.0 SDK and Windows Mobile 6 SDK).
- The Configuration Wizard now performs a check on the new configuration to ensure that all indirect files it references are available,and not duplicated on the command line. If any errors are located, it will attempt to correct them. Note that this operation occurs silently and does not at present provide any user feedback.
- Section links in the HTML report templates now work with Firefox.
- The "Issue Count by Category" and "Issue Count By No" views in the Analysis Results Display are now hidden for registered users who do not have access to them (this prevents unwanted elevation prompts which can interfere with keyboard access).
- Corrected the valid upgrades for the v2.0 Standard => v2.0 Professional Edition licence certificate to include upgrades from v1.5 => v2.0 Standard Edition upgrade licences.
- Added a v1.5 Standard => v2.0 Professional licence upgrade certificate.
Version 2.0.0.97 (1st October, 2008) New Features:
- Added Visual Lint Enterprise Edition to support more detailed analysis customisation and reporting for enterprise customers. Among the features included in the Enterprise Edition are far more detailed reports, a new Analysis History Display and advanced configuration options such as the ability to preprocess project.lnt files and store analysis configurations directly with each project rather than with the enclosing solution.
- Added support for PC-Lint 9.00 (a PC-Lint 9.00 message database is now included in all installations, and the appropriate message database is used based on the active PC-Lint version).
- Added the Analysis History Display, which shows (in graphical and list form) the analysis history of a specified file, project or the entire solution [Visual Lint Enterprise Edition].
- Revised the format of Solution Analysis Reports. These now include a summary section [all editions], charts of issue count by category and message and a breakdown showing which projects and files are generating which issues [the latter in Visual Lint Enterprise Edition]. Note that the report schema is not backward compatible to Visual Lint 1.5; please contact us if you have a report stylesheet you need converting to the new format.
- Optimised the solution loading process to eliminate unnecessary parsing of analysis results files [Visual Lint Professional and Enterprise Editions].
- When a header file is saved, any implementation files which directly or indirectly include it will now be marked as stale (assuming include file tracking is enabled [Visual Lint Professional and Enterprise Editions].
- The contents of the global wrap-up during whole project analysis are now distributed to the affected files [Visual Lint Professional Edition].
- Added a new "Issue Counts by Category" view (bar/pie chart) to the Analysis Results Display [Visual Lint Professional Edition].
- Added a new "Issue Counts by No." view (bar/pie chart) to the Analysis Results Display [Visual Lint Enterprise Edition].
- Visual Lint can now be used with VS2005 Intel C++ compiler 9.1 projects (even with the buggy automation interface implementation in this version, which prevented Visual Lint 1.5 from working with this combination of IDE and compiler).
- Improvements to Visual Studio environment variable handling. In particular, the Visual C++ automation interfaces are no longer used to expand environment variables during project loading and the generation of project.lnt files. If any environment variables cannot be expanded, they are now converted to the operating system form (
"%varname%") prior to being written to the project.lnt file.
- Per file additional includes are now supported during whole project analysis (note however that once defined there is no way to undefine them for the following files).
- Added a "Report" button to the Analysis Results Display [Visual Lint Professional and Enterprise Editions].
- Added a "Product Edition" page to the Options dialog to allow the active product edition (Free, Standard, Professional etc.) to be set by the user during the Trial period. In consequence, the "product edition" controls have been removed from the "Diagnostics" page.
- Moved the Solution and Project Lint configuration property pages from the Options Dialog to their own property sheet (accessed via a dedicated command).
- Added the ability to specify an alternate version of PC-Lint when analysing a specific solution [Visual Lint EnterpriseEdition].
- Trial installations and development builds now report the effective product edition they are running under.
- Added a context menu to the Analysis Status Display. In consequence, the "One click activate" style of the Display is now optional, and off by default.
- The use of Intel C++ Compiler projects now requires a Professional Edition licence.
- Added the ability to distribute .vloptions files on a per project basis Advanced Solution Analysis Configuration dialog [Visual Lint Enterprise Edition].
- Added support for an optional project.lnt preprocessing step at solution level to the Advanced Solution Analysis configuration dialog [Visual Lint Enterprise Edition].
- Added basic support (/I and/D directives, as well as response files containing them) for additional command line parameters in VS2002 onwards.
Installation:
- Added a "Select Product Edition" page to the installer. This allows the initial effective product edition to be set within the trial period. Once set, the effective product edition can be changed at any time during the trial period.
- Added a prerequisites page to the installer to inform the user that a valid PC-Lint installation is required, and offer them the choice of whether to search for it.
- The installer now searches for the PC-Lint installation folder. If it cannot be found, a warning page is now shown during the installation process.
- The PC-Lint 9.00 installation folder registry key (if available) is now used as the default PC-Lint installation folder path (this already happens for PC-Lint 8.00).
- Once a PC-Lint installation has been located by the installer, a registry key identifying it will now be written so that subsequent installations will not need to repeat the same search.
- Added checkboxes to the uninstaller to allow the user to determine whether Visual Lint configuration information and commands should be removed on uninstallation.
- Updated the Getting Started Guide, readme file etc.
Minor Tweaks:
- Revised issue category icons.
- When a solution is loaded, the initial stage (project preload) no longer involves reading the project files. As a result, the Analysis Status Display is populated faster on large solutions.
- The context menu in the Analysis Results Display now shows lint issues with a single reference on the top level of the menu rather than within a "Go To Reference" submenu.
- Added a "Delete Analysis Results" command to the Solution Explorer context menu at project and file level (VS2002 onwards).
- When a solution is loaded which contains only one project in which background analysis is enabled, the Analysis Status Display will now automatically display the appropriate project.
- Added a "Find it for me" button to the Configuration Wizard "Select PC-Lint installation folder" page in the Configuration Wizard.
- Added a "Free Trial" button to the Registration Dialog if a key for a previous version of the software is detected.
- Added message 829 ("A +headerwarn option was previously issued for header 'Symbol'") to the PC-Lint 8.00 message database.
- Increased the minimum and default report refresh intervals from 1s to 10s and 10s to 60s respectively.
- Added icons to the "Project", "File" and "Filter" controls in the Analysis Results Display, Analysis Status Display and Analysis History Display.
- Added an "Uninstall Licence" button to the Options dialog "Registration" page.
- Added the full product name to product related prompts.
- Added a chart colour property to issue categories, for use by charting displays.
- Added a mailing list prompt.
- Removed obsolete Analysis Status Display options.
Bug Fixes:
- The Visual C++ automation interfaces are no longer used to parse project file details (a cached read of the project file is perfomed instead). As a result, Visual Lint is now less vulnerable to flaws in the Visual C++ automation interfaces.
- When a custom category is removed, the issues assigned to it are now correctly ressigned to their default categories [Visual Lint Professional and Enterprise Editions].
- Corrected a bug in the handling of solution folders within the automation interface [VS2005 and VS2008].
- Improvements to the way add-in toolbars are managed in Visual C++ 6.0 and eMbedded Visual C++ 4.0. In particular, the add-in toolbar is now automatically renamed to "Visual Lint" after creation when hosted under Visual C++ 6.0 and eMbedded Visual C++ 4.0.
- Added default font face/size values for the Output Window configuration in case VC6 or eVC4 doesn't have them in the registry.
- Improved the 8 bit "Analyse Current File" command image used under VC6, eVC4, VS2002 and VS2003 to match the 24 bit image used in VS2005 and VS2008.
- Removed a duplicated balloon tip on trial version startup.
Version 1.5.12.92 (20th July, 2008)
- When a whole project analysis task is aborted, the status of the project is now set to "not analysed".
- When an issue in the Analysis Results Display is activated (by a double click or one of the "Go to..." commands), the file details within the display are no longer changed if the activated file is an implementation file or its primary header file.
- Corrected a focus issue when hosted in Visual C++ 6.0 or eMbedded Visual C++ 4.0.
- Fixed a bug in the installer which was preventing the update check wizard from being run correctly.
Version 1.5.11.89 (25th June, 2008)
- Added Goto Previous/Next Location support to the Analysis Results Display. Note that:
- This is currently available in VS2002 onwards only, as the keyboard bindings for VC6 and eVC4 are not accessible through the automation interface, and
- The presence of other add-ins may affect the functioning of this feature under VS2002 and VS2003 due to a bug (fixed in VS2005) in the Visual Studio automation interfaces. Please refer to MSDN KB article http://support.microsoft.com/kb/555090 for further details.
- Pressing the Enter key in the Message Lookup Display is now equivalent to pressing the "Go!" button.
- Added direct support for the $(SolutionDir) and $(ProjectDir) macros to the project.lnt file writer in order to overcome a bug in the VS2008 automation interfaces.
- The $(ConfigurationName) macro is now handled directly when reading the intermediate files folder. This change is only required to support VS2008, which is unreliable when it comes to expanding Visual Studio environment variables via its automation interfaces.
- The UseAutoGeneratedProjectLntFile project property is now saved into the solution options file correctly [Visual Lint Professional Edition].
- Fixed a bug in the Analysis Options page which was preventing the indirect file ordering option from being applied correctly in Visual Lint Standard Edition.
- Corrected a bug in the resolution of relative paths within .vsprops files.
- Corrected a bug in the generation of HTML reports.
- Fixed a validation bug in the Configuration Wizard.
- The title and registration text in the About Box is now highlighted in colour.
- Added registry keys to allow the font used for raw analysis results to be set independently of the IDE "Text Output Tool Windows" setting. The keys in question are:
HKCU\Software\Riverblade\Visual Lint\Settings\Displays\Raw Analysis Results\Font Family and
HKCU\Software\Riverblade\Visual Lint\Settings\Displays\Raw Analysis Results\Font Size.
- Visual Lint Free Edition is now licenced for non-commercial use only. Updated the licence terms, installer, About Box and licencing prompts accordingly.
- When a trial installation is activated, a "thank you for trying Visual Lint" page is now displayed offering additional information and support. A similar page is displayed when a trial installation expires.
- When a trial installation is uninstalled a feedback request page is now displayed.
- Corrected the icons installed in the start menu for update checks and scheduling.
- Update checks initiated from the start menu are no longer silent.
- Removed the unnecessary balloon tip shown when updates are scheduled in the installer.
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)
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)
|