Release notes - filePro Plus 5.0 ******** fP 5.0.14 and fPODBC/BIO 1.0.14 ********* ******** 5.0 New Features List located in DOCS directory ******** ** IMPORTANT ** See changes below from prior releases ************ The filePro Plus 5.0 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 are new. They have changed since the last release. ******************************************************************** WWW http://www.fptech.com Support support@fptech.com Sales sales@fptech.com Management filepro@fptech.com ******************************* To submit 5.0 bug reports -------------------------------- 1. FAX them to (877) 606-6853 clearly marking them as 5.0 bug reports 2. EMail them to fpsupport@fileproplus.com including the text 5.0 Bug Report in the subject line 3. Call the customer support number (317) 570-6490 ******************************* We wish to thank Jim Asman for sending us an entire set of HP printer tables for inclusion in this release. You might wish to send him a note of appreciation to root@spctra.wimsey.com Please view Jim's readme file which has been placed in your fp\lib directory for any special notes about these printer tables. ******************************* Contact Information Surface Mail fP Technologies, Inc. PO Box 290352 Tampa, FL 33617-0352 Phones Support (317) 570-6490 Sales (800) 847-4740 Fax (212) 517-5982 Email Support support@fptech.com Sales sales@fptech.com Management filepro@fptech.com Bug Reports Email - support@fptech.com including the text 5.0 Bug Report in the subject line FAX - (877) 606-6853 marked as 5.0 bug report Phone - (317) 570-6490 Writing clearly is essential in a bug report. If the programmer can't tell what you meant, you might as well not have said anything. We get bug reports from all around the world. Many of them are from non-native English speakers, and a lot of those apologise for their poor English. In general, the bug reports with apologies for their poor English are actually very clear and useful. All the most unclear reports come from native English speakers who assume that We will understand them even if they don't make any effort to be clear or precise. Be specific. If you can do the same thing two different ways, state which one you used. "I selected Load" might mean "I clicked on Load" or "I pressed Alt-L". Say which you did. Sometimes it matters. Be verbose. Give more information rather than less. If you say too much, the programmer can ignore some of it. If you say too little, they have to come back and ask more questions. One bug report we received was a single sentence; every time we asked for more information, the reporter would reply with another single sentence. It took me several weeks to get a useful amount of information, because it turned up one short sentence at a time. Be careful of pronouns. Don't use words like "it", or references like "the window", when it's unclear what they mean. Consider this: "I started FooApp. It put up a warning window. I tried to close it and it crashed." It isn't clear what the user tried to close. Did they try to close the warning window, or the whole of FooApp? It makes a difference. Instead, you could say "I started FooApp, which put up a warning window. I tried to close the warning window, and FooApp crashed." This is longer and more repetitive, but also clearer and less easy to misunderstand. Read what you wrote. Read the report back to yourself, and see if you think it's clear. If you have listed a sequence of actions which should produce the failure, try following them yourself, to see if you missed a step. Summary The first aim of a bug report is to let the programmer see the failure with their own eyes. If you can't be with them to make it fail in front of them, give them detailed instructions so that they can make it fail for themselves. In case the first aim doesn't succeed, and the programmer can't see it failing themselves, the second aim of a bug report is to describe what went wrong. Describe everything in detail. State what you saw, and also state what you expected to see. Write down the error messages, especially if they have numbers in. When your computer does something unexpected, freeze. Do nothing until you're calm, and don't do anything that you think might be dangerous. By all means try to diagnose the fault yourself if you think you can, but if you do, you should still report the symptoms as well. Be ready to provide extra information if the programmer needs it. If they didn't need it, they wouldn't be asking for it. They aren't being deliberately awkward. Have version numbers at your fingertips, because they will probably be needed. Write clearly. Say what you mean, and make sure it can't be misinterpreted. Above all, be precise. Programmers like precision. =================================== 5.0.14 Release Notes =================================== (ODBC) #726 PFODBCCOMMITTYPE=n Selects the open-commit-type to use for high-level ODBC data sources, where: 0 = "SELECT * FROM tablename" (default) Very slow on some data sources with very large files, but uses nothing non-standard. 1 = "SELECT * FROM tablename WHERE id_field = nnn" (Where "id_field" is the name of the ID field, and "nnn" is a valid ID.) Usually faster, but may be slower on some systems, as filePro must first determine a valid ID to use. 2 = "SELECT TOP 1 FROM tablename" Fastest version, but "TOP 1" is non-standard and not supported everwhere. Will cause ODBC failure on those DSNs that don't support it. (fPSQL) #1 fPSQL now respects PFUMASK for output files it generates. (All) #237 If BREAK OFF is executed in a CALL/CHAIN process, it now remains off upon returning. Also, it is retored to ON if you go to a new record. (*nix) #285 fPCopy didn't copy formats with names longer than 14 characters. (Network) #409 If PFQUAL is set to a non-existent qualifier, the network version of filePro gave an incorrect error message. (All) #550 The page number was not reset before F8/hardcopy in *cabe. (All) #634 DECLAREd variables over 34 characters caused errors in *report. (fileProGI) #663 If you define buttons while displaying a record, go into browse, and come back, the buttons are gone. (All) #666 WRITE was not blocked in a table CALLed from automatic. (All) #681 PFCHECKLOCK didn't pick up some unprotected writes in browse lookups. (All) #684 When defining processing from dmoedef, PFTOKSIZE was not respected if the file had no automatic processing table. (fPSQL) #706 A query with a WHERE clause on a field with an automatic index built on it could fail if the index was built in descending order. (All) #708 DECLARED variables defined without the ",g" attribute were not cleared between records. (Linux) #711 Running "dcabe filename prcname" could crash on some Linux systems. (All) #712 PFLOGAPPEND was actually LOGAPPEND. Changed to PFLOGAPPEND as per documentation. (All) #717 Given the correct sequence of keystrokes, dmoedef could release its lock on the output format, thereby allowing more than one person to be updating it. (All) #714 EXPORT ASCII with both "-a" and "-x" flags didn't work. (All) #719 If you modify an index using the "save options without rebuild" and then tried to rebuild a different index, it wouldn't rebuild. (*nix) #707, #722, #736 Some output formats saved under 4.8 dmoedef would crash 5.0 dmoedef. (*nix) #724 Only root could delete files in ddir. (All) #725 EXIT within a CALLed table did not exit, but acted like END. (All) #727 "CLEAR arrayname" when the array is aliased to real fields did not cause the record to be written if that were the only modification made to the record. (All) #728 ddir's "delete index" showed all index letters/numbers, even if those indexes did not exist. (Linux) #729 ddir would crash when deleting indexes. (All) #733 dxmaint's "save options without rebuild" could corrupt idex. (All) #734 When using *cabe's lookup wizard, using a non-existent qualifier in the filename would crash *cabe. (All) #735 dscreen would resolve @PD to only 20 characters, when it's really 80. (All) #740 Although @ONCE in *report is documented as being run prior to any output being done, it was run while sitting on the last record read during the sort/select process. Some people thought that this meant that it was sitting on a selected record. @ONCE has now been fixed to be not sitting on any record. However, some people depend on their incorrect interpretation of the old behavior, so setting PFOLDONCE=ON will "revert back" to a modified version of the old behavior, where it will now be run while sitting on the last record _selected_ during the sort/select process. Note that PFOLDONCE=ON may disappear in some future version. (All) #747 If you were to DECLARE the same variable more than once, and then press F6/D in *cabe to show dummy fields, *cabe could crash. (All) #750 When a print code requiring a space is on an output format, and you use F7 block functions to move it, the '%' marker is left behind. (All) #752 When using F6 in pmaint's printer definition screen to change to printer type, if you select a type with a shorter name than the one currently there, the field was not properly cleared. (All) #753 filePro used to accept a period in variable names. This is now not allowed (it never should have been allowed in the first place), in order to permit enhanced functionalities. To revert to the old behavior and allow periods in variable names, you can set PFLONGVARDOT=OLD. Note, however, that this will disable certain features, such as access to ODBC and biometrics, which require that periods not be allowed here. (All) #757 BLOB/MEMO functions did not work within lookup files. (All) #766 *cabe could crash when accessing a zero-length prc file. (All) #767 MIN/MAX functions did not properly handle expressions as parameters. (All) #80 Printing of MEMO fields now available. (Network) #191 The network version of ddefine did not create qualified indexes on new files. (All) #709 EXPORT ASCII/WORD would always export the same number of fields, regardless of whether the fields were assigned to on each record, even if they were only referenced in a comment. Now, filePro will only export the number of fields as the highest- reference field actually assigned. For example: If: Then: out[1] = 1 ; out[2] = 4 If: xx = "y" Then: out[3] = 3 ; out[4] = 4 If: Then: ' out[5] = 5 filePro would previously always exported 5 fields. Now, if x="y" is true, it will export 4 fields, and if false will export 2 fields. To revert back to the old behavior, set PFEXPORTALL=ON. (All) #282 If you do a fuzzy browse lookup on a field that has an index built on it, the wrong instance will be shown in the browse. Also, if you were in index mode on the main file, the wrong instance would be shown, even though @AF was correct. (All) #770 If you perform a browse lookup with a "-m" (must match) flag on an index built across multiple fields, and the major sort key is a date or time field, the "must match" portion was limited to the major sort key only, regardless of the mlen parameter. (All) #758 When using a browse lookup on a multi-field index, with "-m" (must match) across multiple fields, it was possible to get an erroneous "top of file" after scrolling down and then up again. (fileProGI only) #720 No confirmation was asked for when deleting formats in ddir/dprodir. (All) #773 When accessing BLOB/MEMO fields from lookup files, it was possible for the data to get corrupted. (All) #774 Under certain conditions, re-executing a fuzzy browse lookup could cause filePro to crash. =================================== 5.0.13 Release Notes =================================== (SCO only) #??? Fields with extended-ASCII characters ( >=128 ) might not compare correctly. (All) #653 Browse lookups with only a single line could crash filePro. (All) #662 DLEN() had an undocumented limit of 255 characters on the input string. The input is now unlimited, and the output is limited to 4095. (*nix only) #667 Some *nix systems prevent a setuid program running with a real uid of root from executing child processes. The previous workaround (setting the real uid to "filepro" when running as root) causes some things (such as printer banner pages) to report "filepro" as the user. Added "PFROOTFIX=OFF" to turn off the fix for systems that don't require it. (Native windows) #??? @ID will now contain the current user name, up to the first 8 letters. (All) #633 If you have a memo with a line so long that it doesn't fit within the memo editor window, and while in insert mode press Enter near the top of the memo (to split the line), the program may crash. (All) #??? Enhanced the blobfix utility to do a better job at extracting data from a blob within a corrupted section of the file. (All) #587 "lookup - -pw" did not honor the "-w" flag. (All) #656 FORM command within a CALL NOAUTO'ed processing table would use fields from the automatic table. (Native Windows) #671 sitepwd.exe did not work under XP. (All) #668 Output formats would not function properly if the height*width was more than 32K. (All) #672 "ddir -k" did not respect the lockfile. (Native Windows) #673 p.exe splash screen would fail if the licensee's name contained a lower-case "z". (Sun and PPC Linux) #675 filePro would crash if TERM/PFTERM was set to an entry that contained a "tc=" value. (All) #674 IMPORT/EXPORT using an expression for the filename would not compile properly in just the right circumstances. (Symptoms included adding or deleting lines with literal strings would make the problem go away.) (GI) #644 Timing issues caused connections to GIserver over a satellite link to fail. (GI) #651 Prompt buttons were missing with browse lookup windows. (All) #670 autoshuf would crash on some systems when adding fields. (All) #676 dxmaint would not update the status screen while reading large sections of deleted records within the file. (All) #680 filepro would crash on "-pq" if a printer was defined without any comment. (All) #682 Dummy fields set in @ONCE did not hold their values in @BRKn and @WGT processing. (All) #690 In just the right combination of circumstances (full desription to come), filePro could crash in the index delete routine. (All) #683 System fields didn't push left with "<" on the output form. (All) #700 If @ONCE processing makes an assignment to a dummy field that is not defined in automatic processing, *report may crash. (ODBC) #692 In some ODBC data sources, updating a record via high-level ODBC would cause a nul character to be appended to the data in some field types. (All) #686 MESGBOX/ERROROX with long lines would drop 1 character at the end of each wrapped line. (All) #695 *cabe didn't recognize the new @DV system field. (Native Windows only) #698 EXISTS() would return "1" (true) if the specified path included an existing filename as part of the path. For example, if the file "c:/filepro/backup.zip" exists, then passing EXISTS() the name "c:/filepro/backup.zip/map" would return true. (ODBC) #691 dprodir would crash attempting to display info on an ODBC file. (fileProGI) #688 "MEMO ... EDIT TITLE ..." didn't display the title. (fPSQL) #618 fPSQL did not recognize new 4-digit-year system date fields, nor PFSYSYR4=ON. (Unix xfer) #687 The Unix version of xfer did not send screen/output formats that were longer than the old limit of 14 characters. (All) #661 BREAK OFF wasn't honored within a browse lookup. (SCO only) #677 If a file exceeded the ulimit file size, filePro would crash with a SIGXFSZ signal, rather than give the "file too large" error. =================================== 5.0.11 Release Notes =================================== 5.0.11 Windows versions includes the use of encrypted distribution files. In order to install, you will need an Authentication Key file which you can get from our download site or can request from customer service. You will need the End-user Company Name in order to request/download this keys file (All) #??? In just the right circumstances, it is possible for ddefine to crash in the middle of a restructure when adding fields off the end of the record. (Special "5.0.10a" release of ddefine made.) (All) #654 If you execute a lookup r=free to the current file, followed by a lookup-dash by record number to that record, and there were no free records in the file, the lookup-dash will fail. (All) #630 menupass now accepts menu name from the command line. (All) #620 A protected lookup to the current file, to the current record, would unlock the current record, even in update mode. (All) #647 If the very first thing you do in dscreen is attempt to create a new screen, dscreen would crash. (Windows) #649 The initial splash screen now responds immediately to a keypress. (All) #650 A menu commandline that included the sequence slash-p-space (as in "-h 'A/P menu'") wouldn't work. (All) #646 Renaming a file in fpcopy might not remove the old directory. (All) #357 BREAK OFF did not carry through call/chain. (All) #648 dxmaint would not accept system fields on the command line. (GI) #655 pmaint printer editor did not accept F5/F6 function keys. =================================== 5.0.10 Release Notes =================================== 5.0.10 Windows versions includes the use of encrypted distribution files. In order to install, you will need an Authentication Key file which you can get from our download site or can request from customer service. You will need the End-user Company Name in order to request/download this keys file (All) #577 HTML :IN :ML generated "MAXLEN=n" rather than "MAXLENGTH=n" attribute. (5.0) #582 The TVM_*() functions did not handle comma-type edits for input. (ie: "12,345.67" was treated as "12".) (4.9) #581 Add PFMEMOINSERTMODE=ON to set insert mode on by default in the memo editor. (All) #??? Enhancement to PFTMP for specifying temp directory: If PFTMP is not set, then use TMP. If both are unset, use TEMP. (All) #??? Tweak to the above: some versions of Windows allow for a list of directories in the TMP/TEMP variables, separated by semicolons. In such instances, filePro will use the first directory listed. (And, change the Unix version to do the same, should there be a version of Unix that allows a colon-separated list of directories.) (All) #615 runmenu was using PFTEMP rather than PFTMP to store menu batch files. (Quickstart) #616 SHOW statements were truncated to 255 characters. (All) #617 Fuzzy browse lookups with processing caused non-global dummy fields to be cleared. ("Normal" browse lookups were okay.) (All) #619 Fix case where "node_addr(x!=y)" error would be generated. (All) #621 If you have an unprotected lookup to the current file, and find the current record, do a GETNEXT, modify that record, and CLOSE the lookup, the modified record will remain locked. (All) #628 If you have a lookup dash in @ENTSEL processing on a file with no automatic processing, it is possible to get DKNF errors displayed. (Note that the indexes aren't actually corrupted in this case.) (All *nix) #??? Pressing "N" or "I" in the monochrome attribute editor of dscreen caused the display to fill with text. (fileProGI) #??? Shrinking a memo in the GI memo editor caused the tail end of the original memo to remain. (Some *nix) #??? Running menu items with the "no return" flag ("#") could cause the stty settings to get confused. (All) #275 Using F8/Options to set the processing password in *cabe would cause subsequent tables loaded in the same session to have the same password assigned. (All) #588 A "lookup - r=nn" which fails due to an EOF condition would cause the current record to be unlocked. (All) #601 Using block functions to copy processing lines from beyond the last one could cause garbage to be copied. (All) #602 fPTransfer now copies "map.new" files as a map. (All) #604 Pressing F6 in ddir does not bring up the config editor if the highlighted name is not a valid filePro file. (All) #610 PFLOOKWIZPROT=ON was not recognized properly. (All) #612 ddir did not empty the blob file on kill data / retain formats. (All) #613 Lookup aliases in the format "letter-number-others" (ie: "d4a") would fail syntax on assignments. (All) #614 You can now do COntains comparisons on memo fields. (fPSQL) #618 fPSQL did not recognize 4-digit-year date fields, nor PFSYSYR4=ON (UnixWare only) #640 Some configurations of UnixWare do not allow a setuid program when running as real-uid root to execute child processes. (UnixWare only) #641 An incompatibility in UnixWare running OpenServer binaries caused SLEEP to be ignored. (All) #635 dxmaint -M "" did not override PFQUAL environment setting. (Linux only) #642 Fuzzy searches on Linux did not return results consistent with other filePro systems. (All) #637 Extended selection sets didn't work if comparing to a value with a colon in it. (All) #591 RAND("-1") didn't properly seed the random number generator on some systems. (All) #585 PFCHECKLOCK does not report errors on "-p" lookups if you modify fields after a WRITE. =================================== 5.0.09 Release Notes =================================== #489 Backed out change in behavior regarding browse lookup prompts being displayed even if xkeys specified. Added "-DL" flag to *clerk to tell filePro to display the prompts, even if xkeys are specified. #547 Shrinking an existing memo/blob to zero bytes would corrupt the blob file. (Note that this is not the same as deleting the object.) #214 If you use ddir/dprodir to empty a file, and have not yet added any records nor rebuilt indexes, it is possible that *clerk/*report will still see the indexes as empty if another process has added records to the file while you are still in your *clerk/*report session. Note that the records will be correctly seen -- it is only the indexes that may still be thought to be empty. (The symptom is "no matches found" or failed lookups.) (No task #) Add a new end-of-line option for printing -- backslash+LF. Mostly, this is for the RTF printer table, which requires the backslash at the end of every line for a continuation marker. All Platforms New processing command "RESET @PN" to reset the page number back to 1. (Other "RESET xxx" commands can be added later.) Example: @wbrk2 If: Then: reset @pn ; end This will cause the page number to reset back to page 1 every time the second break level is hit. #566 If PFOLDIX=ON and you build a single-key index in dxmaint with a descending sort, it erroneously built an old-style index, which do not support descending keys. #561 Change dxmaint to prevent building of indexes on BLOB/MEMO fields. #501 Repeated use of F6/D/L to display long variable names in *cabe caused corrupted list to be displayed. #562 Add PFFIXNOLOCK=OFF to back out change related to automatically locking future executions of a lookup which was modified without a "-p". #536 DECLARE GLOBAL name(len,type,g) fields were not properly initialized in quikstart. #252 Assignment/concatenation operators ("=", "<", "{", and "&") now work with memo fields. eg: memofield = memofield & @TD field = memofield memofield = field #515 If you have an array aliased to real fields, and the only modification to the record in output processing is "CLEAR arrayname", the record would not be written without an explicit WRITE. #534 LOGTEXT would log some filePro debug information into the log file, in addition to the LOGTEXT items. (No task #) Add MOUSE PATH [ON|OFF] as an alias for CURSOR PATH [ON|OFF] (No task #) Add PFFIXEDLISTSIZE=ON to prevent filePro from shrinking selection lists. This allows screen readers for the blind to be programmed with fixed screen locations for such lists. #569 CLOSE() did not return zero on success. (Return value was undetermined.) (Windows network only) #570 It was possible that, if one process was accessing an index for the first time and another was reading/writing the head of that index at the exact same time, the read/write process would get a Windows locking violation (Windows error #33). (fileProGI) #573 filePro will now break up queued BUTTON_OP commands into 50-command chunks, to prevent any buffer overruns in the fileProGI client. (*nix only) When using the "+ENV+" command syntax in a user menu, it was possible to get an error that "exec" was not a valid command/filename. (No task #) Add the ability to put "%varname%" and "$varname" in the title of user menus, and have them displayed at runtime. (No task #) Add PFSHOWROWCOL=OFF to turn off the row/column display in programs like dscreen, dmoedef, and *cabe. It can confuse screen readers for the blind, as the numbers are read every time you press a key. (No task #) Add PFINSERTMODE=ON to set insert mode in by default in *cabe/*clerk. (Native windows, network only) #517 Native Windows vetwork version did not respect PFDIRFILTER=ON. #576 If you executed a record-number lookup with "-p", and the lookup failed due to the record being deleted, the record was locked anyway. (No task #) New flags for dxmaint: -LY/-LN Include/Exclude index from lists. -KY/-KN Save / don't save changes without rebuilding. (fileProGI) #479 Short selection didn't set date field types, preventing GI from properly displaying calendars. (fileProGI) #522 Under GI, only a single click of the cancel button is required, even if the server is Unix. However, this would cause problems if PUSHKEY "[BRKY]" is used. Change so that double-break is still needed under Unix if they are sent via PUSHKEY to make text and GI consistent. #508 When rebuilding indexes with -r/-ra, the hidden flag was lost.All Platforms (No task #) Unknown solution to GI Hardcopy problem where dotted lines were printed in conjunction with text data lines. =================================== 5.0.08 Release Notes =================================== (Native windows) On some Windows systems, p.exe couldn't execute "/fp/progname" command lines. (It would work with "\fp\progname" or just "progname".) (All) On some systems, the following expression would generate undefined results: UncastVariable = mid(UncastVariable,start,len) (All) The following code could leave the record being updated unlocked: @wlf1 lookup self=filename k=1 i=a -nxp rn = self(@rn) lookup - r=rn (ie: a protected lookup to the current file, and then a lookup-dash to that record.) (All) Upon returning to a user menu with "@command", garbage might appear on the screen before the "Press Enter to return to menu" prompt. (All) Add a title to the dxmaint main menu. (GI) Garbage could appear on the screen following the location for file name input. (GI) Make sure that pty device is in raw mode before sending PROCESS_INIT message. (Could cause lockup if PID/PPID happened to contain a 0x0A byte.) (GI) Allow pmaint's printer configuration screen to accept mouse input. (GI) If an edit definition was changed, leaving existing data that would fail the new edit, using the mouse to move around the screen in *clerk could freeze filePro as it attempted to display the "edit failed" message. =================================== 5.0.07 Release Notes =================================== (GI) #2 Strip out / expand backslash codes from selectlists. (GI) #478 When returning to user menu with "@command", leave the raw-mode screen rather than the filePro splash screen, when waiting for Enter. (All) #480 "COPY lookup1 TO lookup2" didn't force write of lookup2, unless it was a free-record lookup, or some other change was made to lookup2. (GI) #481 showbutton/brwlook problem where button goes away (All) #489 If exitkeys are specified on a browse lookup, filePro does not display filePro's browse lookup prompts. (It assumes that you have placed your own prompts to go with the exitkeys.) Now, if you specify the new "-DE" flag (suppress filePro prompts only at @entsel), filePro will still display the browse lookup prompts even with exitkeys. (All) #490 -DE flag browse text should not disappear (5.0) #498 "MEMO lookupfile[fldno] EDIT" didn't write the updated memo. (Native windows) #499 There is a bug in Windows' console application support that would cause filePro to sometimes see two spaces for a single keypress. This bug has been worked around. (All *nix systems) #502 Close security hole in makedir. (GI, UnixWare server) #503 Fix problem with default pseudo-tty port settings, to force a mode that filePro can use. (GI) #521 Make sure that filePro doesn't display end-of-field markers under GI. (GI) #523 Fix problem with certain byte sequences in data stream causing the stream to get corrupted. (All) #540 REPEAT() would crash filePro ("out of memory" error) if passed a negative length. =================================== 5.0.06 Release Notes =================================== #N/A xfer now includes the necessary "-m xxx" flag in the buildix script to rebuild qualified indexes. #N/A The "PageUp/PageDown/F5" prompts are now shown in dxmaint/*report on the sort screen's field listing. #39 F9/goto in config editor will now accept line number as well as text. #173 If you scrolled down in the config editor while just viewing, and then entered update mode, you were returned to line 1. #259 When the number of print codes was increased to 9999, pmaint no longer allowed you to type "END" for F9/goto. #264 Add F8/Options to *cabe, to allow setting of the processing password. #N/A When using F8/Save, the new prc table will have the same prc password as the source table. #249 fPcopy didn't copy blob files. #252 You can now do a COntains compare on memo fields. #57 HTML :TX can now take a memo field. #183 "READONLY" flag added to MEMO nnn EDIT: MEMO nnn EDIT [ (row,col,height,width [,startrow,startcol] ) ] [ WRAP | NOWRAP ] [ READONLY ] #N/A When creating a new file in ddefine with BLOB or MEMO fields, the blob file wouldn't get created. #279 (native windows only) On some systems, the text-mode mouse cursor would be enabled while running filePro full-screen. #101 Temporarily remove the F8/options box from dxmaint when building demand indexes, as the options don't work (yet) with them. #83 *cabe's F9/Goto will now find multiple occurrances of a string on the same line. (And fixes the "not found" problem introduced in .05K1) #123 Duplicate DECLAREs are now caught in *cabe. #140 Browse lookups which had both "k=(expr)" and "b=(expr)" would not work correctly. (Internally, filePro got the "k=" and "b=" values backwards.) #34 (native windows) When using "WIN:printername" as a destination, FORMM left the spooler in limbo. #N/A Add PRINTER FLUSH command, which flushes any printer buffers within filePro. #N/A New system array, @UNAME[], which returns the system uname() info: [1] = sysname [2] = nodename [3] = release [4] = version [5] = machine For Windows systems, the following values are returned: sysname: One of: "Win9x", "WinNT", or "Windows" (if type cannot be determined) nodename: the value from GetComputerName() release: major.minor.build (for example "4.10.1998" for Win98) version: the szCSDVersion from GetVersionEx() machine: blank For *nix systems, see your O/S manual for details on each field's meaning. #280 (native windows only) Restructure of files in ddefine would fail at the freespace check if PFDSK was set to more than one drive. #268 (native windows only) SHOW on row 25 did not display anything. #30 Variables DECLAREd in sort/select processing were not properly retained for the output phase in quickstart. #269 rreport could lose some printer setup information after executing a PRINTER FILE command. (Symptom: no end-of-line generated at page boundaries.) #83 After doing an F9/text-search in *cabe and finding text that's not at the beginning of the line, using F9/goto a line number (or "END") would not position the cursor at the beginning of the line. #298 MESSAGE SEND would crash filePro. #284 @PD and @PC increased to 80 characters, to match pmaint. #301 If a CALL has been executed, then using "E"xpressions in the processing debugger may not recognize all variable/lookup names. Only occurs if the CALLed processing table has fewer symbols than the table being debugged. #297 Within automatic processing, when scrolling through a file, memo fields would always compare to null, even if filled in with text. (Native windows) #300 "WIN:printername" syntax caused the printer init code to be sent with each form printed to FORMM command. #39 Configuration editor F9/search enhanced so that you can go to a specific line by typing its line number, and you can search for numbers by typing a quote as the first character. (Same as *cabe's search.) #N/A Add PFLOOKWIZPROT=ON to change the lookup wizard's "protect record" default to "Y". #N/A New STATUS object allows you to save/return the status of: break, cursor, video, escape, and background. Allows subroutines to enable or disable these items, and then restore them to their original state. handle = NEW STATUS() STATUS handle GET STATUS handle SET #355 (native windows only) Windows Me and/or 2000 appears to not beep when a ctrl-G is output from a console application. Change the native windows version to use the MessageBeep() API call instead. #N/A (fileProGI only) A new TITLE verb is added to the MEMO EDIT and MEMO SHOW commands, to allow a title to be specified for the window. Currently, only the fileProGI client will display the title. Example: MEMO memofld EDIT (row,col) TITLE "Last updated: " < @UD #N/A The "-pq" list no longer interprets backslash codes, so that you can have printer comments like "Send to \\server\printer". #N/A Adding more than 100 lines to a memo field in the non-wrapping editor could crash filePro. #358 PFSKIPPEDLOG=filename would crash *report. #219 (fileProGI only) Cursor path is now enforced within the GUI environment. PFFORCECURSORPATH=OFF turns off forced cursor pathing logic. #N/A (native windows only) PFSHOWWINERROR=ON shows value of GetLastError() when system error occurs. #N/A (native windows only) Some system errors didn't display the correct error message text. #N/A PFREFRESHRATE=nnn sets the screen refresh rate during sort/select and output phases in dxmaint/*report to once every "nnn" seconds. (default=1) #304 If you CHAIN from a processing table with a DECLARE GLOBAL, and then CHAIN back, the value of that variable was lost upon return. #N/A (fileProGI only) New command "CURSOR PATH ON|OFF" to give programmer ability to turn off forced cursor pathing in GUI. #404 If you are building an index, and you have a duplicate key that spans several blocks, and the last block is exactly filled, and you insert a new key that comes between that multi-key and the next key, it was possible for dxmaint to crash. (Though it appears to only have crashed if running under fileProGI.) #104 Pressing F2/DELC at the end of a line in the memo editor now joins the lines together by deleting the end-of-line marker. #16 If you have a memo that is smaller than the memo editor window, and you start inserting blank lines with Enter in insert mode, then when the memo reached the height of the editor window, it would crash. #N/A New *clerk flags: -de Turns off @entsel prompts, but leaves update mode prompts. -du Turns off update mode prompts, but leaves @entsel prompts. #N/A New environment variable PFNEWSK=ON (default: OFF) allows new @SK values to be seen by processing. Specifically, the only one right now is "MOUS", which will be seen as "ENTR" otherwise. (Lots of processing tables depend on certain values in @SK in order to function. If an unknown value is set, the cursor won't leave the field or will behave in undesired ways.) A new system field will be assigned later, which will always contain the "real" keystroke value. #N/A Manipulating memo fields within a lookup file could crash quikstart. #476 In *clerk, if you press F6 on a field with no browse lookup, and the press BREAK when asked if you want to create one, you were taken out of update mode, rather than just cancel the brwlook create. #87 If you have an index with a duplicate key that requires more than one block in the index, and add a record whose key comes immediately after that duplicate key, and then continue adding records with the duplicate key, while not adding any other key between it and the first key of the next node in the tree, so that it no longer fits into the same block, the parent node's pointers were not properly updated. This could lead to a "deleted key not found" error. #249 Windows version of fpcopy, when renaming a file with blobs, would fail to move the blob file to the new directory. (Native windows) #499 Native windows version would sometimes see two spaces when you pressed the spacebar once. #477 Hardcopying a screen in *clerk, when the printer destination was set to the screen (ie: with "-pv") would produce a blank screen. =================================== 5.0.05 Release Notes =================================== (All) *clerk can now go to the end of a demand index via F7. (It used to give a "can't do bxhigh() on demand index" error.) (Native windows) SYSTEM() will execute via command.com if a full path is not given on the command line. (This was backed out while working on letting fPclient run scripts, but now that we're using pipes rather than sockets, that fix is no longer necessary, and running via command.com is necessary to run any built-in commands or to respect I/O redirection.) (All) Blob files can now be placed on drives other than PFDATA (just as key/data/index files can). (All) Increase width of ddefine's "create screen 0"/"create default report" dialog box, as messages are now wider due to showbuttons. (All) *cabe - immediately flush buffers after writing processing table, in attempt to cut down on false "truncated processing table" reports. (Quikstart) CREAT() was not accepted as an alternative to CREATE() in rcabe. (All) Add PFHELPDIR=path to set alternate help file directory. If help not found there, filePro will then look in $PFPROG/fp/lib as well. (This only affects the filePro fp/lib help files. Application help files are not affected.) (All) Turn off expiration date. Programs will no longer expire. (All) Change locking logic for new-style automatic indexes. The new logic will allow multiple read-only accesses to the index to occur simultaneously. Only index-update accesses are now single-threaded. On systems with many users doing many index searches on the same file at the same time, the load on the system is dramatically decreased and response time is dramatically increased with the new logic. (All) If you had a duplicate label with a DECLAREd variable and a processing line, and the prc line was empty except for the label, filePro could get in an infinite loop attempting to display the syntax error. =================================== 5.0.04 Release Notes =================================== Restructure of a file with data in it, to change between text and memo didn't handle the qualified blob file. While someone was in the memo editor, other people would be locked out of accessing any memos/blobs from the same file. (Native windows version only) Commands built into command.com would not execute via SYSTEM command. =================================== 5.0.03 Release Notes =================================== After using "!menuname" to nest menus, returning from the nested menu, and executing a menu command line, the wrong menu (the previously- nested one) would be displayed. Due to the change in 5.0.02 of re-reading the user menu, menus with passwords started asking for the password every time you returned from executing a command. Changing a BLOB/MEMO field to a "regular" field in ddefine caused the restructure to crash. (Unix only) dmakemenu would crash upon saving menus. =================================== 5.0.02 Release Notes =================================== Using the syntax "MEMO fld EDIT ()" or "MEMO fld SHOW ()" would crash *clerk/*report programs on some systems. Enhance the "There are no filePro files" errorbox to include the directory where filePro is looking. Help screens lost the ability to show attributes in 5.0.00K5. Fixed. Add PFHELPAUTOGOTO=ON to automatically force F9/goto upon entering help. Fix memo/blob problem with deleting a memo and then lengthening a memo (which happens to reside in the same block in the blob file) causing corruption. Adding more than 100 lines to a memo field in the wrapping editor could crash filePro. dxmaint F8/options screen didn't allow blank to represent "no". Memo editor F8/options didn't have any text after "F10" in "F10 - help". Memo editor respects "-d" flag to not display prompts. runmenu re-reads the menu upon return, allowing the command to update the menu and have the changes reflected on return. =================================== 5.0.01 Release Notes =================================== Word wrap within memo editor. Also, the MEMO EDIT command is enhanced to take an optional WRAP/NOWRAP flag. The default is currently WRAP, but that may be configurable later. MEMO field EDIT [(row,col,height,width,startrow,startcol)] [WRAP|NOWRAP] (Native windows version only.) Don't turn on mouse cursor while in full-screen mode. Typing more than 100 characters at the end of a line in the memo editor while not in insert mode, could crash filePro upon exiting the editor. Fix buffer-overflow problem from increased max line within help. Fuzzy browse lookups didn't work if helped by an index, if that index was in 4.1-style format. Last remaining known "deleted key not found" problem fixed. If you had a duplicate key that spanned exactly 9 blocks in the index, and the ninth block contained exactly one record, and you deleted a record stored in the first block, the eighth (and now final) block was sometimes not properly marked as end-of-chain. Fix problem with opendir/nextdir truncating filenames at a space. Fix single-break problem in *cabe under Unix/Linux. Fix problem in word-wrap memo editor, where deleting lines could leave a ghost of the last line at the bottom of the window. Fix problem in word-wrap memo editor, where pressing Enter in insert mode would still display the old line in its entirety. Change logic of word-wrap editor, so that whitespace will wrap to the next line if necessary. If typing off the end of a line, in overstrike mode, every 100th character might not be stored properly. =================================== 5.0.00K5 Release Notes =================================== Increase max line within help file from 132 to 512, to allow for multiple backslash-coded items. Fixed MEMO DELETE to release memory location after delete. Memo editor now keeps track of the desired column when moving vertically through shorter lines. Having an extraneous comma within a DECLARE statement would cause an erroneous syntax error at the first reference to a literal. ie: DECLARE variable1, variable2, or DECLARE variable1,, variable2 MEMO EDIT / MEMO SHOW can now leave off the (row,col,...) entirely, and a default location/size will be used. Fix *cabe DEL problems under Unix/Linux. =================================== 5.0.00K4 Release Notes =================================== ddefine allows restructure of to and from memo/blob field types. Deleting the last line of a memo could cause a crash upon save. If the only changes made to a record were via MEMO EDIT, those changes would not be saved. Fix *cabe DEL problems under Unix/Linux. Memo editor now requires double-break to cancel. Memo editor - when you marked text end-to-front, cut/copy would crash. Memo editor didn't find text at end-of-line. "Toggle insert" added to memo editor F8/options menu. Repeated use of the sequence MEMO DELETE, MEMO IMPORT, MEMO EDIT while remaining within the processing, could corrupt the blob file. =================================== 5.0.00K3 Never Released =================================== =================================== 5.0.00K2 Release Notes =================================== MEMO EDIT would crash at 101 lines or any increment beyond a per 100 line entry before the 100 line buffer established was refreshed. Added SAVE and BRKY references to the prompts of MEMO EDIT windows PFNOBOX=ON created a piece of box that displays in lower right quadrant of MEMO EDIT box. Changed MEMO EDIT Extended Functions for Find to respect the PFDLGENTER setting Fixed [field] copy to a lookup[field] of a MEMO field Fixed lookup[field] CLEAR after a MEMO lookup[field] SHOW Fixed Native saving proper CR/LF of a MEMO TEXT EXPORT after MEMO EDIT Fixed Memo Paste Function which would not work at the End of File =================================== 5.0.00K1 Release Notes =================================== New Extended Features (F8) in MEMO editing which includes Mark, Cut, Delete, & Paste Find & Find Next Insert Current Date Insert Current Time Environment Variable for *NIX platforms to set the Graphics character for PFSHOWF6ARROW is now GY fPTransfer has been update to handle blobs as binary files. Many cosmetic and messaging enhancements =================================== 5.0.00 Release Notes =================================== Commands for MEMO management To Display a text MEMO field with allowing edit MEMO field SHOW (row,col,height,width) To Remove a text MEMO field display-only window MEMO field CLEAR ----------------------------------- PFLOOKUPNOFILE=ON In *cabe, if you define a lookup to a file that does not yet exist, and this is set, you will no longer get a "No or invalid map" error. Default is OFF. =================================== Spooling for Native Windows filePro =================================== Windows apparently doesn't spool print jobs sent by native windows console applications to local printer ports, the way that it does for MS-DOS programs that do the same thing. (That is, open "lpt1" as a file and write to it.) We have added the necessary code to the native windows version of filePro to use the Windows printer routines (ie: OpenPrinter, StartDocPrinter, etc.) which do respect the Windows spooler. However, the spooler is also limited to those printers defined in the printer control panel. Therefore, we have made it a requirement that, in order to use the Windows spooler, you must prefix the filePro destination with "win:", as in "win:lpt1:". The rest of the destination must be the exact port name or printer name as you have defined it to Windows. So, if you have a printer attached to LPT1 that is named "HP DeskJet 870Cse", you would use either: win:lpt1: or win:HP DeskJet 870Cse If you have a network printer "\\server\printer" that is captured to LPT2, called "Bob's printer", and the Windows destination is "\\server\printer" then you would use either: win:\\server\printer or win:Bob's printer You could not use "win:lpt2:" as "lpt2" is not the destination that Windows knows the printer by. (Though you could use "lpt2" without the "win:" and go directly to that port without the spooler.) Remember: You can only use the exact port name or printer name that Windows uses. Anything else will result in a "the parameter is incorrect" error when filePro tries to open the printer. ******************************* ******************************* filePro and filePro Plus are registered trademarks of fP Technologies, Inc. ******************************* =================================== End End End End End End End End End ===================================