-*- mode: text; mode: fold -*- Changes since 0.99-18.0 1. src/syntax.c: If a multibyte character was prefixed by a character with a "quote" character syntax, then the multibyte character was not being properly displayed. 2. src/jed-feat.h: Added definition for XJED_HAS_XRENDERFONT 3. src/xterm.c: Added support for selection-target TARGETS. Does this fix cut/paste between KDE apps? 4. src/misc.c: slang-1 specific patch from vmiklos at frugalware, org to avoid undefined symbol error (SLUTF8_MAX_MBLEN). 5. lib/shell.sl: Unset the buffer-modified flag for the *shell-output* buffer after the shell command has run (phreakuencies at gmail, com) 6. src/Makefile.in: distclean targets now removes the autogenerated config.h. (Jörg Sommer joerg at alea, gnuu, de) 7. src/xterm.c: If the X library does not have the Xutf8* functions, if a selection requests a UTF8 string, then send the selection using XTextStyle. (Jacob (=Jouk) Jansen) 8. src/xterm.c: Added rest of Jouk's patch (See #7 above). 9. src/keymap.c: Explicitly set the slang error to SL_USER_BREAK in the keyboard-quit function. 10. lib/site.sl,lib/perl.sl: The documentation for a couple of the functions were missing the proper documentation-start/end markers (Morten Bo Johansen). 11. */*.sl: #ifeval constructs were causing problems when linked against slang-1. These were changed to #ifexists... 12. src/misc.c: The read_from_minibuffer function preserves the value of the prefix argument. 13. src/intrin.c: The prefix_argument function semantics have been extended such that if passed no argument, NULL will be returned if there is no prefix argument. Docs updated accordingly. 14. lib/site.sl: buffer_filename modified to take an additional argument representing the name of a buffer. (Jörg Sommer) 15. lib/aboutjed.sl: Updated year in the file. 16. src/colors.c: If no colors have been associated with a color-object, return "default" for the foreground/background colors instead of NULL. 17. src/replace.c: Routines that search for characters (ffind_char, etc) were not working with wide characters. 18. src/test/test_search.sl: Do not run UTF-8 tests unless in UTF-8 mode. 20. src/undo.c: Consistency check added to make sure the value of the Point makes sense. 21. src/ins.c: Make the ins/del functions work in the presence of a slang error. 22. lib/mailutils.sl: In mailutils_find_header_separator, if the first line does not look like a header, then assume that headers are not present. 23. lib/mailedit.sl: In mark_paragraph, do not attempt to cross the header separator when marking paragraphs. 24. lib/isearch.sl: Highlight the current match 25. lib/textmode.sl: Create a new keymap instead of using the global map. 26. src/jprocess.c, w32proc.c: Added jed_get/set_process_flags functions. Also made changes to specify whether or not jed should automatically switch to the buffer associated with a process prior to calling its output handler. 27. src/pty.c: AIX support: if exists include it (culliton at io, com) 28. lib/ctags.sl,cmode.sl,...: skip_chars("..\\X..") was replaced by skip_chars("..\\\\X..") since \\X specifies a character class X. 29. src/file.c: If the inode/device of the file associated with the current buffer has changed, set the buffer's FILE_MODIFIED flag. 30. lib/ctags.sl: Modified to use buffer-local variables Word_Chars and Tags_File when they exist. Also, the global variable Tag_File was renamed to Tags_File. 31. lib/rmail.sl: rmail_output_to_folder now takes an optional argument: the folder name. 32. lib/ispell.sl: Use a try/catch block instead of an ERROR_BLOCK for better stack maintenance. 33. lib/site.sl,lib/os.sl: The definition of define_blocal_var has been moved from os.sl to site.sl. Documentation for the functions was provided by G. Milde. 34. lib/site.sl+others: When linked against slang versions >= 2.1.x, use the && and || operators instead of the andelse/orelse constructs. 35. lib/perl.sl: Updated to Mark Olesen's latest version. Also added perlxtra.sl. 36. lib/colors/[Xjed/]black4.sl: Updated (Mark Olesen). 37. src/ledit.c: In the filename completion window, do not show the full pathnames. Otherwise a pathname could exceed the size of the window rendering it useless. 38. lib/cmode.sl: Fixed a number of minor annoyances of the indent-line routines, including: * the indentation of array elements and lists. * multiline preprocessor macros. * "stairstepping" of multiple continued lines. Also calls to c_indent_line have been changed to indent_line to allow the resulting behavior to be influenced by the buffer-hooks. Shamelessly stole some of the comments from Mark Olesen's cmode.sl. 39. lib/bytecomp.sl: perlxtra.sl added to be preparsed. 40. lib/cmode.sl: Do not indent successive lines of a structure. 41. lib/ispell.sl: "finally:" changed to "finally" for compatibility with older versions of slang-2. 42. lib/cmode.sl: Additional comments and a small change so that trailing whitespace does not affect the indentation of ')'. (Mark Olesen). 43. src/test/*.sl: changed "static" to "private". 44. src/test/test_cmode.*: Regression script for cmode.sl 45. lib/isearch.sl: Added Isearch_Highlight variable to control whether or not the match should be highlighted. 46. lib/cmode.sl: Merged Mark Oleson's patches that support "foam-style" indentation. 47. src/undo.c: New intrinsic "set_undo_position" that may be used to set a buffer position that "undo" will use. 48. lib/site.sl: Files with .pm extensions will use perl-mode. 49. lib/perl*.sl: Fixed a couple of small problems with the embedded tm documentation that caused tmexpand to balk. 50. src/ledit.c: Made slang array intrinsics available to jed: transpose, sum, cumsum, array_swap, array_reverse, min, max, any, all This was motivated by the use of modules that assume these functions are available. 51. src/*.sl: Changed 'if (length(where(foo)))' to 'if (any(foo))'. This change also makes the code more readable, e.g., compare if (length (where (List_Of_Buffers == buf))) do_something (); to if (any (List_Of_Buffers == buf)) do_something (); 52. lib/site.sl: A typo introduced in #49 was corrected (Paul Boekholt). 53. lib/slmode.sl: Added "then" and "ifnot" as a keywords, which slang 2.1 uses. 54. src/main.c: When run as jed-script, error messages were not always written out. 55. lib/compress.sl: A reference argument may be used to get the current compression mode. 56. lib/popups.sl: Add support for compressed documentation files. 57. doc/...: Some documentation tweaks (Jörg Sommer). 58. src/menu.c: UTF-8 "hot keys" were not being written properly (Jörg Sommer). 59. lib/python.sl: Do not use both tabs and spaces when indenting. Also, avoid treating "passport" and "returning" as block delimiters. Added python2 keywords. Added support for prefix arguments to the region shift functions. (Jörg Sommer). 60. lib/help.sl: Enhanced version of describe_bindings (Jörg Sommer): * It makes all key descriptions are aligned among each other, * it splits the listing into two sections: one with the keys defined in the global mode and one with the keys special to this mode * it prints the description of the function bound to the key behind the function 61. lib/info.sl,site.sl,..: info_mode renamed to info_reader_mode. This way files such as foo.info can be edited. 62. lib/site.sl: ^Hb will run describe_bindings (Rafael Laboissiere). 63. lib/cmode.sl: When building the function list avoid adding "if", "while", etc, which can occur outside a function. (Jörg Sommer) 64. lib/help.sl: Use an associative array to cache previous calls to "help_get_doc_string". (Paul Boekholt) 65. lib/mouse.sl: A new variable called Mouse_Selection_Word_Chars may be used to define the set of characters that will be used for "double-click" selections. 66. lib/mouse.sl: Fixed a bug involving pasting via the middle mouse button in the presence of a visible mark. 67. src/text.c: skip_chars_forward/backward: Treat a the complement of "^SET" as "SET". 68. lib/text.sl: newline_indent_hook bound to text_newline_and_indent_relative. 69. lib/help.sl: If Help_Describe_Bindings_Show_Synopsis is non-zero, key descriptions will be displayed by the describe_bindings function. The default setting is 0. 70. lib/site.sl: The slsh help directories have been added to the list of documentation files since it is possible for jed to utilize those functions. 71. lib/info.sl: merged info_reader_mode into info_reader, since strictly speaking info_reader_mode is not an editing mode. I also added info_mode to compat.sl for backward compatibility. Please migrate to using info_reader instead of info_mode. (See #61 above). 72. lib/site.sl: The slsh help directories were added to the list of directories to search for documentation. This was done because jed can use slsh library files and modules. 73. lib/help.sl: If a documentation file is specfied as a directory, then all files with a .hlp extension will be searched in that directory. 74. lib/ispell.sl: The character range "a-zA-Z" was replaced by "\a"R, which represents any alphabetic character. Also ',' is assumed to be the delimiter used by ispell instead of a space character (Jörg Sommer). 75. lib/php.sl: Fixed indentation problem on the second line of scripts starting with . (Paul Boekholt). 76. autoconf/aclocal.m4: Added rpath support for OpenBSD. 77. src/cmds.c: Changed quoted_insert to insert a byte instead of a wchar, unless the value was specified via a prefix argument. 78. lib/textmode.sl: Unset the indent and newline_and_indent hooks because the "indent_text_relative" routines did not seem to useful for ordinary text files. 79. lib/history.sl: Ignore errors in saving the history at exit (Paul Boekholt). 80. lib/cmode.sl: Don't indent the second, third, etc items of a list that follows an open parenthesis. Also Mark Oleson corrected an off-by-1 error when indenting foam-style constructs. 81. doc/txt/dfa.txt: Updated for slang-2 and some additional clarifications (Guenter Milde). 82. lib/site.sl: provide/require were removed and are now autoloaded from require.sl, which itself was updated to the latest slsh version. 83. lib/xform.sl: Eliminated the use of narrow_to_region by these functions. This fixes a problem with capitalize_word when used in the minibuffer. 84. lib/site.sl: Documentation for `double_line` (Jörg Sommer). 85. lib/site.sl: Handle a possible NULL return value by guess_jed_install_prefix. 86. lib/man.sl: Remove strange <88> combinations that appeared in man pages after upgrading to Debian Etch. 87. src/jprocess.c: If a read/write operation on a descriptors returns with errno=EIO, then flag it to not be used by the select system call. 88. src/xterm.c: The x_toggle_visibility function may be used to raise or lower the window associated with Xjed. (Jörg Sommer). 89. src/*.c, *.h: Some of the files were missing the GPL copyright. (Jörg Sommer). 90. src/unix.c: The wrong value of max_fd was getting passed to select. 91. src/jprocess.c: The test for errno==EIO was not being made. 92. src/unix.c: Testing subprocess descriptors via FD_ISSET was also testing those with EIO errors. 93. src/xform.c: capitalize_region was not working with single character regions. 94. src/jprocess.c: fd was being passed to flag_fd_as_eio_error instead of p->rd. (Joerg Sommer). 95. lib/mime.sl: Use byte-semantics for parsing quoted-printable. 96. lib/perl.sl: When searching for a matching '{', ignore fold marks. 97. src/buffer.c:remake_line: If the line is to be made shorter, then reallocate the buffer associated with it. 98. src/lock.c: Add support for errno = EOPNOTSUPP return value from symlink. 99. src/misc.c: msg_error changed to call SLang_verror instead of SLang_set_error. This allows, among other things, exceptions to access jed error messages. 100. src/jprocess.c: Fixed a race condition in the master/slave pty code. 101. lib/html.sl: If _Reserved_Key_Prefix is NULL, do not use if in calls to un/definekey. 102. Updated aclocal.m4 for better CYGWIN support 103. src/pcmouse.c: Use jed_insert_nbytes instead of jed_insert_chars. (Robert Riebisch). 104. src/mkfiles/makefile.all: Add -lm to the LINK macro for DJGPP (Robert Riebisch). 105. src/wterm.c: In enable_menu_item, changed MF_GRAYED to MF_DISABLED (Joerg Sommer). 106. lib/cmode.sl: Fixed enum indentation (Marc Butler) 107. src/misc.c: In BATCH mode read_mini() should not print the default string if it is the empty string (Joerg Sommer). 108. lib/emacsmsc.sl:string_rectangle: If the rectangle has no width, then do not delete it. (Joerg Sommer). 109. lib/bytecomp.sl: Removed require.sl from the list of files to be preparsed. 110. src/xterm.c,screen.c,mouse.c: Small tweaks to avoid gcc warnings (Joerg Sommer). 111. src/screen.c: A space character was omitted from the new sprintf format string used in #110. This affect the display of line numbers. 112. lib/cmode.sl: Added addtional C indentation variables: C_Label_Offset, C_Label_Indents_Relative, C_Outer_Block_Offset. 113. doc/tm/hooks.tm: Added documentation for _jed_run_hooks (Joerg Sommer). 114. src/wterm.c: Corrected a typo in the documentation for w32_enable_menu_item_pos (Joerg Sommer). 115. src/text.c: Modified the wrapping algorithm for better performance. 116. src/text.c: Change #115 introduced a bug triggered when the length of the "word" is larger than the value of the wrap column. (Paul Boekholt). 117. src/cmds.c: When inserting multiple spaces beyond the wrap column, the editing point would always stay on the current line instead of moving to the next line after the wrap. 118. lib/keydefs.sl: Work around an incorrect rxvt terminfo entry for Shift-Insert. 119. src/ins.c: Handle return value from jed_lock_buffer_file to avoid modifying a locked buffer. 120. configure: Updated configure script using the latest aclocal.m4 file. 121. src/dfasyntax.c: Tweaked the code to avoid writing single bytes of a multi-byte character. 122. src/buffer.c: Added get_buffer_hook function. 123. lib/texcom.sl: rewrote tex_blink_dollar to not the use narrow_to_region. 124. lib/site.sl: When creating an autosave-filename from a template name, expand any symbolic links that occur in the template name. This ensures that the autosave file will be created in the actual directory of the file and not in the directory of the symbolic link. 125. lib/cmode.sl: Only indent as a label if the label name is present. 126. src/syntax.c: Added support for syntax-coloring of tab characters. To this end, Highlight_Trailing_Whitespace variable has been deprecated in favor of Highlight_Whitespace, which is a new bitmapped variable: Highlight_Whitespace = 1; % highlight trailing whitespace Highlight_Whitespace = 2; % highlight tabs Highlight_Whitespace = 3; % highlight tabs and trailing ws 127. lib/digraph.sl: Added support for ä, ë, etc via a ':' prefix. 128. lib/mail.sl,sendmail.sl: The mail_format_buffer now allows a list of optional headers to add to the buffer. 129. lib/cmode.sl: The is_label_statement function is now a bit smarter; previously it would sometimes interpret a ternary statement as a label statement. 130. src/Makefile.in: variation of a patch from Joerg Sommer to allow debian to install bin files separately from data and lib files. 131. src/gpmmouse.c: Do not use GPM if running in xterm or rxvt (Joerg Sommer). 132. doc/tm/rtl/mini.sl: Documentation tweaks (Joerg Sommer) 133. src/keymap.c: The LASTKEY variable was not being updated before _jed_before_key_hooks. (Joerg Sommer) 134. lib/help.sl: Handle keybindings to macros and bindings that contain newlines. (Joerg Sommer) 135. doc/manual/jed.1: Updates to the man page (Joerg Sommer) 136. doc/txt/jed_faq.txt: Updates to the FAQ (Joerg Sommer) 137. lib/site.sl: jed_append/insert_doc_file will update slang's internal doc file list via set_doc_files. Eventally Jed_Doc_Files will go away in favor of get_doc_files. (Joerg Sommer). 138. lib/site.sl, src/ledit.c, src/main.c: The get/set_jed_library_path functions have been deprecated in favor of get/set_slang_load_path and prepend/append_to_slang_load_path. (Joerg Sommer) 139. src/screen.c: Multibyte characters in the status line string were not being processed (Paul Boekholt). 140. autoconf/aclocal.m4: Reimplemented JD_CHECK_FOR_LIBRARY. 141. lib/site.sl: Add the slsh library directory to the slang load path even if it does not contain a local-packages sub-directory (Joerg Sommer). 142. src/ledit.c: Changed the error message generated when unable to open a .sl to something less confusing (Suggested by Guenter Milde). 143. lib/dabbrev.sl: Byte semantics instead of character semantics were used during expansion causing problems with words that contain multibyte characters. 144. lib/site.sl: Updated doc for search_path_for_file 145. lib/os.sl: In dfa_enable_highlight_cache Explicitly pass a comma to search_path_for_file function. A similar change was made in preparse.sl. 146. lib/ctags.sl: use atoi instead of integer. 147. src/Makefile.in: Use `test -r` instead of `test -e` because some versions of test do not support -e. 148. src/Makefile.in: Minimum slang version set to 2.1.0. Also buffer.h added as a global dependency. 148. lib/site.sl: Some code simplified by using "&&". 149. lib/cmode.sl: Ternary statements with a colon at the end of the line were being interpreted as label statements. 150. src/Makefile.in: Added support for configure --infodir=value (Joerg Sommer). 151. src/sysdep.c: Use memmove instead of an explicit loop. (Joerg Sommer). 152. lib/site.sl: The goto_top/bottom_of_window functions were not accounting for hidden lines (Joerg Sommer). 153. lib/html.sl: Use "