Prev Next

Changes and Additions to OMhelp

This section contains a list of changes to OMhelp (in reverse order by date). Its purpose is to assist you in learning about changes between versions. A historical record of the changes to OMhelp can be found in the following sections:
whatsNew04 Changes and Additions to OMhelp During 2004
whatsNew03 Changes and Additions to OMhelp During 2003
whatsNew02 Changes and Additions to OMhelp During 2002
whatsNew01 Changes and Additions to OMhelp During 2001
  1. It was possible to get OMhelp to crash by putting more than one # symbol in the uri for an $href command. This has been fixed and an error message is now generated.
  2. This install process was extended to include optional support for the Octave language in the srcfile command.

  1. Some broken external reference were fixed.
  2. The OMhelp motivation section was improved.
  3. Documentation for the automatic tags was added.

A problem was fixed in the code that checked if source-highlight works correctly. For example, even though source-highlight was installed, the test was failing on gcc-6.2.1 and the srcfile command was not available. This has been fixed.

Added the omhelp_build_type the installation options. The execution time for one large help system was 80 seconds with a debug build type and 21 seconds with a release build type.

Improve documentation for the srccode command.

Fix a tabbing bug in the srccode and srcfile commands.

  1. For the srccode and srcfile commands, change to using paragraph, instead of inline, mode when display more that four lines that start and end with newline.
  2. Include tabsize in examples that use the indent argument to the srcfile command.

The srccode command, which automatically highlights source code that appears inline, as added.

The srcfile command, which automatically highlights source code from a file, was added. This is much easier to use than the hilite command, but it requires linking in source-highlight and boost_regex libraries and has only been tested with the unix install procedure.

