Understand Build 840

(Build b840) – 6 May 2016

C# PARSER

  • Fixed bug where a reference to a class with the same name as a nested class could sometimes generate a reference to the wrong entity.

INFOBROWSER

  • Show python sub packages and parent packages in IB.
  • Show java sub packages and parent packages in IB.

JAVA PARSER

  • Added 'transient' and 'volatile' to the type text of variables declared with these modifiers. Also, added a new reference kind, 'use return' for a variable directly returned by a method.

LICENSING

  • Updated the License Server almhostid mismatch error.

PROJECT

  • Updated Understand/Und to report the "Last Locked Process Id".

PYTHON PARSER

  • Removed '__init__' from full names of entities defined in package __init__.py files.
  • Added 'declare/declarein' relations between packages and subpackages.

Understand Build 839

(Build b839) – 29 Apr 2016

C# PARSER

  • Fixed bug where no call reference was created when an overloaded method was called but parameters passed didn't match any overload.
  • Fixed bug where the use of an alias type name in a 'new' expression as an actual argument caused problems with overload resolution.

FORTRAN

  • Potential fix for a Fortran 66 Project Overview Chart crash.

FUZZY PARSER

  • Preserve parameter types in function pointer types in fuzzy c++ parser.

GENERAL

  • Added MaxNesting metric to the Treemap options.

GRAPHS

  • Preserve open/closed status of graphic nodes when changing Comments, Filename and Name options.
  • Fixed a UML Sequence Diagram crash from the command line and the GUI.

JAVA PARSER

  • Created package entities for all levels of a dotted package name and linked packages to subpackages with a 'declare' relation.

PASCAL PARSER

  • For Pascal/Delphi, fixed syntax error on use of 'inline' in .dfm file.

PYTHON PARSER

  • Added 'Python Module File' kind.

Understand Build 838

(Build b838) – 22 Apr 2016

ANNOTATIONS

  • Fixed an issue in Annotations where duplicate annotations sometimes appeared.

C PARSER

  • Add support for volatile and const volatile method kinds in fuzzy c++ parser

EDITOR

  • Fixed C# semanitic syntax highlight issues.

GENERAL

  • Fixed an issue with the Windows Navigator shortcut not working properly.

INFOBROWSER

  • Add support for php overrides field in IB.

PROJECT

  • Ensure that nonexistant "found" includes are removed from the project on rescan.

REPORTS

  • For Web Php, added 'overrides' link from function in child class to an overridden function in parent class. Fixed bug where overriding functions were listed as Unused.

WEB PARSER

  • For Php, fixed bug where reference to a constant inherited from a parent class in a different file resulted in an 'unresolved' entity.

Understand Build 837

(Build b837) – 15 Apr 2016

ANNOTATIONS

  • Fixed an Annotation issue where the Annotation search results were not opening the correct location in the editor.

GRAPHS

  • Add php Property entities to the UML Class diagram.
  • Fixed a crash in the UML Sequence Diagram when trying to use unresolved entities.

PASCAL PARSER

  • For Delphi/Pascal, made change to better recover from some syntax errors in parsing.
  • For Pascal, fixed bug where more than one label on a statement caused syntax errors.

REPORTS

  • Fixed a crash in report generation when annotating a project file that does not have a valid file extension for any of the languages.

WEB PARSER

  • For Php, added call to class constructor at a 'new <classname>' expression.

Understand Build 836

(Build b836) – 8 Apr 2016

ANNOTATIONS

  • Fixed an issue with annotations trying to convert to the latest project portability settings after an analysis instead of when a user changes the project settings.

CODECHECK

  • Add yield() api support for codecheck scripts.
  • Updated the CodeCheck gui log to display a longer file path name instead of just the filename and extension.
  • Updated the CodeCheck gui log to show the file and the check in progress.
  • Improve interactivity when Codecheck scripts are running.
  • Updated the CodeCheck gui verbose log to show the individual check being run, the running time or duration of each file, and the overall running time or duration.

Understand Build 835

(Build b835) – 1 Apr 2016

CODECHECK

  • Add the word Global to the description of each Global CodeCheck.

Understand build 834

(Build b834) – 25 Mar 2016

CODECHECK

  • Fixed a bug in MISRA 2008 rule 12-8-1 and All Check script copyConstructorInitializeBaseAndMembers.upl where certain member functions were being flagged as violations despite not being a copy constructor.

GRAPH

  • Fix a crash dealing with the Cluster Graphs.
  • Fixed possible crash in control graph generation.

PROJECT

  • Add project option for Javascript module search path.

USER API

  • Enforce const correctness and temporary nature of strings in user_api.

WEB PARSER

  • For Javascript, made changes to use module search path option to locate imported modules in Javascript 6.

Understand Build 833

(Build b833) – 19 Mar 2016

CODECHECK

  • Fixed a bug in MISRA 2008 rule 15-3-3 and All Check script constructorOrDestructorShallNotReferenceNonStaticMembers.upl where violations weren't being reported correctly.

GENERAL

  • Moved the Project Configuration Options to Tools – User Interface.
  • Moved the Command Window Font option to Tools – User Interface.
  • Added an option to allow the user re-open graphs when opening a project. By default, this is turned off so that graphs do not reload automatically.

GRAPHS

  • Added Cluster With Butterfly graph for Ada.
  • Update the UML Class Diagram to display if a method is virtual.

PARSER

  • Add support for IAR ARM compiler extension _Pragma().

PROJECT

  • Updated the Und command line settings -adaVersion to update the Standard directory as well.

WEB PARSER

  • For Javascript, fixed bug where javascript 6 import of a default entity generated an import relation with line number 0.
  • Fixed bug in line counts when css files contain import rules.

Understand Build 832

(Build b832) – 11 Mar 2016

ANNOTATIONS

  • Updated the Project Conversion to convert the annotation entities uniquenames instead of orphaning them.

CODECHECK

  • Updated MISRA 2012 rule 8.2 and All Check script functionsTypesInPrototypeForm.upl to correctly handle lambda functions.
  • Fixed a bug in MISRA 2012 rule 5.8 and All Check script externalIdentifiersUnique.upl where duplicate violations were reported.
  • Fixed a bug in MISRA 2008 rule 0-1-7 and All Check script discardedReturnValues.upl where C style casts were being incorrectly handled.

Understand Build 831

(Build b831) – 4 Mar 2016

ADA PARSER

  • Changed the CountSemicolon metric for subroutines to include semicolons that separate parameter declarations.

CODECHECK

  • Updated MISRA 2012 rule 8.10 and All Check script inlineFunctionDeclaredStatic.upl to no longer test operator overloads.

COMMANDLINE

  • Fixed an issue where Und would not set the file to excluded when removing file that were added using -CommandAddMode.

GENERAL

  • Updated to not allow analysis when reports are generating or allow access to Reports/Generate Reports or Reports/Configure Reports when analyzing.
  • Missing Header Files Dialog updates.

GRAPHS

  • Add Imports and ImportedBy graphs for javascript.

INFOBROWSER

  • Show alias and export references in javascript IB.
  • Add aliases and import/export fields for javascript IB.

PROJECT

  • Fixed CodeCheck ignores list to update when project portability is switched.

SEARCH

  • Added an option to turn off hover text in Find in Files Results.

WEB PARSER

  • For Javascript, allow full path names in Javascript 6 module imports and reexports.

Understand Build 830

(Build b830) – 26 Feb 2016

ADA PARSER

  • Made changes to support Ada to C linkage of subroutines using aspects.
  • Fixed bug where pragma imports of constants did not correctly link to the external c entity.

CODECHECK

  • Updated MISRA 2012 rule 8.10 and All Check script inlineFunctionDeclaredStatic.upl to not test inline template functions.
  • Updated MISRA 2012 rule 8.10 and All Check script inlineFunctionDeclaredStatic.upl to no longer test member functions.
  • Updated MISRA 2008 rule 9-3-3 and All Check script to have a configurable option to treat passing of member data to another function as modifying the data.

EDITOR

  • Show annotations in printouts.

FORTRAN

  • Add missing binary.f90 to Fortran sample project.

GENERAL

  • Fixed an issue where add/remove files were not Case Insensitive for windows.
  • Disallow rescan during analysis.
  • Add support for JIPSE MIL-STD-1750A assembly

INSTALLER

  • Fix display issue with Windows installer and slashes.

LICENSING

  • Fixed a floating licensing issue with multiple builds from a single computer.
  • Fixed a ToGo license issue where the license server was reporting a denied ToGo license as checked out but not as part of the total licenses in use.

METRICS

  • For web Javascript, added metrics for Javascript 6 classes.

WEB PARSER

  • For web Javascript, changed relation kind for Javascript 6 ‘export … from file’ to a ‘reexport’ relation (previously it was’ export’). Added a new ‘reexport all’ relation for ‘export * from file’.

Understand Build 829

(Build b829) – 19 Feb 2016

CODECHECK

  • Updated MISRA 2008 rule 0-1-7 and All Check script discardedReturnValues.upl to correctly handle templated constructor initialization lists.
  • Updated MISRA 2008 rule 7-5-4, MISRA 2004 rule 16.2, HIS rule 12, and All Check script noRecursion.upl to point violation at the instance of recursion.
  • Updated MISRA 2008 rule 7-1-2 and All Check script parameterShallBeDeclaredAsConst.upl to have a configurable option to treat parameters passed to another function as modified.
  • Updated All Check script externalTypeMismatch.upl to have a configurable option to treat MACROs without a value as an empty string.
  • Updated All Check script constRefParam.upl to ignore move constructors.
  • Updated All Check script oneVariablePerLine.upl to correctly handle range based loops.

GENERAL

  • Fixed crash on switching projects with the contextual information sidebar open.
  • Fix bug where file extension to file type mapping was broken.
  • Fixed an issue where the expand/collapse icon would disappear in the Project Config dialog.

LICENSING

  • Allow resizing of the License Setup Dialog.

STRICT PARSER

  • Fixed invalid entity kind for functions called in a template parameter dependent context and found through a using declaration. Added missing 'Using' reference to templates referenced in a using declaration.
  • Fixed duplicate references to constructor call arguments in template class instantiations.

WEB PARSER

  • For Web Javascript, made changes to handle symbol lookup and refresh parsing for modules.
  • For Web html and xml, fixed bug that caused invalid syntax errors and incorrect line counts.

Understand Build 827

(Build b827) – 12 Feb 2016

CODECHECK

  • Updated MISRA 2012 rule 8.2 and All Check script functionsTypesInPrototypeForm.upl to correctly handle functions declared with template parameters.
  • Updated MISRA 2012 rule 6.1 and 6.2 as well as All Check scripts bitFieldsDeclareWithAppropriateType.upl and singleBitNamedBitFieldsNotSigned.upl to properly handle nested typedef(s).
  • Fixed bug in MISRA 2008 rule 2-13-1, MISRA 2004 rule 4.1, and All Check script onlyStandardEscapes.upl where #include directives that included a \ character were flagged as violations.

LICENSING

  • Fixed licensing issue with Linux when adding an additional license.

PROJECT

  • When converting projects to relative mode, don't convert files above the project directory.
  • Fixed project browser file sync.

Understand Build 826

(Build b826) – 10 Feb 2016

CODECHECK

  • Fixed a bug in MISRA 2012 rules 5.2 and 5.3, MISRA 2008 rule 2-10-2, MISRA 2004 rule 5.2 and All Check script identifiersDistinctInScope.upl and scopeHiding.upl where certain file endings were not handled correctly.
  • Updated MISRA 2012 rule 8.3, MISRA 2008 rule 3-2-1, MISRA 2004 rule 8.3, and All Check scripts allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl to properly handle functional MACRO expansion.
  • Updated MISRA 2008 rule 0-1-4 and All Check script singleUseVariables.upl to not test template parameters.

GENERAL

  • Fixed crash on override definition.

GRAPHS

  • UML Sequence Diagram updated to show the defined in instead of the parent (if valid).
  • Updated the UML Sequence Diagram Visio export to fix an issue with malformed Visio code.

PARSER

  • Add support for displaying scopes in assembly files.

Understand Build 825

(Build b825) – 5 Feb 2016

CODECHECK

  • Fixed bug in MISRA 2008 rule 15-3-7 and All Check script catchAllHandlerShallOccurLast.upl where nested try .. catch blocks and successive try .. catch blocks were not tested correctly.
  • Fixed bug in MISRA 2012 rule 8.2 and All Check script functionsTypesInPrototypeForm.upl where functions built with MACROs were not handled correctly.
  • Updated MISRA 2012 rule 8.4 and All Check script compatibleDeclarationVisibleWhenExternalLinkageIsDefined.upl to not run on function templates.
  • Fixed bug in MISRA 2008 rule 15-5-1 and destructorsNotThrowException.upl where destructors defined by MACROs were not handled correctly.
  • Updated MISRA 2008 rule 7-1-1, All Check scripts unmodifiedVariablesShallBeConst and separateVariableDeclaration.upl to correctly handle template parameters.
  • Updated MISRA 2008 rule 11-0-1 and All Check script nonPodMemberDataPrivate.upl to ignore class templates.
  • Updated MISRA 2012 version 8.2 and All Check script functionsTypesInPrototypeForm.upl to allow for a MACRO defined as void to serve as an empty parameter list.
  • Updated MISRA 2004 rules 8.10 and 8.11 as well as All Check scripts explicitStaticWhenInternal.upl and staticLinkageWhenPossible.upl to not test function templates.
  • Updated operandOfSideEffect.upl to handle lambda functions correctly.
  • Updated MISRA 2008 rule 3-1-1 and All Check script possibleToIncludemultipleTranslationsWithoutViolatingOneDefinition.upl to not run on class template methods.
  • Updated MISRA 2004 rule 16.1 and All Check script noVarArgs.upl to no longer check implicit declarations.
  • Updated MISRA 2008 rule 6-4-6, MISRA 2004 rule 15.3 and All Check script switchHasDefault.upl to correctly handle MACROs used to build switch statements.

COMMANDLINE

  • Updated Und Settings -CommandAddMode to correctly add files and directories to the project as Relative or Absolute independent of the Settings -AddMode configuration.

LICENSING

  • Licensing dialog – Fixed a text issue with multiple "days" showing up.

PROJECT

  • Updated the New Project Wizard so that none of the languages are on by default during the initial new project setup.

WEB PARSER

  • For Web Javascript, made changes to allow parsing of Javascript 6 classes.
  • For Web Javascript, made changes to handle import and export syntax for Javascript 6.

Understand Build 824

(Build b824) – 29 Jan 2016

CODECHECK

  • Updated MISRA 2012 rule 8.4 and All Check script compatibleDeclarationVisibleWhenExternalLinkageIsDefined.upl to ignore main.
  • Updated incompleteConstructorInitializationList.upl to handle class templates correctly.

GRAPHS

  • Update to UML Sequence Diagram. Shows undefined functions in their own lifeline.

PROJECT

  • Fixed failure to update fuzzy/strict settings panels on change.

