The Prolint Result window

[procedure: prolint/outputhandlers/logwin.w]

The Prolint Result window shows a browse widget containing all warnings from the most recent Prolint run.

When Prolint is working, the statusbar shows:

  1. sourcefile where Prolint is working on
  2. which action Prolint is currently doing
  3. total number of warnings
  4. the name of the current profile
  5. percentage done, if more than one file is to be processed

When Prolint is ready, the statusbar shows:

  1. total elapsed time of last Prolint run
  2. empty
  3. total number of warnings, or if a filter is set: visible warnings / total warnings
  4. the name of the current profile
  5. empty, or "filtered" when a filter is set

Window features:

  • The browse can be sorted by any column by clicking on a column header.
  • Double-click on a row opens the currently selected sourcefile in an external editor, if file prolint/settings/exteditor.cfg is correctly set up
  • Right-click on a row opens a popup-menu, which gets help for the currently selected warning.
  • Button "Desktop" opens the Prolint Desktop window
  • Button "Lint files" opens dialog "Select files to lint" for selecting a number of files to run Prolint on.
  • Button "Save log As" saves all warnings to a tab-delimited logfile, using outputhandler "tabfile.p". Only warnings that match the current filter will be saved.
  • Button "Import log" allows you to import a tab-delimited logfile that was previously saved by outputhandler "tabfile.p". This will reset the filter.
  • Button "Filter" allows you to specify a WHERE-clause for the browse widget. This same WHERE-clause is also used by "Save log as", by "Delete" and by export to Ed4Win.
  • Button "Delete" will delete all warnings that match the current filter, and will reset the filter. What's left are warnings that did not match the filter.
  • Button "Help" shows the page you are reading now.
  • Button "Lint this c.u. again" lints the currently selected compilation unit in the browse again; if the browse is empty the dialog "Select files to lint" will open. This will also reset the filter.
  • Button "Open sourcefile in editor" launches your favourite text-editor and loads the currently selected sourcefile.
  • Button "Help on this rule" shows help on the rule that caused the currently selected warning.

Export to ED for Windows:

(this feature works only if you have ED for Windows and Progress version 9).

You will probably want to edit the sourcefiles where Prolint found warnings.
This is very easy when the warnings are listed in the "Build"-window of ED for Windows instead of the Prolint Results window.


There is a relatively easy way to export the warnings from the Results window to ED's Build window, if you have
installed proed4w :

  1. make sure that the "Proed4w Server" is started in your current Progress session.
  2. open ED for Windows and go to menu-item "Tool | Build Setup.."
  3. run title "Prolint-logwin" and watch how all warnings from the Results window are copied to the Build window

The advantage of this method, over just running Prolint from within ED for Windows, is that this
will use the filter and sorting from the Result window.

How it works:

ED starts proed4w.exe with the "-c prolint-logwin" parameter.

proed4w.exe makes a TCP/IP connection with proed4w.p and passes it the "-c prolint-logwin" parameter.

proed4w.p publishes a "Prolint_SendLogWin_Ed4Win" event.

The Results window receives the event and passes all selected warnings on to outputhandlers/ed4win.p

Outputhandler ed4win.p publishes lines to proed4w.p

Proed4w.p sends lines through TCP/IP back to proed4w.exe

proed4w.exe writes those same lines to stdout, where ED will read them.

More setup details: see page Integrating Prolint and ED for Windows


Compare Lint Sessions

[Procedure: prolint/prolintdb/lintstats.p invoked by prolint/outputhandlers/logwin.w]

The Session Statistical Comparison window is divided into three sections. On the top is the session browse where you locate the 2 sessions you want to compare against each other. There are filters at the top for user id (compared with a 'begins' operator), start date (greater than or equal operator), and session name (matches operator, the program adds two * wildcards for you). When they are set, choose filter and the matching sessions appear in the browse below. Note that a blank date means exclude the date field from the filter.

When you locate a session in which you are interested, you will make it either the 'Base' or the 'Curr'[ent] session. Typically the 'Base' is the older Baseline session that you want to use to show improvement. The newer session is the one you would typically want to select as Curr[ent].

As you select a Base or a Current session, the basic session information appears in the lower right section of the window so you can be sure which sessions you are comparing against each other. When you have both a Base and a Current, you would select Analyze. This populates the comparison browse in the lower left. This browse displays one row per compilation unit and rule, showing how many alerts were found in each session for that rule and compilation unit. To help you determine impact, the rule severity is shown, as well as the difference between the two sessions.

Assuming you are using the old version as the Base and the newer version of the program as the Current, a positive number in the "diff" column indicates that you have added new problems to that compilation unit. A negative number indicates that some have been cleaned up.

The lower (session comparison) browse can be filtered by Compilation Unit ("Prog" using a Matches operator with the wildcards added for you), and rule using a Begins operator. You fill in the values you wish to use as a filter, then select the lower filter button. (The upper filter button applies to the session browse at the top).

Once you have completed your analysis, click Cancel to close the window and return to the results window.