Changes since B0.99-16 0. Many internal organizational changes and cleanups to provide UTF-8 support and S-Lang 2 compatibility. 1. lib/f90.sl: keywords for free-format mode were not working. (joukj at hrem.stm.tudelft.nl). 2. src/dfasyntax.c: For DCL mode, /4096 was not highlighted as a number--- only the "096" portion was highlighted. 3. src/ledit.c: when killing the scratch buffer, take care of its subprocesses as well. 4. lib/cal.sl: Eliminated "for" loop in favor of "where". 5. src/xkeys.c: Pressing Shift-Tab in Xjed will generate "\e[Z". 6. lib/modehook.sl: Avoid potential security risk by alerting the user about a file's mode statement. This behavior may be controlled through the use of the Enable_Mode_Hook_Eval variable. 7. src/misc.c: read_from_minibuffer was not working in non-interactive mode. 8. src/jprocess.c:get_process_status: indexing problem involving the process id resolved (sdupont@oryx.de) 9. lib/emacsmsc.sl: added string_rectangle function with keybinding ^XRt. 10. src/indent.c: The what_syntax_table intrinsic was always returning "DEFAULT". 11. lib/site.sl,etc: Added some patches from Paul Boekholt : The help function supports an optional argument (site.sl), compress.sl had a missing (), register.sl was missing a call to "newline". 12. src/file.c: If a file "foo" was saved to another file "bar", then "bar" was being improperly flagged as changing on the disk. 13. lib/keydefs.sl: Key_Ctrl_BS value changed (Guido Gonzato). 14. src/file.c: make jed_expand_link expand all pathname components 15. lib/misc.sl: arguments to is_substr swapped in the glob_to_regexp function. Also the directory function was not handling invalid directories. Klaus Schmid . 16. src/ledit.c: if Batch or Script mode, do not echo the number of lines read. 17. src/text.c: Ignore leading whitespace when attempting to wrap a line. Joerg Sommer (joerg at alea, gnuu, de). 18. src/text.c: improved backward_paragraph function (Paul Boekholt ) 19. src/*.c: Added support for the display of line numbers based upon a patch submitted by Robert Lillack (rob at lillack, de). Use the toggle_line_number_mode or the set_line_number_mode functions to utilize this feature. The color of this may be controlled using the "linenum" object. 20. src/hooks.c: A possible NULL pointer dereference was fixed and the JED_RUN_HOOKS* constants were exported to the interpreter (Josh Guilfoyle (jasta at gotlinux, org)) 21. lib/php.sl: strcat used instead of binary plus for combining strings in the keyword definition lists. 22. lib/emacs.sl: Binding to ^K (yp_kill_line) tweaked to improve emulation in presence of a universal argument. 22. lib/syntax.c: Better support for syntax highlighting of multiline SGML/HTML constructs. 23. src/intrin.c: get_keymaps intrinsic added 24. lib/site.sl: call_function added as a generic alternative to runhooks. This was added because someday runhooks may perform additional tasks. 25. A few more color schemes have been added with updates. 26. src/intrin.c: what_mode may take an optional buffer argument. 27. lib/misc.sl: glob_to_regexp made public 28. lib/misc.sl: list_directory added. 29. lib/modeinfo.sl: mode_set_mode_info expanded to allow the creation of new fields. 30. lib/dabbrev.sl: integrated the version from the jed modes repository because of its many good ideas and capabilities. 31. src/screen.c: %S in the window status line format will cause the S-Lang stack depth to be displayed. (from Dino via paul at boekholt, com). 32. lib/isolatin.sl: The reverse (spanish) question mark removed from the word_chars. Günter Milde (milde at ife, et, tu-dresden, de) 33. lib/cmode.sl: C_Namespace_Offset added (Marc Butler marc_in_usa at yahoo, com) 32. src/screen.c: Trailing whitespace may now be highlighted using the "trailing_whitespace" color. To enable it, put Highlight_Trailing_Whitespace = 1; in your jedrc file. (This and similar ideas have been suggested by a number of people-- some even submitted code). 33. lib/paste.sl, lib/gpg.sl: "paste" is a useful function for "pasting" into jed running in an xterm. gpg.sl implements an experimental interface to gpg. 34. src/ledit.c: If system supports dynamic linking via dlopen, then enable support for importable modules. 35. lib/cua.sl+cuamisc.sl: Updated versions from sourceforge. I split a few of the functions out for general use: next_buffer, toggle_case_search, save_buffer_as 36. src/: Like TAB, the value of CASE_SEARCH is now local to a buffer. Newly created buffers are initialized with the value of CASE_SEARCH_DEFAULT. 37. lib/vhdlmode.sl: Updated by Thei Wijnen -------- snapshot B0.99.17-37 released ------- 38. lib/modeinfo.sl: The mode_name argument of mode_set_mode_info is now optional. If not present, the function will use the current mode. 39. lib/isearch.sl: Kris Arndt (kris at polygosis, com) noticed that CASE_SEARCH was not being preserved by the "perform_search" function. 40. lib/site.sl: The "." has been removed from the jed search path. 41. src/buffer.c: New buffer hooks: format_paragraph_hook, mark_paragraph_hook, backward_paragraph_hook, forward_paragraph_hook, color_region_hook 42. lib/colors: New stock color objects: url, bold, underline, italic. Also Mark Olesen contributed black4.sl. 43. src/indent.c: New intrinsics: get/set_line_color may be used to get or set the color of the current line. 44. lib/mailedit.sl: A new mail editing mode. 45. lib/lua.sl: Contributed by Reuben Thomas 46. lib/mailutils.sl: contains some reusable code for dealing with mail headers. mailalias.sl changed to use it. 47. src/unix.c,file.c: Added patch from gutojm at gmail, com to preserve setuid bit when writing files. 48. lib/srchmisc.sl: (replace_with_query) After replacing a zero-length pattern, move right to avoid replacing the _same_ 0 length pattern again. The solves the problem reported involving the replacement of the regexp $-assertion. 49. lib/isearch.sl: Patches from Lloyd Zusman and Paul Boekholt to implement a wrap-around search. -------- snapshot B0.99.17-49 released ------- 50. lib/isearch.sl: the get_bound_key function now loops over all key-squences instead of just trying the first. 51. lib/site.sl: enable_dfa_syntax_for_mode was not calling mode_set_mode_info in a variable-arguments compliant manner. 52. src/file.c: Trying to read /a/b/../c.dat was failing if when b was a sym-link to /d/b. In this case, jed was trying to read /a/c.dat instead of /d/c.dat. 53. src/Makefile.in: Add the appropriate linker options to LDFLAGS to enable global symbols to be exported. Otherwise, importing a module could fail. 54. src/search.c: re_bsearch("^\n") was failing. Several of the routines pertaining to regular expressions in this file were rewritten to correct other problems that were reported. 55. The completion buffer size specification was moved into jedlimits.h and increased. Eventually I will rewrite the routine to remove the arbitrary size restriction. 56. src/screen.c: If run in UTF-8 mode, a "U" will appear next to the version number on the status line. -------- snapshot B0.99.17-56 released ------- 57. src/search.c: regexp_nth_match was failing after some backward searches. 58. configure: Add --with-slang to configure script 59. lib/site.sl: autoloads of abbrev functions made conditional with support for the abbrev feature. (Paul Boekholt) 60. src/search.c: The search_file function was returning at most one match (Paul Boekholt). 61. src/vmshelp.c: Patch to enable this to compile on OpenVMS (Jacob Jansen). 62. lib/man.sl: Remove any ANSI SGR sequences from the man pages. 63. src/cmds.c: Used byte-insertion routines instead of wchar ones. 64. src/vterm.c: If writing n characters, do not memset more than that. (SANGOI DINO (SANGOID at lloydadriatico, it)) 65. lib/site.sl: DOS/Windows: If JED_HOME and HOME are NULL, trying using USERPROFILE as the location for jed.rc. If that fails, fall back on C:\, not the CWD as _was_ the case. (SANGOI DINO (SANGOID at lloydadriatico, it)) 66. lib/cua.sl: Use delete_char_cmd instead of delete_cmd (SANGOID DINO). 67. src/indent.c:parse_to_point: Made comment parsing first before strings, etc. This change fixes the problem with multiline comments in html mode. 68. src/main.c: Win32 patch for setting JED_ROOT based upon the location of the executable (SANGOID DINO). 69. src/vterm.c: New function: vterm_write_nbytes. Currently this function is commented out but may be useful when UTF-8 support is added to wjed and xjed. (Marko Mahnic marko,mahnic at email,si) 70. src/vterm.c:vterm_write_nchars: This function was using a signed char instead of an unsigned char. This caused the problem reported by Romano Giannetti. -------- snapshot B0.99.17-70 released ------- 71. src/*.c: Changed names of references to _SL* to _pSL* for slang2 compliance. (SANGOID DINO) 72. src/mkfiles/makefile.all: Add TOOL_PREFIX variable to support cross-compilation. 73. src/xterm.c: Alt-something was causing a SEGV. 74. src/buffer.c: Use inode info as an aid for dealing with symlinks and hardlinks. 75. src/search.c: Query-replace "^" with anything was not working properly in the slang2 version. 76. src/win32.c...: patches to support slang2 dll (Sangoid Dino). 77. src/sysdep.c: If running in Unicode mode, the value of the DEC_8BIT_HACK variable will be ignored. 78. src/screen.c: If compiled against slang2, the SLsmg functions will be used to compute the displayable width of a byte-sequence. 79. src/sig.c: Allow Xjed to be suspended from the shell prompt. 80. src/screen.c: (slang2-only): If the buffer flag has bit 12 set (via, e.g., _toggle_buffer_flag (0x1000)) then escape sequences of the form ESC [ x ], where x is an integer will cause the text following it to be rendered using the color associated with x. For example, "\e[31]hello\e[]" will cause "hello" to be rendered using color object 31. This is an experimental feature. The underlying code supports both 'm' and ']' as the end of escape sequence indicator. However, ']' works better in parenthesis-matching situations. -------- snapshot B0.99.17-80 released ------- 81. src/main.c: Batch mode was resulting in a SEGV. 82. lib/aboutjed.sl,lib/cpright.sl: Updated info -------- snapshot B0.99.17-82 released ------- 83. src/xterm.c: if (Batch) should have been if (!Batch) 84. src/display.c: SLtt_Blink_Mode set to 0 85. lib/occur.sl: Zero length regular expressions were causing an infinite loop. (Paul Boekholt, p, boekholt at hetnet, nl) 86. src/main.c: If the environment variable JED_UTF8 exists and is set to FORCE, then jed will "force" the video driver/terminal into UTF-8 mode. This can be useful on systems that have no UTF-8 support in the locale. 87. src/screen.c: Fixed a problem associated with the display of line numbers on the status line. 88. src/main.c: "jed --script FILE" was searching for FILE along jed's load path instead of relative to the current directory. 89. src/wterm.c:msw_get_terminfo: if (!Batch) changed to if (Batch). (Dino Sangoid). 90. src/mkfiles/makefile.all: Added support for linking to the slang dll (Dino Sangoid) 91. src/file.c, buffer.c: Two small memory leaks found and corrected by Dino Sangoid. 92. lib/gpg.sl: Make sure the autosave file is encrypted. (Paul Boekholt p, boekholt at hetnet, nl) 93. src/keymap.c: If an error happens when performing a key sequence, make sure that the error message is displayed. 94. src/misc.c: Make sure read_from_minibuffer preserves the current buffer and not the buffer attached to the current window. Most of the time they are the same. 95. lib/gpg.sl: Use cached passprases for autosave files. (Paul Boekholt, Lloyd Zusman) -------- snapshot B0.99.17-95 released ------- 96. lib/site.sl: removed define_word statement since it was just a repetition of what is in main.c. 97. src/main.c: In unicode mode, use the "\w" character class for word characters. 98. src/indent.c: Make sure first line of the buffer has its syntax bits set to 0. 99. lib/site.sl: filenames of the form *.hh default to c-mode. 100. lib/*.sl: changed static declarations to private ones. 101. doc/txt/hooks.sl: Added documentation on the before/after_key_hooks. 102. lib/dabbrev.sl, lib/wmark.sl: Make sure the before_key_hooks can handle Ref_Type objects. 103. src/misc.c: If an error occurs while in the mini-buffer, make sure the error is seen. 104. src/keymap.c: Performed some rearranging of the code to isolate the keymap intrinsics to this file. 105. src/keymap.c: Added support for the use of Ref_Type objects to the keymap commands. This feature is enabled only if linked to slang 2.0.3 and greater. 106. src/xterm.c: Modified the way the selection gets inserted. Now the entire selection gets read before the insertion. Before it was being inserted while being read. This avoids a recursive call that was causing a SegV. 107. src/buffer.c: Tweaked the output message of the count_chars function when the current character is invalid UTF-8. 108. src/rgrep.c: Upgraded to slang-2. 109. src/Makefile.in: $JED_ROOT/lib/tm no longer created. 110. lib/html.sl: Add a call to no_mode before initializing html mode. This ensures that any buffer_hooks are reset. 111. lib/site.sl: The JED_CONF_DIR environment variable may be used to specify the directory where jed.conf may be loaded. Otherwise, the installation prefix is used to determine its location. -------- snapshot B0.99.17-111 released ------- 112. src/abbrev.c:what_abbrev_table: if the global abbrev table has not been defined, then return "" as the table name insted of "Global". This corrects a bug reported by Joerg Sommer joerg at alea, gnuu, de. 113. lib/isearch.sl: Moved setting of IGNORE_USER_ABORT closer to the call to getkey to localize its effects. This is in response to an (unreproducable) infinite loop that was reported in the isearch function involving a non-zero value of IGNORE_USER_ABORT. 114. src/userinfo.c: If hostname is given as "", use "localhost". 115. lib/site.sl: Code that processed jed.conf was not always picking it up. 116. src/buffer.h: jed_looking_at (looking_at intrinsic) was failing to work in the presence of invalid UTF-8 encoded sequences. 117. lib/pushmode.sl: Added calls to no_mode to reset the state for the new mode. 118. src/screen.c:update_minibuffer: Make sure screen attributes are updated before calling display_line. 119. src/ledit.c: Use fputs instead of fprintf for traceback messages when in batch mode. 120. src/sysdep.c: Rewrote the filename expansion routines to fix the // filename problem reported on the jed-users list. 121. lib/folding.sl: Disabled mouse double-clicking to enter/leave folds. 122. src/intrin.c: The getbuf_info function updates the file-changed-on-disk flag before returning. 123. src/buffer.c: If a buffer has the file-changed-on-disk flag set, then setbuf_info will reset the buffer's ctime field if the flag is reset. 124. lib/paste.sl: Use insert_byte instead of insert_char. Otherwise UTF-8 sequences will not get properly inserted. 125. src/xterm.c: Integrated Dino's UTF-8 patches into Xjed. 126. src/xterm.c: Rewrote much of the selection code. Hopefully users will see better cut/paste interactions between Xjed and other X apps. 127. src/buffer.c: The `delete_buffer` function now calls `buffer_exists` to ensure that the buffer to be deleted actually exists. 128. autoconf/config.[guess|sub]: Updated to 2005 versions. 129. Misc debian patches added: doc/manual/jed.1 updated; python_mode TAB value made contingent up Py_Indent_Level. 130. src/Makefile.in,jed-feat.h: Removed XJED_HAS_XRENDERFONT variable from jed-feat.h and put it in Makefile.in. Also introduced an XRENDERFONT_CFLAGS variable to the makefile. Eventually a configure script solution will be used as suggested by Dino Sangoid. 131. lib/cmode.sl: Added Marko Mahnic's (marko,mahnic at email, si) patch enabling the user to put an upper limit on the indentation of function arg continuation lines. 132. src/jprocess.c: Do not use ptys on OS X (Marcus Crafter / crafterm at gmail, com) 133. src/wterm.c: Added UTF-8 support (Dino Sangoid). 134. src/os.sl: Enable "import" for win32 systems (Dino Sangoid). 135. src/xterm.c: Added support for UXjed resource names to be used in UTF-8 mode, e.g., UXjed*font: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 -------- snapshot B0.99.17-135 released ------- 136. src/xterm.c: Disable use of the Xutf8 functions on VMS. (joukj at hrem, stm, tudelft, nl) 137. src/pty.c: Do not include strops.h on FreeBSD (Renato Botelho garga at freebsd, org) 138. src/mailedit.sl: Made ">" a comment character so that the comment_region_or_line function in comment.sl can be used for quoting. 139. src/text.c: Constructs such as skip_chars("\\a") were not working. A work-around such as skip_chars("a\\a") was required. In slang2, \a matches any alpabetic unicode character. 140. lib/isearch.sl: An incorrect `#ifeval` statement was causing a parse error with slang-1 versions of jed. 141. src/indent.c: Moved get/set_line_color intrinsic definitions to colors.c. 142. lib/info.sl: Tweaked to work with UTF-8 documents (Paul Boekholt p, boekholt at hetnet, nl). 142. syntax/index.sl: Tweaked to work with UTF-8 encoded keywords (Paul Boekholt p, boekholt at hetnet, nl). 143. src/ledit.c: Set the BURIED_BUFFER flag for the *traceback* buffer. 144. src/replace.c: The "replace" intrinsic function was not working with UTF-8 encoded characters. 145. autoconf/Makefile.in: added .PHONY target (Ethan Blanton eblanton at cs, ohiou, edu). 146. src/ledit.c: Restore the documented behavior of the 'f' version of the read_with_completion that was broken in the previous snapshot. 147. src/syntax.c: color_column style syntax highlighting was broken in UTF-8 mode. 148. src/intrin.c: Add strwidth intrinsic to return the displayed width of a string. 149. info/jed.info: Added START/END-INFO-DIR-ENTRY lines (Helmut Kreft kreft at belwue, de) 150. doc/utf8.txt: Bug fix to the example iso_to_utf8 function (Paul Boekholt p. boekholt at hetnet, nl) 151. lib/edt.sl: Made the Gold-Key configurable. See doc/txt/edt.txt for more information. 152. lib/cmode.sl: Removed the explicit binding to c_format_paragraph. It is not called through the paragraph_hook. 153. lib/slmode.sl: Added a format_paragraph_hook for slang_mode. 154. src/buffer.c: New hook: "wrapok_hook". May be used to determine whether or not a line should be wrapped. Used by slmode.sl to wrap comment lines. 155. lib/man.sl: Convert UTF-8 versions of - to ASCII -. 156. lib/ctags.sl: Rewrote much of this file to make browsing tags more useful. In particular, the new `ctags_forward` and `ctags_backward` functions move to the previous/next tag position in much the same way that the forward/backward button work in an HTML browser. Note: the function `find_tag` is still supported but deprecated. Use `ctags_popup_tag` instead. 157. src/indent.h: If the table to be created by create_syntax_table already exists, its entries will be cleared. It was always documented as having his behavior but the keyword list associated with it was not cleared in previous versions. 158. lib/cua*: Updated cua mode from jed modes repository. 159. src/xterm.c: Use Xutf8 functions only if X11.h defines X_HAVE_UTF8_STRING. 160. lib/help.sl: Added support for the user-defined Gold-key. 161. src/keymap.c: The scroll-left/right functions may be used with a prefix argument to specify the scroll amount. 162. src/window.c: New intrinsics: get/set_scroll_column. 163. doc/hlp/: Online function documentation moved from doc/txt/ to doc/hlp/. Both src/Makefile.in and lib/site.sl were updated accordingly. 164. src/sysdep.c: On windows, skip_drive_specifier was broken (Dino Sangoid). 165. src/win32.c: Apparantly the stat function on windows cannot cope with network shares. Dino Sangoid provided a work-around.