STRICT PARSER

  • Fixed worker process crash on malformed lambda.

Understand Build 823

(Build b823) – 26 Jan 2016

CODECHECK

  • Fixed a bug in MISRA 2008 rule 4-5-1, MISRA 2004 rule 12.6 and All Check script booleanOperatorShallBeUsedCorrectly.upl where the token following a boolean was not being tested.
  • Add Regular Expression option to Naming Convention Checks.

COMMANDLINE

  • Fixed failure to start Und in interactive mode.
  • Updated Und version with the "-dbversion" switch. This will allow the users to view the database version creation and modified build number. The database "-db" will need to be supplied. I.E. und version -dbversion somedatabase.udb

PROJECT

  • Fixed crash on project rescan.

Understand Build 822

(Build b822) – 22 Jan 2016

CMAKE

  • Fixed relative name lookup.

CODECHECK

  • Updated MISRA 2012 rule 8.6 and All Check script identifierWithExternalLinkageOneDefinition.upl to not run on unknown or undefined objects.
  • Updated MISRA 2008 rule 8-4-2, MISRA 2004 rule 16.4, and All Check script sameIdentifiersInDeclAndDef.upl to use lexeme->ent for greater accuracy.
  • Fixed a bug in MISRA 2012 rule 8.2, MISRA 2008 rule 8-4-2, MISRA 2004 rule 16.4, and All Check scripts functionsTypesInPrototypeForm.upl as well as sameIdentifiersInDeclAndDef.upl where function MACRO expansion was not handled correctly.
  • Updated MISRA 2012 rule 5.8 and All Check script externalIdentifiersUnique.upl to no longer test unknown entities.
  • Fixed bug in missingParameterName.upl where >> was not handled correctly.

ECLIPSE

  • Update Eclipse plugin on update site to version 1.1.3.

GENERAL

  • Changed new project wizard to allow import from CMake compile command databases.

GRAPHS

  • UML Sequence Diagram C, fix for an issue where functions do not have a valid parent.

LICENSING

  • Fixed an issue with the license server not returning a valid license when looking for the earliest available non maintenance expired license.

METRICS

  • For C#, added knot count metrics.

PROJECT

  • Allow files and directories that are automatically added during analysis to be excluded from the project instead of removed entirely. This means that they won't be re-added during subsequent analyses.
  • Fix rescan to not force a full reparse of MSVC projects.

VISUALSTUDIO

  • Add support for MSVC 2015.

Understand Build 821

(Build b821) – 15 Jan 2016

ADA

  • Added new 'end body' relations for ends of program unit bodies. Made declare relations for 'accept..do' statements 'declare body' relations.

CODECHECK

  • Fixed a bug in missingParameterName.upl where a false positive was thrown when a std::array object was used as a parameter.
  • Updated HIS 01 and CommentCodeRatio.upl to have an option to run on either per file or per function.
  • Updated unusedLocal.upl to ignore __range local object that's created during a range based loop.
  • Updated MISRA 2004 rule 16.3, All Check script allFuncParamsNamed.upl and the InfoSiftr.pm library to utilize entities for more accurate parameter parsing.

COMMANDLINE

  • Updated Und to include an -exitstatus (lowercase) command line parameter for CodeCheck. This will override the errorlevel returned by Und with the CodeCheck violation count.

GENERAL

  • Added Scopes List support for basic, cobol, javascript, php, plm, vhdl and xml.

GRAPH

  • Updated the UML Sequence Diagram to display the function filename instead of the function name in the lifeline header. The activation/click lifeline header will be for the file as well (not the function).

PERL

  • Updated a_globals.pl with configurable flag options for testing local objects used across multiple program units.

PROJECT

  • Don't show watched directories that are empty because all of their contents are excluded.
  • Added project settings page to manage CMake compile command databases.
  • Add CMake compile command databases as synced project files.

STRICT

  • Fixed missing define reference to exception catch variable decls defined inside of lambdas.

VHDL

  • Changed 'end' references to 'end body' for package and subprogram body declarations.

Understand Build 820

(Build b820) – 8 Jan 2016

CODECHECK

  • Fixed bug in MISRA 2008 rule 9-3-2 and All Check script memberFunctionsShallNotReturnNonConstHandles.upl to ignore methods with a const return type.
  • Updated MISRA 2012 rule 8.6 and All Check script identifierWithExternalLinkageOneDefinition.upl to have an option for exempted namespaces.
  • Updated MISRA 2012 rule 8.6 and All Check script identifierWithExternalLinkageOneDefinition.upl to not test lambda functions.

ECLIPSE

  • Removed the limit on how many files could be added to a new Understand project when creating it with the Eclipse plugin.

GENERAL

  • Updated the View Menu and removed the Scope List View button from the toolbar.

GRAPHS

  • Add an option to the UML Class diagram to hide standard library classes.

JAVA PARSER

  • Added support for lambda parameter type inferrence.

STRICT

  • Fixed end reference location of lambda functions.

TOOLS

  • Fixed icon size issue and extra separator for Mac in the UserTools toolbar.

Understand Build 819

(Build b819) – 25 Dec 2015

EDITOR

  • Fixed regression in triggering indent after inserting opening curly braces.

GRAPHS

  • Added C support for UML sequence diagrams.

JAVA PARSER

  • Fixed bug where references to any class '?' indicator caused an increment in the count of coupled classes.

Understand Build 817-818

(Build b817-818) – 18 Dec 2015

  • BUILD 817: Chinese Special Build

API LEXER

  • Fixed bugs in column determination in api lexer when handling certain c++ macro expansions.

C#

  • Add C# project option to control if extending standard classes is counted in MaxInheritanceTree metric. The default behavior in new and existing projects is to not count standard classes in the MaxInheritanceTree metric.

CODECHECK

  • Updated Scott Meyers 9 and All Check script virtualFUnctionCallInConstructorDestructor.upl.
  • Updated MISRA 2008 rule 3-2-4, MISRA 2004 rule 8.9, and All Check script externalLinkageExactlyOneDefinition.upl to not test lambda functions.

COMMANDLINE

  • Fixed an issue with the -CommandAddMode not adding relative paths.

IREPORT

  • Add architecture information to the API Info interactive report.

JAVA

  • Added super name to type text for variables and parameters defined using <? super type-name>.
  • Add java project option to control if extending standard classes is counted in MaxInheritanceTree metric. The default behavior in new and existing projects is to not count standard classes in the MaxInheritanceTree metric.

PROJECT

  • Removed info browser sync to the current selection when the project browser gains focus.

SEARCH

  • Fixed Find in Files Architectures to load correctly on a per project basis.

Understand Build 816

(Build b816) – 14 Dec 2015

COBOL

  • Fixed failure to analyze free format files with compiler directives at column 6.

JAVA API

  • Added 'type' and 'freetext' functions to Entity class.

STRICT PARSER

  • Fixed regression in build 815. Unknown files got an empty name.

Understand Build 815

(Build b815) – 12 Dec 2015

API

  • Fixed bugs in api lexer when handling c++ macro expansion.

CODECHECK

  • Fixed bug in MISRA 2008 rule 0-1-7 and All Check script discardedReturnValues.upl where a preprocessing #if was being treated as a standard if statement.
  • Updatd MISRA 2008 rule 8-5-1 and All Check script variablesShallHaveValueBeforeUsed.upl to not test template parameters.
  • Updated MISRA 2008 rule 3-2-3, MISRA 2004 8.8, and All Check scripts typeObjectOrFunctionShallBeDeclaredOnce.upl and extDeclareOneFile.upl to not run on Implicit declarations.
  • Updated missingParameterName.upl to correctly handle templated parameters.
  • Updated MISRA 2004 rule 16.3 and All Check script allFuncParamsNamed.upl to ignore =delete and =default delcarations.

COMPILER

  • Add support for @ extension in MPLAB XC8 compiler support.
  • Add support for Renesas RL78 C++ compiler.

GENERAL

  • Updated the bottom layout area to function exactly like the left layout area (saves and restores correctly instead of grouping on startup).
  • IReport Modify the API Info Interactive Report to print entity names as objects that can be interacted with.

JAVA PARSER

  • Added generic type arguments to type text for variables and parameters.

METRICS

  • Add support for MaxNesting metric in c++ classes.

PYTHON API

  • Fixed Ent.refs() signature in class summary to mention 'unique' parameter.

SEARCH

  • Fixed an issue with changing the Find in Files dialog to the Directory setting failing to resize properly.
  • Updated the Find in Files dock/drawer to close the dock on Esc if a dock and close the drawer on Esc if a drawer.

STRICT PARSER

  • Fixed header resolve errors when headers are found in the working directory or when the input character encoding is different from the system encoding.

Understand Build 814

(Build b814) – 4 Dec 2015

CODECHECK

  • Updated MISRA 2008 rule 9-3-3 and All Check script methodsMadeConstOrStaticIfPossible.upl to have an option to ignore virtual functions.
  • Updated MISRA 2008 rule 7-1-2 and All Check script parameterShallBeDeclaredAsConst.upl to detect simple cases where the parameter is passed out of scope.
  • Fixed bug in MISRA 2012 rule 5.3, MISRA 2008 rule 2-10-2, MISRA 2004 rule 5.2, and All Check script scopeHiding.upl where overriding functions may be detected as false positives.
  • Updated MISRA 2012 rule 8.3, MISRA 2008 rule 3-2-1, MISRA 2004 rule 8.3, and All Check rule allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl to use expanded MACRO text.
  • Updated All Check script destructorSetDataPtrTo0.upl to correctly handle C style and C++ style type casting.

PROJECT

  • Updated the project configuration rescan to properly scan for the file types that may have been changed but not saved yet (while still in the configuration dialog).

STRICT PARSER

  • Fixed possible crash after a large number of consecutive file-not-found errors.
  • Disabled error related to MS-style inline asm. Inline asm isn't analyzed.
  • Added some missing special keywords (e.g. __declspec) to macro expansion. Fixed errant macro expansion tokens expanded from macro names passed as arguments.

WEB PARSER

  • For php, fixed crash on files with unterminated comments.

Understand Build 813

(Build b813) – 27 Nov 2015

CODECHECK

  • Fixed an issue with CodeCheck results where Entity name and Check result error message were not displaying html text correctly.

PROJECT

  • Updated Und to allow users to set the c++ option 'Kill Worker Processes After'. -c++KillWorkerProcessAfter – Note that valid values range between 1 and 99 minutes.
  • Added -commandaddmode option to Und. This will allow for users to specify to add includes, macros etc. in a different addmode for the Und Command (single use). Arguments are 'Absolute' or Relative'.

Understand Build 812

(Build b812) – 21 Nov 2015

CODECHECK

  • Updated MISRA 2008 rule 8-3-1 and All Check script overridingVirtualFunctionsShallNotChangeDefaults.upl to not test constructors and destructors.
  • Fixed but in MISRA 2008 rule 9-3-3 and All Check methodsMadeConstOrStaticIfPossible.upl where non static data members were not being detected properly.
  • Updated MISRA 2004 rule 16.3, All Check script allFuncParamsNamed.upl, and the library InfoSiftr.pm to properly utilize MACRO expansion when the 'Save expanded Macro text' option is turned on.
  • Updated MISRA 2004 rule 8.11 and All Check script explicitStaticWhenInternal.upl to not run on classes.
  • Updated MISRA 2008 rule 17-0-3 and All Check script standardLibraryFunctionsShallNotBeOverridden.upl to not run on classes.
  • Updated MISRA 2004 rule 8.10 and All Check script staticLinkageWhenPossible.upl to not run on classes.

PYTHON PARSER

  • Fixed bug where an import from a subpackage using 'from . import name' caused an 'implicit import' relation to the __init__.py file in the current directory.

SEARCH

  • Updated the editor search line (Ctrl+f) to ensure that the search box is at least so wide and made the "Search Wrapped" label a tooltip to provide additional space.
  • Updated Find in Files window to allow the dock/undock feature (pushpin icon) to behave correctly. Note that Escape will not close the window when not free floating.

STRICT PARSER

  • Show calls to functions marked with the noreturn attribute as an exit from the function in the control flow graph.

Understand Build 811

(Build b811) – 13 Nov 2015

CODECHECK

  • Fixed a few Perl warnings being caused by mismatched number of parameters.
  • Updated MISRA 2012 rule 8.2 and All Check script functionsTypesInPrototypeForm.upl to correctly handle C++ 11 lambda functions.
  • Updated MISRA 2012 rule 8.2 and All Check script check functionsTypesInPrototypeForm.upl to ignore template specializations.

COMMANDLINE

  • Updated Und to accept wildcards when using the command line ignore options (-C++Ignore, -C++IgnoreAdd, -C++IgnoreRemove).

GENERAL

  • Fixed loss of bookmarks after analysis.

PROJECT

  • Updated the add directory (new project) in Understand and Und to not ignore the exclude when setting the watch property to off.

STRICT PARSER

  • Reduced default template instantiation depth to 128 on Windows.

TOOLS

  • Updated UserTools to not try to run the command if empty.

Understand Build 809

(Build b809) – 6 Nov 2015

C# PARSER

  • Added support for c# 6.0 index initializers.
  • Fixed bug loading some reference dll files that have structures used as generic actual parameters for parent classes. This fix may cause changes to CountMethodAll and CountClassCoupled metrics.
  • Add support for MSVC 2015 C# project.
  • Added support for c# 6.0 string interpolation.
  • Added support for c# 6.0 exception filters.

CODECHECK

  • Updated MISRA 2008 rule 6-4-8, MISRA 2004 rule 15.5 and All Check script switchStatementShallHaveCaseClause.upl to allow for MACROs used in switch construction.
  • Updated MISRA 2008 rule 0-1-7 and All Check rule discardedReturnValues.upl to properly handle void casted member functions.
  • Fixed bug in MISRA 2008 rule 8-4-1 and All Check script functionsShallNotBeDefinedWithEllipsisNotation.upl to handle template functions correctly.

GENERAL

  • Fixed popup menu issues in entity filter and 'C++ (Strict)' options panel on Linux and Solaris. Fixed command line warnings related to the same issue.
  • Potential fix for Getting Started News hanging and potentially crashing Understand if shutting down in that state.

LICENSESERVER

  • Updated licensing text email body for sending an almhostid to scitools.
  • Updated the LicenseServer.exe to clear all data and load the new data in the reporting (graph and chart) if a new log file is selected.

STRICT PARSER

  • Fixed invalid implicit init reference for data members with an in-class initializer.

Understand Build 808

(Build b808) – 31 Oct 2015

C# PARSER

  • Added support for VS 2015 property initialization.
  • Added support for the c# 'using static' directive and for the use of an expression as a property getter.
  • Added support for c# 6.0 null-conditional operators.

