Release notes - filePro Plus 6.0 - 08/08/2025
fP 6.0.XX.24
The filePro Plus software and the documentation provided with it
are protected under United States Copyright Laws and is provided
subject to the terms and conditions of the filePro License Agreement.
PLEASE NOTE the support and fax phone numbers listed in this
readme file. Open new support incidents on our website.
*****************************************************************
WWW http://www.fptech.com
Support support@fptech.com
Sales sales@fptech.com
Management filepro@fptech.com
*******************************
To submit bug reports
--------------------------------
1. Login to your account portal on our website
http://www.fptech.com/fptech/login.php and then
go to the Support Incident Menu and submit an
incident request.
2. EMail them to support@fptech.com including the text
"Bug Report" with the version # and your filePro
License # in the subject line
3. FAX them to (813) 354-2722 clearly marking them as bug reports
and be sure to reference your filPro License #
4. Call the customer support number (800) 847-4740
*******************************
A special thank you to Jim Asman for his contribution
to the functionality of our printer tables. Jim was
a good friend to filePro and is dearly missed.
*******************************
Contact Information
Surface Mail
fP Technologies, Inc.
432 W. Gypsy Lane Road
Bowling Green, OH 43402
Phones
Support (800) 847-4740
Sales (800) 847-4740
Fax (813) 354-2722
Email
Support support@fptech.com
Sales sales@fptech.com
Management filepro@fptech.com
It's important that you clearly describe a suspected bug and
include the filePro version number. If the programmer has trouble
figuring out what you meant, you might as well not have reported
the bug. Be very specific. For example, if you are reporting a
bug concerning a Browse, identify if it is a lookup browse or
browse created by using the [F6] key. A screen shot is very
helpful and sometimes better than more than 1000 words.
Describe exactly how to duplicate the bug. Although it's
sometimes difficult to create a working sample to demonstrate the
problem, make every effort to trim down your code and provide a
working sample application with test data. You may even discover
that what you thought to be a bug is due to a coding error or the
bug may only occur with lots of data or large processing tables.
Take good notes as to any error messages and under what
circumstances the error message is presented. It never hurts to
provide more information rather than not enough. This is
particularly true when the programmer asks for additional
information. Rather than responding with a single sentence, be
verbose since this may shed some light on the bug or what you may
be doing wrong in your code.
Read what you wrote. Closely read your bug report before submitting
to make sure it's clear and complete. If you have listed steps for
duplicating the bug in a sample, exercise the sample with the
listed steps to make sure you haven't missed a step.
***************************************
filePro and filePro Plus are registered
trademarks of fP Technologies, Inc.
***************************************
===================================
Bug fixes are below the New Items.
===================================
====================================
Version 6.0.XX.24 New Items
====================================
Added optimizations to string literal handling in filePro's runtime engine.
On very large processing tables it was possible to have too many string
literals, causing a table overflow and producing odd results in filePro.
This version now implements a version of string interning that should save
considerable space in these larger tables. An error message has also been
added in such a case that the table would overflow. These changes affect
how processing tables are tokenized, but the tables generated are still
backwards compatible with older versions of filePro. These changes can be
disabled by setting PFO1 to OFF in the config file.
Added STRIP attribute to PDF LINK annotations.
<LINK TEXT=" " URI="https://fptech.com" STRIP="off">
Setting STRIP to OFF will preserve whitespace in the LINK TEXT attribute.
STRIP defaults to ON.
Added URI attribute to PDF IMAGE annotations.
<IMAGE FILE="logo.png" URI="https://fptech.com">
Adding a URI attribute to an image turns it into a link.
====================================
Version 6.0.VV.18 New Items
====================================
Updated all programs to no longer require unixODBC by default. unixODBC will now
only be required when an ODBC related function is used. If unixODBC is not
found when an ODBC function is required, a filePro error will be returned.
Added PFPDFAUTOBREAK=ON (default OFF) to allow PDFs to automatically break pages
based off of selected paper type.
Added menu letter to menu script editor.
====================================
Version 6.0.VV.RR New USP Only Items
====================================
Task #1782 <LINK text="click here" uri="http://fptech.com">
Optional: underline="off"
Optional: color="#0000FF"
There is a problem with the concept of "destination" for in-document
links e.g. dest="page4". This would require pre-initializing all
required pages before processing the FPML. Therefore that
functionality is not included. Only HTTP links are known to work.
Task #1832 You can now use: @wlf<letter>*
ex. @wlfT*
This will apply to any dummy/associated field that begins with 'T'
Overrides any other @wlf*
Task #1833 Added logging to ddefine.
ddefine can now optionally track changes made to filePro file
layouts. This includes the name of the file, who changed it,
and what fields were changed. Requires a logging configuration
file to be added under the ./fp/logs directory named 'ddefine.cfg'.
Format of the config file is the same as the servlog.cfg file that
comes shipped with filePro.
Example ddefine.cfg:
ROLLING,DEBUG,ddefine.log,60000
Task #1851 xx=FORMERROR
syntax: xx=FORMERROR()
returns: errno from last FORM or FORMM command.
e.g. 2=file not found, 13=permission error
Task #1852 Validate menu script before prompting for removal
Task #1853 CABEBACKUP setting to only save changed PRC
Task #1859 Added new option 'C' to F8 Extended Functions for dmoedef
to show a list of all print codes on an output format. Selecting
an item from the list will jump the editor to it.
Trim #1875 TRIM command to remove spaces
aa=ltrim(fld)
left trim
aa=rtrim(fld)
right trim
aa=trim(fld)
trim both left and right
Task #1879 PFIXGT can now be set in dxmaint F8 options.
This is backwards compatible, so if PFIXGT is still set in config,
then it is honored by clerk *if true*. If false, the index header
is checked for the flag.
Task #1887 Added additional checks and field verification for ODBC
mirroring. This now attempts to handle invalid data in fields.
Task #1888 Added prelim support for MSSQL for ODBC mirroring.
PFDODBCMSSQL=on (default off).
Setting the variable to on changes the internal handling of the
SQL connection.
Task #1668 Windows fPTransfer now will accept wildcards.
Task #1883 A compress-filePro routine
FPPACK
Function:
Remove deleted records from a filePro file, and then
(optionally) rebuild all automatic indexes.
Syntax:
FPPACK [ filename | - ] [ -H heading ] [ -E ] [ -R ] [ -X ] [ -EX ] [ -C ]
[ -M name | -MD | -MQ mesg | -MA ] [ -BG ] [ -BS ]
-H "heading" custom title to display in box.
-E don't actually pack the records, just
give statistics.
-R rebuild the automatic indexes even if
no records were deleted.
-EX skip statistics
-C skip continue and finished prompts
-X skip rebuilding the auto indexes.
-M name qualifier file name to use.
-MD ask for qualifier with default prompt.
-MQ "mesg" ask for qualifier with "mesg" as the prompt.
-MA use all qualified files & main file.
UNIX/XENIX only:
-BG work in the background.
-BS suppress "completed in background" message.
Task #1902 Added various enhancements to PDF engine.
See on-line or ~/fp/docs PDF documentation.
Task #1906 Added optional error message suppression and basic password
auditing to filePro.
PFERRSUPPRESS=ON, default OFF
PFPWAUDIT=ON, default OFF
Password auditing also requires a ./fp/logs/pwaudit.cfg file. Same
structure as servlog.cfg.
Any error that would be sent to mail will still be mailed on
unix/linux based systems.
Errors reported in the background will still be suppressed.
Including the program name.
Invalid password and license errors will still be reported. Password errors omit the filename.
dcabe and rcabe are exempt from the error suppression.
Task #565 READLINE using "-1" for length to force read to EOL
Task #888 show=pkeep retain position if brw format changes
In a browse lookup with "show=pkeep", the browse was
enhanced to allow the position to be retained, even if the
browse format has changed.
Task #1000 -fp *report flag would not report an error if the prc to use
did not exist.
Task #1227 A new function to lock or unlock nbyte bytes of the file
specified by handle.
Task #1303 ddefine will now create new screens the same as dscreen does
instead of just mono.
Task #1306 NEW arguments for OPENDIR
format length
extension length
fullname length
Task #1340 *cabe lookup wizard will now honor PFQUAL and show qualified
indexes
Task #1359 Added new FPML commands to control the appearance of underlines.
Task #1534 new RINSTR, and INSTR now allows negative positions for working
backwards.
Task #1421 New GIadmin that will count GUI (GI or Web) sessions, ease of system
and user configuration files and additional security.
Task #1504 Added PDF syntax as an option for printer maintenance (pmaint)
Windows only
Task #1564 Remote Licensing for GIserver and fileProWeb. Hardware tie-in no
longer required with internet access
Task #1574 Lookup Wizard in cabe now allows long vars as key
Task #1583 Added alias and arrays to F6-D-L display in *cabe
Task #1584 Added SHOWPROGRESS
Task #1592 updated color with new routines and corrected the shell escape
codes.
Task #1613 New variables
CABEBACKUP ON|OFF (on by default)
CABEBACKUPMINS n (minutes between backups)
CABEBACKUPCT n (backup files per process)
Task #1637 Menu maintenance (makemenu) now asks if you wish to remove
an unused menu script if the menu item is not used.
Task #1676 *report now allows one to use .outs from a pathed directory library
Task #1678 SCREEN command can switch fields in a POPUP UPDATE -, provided no screen name is passed to the SCREEN command.
Task #1447 MEMO EDIT now accept maxsize to limit the number of
characters that can be intered into a memo field.
memo NNN edit (row,col,lines,width,startLine,startcol,maxSize)
(Text mode only)
Task #1609 (All)
Added option 7 to dxmaint to clear qualifier
Task #1610 (All)
New -SE *report flag to allow report to edit/save a selection set.
Task #1601 (All)
Added @EXIT label to *clerk processing. This is executed whenever
a record is exited or broken out of. Events that trigger this are
'X' while not in update mode, 'BRKY' while not in update mode, and
'exit' in processing. It is the opposite of @entsel, and is the last
thing executed when leaving a record. Assignment of real fields is
not allowed, this is similar to @once in that the processing that is
executed is NOT sitting on a record, but rather record '0'.
Task #1606 (All)
Partial lookup flag added to *cabe lookup wizard.
-O on an exact lookup now does partial key matching. This kills a
lookup once the begining of the key value no longer matches the lookup
key value.
Task #1546 (All)
BUSYBOX
BUSYBOX "my message"
BUSYBOX("10","10")
BUSYBOX("10","10") "my message"
Task #1723 Added PFPPFULLPATH as an ehancement to PDFPOSTPRINT
and added an PFNEWPOSTPRINT alias to name to PDFPOSTPRINT
Added PFPPFULLPATH to augment the filename passed to the post print
handler, default ON, this causes the filename passed to the postprint
script to contain the full path to the file, not just the file name.
Set to OFF to revert to old behaviour. PFPOSTPRINTnnn will now work
with normal file destinations. Same rules as the old global PFPOSTPRINT
but also supports PDF files.
Task #1639 Added new conditions for searching used for
associated fields only.
Task #1662 PDF printing should now honor the page length set in dmoedef
Task #1691 clerk will now allow a full path to a form when using
the FORM and FORMM command in processing.
Task #1757 User defined functions - Forward declare functions to be used:
(function|func) [file.]name([dim|var] var1, [dim|var] var2, ...)
e.g.
function fplib.showlock(var pid)
function fplib.log(file, line, what)
function somefunc(dim myarray)
Call a function:
[x=][file.]name(var1, var2, ...)
Return a value from a function:
return(value)
Can pass fields: real, dummy, longvar
Can pass arrays: Alias and system arrays are copied to a non-aliased
array. Non-aliased arrays are passed by reference.
Function names must be at least 3 characters in length.
Functions cannot modify values outside of its scope.
Functions do not call automatic processing.
Functions cannot modify real fields.
Functions cannot be called unless it they are declared.
Functions can pass values by reference (changes made to the value will
carry back out of the function, only to arrays).
Functions can optionally return a value.
Parameter names must be at least 3 characters in length.
Parameters will be passed to the function using the name they were defined
with in the declaration statement.
Environment variables:
PFFUNCDBG=(ON|OFF), default OFF.
If ON the debugger will be allowed to continue into the function
call. If OFF the debugger will skip over user defined functions.
NOTE: Debug statements inside of functions will still be able to
be activated. If debug is set inside of a function, it will
continue even after the function is left.
Example:
Processing table for fibonacci:
If: ' Declare for future use
Then: function fibonacci(nval)
If: ' Get the parameter
Then: declare extern nval
If: nval le "1" ' Return the result
Then: return(nval)
If: ' Return the result
Then: return(fibonacci(nval-"1")+fibonacci(nval-"2"))
Usage:
If: ' Declare for future use
Then: function fibonacci(nval)
If: ' Call the function
Then: n=fibonacci("9")
If: ' Display the result
Then: msgbox ""{n ' Prints "34"
Task #1756 EXTERN and GLOBAL arrays
DIM GLOBAL name(size)
DIM EXTERN name
Only non-aliased arrays can be declared GLOBAL/EXTERN.
Functions similar to GLOBAL/EXTERN longvars.
Task #1639 New compare condition for Associated Fields
Added new selection set relational operators:
AEQ - Associated field, all equal
ANE - Associated field, all not equal
ACO - Associated field, all contain
These require ALL components of an associated field to match the
comparison being done, rather than just one of its component fields.
Task #1667 Extended and Short selection will now check edits when leaving the
field, provided that the relationship code is not CO. If the code is CO,
the field will be treated as NOEDIT instead of its defined type.
Task #1721 Print spool initialization move beyond a large chunk of processing
which should remedy most if not all problems with the spool timeout.
Task #1733 NEW XLSX Mark-up language for creating XLSX files.
(see ~\fp\docs\xlsx_docs.pdf or on our website)
https://www.fptech.com/fptech/pdf/xlsx_doc.pdf
Task #1749 Rebuild All Indexes on a file. item '8' on the dialog. Note: this
is in the "extended" dialog which shows when a filename is not specified
from the command line. Indexes can be selected individually,
or all (with F7). Press SAVE, and rebuild begins
Task #1751 Ability to EXPLODE or SPLIT import data
Usage:
sz=SPLIT(array, string, delimiter)
array is the array that the data will be placed into
string is the data to split
delimiter is the sequence of characters to split on
NOTE: The array being used must have the size defined for its elements and
cannot be an alias.
Task #1754 Added the ability to show record locks from *clerk. Can also be
used to terminate sessions directly. New option !L added to *clerk. Using
!L will activate the new locked records list. Enter on a selected entry
will give additional options to the user, including the ability to Kill
or Terminate a locked process without having to go to the command line.
Note: This option is only available on Unix/Linux/BSD
Task #1761 Added UID mapping to filePro, ddir/dprodir option F5.
This allows for UIDs (User IDs) to be aliased to specific
usernames. In the event that a login account is removed from
your system, this can be used to maintain the link between the
removed login's UID and those stored in filePro, effectivly
allowing system variables such as @CB and @UB to be mainained.
Windows Only:
This also has the added benefit of allowing @CB and @UB to
function on Windows by linking a "pseudo" UID to a given
username. These UIDs are automatically generated but can
also be manually added. When a user opens filePro and their
username does not exist in the UID map file, a UID will
be generated for that user. filePro will find the next
available UID in the list, starting from 2000, and assign
it to that username.
On all platforms, UIDs stored in this program must be unique
and in the range 0-65535. Usernames can be duplicated on Unix
and Linux platforms, but must be unique on Windows.
Usernames are case-sensitive on Unix and Linux platforms and
are case-insensitive on Windows platforms.
Environmental Variables:
PFUIDMAP = /path
Alternate filePro UID map file. (Use full path)
Note: Must be set in the environment.
PFUSEUIDMAP = ON
Allows filePro to do UID mapping. Also expands the maximum
username length returned by @CB, @UB, and @ID to 32.
Default: ON
Task #1762 All functions that take a position default to the first character
in a field if not specified.
All "is" functions return "1" for true and "0" for false.
x=isalpha(fld [, pos])
Is the character at the position given a letter?
x=isdigit(fld [, pos])
Is the character at the position given a number?
x=isalnum(fld [, pos])
Is the character at the position given a letter or number?
x=isspace(fld [, pos])
Is the character at the position given a whitespace character?
' ', '\t', '\n', '\r', '\v', '\f'
x=islower(fld [, pos])
Is the character at the position given lowercase?
x=isupper(fld [, pos])
Is the character at the position given uppercase?
x=isxdigit(fld [, pos])
Is the character at the position given a hexadecimal character?
'0'-'9', 'A'-'F'
x=iscntrl(fld [, pos])
Is the character at the position given a control character?
ASCII codes 0x00 (nul) - 0x1f (US), and 0x7f (del)
x=isprint(fld [, pos])
Is the character at the position given a printable character?
ASCII codes greater than 0x1f (US) not including 0x7f (del)
x=ispunct(fld [, pos])
Is the character at the position given a punctuation character?
x=isgraph(fld [, pos])
Is the character at the position given a character with a
graphical representation? The characters with graphical
representation are all those characters than can be printed
(as determined by isprint) except for space.
x=tolower(fld [, pos])
Return the character at the position given as a lowercase
character.
x=toupper(fld [, pos])
Return the character at the position given as an uppercase
character.
str=strtolower(fld)
Return the entire string converted to lowercase.
str=strtoupper(fld)
Return the entire string converted to uppercase.
Task #1767 Corrected a bug caused by #1691. FORM/FORMM should now corectly produce
output when not fully pathing to an output format.
Task #1773 Added new array size function to get the size of an array. Can be
used with GLOBAL, EXTERN, LOCAL, and SYSTEM arrays.
x=ARRAYSIZE(array)
Where array is the name of the array.
Where x is the returned size of the passed array.
Tsk #1774 Added new DECLARED function to check if an array or longvar is
defined, meaning it is either declared LOCAL or GLOBAL or is declared
EXTERN but has a matcing GLOBAL definition.
x=DECLARED(var)
Where var is either a longvar or an array.
Where x is the return value.
Returns 0 if the variable is not fully defined.
Returns 1 if the variable is fully defined.
Task #1784 Increased ACTION length in debugger from 60 characters to full 128.
Should now be the same as *cabe.
Task #1818 Corrected an issue where a duplicate field warning could display
while defining a lookup. Warning is now suppressed until saving the
processing table.
Task #1829 Added new flag -DM to [dr]clerk to disable the Index Mode prompt
from @ENTSEL. Only works when not in update mode.
Task #1835 Added flag -RH to report to disable the automatic record number
reporting in the middle of the screen. This enables placing text on the
center of the screen without it being overwritten when the display updates.
Task #1836
x=@GUI.PAUSE()
Pauses automatic screen updating while in GI/Web.
x=@GUI.RESUME()
Resumes automatic screen updating while in GI/Web.
Task #1936 REPLACE() enhancement - allow null characters
Enhanced REPLACE() to accept null characters
Task #1938 New flags -EX and -C for fppack
New flags -EX and -C for fppack.
-EX : skip statistics
-C : skip continue and finished prompts
Task #1880 FORM WITHPROC
FORM WITHPROC "formname"
FORMM WITHPROC "formname"
Added additional command switch to FORM and FORMM commands to allow
the associated processing table to run while in input processing.
Note: You cannot call the WITHPROC variant from within another form
UNLESS the calling form is a processing only form.
Task #1882 Addqual Program
Addqual allows you to easily add qualifiers to your files either
interactively or through the command line.
This runs interactively:
addqual [filename]
This runs automatically:
addqual filename -q <qualname>
as does this:
addqual filename -q <qualname> -x <qual-to-copy-from>
The automatic commands will display graphics on errors. You can keep
graphics off with "-s" and errors will be printed on the command line
if they occur.
example:
addqual filename -q <qualname> -s
List of switches:
-q qualifier to create
-x qualifier to copy indexes from
-s silent, no graphics
-h --help syntax help
Task #1777 XFER - encrypted transfers server-peer
Task #1732 CABE F6 list files from F8 L-Load
====================================
END OF NEW USP ITEMS
====================================
===================================
6.0.XX.24 Bug Fixes
===================================
Fixed an issue in with encrypted filePro files where using ENCRYPT() and
DECRYPT() in an encrypted file would cause record decryption to fail.
Fixed a potential crash when switching from printing a PDF document to a regular
non-PDF printer in clerk.
Fixed a crash when copying or renaming alien files in fpcopy.
Fixed a blank error message on license error in fppack.
Fixed PDF LINK annotations to not include a border.
Fixed an issue with PDF font loading when underline is enabled.
Changed WORDWRAP to no longer treat periods as a break point. Setting
PFOLDWORDWRAP=ON will revert this behaviour.
===================================
6.0.XX.23 Bug Fixes
===================================
Corrected an issue where an ODBC table wouldn't report as existing.
Corrected an issue with Find and Replace in dcabe/rcabe where control codes
were incorrectly being interpreted as character and color codes.
Corrected an issue in dreport/rreport where exiting with an EXIT action in
@DONE would not use the supplied exit value if zero records were selected.
Updated F6-D-L listing in dcabe/rcabe to restore typedown behaviour.
Fixed an issue in rcabe, dcabe, and dclerk where a syntax error could cause a
crash upon saving or continuing.
Fixed a show map (F6 - View Fields) regression in dcabe/rcabe where button
labels were missing valid options.
Fixed an issue with the bottom screen display on Windows in dscreen.
Reworked the SPLIT() command to work with all standard array types.
Fixed SPLIT() return value. There was an issue where the number of elements
returned could have been more than the returned type allowed.
SPLIT() now clears the array before updating values and will now honor the edit
type(s) of the array, rather than always treating the data as a string.
Fixed a crash when using READOUTPUT() in processing.
Corrected a memory leak in LISTBOX() and SELECTBOX().
Corrected an issue with the "!L" escape in dclerk/rclerk. Previously, the
calculation to determine the locked record number was incorrect.
Added an additional check when saving a record in dclerk/rclerk so that a zero
length must-fill field will be treated as filled.
Corrected an issue with fields resetting when using user defined browses in
clerk when a screen contains scrolling fields.
===================================
Version 6.0.XX.22 bug fixes
===================================
Fixed UID import feature in ddir where it wasn't finding any files.
User can now save a blank UID map in ddir.
Corrected a lock issue with UID maps.
Added additional error messages when importing files for UID mapping.
Fixed an issue with VARCHAR fields not working when using some ODBC drivers.
Corrected an issue with script cleanup causing a crash in dmakemenu.
Fixed a crash when adding an index to an existing empty file in ddefine.
Fixed a crash in fppack when rebuilding an index containing system controlled
fields.
Corrected an issue in fpsql where viewing a file's layout would not retain the
previous seleciton.
Fixed an issue in all runtime programs where aliased real fields in an array
would not explicitly write on end.
Corrected a potential crash when adding a duplicate key to an index.
Fixed a crash caused by inserting a new unique key after a very long chain of
duplicate keys to an index.
Fixed a break key issue in cabe F6 label lookup in F9 search. filePro was
requiring twice as many break key presses than was actually required.
===================================
Version 6.0.XX.21 bug fixes
===================================
Corrected an issue on Linux/BSD where fuzzy search could cause a crash.
Fixed array handling in user defined functions that could cause a crash.
Updated fuzzy search to better handle long fields.
Fixed a crash in find and replace in cabe.
Fixed a crash when copying lines that don't exist in the file in cabe.
Corrected various files not being copied correctly in fpcopy.
Fixed indexes on qualified files in fpcopy.
Added sanity check to locked records check in clerk.
SPLIT() - Removed restriction on delimiter size. Size of array elements still
need to be defined for destination.
Fixed syntax error line reporting in cabe when jumping to a different place in
a prc file. Cabe now shows the line number in the editor correctly.
Corrected an issue loading tokenized global arrays in rclerk and rreport.
===================================
Version 6.0.XX.20 bug fixes
===================================
Corrected an issue when using the Rebuild Indexes option in dxmaint where
options were not toggling correctly.
Fixed a regression where scrollable fields in a popup weren't displaying
correctly.
Fixed message boxes to better handle filePro escape codes.
Fixed -pv flag and print to screen to no longer corrupt the output.
Fixed alternate automatic processing loading in cabe, preventing variables from
resolving correctly during syntax check.
Fixed a too many open files bug in fpcopy when working on a file with many
qualifiers and indexes.
Corrected fppack to correctly handle encrypted files.
Changed index rebuild message location on the screen to no longer be hidden
behind the progress updates.
===================================
Version 6.0.XX.19 bug fixes
===================================
Fixed an issue where libodbc would not correctly be found when initializing
features that use ODBC.
Corrected an issue with RINSTR() where the starting position wasn't honored
correctly.
Option 'C' to clear selection set in [dr]clerk will no longer cause an infinite
loop when going back into index selection.
Updated PNG support for PDF outputs. Previously, some PNG files would appear
corrupted when imported.
Corrected a potential crash when moving/reordering blob fields inside of
dmoedef.
Added PFOLDCHAIN to allow CHAIN to return to the top of processing when a record
is saved and the chain was performed inside of an event.
Updated listbox and selectbox code to no longer go outside of screen bounds.
Fixed date handling in XLSX generation when not using the datetime functions.
Fixed an issue where blobs/memos could become corrupted if assigning to the
field more than once without writing the record.
===================================
Version 6.0.XX.18 bug fixes
===================================
Corrected Memory fault in FPSQL
Corrected licinfo to read license fallback file.
Corrected memory leaks in [dr]clerk and [dr]report.
Corrected issue where a select or list box would not clear correctly from the
screen.
Fixed positioning and moving objects (memo) on a form.
Corrected button text in F6 cabe.
Fixed an early error exit condition in ddir to report an error rather than
exiting.
Corrected "stair step" issue in cabe when using the -C flag on Linux/Unix.
Corrected a crash in clerk when using F5 to duplicate fields between records.
Updated F5 duplicate key in clerk to work with scrolling fields.
Added PFREUSEADDR=ON (default ON) to enable a port to be rebound more quickly
when using sockets.
Added code to prevent a dummy field from being used as a foreign key when
performing a fuzzy search.
Corrected and reverted wildcard behaviour during selection in clerk.
Corrected type checking for associated fields in selection sets.
Added buttons to clerk fuzzy search for scrolling the file map.
Increased the number of fields shown in fuzzy search in clerk.
Fixed some button shifting for F6 key in cabe.
===================================
Version 6.0.XX.17 bug fixes
===================================
Task #1948 Autosave not honoring config flags
Corrected an issue where Autosave was not correctly reading
config variables. Addded initial change backup.
Task #1950 Scrolling fields in popups break placement
Corrected an issue when drawing a popup that contains a scrolling field.
Task #1951 Enhanced runtime format for WHEN flags
Enhanced runtime format to support extended WHEN flags.
Added support for @WUKx* @WHPx* and @WBLx*. New WHEN values will be ignored
in older versions of filePro.
===================================
Version 6.0.XX.16 bug fixes
===================================
Task #1928 XFER too many open files
Corrected prc_backups handling in xfer.
Task #1939 fppack BG/BS flag fix
Corrected the run in background feature for fppack.
===================================
Version 6.0.XX.15 bug fixes
===================================
Task #1918 PDF print MAP not working
Task #1916 SCO cabe not loading file List properly
Task #1917 Font Size issue with Windows 11 terminal.
Task #1914 Spellcheck crash when using personal list.
Task #1913 Corrected an issue where merge labels (IMPORT/EXPORT)
were not correctly indicating that the merge was closed.
Task #1891 Enhanced [dr]clerk to honor a passed index flag for browse
when @ONCE or @MENU is used in processing.
PFNEWIXS=on (default off)
Task #1871 Updated dxmaint to keep the user in the index list when
working on automatic indexes, saving the position in the list
between operations.
Task #1844 Corrected an issue where non-text data could show up
as NULL in an ODBC mirror. Requires mirror to be resynchronized
to update missing field information.
Task #1845 Corrected an issue in an ODBC mirror where non-concise
data types were being used for synchronizing data. This fix
prevents TIME and DATE fields from resolving to the non-concise
data type of DATETIME.
Task #1849 Checksum error not being reported in outputs
Task #1857 dprodir crashed on non-filePro file when deleting key/data
Task #1865 (rcabe) Corrected an issue where processing tables
containing user defined functions would fail to tokenize properly.
Task #1866 Limit outfiles.xml to only hidden outputs
Task #1870 Fixed a potential crash when providing an invalid field
number to a lookup expression in the debugger.
Task #1873 SPLIT function not working with leading spaces
Task #1892 Corrected -D flag handling in [dr]clerk to suppress the
correct bottom of screen messages.
Task #1901 dmoedef @b4, @c4, @t4, @u4 are now allowed in sort
selection.
Task #1864 Corrected an issue on Windows where an alternate auto
table set in cabe could not start with the word "auto"
Task #1869 Moved the auto cursor path options in dscreen to the
normal cursor path screen under a new F8 option.
Task #1893 Corrected an issue with user defined function argument
name parsing. Names that begin with the same sequence of
characters will now correctly be allowed, i.e. "col" and "color".
Task #1908 Corrected an issue where the field position wasn't being
kept between the header and data sections when editing browse
formats.
Task #1911 Corrected a missing initializer value related to index
searching that prevented the index search from being performed.
Task #1872 (Linux) Show Locked Records crash
From IUA prompt !L to show locked records.
Tested 25 locked records. They were correctly sorted by
record number. Terminated all records one-by-one without
incident.
===================================
Version 6.0.XX.14 bug fixes
===================================
Task #1839 Was not previously documented for 6.0.XX.13
Corrected an issue from a previous bugfix to prevent oversized
scrollable fields from being dropped from the end of the screen
if the field definition was too long to fit on the screen.
Task #1841
Fixed a crash in dmakemenu when a menu option name started with
"BLOB" or "MEMO".
Task #1842
Corrected a bug due to task #1579. Reverted the task to allow
correct expression parsing in the processing engine. Restores the
use of cm, cw, cx, cy, and cz in expressions.
===================================
Version 6.0.XX.13 bug fixes
===================================
Task #1763
Fixed an issue where switching between menus in dmakemenu on a bad password
could cause a crash.
Task #1764
Fixed an issue where switching between menus in dmakemenu on a bad password
could cause a crash.
Task #1765
Changed [dr]cabe to not exit if an edit used in automatic processing and used in
input processing was not found.
Task #1768
Corrected an issue with the lookup wizard in [dr]cabe when defining a fuzzy lookup.
The browse line would not be generated correctly when leaving the wizard.
Task #1769
Fixed an issue where using '[' instead of '(' in parameter lists could cause an
invalid syntax error.
e.g. x=listbox[array] vs x=listbox(array)
Task #1785
Increased ACTION length in debugger from 60 characters to full 128. Should now be
the same as *cabe.
Task #1786
Changes caused by a duplicate task #1691 broke the pathed version
of the FORM command added by #1722. Reverted changes.
Task #1779
CLEARB now correctly ignored in drop processing
Task #1781
Fixed an issue with SIGPIPE and user commands. SIGPIPE is now
handled like in 5.8 unless PFCATCHSIGPIPE is set to ON in the
environment.
Task #1784
Increased ACTION length in debugger from 60 characters to full 128. Should now be the
same as *cabe.
Task #1790
Corrected an issue where 'killing' a file using dprodir wouldn't remove the diretory
and its children on Windows.
Task #1791
Corrected an issue with fpcopy that would prevent the prc_backups folder from
being properly handled.
Task #1793
fpcopy will now correctly handle all extents on a file and will now mirror
them correctly.
Task #1794
Fixed an issue where @GUI.xxx commands could run multiple times (once per break level)
in reports.
Task #1795
Updated mirroring to correctly handle multiple extents on a file.
Task #1796
Corrected an issue where upon turning on mirroring for a file and re-executing the
dialog option could cause ddefine to crash.
Task #1797
Fixed an issue in GIserver where connecting with an unsupported client (version
7.12.1.6 or earlier) could cause the server to deadlock and stop accepting
connections (SCO).
Task #1798
Corrected an issue where all files, when first mirrored, would be created as empty
blob files (blob binary data and structures in the file). All files are now correctly
created of the right type.
Task #1799
Corrected and issue in ddefine where a broken mirror would not be displayed as such
(missing splash screen and 'B' flag in options).
Task #1800
Fixed an issue where when switching a mirror from a broken state 'B' flag in options
in ddefine to a 'Y' would not re-create and update missing files.
Task #1801
Corrected an issue in ddefine when trying to create qualifiers. The list would not
display unless also creating an index, it now correctly displays without having
other options flagged.
Task #1802
Fixed a file handle leak in GIserver that could result in a Too Many Open files
error, hanging or crashing the server.
Task #1803
Mirroring disabled warning will now correctly keep its own state between files.
Previously, switching between two "broken" mirrors would cause the splash screen
to show again.
Task #1804
Corrected an issue in dprodir where filePro could crash if there were a large number
of files in the directory to be deleted.
Task #1805
Corrected index scanning in *clerk when both a selection set and index are specified
on the command line. The scan will now also accept system variables in the selection
set, such as @PM, to be used in conjuntion with the index from the command line.
Note: Using both flags implies PFIXS.
Task #1806
Fixed an issue in cabe when the screen was redrawn by scrolling the page. If the
previoius field allowed for a lookup to be created and the destination field did
not, the prompt would still be displayed.
Task #1807
Corrected the "Remove Script" feature when redefining a menu. Previously, if the
option had a flag such as '@', it would be included in the path of the file to be
removed.
Note: Raw output is still not displayed.
Task #1808 (Web only)
Corrected the wait flag on a menu option in web to display a message rather than
a blank screen.
Task #1809
fpcopy will now copy all files under a filePro file's directory structure.
Task #1816
Corrected and added a syntax error to commands that parse screen names as literals,
i.e. SCREEN, SWITCHTO, etc. The command would not throw an error on screen names
over 1 character if it was not quoted and would parse them incorrectly.
Task #1817
Corrected an issue with field switching in GUI under report. Fields will now
correctly switch when clicked on.
Task #1818
Corrected an issue where a duplicate field warning could display while defining a
lookup. Warning is now suppressed until saving the processing table.
Task #1820
Corrected an issue with ddefine where having PFQUAL set could cause issues if
the qualifer does not yet exist in the file while defining indexes.
Task #1824
Corrected a crash in rclerk when using a POPUP due to a stack underflow. Issue
introduced in 6.0.01.06.
Task #1828
Corrected an issue where screens created with ddefine sometimes would have incorrect
colors added to the bottom of the screen.
Also updated the screens generated by ddefine from 3.0 to 4.0+.
Added environmental variable:
PFDDEFCOLOR=ON|OFF (default ON)
When on, ddefine will create color screens, when off, monochrome.
Task #1830
Corrected the free space checks on all operating systems for ddefine and dexpand.
Drive free space is now correctly accounted for. Some space is still reserved in
the check for the operating system.
Task #1831
Corrected an issue where drives set in PFDSK in the format of PFDSK=C;D;E;F on
Windows would not correctly be parsed, leading to some programs failing to find
other drives.
Task #1835 Added flag -RH to report to disable the automatic record number
reporting in the middle of the screen. This enables placing text on the
center of the screen without it being overwritten when the display updates.
Task #1836
x=@GUI.PAUSE()
Pauses automatic screen updating while in GI/Web.
x=@GUI.RESUME()
Resumes automatic screen updating while in GI/Web.
Task #1838
Corrected an issue when entering an invalid printer type in pmaint. Break key
will now correctly be honored when answering 'N' or breaking out of the question
asking if you want to pick a valid print code table from a list.
Task #1838
Corrected an issue when entering an invalid printer type in pmaint. Break key
will now correctly be honored when answering 'N' or breaking out of the question
asking if you want to pick a valid print code table from a list.
Task #1840
Corrected an issue where reports and forms generated in [dr]report were
initialized twice, causing two init print codes to be inserted into the output.
===================================
Version 6.0.XX.12 bug fixes
===================================
Task #1008 (All) **NEW**
New xcabe program to allow Run-time quick start compiles. There is
no user interface except to press ENTER if an error is encountered.
Task # 1699 (All)
Fixed MEMO text to ignore spaces after an ENTER
Task #1712 (Nix)
Updated "finish" script to honor PFLICFILE.
Task #1723 (All)
Added an alias to PDFPOSTPRINT (PFNEWPOSTPRINT), default OFF. Added
PFPPFULLPATH to augment the filename passed to the post print handler,
default ON, this causes the filename passed to the postprint script to
contain the full path to the file, not just the file name. Set to OFF
to revert to old behaviour. PFPOSTPRINTnnn will now work with normal
file destinations. Same rules as the old global PFPOSTPRINT but also
supports PDF files.
Task #1728 (GI)
Reworded "Server Serial Number" prompt when adding a new server entry
to GIadmin to "filePro Serial Number" to avoid confusion.
Task #1750 (All)
XFER was not properly copying 'backup' prc files.
Task #1758 (All)
NEW command OPENDIR2 to handle long-named files and paths.
e.x.
N = OPENDIR2(mask, path, fmt_sz, ext_sz, nam_sz)
All arguments are optional.
Task #1776 (All)
If you had an environment or config variable named XXSOMEVAR
it would still qualify as PFSOMEVAR.
Task #1764
Fixed an issue where CO in a selection set would not properly check if the value
was contained in a field.
Task #1766 (Windows) XFER: sending files on Windows is very slow
Speed improvements for XFER on Windows
Task #1770 Readline EOL not removing CR
===================================
Version 6.0.XX.11 bug fixes
===================================
Task #1738 (All)
Reversed task 1737 and added new @DV for the distribution release
number.
Task #1740 (All)
PFCHECKLOCK was causing an improper error on read-only MEMO Show
Task #1741 (All)
MEMO CLEAR was not working with a lookup memo when reference by the
lookup handle
Task #1742 (All)
MEMO functions were causing sporadic memory leaks.
Task #1743 (All)
Modifying a lookup that has an Auto-Index selection set would cause
a DKNF error in certain cases.
Task #1748 (Windows)
Uppercase FP in menu command causes comspec error
Task #1611 (All)
Change in behavior for COntains in Long and Short Selection.
Any COntains no longer worries about length or edit in its search.
IMPORTANT: Any indexes previous built with selection criteria in
prior version MUST BE REBUILT!!!
Task #1647 (All)
*clerk index selection was missing the correct record in some
cases when the index had a selection set.
Task #1739 (Windows)
GIadmin shortcut was not always created during install.
Task #1752 (All)
Fixed a bug in ODBC Mirroring.
Task #1753 (All)
Added PFCALLDBG, default ON, that can be used to have the debugger
ignore calls when turned OFF.
Note: DEBUG ON will still enable the debugger in a call.
Task #1744 Cabe autosave not checking if prc_backups is a directory.
Fixed an issue where cabe wouldn't check to make sure that
prc_backups was a directory. It now correctly checks and removes the
file if it's invalid.
Task #1747 (Windows) pmaint crashes on F6 in printer selection list on Windows.
Corrected a bug where pressing F6 twice in pmaint to select a printer
would cause a crash.
===================================
Version 6.0.XX.10 bug fixes
===================================
Task #1721 (All)
Improved Spooler timiout handling in order to avoid
spooler shutdown during large printing operations.
Task #1722 (All)
Fixed the ability to use path and filename on FORM
Task #1729 (Web)
Fixed the sequence in which @VR was being cleared.
Task #1730 (All)
Fixed a bug in pkeep by reverting Task #888 which will
be readdressed in a future update
Task #1731 (All)
Enhanced transfer speed of fPTransfer
Task #1734 (All)
Fixed a bug where assigning to a real field from a mid statement
could blank the field if the field passed to mid was the same.
Task #1735 (All)
A truncated field on a screen was not allowed in cursor pathing
in some situations.
Task #1736 (All)
Fixed and enhanced the @VR system variable
Task #1737 (All)
Added PFZEROLENWARN=OFF (default ON) to disable cannot assign to
zero length field message when saving a processing table.
Task #1778 (All)
ddefine was not creating qualified indexes
===================================
Version 6.0.XX.09 bug fixes
===================================
Task #1706 (All)
Setting PFQUAL in *cabe broke the lookup wizard
Task #1710 (All)
runmenu could crash loading some older menus
Task #1711 (NIX)
Some OS errors were bypassing the signal hander
Task #1713 (All)
*cabe was ignoring the new -Cxx flags
Task #1715 (SCO)
'BREAK' in dscreen was crashing
Task #1718 (All)
POPUP was not display the full screen
Task #1719 (All)
POPUP UPDATE was crashing when r,c was used
Task #1720 (All)
Added Error Message if browse lookup closed in
DROP processing
Task #1726 (All)
Some commands were seGving on long or invalid
filenames
Task #1727 (NIX)
Removed the need for libfpodbc.so by statically
linking it the executables.
Task #1727 (NIX) Remove libfpodbc.so requirement
Removed the need for libfpodbc.so on all *nix platforms.
===================================
Version 6.0.XX.08 bug fixes
===================================
Task #908 (All)
A repeat fix of a previous bug in prc=
checking of a browse lookup
Task #1058 (Nix)
Adjusted finish script for a bug in handling
PFLICFILE value
Task #1693 (All)
String parsing on chmod, mkdir, etc. caused syntax
errors/warnings. This was caused do a preprocessor running the
same syntax routines as the actual syntax checker/tokenizer.
Task #1694 (All)
Corrected a case where some bitwise operators (~^ ~| ~& ~> ~<)
would cause a buffer overrun or return a signed value incorrectly.
Task #1695 (All)
PUSHKEY is now correctly ignored when running processing in
debugging mode.
Task #1696 (All)
FLUSHKEY does not clear keystrokes added by PUSHKEY.
Task #1375 (All)
Updated errmsg file with latest error codes
Task #1675 (All)
F5 would not properly fill a truncated field
Task #1705 (All)
WORDWRAP broke when correcting another MEMO issue. It
now properly breaks.
Task #1704 (All)
Cursor path editing would not properly ignore protected fields.
===================================
Version 6.0.XX.06 bug fixes
===================================
Task #1673 (OpenSuSE)
GIserver install was failing to create service
Task #1674 (All)
Added AUTO to clarify description in dmoedef
Task #1681 (All)
Syntax check pointed to wrong line on a
duplicate long variable declarartion
Task #1682 (All)
ftp message show/hide flags were reversed
Task #1667 (All)
Modified Extended Selection so that edit does not allows
apply. i.e. Using COtains for a part of a phone number.
Task #1679 (All)
Modified record selection to accept only numbers.
Allowing other input selected incorrect records.
Task #1672 (All)
The changes were to IXSEL (new optional 3rd parameter)
and IXSORT (new optional 4th parameter). The parameter must be
a path representing an alternate PFDIR to use temporarily for
the function.
IXSORT and IXSEL were failing on qualified indexes
Task #1117 (All)
Improved license related shared memory error reporting.
Task #1687 (All)
Fixed a bug where having a field defined at the end of a row
would not resolve properly if the following line started with
text instead of a space.
Task #1631 (All)
Memo text edit window was not scrolling in certain circumstances
===================================
Version 6.0.00.05 bug fixes
===================================
Task #1624 (Windows)
Added Desktop Shortcut for GIadmin 6.0
Task #1656 (All)
Archive did not handle lookup to lookup
Task #1657 (All)
Creating a new scree required two Saves to
save and exit
Task #1658 (All)
Cursor positionin was wrong after using
search in the config editor
Task #1659 (All)
Search & Replace in cabe caused a line
truncation when answering NOT
Task #1661 (All)
Index in *clerk is going to the incorrect record
when built off of multiple fields. Related to a
bad fix from #1503
Task #1663 (All)
Improper key buffer management when using
certain combinations of PUSHKY
Task #1664 (All)
Memo memory fault when using certain sequences
of Page Up and Page Down in memo editor
===================================
Version 6.0.00.04 bug fixes
===================================
Task #1652 (All)
When editing a defined lookup in processing, the highlight
was on the wrong index.
Task #1653 (All)
Define processing was not reporting a correct line number
on a syntax error.
Task #1654 (All)
Define processing was crashing on Search & Replace on a new
table that had not yet been saved.
Task #1655 (All)
JSFILE was passing syntax when a function had not been
sepcified
Task #1656 (All)
Enhanced ARCHIVE command to work with 2 lookups
ARCHIVE lu1 TO lu2
===================================
Version 6.0.00.03 bug fixes
===================================
Task #1651 (All)
Corrected a change introduced into ddefine that caused the map
file to be truncated on the last section of the header. This
caused ddefine and other developer programs to treat the file as
if it had a creation password.
===================================
Version 6.0.00.02 bug fixes
===================================
Task #1626 (All)
Using a merge field from import fails on condition line would fail.
Task #1628 (All)
Bug occurred in an index when a record was added or deleted from an
automatic index using a selection set through a lookup.
Task #1629 (All)
In certain situations the screen text would scroll a screens
content and message to wrap in F6 Browse function.
Task #1633 (All)
Added an error message to cabe if code assigns a value to an invalid field.
Task #1636 (GI)
A previous fix for CRON functions broke MSGBOX in GI.
Task #1625 (All)
SORTARRAY now puts any blank fields at the end of the sort.
Task #1634 (All)
Corrected text on setting selection set passwords
Task #1635 (SCO)
Help display was improperly wrapping.
Task #1638 (All)
Field length for description was extended from 80 to 255
Task #1640 (All)
Under certain conditions clearing the BUSYBOX display
would not properly redisplay the screen contents.
Task #1641 (All)
Enhanced fPTransfer to properly xfer the auto index
selection criteria
Task #1642 (All)
ddefine create screen 0 caused a *clerk invalid screen
error
Task #1643 (All)
Removed debug display of field numbers from IUA index
selection
Task #1644 (All)
dmoedef was not displaying all print codes
Task #1632 (All)
32bit Installs had the wrong 'rename' program.
Task #1645 (All)
fPCopy was not properly copying the Auto Index Selection Sets
Task #1646 (Linux)
Certain colors and highlights were not being shown properly.
Task #1648 (Linux)
Under some situations a *clerk screen would shift improperly
Task #1649 (All)
ddefine did not properly make an index with a selecton set
Task #1650 (All)
fPCopy would crash or give an error message when copying a
mirrored file.
===================================
Version 6.0.00.01 bug fixes
===================================
Task #1607 (All)
Removed double F7 label
Task #1608 (All)
dosetforms - replace toggle with select all / select none
Task #1386 (All)
Display when index is built on selection set.
Task #1619 (All)
Fixed changing Broken mirror status to Yes mirrored status
in define files.
Task #1620 (NIX)
Correct error to redirected stdin
===================================
Version 6.0.00.00 bug fixes
===================================
Task #1128 (GI)
F6 was not working from pmaint to select Windows printers.
Task #1165 (All)
Better error handling when indexes are in a known need to
rebuild state.
Task #1239 (All)
MySQL/ODBC was returning a -1 error on longblobs. The problem was caused
by the precision being reported as -1.
Task #1255 (GI)
GI now traps no password in user.cfg file
Task #1310 (GI)
GIserver now handles HD Serial Number with or without dashes
Task #1407 (All)
xx = @odbcexception.clear crashes filePro
Task #1571 (GI)
Occasional broken lines were drawn
Task #1569 (GI)
GIserver was missing some shutdown messages
===================================
End End End End End End End End End
===================================