*** Version history for the GFM Engine ***

1.2.1
The date command has been corrected to push the correct date to the stack.

1.2.2
A test compilation because of system resources where disappearing fast without any reason. There was no changes done in the source code for this revision.

1.2.3
The serial number has been implemented as an internal variable. Also has the password been implemented as the registry key 'Password' and the Installer has been updated to update the registry with the password during the installation process.

1.2.4
The module has been divided into three editions: Lite, Standard and Advanced. The mechanism to enable different editions has also been implemented. This is done by checking the serial number and password and use an algorithm to calculate the edition.

1.2.5
The ucasestring and lcasestring commands has been implemented.

1.2.6
The serial number has been moved to the registry key 'SerialNumber' instead of having the serial number as an internal variable. The installation process has not been changed in this revision but the serial number has to be entered manually.

1.2.7
The company name Graphic Prepress Solutions has been inserted.

1.2.8
The procedure when receiving the DestinationFileName property has been improved. I.e. when issuing the >DestinationFileName has a better error handling.

1.2.9
The cvx command has been implemented.

1.2.10
The if command has been changed. If the two values are not equal will they not be removed from the stack as they were in the previous version.

1.2.11
The ifnot command has been changed. If the two values are equal will they not be removed from the stack as they were in the previous version. Also there were a typecheck error that shouldn't occur. This has been corrected.

1.2.12
The ErrorCondition property has been changed. When an endjob command occurs in the GFM script will the ErrorCondition property be set to 255. It used to be set to 1. The reason is that applications like GFM Spooler shall be able to handle an endjob command more separately from other errors. All other errors still generates the ErrorCondition 1.

From this revision and on must GFM Spooler version 1.0.72 be used to have this new functionality.

1.2.13
The findfile command has been implemented.

1.2.14 (1998-06-17)
This version has no changes in the source code compared with version 1.2.13. The reason that there is a new version is because there has been a number of changes of system files used by the module. These changes comes from Microsoft. To make it clear that there was a change has this version been compiled. Note that when upgrading to this version, all system files must be updated simultaneously, otherwise will the module not work.

1.2.15 (1998-06-17)
From this version and on will there be one separate instance of the GFM Engine created for each connection to the module. That is, each application like GFM Spooler will create its own new and distinct thread to the GFM Engine. Each thread has a unique copy of all global variables and objects, and will not interfere with any other thread. For a more detailed discussion about this and how this affects applications and modules using the GFM Engine see the GFM Systems Guide and the document Writing Modules For GFM.

Note! This new behavior can cause more memory consumption than the earlier behavior.

1.2.16 (1998-07-04)
The logical operations AND, NOT, OR and XOR has been implemented.

1.2.17 (1998-08-29)
The copyfile command has been changed completely. The syntax is the same but the code has been changed from using a Windows API call to an internal copy function. The reason is to have more control over resources, read memory, and the ability to have a progress bar shown as the copy process occurs.

1.2.18 (1998-09-08)
The psopenfile command has been changed as the following. The former check to see if the opened file is a Postscript file or not was to look at the first line in the opened file. If the first line was: '%!PS-Adobe-3.0' would the GFM Engine accept the file as a Postscript file. The new behavior is to see if the first eleven (11) characters are: '%!PS-Adobe-'. If this is the case will the GFM Engine accept the file as a Postscript file.

1.2.19 (1998-09-09)
The error generation has been changed as the following. In the earlier versions was all errors generating the ErrorCondition 1 except for the endjob command that generated the ErrorCondition 255. In version 1.2.19 has each error been assigned its own unique ErrorCondition so that the connected application can handle errors more accurate. The error list is a separate document and will be inserted in all GFM manuals in the future.

1.2.20 (1998-10-06)
The leftstring command has been implemented.

1.2.21 (1998-10-20)
The getcmdwindowstyle and setcmdwindowstyle commands has been implemented. The error code generation been added with these two new commands. Also has the error code generation been implemented when the users aborts an copy operation. The old generation was to generate ErrorCondition 1 and that was incorrect. This has now been corrected so that the abort on user generates ErrorCondition 32.

1.2.22 (1998-11-02)
The getoverwriteonmove and setoverwriteonmove commands has been implemented. The error code generation has been added with these two new commands.

1.3.0 (1998-12-08)
A completely new version since Microsoft has released the Visual Studio Version 6.0. All GFM modules has to upgraded to version 1.3 to be able to use this GFM Engine.

1.30.1 (1999-08-03)
The eq command has been implemented. The eq command will compare the two top items on the stack and return True if they are equal and False if not.

The ifelse command has been implemented. The ifelse command will run procedures conditionally as the if and ifnot commands.

The movefile command has been changed when setoverwriteonmove is set to 1. In the earlier versions would the movefile command distinguish between uppercase and lowercase filenames. In version 1.30.1 will all files with the same name, regardless uppercase or lowercase, be treated as the same name.

1.30.2 (1999-08-09)
The error:

34 Error: File: 'filename'. Permission denied. Command: deletefile

has been implemented. This error will occur if a file that should be deleted with the deletefile command is locked by another application.

1.30.3 (1999-08-12)
The usemodule command has been implemented.

1.30.4 (1999-09-03)
The GFM error and subsequent stop at movefile has been replaced with the error
Error: $syserror Command: movefile
The error condition value is 40.

1.31.0 (1999-09-23)
The repeat command has been implemented.
The getfiledatetime command has been implemented.
The getfilecount command has been implemented.
The getfilesindirectory command has been implemented.
The lt command has been implemented.
The gt command has been implemented.
The le command has been implemented.
The ge command has been implemented.

The way how procedures can be defined has been changed. Procedures may now be defined in more than one line. Also you can now have procedures within procedures. How to do this is explained in the GFM Programmer's Guide.

When using the month command and the month only was one number (below 10) the command didn't insert leading zeros. This has been corrected.

1.31.1 (1999-10-13)
The $WinSysPath has been implemented.

1.31.2 (1999-10-21)
The file command has been implemented
The closefile command has been implemented
The writestring command has been implemented
The readline command has been implemented

1.31.3 (1999-10-28)
The logfile command has been changed so that every time a new script is started will the logile monitoring be set to none.

1.31.4 (1999-12-31)
The $OnError procedure has been implemented.

1.40.0 (2000-01-04)
The ability to read and parse TIFF file headers has been implemented. Commands involved in this are the following:
tiffopenfile
tiffgetheader
tiffclosefile

Note that this version only can read the header. TIFF tags the GFM Engine parses will be saved on GFMDict as explained in the GFM Language Reference Guide and the GFM Programmer's Guide.

TIFF Tags saved on GFMDict are:
TIFFImageWidth
TIFFImageLength
TIFFCompression
TIFFSubFileType
TIFFNewSubFileType
TIFFBitsPerSample
TIFFPhotometricInterpretation
TIFFSamplesPerPixel
TIFFRowsPerStrip
TIFFXResolution
TIFFYResolution
TIFFPlanarConfiguration
TIFFResolutionUnit
TIFFStripOffsets (Only single strip files)
TIFFStripByteCounts (Only single strip files)

All other tags will be ignored. Tags that doesn't exist will not be saved in GFMDict.


*** End Of Version History for GFM Engine ***