Release notes - filePro Plus 6.0 - 03/28/2025 fP 6.0.XX.23 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.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.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 ===================================