============================================= RELEASE NOTES FOR INFORMIX DYNAMIC 4GL 3.01.UC1 DATE: December 15, 1999 ============================================= ============================================================ TABLE OF CONTENTS I. OVERVIEW II. FEATURES INTRODUCED IN 3.00 - Java Client - Global Language Support (GLS) - Local Editing - Cut and Paste - Folder Tabs - Window Close Control III. FEATURE MODIFICATIONS - Network Traffic Optimization - Fglpager Behavior - fglrun.box.error Resource in fglprofile - Enhancements to the Canvas Drawing Area - Fglschema Enhancements - 4GL BOOLEAN and Database BOOLEAN - Fgllink Optimization Flag IV. MIGRATING FROM EARLIER VERSIONS V. WORKING WITH GLOBAL LANGUAGE SUPPORT (GLS) - Global Language Support Requirements - Creating a GLS P-Code Runner on UNIX - Creating a GLS P-Code Runner on NT VI. CHANGES TO ERROR MESSAGE NUMBERS VII. BUGS ADDRESSED IN RELEASES 3.00 and 3.01 VIII. KNOWN ISSUES AND LIMITATIONS - Interpretation of Environment Variables on NT for GLS ============================================================ I. OVERVIEW The purpose of these release notes is to briefly describe the enhancements and modifications supported by this product in relation to its earlier versions. This document is not intended to be all-inclusive, but rather to assist you in the upgrade process. Please consult the product manuals for additional information on product features and product behavior. For release notes from earlier versions of Dynamic 4GL, visit the Installation Resource at www.informix.com/informix/resource. ============================================================ II. FEATURES INTRODUCED IN 3.00 A brief summary of new features introduced in Informix Dynamic 4GL 3.00 is provided below. You can find more information about these features in the Dynamic 4GL User Guide. ------------------------------------------------------------ Java Client The Java Client allows for the display of Dynamic 4GL applications in Web browsers with little or no recoding. A Java applet downloads to a user’s browser and acts as a display server similar to how the WTK functions on the Windows desktop. The application logic is still performed on the application server as with a WTK or X11 client implementation. ------------------------------------------------------------ Global Language Support (GLS) Dynamic 4GL now supports GLS. For details on using this new feature, refer to the Dynamic 4GL User Guide, Appendix D, and to the Global Language Support Guide. You can find additional details on working with GLS in section V of these release notes. NOTE: The X11 Client cannot display multi-byte characters. ------------------------------------------------------------ Local Editing By default, every keystroke generates a network roundtrip between the graphical client and the application server. Enabling local editing allows the client to send typed characters to the application server when leaving the field only. This reduces network traffic. For details on enabling local editing, see page 8-38 of the Informix Dynamic 4GL User Guide. ------------------------------------------------------------ Cut and Paste This feature enables the standard cut and paste functionality within a Dynamic 4GL Windows session. ------------------------------------------------------------ Folder Tabs This feature permits the creation of Windows-like folder tabs, enabling the user to easily navigate between multiple screens. ------------------------------------------------------------ Window Close Control It is now possible to control the behavior of a Dynamic 4GL application when the user closes the main window on the client workstation. Several options are provided such as stop, continue, and call a function. ============================================================ III. FEATURE MODIFICATIONS The behaviors of the following features have been modified. ------------------------------------------------------------ Network Traffic Optimization The number of IP packets being exchanged between the runner and the client has been reduced. ------------------------------------------------------------ Fglpager Behavior The fglpager behavior has changed. When the last page of a report is displayed, pressing the Next Page button (or the F6 or Escape keys) no longer closes the report viewer. Instead, a message is displayed indicating that this is the last page of the report. To quit the report display, press the Stop button. This closes the report but does not send an interruption signal. However, for backward compatibility, the int_flag variable is set to true. ------------------------------------------------------------ fglrun.box.error Resource in fglprofile The fglrun.box.error resource in the fglprofile configuration file is no longer used when compiling or running Dynamic 4GL applications on Windows. Errors are now redirected to the standard output. ------------------------------------------------------------ Enhancements to the Canvas Drawing Area In previous versions, the tag name specified in the form specification file referenced the canvas drawing area. Now the field name is used to reference the canvas drawing area. You can keep the same 4GL code by modifying the form specification files using the same name for the field and the field tag. For example: DATABASE FORMONLY SCREEN { [c01 ] [c01 ] [c01 ] [c01 ] [c01 ] [c01 ] } ATTRIBUTES c01 = formonly.mycanvas,widget="Canvas"; The field definition: c01 = formonly.mycanvas,widget="Canvas"; Becomes: c01 = formonly.c01,widget="Canvas"; ------------------------------------------------------------ Fglschema Enhancements Version 3.01.UC1 of fglschema handles new Informix Dynamic Server.2000 data types in the following way: - BOOLEAN, INT8, and SERIAL8 can be converted to CHAR(1) and DECIMAL(19,0) respectively when using fglschema with the -c flag. - ROW, LIST, MULTISET and SET types are not supported. When fglschema detects an unsupported data type, a warning is displayed and by default the table definition is not written to the schema file. This is mandatory to get compilation errors when using DEFINE LIKE instructions as follows: RECORD LIKE or SELECT * . However, you can use the -r flag to force fglschema to write the table definition without the columns created with unsupported data types. Run fglschema with the -h option for more details. ------------------------------------------------------------ 4GL BOOLEAN and Database BOOLEAN 4GL uses the INTEGER data type for boolean expressions. Informix Dynamic Server.2000 introduces a new BOOLEAN data type which actually is a CHAR(1) where the "t" and "f" values represent the TRUE and FALSE boolean values. These BOOLEAN values cannot be used directly in 4GL boolean expressions. Here is an example of 4GL code that raises a data type conversion error: # Prerequisite: The database holds a table defined as: # CREATE TABLE tab1 ( col1 BOOLEAN ) # DATABASE stores MAIN DEFINE vbool INTEGER LET vbool = ( 1 = 0 ) INSERT INTO tab1 VALUES( vbool ) END MAIN -9634 No such cast. The specified cast does not exist. Use the CREATE CAST statement to define the cast. The following functions are provided to convert Informix Dynamic Server.2000 BOOLEAN values to 4GL INTEGER booleans: fgl_charbool_to_intbool Converts an Informix Dynamic Server.2000 BOOLEAN value ("t", "f") to a 4GL INTEGER value (TRUE, FALSE). The function returns NULL if the given value does not match "T", "t", "F", or "f". fgl_intbool_to_charbool Converts a 4GL INTEGER value to a CHAR(1) value to be stored in a BOOLEAN column of an Informix Dynamic Server.2000 table. The function returns NULL if the given value is NULL. The above example can be written as follows: # Prerequisite: The database holds a table defined as: # CREATE TABLE tab1 ( col1 BOOLEAN ) # DATABASE stores MAIN DEFINE vbool CHAR(1) LET vbool = fgl_intbool_to_charbool( 1 = 0 ) INSERT INTO tab1 VALUES( vbool ) END MAIN On the other hand, when you retrieve a BOOLEAN value from the database, you can convert that value with fgl_charbool_to_intbool( ) as in the following example: # Prerequisite: The database holds a table defined as: # CREATE TABLE tab1 ( col1 BOOLEAN ) # and fglschema has been executed with the "-c" flag. # DATABASE stores MAIN DEFINE rtab1 RECORD LIKE tab1.* SELECT * INTO rtab1.* FROM tab1 IF fgl_charbool_to_intbool( rtab1.col1 ) THEN DISPLAY "TRUE" ELSE DISPLAY "FALSE" END IF END MAIN ------------------------------------------------------------ Fgllink Optimization Flag Earlier versions of the Dynamic 4GL compiler optimized (by default) the p-code executable generated by the 4GL linker fgllink so that the resulting .42r executable file would only reference 4GL functions actually used by the application, and would discard unused 4GL functions. However, during optimization, the 4GL linker was also discarding 4GL functions called only from C functions. This lead to the following error at execution time, when the call to the 4GL function was issued by the C function: ERROR(-1338)The function '' has not been defined in any module in the program. As of this 3.01.UC1 version of Dynamic 4GL, the 4GL linker now includes references to all 4GL functions defined in the linked 4GL modules. This can dramatically increase the size of the resulting 4GL p-code executable in some cases, but avoids the run-time error. As of this 3.01.UC1 version, the compiler no longer handles the linking optimization automatically. To use the linking optimization, add the -O flag (An uppercase letter O; not the number zero) to the link line of your 4GL application. To prevent the 4GL p-code linker from removing functions called only from C functions, add a 4GL function containing calls to the 4GL functions used by the C modules. ============================================================ IV. MIGRATING FROM EARLIER VERSIONS If you are migrating from version 2.0x or 2.10 of Informix Dynamic 4GL, you should recompile your source files and form files with the 3.00 version of Dynamic 4GL. ============================================================ V. WORKING WITH GLOBAL LANGUAGE SUPPORT (GLS) Global Language Support Requirements To use GLS with Dynamic 4GL 3.0, you must have Informix Client SDK 2.01 (or higher) installed. Before you compile your application, be sure that you have set your environment correctly for GLS. See Appendix D of the Dynamic 4GL User Guide for details. ------------------------------------------------------------ Creating a GLS P-Code Runner on UNIX To use the GLS feature, run the fglmode utility on UNIX with the -m GLS parameters and create a p-code runner with the fglmkrun script by using the -gls flag. To restore the ASCII version of the compiler, run fglmode with the option -m ASCII and re-build a runner without the -gls flag. ------------------------------------------------------------ Creating a GLS P-Code Runner on Windows NT To create a GLS p-code runner on Windows NT, modify the makefile located in the %FGLDIR%\Example\C++\Simple directory by setting the USE_GLS resource to YES. Then run NMAKE , where can be one of the following: RUNNER_NODB : runner without db interface RUNNER_IX5 : runner with INFORMIX ESQL/C 5 RUNNER_IX71 : runner with INFORMIX ESQL/C 71 RUNNER_IX72 : runner with INFORMIX ESQL/C 72 RUNNER_IX9 : runner with INFORMIX ESQL/C 9x RUNNER_IXGEN : runner with ESQLC db interface ============================================================ VI. CHANGES TO ERROR MESSAGE NUMBERS Some error message numbers have changed since Informix Dynamic 4GL version 2.10. Here is a complete list of these changes. English messages texts can be found in the $FGLDIR/msg/en_us/0333/all.msg file. Removed error numbers: -6106 -1500 -5010 -6021 -6320 Modified error numbers: ------------- Old New ------------- -201 | -4333 -201 | -6801 -202 | -6611 -203 | -6612 -1400 | -6300 -1401 | -6301 -1402 | -6302 -1403 | -6303 -1404 | -6304 -1406 | -6306 -1407 | -6307 -1408 | -6308 -1409 | -6309 -1410 | -6310 -1600 | -6361 -1700 | -6360 -1900 | -6340 -1901 | -6321 -1902 | -6322 -1903 | -6323 -1904 | -6324 -1905 | -6325 -1906 | -6305 -1910 | -6327 -2000 | -6320 -2001 | -6341 -2002 | -6342 -2003 | -6343 -2004 | -6344 -2005 | -6345 -2006 | -6346 -5000 | -6200 -5001 | -6201 -5002 | -6202 -5003 | -6203 -5004 | -6204 -5005 | -6205 -5006 | -6206 -5007 | -6207 -5008 | -6208 -5100 | -6209 -5102 | -6210 -6004 | -6600 -6100 | -6601 -6101 | -6602 -6102 | -6362 -6103 | -6328 -6104 | -6329 -6105 | -6363 -6200 | -6603 -6300 | -6605 -6301 | -6606 -6400 | -6607 -6500 | -6608 -6800 | -6750 -6801 | -6751 -6802 | -6752 -6803 | -6753 -6804 | -6754 -6805 | -6755 -6806 | -6756 -6807 | -6757 -6808 | -6758 -6809 | -6759 -6810 | -6760 -7000 | -6601 ============================================================ VII. BUGS ADDRESSED IN RELEASES 3.00 and 3.01 Bug Number : 4018A Full Description : When you run canvas using windows front-end version 1.47 and the compiler version 2.13.023, no canvas object is drawn in the canvas area. Bug Number : 4020 Full Description : If you call a function with a record as parameter you get a GPF during the compilation only if the record is defined in the calling function. On Unix you get two errors : One for the variable which is not defined when the function is called One in the function, because the function has already been called with a different number of parameters Bug Number : 4020B Full Description : If you call a function with a record as parameter you get a coredump. Bug Number : 5284B Full Description : Skip lines gives bad result if it's too big for a page (page length, ...). Informix-4gl considers this statement like a SKIP TO TOP OF PAGE. Bug Number : 5285 Full Description : 4js: bad reinitialization of report (bad first Page header) ix : An extra page header will show up on the second page of the second report run if a skip to top of page was the last command executed in the on every row section of the previous report. Bug Number : 5300A Full Description : DEFAULT MONEY PRECISION SCALE IS NOT USED. Ex: 123 is display \123.00 and not \123 1234567890123456 is not accepted, Informix accepts it Bug Number : 5318 Full Description : IN CREATE TABLE, BLOB "IN" SYNTAX NOT ACCEPTED. ex: create table b (b text in table) Bug Number : 5320A Full Description : LENGTH OF VARIABLE OF A TYPE TEXT GIVES 0 Bug Number : 5320B Full Description : IF A TEXT IS NULL, THE DISPLAY IN A FIELD IS NOT UPDATED Bug Number : 5320C Full Description : With TEXT Field in a form, default program is DBEDIT. d4gl says No PROGRAM= clause for this field. Bug Number : 5322 Full Description : BLOB PASSED IN PARAMETER OF FUNCTION IS NOT WELL INITIALIZED. Gives error -452 Bug Number : 5359 Full Description : IN GUI, ONLY LABEL BUTTON KEY BELOW F25 ARE DISPLAYED. Bug Number : 5364 Full Description : CHARACTERS '\' ARE NOT WELL TRANSMITTED TO THE DATABASE ENGINE. Bug Number : 5365 Full Description : It is impossible to compile a program having a "next field" option in a construct statement : you get the error message: -4463 "The NEXT FIELD STATEMENT can only be used within an INPUT or CONSTRUCT STATEMENT." Bug Number : 5366 Full Description : LOAD STATEMENT HAS A BAD INTERPRETATION OF BACKSLASH AT END OF LINE Bug Number : 5367 Full Description : ONE EMPTY BLANK LINE AFTER EVERY MESSAGE ERROR. Bug Number : 5368 Full Description : PROGRAM NAME IS WITHOUT EXTENSION WHEN A ERROR OCCURS: Program stopped at "b5368", line number 2. SQL statement error number -253. Identifier too long - maximum length is 18. Bug Number : 6602 Full Description : Not defining the parameter of a function causes a Doc Watson on NT whereas on Unix it generates a very honest .err file Bug Number : 7218 Full Description : If a 4GL function, located in a module which contains only 4GL functions which are called by C functions, is called, the program stops with an error function not defined. Bug Number : 7272 Full Description : Giving a value too big to a decimal gives no error With Informix, an error appears : Decimal or money value exceeds maximum precision. Bug Number : 7275 Full Description : By a simple calculation, 4Js gives a result but Informix gives an error because of the lack of precision place. This can give big calculation error. Bug Number : 7327 Full Description : In report, with print sum() where ... doesn't give the good result. the part where is ignored Bug Number : 7332 Full Description : If in a program, the function channel::read tries to read a file that doesn't exist, the program crashes with the following error : A function has not returned the correct number of values expected. The same if you have WHENEVER ERROR CONTINUE Bug Number : 7337 Full Description : In graphical mode only, when the screen has a smaller height than the default value ( 25 ) with options error in last line, no error is displayed. Bug Number : 7343 Full Description : Statement VALIDATE gives error -1321 at runtime even if variables have good values. Classic Informix 4GL gives no error. Bug Number : 8109 Full Description : When you define a function with an argument, but you do not declare this argument, on a SCO system you get error #4336. On Sun Solaris 2.5 and 2.6 you get a core dump. Bug Number : 9012 Full description : With too much keys defined in a ON KEY statement fgl2p and fgl2c don't compile the code. There is no warn, it just doesn't compile. Bug Number : 9050 Full Description : The window cannot be closed like a Microsoft windows. Can we have some entry in the fglprofile which define a function key to send or better a function to run when this button is pressed. Bug Number : 9082B Full Description : In report, if you use the instruction "PAGE HEADER" without using the instruction "ON EVERY ROW", the report is empty. Bug Number : 9098 Full Description : An undefined argument in a function description at compile time dumps core Bug Number : 9109 Full Description : Text variables are not passed as parameter Bug Number : 9115B Full Description : The Four J's Load command doesn't use the same SQL command as the I4GL Load command. The Four J's Load command doesn't use an insert cursor. Bug Number : 11021 Full Description : When using an editor to enter data into a TEXT field (via an INCLUDE, by typing ! in the field), the line feeds are replaced by ?. Not with INFORMIX. Bug Number : 11030 Full Description : In a .per file, in the table section: table "formonly" statement is not accepted. Bug Number : 12024 Full Description : If a customer has problems with his licence (error message like 6042) and finally you receive the message : 75575928527234387937932 No Error - Invalid Serial Number, this is a problem with the instruction popen. It is directly used by fglwrt to check the licence and is part of the mscvrt.dll. This problem is directly linked to the version of the system you install, or more precisely the version of Microsoft Internet Explorer (4.0 causes the problem)or outlook express. Bug Number : 12027 Full Description : ONLY IN ASCII MODE : If a program define the menu line to an other line than 1. A display at the first line of the screen doesn't work. Bug Number : 12033 Full Description : fgl_keysetlabel is implemented and documented as a global setting function. This means that if fgl_keysetlabel() is called in the main block for example, and a second time in a function, when returning to the main block, the key label is the one set in the function. In this release, fgl_keysetlabel() is only available locally in a module, whereas it is not in latest versions. Bug Number : 12039 Full Description : By default, the installation script uses the /tmp directory to extract files. If there is not enough space in that directory, the installation fails with the message : "not a gzip file" Bug Number : 13001 Full Description : The 'MAXCOUNT' attribute should default to the value of 'COUNT' when MAXCOUNT is less than 'COUNT'. For example, in input array ... attributes( count=10, maxcount=1 ) maxcount should default to 10. Bug Number : 13002 Full Description : When using a backslash followed by a new line in a 4GL string constant, a unexpected blank character appears in the result string. Bug Number : 13003 Full Description : The compiler crashes when an expression uses a huge number of double pipe concatenation operators Bug Number : 16007 Full Description : When creating a SE database with a log file, the statement LOAD FROM "" INTO gives an error. Bug Number : 11029 Full Description : When you set DBDATE to DMY40 it uses "0" as a delimiter whereas there should be no delimiter. Bug Number : 12030A Full Description : When using a cursor declared with a SELECT FOR UPDATE to lock rows and a WHENEVER ERROR CONTINUE, FOREACH instruction does not set STATUS to -250 when the required row is already locked by another process. Standard I4GL FOREACH sets STATUS when the row is locked by another process. Bug Number : 12036 Full Description : With a version 2.10.4c2 using database interface ESQL 9.14,a DECLARE with a SELECT ROWID,... makes the program crash. The same SELECT in an ESQL/C program works. Bug Number : 7354 Full Description : to use poplocator, the structure loc_t for declaration of blob or text is not defined in the compiler Bug Number : 9046 Full Description : The button label is always centered, there should be a way to justify (left, right, centered) it. Bug Number : 11023 Full Description : When you start and close an application with FGLRUN several times, the first window has different positions slightly descending at each time. The window should always be at the same position if there is only one application running. Bug Number : 16006 Full Description : a bmp picture cannot be displayed in the control frame area. Bug Number : 5348 Full Description : Statement DISPLAY FORM doesn't clear the previous form in the graphic mode. Informix-4gl makes close first the oldest form before it displayed the form in the current window. Doesn't appear in 2.11.xx Bug Number : 7318 Full Description : In the input array, if you select a word for cut/paste and move the cursor with the arrow keys, there is a problem with the refresh. run : b7318.sh ( set the profile file and compile and run it ) Bug Number : 7328 Full Description : With gui.useOOB.interrupt = 0, it is not possible to interrupt with interrupt key if it is translated to another. The only possibility to interrupt is to use the mouse click. run b7328.sh Bug Number : 7339 Full Description : In a field with a default value having the attribute "autonext", if you overwrite the last character of the field, the value appears on the first position because of the attribute autonext ( only one field in the input ) Bug Number : 7347 Full Description : In tcl3, the combo box doesn't work. Bug Number : 9090 Full Description : In TCL3, after inserting a new row, values entered are not displayed in the right field but in the last known row. Bug Number : 11001 Full Description : The shortcut of a combo box is activated even when the combo is not included in an INPUT Bug Number : 12022 Full Description : see in the example : validate a line and see the wrong blank lines that appears. with wtk the problem only appears with tcl3 (run FGLPROFILE=b12022.prof, it's frozen..) with X11 : appears in TCL2 and TCL3 Bug Number : 5361 Full Description : YOU CANNOT SELECT THE LAST CHARACTER OF A ENTRY WITH TKORGENTRYS==0 Bug Number : 6509 Full Description : After a dialog the clear form or screen doesn't work. Try the example with the wtk1.44 Bug Number : 5274B Full Description : if the PAGE TRAILER finishes with an instruction like PRINT "blabla"; and you have DBPRINT=FGLSERVER or you print to the screen, you don't get "Page Trailer" at the end of the page. Bug Number : 5341B Full Description : The syntax "start report to file" where file is a variable is not supported because file is now a keyword. Bug Number : 10033A Full Description : The gui.toolBar.X.key resource should be case insensitive Bug Number : 10033B Full Description : The key returned by the canvas bmp buttons or radio and check buttons should be carefully specified in upper case in the config attribute. Bug Number : 10033C Full Description : gui.key.0.translate, gui.key.click.right, and gui.key.doubleClick.left resources in fglprofile are case sensitive. Bug Number : 10033D Full Description : The resources specifying the cut, past, copy and interrupt keys have to be set with case sensitive value: "F5" may work but "f5" may not. Bug Number : 10033E Full Description : The name of the key for changing the label of a button located in the control frame with fgl_keysetlabel or dialog.keysetlabel or with the key section or attribute in a form specification file should be completely case insensitive. Bug Number : 10034 Full Description : You can not compile a 4GL source file created with MS NOTEPAD. At compile time you always have an error at the last line before the "end main" statement. Bug Number : 10034B Full Description : You can not compile a per form file created with MS NOTEPAD. At compile time you always have an error at the last line. Bug Number : 13004 Full Description : Clause "WITH REOPTIMIZATION" produces a compilation error when used in an OPEN cursor instruction. Bug Number : 13005 Full Description : Clause "WITH REOPTIMIZATION" is not recognized when used in a FOREACH instruction. Gives a compilation error Bug Number : 13006 Full Description : The CONNECT statement does not support WITH CONCURRENT TRANSACTION when using the "DEFAULT" keyword as database name Bug Number : 13007 Full Description : When using the LOAD instruction, DECIMAL values are truncated to the second decimal position : if the file has value 615.768762, after loading, value 615.770000 is in the database. Bug Number : 16005 Full Description : After having installed a package you can not use for the first time as a non-owner of the FGLDIR directory : because after installation the LOCK directory is deleted : so when you run something, the lock file is trying to be generated and it can't if you do that as a user which the package doesn't belong to (the one who installed the product) Bug Number : 17001 Full Description : When you execute a program which uses its own fglprofile and this fglprofile has a syntax error, you get the error : syntax error b17001.prf(1): at gui ERROR(-6324):Can't load customer profile 'b17001.prf' SYS ERROR(2):No such file or directory This error "No such file or directory" is not correct. Bug Number : 7349 Full Description : If you declare a field ( for example a date ) inside a form, inside a construct there is no control on the validity of the format Bug Number : 9094 Full Description : LET DATETIME = DATETIME USING "&&" runs in error with following message : A field in a datetime or interval is out of range Bug Number : 9124 Full Description : Running the command fglrun appl.42r where appl.42r is a null file ( cat /dev/null > appl.42r ) dumps core on sun boxes. On other platforms it warns : File '(null)': Bad magic: Code can't run with this p-code machine. Bug Number : 5274B Full Description : if the PAGE TRAILER finishes with an instruction like PRINT "blabla"; and you have DBPRINT=FGLSERVER or you print to the screen, you don't get "Page Trailer" at the end of the page. Bug Number : 7266 Full Description : If the comment line is on the same line as the field of an input, the entry stays invisible ( the comment line is over the entry ) Bug Number : 9127 Full Description : The program dumps core at the next DDE command after a ddepeek command Bug Number : 12010 Full Description : When doing a START REPORT of a first report, finishing it and immediately STARTing a second report, the display is a mix and keeps information from the first report . This only happens on display, with a START REPORT to file it works well Bug Number : 12032 Full Description : When typing a special character in a dialog field with ALT + , the typed ASCII code appears before the special character. Bug Number : 12032 Full Description : When typing a special character in a dialog field with ALT + , the typed ASCII code appears before the special character. Bug Number : 5273C Full Description : print "blabla"; skip to top of page after doing the last page trailer, Informix gives a blank line but not FourJs. Bug Number : 5273D Full Description : print "blabla"; skip to top of page print "trailer"; FourJs does not display 4 blank lines and the line "trailer" at the end of the page. When you PRINT to a file, the result is correct. Bug Number : 4024 Full Description : When a report to printer is made. No data is sent to printer. The wtk receive from the runner "report begin", "report end" and no data between. Bug Number : 7344 Full Description : On Linux using glib 2.0.6 only, in graphic and ASCII mode, you cannot interrupt a dialog but the variable int_flag is set to TRUE. You can interrupt a sleep Bug Number : 4019 Full Description : If you specify a non existing field in the screen record, the form compiler generates a core dump on Unix and GPF on NT instead of an error message. Bug Number : 5370 Full Description : DEFAULT MONEY IS NOT TRANSLATED CORRECTLY IN REPORT IN C-CODE. If you look inside the temporary table created for the report (use FGLSQLDEBUG=1), you see that the MONEY is declared MONEY(16,255) Bug Number : 5375 Full Description : If you do a prompt in terminal mode and exit the program, the terminal is not reset Bug Number : 6510C Full Description : EVERY ROW used as FORMAT part of a REPORT shows the values of all transmitted parameters and therefore is very often used for debugging purposes (in absence of an interactive debugger...). Unfortunately with F4GL it doesn't work and dumps core when you send the report to a file. Bug Number : 7079 Full Description : Without calling set_count a line is displayed when exiting a display array Bug Number : 7272 Full Description : Giving a value too big to a decimal gives no error and displays bad values. With Informix 4.1, an error appears : Decimal or money value exceeds maximum precision. With Informix 7.x, no error appears, but values are null. Bug Number : 7272B Full Description : Giving a value too big to a decimal gives no error. You must insert in your 4GL the statement "WHENEVER ANY ERROR ..." to see the errors. Bug Number : 7273B Full Description : If the function dialog.setcursor is used inside a before field, the cursor stays on the first position in the current field. Bug Number : 7275 Full Description : By a simple calculation, F4GL gives a result not null but Informix gives a null value because of the lack of precision place. This can give big calculation errors. Bug Number : 7275B Full Description : By a simple calculation, F4GL gives a result not null and Informix gives an error because of the lack of precision place and a null value. This can give big calculation error. You must insert in your 4GL the statement "WHENEVER ANY ERROR ..." to see the errors. Bug Number : 7331 Full Description : Inside an input, if you close the current form in a trigger and open another form with an input, it gives a core dump on SUN. On Linux, it works on ASCII, but crashes on GUI mode. Bug Number : 7349 Full Description : If you declare a field ( for example a date ) inside a form, inside a construct there is no control on the validity of the format Bug Number : 7350 Full Description : After an exit construct, going a second time in the same construct, given characters are not visible if characters were entered in the same field the first time in the construct (only with tcl interface 2) Bug Number : 7351 Full Description : When an insert is done inside an input array, the reverse line is on the new line for the first field and on the last line for the second field when,in the form, fields have the attribute reverse. Bug Number : 7353 Full Description : If a box is made by using semi-graphic characters in the form, the lower right corner is not fully drawn Bug Number : 7356 Full Description : IF a text field contains carriage return, by displaying it the carriage return is replaced by the character "?" Bug Number : 7359 Full Description : The command CONNECT TO DEFAULT WITH CONCURRENT TRANSACTION is not accepted at the compilation. Bug Number : 9033 Full Description : With F4GL, the first input or Display holds the reverse attribute and we can not switch it in normal mode. With this syntax the problem occurs only in graphical mode. Also detected with DISPLAY ARRAY. Bug Number : 9091 Full Description : In ASCII mode when living a second level menu to a first level shorter menu, the end of the second level menu still on the screen. Bug Number : 9102 Full Description : In ASCII mode, there are trailing displays on the menu line when coming from a second menu and when the menu line is not the first line. Bug Number : 9105 Full description : q and d flags in screen section of a form file don't draw a corner like Informix 4GL does. This happened only in GUI mode. Bug Number : 9113 Full Description : With only some values like 1.11 in float fields, the display will be shown like 1.110000000. Other values like 0.06 are shown like 0.06. It depends also on the computation you do on the field, 9.999 + 0.001 will display 10.0000000000 but 10.000 + 0.000 will display 10.0 Bug Number : 9118 Full Description : The pagedown key scrolls only one line down if there is a next field command in the input array. Informix 4GL scroll X+1 screen record lines. Bug Number : 9124 Full Description : Running the command fglrun appl.42r where appl.42r is a null file ( cat /dev/null > appl.42r ) dumps core on sun boxes. On other platforms it warns : File '(null)': Bad magic: Code can't run with this p-code machine. Bug Number : 10031 Full Description : In the graphical mode the menu button label doesn't dynamically change according to the variable content. The ASCII mode works well. Bug Number : 10033B Full Description : The key returned by the canvas bmp buttons or radio and check buttons should be carefully specified in upper case in the config attribute. Bug Number : 10033C Full Description : gui.key.0.translate, gui.key.click.right, and gui.key.doubleClick.left resources in fglprofile are case sensitive. Bug Number : 10033D Full Description : The resources specifying the cut, past, copy and interrupt keys have to be set with case sensitive value: "F5" may work but "f5" may not. Bug Number : 10033E Full Description : The name of the key for changing the label of a button located in the control frame with fgl_keysetlabel or dialog.keysetlabel or with the key section or attribute in a form specification file should be completely case insensitive. Bug Number : 10034 Full Description : You can not compile a 4GL source file created with MS NOTEPAD. At compile time you always have an error at the last line before the "end main" statement. Bug Number : 10034B Full Description : You can not compile a per form file created with MS NOTEPAD. At compile time you always have an error at the last line. Bug Number : 11017 Full Description : The F4GL compiler does not accept this syntax : DISPLAY 'bla bla bla '' bla bla bla' Bug Number : 12008 Full Description : When running fglfontsel in subdirectory $FGLDIR/bin, following error message appears : sh: xlsfonts: not found program stopped at "fglfontsel.4gl", line number 91. FORMS statement error number -1110. Form file not found. Bug Number : 12008B Full Description : "Change Font" have no effect Bug Number : 12010 Full Description : When doing a START REPORT of a first report, finishing it and immediately STARTing a second report, the display is a mix and keeps information from the first report . This only happens on display, with a START REPORT to file it works well. Bug Number : 12045 Full Description : Compile 2 modules with fgl2p by using a directory path to the source files and move the 42m files into a different directory. Create the 42r module with the path to this new directory. The compilation works fine, but the program cannot be executed because the original paths are used in the 42r file. Setting FGLLDPATH correctly does not help. Bug Number : 13004 Full Description : Clause "WITH REOPTIMIZATION" produces a compilation error when used in an OPEN cursor instruction. Bug Number : 13005 Full Description : Clause "WITH REOPTIMIZATION" is not recognized when used in a FOREACH instruction. Gives a compilation error. Bug Number : 13006 Full Description : The CONNECT statement does not support WITH CONCURRENT TRANSACTION when using the "DEFAULT" keyword as database name Bug Number : 13007 Full Description : When using the LOAD instruction, DECIMAL values are truncated to the second decimal position : if the file has value 615.768762, after loading, value 615.770000 is in the database. Bug Number : 13008 Full Description : When doing an INSERT in static SQL using an array, followed by a SELECT in an SQL block, the values fetched into the destination record differ from the inserted values. The problem appears only when using an array of record in a static INSERT and when listing all INTO members of the destination record in the SELECT, when using a simple record or when doing the INSERT in an SQL block or when using a start with the destination record (INTO dest_rec.*), it works fine. Bug Number : 13009 Full Description : The new version of the compiler should support an INTO clause with the EXECUTE instruction. Gives a compilation error for now. Bug Number : 13010 Full Description : When executing a CANCEL INSERT on the last row in an INPUT ARRAY, the cursor jumps to the previous row in the screen array. The cursor should stay on the last row. Bug Number : 13012 Full Description : When executing a SET CONNECTION TO "C" DORMANT, the connection should become inactive but it is still possible to execute SQL statements. Bug Number : 13013 Full Description : In SQL Blocks, comments between {} must be converted to one blank character to allow the programmers to write : SELECT{}colname{}FROM{}tabname. Bug Number : 13014 Full Description : When compiling in C-Code, errorlog( ) functions writes two times the same row into the log file. Bug Number : 16005 Full Description : After having installed a package you can not use for the first time as a non-owner of the FGLDIR directory : because after installation the LOCK directory is deleted : so when you run something, the lock file is trying to be generated and it can't if you do that as a user which the package doesn't belong to (the one who installed the product) Bug Number : 16009 Full Description : If you use a "skip to top of page" in a "before group xxx" in a report, it will make a page skip after the first page header ("first page header"), and will go to second page , and print "page header" : so the first data will be printed on the second page ... Bug Number : 16010 Full Description : In comparing the result of a " select xxxx from yyy order by xxxx[]" between dbacess and the runner, notice that the runner does not order the data like expected. Bug Number : 16010B Full Description : In comparing the result of a " select xxxx from yyy group by xxxx[]" between dbacess and the runner, notice that the runner does not order the data like exepected. Bug Number : 17001 Full Description : When you execute a program which uses its own fglprofile and this fglprofile has a syntax error, you get the error : syntax error b17001.prf(1): at gui ERROR(-6324):Can't load customer profile 'b17001.prf' SYS ERROR(2):No such file or directory This error "No such file or directory" is not correct. Bug Number : 17003 Full Description : In an input, if you modified values displayed in a form field and quit the input with an interrupt, the display executed just after the input doesn't refresh the values. Bug Number : 5371 Full Description : Only keys from the keyboard must be buffered if the client waits. Clicks on buttons except interrupt should do nothing when the wait of the client finish (the hour glass disappears). The same for scrollbar, click on field, etc... Bug Number : 5372 Full Description : Selection (cut & Paste) on the first field of a display array always begins to the first character. Bug Number : 5373 Full Description : Folders are not destroyed with a clear window. If you click on it, you can have tcl error if the form was closed Bug Number : 5373B Full Description : Folders are not destroyed with a clear window with a new form in a window. If you click on it, you can have tcl error if the form was closed Bug Number : 5374 Full Description : Too long titles in folders are not controlled: must be truncate. Bug Number : 5377 Full Description : The second time you made a selection in a field and you use the keyboard to do it (Shift-Right key,...), the selection is not reinitialized and you have bad characters Bug Number : 5378 Full Description : After a redraw (Control-r), all horizontal menu buttons are reactivated. If you can see a another menu than the current one, you can click on the buttons Bug Number : 7355 Full Description : If you do a display at on the screen of a text and that after you do a display at of one character at the same position to set a special attribute on this character for example, the whole line is overwritten. Bug Number : 9111 Full Description : The @ character written with the keys @ disables the insert mode Bug Number : 9127 Full Description : The program dumps core at the next DDE command after a ddepeek command Bug Number : 9129 Full Description : Select all characters in a field from right to left with the mouse and press the delete key. It doesn't work but sometimes it does. Bug Number : 11024 Full Description : When you have a menu with BMP, if you want to spread out the buttons with fglMenuButton.padX, you have a refresh problem of the menu. Bug Number : 11025 Full Description : FglButtonMenu.PadX doesn't work if FglButtonMenu.relief is different from "flat". Bug Number : 12032 Full Description : When typing a special character in a dialog field with ALT + , the typed ASCII code appears before the special character. Bug Number : 5381 Full Description : Alt-F4 closes an application even if you have specified to do not. The default of "OPTIONS ON CLOSE APPLICATION" is "Cannot be stopped!" send in the error line Warning! in some X11, the Alt-F4 key is set to "Iconify". That means when you press Alt-f4 in you application, you don't see anymore you application. BUT your application is still there: look in the existing application list of your window manager. Bug Number : 7305 Full Description : The PROMPT overwrites the message on Windows client Bug Number : 7312 Full Description : THE FUNCTION FGL_SETKEYLABEL AND FGL_DIALOG_SETKEYLABEL DON'T REACT CORRECTLY Bug Number : 7344 Full Description : On Linux using glib 2.0.6 only, in graphic and ASCII mode, you cannot interrupt a dialog but the variable int_flag is set to TRUE. You can interrupt a sleep Bug Number : 7363 Full Description : If a 4gl module has not linefeed at the last line, there is a compilation error. Bug Number : 10035 Full Description : FGL_DIALOG_SETCURRLINE do not work. It does not create an error at compile time, but when executing it does nothing. It should act like dialog.setcurrline function. Bug Number : 10036 Full Description : When using fgl_dialog_setcursor or dialog.setcursor with the local editing enable, if you type a few letters in a field and then press the right or the left key to move the cursor in the field, when cursor position returned will be incorrect. Bug Number : 16011 Full Description : POSITION OF NULL IN INCLUDE "ATTRIBUTES" SECTION OF A PER IS ORDER SENSITIVE Bug Number : 17004 Full Description : If you are not in the field of the combo, you must press twice on the combo's button. The first time, the cursor goes to the combo, the second time, it activates the action associated to the combo. Bug Number : 17005 Full Description : If you define in your .per a listbox like this : [f001 ] [f002 ] and define f001 and f002 : f001 = customer.company[1,5]; f002 = customer.company[6,10]; You have the error : the display label bigchar has already been used (error number -2992) Bug Number : 5382 Full Description : OPTIONS PROMPT LINE BIGGER THAN 25 DISPLAYED NOT THE MESSAGE OF THE PROMPT Bug Number : 7229 Full Description : the functions time() and date() with a parameter are not accepted Informix 4gl version 6.xx accepts them Bug Number : 12034 Full Description : When the first position of the fraction part is not zero, the comparison evaluates to a wrong result. Precision of the fraction (1 to 5) makes no difference. For example, comparing x.01 to x.02 works as comparing x.1 to x.3 or x.12 to x.14 fails. Bug Number : 16012 Full Description : the last error text of previous program or instance is displayed in the new one. The error statement must have set the normal attribute and the program must stop with the exit program instruction. Bug Number : 16013 Full Description : When using folder tabs : if on one folder tab you have an array, and fields on the others, if the program expects the array to be filled in and not the other fields, and if you go and look at the fields on the other folder tabs, you'll see that these are looking as if they were active. (not grey, but white background) Bug Number : 17009 Full Description : When we calculate the difference between 2 dates and one of these dates is the 29/02/2000, we have an empty result. Bug Number : 17012 Full Description : If you want to define your own function date1 with one parameter and compile it with fgl2p (fgl2p -o b17012.42r b17012.42r b17012.4gl the error : The function b17012.date1(1,1) will be called as date1(1,0). In libfgl4js.42x is defined a function called date1 that makes the same behavior that the function date. Bug Number : 17012B Full Description : If you want to define your own function date1 with one parameter and compile it with fgl2p (fgl2p -o b17012B.42r b17012B.4gl), you have the error : The function b17012b.time1(1,1) will be called as time1(1,0). Bug Number : 17014 Full Description : If you load a unl file in a database and this file contains the date 00-02-29, and dbcentury=F, with 4js, the value is not inserted in the database (you have an empty value). If the date is defined "2000-02-29", the date is inserted in the database. Bug Number : 17016 Full Description : When you compile a form, and the compilation succeeds, if a file .err exist, it must be deleted. Bug Number : 9134 Full Description : The next button closes the pager application when pressed on the last page. Bug Number : 9134B Full Description : This problem only appears with report in screen with Graphical client. If you declare a "PAGE LENGTH" greater than 100, If you are not on the first page and you want to go back to the previous page, a empty page appears Bug Number : 9135 Full Description : The directive GUI.PREVENTCLOSE.MESSAGE in the fglprofile file has no effect Bug Number : 5384 Full Description : If you use a DISPLAY ARRAY and the fields of this display array are in the second folder and if in the previous row of the display you do a current window command, the program will be frozen. Bug Number : 7366 Full Description : If there is a field with bmp using lisboxes, the application hangs. Bug Number : 9132 Full Description : Fgl_drawpolygon can't be called with 10 points defined like in older versions Bug Number : 16014 Full Description : CLEAR SCREEN IN AN ON KEY CLAUSE WHILE INSIDE OF AN INPUT ARRAY CAUSES CORE DUMP Bug Number : 16016 Full Description : MAKING A SIMPLE REQUEST WITH A CURSOR IN A TABLE GIVES A -254 ERROR Only with engine 5.1 and 4.1 Bug Number : 4025 Full Description : At the end of the installation a dialog box is displayed asking user to give the icon location. Under windows 95 shell interface, Icon are not managed like on Windows 3.x shell interface. With Windows 95 shell interface you can specify a icon location as follow: Informix\Windows Front End Before the version version 1.484 the path below was interpreted as follow: Informix_Windows Front End Bug Number : 9003 Full Description : The command fgl_setsize called after an open window doesn't resize the Xwindow. Bug Number : 9059 Full Description : The report into file always writes unix eol. It would be fine if the user could choose the eol type or define it into the fglprofile file. Bug Number : 9096 Full Description : FGL_WINQUESTION enables users to answer more than one characher, in ASCII mode a PROMPT command is used and that PROMPT only allows one character answers Bug Number : 9137 Full Description : c:\fgl2cusr\bin\wtk.exe -d -f c:\fgl2cusr\key.tcl doesn't work anymore Bug Number : 9140 Full Description : The environment file produced by findlib.sh on HP system sets LD_LIBRARY_PATH but standard HP uses SHLIB_PATH. Bug Number : 16018 Full Description : Inconsistent font size when printing a report thru WTK : if you have a report displayed on the screen, and you change the size and then print it thru Wtk, the size is always remaining tiny. Bug Number : 4028 Full Description : Using the statement "start report" without specific option makes the program reuse the last report specific option. In several cases, you may have a GPF or coredump. Bug Number : 5370B Full Description : If you use the variable FGLSQLDEBUG (=1), you have a coredump at execution. (Even if the 4GL program is empty). Bug Number : 7370 Full Description : Compilation of runner including userdata ( 4GL global variables used in C part )where this macro is used in macro GLOB, gives a compilation error : variables ident, data and typeName are not a constant. Bug Number : 9006B Full Description : If in a form, you define a field with type datetime and picture="##-##-##", you can not insert date in it. Bug Number : 9129B Full Description : Select some characters in a field from left to right with the mouse and press the delete key. It doesn't work but sometimes it does. Bug Number : 10033A Full Description : The gui.toolBar.X.key value should be case insensitive According to the character case, toolbar buttons are enabled or disabled. Bug Number : 11035 Full Description : If you do a OPEN WINDOW WITH FORM "../xx/yy" you get the error "form file not found" whereas if you do an OPEN WINDOW WITH FORM "..\\xx\\yy" it works. Bug Number : 12056 Full Description : The "gui.toolbar.n.text" entry is used to link a toolbar button to a 4gl menu option by giving the label of the menu option. To make this work in this version of the TCL interface, both entry value and 4gl menu option label must be in lowercase, otherwise it does not work. Bug Number : 12056B Full Description : Application hangs when using gui.toolbar..hidebutton=true. Bug Number : 12056C Full Description : Appears only on wfe : the entry gui.bubble.visible = true has no effect. The fglprofile in version 3 must be case insensitive. For this entry it is not the case Bug Number : 12059 Full Description : control-L can be used in the source file for help messages with informix to customize the page breaks. With 4js, this doesn't work ! Bug Number : 13016 Full Description : Setting FGLPROFILE entries "key..order" has no more effect on the order of key buttons in the control frame. Bug Number : 13017 Full Description : Previous version of fglform did support both "COMMENT" and "COMMENTS" attribute names in a form field definition. Bug Number : 9139 Full Description : Unknown color name "sco background" when trying to start the fglx11d deamon on SCO OPENSERVER 5.05 Bug Number : 4011 Full description : When you have INPUT statement, you should have the same number of variables than fields. When the number of variables and fields are different INFORMIX p code compiler stops with an error: The number of input variables does not match the number of form fields in the screen list. see error: -4308 With the Four J's p code error comes at runtime Bug Number : 7239 Full description : You cannot write a single backslash in a channel. If you write one, you get nothing, but if you write two backslashes, you get two backslashes... If you write \n, you get one backslash and a CR. Bug Number : 7265 Full description : Using the command update with a table which is created inside the program ( not declared in the schema file ) gives an error by compilation ex: update sometable set (a,b) = x.* error : fglcomp: The symbol "(null)" is not the name of a table in the specified database Bug Number : 7308 Full description : the instruction : DATABASE "stores" is not accepted by fglform. form4gl version 6.xx accepts it Bug Number : 7325A Full description : By an input array with lines longer as the screen, (set of horizontal scroll), when it has to scroll by inserting characters, the current character is under the vertical scrollbar ( so not visible ) Bug Number : 7335 Full description : with FGLSERVER="ip something" ( a wrong value beginning with the ip address of the client ), running an application on graphical mode gives a wrong message : error -6018: cannot access internal data file. Bug Number : 8106 Full description : The last line of the screen section of the form must be }, otherwise it is not compiled or dumps core on linux. i.e. : myField [ ]} -> does not work myField [ ] } -> does work Bug Number : 9032 Full description : On use of PICTURE="4XXX", in ascii mode the 4 is not displayed Bug Number : 9053 / 113917 Full description : The new column types from system tables from universal server are not known. It gives at compile time error : INTERNAL ERROR u_dtbase.cpp(187) Bug Number : 9095 Full description : If a function is defined in a 42x library file, the compiler doesn't warn if this function is also defined in the main 4gl file. Bug Number : 9120 / 103874 Full description : The commands EXTEND() gives a wrong result. It gives an empty result when the runner is linked to GLS libraries, "01/01/0000" when it is linked with ASCII libraries. That's why the command EXTEND() + UNIT gives a wrong result. Bug Number : 9121 / 103874 Full description : With I4GL at runtime the computation of EXTEND() + gives a non blocking error message -1260 and set the result value to NULL. With F4GL the program is stopped and a -1260 is reported. Bug Number : 9144 / 115804 Full description : In after group of with a percent function a report error is generated with a message : Internal error in the runtime library file r_report.cpp(334) or Internal error in runtime library file r_report.c(450) Bug Number : 9164 / 119699 Full description : If UMASK is set to 000, a report generates files with 0644 permissions, instead 0666. Bug Number : 11015 Full description : With a variable VAR defined as INTERVAL HOUR TO MINUTE, you cannot use the syntax LET VAR = - VAR. With I4GL, it works. Bug Number : 11037 Full description : When running a second 4gl program inside another one, if you call the function fglwinbutton the wanted window is not displayed. Bug Number : 12043 Full description : The NULL keyword overrides the NOT NULL specification in the database when used with the INCLUDE attribute in a form. Example: ftab=tab.col,include=(NULL,1,) : If tab.col is NOT NULL, the INPUT should not accept a NULL value to be entered. Bug Number : 12046 Full description : WARNING ! ONLY IN WYSE 60 in ASCII modus !!! to clear the end of line informix uses ce=\Et whereas 4js uses space and tabs - this gives dummy characters at end of lines. Bug Number : 12084 / 120331 Full description : popquote adds one extra blank character to the buffer. For example, poquote (str, len) should fill the buffer with len bytes, including the NULL termination character. This means that strlen(str) should return len-1. Bug Number : 12091 Full description : If "c" is a char and "d" a decimal doing "d = c / 100" sets "d" to "0.0" informix 4GL sets d to NULL instead. Bug Number : 14001 / 102562 Full description : Field attributes defined with the UPSCOL utility are not used by the fglform compiler. Both compilation and runtime errors should occur according to the UPSCOL attributes. For example, using an alphanumeric DEFAULT value for a numeric field should give a compilation error. Leaving the field blank during an input as an INCLUDE attribute is defined should raise a message at runtime. Bug Number : 14011 / 121208 Full description : To have Hot key in your menu, you can use this : command key("k") "Menu" or command "Menu" .... but with 4js Only the second expression works by pressing "m" but not the first with "k". ============================================================ VIII. KNOWN ISSUES AND LIMITATIONS Interpretation of Environment Variables on Windows NT for GLS Interpretation of some environment variables on Windows NT has changed. Several environment variables cannot be retrieved from fglprofile by GLS-enabled runners on Windows NT. This is caused by the Informix GLS version 3.0 API functions and the Dynamic 4GL internal initialization function. The following environment variables are affected: - DBDATE - DB_LOCALE - DBCENTURY - DBMONEY - DBFORMAT - CLIENT_LOCALE - INFORMIXDIR - SERVER_LOCALE To work around this, set these environment variables directly in the environment using the command 'set', instead of setting those variables in the fglprofile file. For example: C:\> set INFORMIXDIR=C:\informix C:\> set DBDATE=DMY4/ If you are not using a GLS-enabled runner, you can safely set these variables (except for CLIENT_LOCALE) in fglprofile. ============================================================