CODECHECK

  • Updated MISRA 2008 rule 7-1-2 and All Check script to correctly handle const type * const correctly.
  • Fixed bug where MISRA 2008 rule 15-1-1 and All Check script throwShallNotItselfCauseAnException.upl could get stuck in an infinite loop.
  • Updated MISRA 2012 rule 8.6 and All Check script identifierWithExternalLinkageOneDefinition.upl to not fail in the event of an entity without a reference.
  • Updated CodeCheck Ignores to use the script error message without the variables filled in to compare when removing ignored violations.
  • Updated noDynamicMemory.upl to have an option to ignore smart pointers.

PARSER

  • Improve c++ resolve time.

STRICT PARSER

  • Fixed possible worker process crash on template parameter dependent bit width expressions.
  • Added option to kill worker processes after timeout. Default is two minutes.
  • Fixed hang on abort when reporting error messages.

TOOLS

  • Added links to LiveChat for evaluation customers.

WINDOW

  • Fixed split workspace drop into chosen tab order.

Understand Build 807

(Build b807) – 23 Oct 2015

CODECHECK

  • Updated MISRA 2008 rule 8-0-1 and All Check script anInitDeclaratorListShallConsistOfASingleInitDeclarator.upl to not throw a false positive on template declarations that use a comma.
  • Updated catchConstRef.upl to have an option to ignore ellipsis.
  • Add Hersteller Intiative Software (HIS) Metrics to CodeCheck.
  • Updated MISRA 2008 rule 8-4-4 and All Check script functionIdentifierShallBeUsedToCallOrAddress.upl to correctly handle function templates.
  • Updated MISRA 2008 rule 15-3-5 and All Check script aClassTypeExceptionWillBeCaughtByReference.upl to be more accurate.

FUZZY PARSER

  • For fuzzy c++ parser, fixed bug where deref references could be erroneously created for some parameter declarations.

INFOBROWSER

  • Updated the New Information Browser key command to not send a sync to the other Information Browsers if the Ctrl key is used. Used the Ctrl key to stay uniform with the option to hold the Ctrl key when using the 'View Information' context menu to open a new IB.

STRICT PARSER

  • Added missing throw and catch references.

TOOLS

  • Updated the hover text in User Tools – Menu Text.
  • Fix for the User Tool ordering with the Move Up and Move Down buttons.
  • User Tools – Added convenience menu items to directly access parts of the User Tools configuration.

WEB PARSER

  • For Php, fixed bug where some static class member references were not recognized.

Understand Build 806

(Build b806) – 17 Oct 2015

C# PARSER

  • Fixed bug where same named parameters within overloaded methods had the same uniquename.

CODECHECK

  • Updated MISRA 2004 rule 16.3 and All Check allFuncParamsNamed.upl to have a configurable option to ignore fuctions declared with macros.
  • Removed incremental find popup menu because of resizing and other issues.
  • Updated All Check script uninitialized_objects.upl to ignore static and global objects.
  • Updated MISRA 2012 rule 8.7 and All Check script noExternalLinkageUnlessExternal.upl to recognized friendby references as external usage.
  • Updated All Check script fixedValuesConstants.upl to have an option to ignore pragma directives.

COMPARE

  • Potential fix for a crash in the DiffView component.

DOCUMENTATION

  • Fix title in 4.0 help documentation.

EDITOR

  • Fixed bookmarks disappearing and getting lost after removing the preceding line.
  • Avoid triggering auto-indent with '{' in the middle of a line.

FUZZY PARSER

  • Fixed fuzzy c++ parser to pickup references to constants used as parameters initializers in function declarations and definitions.

JAVA PARSER

  • Fixed bug where same named parameters within overloaded methods had the same uniquename.

LICENSING

  • License Server Status (licenseserver.exe) report updated to account for multiple 4.0 licenses.

PROJECT

  • Removed the option to stop analysis and keep partial analysis data.
  • Fixed deadlock when trying to abort analysis during the resolve phase.

STRICT PARSER

  • Restore some missing init references.
  • Fixed reference kind of deleted special member functions.
  • Allow language standard flag to be spelled with two dashes and normalize to lower case.

Understand Build 805

(Build b805) – 10 Oct 2015

C# PARSER

  • Fixed invalid syntax error when using 'as <type>' in a conditional expression.

CODECHECK

  • Fixed bug in MISRA 2008 rule 16-1-1, MISRA 2204 rule 19.14 and All Check script definedPreProcessorOperatorTwoStandardForms.upl where chained defined operators inside a larger marcro defintions was not handled correctly.
  • Updated MISRA 2008 rule 18-4-1 and All Check script noDynamicMemory.upl to allow for C++ 11 method and constructor delete.
  • Updated MISRA 2008 rule 8-4-4, MISRA 2004 rule 16.9 and All Check script functionIdentifierShallBeUsedToCallOrAddress.upl to correctly handle member functions and functions defined within a namespace.

COMMANDLINE

  • Updated the Und dependencies export 'longnoroot' and 'root' format to export the correct root.

EDITOR

  • Fixed possible crash in auto-indent within C/C++ preprocessor conditionals.

FAVORITES

  • Updated the Favorites 'New Favorites' dialog to have focus on the line edit box.
  • Updated Favorite Groups to select the next item in the list after removing the currently selected item.

GENERAL

  • Add Understand icon to the install directory to make shortcuts easier to create.
  • Fixed invalid prompt to save modified editors after canceling the project configuration dialog.

PROJECT

  • Fixed a case sensitivity Windows issue with the 'Browse for Missing Includes' dialog.
  • Fixed file encoding override copy/paste.

STRICT PARSER

  • Fixed failure to remember override settings for C/C++ language standard and sysroot when changed from the settings dialog.
  • Fixed C/C++ language standard override copy/paste.
  • Recognize 'h++' as a header extension.

Understand Build 804

(Build b804) – 5 Oct 2015

COMMANDLINE

  • Updated Und to use a Table of Contents for the -html and -htmlsnippets CodeCheck report export.

DOCUMENTATION

  • Update documentation to reflect 4.0 changes.

GENERAL

  • Clarify user_api functions that return temporary strings that must be copied immediately by the caller.
  • Fixed crash when closing or switching projects with annotations.
  • Fixed failure to update title bar file name in split view.

JOVIAL

  • Made Jovial 3 subroutines declared in compool files but never implemented have kind 'unresolved subroutines'.

SEARCH

  • Fixed a Find in Files issue where Relative and Absolute directory paths were not being searched correctly.

Understand Build 803

(Build b803) – 2 Oct 2015

C# PARSER

  • For c#, fixed possible crash in attribute parsing.

CODECHECK

  • Fixed bug in MISRA 2008 rule 6-6-1 and All Check script labelReferencedByAGotoShallBeInSameBlock.upl where /* and */ are used in alternating strings.
  • Updated MISRA 2008 rule 7-1-2 and All Check script parameterShallBeDeclaredAsConst.upl to ignore function pointer parameters.
  • Upgraded MISRA 2008 rule 2-10-5, MISRA 2004 rule 5.5 and All Check staticReuse.upl to include an option to ignore functions that are unknown or unresolved.

FUZZY PARSER

  • Fixed bug in fuzzy c++ parser where macros defined in local scopes were not handled properly.

GRAPHS

  • Rename deferred option in Control Flow Cluster graph to ‘Show Finally-Block Flows’ and enable by default.

IREPORT

  • Add Interactive Report to display API Information for all entities (previously the All Info script).

JOVIAL

  • Added essential complexity and path count metrics.
  • Improved handling of Jovial 3 goto switch statements in control flow graph.
  • Fixed problem where the use of Jovial 3 goto switch statements did not increase the cyclomatic complexity.

SEARCH

  • Fixed an issue where adding Architectures, etc.. would resize the Find in Files dialog inappropriately.

STRICT PARSER

  • Added a persistent warning dialog box for strict parser errors.

TREEMAP

  • Updated the Metrics – TreeMap hover text.

Understand Build 802

(Build b802) – 26 Sep 2015

CODECHECK

  • Added MISRA 2012 rule 15.4 and MISRA 2004 rule 14.6 to Code Check. Also updated MISRA 2008 rule 6-6-4 and All Check script noMoreThanOneBreakOrGoto.upl to be more accurate and robust.
  • Added MISRA 2012 rule 15.7 to Code Check.
  • Added MISRA 2012 rule 15.5 to Code Check.

COMMANDLINE

  • Fixed an issue with Und not adding include paths with environment variables correctly on windows.

FUZZY PARSER

  • Added support for National Instruments LabWindows/CVI compiler to fuzzy c++ parser.