Make the flex, bison programs optional for both the Unix and Windows install process.

  1. Remove a lot of duplicate index entries from the documentation (note that the aindex command is used to automatically index words in headings and subheadings .
  2. Improve get_started section and headings/indexing to its subsections.
  3. A warning , that suggests one not use the $path command, was added.

  1. The $syntax command has been deprecated and most of it's use in the OMhelp documentation has been removed.
  2. The $math command has been deprecated and most of it's use in the OMhelp documentation has been removed.
  3. The $number command has been deprecated .
  4. The OMhelp documentation was changed to use headings instead of tables for documentation command syntax; e.g., see the $cref syntax .

  1. Remove invisible white space for all the source code files; e.g., a space at the end of a line.
  2. Shorten the copyright message at the beginning of each source code file.
  3. Remove two old Harmonic Software copyright messages because the copyright was transferred to Bradley M. Bell; see 2003-10-19 .
  4. Add the deprecation date for wspace , xref , fend , -l , and -i .
  5. Remove many of the uses of the deprecated commands from the OMhelp documentation (so it serves as a better example of how to document).

  1. The default value for tabsize is now the same as its value at the end of the root section .
  2. The tabsize command was not affecting the size of tabs in codep commands. This bug is connect to (started with) the addition of hilite command. It has been fixed.

Some very common and simple words; e.g. an, are now excluded from automatic indexing; see excluded words .

  1. Add an $aindex command in the aindex of the OMhelp documentation. This improves the OMhelp documentation index and search search sections.
  2. The old auto-tools install procedure has been removed from the unix install instructions and cmake has been added to its requirements.

  1. Modify the install process so that it is no longer necessary to build the omhelp documentation begin installing omhelp
  2. Improve the documentation for the spelling list files english.wrd , local.wrd , and dictionary.bin .

Added MathJax display of Latex mode in *.htm files. This helps for browsers, such as Chrome, that do not support MathML. See Difference Between MathML(xml) and MathJax(htm) Display.

The download and install procedures where changed to use cmake instead of the configure script generated by the auto-tools. See the new InstallUnix and InstallWindows procedures.

The program would sometimes crash while reporting spelling errors in keyword index commands. This bug was introduced on 14-07-20 where misspelled words are only reported once per section. It has been fixed.

Change the default install prefix from $HOME to /usr/local.

  1. Use the root section aindex setting as the default for all other sections.
  2. Use the root section escape setting as the default for all other sections.

  1. The search feature has been improved by using selection from the list of keyword matches.
  2. Fix some warnings that occurred when compiling with gcc 4.8.3.

Spelling errors were being reported once per run, not once per section (since 14-07-20). This has been fixed.

Only report spelling errors once per word for each section (that way it is easier to see all the misspelled words in a section).

The with-fortran configure option was added to the configure command line so that it is possible to build and run the tests on systems that do not have a fortran compiler.

There was a bug in display of the th command. It did not use a code font while the math command did. This has been fixed so that now the input
     $math%x_i%$$ is the $th i$$ element of $math x$$
x_i is the i-th element of x
where as it used to generate
x_i is the i -th element of x

The _search section was using the non-standard XHTML code <input input parameters></input> . This has been converted to <input input parameters/> .

The file index.html is created as a link to the root section. This is an aid when viewing over the web because referencing the directory will automatically load the root section.

Change the vim installation instructions. This removed the VIMRUNTIME option from the configure command line.

Extend image command so that it can have a different value for file_in and file_out .

The xml rendering case, cross references to a heading in another section were going to the beginning of the section instead of the heading. This has been fixed.

OMhelp could fall into an infinite loop when the command $OMhelpKeyCharacter= command was misspelled. This has been fixed.

Add the ability for macros to be used inside of macros; i.e., macro recursion .

Improve error message when the newlinech character is the same as the first character in a delimiter sequence .

Avoid compiler warnings by converting argument type from char to int for the following functions: isalpha, islower, isupper, isspace, isdigit, tolower, and toupper.

The error message for certain parsing errors was not as helpful as it could have been because a keyword table was out of date. For example, the code
     $icode%x% = %y% and $icode%x% = %z%$$
generated the error message
     OMhelp Error: in file 
     OMhelp parsing error.
     Error occurred in or before line 
line number.

     OMhelp exiting with status equal to 1.
This has been fixed and now has the form: % OMhelp Error: in file %file_name% Error in the $icode command that begins in line %line_number%. This command is not terminated by $$ before $code appears. Error occurred in or before line %line_number%. %

There was a bug whereby the command key character was reset to $ when an include command was used in an input file. This has been fixed. In addition, an include file example was added for this commands documentation.

There was an error in the stop option for the verbatim command. If the character just before the matching stop pattern was a newline, it was missing from the output text. This has been fixed.

Cross references generated by the hilite command do not were including the cross reference id number. This was bad because these cross references are in example code and the id numbers were not part of the example code. Cross reference id numbers are no longer included in the links corresponding to hilite commands.

Change the printable version so that the cross reference id numbers come before the text that is being linked; e.g., 1.1: Running instead of Running: 1.1.

Fix an error in configure command's detection of proper Fortran compiler.

If one used an undefined cross reference tag in a hiliteseq command, an OMhelp assertion referencing the C source code resulted. This has been fixed so the a user oriented error message about the undefined cross reference is generated.

The hiliteseq command sometimes caused preceeding text to be missing in the output. This has been fixed.

There is an Opensuse system that is finding /usr/math/bin/f77 for the Fortran 77 compiler. This compiler resulted in the configure error message:
     configure:4516: error: cannot compile a simple Fortran program
In order to get around this problem, g77 and then gfortran were used as the preferable Fortran compilers.

Add a different color command and default for color for visited links (default is more like it used to be before adding the linkcolor command).

Fix bug where the after_j pattern in highlighting and cross referencing was being ignored at the end of a line.

Change the meaning of the hilite before and after strings.

Changed hilitetok to specify before and after strings and not restricted to identifies.

Added the linkcolor and hilitecolor commands.

The bgcolor and textcolor commands did not display properly in the *.xml output files. This has been fixed.

Added automatic highlighting and cross referencing commands.

The default navigation headings were changed so that Prev and Next come first. This makes it easier for the user to repeatedly select this items (because their position does not change from page to page).

Sometimes the first newline in a codep or verbatim command was not included in the output. It was thought this was due to the Display Inline bug mentioned in 09-01-28 below. Apparently not, see . OMhelp has been modified so that the first newline in a codep or a verbatim command is never ignored.

Firefox version 3 fixed the NegativeSpace problem so it has been removed from the Firefox Bug List . It also fixed the underbar problem and a lot of the improperly displayed symbols, so they were also removed from the bug list.

A Display Inline item has been added to the Firefox bug list.

The codep and verbatim commands were generating extra new lines at the beginning and end of the corresponding text (after the fix on 08-07-08). This has been fixed.

There is a problem with Firefox's copy and paste which results in extra new lines. The codep and verbatim command outputs have been changed so that these commands are not affected.

Change getting started examples near_equal.c and near_equal.f to near_equal_c and near_equal_f . This makes it simpler to avoid conflicts between the C and Fortran versions of these files.

The test of near_equal_f was failing to link properly to the corresponding C main program. This has been fixed by adding configuration testing that checks how Fortran names should be linked from C.

Modify the method where by symbols change size in displayed formulas; see DisplaySym . This fixed \bigcap and \bigcup in displayed formulas.

Some of the Latex symbols were using character codes of the form &x0F5hh (where hh is two hex digits). Such codes are not in the current MathML standard; e.g., see
This has been fixed. Most all the codes now come directly from the standard document listed above. The exceptions are \diamondsuit and \heartsuit. You can find a list of which of these codes are not displayed properly for Firefox and IE Explorer at the following links: Firefox , IE Explorer . Here is a list of the OMhelp Latex symbols that changed with this correction to OMhelp:
Latex    Display    Old Code    Old Display    New Code    New Display
\Box    @(@ \Box @)@    &#x025FD;    @(@ \mathml{} @)@    &#x025A1;    @(@ \mathml{} @)@
\Longleftarrow    @(@ \Longleftarrow @)@    &#x0F579;    @(@ \mathml{} @)@    &#x027F8;    @(@ \mathml{} @)@
\Longleftrightarrow    @(@ \Longleftrightarrow @)@    &#x0F57B;    @(@ \mathml{} @)@    &#x027FA;    @(@ \mathml{} @)@
\Longrightarrow    @(@ \Longrightarrow @)@    &#x0F57A;    @(@ \mathml{} @)@    &#x027F9;    @(@ \mathml{} @)@
\bigodot    @(@ \bigodot @)@    &#x02299;    @(@ \mathml{} @)@    &#x02A00;    @(@ \mathml{} @)@
\bigoplus    @(@ \bigoplus @)@    &#x02295;    @(@ \mathml{} @)@    &#x02A01;    @(@ \mathml{} @)@
\bigotimes    @(@ \bigotimes @)@    &#x02297;    @(@ \mathml{} @)@    &#x02A02;    @(@ \mathml{} @)@
\biguplus    @(@ \biguplus @)@    &#x0228E;    @(@ \mathml{} @)@    &#x02A04;    @(@ \mathml{} @)@
\diamondsuit    @(@ \diamondsuit @)@    &#x02666;    @(@ \mathml{} @)@    &#x02662;    @(@ \mathml{} @)@
\epsilon    @(@ \epsilon @)@    &#x003B5;    @(@ \mathml{ε} @)@    &#x02208;    @(@ \mathml{} @)@
\longleftarrow    @(@ \longleftarrow @)@    &#x0F576;    @(@ \mathml{} @)@    &#x027F5;    @(@ \mathml{} @)@
\longleftrightarrow    @(@ \longleftrightarrow @)@    &#x0F578;    @(@ \mathml{} @)@    &#x027F7;    @(@ \mathml{} @)@
\longmapsto    @(@ \longmapsto @)@    &#x0F57D;    @(@ \mathml{} @)@    &#x027FC;    @(@ \mathml{} @)@
\longrightarrow    @(@ \longrightarrow @)@    &#x0F577;    @(@ \mathml{} @)@    &#x027F6;    @(@ \mathml{} @)@
\oslash    @(@ \oslash @)@    &#x000F8;    @(@ \mathml{ø} @)@    &#x02298;    @(@ \mathml{} @)@
\phi    @(@ \phi @)@    &#x003C6;    @(@ \mathml{φ} @)@    &#x003D5;    @(@ \mathml{ϕ} @)@
\star    @(@ \star @)@    &#x022C6;    @(@ \mathml{} @)@    &#x02605;    @(@ \mathml{} @)@
\succeq    @(@ \succeq @)@    &#x0227D;    @(@ \mathml{} @)@    &#x02AB0;    @(@ \mathml{} @)@
\triangle    @(@ \triangle @)@    &#x025B5;    @(@ \mathml{} @)@    &#x025B3;    @(@ \mathml{} @)@
\triangleleft    @(@ \triangleleft @)@    &#x025C3;    @(@ \mathml{} @)@    &#x022B2;    @(@ \mathml{} @)@
\triangleright    @(@ \triangleright @)@    &#x025B9;    @(@ \mathml{} @)@    &#x022B3;    @(@ \mathml{} @)@
\varepsilon    @(@ \varepsilon @)@    &#x0025B;    @(@ \mathml{ɛ} @)@    &#x003B5;    @(@ \mathml{ε} @)@
\varphi    @(@ \varphi @)@    &#x003D5;    @(@ \mathml{ϕ} @)@    &#x003C6;    @(@ \mathml{φ} @)@

The codei and icode commands were added. These commands switch pre-formatted text between code and italic font. See the remark at the end of the command.

The latex Calligraphic font \cal was added. This turned up another problem in Firefox ; see the mathvariant bug entry.

Remove some objects that executables that were mistakenly part of the distribution copy of omh/getstarted. (This caused the make command to fail on other systems because they were not built from source.)

If a navigate command was used in the root section the corresponding setting did not get transferred to the table of contents section. This has been fixed.

The script file for batching the get_started examples RunAll was no longer working. Change it to a bash script called (which now works).

The name used for the directory where the user copies the get_started examples was changed from the omh directory to the test directory (to avoid confusion with the omh directory in the OMhelp distribution).

All of the section names and file names in get_started were changed from mixed case to lower case.

Due to a problem with using Cvs with Cygwin, it is not possible to change just change the case of a file name. For this reason, the examples Factorial.c and Factorial.m have been replaced by near_equal_c and near_equal_f .

The href command was improved to detect when the linkingtext was empty and stop with a fatal error message.

The view_factorial.m example used the wspace command which has been deprecated. It was changed to use the newlinech command which works better. In addition, a link in start_embed to view factorial.m was mistakenly to view_factorial.c. This has been fixed.

The favicon option was not listed when OMhelp printed its usage message (in response to an improper command line). This has been fixed.

The Firefox back button bug has been removed (it seems to be fixed). The Firefox copy and paste bug has been added.

A common mistake is to include the same file in two different places and thereby multiple definitions for the same cross reference destination. The error message for this case has been improved to suggest that perhaps the same file has been included twice.

There was a problem with the configure script whereby there was a space at the end of the name of the file that it was checking src/UniformWhiteSpace.c. This has been fixed.

Changes the _search dialog so that it selects the current entry when you hit return (or select the button).

The navigate command default value was changed so that Up is grouped with Across.

Allow for extra white space surrounding verbatim file name .

The navigate command default value was changed. To be specific, the Top%Top entry wash changed to Up%Up% and Prev%Previous% was changed to Prev%Prev% (note the second change was a correction to the documentation). In addition, the status of this command was change from preliminary to permanent; i.e., it will be supported in future versions of OMhelp.

A childtable command in the root section resulted in broken links to _search and _contents . This has been fixed.

The navigate command was improved by making splitting _upi into a the type Down_Up_i and the label _up_i . This enables one to changes the labels corresponding to this type of link.

The 06-08-11 mfenced issue has been fixed by the Firefox browser developers so it was removed from the list of problems with that browser.

A link to the Top section was added to the set of navigation types . It was also added as part of the default $navigate command.

Initialize the cursor to be in the Keyword input field whenever the search page is loaded.

The default $navigate command was changed. In addition, the help for the navigate section was improved.

The windows install omhelp batch file install.bat has been fixed. (The path was not being set properly by the automatically generated file setup.bat.)

The -i and -l command line have been deprecated (replaced by -image_link and -image_file )

The -favicon command line argument has been added.

Change the navigate special labels _parent and _this option to the more general (and more functional) _up label.

The current section was included in the Up navigation links, in the noframe case, Now start with the root section (same as the frame case). In addition, the current section is included (same as the frame case) because it gives a better idea of the current location in the web site.

In the version of the web site with frames, it is often desirable to get back to the current section. Thus the links for the current section were enabled in the frame case (in the noframe case the link has no effect).

The was a bug in copying the navigate command for the root section to be the default for other sections. This has been fixed.

The _parent and _this labels have been added to the navigate command.

Minor fixes to Windows installation .

A navigation type example was added.

If a navigate command is used in the root section , it now replaces the default for the other sections.

A preliminary version of the navigate command has been added.

The < and > characters did not work proper with the -noframe option. This has been fixed.

An <mfenced> problem was added to the Firefox browser list (this Firefox problem has since been fixed).

The -- was missing in the --prefix option to the Unix install configure command.

When using the -noframe option, put an extra link to Content on every page a the beginning of the automatically generated links.

More discussion of using syntax highlighting has been added the documentation for the vim during Unix installation .

The deprecated heading has been added to the discussion of the BackButton problem in FireFox 1.5 (the problem has since been fixed).

The cref command was added and the xref , fend commands were deprecated (because the use of frames is now discouraged). In addition, the deprecated commands have been moved to a separate section.

There was a bug in the drop down links where by they did not work when a single quote ' as in the text of the link. This was found by Steve Kargl and has been fixed.

Add the option to put all the information for a section in one frame using the -noframe command line argument.

Overhaul the documentation for the command that running the omhelp command.

The Windows installation has been improved.

Change OMhelp output so that all warning messages begin with OMhelp Warning: and all error messages begin with OMhelp Error:. If one redirects standard output one can automatically check if there has been a warning or an error with the unix commands
     grep "^OMhelp Warning:"
     grep "^OMhelp Error:"
Errors can also be checked for using the OMhelp exit status .

The stdout documentation has been improved.

The unix installation instructions have been simplified because the make command now also builds the documentation. (This was part of the dictionary.bin issue discussed directly below.)

The Firefox Javascript entry has been modified to use FirefoxJavascript.htm instead of FirefoxJavascript.html (because only *.html files are not being copied to the web version).

The BackButton problem has been added to the Firefox browser section (the problem has since been fixed). In order for this example to work properly, the execute command was changed so that its target frame is the top frame. (Perhaps some day, execute will use a delimiter sequence and the target frame will be specified by the user.)

Specifications for the exit status of OMhelp have been added (and the code has been modified to meet these specifications).

The error message for the following case has been improved: when the first and last character of a delimiter sequence do not match.

The file OMhelp/dictionary.bin has been removed from the distribution because it is system dependent (automake expects the data directory information to be system independent).

Detect and report specific error message when user attempts to embed a command inside of an atomic command; for example

Change the Window's download file from gzip to zip format.

Change the Unix install configure VIM_RUNTIME to VIMRUNTIME.

Fix some minor typos in stdfun (change Diaplay to Display and use italic font for Command in the syntax).

The syntax command has been changes so that leading and trailing white space in the italic entries is ignored. This enables one to use multiple OMhelp input lines for a single syntax output line.

The newlinech command used to ignore a tab if it directly followed the special newline character. This has been changed so that a single space is the only character that would be ignored after a newline character. This enables on to indent output with a single tab following the newline character.

OMhelp syntax highlighting was added for the vim editor .

A executable version of OMhelp is now distributed together with the source code the for InstallWindows case. This enables Windows users who do not have a Windows C compiler to use OMhelp.

Modify execute documentation to say that WordPad will be opened if you are using MS Internet explorer (may not happen with other browsers).

Links to specific frames were not working properly in Firefox 1.5 This has been fixed.

In FreeBSD, malloc.h is obsolete and one should use stdlib.h instead. The reference to malloc.h has been removed from src/allocmem.c.

It used to be that multiple white space was ignored when it followed an occurrence of a special character after a newlinech . This made it impossible to indent multiple lines within a syntax command. This has been fixed by only ignoring the first space or tab following an occurrence of the special newline character after a newline.

The automatic links to This: section, frame (in the upper right corner of the window) has been omitted when there is only one section and one frame in the entire web site. This is useful when using OMhelp to create a single web page.

The Mozilla bug section has been updated so that it is relative to the current version of Firefox .

The wspace command is deficient in a few ways: it generates white space that sometimes interferes with output formatting, it is very difficult to use with the Fortran programming language. The newlinech command, which overcomes these problems, had been added and the wspace command has been deprecated.

In the Unix install case, the file
was created the first time OMhelp was run. This would cause an error if the user running the program did not have permission to write in the prefix directory. This has been fixed by changing the spelling list install procedure.

The install directory was not being properly embedded in the program during the unix install . This has been fixed.

The file RunOMhelp.bat, which is used during the windows install, was not being distributed. This has been fixed.

The first output line, which identifies the version of OMhelp, has been extended to include information about compiler flag settings.

Standard latex treats subscripts and superscripts for some of the standard math functions differently when they are in inline formulas from when they are in Displayed formulas .

The # character is used to separate fields in cross references. This confused OMhelp when a heading or subheading contained the # character. The head and subhead commands were modified to make it illegal to include the # character. (It would be better to separate fields differently so that this restriction could be removed.)

The previous install worked under cygwin, but not under Unix, because of some case mismatch in the file names. This has been fixed by converting the file names to entirely lower case as suggested by boost The conversion to entirely lower case file and directory names will be done slowly and with minimal user impact.

The Unix install now uses autoconf and automake and the environment variable omhelp_dir is no longer necessary. In addition, the Unix and Windows install instructions were split into two separate sections and improved.

The -omhelp_dir dir command was added. This specifies the OMhelp installation directory on the command line was added.

OMhelp now supports Microsoft Visual C++ version 7 or higher (version 6 is no longer supported). The project files have been changed to version 7 format. In addition, only source code distributions are included; i.e., a windows executable with out source code is no longer distributed.

The use input
     $bold Notation $cnext Description$$
did not cause an OMhelp error but the corresponding web page generated an XML error (and the HTML did not display properly). This is because the bold command is started inside of one column and terminated in a different column of the table. This has been fixed so that OMhelp generates an error message in this an related cases. In addition, the documentation for the table commands have been improved so that it explicitly states where row and columns start and end (and a nesting table example has been added).

A command as was added so that one can control the alignment of data within each cell of a table.

The files build and build.bat were moved to RunOMhelp and RunOMhelp.bat (see install ).

The download files and installation instructions were changed. All the download files now use *.tar.gz format which gives better compression and is understood by most decompression programs.

The accent command was added to improve the display of Spanish text.

The upper right corner now contains a link to the current frame by itself; i.e, displayed without the supporting navigation frames and other frames for the same section. The other automatically generated links, such as previous and next were reorganized and right (instead of left) justified.

If Java Script is not enabled in a user's browser, and the search page is entered, an error message is printed. A spelling error in this message was fixed.

If one uses long headings and subheadings, it is sometimes useful to break them up into multiple lines. The cross reference links have been extended so that they will still work for such headings and subheadings (see xref: Reference ).
Input File: whatsnew.omh