Bugs fixed¶
General Notes¶
A program that is playing a sound file should stop the sound before exiting, otherwise the system may not close the program for several minutes.
SCULPTOR 6.3.10¶
Fix in KfLibDNet library the use of index only files when using the USE_LOCAL_DOT_D Option.
Fix a rare kfserver hang when a client connection to kfserver may leave the server unaccessible when clossing the socket in a special way on the first sent packet.
Fix a GPF in prompt command with a long packet text field.
- Fix regression issue in 6.3.9 that stopped jpeg images being shown and
allow jpeg and tiff images on buttons and table heading images.
Fix servmgr to start in correct directory when local SCULPTOR environment variable is not same as system SCULPTOR variable.
SCULPTOR 6.3.9¶
Fix a problem with the dialog command that prevented the cancelation of the dialog using the ESC key when there was a non editable cancel button defined in the dialog window.
Fix the Ctrl-C & Ctrl-V standard clipboard behaviour in number textboxes.
Fix a Sc620 change where functions were returning a field value rather than returning the field reference (for global fields). Breaking some programs that used that field reference (like setting a pointer to point the field).
SCULPTOR 6.3.8¶
Fix a GPF caused when increasing the max_line in a table with checkboxes.
Fix a table memory leak in the rare case when increasing the max_line value in a table makes the horizontal scroll appear and reduces the rows_visible by one.
Fix DPI scaling issue on Windows 10 & 11.
Fix incorrect rubber band rectangle in spd.
SCULPTOR 6.3.7¶
Fix wrong spd:doc:spd </020_programs/010_creating/spd/spd_intro> selection rectangle when used in a DPI scaled display different from 100% since Windows 10 Version 1607.
Fix write_json_values of an empty uninitialised alpha field.
Modified socket error handling in the character mode interpreters (sagec and srepc) to trap some rare network errors.
Fix bug in socket code handling the SIGPIPE interrupt on kfserver.
SCULPTOR 6.3.6¶
Honour the autoredim field flag missing in get_cookie_names() as specified in the help.
Fix mangled backgound when editing menus in spd.
Fix GPF in spd menu editor dialog.
Fix an error that prevents sys.ServerRetries to be changed.
Fix some refresh issues in the Sculptor server manager.
The service management functions were not working correctly on 64-bit platforms, This has been fixed. Programs that use these functions must ensure that fields used to store service handles are declared as i8. See open_scmanager(), open_service(), create_service() and related.
Fix setlocale() that did not honour the decimal point or the group digit in some cases.
Fix the setlocale() category parameter on Linux/Unix, depending on the the category it was not working correctly.
SCULPTOR 6.3.5¶
Fix a bug in spd that caused an assert error for programs with menus.
Set correct permissions on %PROGRAMDATA%Sculptor directory that sometimes prevented log files being created or updated.
Fix the file position when reading a UNIX EOL file from Windows using the get # and fgets commands.
Workaround a bug introduced in a Windows update that caused the printing of an image to fail.
SCULPTOR 6.3.4¶
Fix the client cache service when used with file driven tables.
Fix occasional GPF when closing a program with a client cache.
Fixed incorrect output from “pdes -r” when the filename contained a directory.
Fix incorrect I/O error numbers in Sculptor log files.
A SIGPIPE interrupt received by kfserver (caused by writing to a socket that had been closed on the client) no longer terminates kfserver and instead just closes the thread that was servicing the client.
Fixed an issue in read_xml_values() that prevented an XML file being correctly parsed when it referenced a validation schema in the form of a DTD file (Document Type Definition).
Fix error opening a file that has an invalid shared client cache (caused by file corruption or by reformatting the original file).
Fix nph-srep behaviour when no libicu library is available.
Resize a Listbox after a program changes the number of rows.
Fixed the expiry date format in scconfig (Windows version).
Fixed a bug in scc that prevented it displaying more missing symbols after finding the first one.
Fixed a bug that caused a table to display a hidden column when an adjacent column was resized.
SCULPTOR 6.3.3¶
The behaviour of Wine version 5 has changed and in some situations this breaks the Wine supplied script that starts sagewc/ srepwc on Linux. We have reported this as a bug in Wine but it may not get fixed. Sculptor 6.3.3 has a modified script to fix this.
A bug has been fixed in kfserver/kfservnt that could cause it to crash if an interrupt was received while it was reading or writing a client socket.
SCULPTOR 6.3.2¶
Fixed a scc GPF when compiling a fprintf command with a specific syntax error.
Fixed the use of Sculptor as an ODBC client using SQL_C_NUMERIC, SQL_C_BIGINT & SQL_C_BIGUINT ODBC C types with the FoxPro ODBC driver (and other ODBC 2.0 drivers). Afects sagewc, srepwc and kfserver/kfservnt programs.
SCULPTOR 6.3.1¶
Fixed a GPF in sendmail() when no To, Cc or Bcc is provided.
Fixed some cases where get_web_content() was returning WWW_ERR_NO_CONTENT while there was content.
If an insert fails when a record is locked, keep the lock, reverting to the behaviour in 6.0 and all earlier releases.
Fixed wrong return value when using the execute() function with a non-existing command.
SCULPTOR 6.3.0¶
Modified spd to detect the
!compat fontfix
clause. So that the “-f” flag is no longer needed.spd has been fixed to prevent the reordering of a control when using the edit window to make modifications.
Fixed a bug afecting the SQL engine that returned no rows when optimising a query with alpha fields keys prior a date field key that is filtered in the WHERE clause with a IS NOT NULL clause while the alpha fields are also set with a = clause.
Fixed the use of Sculptor as an ODBC client using the FoxPro ODBC driver (and other ODBC 2.0 drivers). Affects sagewc, srepwc and kfserver/kfservnt programs.
Fix sys.LinesLeft calculation when changing sys.PageLength when !compat lineleft was 0 or greater than 5.
Fix a bug when table display_object is a non-array !record with non-array fields (bug introduced in version 6.2.2)
SCULPTOR 6.2.4¶
Fixed the use of Sculptor as an ODBC client using SQL_C_NUMERIC, SQL_C_BIGINT & SQL_C_BIGUINT ODBC C types with the FoxPro ODBC driver (and other ODBC 2.0 drivers). Afects sagewc, srepwc and kfserver/kfservnt programs.
A bug has been fixed in kfserver/kfservnt that could cause it to crash if an interrupt was received while it was reading or writing a client socket.
Fix the client cache service when used with file driven tables.
Fix occasional GPF when closing a program with a client cache.
Fix incorrect I/O error numbers in Sculptor log files.
A SIGPIPE interrupt received by kfserver (caused by writing to a socket that had been closed on the client) no longer terminates kfserver and instead just closes the thread that was servicing the client.
Fixed an issue in read_xml_values() that prevented an XML file being correctly parsed when it referenced a validation schema in the form of a DTD file (Document Type Definition).
Fix error opening a file that has an invalid shared client cache (caused by file corruption or by reformatting the original file).
Fix nph-srep behaviour when no libicu library is available.
Resize a Listbox after a program changes the number of rows.
Fixed the expiry date format in scconfig (Windows version).
Fixed a bug in scc that prevented it displaying more missing symbols after finding the first one.
Fixed a bug that caused a table to display a hidden column when an adjacent column was resized.
SCULPTOR 6.2.3¶
Modified spd to detect the
!compat fontfix
clause. So that the “-f” flag is no longer needed.spd has been fixed to prevent the reordering of a control when using the edit window to make modifications.
Fixed a bug afecting the SQL engine that returned no rows when optimising a query with alpha fields keys prior a date field key that is filtered in the WHERE clause with a IS NOT NULL clause while the alpha fields are also set with a = clause.
Fixed the use of Sculptor as an ODBC client using the FoxPro ODBC driver (and other ODBC 2.0 drivers). Affects sagewc, srepwc and kfserver/kfservnt programs.
Fix sys.LinesLeft calculation when changing sys.PageLength when !compat lineleft was 0 or greater than 5.
Fix a bug when table display_object is a non-array !record with non-array fields (bug introduced in version 6.2.2)
Fix a GPF in sendmail() when no To, Cc or Bcc is provided.
If an insert fails when a record is locked, keep the lock, reverting to the behaviour in 6.0 and all earlier releases.
Fixed wrong return value when using the execute() function with a non-existing command.
SCULPTOR 6.2.2¶
Sculptor ODBC driver (ScODBC) now returns the proper precision for n4 and n8 Sculptor data types as SQL_NUMERIC, preventing errors when the field contains high values.
Remove unused
func
reserved word.Make internal timer code use 64-bit userdata in the 64-bit Sculptor version for pointers. This solves a kfclientcache problem with autorefresh.
Fixed the use of edit tables with a
!record
array as the source object.
SCULPTOR 6.2.0¶
The client name passed to the server by a client is now in the format username@hostname instead of just hostname. This prevents user licensing being bypassed on systems that use terminal services.
SCULPTOR 6.1.8¶
Fixed the use of Sculptor as an ODBC client using the FoxPro ODBC driver (and other ODBC 2.0 drivers). Afects sagewc, srepwc and kfserver/kfservnt programs.
Fix sys.LinesLeft calculation when changing sys.PageLength when !compat lineleft was 0 or greater than 5.
Fix a GPF in sendmail() when no To, Cc or Bcc is provided.
If an insert fails when a record is locked, keep the lock, reverting to the behaviour in 6.0 and all earlier releases.
SCULPTOR 6.1.7¶
Sculptor ODBC driver (ScODBC) now returns the proper precision for n4 and n8 Sculptor data types as SQL_NUMERIC. Preventing errors when the field contained high values.
Fixed a bug afecting the SQL engine that returned no rows when optimising a query with alpha fields keys prior a date field key that is filtered in the WHERE clause with a IS NOT NULL clause while the alpha fields are also set with a = clause.
SCULPTOR 6.1.6¶
Fix a very occasional crash in free format textboxes that occurred on a small number of systems.
SCULPTOR 6.1.5¶
Honour WS_CLICKONLY style for table cells.
Fix some return code errors from background processes.
SCULPTOR 6.1.4¶
Work around Windows working directory issue so that scc and spd work with “Open with”.
Starting with the release dated 10 March 2016, listbutton and listedit controls in table cells behave differently in programs compiled with the new version of scc. Previously, all blank rows in the cell’s list_field were ignored. Now, the first row in the cell is allowed to be blank. This is almost certainly the required behaviour. The previous behaviour can be forced in programs compiled with the new version of scc by including the statement:
!compat blanklistcell=0
Fix memory corruption in ODBC driver when sql search text contains character codes above 127.
Fix buffer overflow in array_to_text() and text_to_array().
SCULPTOR 6.1.3¶
Fix bugs in Sculptor ODBC driver when used from Microsoft Access.
SCULPTOR 6.1.2¶
SCULPTOR 6.1.1¶
Code improvements made after checking with an analysis tool.
Escape special characters in XML.
Fix disappearing control issue in tables caused by keystroke events.
SCULPTOR 6.1.0¶
If an ODBC row name contains a character that is not valid in a Sculptor field name, it is now mapped to an underscore. Example: Row name NS/EW is mapped to NS_EW.
SCULPTOR 6.0.10¶
Sculptor ODBC driver (ScODBC) now returns the proper precision for n4 and n8 Sculptor data types as SQL_NUMERIC. Preventing errors when the field contained high values.
Fixed a bug afecting the SQL engine that returned no rows when optimising a query with alpha fields keys prior a date field key that is filtered in the WHERE clause with a IS NOT NULL clause while the alpha fields are also set with a = clause.
Fixed the use of Sculptor as an ODBC client using the FoxPro ODBC driver (and other ODBC 2.0 drivers). Afects sagewc, srepwc and kfserver/kfservnt programs.
SCULPTOR 6.1.0 and SCULPTOR 6.0.9¶
The group field level property of checkboxes and radio buttons is now working. This documented feature had not been implemented.
Fix repaint bug when table using EM_AUTOCR scrolls down.
Fix crash caused by sys.FreeTextInputBuf in programs that have not been recompiled.
Pathnames in .bat files now quoted to support embedded spaces.
SCULPTOR 6.1.0, SCULPTOR 6.0.8 and SCULPTOR 5.9.8¶
set_selected() on tables using an array source object, mode EM_MULTIPLE and with another mode flag set failed to select all lines.
Sculptor’s XML functions were not working on Unix and Linux. This has been fixed on most platforms, though some old systems may still be unable to support these functions.
Modify cvteol not to convert filenames to lower case on Windows.
SCULPTOR 5.9.9¶
The client name passed to the server by a client is now in the format username@hostname instead of just hostname. This prevents user licensing being bypassed by systems that use terminal services.
Fix disappearing control issue in tables caused by keystroke events.
DOS version uses SCTERM before SCTERMW and defaults to dosbox if neither is set or if SCTERMW is set to “mswin”.
SCULPTOR 6.0.8 and SCULPTOR 5.9.8¶
set_selected() on tables using an array source object, mode EM_MULTIPLE and with another mode flag set failed to select all lines.
Sculptor’s XML functions were not working on Unix and Linux. This has been fixed on most platforms, though some old systems may still be unable to support these functions.
Modify cvteol not to convert filenames to lower case on Windows.
SCULPTOR 6.0.6 and 5.9.7¶
Prevent kfserver hanging when a new client connects and then fails to send a packet containing client information.
Fix bug converting non-null terminated string field to numeric in SQL.
SCULPTOR 6.0.5 and SCULPTOR 5.9.6¶
Fix crash in kfserver when faulty network hardware terminates a connection before the initial Sculptor handshake has completed. With this fix, a network error such as 10054 will be seen on the client.
Frequent network errors on the same computer suggest a faulty network adapter, Frequent network errors on different computers suggest a faulty switch or router, faulty wiring or old cables that are not suitable for use with modern gigabit network adapters.
SCULPTOR 6.0.2c¶
Fixed bugs in sql and ODBC driver.
Added optimisation algorithms to sql to improve performance.
SCULPTOR 6.0.2b¶
Fixed minor bugs in sql and ODBC driver.
SCULPTOR 6.0.2a¶
Fixed minor bugs in sql and ODBC driver.
Fix bug that crashed kfserver when running in lock debugging mode.
SCULPTOR 6.0.2¶
Fixes issues that occur switching between Sculptor 5 and Sculptor 6 on the same system.
Improvements to servmgr including better error messages.
Fix graphics issues on some ansi terminals.
Fix crash in kfserver caused by sql optimisation code error.
SCULPTOR 6.0.1¶
Minor changes to the Sculptor support programs in the sculptor/sql and sculptor/security directories.
The terminal parameter files on some Unix and Linux platforms have been improved and the default linux.s file now uses line graphics characters. See the comment at the start of this file if graphics don’t display correctly on your system.
Improved conversion rules when comparing fields of different types in SQL.
SCULPTOR 5.9.5¶
Fixes issues that occur switching between Sculptor 5 and Sculptor 6 on the same system.
Improvements to servmgr including better error messages.
Fix graphics issues on some ansi terminals.
SCULPTOR 5.9.4¶
kfri did not detect and fix duplicate records in the data file. The rebuilt index was created damaged in a way not detected by kfcheck.
SCULPTOR 5.9.3a¶
Fixed memory corruption when a pointer field with a null value was used for the file id in an openfile command.
SCULPTOR 5.9.3¶
A menu in a child window sometimes had to be clicked twice to open.
SCULPTOR 5.9.2¶
The COPY_TIME option in the copyfile() function did not work when a file was copied from client to server.
Fix for decimal point and thousands separator character on Unix and Linux platforms if the locale defines these for money formats but not ordinary numbers.
The count of locks shown in kfserver was sometimes wrong when a program updated an index only file.
Clicking on a window menu item sometimes caused a GPF. This bug is only in earlier 5.9 versions, not in 5.8 and before.
SCULPTOR 5.9.1c¶
The exitcode() function was returning the wrong value for a process executed on a server.
SCULPTOR 5.9.1b¶
Fix occasional socket error 10054 in kfserver/kfservnt on Windows. This bug is not in the Unix version of kfserver.
On Windows Vista and Windows 7, the PP_COPIES print property was always returned as 1. This was caused by a change in the Windows API. Sculptor now returns the correct value on all versions of Windows.
SCULPTOR 5.9.1¶
If run() was used to open a Word document and the calling program exited immediately, the document opened if Word was already running, otherwise Word started but with a blank document. This appears to be a Windows API bug but it has been possible to work round it.
Some issues with multi-row selection in tables have been fixed and the rules changed to conform with common practice.
Tables whose source object is a function did not always save a changed checkbox value when the table was scrolled.
A shadow was left when a graphic was hidden if the window background colour had been changed.
Some bugs in the TAPI functions have been fixed and the interface has been improved. See see new for details.
When a file is opened from the Windows context menu using the default application, the program starts in the file’s home directory, as expected, However, if “open with” is selected, the program starts in a Windows system directory. This seems to make no sense but no doubt Microsoft have good reason. This difference affected scc and spd. The anomaly has now been fixed.
The COPY_MAKEPATH option in the copyfile() function did not work when a file was copied from client to server. This fix applies only to files whose destination pathname references a Sculptor server. The copyfile() function supports only simple copies with UNC pathnames.
Note: The COPY_TIME option does not work when the destination file is on a server. This will be fixed in Sculptor 5.9.2.
SCULPTOR 5.9.0¶
Fix GPF in table heading tooltip code introduced in release 5.8.9.
SCULPTOR 5.8.9¶
kfservnt.exe now honours its command line arguments.
The copyfile() function in COPY_TEXT mode no longer treats a 0xff character as end of file.
SCULPTOR 5.8.8a¶
Fix memory pool corruption in kfserver and kfservnt.
SCULPTOR 5.8.8¶
Fixed bug when StartTimer() was called with no interval argument. This now defaults to the interval specified in the CreateTimer() call.
The account management in the server manager did not work correctly on some platforms.
On some Windows platforms that did not have .NET installed, Sculptor failed to run with the error message:
“The application failed to initialize properly (0xc0150002)”
The version of Sculptor 5.8.8 dated 1 May 2009 includes a later version of the library xerces-c_2_8.dll that fixes this issue.
SCULPTOR 5.8.7¶
Fixed issues resizing windows in programs that used a character grid.
On some versions of Unix, scc core dumped when trying to print a warning or error message.
SCULPTOR 5.8.6¶
Fixed bug that caused an occasional socket error when using kfserver on Unix and Linux.
On some systems, a window in a Sculptor program very occasionally went completely blank. This was a refresh timing bug that was impossible to reproduce but is now believed to be fixed.
SCULPTOR 5.8.4¶
Fixed bugs connected with service management in the Sculptor server manager.
A bug that caused an excessive number of SQL Server processes to be running when using the mirror function and in some circumstances when using ODBC directly has been fixed.
An alternative Microsoft function has been used to manage new client connections in kfserver/kfservnt. The Windows API function previously used is now known to have a design fault that in rare circumstances could cause kfserver/kfservnt to crash.
SCULPTOR 5.8.2¶
It was possible to miss an event if the program woke from a sleep within a few microseconds of the event.
Fixed minor issues with new server control program.
kfserver and kfservnt occasionally crashed when manually ending a client connection.
SCULPTOR 5.8.1¶
Fixed bug with filenames that contained 2 or more consecutive spaces.
If two or more scc processes were running concurrently on Windows, the same temporary filename could be used by different instances.
In the command:
run report to "PRINTER:name:9..."
where 9 is any digit, “name:9…” is now taken to be a printer name. This is for compatibility with Citrix thin client printers.
Note that in the command:
run report to "PRINTER:name:x..."
where x is any non-digit, “x…” is still taken to be a filename and the output is written to the file in a format suitable for sending to the printer “name”.
The ESC (cancel) key no longer terminates a prompt dialog.
SCULPTOR 5.8.0¶
Table cell events now honour the event_enable mask. This affects the events EV_FOCUS_CELL, EV_NOFOCUS_CELL and EV_VALIDATE (for table cells).
Programs compiled with scc version 5.7.x or earlier will work as before.
Programs compiled with scc version 5.8.0 or later must include sculptor.h dated 1 February 2007 or later and a table that has an event_enable clause must specify EV_DEFAULT or all required events individually.
The put # command now outputs binary data correctly for sequential files opened with kfserver. Both client and server must be running Sculptor 5.8 or later.
SCULPTOR 5.7.9c¶
The copyfile() function in COPY_TEXT mode no longer treats a 0xff character as end of file.
SCULPTOR 5.7.9b¶
$ in filenames no longer expands environment variable if at end of name or followed by a punctuation character.
SCULPTOR 5.7.9¶
Fix memory leakage in logout_server() function.
Fix loop with textbox that has just been destroyed.
execute() was returning -1 sometimes instead of a valid handle.
SCULPTOR 5.7.8¶
Added a Windows API screen flush operation after updating a window to prevent window repainting delays.
SCULPTOR 5.7.6¶
If two or more scc processes were running concurrently on Windows, the same temporary filename could be used by different instances.
In the command
run report to "PRINTER:name:9..."
where 9 is any digit, “name:9…” is now taken to be a printer name. This is for compatibility with Citrix thin client printers.
Note that in the command
run report to "PRINTER:name:x..."
where x is any non-digit, “x…” is still taken to be a filename and the output is written to the file in a format suitable for sending to the printer “name”.
SCULPTOR 5.7.5¶
Fixed bug with filenames that contained 2 or more consecutive spaces.
SCULPTOR 5.7.4¶
Fixed bug in SQL databases if data dictionary contained subscripted fields and some other field names contained an underscore.
Starting with Sculptor 5.7.2, the sleep command was consuming extra cpu time. This has been fixed.
SCULPTOR 5.7.3¶
The copyfile() function no longer fails if the option COPY_MAKEPATH is specified and the directory already exists.
SCULPTOR 5.7.2¶
The put # command now outputs binary data correctly for files opened locally but not those opened with kfserver. A server fix will be made in release 5.8.
Textboxes in parent windows were not fully disabled during a modal dialog in a child window.
SCULPTOR 5.7.1¶
kfclient and kfserver entries in the services file were not parsed correctly. This caused a problem on Fedora because the kfserver port has been registered with IANA and is a standard entry in the Fedora release. New releaaes of other versions of Unix and Linux could ship with this entry. See compat.txt and issues.txt for information about Sculptor client/server compatibility and for a work around for earlier releases of Sculptor.
“open #channel filename update” now works correctly for ordinary text files. The file is opened for update and the file position is set to end of file as before, but now the seek # command can be used to set a different file position. Previously, seek # was ignored in update mode. “open #channel filename append” always writes to end of file and a seek # command is ignored.
Fixed GPF in spd when clicking a filename in the File Tree window.
Work round security issue in Windows Vista that prevented scc creating a temporary file.
The nap() function has been modified to prevent recursion.
The put # command now outputs binary data correctly for files opened locally but not those opened with kfserver. A server fix will be made in release 5.8.
SCULPTOR 5.7.0¶
Fix GPF in setprintxy().
The selected cell in a table is now preserved when the application loses and regains focus.
Cosmetic improvements for disabled image and coloured buttons. The new version of $SCULPTORtermmswin.s must be used.
Missing EV_SELECT event now sent when selecting but not highlighting a line in a table with style WS_CELL_SELECT_NO_HIGHLIGHT.
getstr() did not work with long text > 32767 characters.
When the mouse was over a button with a tooltip in the XP Theme, the button highlight did not appear.
Remove unnecessary horizontal scroll bar when table width defined.
Fix GPF in sql command with “in” clause.
Fix display errors with table checkboxes when table scrolled.
The Polygon(), PolyBezierTo and PolyLineTo() functions did not draw correctly if the “count” argument was less than the second dimension of the points array. This now works correctly in programs compiled with scc 5.7.0 RC3 or later. In the unlikely event that the old behaviour is required, add “!compat drawpoints=4” to the program or compile it with earlier an version of scc.
Allow text to be copied from textboxes with style WS_NOTABSTOP.
Work round display corruption when using Terminal Services.
To avoid excessive use of RAM, there are now two versions of ddeditor. The standard version edits data dictionaries with up to 150 fields and 30 indexes. The large version, ddeditor500, edits up to 500 fields and 50 indexes. If the standard version is called for a dictionary with too many fields or indexes, it calls the large version automatically. A more elegant solution to this issue will follow at a later date.
Sculptor’s ODBC interface has been modified to work correctly with MySQL and PostgreSQL but at the moment record locking does not work, so it is only safe to perform updates in single user mode. See the document “Sculptor with SQL Databases.doc” for more information and for hints on improving performance with SQL databases.
The start directory argument in the execute() function is now honoured on Unix and Linux.
A Sculptor client program that is executed on the same machine as kfserver does not count as a client for licence purposes but the test for this was not working when an entry in /etc/hosts specified the local machine name as an alias for localhost (127.0.0.1). This has been fixed even though it seems wrong for /etc/hosts to have this entry.
On Windows and some Unix platforms fixed a bug that prevented files being larger than 2Gb. In this release the limit on file size is 4Gb on operating systems that support files larger then 2Gb. The limit will be extended beyond 4Gb when Sculptor 5.8 is released.
A bug when creating files over 2Gb on platforms that support large files has been fixed. For more information see faq.txt.
SCULPTOR 5.6.3¶
When scdebug has focus, the program that is being debugged cannot repaint its windows. If any another window is moved over a window in the program being debugged, that window becomes corrupted. The debug version has been modified to repaint a corrupted window as soon as the program being debugged regains control. Previously, a window could remain corrupted for several further instruction steps.
The SQL database mirror feature has been enhanced. If a write command is executed for a record that exists in the Sculptor database but not in the SQL database, the record is now inserted into the SQL database instead of just generating an error message in the mirror log file. A warning message is still written to the log file.
spd was writing some parts of the program code with Unix end of line format instead of DOS/Windows format. The code then displayed corrupted in scdebug.
Some minor issues with tables have been fixed:
If EM_CELL_SELECT_NO_HIGHLIGHT is set, clicking in a field with EM_READONLY set, now selects the line.
A line was incorrectly shown as selected if a display command was executed inside a table validate function.
Fixed a GPF when loading a new jpg format.
Fix the gmt_std_format() function, which was producing corrupt text.
SCULPTOR 5.6.2¶
It is no longer possible to paste a value into a textbox with style WS_NOTABSTOP.
Fixed a bug that cause a checkbox in a table to change value when a dialog was started.
Returning CLOSE_DIALOG from a static text event now works.
Several minor errors fixed in spd.
If a file was closed inside a transaction, i.e. between begin() and commit() or rollback(), Sculptor did not close the file. This also happened if a file was reopened in a different mode. The result was that the system’s open file limit could be reached, especially on Unix. This bug has been fixed but programmers should be aware that files being updated should not be opened or closed during a transaction, otherwise a rollback() will be compromised. If the writelock command is used, it must also be called before starting a transaction. The corresponding unlock should be called after the transaction.
The exitcode() function slowed the system down when it was called with a non-zero wait time. The code has been modified to avoid this issue.
Size of execution stack increased to fix “Execution stack overflow” error.
In a program compiled with scc 5.6.2 RC2 or later, a modal dialog on a window (dialog window_id) excludes all child windows with style WS_OWNED from that dialog. This is correct behaviour and has been implemented as a bug fix. However, this change may break some applications. To avoid this change, add
!compat owned=5 (or any number < 6)
to programs before recompiling them with scc 5.6.2 RC2 or later.
In a program compiled with scc 5.6.2 RC2 or later, the EV_DRAG… events now return the X and Y coordinates in pixels if the program uses a pixel grid and in characters if the program uses a character grid. Previously, these coordinates were always returned in characters. This has been implemented as a bug fix. However, this change may break some applications. To avoid this change, add
!compat dragchar=5 (or any number < 6)
to programs before recompiling them with scc 5.6.2 RC2 or later.
SCULPTOR 5.6.1¶
The assignment
rec_id1[idx1] = rec_id2[idx2]
copied the entire record instead of just the indexed field when one of the records was declared as a copy of the other:
!record rec_id2 = rec_id1
The assignment worked correctly when each record was separately declared.
SCULPTOR 5.6.0¶
textlength() failed when the text argument was an a255 field.
Opening a table in create mode in a SQL database failed if the table name was a SQL reserved word and the table already existed.
A prompt, error or info command inside an event function sometimes caused the event return value to be ignored.
If a numeric textbox in an editable table has cell_style = WS_LJD, user input now starts on the left instead of the right.
SCULPTOR 5.5.17¶
Size of execution stack increased to fix “Execution stack overflow” error.
SCULPTOR 5.5.16¶
On DOS/Windows, a linefeed in a printer control sequence in a “standard” type printer parameter file was sometimes incorrectly output as carriage return + linefeed. This bug did not affect a “windows” type printer parameter file.
SCULPTOR 5.5.15¶
If a control in a scrolled window was moved, its new position was wrong.
Updating more than 200 different records after calling begin() could cause kfserver to hang or fail.
SCULPTOR 5.5.14¶
Fix GPF in OLE when using “by reference” parameters.
Fix GPF when clicking on a hyperlink OLE control.
Removed error message if default icon in terminal parameter file is missing. Silently use standard icon.
SCULPTOR 5.5.12¶
Fix memory leak in DDE interface.
Fix dialog loop in nested tab controls.
Fix ActiveX memory leak when using a socket interface control.
If a graphics rectangle in a scrollable window was moved, its new position was incorrect.
SCULPTOR 5.5.11¶
Fixed bug with some OLE controls that do not seem to process a “by reference” function argument correctly.
Fixed bug with coloured tab windows that could cause various strange effects.
SCULPTOR 5.5.10¶
The logout_server() function now closes all Sculptor keyed files and all sequential files currently open on the server, otherwise a subsequent call to login_server() could cause the server to GPF.
Most OLE controls accept a function parameter by value or by reference but in a few cases a control will only accept a parameter by value. The symptom of this is that the control works when a constant is passed for the argument but not when a fieldname is passed. If possible, Sculptor will be modified to check the type that the control prefers. For the time being, the following code can be used to force Sculptor to send a parameter by value:
ole_id->”function”(textfield / “”) ole_id->”function”(numericfield + 0)
SCULPTOR 5.5.9¶
Fixed some issues with stopkfs and kfsmon on Unix. These programs will now stop a server child process that is not responding to a SIGTERM interrupt. SIGTERM is sent first so that the process will stop gracefully if possible and after a short delay, SIGKILL is sent to force the process to stop.
The logout_server() function no longer aborts the program if the client can no longer connect to the server. Instead, it just removes the connection on the client side.
The environment variable TRACE_NPH_SREP can be used as an alternative to TRACE_NPH-SREP because the “-” is not valid on some systems.
Fix OLE bug introduced in release 5.5.3.
SCULPTOR 5.5.8¶
Fix bug in text_to_array() and array_to_text(). These were only working correctly with an a1 field array.
Dividing an n4 field by zero was producing a non-zero result on some Unix systems. By convention Sculptor has always generated a zero result.
SCULPTOR 5.5.7¶
A timer event that returned 0 should have been ignored by an existing dialog but was causing strange affects.
SCULPTOR 5.5.6¶
Transparent colours did not work correctly when the display was set to 256 colours. There was also occasional, random corruption of the colour palette.
The getfield command was not setting sys.LastSeparator to CHAR_EOF at end of file.
scc no longer outputs a spurious warning message when a function name is assigned to a pointer or passed as an argument to a function.
SCULPTOR 5.5.5¶
Increased the height of the prompt window because the buttons were too close to the bottom, especially on Windows XP.
SCULPTOR 5.5.4¶
Fixed some minor display issues with the WS_THEMED style.
Improved keyboard navigation in tables.
spw no longer displays a menu with style WS_POPOP as a main menu.
SCULPTOR 5.5.3¶
If a window had a class name and a default icon was defined in the terminal parameter file, an “Operating system error 87” message was generated when the window was destroyed and recreated. Also fixed in Sculptor 5.4.8.
There was a memory leak when image buttons and graphic images were destroyed and recreated. Also fixed in Sculptor 5.4.8.
Fix bug in rollback() on Unix and Linux servers.
Some ActiveX controls did not work when .NET 1.1 was installed.
Fix occasional GPF in spw when loading a program.
SCULPTOR 5.5.2¶
Save edited cell value when table scrolled.
SCULPTOR 5.5.1¶
Fix GPF in DrawFormattedText() when text longer than 255 characters.
Fix loss of vertical scroll bar in tables when row deleted.
SCULPTOR 5.5.0¶
Accelerator keys did not work in menu items that followed a hidden item.
If the scroll bar was dragged to the start or end of a table whose source_object was a file and the file’s index was not balanced, the displayed rows were sometimes corrupted.
Selecting a large block of records using shift+click in a table whose source_object was a file sometimes caused the display to shift several rows when the mouse was released.
spw crashed if it found a comment or a !ifdef inside a !record. Note that although the crash has been fixed, spw does not support these features inside !record and removes the lines if it needs to update the file.
spw did not process !layout correctly.
When Sculptor updates a program file by downloading it from a server, it now sets the timestamp of the downloaded file to the time and date of the file on the server to avoid issues caused by wrong clock settings.
SCULPTOR 5.4.6¶
The value in a cell in an editable table was sometimes being cleared when the cell gained focus. This bug was introduced in Sculptor 5.4.
SCULPTOR 5.4.5¶
It was not possible to use an Access database whose pathname contained a meta character such as - or $.
SCULPTOR 5.4.4¶
kfserver or kfservnt failed to start after a reboot if there was an outstanding transaction and a file referenced in that transaction could not be opened because it was damaged or no longer existed.
SCULPTOR 5.4.3¶
The focus rectangle was not appearing on buttons in Windows XP when the system display setting “Hide underlined letters for keyboard navigation until I press the Alt key” was checked.
On Windows XP, the number of rows shown when list boxes and list buttons were opened was not always the specified number.
SCULPTOR 5.4.2¶
The mechanism that Sculptor uses to create temporary RTF files has been changed to avoid re-using the name of a recently deleted file as this can cause a problem with WordPad.
A client that is running on the same machine as kfserver/kfservnt no longer uses up a client license. This ensures that local processes can always connect to the server on their own machine.
A bug has been fixed in kfbuild and kfri that caused some secondary indexes to be damaged after being rebuilt.
descw occasionally wrote an incorrect .d file, causing a secondary index to be built incorrectly. This has been fixed and the utility programs kfbuild, kfri, kfcopy and reformat now automatically detect and repair the corruption.
A bug that stopped some OLE controls working on Windows 98 has been fixed.
SCULPTOR 5.4.1¶
Bug fixes to exec with stdin or stdout linked to a sequential file. This now works when executing a DOS command and no longer conflicts with some OLE controls.
Strange behaviour in programs that used Active X controls with tab windows has been fixed.
It was not possible to give focus to a control during an Active X event.
Captions were sometimes cleared when an error message was displayed.
kcopydir was folding all pathnames on DOS/Windows to lower case. This affected secondary indexes, which are case sensitive. It now preseves the existing case.
Typing Ctrl-Z now always restores the original content of a textbox.
fromname() was not working correctly with the fully qualified name of a control in a child window.
OLE events were not being processed when the program was already in an OLE event function.
Sculptor was resetting the focus to an OLE control when a child object of the control already had focus, causing some OLE control methods to fail.
Returning a local pointer field in an event function caused a spurious debug message if the pointer was set to an object_id.
Screen corruption occurred when the system ran out of paged memory. This was a particular issue on Citrix, where paged memory is in greater demand. Sculptor has been programmed to avoid this issue by using normal memory for some bitmaps.
The -n option in kcopydir did not work correctly. The fixed version is Release 1.2.
SCULPTOR 5.3.6 - 17 September 2003¶
Drag and select of a block of lines in a file-driven table with mode EM_MULTIPLE set did not work correctly. (Using click then shift+click worked okay.)
Some OLE controls generate an error popup when Sculptor calls a function to query their license status prior to sending a license string supplied by the license= clause in a Sculptor program. Sculptor does this because it is possible that the control is already licensed on the machine and sending a license string in that case might itself generate an error. A new style flag has been provided for use with OLE controls that generate this error:
style = WS_AUTOLICENSE
If this flag is set, Sculptor sends the license string to the control without checking. This avoids getting an error popup from the control.
SCULPTOR 5.3.5 - 3 September 2003¶
Single character textboxes did not always receive input on Windows XP.
SCULPTOR 5.3.4¶
Further minor bug fix to tab windows.
file_id->state did not get set to FOM_CLOSED when a file was closed.
SCULPTOR 5.3.3¶
Several bugs in tab windows that caused the wrong tab to be focused or the tab not to match the current tab window.
Active X bug that prevented clicking a button when the focus was on another button.
SCULPTOR 5.3.2¶
The copyfile() function set the destination file’s “last accessed time” to the source file’s “created time” when the COPY_TIME option was used.
Fixed error in spw.eng file that caused spw to crash when ? was typed in the Event Enable property.
An incompatibility between nph-srep and some new versions of IE6 and IIS has been fixed.
A bug that caused a file driven table to hang when the scroll bar was moved to the last page has been fixed. This only occurred when the index file was very unbalanced.
If the setfocus command was used to give focus to a control in a tab window that was not currently selected, the controls belonging to another tab were sometimes displayed. Also, the show command did not always display a tab window correctly.
SCULPTOR 5.3.1¶
The CLOSE_DIALOG and CANCEL_DIALOG return values did not work from a popup menu event function.
The y co-ordinate of a popup menu was incorrect if the program used a pixel grid.
Bug fixed that caused program to hang with some mouse wheels.
Some images were not being cached when loaded from kfserver. The caching algorithm has been improved to create sub-directories in SCULPTORTEMP that match the path to the original file on the server. This makes it safe to cache different files that have the same name.
Tables were scrolling slowly when the scroll bar was dragged. The effect was particularly noticeable with wide tables and in tables with a colour record. Also, moving the scroll bar very quickly sometimes corrupted the display. These bugs were related and have been fixed.
The first EV_SELECT_TAB event was sometimes not sent. This usually happened when one or more tabs had style WS_DISABLED.
In an editable table, TCT_DYNAMIC gave inconsistent results.
The scroll bar was sometimes sized incorrectly for a table whose source_object is a file.
Note that the syntax given in the manual for opening sockets with the open # command is incorrect. The correct syntax is:
open #channel, “[server]:<socket_no>” err=…
There is always a colon before the socket number but not after it.
SCULPTOR 5.3.0¶
The keystroke event was lost when it caused a table cell to lose focus and a dialog was executed in the EV_LOSE_FOCUS or EV_VALIDATE event.
Data was not formatted and events were missing when the user clicked between rows in a multi-row textbox.
The return statement in a validate function for an editable table did not set focus to the returned control.
When the setcursor() function is used to change the cursor, the new cursor now appears over controls and child windows as well as the specified window.
See the section Sculptor 5.1.5 below for retrospective fixes to Sculptor that were made after early releases of Sculptor 5.3.
Scrollbar no longer causes table width to shrink when width not specified.
Double validate removed and new table cell now created correctly when the info command is used in an event function.
ESC key now works after a validate function returns ERROR.
EV_GAIN_FOCUS event on a table now sent before EV_FOCUS_CELL.
nph-srep now encodes the # character in session ids, since this appears to have a special meaning on some platforms (e.g. Sun).
Textbox content was lost when maxline was changed for a table.
A bug that caused file driven tables to show the wrong selection state for some lines has been fixed. The bug usually appeared with large files.
The local time value returned by server_time() did not take daylight savings into account.
The return value from an EV_SELECT_TAB event was being ignored.
The wrong row and column were returned for tables after a backtab.
The focus line in an editable table was not always shown correctly.
There was an infinite loop after a table validation function returned error and an area outside the table was clicked.
The move command now works correctly with tables and spw no longer moves a table when it is first selected.
A table field that had focus was sometimes receiving a second gain focus event.
The style for a graphic (e.g. WS_DISABLED) is now taken into account when the graphic is created.
The EV_KEYSTROKE event for tables now receives five arguments only when the table has cell properties defined.
In some circumstances, two radio buttons in a group became selected.
The correct cell is now focused in an editable table that has a horizontal scroll bar.
Duplicate lines occasionally appeared in a table whose source object was a file.
The page up and page down keys did not always scroll a table correctly and page up was sometimes ignored.
The ++ and – operators now work on a single field as well as a field in an expression.
The wrong line number was sent to a table event function when the line clicked was greater than 65535.
Some click events were lost when the focus was in a menu.
We worked round an optimisation bug in the C compiler that caused the Sculptor clipboard functions to fail with images. This work round may have fixed other bugs.
Fixed alt key bug after textbox validation returned ERROR.
Don’t paint invisible graphic object when enabling and disabling it.
Allow !temp of type “o” (object) to be set to NULL.
Fix position bug with some OLE controls.
Show null terminated OLE error messages correctly.
Fix bug in close event during a modal dialog.
spw saved new programs as .f when a .r extension was selected in the save file dialog.
SCULPTOR 5.1.5¶
The writelock command did not allow a client to update the locked file when using kfserver/kfservnt.
Note that Sculptor manuals created prior to the end of May 2002 state that using writelock on a file that is open read only generates an riu trap. This is incorrect. The writelock has always been downgraded to a readlock.
SCULPTOR 5.1.4¶
A table with no heading line was scrolling one line more than its page size and the last line was not displayed.
The SetBrushType() and SetBrushColor() functions caused a GPF when the window_id was NULL.
SCULPTOR 5.1.3¶
The first row number was being passed to the EV_SELECT event for all selected rows when Shift+Click was used to select a block of rows in a table with mode EM_MULTIPLE.
On Unix platforms (except SCO Unix), kfserver was wasting CPU time waiting for data to arrive on a socket.
SCULPTOR 5.1.2¶
Some bug fixes in kfserver/kfservnt on Windows platforms when ending an idle client connection. Could cause error 10038 or a loop in the server that consumed CPU time.
Fix to servmgr to stop occasional hang after starting the service.
If the selected row in a table was scrolled out of view and the display command then used to update the table, the old values were still shown for the selected row when it was scrolled back into view.
The EV_KEYSTROKE event for a table sometimes returned the wrong row number.
SCULPTOR 5.1.1¶
Some bug fixes with selecting cells and rows in tables.
SCULPTOR 5.1.0¶
Fix to make it possible to connect to an ODBC database with UID and PWD settings for a restricted user. Note: This bug has also been fixed in version 4.3 but will not be fixed in version 5.0.
Fixed GPF in debug versions when the mouse was moved over a pointer variable that pointed to some object types.
Fixed colour bug when drawing graphics that was introduced with pixel positioning.
Fixed GPF in recent versions of spw that occurred only on Windows 98. GPF occurred when trying to select properties such as fonts.
Fixed GPF in spw when trying to run a program that did not exist.
Setting a colour for a button stopped justification flags working.
Pressing RETURN in a table sent two EV_DOUBLE_CLICK events.
EV_SELECT_TAB is no longer generated on an already selected tab window.
Giving focus to a textbox in a tab window did not select that Tab.
Removed spurious gain and lose focus events when ESC was pressed while typing in a textbox.
Tooltip was appearing on a graphic when sys.ToolTips was OFF.
The setenv() function did not work correctly on some platforms.
A graphic object now disables and enables correctly.
The table->width property is no longer limited to 255 characters.
A table row was being selected incorrectly following a button up event.
Some table events were sending row -1 instead of the correct row.
The text on a coloured button is now centred by default.
The WS_NOTABSTOP style now works properly with OLE controls.
Modal dialogs now work correctly with tab windows - it is no longer possible to tab out of the window.
The colour of each tab is now matched to its associated tab window.
Two bugs fixed in radio groups: Permanent loop if EV_BUTTON_UP event not enabled and confusion between radio groups if first button in a group destroyed.
F10 now selects the menu.
putenv did not always work correctly.
The EV_SELECT event was not being sent in list button and list edit controls if the user used the arrow keys to change selections when the list was open.
The “u” and “l” formats are now honoured in textbox controls in editable tables.
In the screen painter, the functions of the menu items Align->Horiz.Centre and Align->Vert.Centre were the wrong way round and have been swapped.
Tables whose source_object was a secondary index sometimes caused a GPF.
A bug that prevented the multi-currency feature working has been fixed.
SCULPTOR 5.0.1¶
Fixed bugs connected with converting to pixel positioning in spw.
Fixed default size for wintask when using pixel positioning.
Fixed validation and display bugs in editable tables.
Note: In order to fix a bug, it has been necessary to send an EV_UNSELALL event before the EV_SELECT event when a row is selected in a table. If the EV_UNSELALL event is trapped by a breakpoint in the debugger, the EV_SELECT event is not seen by the debugger. This happens because the debug window generates new events that interfere with the event sequence. Similar situations occur when debugging in Visual C++. In this case, the only solution is to avoid a breakpoint on the EV_UNSELALL event. As a general rule, put a breakpoints after testing for events that are of interest, instead of at the start of the event function.
It was not possible to select the last one or two lines in a source code window in the debugger - bug in Sculptor 5.0.0 only.
When a pixel grid is being used, the textlength() function now returns the length in pixels.
The “move cursor to x,y in window_id” command was causing a GPF in scc.
Editable tables were not being repainted when some changes were made.
SCULPTOR 5.0.0¶
Fixed bug in Sculptor 4.2 that prevented open # with sockets working correctly on Unix.
SCULPTOR 4.3 - 11 June 2001¶
Fix to make it possible to connect to an ODBC database with UID and PWD settings for a restricted user.
Changes to prevent an occasional deadlock when mixing locking and non-locking commands on the same table of a SQL database.
SCULPTOR 4.3 - 4 September 2000¶
Some bugs connected with multi-user concurrency have been fixed in the ODBC interface to SQL databases.
The ODBC code now allows a secondary index key field to be one of the main key fields. Previously this gave an ODBC error.
SCULPTOR 4.2 - 25 January 2003¶
Some programs containing OLE controls hung if a child program did not return after about 10 minutes.
SCULPTOR 4.2 - 9 December 2002¶
When Sculptor executes a child process on Windows, it waits for Windows to indicate that the child process has finished initialising, which generally means waiting until the child process starts a dialog or exits. To avoid undue delay, this wait has been removed for background child processes and limited to 50 seconds for foreground child processes.
SCULPTOR 4.2 - 18 September 2001¶
The date received from an OLE control was being incremented by one.
SCULPTOR 4.2 - 9 April 2001¶
Could not select a printer whose name was 32 or more characters long.
SCULPTOR 4.2 - 8 February 2001¶
The exec on server command could hang on some Unix platforms if the child process executed very quickly.
check returned nrs incorrectly with index only files.
open # with sockets did not work on Unix.
SCULPTOR 4.2 - 8 January 2001¶
Modified to accept Sculptor 5 activation keys containing code ‘I’.
SCULPTOR 4.2 - 20 December 2000¶
Fixed textboxes to display date fields right justified.
Ctrl+Tab no longer inserts a tab character in a textbox.
SCULPTOR 4.2 - 1 December 2000¶
Worked round a bug in the C library that very occasionally caused a GPF when processing text with a character code > 127, typically an accented character or a £ sign. Bug discovered with kfcheck but could affect any program.
If a table had an event function and the source object was a record with array fields, the up and down arrow keys did not scroll correctly at the end of a page. Scrolling with the mouse was okay.
Fixed bug when comparing !records > 64k in length.
keycode(0) hung when no control in the window had focus.
If an attempt was made to start kfserver on Unix when it was already running, the shared memory segment of the running server was released.
SCULPTOR 4.2 - 1 November 2000¶
Fixed a memory leak in the DrawImage() function.
Getting a writelock and then inserting a record sometimes damaged a file’s main index.
BUGS FIXED IN Sculptor 4.2 (12 October 2000)¶
enable and disable tabstop now works for listboxes, tables and radio buttons.
A spurious CLOSE_DIALOG event in tab windows has been removed.
A GPF when a label was longer than 127 characters has been fixed.
BUGS FIXED IN Sculptor 4.2 (25 September 2000)¶
Very occasionally, a small amount of memory was corrupted if an attempt to connect to a server was delayed for a few seconds. The effect of the corruption was random.
BUGS FIXED IN Sculptor 4.2 (12 September 2000)¶
Works round a bug in the C library that causes the conversion to upper or lower case of accented, European characters (code > 127) to fail randomly. This could cause kfbuild or kfri to rebuild a secondary index incorrectly or kfcheck to report a file damaged when it was okay. This only happened if a secondary index key field had the u+ or l+ flag set and an alpha key field contained accented characters, for example in a foreign name. A symptom of this bug is that kfcheck sometimes reports a secondary index damaged but kfcheck -l3 always reports it okay.
BUGS FIXED IN Sculptor 4.2 (11 August 2000)¶
Ignore “sfOnPaint: SelectObject returned NULL” error. Possible benign bug in Windows or a Windows driver.
BUGS FIXED IN Sculptor 4.2 (26 July 2000)¶
kfserver and kfservnt were truncating the last character of the client user name in the display panel. This bug was cosmetic.
The ODBC code has been modified to ignore a benign error code that might theoretically occur when using the Access database. If the error occurred the program would abort.
Debug vesion: A breakpoint that was set in an include file was sometimes ignored. An escaped newline in a !define statement caused breakpoints to be one line out. Setting the default font error in the terminal parameter file affected the display in the debugger.
BUGS FIXED IN Sculptor 4.2 (7 July 2000)¶
kfcheck no longer attempts to repair any damage that it detects since this is not always successful. The utility kfri should be used instead.
BUGS FIXED IN Sculptor 4.2 (30 June 2000)¶
Performance improvements in kfserver/kfservnt on Windows.
Bug in match on ODBC databases fixed.
The textlength() function sometimes returned an incorrect value.
The fe and nsf traps did not always work on Windows and the program aborted instead.
The Linux locking parameters are different to those on Unix and Windows, which made earlier versions of Sculptor on Linux incompatible with client programs connecting from Windows. This version of Sculptor maps the locking parameters to and from the Unix/Windows standard. Please make sure that this version of Sculptor is not mixed with any earlier version on Linux.
The new stdin and stdout clauses on the exec command did not work on Windows 2000.
When a client with a very long name host name connected to kfserver, each command was displayed as if it was a new connection, even though it was processed correctly as the same connection by kfserver. This bug was normally only seen with a connection made over the internet.
Fixed bug in ODBC connections to Oracle.
BUGS FIXED IN Sculptor 4.2 (31 May 2000)¶
scc was swapping enable_tabstop with disable_tabstop.
BUGS FIXED IN Sculptor 4.2 (30 May 2000)¶
The conversion algorithm that is used when a floating point value is assigned to a number field has been changed slightly to avoid an unexpected result with some values. For example, assigning the value 35.23 to an r8 field and then assigning the r8 field to an n4.2 field, stored the value 35.22 if sys.Rounding was OFF. This happened because 35.23 cannot be represented exactly in floating point format. Sculptor now adds a small rounding value before truncating a floating point number to an integer.
A spurious error that occurred when the event_enable property of a control was changed at run-time has been removed.
set_selected(listbox_id, …, FALSE) did not work with list buttons, list edits and listboxes (except mode EM_MULTIPLE).
EM_AUTOCR skipped a textbox that followed a single character textbox.
ODBC
Fixed differences in behaviour between Sculptor Keyed Files and SQL databases when using Sculptor file access commands. The behaviour of the match command after a next or prev command has interrupted a sequence of match commands on the same file is undefined. In this case, Sculptor and SQL may produce different results.
Creating a new table at run-time in Access sometimes failed.
dtoow did not convert Sculptor money type to SQL money type.
Large values in money fields caused a right truncation error.
Worked round SQL limitation if a null date value is used in a key.
Worked round SQL limitation if a main key field is also defined in a secondary index key.
Corrected bugs Sculptor’s ODBC link to Oracle.
All applications that use ODBC should be re-tested.
Fixed bug that caused a memory leak if the source object of a table was changed at run-time.
Fixed bug that caused two radio button groups to behave as a single group when buttons were changed using the mouse.
The function users(1) now returns the Sculptor serial number.
sys.CurrentControl and sys.PreviousControl are now set correctly when the tab key is used to move between textboxes.
Fixed bug in the dialog command when a window was disabled forcing focus to move to another window. This could cause a GPF.
The EM_NOCLEAR mode is now honoured when setfocus is used to move to a textbox.
When the setcursor command was used, the cursor did not actually change shape until the mouse was moved. This has been fixed.
Sculptor now ensures that a window’s view_width and view_height do not exceed its max_width and max_height if the maximum values are changed at run-time.
The style WS_NOTABSTOP now works correctly with radio buttons.
SQL databases do not fully support null date fields. In particular, a null date is not allowed in a key field. Sculptor has been coded to work round this problem by translating a null date in a key field to and from the date 1/1/1753, which is the earliest date supported by both Access and SQLServer. Null dates in non-key fields are stored as null values.
A bug existed in previous versions of the DOS32 keyed file utilities. These did not fold European language characters with codes above 127 between upper and lower case. The sagew and srepw interpreters worked correctly. As a result, kfcheck could report a secondary index damaged when it was actually okay. This happened if a mixed case data field contained a character code above 127 and the text was forced to upper or lower case in the secondary index key field. The old kfbuild and kfri utilities appeared to repair the damage but were actually making the index consistent with kfcheck.
As a result of this bug fix, if the new version of kfcheck reports an index damaged but the old version reports it okay, you should rebuild the index using the new version of kfbuild or kfri. This bug did not affect a file’s main index.
A bug that caused the write command to sometimes delete a record from an Access database has been fixed.
The ENTER and cursor keys now work correctly in free format textboxes. This bug was introduced in Sculptor 4.2. It was okay in Sculptor 4.1.
The scroll bar in tables now works when there are more than 32k rows.
Static text that has no pen or palette defined or which uses PEN_NORMAL with no defined palette, now has the standard Window background.
The debug version did not display the correct value of an indexed function argument
BUGS FIXED IN Sculptor 3.4d/4.1d (15 February 2000)¶
Modified functions that seek to a file position in an attempt to work round a possible bug on some DOS networks. Better error message if a seek function fails.
Fixed a bug in the Unix vesion of kfserver that could cause a connection to close if an unexpected interrupt was received.
BUGS FIXED IN Sculptor 3.4d/4.1d (24 January 2000)¶
The compiler did not allow text_id->xcreate and text_id->ycreate.
BUGS FIXED IN Sculptor 3.4d/4.1d (1 December 1999)¶
scc sometimes added a spurious argument to the command “checkevents”. Programs that use this command should be recompiled.
kfservnt and the Windows version of kfserver had a small memory leak. The memory was recovered if the server was stopped and restarted. To update kfserver and kfservnt to the new versions, proceed as follows:
If running kfserver, stop the program. Copy the new version of kfserver.exe into SCULPTORBIN. Restart kfserver if required.
If running kfservnt, start the Sculptor servmgr if it is not running. Stop the service and also stop servmgr. Copy the new versions of kfservnt.exe and servmgr.exe into SCULPTORBIN. Restart servmgr and the service if required.
The new programs show version 1.3.04 in the About box.
kfserver on Unix failed if the number of connected ports exceeded twice the number of licensed users.
A null key was sometimes inserted into a secondary index even though the “include nulls” flag was false.
BUGS FIXED IN Sculptor 3.4d/4.1d (11 November 1999)¶
Failed when using a printer whose name was longer than 32 characters.
BUGS FIXED IN Sculptor 3.4d/4.1d (27 October 1999)¶
The conversion algorithm that is used when a floating point value is assigned to a number field has been changed slightly to avoid an unexpected result with some values. For example, assigning the value 35.23 to an r8 field and then assigning the r8 field to an n4.2 field, stored the value 35.22 if sys.Rounding was OFF. This happened because 35.23 cannot be represented exactly in floating point format. Sculptor now adds a small rounding value before truncating a floating point number to an integer.
A spurious error that occurred when the event_enable property of a control was changed at run-time has been removed.
BUGS FIXED IN Sculptor 3.4d/4.1d (1 September 1999)¶
Some printers that worked okay with PrintManager failed to print if the command “run report … to Printer:PrinterName” was used.
BUGS FIXED IN Sculptor 3.4d/4.1d¶
An error that caused some OLE controls to GPF has been fixed.
The clause menu_id->accelerator = FKEY_ID now works.
A bug in textbox validation that stopped the user tabbing to the next control has been fixed.
Pressing a shifted function key caused a display problem in tables.
A delay in connecting to kfserver when a DHCP server was being used or when the hosts file did not contain the client’s IP address has been avoided. This was not a bug but a delay inside a network function. It has been possible to work round the problem.
BUGS FIXED IN Sculptor 3.4c/4.1c¶
The data dictionary editor descw could not create a new, secondary index that had more than one key field. This bug was introduced in 3.4a.
Screen corruption and/or a GPF occurred if a table source_object was a function that took a fairly long time to execute.
Some OLE controls caused a GPF because insufficient memory was being allocated for a property name. This affected sagew/srepw and spw.
sys.AutoFit = 1 worked in the printh command but not in the print command. It now works in both. See see new for full details.
The debug versions of sagew and srepw sometimes crashed if the mouse was moved over a ‘-’ in the source code window.
A resizable window that was minimized and restored became one row shorter and was restored to its original position instead of its most recent position.
Activating a button with a hotkey generated two click events if a table had focus.
The first time that a window was resized in the screen designer it jumped back to a smaller size.
BUGS FIXED IN Sculptor 3.4b/4.1b¶
The function fromname() now works correctly for all valid arguments.
If a report was run to a window, the window did not always repaint after being overlaid by another window and during an exec. This bug has been fixed.
clear table_id did not clear the values displayed in the table. This has been fixed and as a result the clearall command now also clears tables.
There is a small chance that some programs will clear the values in a table when they did not do so before. Although this is probably the required behaviour, existing programs should be checked especially if they use the clearall command. The clear command does not clear tables unless an explicit table_id is given.
Hotkeys on a tab window label now work when other controls have focus.
The function DrawIcon() failed in reports on some platforms. It now works on all platforms.
DDE: Disconnects conversations in client if server program exits.
Radio and checkbox buttons that have linked fields are now initialised correctly when created and are reset by the display command.
The command “display window_id” now displays controls in child windows except those with style WS_OWNED. This is logical because a non-owned, child window is constrained within its parent. This change fixes a display bug in tab controls.
BUGS FIXED IN Sculptor 3.4/4.1¶
Tables did not work if the source_object was a record with subscripted fields and there was no display_object nor if the display_object was also a record with subscripted fields.
The “Print mode” option in section 2 of a Sculptor printer parameter file can be set to S (Standard). This option is normally used on Unix and DOS systems but it can also be used with PrintManager, making it possible to use standard escape sequences and printer command languages such as PCL. This was working on Windows NT but not on Windows 95. It now works on both operating systems.
Some bugs that caused descw to crash or corrupt the .d file have been fixed.
Column headings and column data were not always correctly aligned when using the printh command with numeric fields. The effect was worse with proportional fonts. This has been fixed and text fields that have flags d, m or n are now treated as numeric by the printh command.
BUGS FIXED IN Sculptor 3.3/4.0¶
Bugs fixed relating to the appearance of a multi-row textbox when disabled and enabled.
Label moved to wrong place when moving a multi-row textbox.
Table with array source object did not display the last element.
Backspace did not restore the old value after a validate function returned an error. Note: Supported only in the input command.
Close and open menu commands caused controls in the window to be shifted up and down one line.
The screen designer did not allow for a menu in wintask if the program declared Sculptor 2, “*x=” style menus.
Gain and lose focus events are now sent for tab control windows.
Grouped controls in a tab control window did not work correctly.
If kfcheck found a secondary index to be damaged, further secondary indexes on the same file were incorrectly reported damaged.
The recovery program kfrecov now works and the DOS32 version can be used to maintain a duplicate database on Windows 95/NT as well as on Unix. The control program $SCULPTOR/recover/trcont.f is a converted Sculptor 2 program. A Sculptor 3 version will be available soon.
The command:
button_id->selected = TRUE | FALSE
now updates the value of a linked field and if the button is part of a radio group, clears the fields linked to other buttons in the group.
Changing sys.PageWidth did not always select the correct font. Also, it is no longer necessary to define the page widths in the printer parameter file in ascending order. Width[1] is the default when the program starts and can be reselected at any time by setting sys.PageWidth = 0. Setting another value selects the largest font whose width >= that value. When a proportional font is selected, its width is based on the ‘0’ character. In most proportional fonts, the digits have the same width.
The EV_SELECT event was not being sent when the mouse was clicked on a graphic image.
The value of sys.LocalTime did not take account of daylight savings. (sys.SysTime is always GMT).
set_selected(table_id, 0, FALSE | TRUE) now clears or sets all rows. It is only possible to set all rows if the table has mode EM_MULTIPLE.
On Unix, exec “-prog”, where prog is not valid, no longer hangs.
Clicking a list edit or list button to open the list did not always work first time.
Some small differences between spw and sagew in the width of multi-row textboxes with proportional fonts have been fixed in spw.
The tab and backtab keys did not work correctly in a textbox group which contained textboxes with differing numbers of rows.
A file opened on a remote server could not be closed and reopened on the client machine.