JOVIAL

  • Added control flow graphs for Jovial.
  • Added api lexers for Jovial.

    LICENSING

    • Updated Mac SDL licensing so that it will not be overwritten on future updates.

    STRICT PARSER

    • Added automatic detection of available Apple SDKs on Mac.
    • Fixed regression in showing Windows-specific options in target settings.
    • Downgrade unqualified pointer to member function error to a warning in MSVC compatibility mode.
    • Enable modules by default for Objective-C files.
    • Added better support for blocks.
    • Fixed possible crash on bit field expressions that don't evaluate to an integer constant.
    • Added C++14 language standard options to the configuration panel.

  • Understand Build 801

    (Build b801) – 19 Sep 2015

    BUILDSPY

    • Added automatic detection of -std flag for switching the C/C++ language standard.

    CODECHECK

    • Fixed a bug in MISRA 2012 rule 5.1 and externalIdentifiersShallBeDistinct.upl where unresolved entities were incorrectly handled.
    • Fixed bug in MISRA 2012 rule 15.6 and All Check script iterationStatementShallBeCompoundStatement.upl where do .. while loops were not being handled correctly.
    • Fixed bugs in MISRA 2012 rule 8.4, 6.1 and both of their All Check counterparts as well as externalTypeMismatch.upl to correctly handle typedefs.
    • Updated MISRA 2008 rule 0-1-7 and All Check script discardedReturnValues.upl to handle inline void declarations correctly.
    • Fixed an issue with the tabs shifting focus incorrectly when sorting alphanumerically through the dimple menu and on the CodeCheck tab title change (when alphanumeric sorting is enabled). Also fixed the CodeCheck modified icon (red/green) to show correctly.
    • Updated MISRA 2012 rule 8.6 and All Check script identifierWithExternalLinkageOneDefinition.upl to include a note about adding system header files to project.

    GRAPHS

    • Fixed an issue where the .DOT export option was not available on various graph types.
    • For Ada control flow graphs, fixed bug where text was missing for 'abort' statements and select 'when' statements.
    • Fixed a crash on Mac when enabling the .DOT export.

    STRICT PARSER

    • Fixed analysis of preprocessed files containing GNU line markers.
    • Added support for all MSVC extensions used in MFC/ATL headers.

    WEB PARSER

    • Fixed bug where entity fullnames sometimes had double '..' sequences.
    • For Javascript, fixed bug in nodejs mode where 'exports' properties from different files were being merged.

    Understand Build 800

    (Build b800) – 10 Sep 2015

    CODECHECK

    • Fixed a bug in MISRA 2008 rule 3-2-1 and All Check script allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl where declarations of type ( Function ) ( Parameters ) were not handled correctly.
    • Added MISRA 2012 rule 15.3 to Code Check.
    • Fixed bug in MISRA 2008 rule 3-2-1 and All Check script allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl where DeclareIn Using references were handled improperly.

    COMMANDLINE

    • Added correct usage text for Und analyze -rescan. Affected files will be analyzed after the rescan.
    • Added a new switch -rescanwithoutanalyze to allow users to utilize the Und rescan ability without requiring an analyze of the added/removed files.

    GENERAL

    • Fixed sluggish performance in updating the menu system with the new User Tool "Disable for this project" feature.

    LICENSING

    • Update dongle licenses to support newer Operating Systems.
    • Fixed an Understand Portable License issue where a weird dialog appeared the first time Understand was run (clean installation) and the portable license dongle was in use.

    METRICS

    • Fix calculations of computed project metrics, such as Cyclomatic.

    PYTHON PARSER

    • Fixed bug where 'parent' of a python package was sometimes one of the referencing files.

    STRICT

    • Added missing init reference for C++11 in-class initialization of non-static data members.

    Understand Build 799

    (Build b799) – 5 Sep 2015

    CHANGE

    • Fix for potential crash when analyzing and accessing the Entity Comparison.

    COBOL

    • Added support for EJECT and SKIP1/SKIP2/SKIP3 statements.

    CODECHECK

    • Fixed a bug in MISRA 2008 rule 6-5-1 and All Check script forLoopShallContainASingleLoopCounter.upl where the new C++ 11 style for loop would crash the script.
    • Fix a CodeCheck issue when double clicking a Result code snippet and no valid entity is associated with that violation. E.G. TODO comment.
    • Fixed a bug in MISRA 2008 rule 3-2-1 and All Check script allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl where nested parenthesis within a declaration would crash the script.
    • Fixed bugs in MISRA 2008 rule 6-5-3, 6-5-5, All Check scripts loopControlVariableNotModifiedWithinConditionOrExpression.upl and loopCounterShallNotBeModified.upl where lexigraphically scanning the for loop did not handle C++ 11 style for loops correctly.
    • Updated externalIdentifiersShallBeDistinct.upl and identifiersDistinctInScope.upl to fail without a script error when scanning malformed code.

    FORTRAN PARSER

    • Fixed bug where some macro expansions caused problems in the control flow graph.

    GENERAL

    • Fixed an issue with File Dependency CSV Export Dialog hanging on Mac.
    • Fixed library link names for user API library on Mac.

    LICENSING

    • Updated the License Server to not allow the AlmFree command to free ToGo licenses.

    STRICT

    • Added option to compare include files by contents instead of path when adding found includes.
    • Fixed worker process crash on designated initialization in an anonymous struct or union.

    TOOLS

    • Updated User Tools to allow the user to disable a user tool depending upon the project loaded.

    Understand Build 798

    (Build b798) – 28 Aug 2015

    ADA

    • Changed allocation reference kind from a plain 'ref' to a 'use alloc'. Also, changed reference kind for a default formal subroutine from a 'call' to a 'ref default formal'.

    ANNOTATIONS

    • Fixed an issue with Annotations disappearing from various text files.

    CODECHECK

    • Updated MISRA 2012 rules 5.1, 5.8 and 8.5 as well as All Check script externalIdentifiersUnique.upl to be able to run on multi language projects.
    • Fixed bug in MISRA 2012 rule 7.3 where a bad entity was being passed to violation.

    COMPARE

    • Updated the Tools – Compare – Files results to display the MD5 hash when the files are considered the same.

    GENERAL

    • Previewer – Added a keybinding that allows users to toggle the previewer sync checkbox.
    • Fixed text typo in the Project Portability dialog.

    INFOBROWSER

    • Add includeby references to Pascal References IB field.

    PARSER

    • For Pascal/Delphi, made missing include file messages 'warnings' instead of 'errors' to be consistent with other languages.

    STRICT

    • Fixed possible crash on #include_next directives with the option to search for missing includes among project headers enabled.

    UPERL

    • Fixed crash on database load with external perl + understand module.

    Understand Build 797

    (Build b797) – 21 Aug 2015

    API

    • Fix error handling strings with parentheses in api lexer with macro expansion enabled.

    C# PARSER

    • Fixed bug where no 'end' reference was produced for anonymous types.

    CODECHECK

    • Updated MISRA 2008 rule 7-3-4 and All Check script usingDirectivesShallNotBeUsed.upl to include line and column numbers in violations.
    • Updated MISRA 2012 rule 8.5 to include file, line number and column number of one of the declare references.
    • Updated MISRA 2012 rule 8.3, MISRA 2004 rule 8.3, MISRA 2008 rule 3-2-1 and All Check script allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl to be more robust in the Strict parser.
    • Fixed potential crash in CodeCheck when jumping to violation code in the Results Locator.
    • CodeCheck – Terminology updated (Analysis – Inspect).
    • Updated name of noErrno to be consistent with other check names.
    • Added 'Fuzzy' tag to MISRA C 6.1, bitFieldsDeclaredWithAppropriateType.upl, singleBitNamedBitFieldsNotSigned.upl, and bitFieldsBoolOrExplicitSignedness.upl.
    • Updated MISRA 2012 rule 8.14 and All Check script restrictShallNotBeUsed.upl to include a notice about using C99 and later.
    • Updated MISRA 2012 rule 8.6 to include the Strict Only tag.
    • Added MISRA 2012 rule 15.6 and All Check script iterationStatementShallBeCompoundStatement.upl to Code Check.

    FUZZY PARSER

    • Fix bug handling MSVC solution files with '.' project subdirectory specifications.

    GENERAL

    • Fixed an issue with renaming not working properly on files with a different case.

    GRAPH

    • For control flow graphs, make change to better handle switch/case statements with no branch alternatives.

    INFOBROWSER

    • Bookmark and IB windows now will display the project name if there are multiple instances of Understand running and the windows are floating (not Docked).

    JAVA PARSER

    • Added Java Implicit Member Variable and Java Implicit Method kinds to represent the implicit array members 'clone' and 'length'.

    PASCAL PARSER

    • For Pascal/Delphi, fixed some problems with include file processing.

    STRICT PARSER

    • Fixed regression in saved macro expansion text for some functional macros.

    Understand Build 796

    (Build b796) – 15 Aug 2015

    ANNOTATIONS

    • Updated the orphaned annotations to allow the user to right click the annotation or to double click the orphan annotation detail and set the filter text.

    CODECHECK

    • Updated MISRA 2008 rule 6-5-3 and All Check script loopCounterShallNotBeModified.upl to be more accurate.
    • Fixed bug in MISRA 2004 rule 14.10 and All Check script danglingElse.upl where an else if statement that ended with preprocessing directives would not properly detect the dangling else.
    • Fixed a bug where MISRA 2012 rule 8.7 and All Check script noExternalLinkageUnlessExternal.upl where unresolved objects were being tested for parents.

    COMMANDLINE

    • Fixed an issue in Und where settings -override_c++Includes commands were crashing.

    INDEX

    • Fixed intermittent instant search indexer crash.

    STRICT

    • Fixed several saved macro expansion text issues.

    Understand Build 795

    (Build b795) – 10 Aug 2015

    ADA PARSER

    • Fixed possible crash on attempt to parse binary files as Ada source.

    ANNOTATION

    • Fixed crashes in Annotation Orphan management.
    • Fixed an Annotation issue when searching annotations and including orphans.

    CODECHECK

    • Updated MISRA 2004 rule 13.3, MISRA 2008 rule 6-2-2 and AllCheck script testingEqualityInFloatingPointValues.upl to also test for !=
    • Updated namespaceNamingConvention.upl to include a configurable option for file names and line numbers.
    • Updated CodeCheck result to sync when visiting the source code.
    • Updated MISRA 2004 rules 20.10 and 20.11 as well as MISRA 2008 rules 18-0-2, 18-0-3 and 18-0-5 to include a configurable option to allow more than one violation per file.
    • Fixed a bug in pointersMustBeInitialized.upl where pointers were not being tested unless the option box was checked.
    • Updated MISRA 2004 rule 6.5, MISRA 2008 rule 9-6-4 and AllCheck script signedBitFieldsUseful.upl to include the Fuzzy Only tag.
    • Fixed bug in MISRA 2004 rule 20.6 and AllCheck script noOffsetof.upl where not all references to forbidden macro were being checked.
    • Fixed bug in MISRA 2008 rule 3-1-2 where functions declared within another function were not being flagged as violations.
    • Fixed bug in MISRA 2004 rule 20.7 and MISRA 2008 rule 17-0-5 where setjmp macro usage was not properly detected.

    EDITOR

    • Fixed possible crash on startup or other interference with editor configuration from a local Lua installation with the LUA_PATH environment variable set.

    GENERAL

    • Fixed a Linux issue where the Project – Configure “Add a file” dialog was not always filtering correctly.
    • Fix to the Mac “Preferences” to be modal – keeps the application wide keybindings from activating when editing them in the Tools – Options/Preferences – Keybindings page.
    • Fixed a Linux issue of not being able to add an extensionless file during Project Settings – Add File dialog.

    GRAPHS

    • Add options to UML Class diagram to change layout direction and colorize edges for better visibility.
    • Potential fix for an issue in the Cluster Control Flow graphs.

    PARSER

    • For assembly, fixed possible crash in parse when Assembly is selected as a language but no assembly files are in the project.

    PASCAL PARSER

    • For Pascal/Delphi, fixed bug where some relations could be missing from include files.
    • For Pascal/Delphi, fixed bug where line count metrics for some include files were zero instead of the actual count value.

    STRICT PARSER

    • Added simple interface to recursively search a directory for frameworks.

    Understand Build 794

    (Build b794) – 1 Aug 2015

    BUILDSPY

    • Fixed regressions in detecting the source file in some compile commands.
    • Fixed library link paths on Mac.

    FORTRAN PARSER

    • Fixed bug where use of 'endprocedure' and 'endsubmodule' in fixed format files caused the creation of invalid local variables.
    • Fixed bug in fixed format files where reference column numbers were incorrect when multiple semicolon separated statements appeared on a single line. These statements also appeared incorrectly in the control flow graph.
    • Made change to create an unknown module when a submodule's parent is not found.
    • Added support for Fortran 2008 lock and unlock statements.
    • Added intrinsics08.txt file with list of intrinsic functions and modules for Fortran 2008. Added some missing names to the Fortran 2003 instrinsics file.
    • Improved handling of unknown types. All unknown types with the same name now merge into a single entity instead of generating a separate entity for each referencing program entity.

    GENERAL

    • Fixed an issue where the Info Browser – Visit Next and Visit Previous would not leave the focus of a released window.
    • Save-All toolbar button now displays properly.
    • Fixed an issue with the Navigator not marking unsaved edited files with "*" correctly.

    LICENSING

    • Fixed an issue in almtest where ToGo debug info was showing unnecessarily.

    REPORTS

    • Fixed bug where the line break was sometimes missing after the first line of an html object cross ref item.

    SEARCH

    • Find in Files – Updated to dynamically resize the height of the dialog depending upon the "Find In" selection.
    • Find in Files – Open Files – Fixed to use the File Types field correctly.

    Understand Build 793

    (Build b793) – 27 Jul 2015

    PARSER

    • Improved parsing of source files with apparent embedded null characters, due to missing or improper file encoding specifications.

    PYTHON PARSER

    • Made change to count docstring literals as comments instead of statements.
    • Fixed bug where an ‘import from’ an unknown module or package could result in an ‘unknown module’ entity with itself as the ‘parent’.

    SEARCH

    • Find in Files – Moved the ! checkbox for file types to a separate line with text for clarification. Fixed the buttons to appear correctly on the Mac.

    STRICT PARSER

    • Fixed worker process crash on project header lookup from some #include_next directives.

    WEB PARSER

    • For web xml, fixed bug where invalid xml sometimes resulted in zero values for line count metrics.

    Understand Build 792

    (Build b792) – 18 Jul 2015

    ANNOTATIONS

    • Wrap Annotations in hover text in editor.

    CODECHECK

    • Fixed bug in MISRA 2004 rule 8.8 and corresponding All Check script where declaration of namespaces was not ignored.
    • In Codecheck Checks Panel, wrap the "Detailed Description: File\Path\…" label when it exceeds the width of the window.
    • Updated the Ignored Violations to display the notes as a column and allow for word wrap.
    • In Code Check Checks view, allow columns to be user-resized.
    • Added next page and previous page shortcuts to the codecheck window that can be set under tools->options->keybindings->codecheck.
    • Fixed a bug in MISRA 2008 rule 11-0-1 and it's corresponding All Check script where a POD class was treated as a Non-POD class.

    GENERAL

    • Only show indent file and indent selection options in files that support it.
    • Fix custom architectures to remember file entities when project portability changes.
    • Fix editor hover text for unknown functions to match info browser for the parameters and return type.
    • Add a right click menu option for c macros without a define reference to define/change the project value.
    • Possible fix for issue, editor tab tooltips sometimes missing.

    LICENSESERVER

    • Update to log usage and provide various reporting tables and graph.

    LICENSING

    • Almstatus – Updated the -b attribute to include the CheckedOut and CheckedIn status numbers. Also updated the -? (help) to detail the -b csv format.
    • Almhostid – Updated to include a -s to show all almhostid's including duplicates. Fixed the Almhostid descriptions that were incomplete or absent.

    PASCAL PARSER

    • For Delphi Pascal, fixed invalid syntax error parsing some nested type declarations.
    • For Pascal, fixed crash on parsing units with the same name as the containing namespace.

    PROJECT

    • Remember Project Browser File Sync checkbox state when Understand closes and reopens.

    SEARCH

    • Fixed Project Browser and Information Browser resize when showing incremental search.

    Understand Build 791

    (Build b791) – 10 Jul 2015

    ANNOTATIONS

    • Make the add/edit Annotations dialog non-modal. If a reparse invalidates the entity (or the scope for the line), then the Annotations cannot be saved.

    EDITOR

    • Added an option to wrap Annotations at a given column, available under tools->options->editor->advanced settings.
    • Show error message for crash on startup from missing or invalid configuration files (instead of silently failing).

    FORTRAN PARSER

    • Fixed bug in fixed format files where use of a double word keyword sometimes caused an incorrect column number for the following entity reference.
    • Make individual elements of Fortran fullname IB field clickable.
    • Add Children Information Browser field for Fortran modules.
    • Add Parent Information Browser field for Fortran submodules.
    • Fixed some syntax errors parsing Fortran 2008 submodules in fixed format files.

    GENERAL

    • Fix crash on import architecture from xml for xml files with extra spaces in the listed entities.

    LICENSESERVER

    • Fixed an issue where almhostid did not show on Mac/Linux. Also added the stop server for Mac/Linux.

    LICENSING

    • Almhostid – removed duplicate host ids.

    SEARCH

    • Fixed an issue in Find in Files / Replace in Files dialog to allow users to resize the dialog on the Mac.

    Understand Build 790

    (Build b790) – 3 Jul 2015

    ANNOTATIONS

    • Fix crash in line annotations saving non-project file.

    CODECHECK

    • In Codecheck Check List, select check when checkbox is clicked.

    EDITOR

    • Change editor tab tool tip to show absolute path.
    • Fixed hang on auto-indent after an unmatched closing parentheses.

    FORTRAN PARSER

    • Added support for Fortran 2008 submodules.
    • Added support for Fortran 2008 'impure' attribute.
    • Fixed bug where routines with explicit interface declarations had incorrect values for line counts, complexity, and paths.
    • Fixed bug where local entity created for a renaming 'use only' declaration was given the kind 'function' when a variable was renamed.

    GENERAL

    • Save changes to window positions and favorites as they occur.
    • Allow changing project portability and named roots from New Project Wizard.
    • Add a gui export option for macros and includes.
    • Save project information about open editors whenever an editor is open or closed.
    • In Gui for C# Reference File Alias List, allow named roots and convert files to project add mode.
    • Add a sync check box to the metrics browser.

    GRAPHS

    • Added an "Inverse Selection" option for graphs. The option must be given a keybinding under tools->options->keybindings->graph window to be used.

    INFOBROWSER

    • Add Parent IB field for Fortran submodules.
    • Add Children IB field for Fortran modules.

    LICENSESERVER

    • Make licenseserver binary executable on linux by default.

    PROJECT

    • For Project Settings that use file paths (includes, imports, and such):
    • – Check those settings for named roots in Missing Named Roots dialog.
    • – Add c++ frameworks, python imports, and assembly includes to the settings that follow project add mode.
    • – Don't remove values with unknown NamedRoots (fixes bug where adding a named root from und removed any settings with unknown name root.)
    • – Follow project add mode where possible when editing the following settings from und: assembly includes, cpp auto includes, cpp includes, cpp frameworks, fortran includes, java class paths, pascal includes, python import paths, file override cpp auto includes, file override cpp includes, file override cpp frameworks, file override fortran includes, file override pascal includes.
    • Show absolute file path in tooltips in project browser.
    • Make Project Browser sort by file extension case insensitive on windows.
    • For Project Settings that use file paths (includes, imports, and such):
    • Fix case where removing file from project browser while project browser was sorted by file extension scrolled to the next file alphabetically instead of to the next file by file extension.

    Understand Build 789

    (Build b789) – 29 Jun 2015

    ANNOTATIONS

    • Fix some line annotation weirdness.
    • Fix some line annotation issues on file save.

    COBOL PARSER

    • Fixed line count metrics for lines containing both code and comments in free format.

    EDITOR

    • Added option to print form feed inline instead of starting a new page.
    • Fixed printing issues in files containing control characters.

    FORTRAN PARSER

    • Fixed bug where reference information following 'end enum' was sometimes incorrect. Also, added support for Cray Fortran extension where enums can be named.

    GRAPHS

    • Added a key bindings page for graphs.
    • Fix issue with Show Inter Child Edges Default not applying to the collapsed start entity/architecture when the graph is first generated.
    • Fixed failure to activate some new graph windows when the option to sort tabs alphabetically is enabled.
    • Remove progress bars for graphs because of window resizing issues. Instead, show busy cursor when the mouse is over a graph that is still generating.
    • Show python class attributes in UML class diagram when showing class details.
    • Allow UML Class Diagram to be generated from a Python package.

    VHDL PARSER

    • Check for binary content before trying to analyze a file.

    Understand Build 787

    (Build b787) – 22 Jun 2015

    REPORTS

    • Fix error in Imports report where only the first file for a given letter was printed.

    Understand Build 786

    (Build b786) – 19 Jun 2015

    ANNOTATIONS

    • Show Annotations in hover text in graphs.

    COBOL PARSER

    • Fixed comment line counts in free format mode.

    CODECHECK

    • Added MISRA 2012 Directive 4.3 to Code Check.
    • Added MISRA 2012 Directive 4.4 to Code Check.
    • Added MISRA 2012 Directive 4.5 to Code Check and updated language on MISRA 2012 Directive 4.4.
    • Updated MISRA 2004 rule 8.10 and All Check script staticLinkageWhenPossible.upl to ignore private methods.
    • Updated identifierWithExternalLinkageOneDefinition.upl and MISRA 2012 rule 8.6 to have an option to ignore the standard library.
    • Updated MISRA 2008 rule 4-5-3 and All Check script charShallBeUsedWithAppropriateOperators.upl to ignore Use Cast references.
    • Updated noDefinitionsHeader.upl and noExternalLinkageUnlessExternal.upl to have options for ignoring const in header file.
    • Upgraded MISRA 2012 rule 8.6 and corresponding All Check to properly handle Templates.
    • Updated MISRA 2012 rule 8.3, MISRA 2004 rule 8.3 and corresponding All Check script to properly handle arrays.
    • Updated uninitialized_objects.upl to ignore class data members.
    • Upgraded MISRA 2008 rule 9-3-2 to ignore methods that don’t return by pointer or reference.

    EDITOR

    • In the editor, for Fortran, treat “procedure” as a keyword to fix folds.
    • Fixed failure to print inactive line backgrounds white when the options to print black or color on white are selected.

    FORTRAN PARSER

    • Added support for Fortran 2008 ‘critical’ construct.
    • Added support for names on Fortran 2008 block statements and the ‘mold’ option on allocate statements.

    GENERAL

    • Connect mouse back and forward buttons to previewer window history.
    • Double click in previewer opens in editor.

    GRAPHS

    • Change Graph Customizer Panel to a toolbar.
    • Remember open graphs.
    • Add an option to the Cluster Control Flow Graph to layout horizontally.
    • Added a Show Edges Between Children Default right click menu option to toggle the default. Nodes that are expanded by default (such as the initial node in an internal dependencies diagram) show inter child edges initially regardless of the setting. Note that changing defaults only affects nodes that are using the defaults (i.e. not customized) and so restore defaults may need to be called to affect the entire graph.
    • Fix issue with cluster control flow Visio export truncating lines with “<“.
    • Made changes in control flow graph to handle Fortran 2008 exit statements that exit any enclosing named construct.

    INFOBROWSER

    • Possible fix for crash on resolve that occurred in the info browser from annotations.

    LICENSING

    • Fixed an issue with Understand trying to use a floating license and exceeding the checkout license number. “Maintenance Expired” message is shown on the client though the maintenance isn’t expired.

    PROJECT

    • Change the name of the “Import” report to “Imports” in the gui to match und.

    SCRIPTS

    • Fix typo in c_globalrefs.pl sample script.

    SEARCH

    • Add Packages filter for Python entities.

    WEB PARSER

    • Fixed bug where the use of tabs in Php files resulted in truncated text in the control flow diagram.

    Understand Build 785

    (Build b785) – 14 Jun 2015

    ANNOTATIONS

    • Fix Remove All to work for line annotations.

    CODECHECK

    • Fixed bug where notDefinitionsHeader.upl was not ignoring Template Functions.
    • Fixed typo in magic number checks.
    • Shortened the CodeCheck tab name and many of the graph tab names.
    • Updated inlineFunctionsInClass.upl to ignore anything that is not a function.
    • Fix error on undefined function definition in External Identifiers Shall Be Distinct check.
    • Updated variableNamingConvention.upl to treat pointer to const and const pointers correctly.
    • Updated unusedLocal to have an option for parameters.
    • Fixed an issue where moving columns in the Results by File and Results by Check windows in CodeCheck causes the text to overlap.
    • Updated MISRA 2008 rule 7-1-2 and parameterShallBeDeclaredAsConst.upl to ignore parameters that are passed by value.

    COMMANDLINE

    • Added the number of files added to the und add build.log message.

    CSHARP PARSER

    • Fixed error where some Framework 4 dll files did not load correctly, resulting in 'unknown' entities and incorrect values for metrics CountDeclMethodAll and CountClassCoupled.

    FORTRAN PARSER

    • Added support for Fortran 2008 block construct.
    • Added support for Fortran 2008 sync statements.
    • Added support for Fortran 2008 codimension and contiguous statements.
    • For Fortran 2008, made changes to allow multiple type-bound procedures to be defined in one statement.
    • Added support for Fortran 2008 Do Concurrent statement.

    FUZZY PARSER

    • Improve fuzzy c++ parser handling of function declarations with unknown types.

    GENERAL

    • Fixed an issue of not cancelling the New Project dialog when you have a project open, with a changed, unsaved file and cancelling the save file dialog.
    • Re-aligned the second column in Bookmarks to ignore the file name and shift next to the line numbers.
    • Fixed Scheduler Options to reset settings when the option dialog is cancelled.

    INFOBROWSER

    • Have the CIS Information browsers refresh the annotations field as needed.

    METRICS

    • For c#, fixed bug where event and indexer accessors were not counted in the containing class's CountDeclMethod metrics.

    PERL

    • Add index for sample perl scripts.

    PROJECT

    • Add support for php comment collection.

    REFACTOR

    • Fix error where extract function refactor tool garbled some unicode strings.
    • Fix error with extract function refactor tool when text contained %.

    SEARCH

    • Revert hiding empty entity filter categories because of performance regression.

    STRICT PARSER

    • Fixed occasional bogus references to entities referenced in default argument initializers.

    Understand Build 784

    (Build b784) – 1 Jun 2015

    ANNOTATIONS

    • Changed Annotation Search Results to show a line number (start from 1) rather than an offset (start from 0). The number is still relative to the entity, so function(2) would be the 2nd line in the function, not the second line in the file.
    • Prevent annotation search/filter/orphan dialogue from shrinking to a size where the options are truncated or hard to read.

    COBOL PARSER

    • Increment Cyclomatic and CyclomaticModified metric counts for PERFORM # TIMES statements.

    COMMANDLINE

    • Update und analyze message to clarify that files added and files removed lines come from a rescan of watched directories.

    GENERAL

    • Fixed failure to launch on Mac.
    • Fix Previewer Window Title translation.

    PROJECT

    • Changed Analysis Log menu option names to match those in the Information Browser.

    Understand Build 783

    (Build b783) – 29 May 2015

    ADA PARSER

    • Made change to allow '$' in identifiers to support the XD Ada compiler.

    C# PARSER

    • Made change to use an appropriate named root for the mscorlib.dll file if one is defined.
    • Made change to use named root paths instead of absolute paths for files imported through the References list.
    • Fixed bug where the short name for namespace entities was the full dotted name instead of the simple name.

    COBOL

    • Fixed statement count metrics for some files that copy copybooks.

    CODECHECK

    • Fixed bug where binary operator != was treated as the unary ! in MISRA 2008 rule 4-5-2 and enumShallBeUsedWithAppropriateOperators.upl.

    ECLIPSE PLUGIN

    • Update Eclipse plugin to handle linked resources when creating an Understand project. This fix must be downloaded from the update site.

    FORTRAN PARSER

    • For Fortran 2008, added coarray variables and coindex references.

    LICENSING

    • Fix for a license server issue not showing the correct maintenance.

    Understand Build 782

    (Build b782) – 23 May 2015

    CODECHECK

    • Fix function length codecheck not working right in some scenerios.

    FORTRAN PARSER

    • Made changes to handle Fortran 2008 codimension declarations.

    GENERAL

    • Fixed licensing issue where a valid auto eval license was not recognized when exiting the Licensing Setup Dialog. Fixed licensing issue when no Understand.ini file is present and connecting to a license server gave a false maintenance message to the user.
    • Match Annotation tab names to annotation menu text for consistency.
    • Added the dependency browser to the view menu.

    GRAPHS

    • Fixed error where '>' character was added onto the ends of multi-line function names on calls/called by graph svg export.
    • Fix cluster coloring in svg export.

    IREPORT

    • Restore missing tree arrows in the ireport results window.
    • Make arrows in trees follow application style foreground color.

    JAVA PARSER

    • Fixed bug where a named root used in a classpath .jar did not work correctly.

    PROJECT

    • For reports, added Extend Tree for C++.

    SEARCH

    • Only show entity filter categories with content.

    UND COMMANDLINE

    • Fixed bug where some project settings, like adding found include files to the project, were not working properly when used from the command line.

    Understand Build 781

    (Build b781) – 15 May 2015

    COMMANDLINE

    • In Und, change the name of the Import report to Imports to avoid name conflict with the command import.

    ECLIPSE

    • Fix an issue where the Eclipse plugin failed to analyze when a graph was open. (To apply fix, you must update the Eclipse plugin from the update site).

    FUZZY PARSER

    • Improved handling of macros defined in inactive regions in fuzzy C++ parser.

    GENERAL

    • Fix for crash in previewer window that sometimes occurred on reparse.
    • Fix some translation issues in annotations dialogue, application styles settings page, and previewer.
    • Changed the icon in tools->options->User Interface to a user, and removed icons for the sub pages to make it consistent with the rest of the dialogue.

    GRAPHS

    • Add support for Java and C# for uml sequence diagrams.
    • Fix cluster control flow graph bug that showed all nodes even when hide nodes with no highlighted edges was checked.
    • Fix issue with styled labels in cluster control flow graphs repeating the first character for each node in Python.

    INFOBROWSER

    • Fix possible crash on view information.

    Understand Build 780

    (Build b780) – 13 May 2015

    FUZZY PARSER

    • Add support for non-standard __typeof__ operator to GNU C, for fuzzy C parser.

    GENERAL

    • Fixed performance regression on project open.

    GRAPHS

    • Fix UML Class diagram not always rendering correctly when ‘Show Class Details’ was enabled.

    INSTANT SEARCH

    • Moved calculation of out-of-date files onto indexer background thread to improve responsiveness for project files located on a network share.

    STRICT PARSER

    • Fixed saved macro expansion text to exclude unexpanded functional macro arguments.

    WEB PARSER

    • For Javascript, fixed bug where ‘finally’ nodes were omitted from try-catch-finally structures.

    Understand Build 779

    (Build b779) – 8 May 2015

    CODECHECK

    • Change option layout for Control Character check.

    EDITOR

    • Added the ability to annotate a line. Line annotations are tied to the scope entity where possible and are updated on reparse, opening a file, and saving a file. Externally modified files can be reparsed to restore the annotations to the correct areas. Annotations that belong to lines after the last line in the file are moved to the last line of the file. Line annotations may be orphaned if the scope entity is removed, and are handled the same as other orphans.

    GENERAL

    • Moved the “Save Released Window Positions” and the “Clear Saved Window Positions” to Tools – Options – User Interface – Windows. Also only enable the “Clear Saved Window Positions” button when there are saved window positions.

    GRAPHS

    • Added a Show Legend option to cluster control flow graphs (off by default).
    • Allow Cluster Control Flow Graphs to be generated from the API. (Note: styled text is NOT available from the API).
    • For C#, Java, Php, and Python, Changed the control flow graphs for try-catch-finally statements that contain exits to more accurately reflect the actual control flow.
    • Added a Show Deferred Edges option to cluster control flow graphs (off by default).

    LICENSING

    • Almstatus now displays the server build number in the results.
    • Fixed an issue of getting the “No Valid License” error when Escaping (Esc key) out of the license Setup Dialog. Esc now performs the same action as the Cancel button.

    METRICS

    • For C#, Java, Php, and Python, fixed incorrect essential complexity value for some instances of routines with exits from try-catch-finally statements.

    VHDL

    • Added control flow graph.

    Understand Build 778

    (Build b778) – 2 May 2015

    C# PARSER

    • For c# control flow graphs, added label text to labeled statements.

    CHANGE

    • Removed “Global Objects” option from the Compare Entities dropdown list.

    CODECHECK

    • Add new codecheck to look for control characters like formfeed and bell.

    EDITOR

    • Fixed editor detection of file names containing a plus.

    GENERAL

    • Possible fixes for crash in preview window on reparse / project open.
    • Fixed binary detection of files loaded from zip files. The editor will now prompt before trying to open .class files from jar files.
    • Update Keybindings page for Previewer window to have the correct name.

    GRAPHS

    • Fixed an issue with graphs taking the shortcut key from an editor while in split view.

    PYTHON PARSER

    • Changed database entity information to make checksum part of uniquename for an entity be based on unix style file names.
    • Changed database entity information to make uniquename for an entity not be based on line number within a file.

    SCHEDULER

    • Fixed an issue with Scheduled Activities not using the “Run every X Minutes” setting correctly.

    STRICT PARSER

    • Fixed worker process crash on #include_next directive found by searching project headers.
    • Fixed resolve of methods in Objective-C categories.

    TOOLS

    • Added Understand::Gui::sync(entity) to perl api.

    UPERL

    • Add documentation for freetext command to Perl API.

    Understand Build 777

    (Build b777) – 24 Apr 2015

    CSHARP PARSER

    • Fixed bug where the essential complexity was incorrect for some routines with goto statements inside try-catch-finally statements. Also, in the control flow graph for these routines, duplicate deferred-goto links are no longer displayed.

    FORTRAN PARSER

    • Made changes to add dimension text to variable type text.
    • Fixed a bug where an include inside an interface block caused a syntax error.

    GENERAL

    • Added an application-wide color scheme panel under tools->options->user interface->application styles. Changed windows such as find in files results and the analysis log to follow the application style rather than have specific settings. Users can match the application styles to current editor settings.
    • hiding the vertical headers in the manage architectures tables since they don’t contain any information and appear bright against dark backgrounds.
      changing explore entities initial window to be the alternate row color instead of yellow so that it doesn’t clash with dark backgrounds.
      set row indentation for tree views and alternating row colors for other views through the style sheet so that it applies to everything.

    • Change C++ Class Names editor style to include all tag type names (struct, union, and enum).
    • Added a Previewer window (View->Previewer) that is basically an editor window that can be synced. The window can also be set to be used by default when going to a reference, and has it’s own history. Also, made view information (hotkey or menu click) trigger a sync.

    GRAPHS

    • Added a right click menu option to show legend for graphs with custom styling (architecture dependency graphs, cluster call graphs, and relationship graphs).
    • Improve graph search to better handle newlines caused by wrapped text. Also, improve graph search highlighting for regular expression searches and cluster control flow graphs to highlight the correct number of characters in the correct location.
    • Made cluster control flow graph node backgrounds and default node foregrounds follow editor style when styled labels is on.
    • Added an include virtual edges option for call/callby relationship graphs. Unlike cluster call graphs, relationship graphs only show virtual edges as a different color if set to do so under tools->options->graphs.

    LICENSING

    • Update to Floating license server to use older maintenance licenses before newer ones.
    • Updated the “Thank you for your purchase” message to be less confusing when displaying maintenance expiration days.

    SCRIPTS

    • Fix Visio format in _export_graphics.pl script.

    STRICT PARSER

    • Enabled option to ignore directory names in include directives.

    Understand Build 776

    (Build b776) – 17 Apr 2015

    C PARSER

    • Fixed parser crash in essential complexity computations for extremely large functions.

    FORTRAN PARSER

    • Fixed bug where declaration of an interface module procedure without the ‘module’ keyword caused a syntax error.
    • Fixed bug where some uses of array constructors using square brackets to enclose values caused syntax errors.
    • Added support for Fortran 2008 ‘error stop’ statement.
    • Fixed bug where declarations of ‘class(*)’ dummy arguments caused syntax errors.

    GRAPHS

    • Moved graph layout into the background for graphviz graphs generated in understand GUI (graphs generated from the API, or as part of a visio xml export are not affected). The graph window will appear and the progress bar in the upper right corner indicates that the layout is still running. The graphwindow can be closed to cancel the graph and the graph can be changed (nodes options changed / undo) which will restart the layout with the new parameters. Restored the message that informs users when the graph failed to layout. Ensure the progress bar disappears when the graph completes the layout or encounters an error during layout.

    LICENSING

    • Fix for an issue when using almfree.exe on Windows server 2008.

    PROJECT

    • Restore previously removed Extends Tree report; make report off by default for all new projects.

    REPORTS

    • Fixed issues with HTML Reports Index by method name.

    VISUALSTUDIO

    • Fix bug importing projects from MSVC 2010 and later that contain multiple global preprocessor definition lines.

    WEB PARSER

    • Added support for ‘use const’ and ‘use function’ statements.

    Understand build 775

    (Build b775) – 8 Apr 2015

    CHANGE

    • Fixed an issue where Compare Entites doesn’t work when Assembly language is selected.

    CODECHECK

    • Updated several scripts to handle the C++ 11 foreach loop gracefully.
    • Fixed issue with importing exported CodeCheck ignores.

    GENERAL

    • Add a sort by file extension option to the Selector Window.
    • Potential fix for bug in Bookmarks.

    GRAPHS

    • Fixed failure to show trailing and inline comments in control flow graph with source code hidden.
    • Fix error where use class groups checkbox and show all dependencies combo initially disappear from internal dependencies graph.
    • Fix collapsing in cluster control flow graph to have text in the right order. Remove extra newlines when showing comments and not source code for collapsed nodes.
    • Added an option for control flow graphs to show parameters with the entity name (part of the entity name submenu). Also fix error where changes through the graph menu weren’t updating the graph.

    LICENSING

    • Fixed a license date issue when Japanese regional was selected.

    STRICT PARSER

    • Fixed crash on specialization of a class template with an invalid class (e.g. because of parse errors in the class definition).

    WEB PARSER

    • For php, added support for argument unpacking with ‘…’.
    • For php, added support for some Php 5.6 features including use of constant expressions in contexts where scalers were formerly required, constant array definitions, variadic function definitions using ‘…’, and the new pow operator ‘**’. Also, fixed error in line count metrics for some html and javascript files.

    Understand Build 774

    We recently sent out new floating license files that will support Understand 4.0, however we neglected to let you know that for Understand 4.0 to connect to this license, the license manager software also needs to be updated to version 770 or later. Sorry about that, it was an oversight on our part. The license manager can be downloaded from here: https://scitools.com/download/licensemanager/  The good news is that this new license is backwards compatible and will support any version of Understand from version 2.5 onward so your team can update to Understand 4.0 at their convenience.
    In order to update the license manager you will need to stop and exit the running license server GUI by right clicking on the License Server icon in the system tray and selecting quit (see the image below). Then run the installation package to the same location.
    Again we are sorry for any inconvenience this may cause, please let us know if there are any issues or questions we can help with.

    (Build b774) – 3 Apr 2015

    STRICT

    • Fixed worker process crash on invalid global allocation function declaration.

    Understand Build 772-773

    (Build b772-b773) – 2 Apr 2015

    ASSEMBLY PARSER

    • For Coldfire 64K Assembly, made unknown include files referenced with a relative or absolute filename have a shortname and longname value. Also, made change to allow quote characters around filenames in include statements.

    CHANGE

    • Added the compare right click context menu to non-project files.

    CODECHECK

    • Updated discardedReturnValues.upl to be more robust.
    • Updated MISRA 2008 rule 3-3-1 to eliminate various reporting errors and added All Check script objectsOrFunctionsWithExternalLinkageShallBeDeclaredInAHeaderFile.upl to Code Check.
    • Add several MISRA 2012 Code Checks.

    COMMANDLINE

    • Und fix that allows the “-l somedir\somefile.dat” to be before the create command instead of always trailing/last.

    EDITOR

    • Added language specific editor styles to themes, and updated predefined themes to stylize function, class, and variable names. Added a classics theme for the original Understand theme.
    • Editor Styles, remove old .ini keys so that old values don’t override new ones. This makes Editor Styles not backwards compatible (if you open Understand 4.0 and then open an earlier version, the earlier version will not have the styles).

    GENERAL

    • Make the keyboard icons in tools->options consistent with the editor icons in the same view (one keyboard icon for the main page and no icons for sub pages).

    GRAPHS

    • Add a show virtual edges option to cluster call graphs that show override/overriddenby edges. Override edges are light blue by default, to change go to tools->options and enter a custom edge style for “overrides,overriddenby” and make sure that “Use Custom Styles on Cluster Call Graphs” is checked.
    • Cluster Call Graphs, Fix aggregate by architecture to work instead of vanishing nodes or doing nothing.
    • Added relationship graphs between two entities. From the UI, a dialog appears to select the second entity, and the second entity can be changed using the sync option of the graph window. From the API, specify the second entity in the option string as “secondent=entityUniqueName”.
    • Cluster Call Graphs, Show c pure virtual methods in cluster call graphs (previously excluded because they were technically unknown).
    • Cluster Call Graphs, Made available from api.
    • Allow c# properties to be clusters in cluster call graphs to improve get/set names.
    • Fix graph window reuse checkbox to work across all graph types. So, all graphs whether architecture, global, or entity will reuse the same window. This fixes errors where reuse checkbox being checked caused a graph of a different type to not be generated at all.
    • Cluster Call Graphs, Improve parent determination so that references don’t appear twice in the graph and known entities with unknown parents still appear.

    LICENSING

    • Added the ability for the c api to point to a specific build/installation for licensing purposes. This is accomplished by calling udbSetLicense(installedDir) before calling udbDbOpen(dbFilename). The installedDir needs to be the directory above the conf folder. For example: the prioritylicense.dat file that I want the c api to use is in “C:\sti\conf\license” so my installedDir would be “C:\\sti\\”.
    • Updated to check for maintenance expiration and license expiration.

    PARSER

    • For web php, added support for using ‘list’ in foreach statements.
    • For web php, added support for Php 5.4 callable typehint and binary numeric literals.
    • For web php, fixed problem causing invalid syntax errors parsing nowdoc strings that contain variable references.
    • For web php, added support for ‘yield’ statement.
    • For web php, made change to allow expressions in ’empty’ check.
    • For web php, added support for ‘finally’ statement.
    • For web php, made ‘self’ and ‘parent’ keywords non case sensitive for Php 5.5.

    STRICT

    • Changed empty macro definitions to match fuzzy. They now expand to nothing instead of being implicitly converted to 1. Buildspy and CMake command line argument parsing have been changed to interpret -DMACRO flags (i.e. without any =) as a macro definition with value 1. Projects that use these mechanisms may need to be regenerated.
    • Fixed incorrect executable statement count for some functions.

    VISUALSTUDIO

    • Fix crash processing MSVC project files with quoted include directories.

    Understand Build 771

    (Build b771) – 20 Mar 2015

    CODECHECK

    • Updated MISRA 2008 rules 3-9-2, 7-1-1, 7-1-2, 9-3-3 and their All Check counter parts to be more accurate.

    COMMANDLINE

    • Fixed bug in und add -exclude flag where wild cards were expanded instead of being assigned to the directory exclude field.

    GENERAL

    • Disabled tooltips in editors that don't have focus.

    GRAPHS

    • Fixed error in cluster call graphs where going from Aggregate by Arch to Aggregate by something not an arch, and then back to aggregate by original arch did not work.
    • Fixed error in cluster call graphs where collapsing the parent of the root node drew the root node anyway as a parentless node.
    • Fixed error in saving architecture cluster call graphs where graph saved an entity as the root instead of the arch.
    • Added Uml Sequence Diagrams (graph also available from API)
    • Fixed error in cluster call graphs where file clusters vanished upon expansion when aggregating by an architecture.

    PROJECT

    • Removed prompt to close all open editor windows when project portability settings change. Fixed failure to update editor window state after files open in an editor are added to the project by rescan.

    SEARCH

    • Fixed failure to load relative and named root paths in the replace-in-files preview window.
    • Fixed failure to launch find-in-files from find results window.

    UPERL

    • Fixed metrics treemap generation from Python and Perl APIs.

    Understand Build 770

    (Build b770) – 13 Mar 2015

    GRAPHS

    • Fix issue with butterfly graph not showing virtual function calls.

    REPORTS

    • Report Config – Fixed a crash in Und by removing the persistent dialog box that prompted users before the first time removing report directories.

    WEB PARSER

    • For web php, fixed bug where trait alias definitions that did not give a new name caused an unnamed entity to be created.
    • For web php, made changes to handle expression parsing modifications from 5.4.
    • Added IB and graphic support for php trait uses.

    Understand Build 769

    (Build b769) – 6 Mar 2015

    CODECHECK

    • Updated MISRA 2008 rule 7-1-2 and All Check script parameterShallBeDeclaredAsConst.upl to not require const qualification at the beginning of a declaration/definition.

    WEB PARSER

    • For PHP, added support for short array syntax ($a=[1,2,3]).
    • For PHP, added support for traits.

    Understand Build 768

    (Build b768) – 27 Feb 2015

    ADA PARSER

    • Fixed bug with the 'Create and cross reference record object components' option where named associations used in record aggregate assignments were resulting in references to the type components instead of the object components.

    C++ PARSER

    • Better handle extensionless include files that are automatically added to the project.

    GRAPHS

    • Fixed tab activation issue when opening graph windows with the option to sort tabs alphabetically enabled.

    JAVA PARSER

    • Fixed syntax errors on extra trailing semicolons on package and import statements.

    STRICT PARSER

    • Disable aarch64 as a target architecture.
    • Added missing define references to lambda expression parameters.

    Understand Build 767

    (Build b767) – 20 Feb 2015

    ADA PARSER

    • Fixed problem with references to overloaded enumeration literals in the same context in which they were declared.

    GRAPHS

    • Flesh out attributes and operations in the UML class diagram to show parameters and types.

    INFOBROWSER

    • Fixed possible crash after analyze when viewing some unresolved files in the information browser.

    STRICT PARSER

    • Fixed failure to resolve file entities included with relative directory names whose case doesn’t match the case of the file on disk.

    WEB PARSER

    • For web Javascript, made change to allow non-standard syntax where a get or set declaration has a single statement instead of a function body.
    • For web Javascript, added Javascript 6 object and array destructuring in formal parameter lists.
    • For web Javascript, added support for the array spread operator in an argument list.

    Understand Build 766

    (Build b766) – 17 Feb 2015

    WEB PARSER

    • For web Javascript, fixed error where some property references were 'unresolved'.

    Understand Build 765

    (Build b765) – 13 Feb 2015

    CHANGE

    • Added the compare right click context menu to non-project files.

    INFOBROWSER

    • Fixed/Updated the Information Browser to allow the right click “Copy” command to copy itself and any of its children (if visible).

    PERL

    • Update the _delta.pl script to more accurately count Ada statements.

    SEARCH

    • Fix for error where a large search string in the history of the incremental search would cause the field to take a lot of space the next time understand was opened and incremental search used.

    STRICT

    • Added option to choose Objective-C memory management mode.

    VHDL

    • Enabled metric reports.

    WEB PARSER

    • For web Javascript, added support for template literals, methods as property declarations, and identifier references as property declarations.
    • For web Javascript, added support for object destructuring in var declarations.
    • For web Javascript, added array and object destructuring in const and let declarations.

    Understand Build 764

    (Build b764) – 6 Feb 2015

    CODECHECK

    • Updated MISRA 2008 rule 16-0-7 and MISRA 2004 rule 19.11 and All Check script undefinedMacroIdentifiersShallNotBeUsed.upl to ignore macros used within inactive code.

    GENERAL

    • Speed up right click menu on files.

    GRAPHS

    • Fixed crash in certain uperl plugin uses of $ent->filerefs()

    PROJECT

    • Fix context menu selection in project browser.

    WEB PARSER

    • For web Javascript, made changes to handle Javascript 6 ‘yield’ statements.

    Understand Build 763

    (Build b763) – 30 Jan 2015

    CODECHECK

    • Update MISRA 2008 rule 6-2-2, MISRA 2004 rule 13.3 and All Check script testingEqualityInFloatingPointValues.upl to function properly in both fuzzy and strict parser.

    C PARSER

    • Missing Includes search issue fixed.

    FUZZY PARSER

    • Fix error recently introduced in fuzzy parser when handling comments in macro calls.

    GRAPHS

    • Fixed failure to show some graphs on 32-bit Linux.

    REPORTS

    • Added links from annotated html files to referenced generic subroutines. Also, fixed bug where links from annotated files to dictionary were not correct when 'Index by method name' option was off.

    STRICT PARSER

    • Fixed reference kind of tentative definitions. One of the tentative definitions is now nominated as the 'define' reference when no other definition exists in the translation unit.

    WEB PARSER

    • For web Javascript, added support for Javascript 6 arrow functions.
    • For web Javascript, allow Javascript 6 generator function* syntax.

    Understand Build 762

    (Build b762) – 23 Jan 2015

    CODECHECK

    • Updated MISRA 2008 rule 6-5-1 and All Check script forLoopShallContainASingleLoopCounter.upl to be more accurate.
    • Updated MISRA 2008 rule 7-1-1 and All Check script unmodifiedVariablesShallBeConst.upl to be more accurate. Removed potentialConst.upl as this check is now obsolete.
    • Updated MISRA 2004 rule 14.4 and All Check script noGotoStatements.upl to be faster.
    • Updated All Check script externalLinkageShallBeDeclaredInAHeaderFile.upl to be more accurate.

    ENTITY LOCATOR

    • Added a history with forward and backward buttons to the entity locator.

    GENERAL

    • Fixed crash when activating some items from the Window menu with the keyboard on Windows.
    • Better support all platforms when updating versions from within Understand.
    • Fixed bug in duplicating architectures.

    GRAPHS

    • Fixed a crash in architecture dependency graphs with selected entities that occurred after analyze.

    JAVA PARSER

    • Fixed crash in parsing some lambda expressions.

    SEARCH

    • Include Search verifies that only directories are searched.

    STRICT PARSER

    • Fixed kind of static functions with the static specifier on a declaration but not the definition.

    UND

    • Added support for the -iframework flag in CMake compile command import.

    VHDL PARSER

    • Fixed file relative name calculation in projects with VHDL enabled.

    WEB PARSER

    • For web Javascript, added support for some Javascript 6 features (array decomposition in var declaration).

    Understand Build 761

    (Build b761) – 17 Jan 2015

    C++ PARSER

    • Fixed crash in fuzzy c++ parser handling of comments in macro definitions.

    CODECHECK

    • Updated testingEqualityInFloatingPointValues.upl to ignore pointers to floating point values.
    • Upgraded MISRA 2004 rule 8.7 and All Check script objectsAtBlockScopeWhenPossible.upl to have fewer false positives.
    • Updated MISRA 2004 rule 13.3 and MISRA 2008 rule 6-2-2 to ignore pointers to floating point values.

    ENTITY LOCATOR

    • Added a freeze column option to the entity locator (available in the dimple menu). Limitations: Only the right most frozen column can be resized. Frozen columns cannot be moved.
    • Frozen columns are always moved to the left of the view.
    • Added a sync option for the entity locator. If the selected entity is not currently part of the locator (ex: locator is only showing functions and user selects file) nothing happens.
    • Made the filter for the kind and declared in kind columns to have a drop down list of the possibilities present in the full table.
    • Select text in filter fields when changing focus to the entity locator, or tabbing between fields. This allows faster deletion of the current contents of the filter.

    GRAPHS

    • Add option to disable the Parameters field on the Ada Declaration graph.

    GUI

    • Fixed crash on project browser double-click past item extent.

    JAVA PARSER

    • Made change so that removing a file causes files that depend on it to be reparsed.

    PARSER

    • For Assembly, Jovial, Pascal, and Web languages, made change so that removing a file causes files that depend on it to be reparsed.

    REFACTOR

    • Added accelerator keys to refactor dialog buttons.

    WEB PARSER

    • For Web Javascript, made changes to improve handling of global variables. Global variables with the same name in different files are no longer merged into a single entity.

    Understand Build 760

    (Build b760) – 9 Jan 2015

    CODECHECK

    • Updated MISRA 2008 and All Check script noMoreThanOneBreakOrGoto.upl to detect irregular loop construction and bypass without throwing a script error.
    • Updated MISRA 2008 rule 6-6-4 and All Check script noMoreThanOneBreakOrGoto.upl to not crash when encountering an irregular loop construction.
    • Updated unusedLocal.upl to skip [unnamed] variables.
    • Updated MISRA 2004 rule 2.2 and All Check script noSingleLineComments.upl to not throw multiple violations when a block of C99 comments are encountered.
    • Added implicitFunctionDeclarations.upl to All Check and Scitools Recommended Checks.
    • Update C/C++ specific codechecks not to test files from other languages in multi-language projects.

    ECLIPSE

    • Version number changed to 1.1.0. Note that this new plugin version is not compatible with older builds of understand, and the old plugin version is not compatible with this build of understand.
    • Entity Graphs (not metric treemap):
      • Double click on entity nodes jumps to definition.
      • Single click on control flow graph nodes goes to the line in the source code.
      • Right-click on entity nodes gives the entity context menu.
      • Right-click on anything other than the entity nodes give the full menu for the graph (as it appears in understand). Additional menu options may be added by eclipse because of the nature of eclipse context menus.
    • For instructions on installing the Eclipse plugin visit www.scitools.com/eclipse

    EDITOR

    • Updated labels under tools->options->Editor->Externally modified files.

    FORTRAN PARSER

    • Made changes to better handle IO statements with control transfer specifiers, for example READ with an END specifier. Also, fixed bug where these control transfers were not counted in cyclomatic complexity.

    GENERAL

    • Fixed most recently used tab activation order.
    • Save Project As starts with current project name in field.

    GRAPHS

    • Improved representation of Fortran IO statements in Control Flow graph.
    • Update Cluster Control Flow for Fortran IO statements.

    JAVA_API

    • Add documentation for new Java API to installer.

    PARSERS

    • For Ada, c#, and Fortran, made change so that removing a file causes files that depend on it to be reparsed.

    PROJECT

    • Added a sort by file extension option to the project browser, available in the dimple menu.
    • Fixed a crash that could happen in Config : C# : References if named roots are used and then deleted.
    • Changed context menus in the Project Browser to be consistent with context menus in the Entity Filter.
    • Remove dimple menu buttons from the selected item in the Entity Filter and Entity Locator.

    PYTHON PARSER

    • Update python documentation.

    REFACTOR

    • Fixed some minor issues with Extract Function Refactor Tool (correctly handle when last selected character is newline, always add extra line after new function, correctly expand return value combo box for longer names, change “Not Member” to “Non-member” in gui, changed Move Up and Move Down buttons to stay at the top rather than center.)
    • Added an extract temp refactor tool for c++.

    STRICT PARSER

    • Fixed possible worker process crash on 32-bit Windows.
    • Report missing header files in analysis log.

    UPERL

    • Update uperl documentation.

    Understand Build 759

    (Build b759) – 1 Jan 2015

    C# PARSER

    • Fixed bug where get and set accessor methods were not counted in the CountDeclMethod metrics.
    • Added CountDeclProperty and CountDeclPropertyAuto metrics for classes.

    CODECHECK

    • Updated MISRA 2004 rule 8.11 and All Check script explicitStaticWhenInternal.upl to only work on C entities.
    • Updated MISRA 2004 rule 8.3 and MISRA 2008 rule 3-2-1 to only function on C and C++ entities.
    • Combined two versions of MISRA 2008 rule 6-6-4 and then their corresponding All Check scripts into single scripts. Additionally made the checks more robust and less prone to errors.

    FORTRAN PARSER

    • Fixed invalid syntax errors on common block statements with more than one block defined in a single statement.
    • Fixed syntax error in some 'interface operator' declarations in free format files.

    METRICS

    • For Pascal/Delphi, added CountDeclProperty metric. Previously, properties were counted in CountDeclInstanceVariable.

    REFACTOR

    • Added an initial extract function refactor tool for c/c++.

    STRICT PARSER

    • Fixed worker process crash on range-based for loops with a dependent initializer.
    • Fixed crash on some invalid Objective-C super expressions.

    UND

    • Fixed several issues with build log import.

    Understand Build 758

    (Build b758) – 19 Dec 2014

    CODECHECK

    • Updated MISRA 2008 rule 8-3-1 and All Check sript overridingVirtualFunctionShallNotChangeDefaults.upl to handle more cases.
    • Updated noMoreThanOneBreakOrGotFuzzy.upl, noMOreThanOneBreakOrGotoStrict.upl and allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl to only function on C and C++ files.

    ECLIPSE PLUGIN

    • Change call and call by graphs to show 3 levels.

    FORTRAN PARSER

    • Fixed bug where using a keyword as a kind parameter on a literal caused a syntax error.
    • Fixed bug where use of a function name as an argument within the function was recorded as a 'call ptr' instead of a 'use'.
    • Fixed bug where passing string literals as macro arguments caused invalid syntax errors.

    GENERAL

    • Fixed spurious warning for missing C# references in relative and named root projects. Allow the opportunity to cancel the import of C# reference list files when any of the references are found to be invalid.

    INSTALLER

    • Add a message to the installer redirecting Windows XP users to the appropriate download.

    JAVA PARSER

    • Made change to optionally count Javadoc comments preceding entities in the CountLine, CountLineComment, and RatioCommentToCode metrics.

    LICENSE SERVER

    • Updated License Server Application for Mac issues.

    LICENSING

    • Updated Understand License GUI when adding a SDL license to always show the Licensee email address field.
    • Fixed almd crash on Mac.

    SEARCH

    • Fixed failure to restore instant search and find-in-files results window in drawered mode.

    TOOLS

    • Added a keybinding for explore entity. When multiple explorations are available, display a menu like edit companion files.

    WEB PARSER

    • Fixed some problems with dependency diagrams.

    Understand Build 757

    (Build b757) – 12 Dec 2014

    FORTRAN PARSER

  • Fixed bugs in c style preprocessor macro definitions and usage where macro definitions continued over more than one line caused syntax errors and where use of predefined macros such as ‘__LINE__’ in a macro definition caused syntax errors.
  • GENERAL

  • Fixed regression in adding workspace tabs alphabetically.
  • On windows, make companion files case insensitive.
  • INSTALLER

  • Fix osx certificate.
  • JAVA PARSER

  • Fixed bug where a trailing comma in an array initializer in an annotation caused a syntax error.
  • For Java, fixed bug where a call to a static generic method with explicit type arguments caused a syntax error in some contexts.
  • TOOLS

  • Fix issue in und when line started with “.
  • Understand Build 756

    (Build b756) – 8 Dec 2014

    PYTHON PARSER

  • Made change so that deleting a Python file causes any files that import it to be reparsed.
  • GENERAL

  • Correct developer certificate for OSX installation.
  • Understand Build 755

    (Build b755) – 5 Dec 2014

    Support for Windows XP will be separate from our other builds going forward and will no longer be updated with the rest of our builds. It will be available at https://scitools.com/download/archive/

    CODECHECK

    • Updated MISRA 2008 rule 16-2-1 and All Check script preprocessorOnlyUsedForInclusionAndGuards.upl to throw fewer false positives.
    • Updated MISRA 2008 rule 3-1-1 and All Check script possibleToIncludeMultipleTranslationsWithoutViolatingOneDefinition.upl to be more accurate.
    • Updated MISRA 2008 rule 16-2-3, MISRA 2004 rule 19.15 and All Check script includeGuardsShallBeProvided.upl to be more accurate.
    • Added a note to the description qualifying checks as Strict only checks.

    COMMANDLINE

    • Fixed ‘und -rescan’ to purge parse information for files that no longer exist.

    FUZZY PARSER

    • Change so that deleting a c++ include file causes files known to include it, to be reparsed.

    GENERAL

    • Fixed drag-and-drop of files from Finder on Mac OS X Yosemite.
    • Windows XP available at https://scitools.com/download/archive/
    • Fixed crash on command line invocation with -existing -contextmenu flags during database resolve.
    • Analysis Log, Added an option to allow the user to specify the selection color in Tools -> Options -> User Interface -> Windows.

    INSTANT SEARCH

    • Updated to use the rich text selection color. Added the extended code base for the tooltip.

    SCOPE LIST

    • Fix for redundant methods in scope list toolbar and scope list widget.

    STRICT PARSER

    • Fixed worker process crash on Objective-C property declare references where the associated interface can’t be found.

    USER TOOLS

    • Changed user tools to treat quotes in the parameter list the same as the Windows command prompt and Linux terminal. See examples below.

                 Input                             Old Behavior                                  New Behavior

    \"some text\"                 2 args = { \ , some text\ }              2 args = { "some, text" }
    -arg="a b"                    2 args = { -arg= , a b }                 1 arg = { -arg=a b }
    -arg=$Prompt...               2 args = { -arg=, result }               1 arg = { -arg=result }
    On the third example, note that all $Prompt macros are internally quoted (so that things like filenames that come in with spaces are one parameter).
    • Changed user tools macro $CurrentProjectName to include everything up to the last dot rather than the first so understand-1.0.0.udb comes in as understand-1.0.0 instead of understand-1.
    • Potential fix for CommandCapture YieldCheck() crash.

    TREEMAP

    • Possible fix for crash during analyze when metrics treemap is open.

    WEB PARSER

    • For web html, made changes to not create entities for html ids and tags with empty names.
    • For Javascript, fixed some problems with full name recognition for properties of global objects.
    • For web javascript, fixed crash when parsing some dotted name expressions.
    • For web css, fixed parser hang on some invalid css code.

    Understand Build 754

    (Build 754) – 23 Nov 2014

    GENERAL

    • Release new build to include missing Visual Studio Redistributable for Windows.

    Understand Build 752-753

    (Build b752-753) – 22 Nov 2014

    BOOKMARKS

    • Updated to show 5 lines of code surrounding the bookmark in question in the tooltip over the right side of the bookmark (left side still shows time and date).

    C# PARSER

    • Fixed a bug where a reference to an unknown method using ‘base’ as a prefix did not create a reference to the unknown method entity.

    CODECHECK

    • Updated the richText highlight to adjust the font correctly.

    EDITOR

    • Added a keybinding to highlight an entity until the same keybinding is applied again. Added a second keybinding to clear all such highlights. Supports up to four highlighted entities per editor.

    ENTITY FILTER

    • Added a “Most Recently Used” menu to the right click menu of the Filter line edit field.

    GENERAL

    • In Project Metrics Browser, keep scroll bar constant when changing between entities/architectures with the same number of metrics.
    • Fixed crash when scrolling over a disappearing tooltip on Mac with the trackpad or magic mouse scroll gesture.

    SEARCH

    • Updated the selected foreground text to be displayed better (white text for darker shades and black text for lighter shades).
    • Updated the Find in Files Result Window and the “Search – Show Find Results” to reflect the correct wording (Find in Files Results).

    TOOLS

    • In User Tools, changed $PromptFor macros so that the result only became its own argument if it contained spaces. In other words, the results of all $PromptFor macros used to be treated as if they were quoted, and now that behavior only occurs if there are spaces in the result.

    Understand Build 751

    (Build b751) – 16 Nov 2014

    GENERAL

    • Fixed failure to fully restore open files from relative projects after upgrading from an older build of understand. These same files would then fail to open correctly during regular use.

    Understand Build 750

    (Build b750) – 14 Nov 2014

    ARCHITECTURES

    • Improve architecture builder speed for folders with lots of files.

    BOOKMARKS

    • Allow next/previous bookmark actions to wrap.

    CODECHECK

    • Added shallNotPassByReference.upl and fileLength.upl to Code Check.
    • Updated MISRA 2008 rule 3-2-1 and All Check script allDeclarationsOfAnObjectShallHaveCompatibleTypes.upl to be more accurate.

    EDITOR

    • Added separate semantic highlight category for C++ virtual functions.

    FUZZY PARSER

    • Improve c++ fuzzy parser handling of deeply recursive macro expansions.

    GENERAL

    • Export cytoscape XML in UTF-8 encoding.
    • Bookmarks hover display added.
    • Fix crash in visual studio arch with same-name project/solutions.
    • Added an import/export theme option for global editor styles.

    REFACTOR

    • Fix error in refactor rename tool for java functions.

    SCOPELIST

    • Make Scope List Toolbar list show overloads like the Scope List Window.

    SEARCH

    • Find in Files Result Window, Added the code snippet as a tooltip on the result so the user can bypass expanding the result if desired.

    STRICT PARSER

    • Added missing reference for tentative variable definitions in C.

    VISUALSTUDIO

    • Fix processing of MSVC 2010/2012/2013 project files to handle out-of-order file definitions

    Understand Build 749

    (Build b749) – 8 Nov 2014

    CODECHECK

    • Added All Check script objectsOrFunctionsWithExternalLinkageShallBeDeclaredInAHeaderFile.upl to Code Check.
    • Updated MISRA 2008 rule 3-3-1 to eliminate various reporting errors.
    • Update All Checks, ‘No direct or indirect recursion allowed’ check to work in many different languages.
    • Added MISRA 2004 rule 8.3.

    ECLIPSE PLUGIN

    • Make Eclipse plugin work with Java 1.6.
    • Update Eclipse Plugin Japanese Translation Files.

    EDITOR

    • Fixed issue with the settings dialog going behind the main window on Mac.

    GENERAL

    • Exclude standard library entities from dependency analysis (affects dependency reports, architecture dependency graphs, and the dependency browser). It can be changed in Tools->Options->Dependencies.
    • Fixed occasional loss of focus when switching tabbed windows.

    GRAPHS

    • For file entities only show the uml class diagram if there are classes defined in that file.

    METRICS

    • Fixed some architecture metrics that were incorrect for files with namespaces.

    PROJECT

    • Project Browser updated to show a horizontal scrollbar when needed.

    REFACTOR

    • Improve messages in the inline temp refactor dialog and the prompt for save & analyze before refactoring dialog.
    • Added an inline temp refactor tool for c/c++ local variables.

    SEARCH

    • Added an IO Unit filter to the entity filter for Fortran.
    • Fixed an errant Find in Files dialog from popping up unasked for.

    Understand Build 748

    (Build b748) – 31 Oct 2014

    C API

    • Added C99, C11, and C++11 keywords to C/C++ API lexer.

    GENERAL

    • Fixed possible crash and other issues with pinned dock windows.

    Understand Build 747

    (Build b747) – 29 Oct 2014

    CODECHECK

    • For Typedef Naming Convention check allow Struct and Enum typedefs to have their own rules.
    • Updated MISRA 2008 rule 2-13-4 and All Check script literalSuffixesShallBeUpperCase.upl to work regardless of context and not just as set references.

    GRAPH

    • Fixed gvlayout crash in build 746.

    PROJECT

    • Added an automatic architecture for visual studio solutions and projects. For existing Understand projects, the architecture will not be visible until after a rescan.

    SEARCH

    • Fixed incorrect expansion indicators after expand all in instant search results.

    Understand Build 746

    (Build b746) – 27 Oct 2014

    CODECHECK

    • Corrected issue in MISRA 2008 rule 6-3-1, MISRA 2004 rule 14.8 and All Check script bodyOfSwitchOrLoopShallBeACompoundStatement.upl where the tail end of a do .. while loop was treated as a new while loop.

    ECLIPSE PLUGIN

    • Ensure Edit Definition right click menu option is disabled for unresolved/unknown entities.
    • If multiple Understand versions are on the path, use the first instead of the last.
    • Remove errors about missing file contexts.xml.

    GENERAL

    • Fixed issue where clearing editor history sometimes reopened a closed editor window.
    • Fixed possible crash on graph window close.

    JAVA PARSER

    • Fixed crash parsing some lambda expressions.

    PROJECT

    • Fixed an issue where watched directories were not always rescanned correctly.

    REFACTOR TOOL

    • Prompt for save & analyze if modified files are present.

    SEARCH

    • Find in Files Updated to allow users to specify if the “Directory” List and the “Find” most recently used list should be a global or per project lists.

    Understand Build 745

    (Build b745) – 17 Oct 2014

    ADA PARSER

    • For Ada, fixed bug where uses of loop parameters were recorded with ‘ref’ relations instead of ‘use’ relations.
    • For Ada, fixed bug where nested subroutine stubs were sometimes not correctly merged with the separate subunit.

    CODECHECK

    • Add Magic Numbers Codecheck for Java.
    • Add Single Exit from Method Codecheck for Java.

    COMMANDLINE

    • Updated the settings command in und (see details listed below).
    • Added to Settings:
    •      Web: AllowJQuery, AllowNodeJS, NodeJsSearchPath, NodeJsPredefined, SearchStringsForEntityNames
    •      Override: C++Frameworks, C++IgnoreParentFrameworks, C++SysRoot, C++IgnoreParentSysRoot
    •      Reports: TextClearDirectory, HtmlClearDirectory
    •      Java: IncludePackageName
    •      C++: SysRoot, CreateReferencesInAssembly, MSCVersion
    •      Cobol: Compiler, Format
    •      Assembly, SystemIncludePath, Includes
     
    • Removed From Settings (Options not used):
    •      C#: LocateSystemClassesMode, StandardLibraryDirectory, FrameworkDirectory
     
    • Removed From List (Options not available in Settings and not used):
    •      C#: LocateSystemClassesMode, StandardLibraryDirectory, FrameworkDirectory
    •      Assembly, SaveMacroExpansionText, SearchAmongProjectFiles, TreatSystemIncludesAsUser, UseCaseInsensitiveLookup, Assembler, AssemblerIncludePath, Replacements, Macros

    COMPILER

    • Add support for Wind River PowerPC C++ compiler.

    ECLIPSE

    • Fixed error in eclipse plugin where metrics treemap failed to generate.
    • Eclipse plugin dependencies lowered so that it loads for eclipse 4.2 and 4.3 as well as 4.4.
    • Added Japanese translation files to Eclipse plugin.

    GENERAL

    • Licensing Window updated to not show the “Add a License” window by default when there is a server but no license available.

    GRAPHS

    • Fix error in cluster call graphs where namespaces could sometimes lead to disappearing nodes.

    PROJECT

    • Changed name of ‘Unused Variables and Parameters’ report to ‘Unused Objects and Functions’ report to better reflect report contents.
    • Add configuration option to control C# comment association.

    PYTHON API

    • Fixed ent.lexer() not working for a named root file in the python api on windows.

    TOOLS

    • Command Capture Window, updated the output to allow users to see the output during the script run phase instead of only after the script has run.

    WEB PARSER

    • For web css, fixed bug where only the first font-family name given in a font-family property was referenced.
    • For web css, fixed crash in parsing some css font-family definitions.

    Understand Build 744

    (Build b744) – 10 Oct 2014

    CODECHECK

    • Updated MISRA 2008 rule 2-10-2, MISRA 2004 rule 5.2 and All Check script scopeHiding.upl to be more accurate.
    • Corrected issue in codeSlicingShouldNotOccur.upl where an error would be thrown in certain circumstances.
    • Fixed an issue where the Ignores List violation column was not showing the entity specific information. This is fixed for Ignores going forward.

    ECLIPSE PLUGIN

    • Perform license check for creating an Understand project before displaying the create project dialog.
    • Improve error messages in Eclipse plugin for creating an Understand project from an Eclipse project. Also, on create, only associate an Understand project with an Eclipse project if the Understand project file was created.

    FORTRAN PARSER

    • Made change to record references from executable code in include files only in the including subroutine.

    GENERAL

    • Fix an error where Edit Companion File(s) menu option was always disabled for relative and named root projects.

    GRAPHS

    • Added a dot export for architecture dependencies (Reports->Dependency->Architecture Dependencies->Export to Dot).

    PROJECT

    • Fixed spurious prompt to reload open files after cancelling config dialog in build 743.

    REPORTS

    • For the Unused Variables and Parameters report, made changes to make the report more consistent between languages. Changed report name in the .txt file from ‘Unused Items’ to ‘Unused Variables and Parameters’ to agree with the name in the html report.
    • Unused Ada parameters are now listed in the Unused Objects report.
    • For Unused Items report and Unused Objects report, made changes to bring reports more in line with one another and with the editor ‘highlight unused entities option’.
    • Variables that are set but not used are now listed in the Unused Items and Unused Objects reports.

    STRICT PARSER

    • Fixed several progress calculation issues.

    Understand Build 743

    (Build b743) – 4 Oct 2014

    CODECHECK

    • Added codeSlicingShouldNotOccur.upl to Code Check.

    ECLIPSE PLUGIN

    • Added new Eclipse plugin.

    JOVIAL

    • Fixed bug where most references to unknown entities were recorded as calls instead of uses.

    METRICS

    • Fixed a warning message displayed in Linux when opening Project Metric Charts.

    PERL SCRIPTS

    • Changed calltree script to support jovial.

    PROJECT

    • Fixed automatic reload of editors after changing project encoding setting.
    • Fixed an issue in Rescan where Linux symbolic links could be cyclic and add already added files to a rescan.

    STRICT PARSER

    • Fixed failure to add entities for unnamed parameters. Added missing parameter text for implicitly generated special member functions.

    Understand Build 742

    (Build b742) – 26 Sep 2014

    COMMANDLINE

    • In und, added a remove option for all lists except filetypes (because you can’t remove from that anyway). So, for example, you can now use -languagesremove C++ to just remove c++.

    GENERAL

    • Added the ability to remove specific items from the recent projects and recent files list under Tools->Options->User Interface->Lists.
    • Included graph windows in editor history.

    GRAPHS

    • On ClusterGraphSettingsPage, fixed the drop down menus for node and arrow shape so that you don’t have to click away in order to get the Apply button to become enabled.

    HELP

    • Update understand documentation.

    LICENSING

    • Fixed issues with the License Dialog not allowing the user to checkout a license if at first all licenses are taken and then one frees up.
    • Fixed a heartbeat issue when Understand tries to use an invalid server in a Linux license file.

    Understand Build 741

    (Build b741) – 20 Sep 2014

    CODECHECK

    • Updated MISRA 2008 rule 14-5-2 and All Check script copyConstructorDeclaredForTemplate.upl to allow unnamed parameters to be used in the copy constructor.
    • Added MISRA 2008 rule 5-2-11 and All Check script logicalAndLogicalOrCommaNotOverloaded.upl to Code Check.
    • Added MISRA 2008 rule 0-1-4 and All Check script singleUseVariables.upl to Code Check.
    • Added MISRA 2008 rule 14-5-3 and All Check script copyAssignementDeclaredForTempate.upl to Code Check.
    • Corrected Code Check entries for MISRA 2004 rule 19.13 and 20.2 which had the MISRA 2008 numbers in the check description.

    EDITOR

    • Added predefined editor themes.

    GRAPHS

    • Improve the recovery of cluster call graphs after an analyze.
    • Moved checkbox on tools->options->Graph to make the option to apply styles to cluster call graphs more visible.

    PARSER

    • Fixed possible crash when configuring empty c++ projects.
    • Fixed an issue in “New Architecture” where two Understand applications pointed to the same database would trip a non essential “Not Required” flag.

    PROJECT

    • Fixed regression in build 740 related to aborting the analysis.
    • Updated the Analysis status Abort button to have a tooltip “Abort/Pause the Analysis”.

    STRICT PARSER

    • Disabled real case include warning.

    Understand Build 740

    (Build b740) – 12 Sep 2014

    BUILDSPY

    • Fixed issue flushing buildspy usage to terminal.

    CODECHECK

    • Updated MISRA 2008 rule 6-4-1, MISRA 2004 rule 14.9 and All Check script ifConstructShallBeFollowedByACompoundStatement.upl to allow for a special case else if condition built using the preprocessor.
    • Updated MISRA 2008 rule 6-3-1, MISRA 2004 rule 14.8 and All Check script bodyOfSwitchOrLoopShallBeACompoundStatement.upl to allow for a special case where loops are built using the preprocessor.
    • Fixed bug in MISRA 2004 rule 5.4 and All Check script tagesUnique.upl where if a struct’s or union’s name was a subset of another struct’s or union’s name, the two were treated as having the same name.
    • Added MISRA 2008 rule 12-8-1 and All Check script copyConstructorInitializeBaseAndMembers.upl to Code Check.
    • Added the ability to select multiple ignores from the ignores list and remove them at one time.
    • Added MISRA 2008 rule 14-5-2 and All Check script copyConstructorDeclaredForTemplate.upl to Code Check.

    GENERAL

    • Changed selector window filter label to a regular text field with its own focus.
    • Improvements to the refactor ui, added the ability to set keybindings, added an apply changes (without preview) option, and start with text selected in the rename window.
    • Fixed source tree disappearing during execution of the add directory dialog.

    JAVA PARSER

    • Removed the ‘java unused’ entity kind.

    PASCAL PARSER

    • For Pascal/Delphi, fixed bug where an overloaded routine defined in a unit interface section had an ‘overloads’ reference to itself.

    PROJECT

    • Remove Extends report
    • Abort Analysis dialog box updated. Title and Text explain that the Analysis is paused and the Cancel button now is “Continue Analysis”.
    • Added a Project Save As option under the File dropdown menu. This will copy the .udb file and reset the appropriate places where the database name is used.
    • Fix pascal version to remain compaq when set and not revert back to Delphi.

    PYTHON PARSER

    • Fixed bug that could lead to a parser hang.

    UPERL

    • Update kind strings in perl documentation, remove duplicates.

    Build 739

    (Build b739) – 5 Sep 2014

    CODECHECK

    • Added MISRA 2008 rule 12-1-2 and All Check script constructorShouldCallConstructorForBase.upl to Code Check.
    • Added MISRA 2008 rule 12-1-1 and All Check script objectDynamicTypeNotUsedInConstructorDestructor.upl to Code Check.
    • Added MISRA 2008 rule 10-3-1 and All Check script oneDefinitionOfEachVirtualFunction.upl to Code Check.
    • Added MISRA 2008 rule 11-0-1 and All Check script nonPodMemberDataPrivate.upl to Code Check.
    • Add MISRA 2008 rule 10-3-3 and All Check pureVirtualOverridesPureVirtual.upl to Code Check.

    GENERAL

    • Added the ability to customize (set node and edge shapes, colors, etc) architecture dependency graphs and cluster call graphs. The options are found under Tools->Options->Graphs.
    • Fixed excluded directory appearance in project configuration source files view.

    PROJECT

    • Replace in Files – Fixed the ‘Finished Replacing Matches’ dialog so that it will stay on top of the application and not get hidden behind Understand.

    REFACTOR

    • Enabled key bindings, and show case differences and whitespace differences in the refactor preview window.
    • Added a simple rename/refactor option to the context menu. Undo functionality is available by right clicking in the white space.

    Build 738

    (Build b738) – 29 Aug 2014

    CODECHECK

    • Corrected issue in MISRA 2008 rule 6-2-2, MISRA 2004 rule 2004 and All Check script TestingEqualityInFloatingPointValues.upl where a pointer to an array was treated as a floating point value.

    EDITOR

    • Change editor macro menu item text during macro recording.

    GENERAL

    • Added menu to open editor macro settings page.

    PARSER

    • For c# and Java, made changes to fix problems with counting max nesting level in routines containing ‘else if’ constructs.

    PROJECT

    • Updated CodeCheck and Replace in Files dialog boxes to keep/maintain focus of the popup instead of sometimes getting hidden behind non Understand windows.
    • Updated the Reports generation dialog to not automatically begin when the user opens the dialog. Also added timing to the start and end and show the last run time with its status.
    • Report Config updated to allow users to delete the report directories before report generation (persistent dialog box will prompt users before the first time).

    PYTHON PARSER

    • Changed the ‘end’ reference for a function or class to be the end of the last code line in the context instead of the location of the start of the next context.

    WEB PARSER

    • For web Javascript, fixed bug where html line counts were incorrect in cases where a css file was include with a ‘link’ tag, and where javascript line counts were incorrect in some cases where anonymous functions were defined in object literals.
    • For web Javascript, made change to create properties from object literals where the property name is given as a string literal.
    • For web css, fixed bug where some font-face references were not recorded.