Changes since 2.0.6 1. src/slmath.c: if a double precision array was passed to nint, it was treated as a single precision one leading to a core dump. 2. src/sldisply.c: The Is_Fg_BGR variable was re-introduced and a typo affecting it was corrected. 3. src/slinclud.h: Do not include malloc.h on FreeBSD (Renato Botelho garga at freebsd, org). 4. doc/tm/cslang.tm: Changed a couple of occurances of "unsigned char" to "SLtype". (Doug Burke dburke at head, cfa, harvard, edu) 5. doc/tm/rtl/list.tm: Documentation changed to indicate that the third parameters to list_append/insert are optional. (Doug Burke). 6. src/slwcwidth.c: Added a new function to the API called SLwchar_set_wcwidth_flags. This may be used to force SLwchar_wcwidth to 1 for double width characters. Such a feature is sometimes needed for fixed fonts that treat single and double width characters the same. 7. slsh/lib/slshrl.sl: The readline-massage hook was interpreting lines beginning with a '.' as RPN. 8. slsh/lib/sldb*.sl: The debugger was not stopping upon errors generated by the deprecated function verror. 9. src/slparse.c: "++()" was flagged by the parser as an error, but no error message for it was being generated. 10. src/slang.h: #if HAVE_LONG_LONG changed to #ifdef HAVE_LONG_LONG 11. src/slsmg.c: Return right away if SLsmg_write_chars is told to write 0 characters. Also a bug fixed in the logic of this routine involving the test for overwriting the second half of a double width character. 12. src/slrline.c: Finished the UTF-8 support by the readline functions. 13. slsh/*.c: Added slsh_get/set_prompt_hook functions for setting of the slsh command-line prompt. (Douglas Burke) 14. src/sltoken.c: Added additional string representations for tokens so that some error messages will not appear to be so cryptic. 15. src/sltoken.c: _pSLparse_error: Use the line number of the input stream if the linenumber associated with a token is unknown. 16. src/slparse.c: Inline arrays and lists are allowed to have a trailing comma, e.g., [1,2,] is the same as [1,2]. 17. doc/tm/rtl/type.tm: typo in example for atof corrected (Doug Burke). 18. Improvements for building on DOS/Windows (Mike Noble): * The various mkfiles/makefile.all now include a clean: target * The top-level mkfiles directory now includes 3 new files: A build.sh script, which auto-generates the Makefiles (using mkmake) and commences a build, similar to the build.bat script which was already there (and which I tweaked slightly). Seed makefile.dos and makefile.sh scripts, which get copied to the root of the S-Lang distro when either build.sh or build.bat are run. This makes it easier to build everything at once, or clean, etc, from the top of the distro. * A few new paragraphs in INSTALL.pc * In the various mkfiles/makefile.all, "CFLAGS +=" changed to "CFLAGS =" to avoid nmake 1.5 problems. * Simplified the module build targets in modules/makefile.all, and made it much easier to add new modules in the future. 19. Added module support for cygwin. This involved a few minor changes to the Makefiles and aclocal.m4 (Mike Noble) 20. slsh/slsh.c: Brief copyright message displayed when started up in interactive mode. 21. src/slarray.c: Improved support for mixed-type inline arrays: NULLs supported (["foo", NULL]) where it makes sense, and type-promotion rules are used to determine the resulting type when concatenating mix-type arrays (["foo"], NULL, ["bar\0"]); 22. src/slrline.c: SLrline_close was not freeing the history creating a memory leak. 23. src/keywhash.c: Removed obsolete and unused "do_while" keyword, and regenerated keywhash.c 24. doc/tm/slang.tm: List of keywords updated to reflect the actual keywords used. 25. modules/mkfiles/makefile.all: Updated VC-specific LINK_CMD macro to support the changes outlines in 18 above (Dino Sangoid). 26. src/slang.c,src/slboseos.c: Added hooks for entering and leaving a function. The beginning-of-statement and end-of-statement hooks were found insufficient to support a debugger support. See the documentation for _bofeof_info for more information. 27. slsh/lib/sldbcore.sl: Modified to use the bof/eof hooks introduced in #26. 28. Various documentation tweaks. 29. src/slboseos.c: Changed the beginning-of-function handler to include the filename. 30. src/slsh/lib/require.sl: Removed the "feature not provided" message. 31. src/slrline.c: Tabs were not being expanded properly when the window was horizontally scrolled. Also, the last column of the display is not used in case the terminal has automatic margins. 32. lib/sldbcore.sl: The debugger's "finish" command was not quite working as it should have. 33. lib/sldbcore.sl: Added an sldb_initialize function that can be overridden by the debugger. 34. src/slposio.c: Made changes to allow arbitrary objects to be attached to file descriptors. 35. src/sl*tty.c: Set SLKeyBoard_Quit to 0 in the init_tty routines. 36. modules/socket-module.c: A new module that defines various socket functions. This required additions to the configure script and related files. 37. src/slstrops.c, slsh/readline.c: Removed statements that were never reached. 38. src/sltypes.c: foreach(X) where X is String_Type produces a sequence of UChar_Type objects. This is consistent with typeof(X[i]). Also added "using" forms to specify char or byte-semantics: foreach (X) using ("bytes"|"chars"). The default is byte semantics. Updated the corresponding docs. 39. src/slang.h: Added SLang_push/pop_wchar macros. 40. src/sldisply.c: This file was failing to compile with Kanji support enabled. Kanji is unsupported in slang-2. 41. src/slcurses.*: Alt-character set handling was not working. Once again, I strongly encourage you to modify your programs to use the native SLsmg routines instead of the partial curses emulation hacks. 42. slsh/lib/sldbsock.sl: New file to implement socket-based debugger. 43. slsh/scripts/sldb: Added --pid option for debugging a separate process via the socket-based debugger interface. 44. src/slang.c: If a try-finally block contained a return statement, the function would sometimes continue after the finally block. 45. modules/termios-module.c: Added tcget/seti/ospeed functions for setting baudrates of termios structures. Also added CRTSCTS constant to the module. 46. src/slclass.c: If an application calls SLang_pop_mmt with a non-MMT type specified, a SL_Application_Error exception will be generated. 47. src/slang.c: A misplaced return statement was introduced by #44 above. 48. src/slparse.c: Allow the "finally" keyword to be followed by a colon, e.g., try foo; finally: bar; 49. src/sltoken.c,slang,c: "Dollar" and long-longs were not being properly handled in byte-compiled files. 50. src/test/Makefile: Changes were made to test byte-compiled versions of the test scripts. 51. modules/socket-module.c: added #include to get it to compile on mac osx. 52. src/slmath.c: The data field was not properly used by the nint function. 53. modules/select-module.c: Call SLang_handle_interrupt when the select system calls gets interrupted. 54. src/slposio.c: Add == and != operators to FD_Type objects so that fileno(stdin)==fileno(stdin) works as expected. 55. src/slarray.c: wherefirst and wherelast were not working with empty arrays. 56. src/slmisc.c: SLang_guess_type was failing on numbers containing a leading '+' sign. 57. src/slimport.c: The name of the SLANG_MODULE_PATH environment variable may be changed in src/Makefile. 58. src/slrline.c: Added a delete-to-beginning-of-line (delbol) function and bound it to ^U. 59. slsh/Makefile.in: $(CFLAGS) added to the final link line. (Nelson H. F. Beebe) 60. src/slmath.c: Avoid the use of function pointers to standard math functions to support a wider range of compilers. 61. autoconf/aclocal.m4: IRIX compilers do not require "-K pic" 62. autoconf/configure.ac: Probe for socklen_t. 63. */Makefile.in: Added support for the $LIBS env variable 64. src/slerr.c: Added fflush(stdout) to SLang_vmessage. 65. slsh/lib/sldbcore.sl: The eof hook was improperly handling the debugger step. 66. src/slarray.c: Optimization added for index-array operations on double, float, and int arrays. 67. src/slarith.c: Optimization added for boolean operations between [U]Char_Types. 68. lib/structfuns.sl: Typo in the documentation corrected (Doug Burke) 69. lib/*.sl, lib/tm/*.tm, lib/help/*.hlp: Documentation for the functions in *.sl has been moved to *.tm and integrated into the help system. 70. src/slwclut.c: a missing "default" label in a switch statement was causing invalid character class specifiers to pass. 71. src/slang.c: Optimization added for struct method calls. In addition, linenumber information was propagated for such function calls to permit better interaction with the debugger. 72. slsh/lib/profile.sl: profile_on was not being called with an argument.