home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / jed098-4.zip / JED / CHANGES.TXT next >
Text File  |  1997-02-01  |  43KB  |  993 lines

  1. Changes since 0.98-3
  2.    0.  Oops.  The pushmode stuff introduced in 0.98-3 also introduced
  3.        a bug.  0.98-3 was pulled for this reason.
  4.  
  5. Changes since 0.98-2
  6.    1.  Bug in expand_filename found and corrected.  Tiny bug dealing
  7.        with links also fixed.
  8.    2.  Mark's changes to wmark.sl integrated.  Chaining of
  9.        suspend/resume hooks is still an issue.  I also included his
  10.        bufed routines.
  11.    3.  f90 mode updated by joukj@crys.chem.uva.nl.
  12.    4.  Man pages for rgrep and jed provided by borik@isracom.co.il.
  13.    5.  some routine code cleanup
  14.    6.  Tweaks to various modes, edt, c-mode, etc...
  15.    7.  New pushmode.sl file implements push_mode and pop_mode
  16.        functions that facilitate temporary changing of modes in a buffer.
  17.        This requires buffer-local-variable support.
  18.    8.  New global variable Default_Jedrc_Startup_File that may be set
  19.        in defaults.sl to define default jed.rc file.
  20.  
  21. Changes since 0.98beta
  22.   -2. JED386.EXE now requires a DPMI server.  Read INSTALL.pc for more
  23.       information.
  24.   -1. Ctrl-H now deletes backward.  Experienced users may want to add
  25.         setkey ("help_prefix", "^H");
  26.       in their .jedrc file to restore the old behavior.  The
  27.       help_prefix function is now bound to `ESC ?'.
  28.    0. Patches for VMS and OS/2 applied.  Also features.h changed to
  29.       jed-feat.h to avoid confusion with system header file.
  30.    1. New fold function: c_fold_buffer
  31.    2. Ctrl-X 8 now runs the digraph command for inputting accented
  32.       characters.
  33.    3. Some modifications to sendmail.sl and rmail.sl to make them work
  34.       smoothly together.
  35.    4. If the buffer local variables feature is available, the goto
  36.       bookmark functions will work properly across folds.  A new
  37.       intrinsic function `is_user_mark_in_narrow' was necessary to
  38.       make this possible.
  39.    5. The current buffer position is remembered immediately before a
  40.       call to the goto bookmark function.  To return to this position,
  41.       press the spacebar at the goto bookmark prompt.
  42.    6. Jed has better command line support for info topics, e.g., 
  43.    
  44.            jed -info gcc
  45.        
  46.       will run jed as an info reader and visit the gcc info page.  In
  47.       addition, an additional parameter may be supplied to specific
  48.       which node to visit, e.g.,
  49.       
  50.            jed -info gcc bugs
  51.        
  52.    7. rmail_edit function added to rmail mode.  The default binding is
  53.       to the "e" key.  Also simple MIME decoding has been added to the
  54.       rmail mode.
  55.  
  56.    8. If a command line argument begins with `--', jed will attempt to
  57.       match the remaining part of the argument to a function and
  58.       execute the function.  It will also replace all `-' characters
  59.       by `_' before doing so.  For example, I have a function called
  60.       `no_fold' that sets Fold_Mode_Ok to 0.  I can call this function
  61.       from the command line as `jed --no-fold'  That is, 
  62.       `jed -f BLA_BLA_BLA' is now equivalent to `jed --BLA-BLA-BLA'.
  63.  
  64.    9. On pc versions, shift arrow keys now generate a distinct
  65.       key sequence from unshifted keys.  See doc/pc-keys.txt for more
  66.       information.
  67.       
  68.   10. New wmark.sl file that implements DOS/Windows style cut/paste
  69.       via shift arrow keys.  Add 
  70.       
  71.            () = evalfile ("umark");
  72.        
  73.       to your jed.rc file to get this.  Note: it only works on
  74.       terminals that generate distinct escape sequences for the shift
  75.       arrow keys.  This includes the pc versions of jed, Xjed, and jed
  76.       running in rxvt compiled with support for this feature.
  77.       [Luchesar Ionkov is responsible for this feature].
  78.       
  79.   11. joukj@alpha.chem.uva.nl created fortran 90 modes.  See
  80.       jed/lib/f90.sl and jed/lib/ff90.sl.  Also a python mode is
  81.       available courtesy of Harri Pasanen <pa@tekla.fi>.
  82.       
  83.   12. New variable USE_TABS controls whether or not TAB characters
  84.       should be used for whitespace.
  85.  
  86.   13. New Xjed specific intrinisic function: x_server_vendor
  87.       This function returns the name of X server vendor.  This might
  88.       be useful for setting keysyms on a server by server basis.
  89.       
  90.   14. If GPM Mouse support is compiled in, the new intrinsic function
  91.       `gpm_disable_mouse' may be used to disable the mouse.
  92.  
  93. Changes since 0.97-14
  94.    0. Many small architectural changes.
  95.    
  96.    1. Thanks to Andy Harper (A.HARPER@kcl.ac.uk) for work on DCL make files
  97.       for VMS.
  98.  
  99.    2. Under Unix, ~ is stripped off filename extension before determining
  100.       the mode.
  101.       
  102.    3. rgrep change: -B option may be used to skip binary files.  These files
  103.       are defined to be any file with a null character in the first 32 bytes
  104.       of the file.
  105.       
  106.    4. Folding mode and selective display if jed is compiled with line
  107.       attribute support.  This adds about 4 bytes of overhead per buffer
  108.       line.  As a result, I do not recommend it for systems with no virtual
  109.       memory (DOS).  The 32 bit DOS executable (jed386.exe) does come
  110.       with folding support.  wjed.exe and jed.exe do not provide
  111.       folding support because they are 16 bit executables.
  112.       
  113.       To enable folding mode, you must set the variable Fold_Mode_Ok
  114.       to  non-zero value in your jedrc file.  See doc/fold.txt for
  115.       more information.
  116.       
  117.       `set_color ("...", "blue", "white");' may be used to set the
  118.       color of the "..." hidden line indicator.
  119.  
  120.    5. Line marks added.  See online documentation `create_line_mark'.
  121.       This is a user mark that has a color associated with it.  A line
  122.       that has a line mark will be displayed using this color.
  123.  
  124.    6. A buffer-local facility has been added.  See documentation on
  125.       the new intrinsic functions:
  126.       
  127.           create_blocal_var
  128.       get_blocal_var
  129.       set_blocal_var
  130.       define_blocal_var
  131.       
  132.       for more information.
  133.       
  134.    7. If asynchronous subprocess support is enabled, jed will compile
  135.       in the background.
  136.       
  137.    8. Mouse interface completely re-written to be more functional.
  138.       New intrinsics include:
  139.       
  140.           mouse_set_default_hook
  141.       mouse_set_current_window
  142.       mouse_map_buttons
  143.       
  144.       Double and Triple clicking is now supported in XJed.
  145.       
  146.    9. Several new intrinsics including:
  147.    
  148.           usleep
  149.       is_visible_mark
  150.  
  151.   10. More sophisticated syntax highlighting added by Simon Tatham
  152.       <anakin@pobox.com>.  His approach based on regular
  153.       expressions is available if jed is compiled with
  154.       JED_HAS_DFA_SYNTAX defined (see src/features.h).  See
  155.       jed/doc/dfa.txt for more information.
  156.       
  157.   11. slang_mode mode line changed from "SL" to "SLang".  This makes
  158.       it more consistent with other modes.
  159.  
  160.   12. Mark Olesen's sendmail and mail-alias slang packages have been
  161.       integrated into jed.  The sendmail interface replaces the old
  162.       interface on Unix systems.  See sendmail.sl for more information.
  163.  
  164.   13. I have tried to unify the various makefiles for pc systems.
  165.       There are simply too many compilers and too many incompatable
  166.       make programs for DOS/WINDOWS/OS2 systems and about every other week I
  167.       would receive a new makefile from someone that works with X
  168.       version of make using compiler version Y.  The problem with this is that
  169.       I simply cannot maintain that many makefiles.  See
  170.       jed/src/mkfiles/README for my proposed solution.
  171.  
  172. Changes since 0.97-13
  173.    0. Some intrinsic functions have been renamed:
  174.         whatmode --> what_mode
  175.         setmode --> set_mode
  176.  
  177.    1. New functions:
  178.        
  179.         verror, vmessage  : These take a variable number of arguments in
  180.       vinsert              Sprintf style
  181.     _stk_roll         : rolls the stack
  182.     strchop, strchopr : Chops up a string into substrings
  183.     del_eol           : delete to end of line
  184.     del_through_eol   : delete through end of line
  185.     pop_mark_0        : equiv to pop_mark(0)
  186.     pop_mark_1        : equiv to pop_mark(1)
  187.     go_left_1         : equiv to go_left(1)
  188.     go_right_1        : equiv to go_right (1)
  189.     ffind_char        : like ffind but search for char
  190.     bfind_char        :  
  191.     fsearch_char      :
  192.     bsearch_char      :
  193.     bol_bsearch_char  :
  194.     bol_fsearch_char  :
  195.     
  196.       For details, see the online documentation.
  197.  
  198.    2. narrow_to_region, widen_region:  These are similar to the functions
  199.       `narrow' and `widen' except that these actually delimit editing to a
  200.       region.
  201.       
  202.    3. undo now has redo.  See doc/undo.txt.  This is due to Dan Nelsen
  203.       <dhn@qedinc.com>.
  204.    
  205.    4. In C and SLang modes, the TAB key also adjusts the indentation of
  206.       preprocessor directives.  The variable C_Preprocess_Indent controls
  207.       the amount of indentation.  By default, it is 1.
  208.  
  209.    5. XJed specific: the resource names have been changed to conform more
  210.       closely with other programs.  In particular, XJed must be changed to
  211.       xjed in your .Xdefaults file because XJed now uses the XTerm class.
  212.  
  213.    6. Emacs-like insert/copy-to register operations added.  The actual
  214.       functions are called `reg_insert_register' (Ctrl-X G) and
  215.       `reg_copy_to_register' (Ctrl-X X).  These functions are not available
  216.       on 16 bit systems.
  217.  
  218.    7. Experimental java mode. (Marko Teittinen <marko@tekamah.com>)
  219.  
  220. Changes since 0.97-12
  221.    0. Misc bug fixes.  Nothing major.
  222.  
  223.    1. New intrinsic variable:  REPLACE_PRESERVE_CASE.  If non-zero, replace
  224.       functions will attempt to match the case of the new string with the
  225.       replaced one.  This only happens if the two strings have the same
  226.       length.
  227.  
  228.    2. Maximum keyword length for syntax highlighting has been raised from 16
  229.       characters to 20 characters.
  230.     
  231.    3. C-mode improvements
  232.    4. Big news for wjed users: Luchesar Ionkov seems to have fixed the
  233.       subprocess support under Windows.  There have also been a few other
  234.       wjed bug fixes.
  235.    5. jed's mailer now works properly with mailx.  Someday I need to
  236.       integrate Eric's sendmail patches.
  237.  
  238. Changes since 0.97-11
  239.    1. Xjed was rejecting command line arguments-- now fixed.
  240.    2. Repeat factor now works for `@' type keybindings (macros).
  241.    3. New mousex.sl (jed running in an Xterm--- NOT Xjed).
  242.    4. Misc bug fixes.
  243.    5. More improvements to Windows jed (wjed), specifically pull down menus
  244.       and shell commands are available.  Again, this is due to Luchesar
  245.       Ionkov.
  246.  
  247.          Note: Under MSWINDOWS, os.sl loads a different file (mswmouse.sl)
  248.      to define mouse actions more suitable to a 2 button mouse.  I
  249.      suspect that this file should be modified to make the mouse behave
  250.      more like other Windows programs. e.g., drag mouse to define a
  251.      region then click a menu item to act on the region.  Any
  252.      volunteers?
  253.  
  254. Changes since 0.97-10
  255.  
  256.    0. MS-Windows version of jed now available.  This is called `wjed.exe'.
  257.       Right now, it is rather primative with no support for menus or shell
  258.       interaction.  Of course the mouse works with the middle button
  259.       simulated by the alt key (see jed/doc/mouse.txt).  Thanks to
  260.       lionkov@sf.cit.bg (Luchesar Ionkov)) for the patches.  (He also sent
  261.       me patches for shell interaction but they would not compile under BCC
  262.       3.1).
  263.  
  264.    1. There were many complaints about change number 4 in 0.97-6:
  265.  
  266.            4. XJed: Now when the meta (alt) key is used in
  267.        conjunction with a non-alphanumeric key such as `{',
  268.        the character is simply returned. If this creates a
  269.        backward compatibility problem or appears too
  270.        restrictive, please let me know.
  271.  
  272.       Apparantly, this is too restrictive so I have removed the restriction.
  273.       Email me for for a simple way around this lifting of the restriction.
  274.    2. Directories with names ending in ~ were not getting expanded properly.
  275.    3. Slang Version 0.99-19 is now required.  This implements the new
  276.       intrinsic function `strcompress'.
  277.    4. QNX support added.
  278.    5. Support for an alternate set of keywords added.  The C-mode defines some
  279.       of these keywords such as `exit', `malloc', `strlen', etc...  Use
  280.       something like:
  281.       
  282.           set_color ("keyword1", "green", "white");
  283.       
  284.       to set the colors for this set.
  285.    6. A couple of MSDOS jed bugs found.  One affects the keyboard and the
  286.       other fix corrects a bad regular expression when compiling using bcc.
  287.     
  288.    7. idl mode enhanced with indentation.
  289.  
  290. Changes since 0.97-9
  291.    1. Small bug in cmode.sl dealing with C++ style comments at first line of
  292.       buffer corrected.
  293.    2. Syntax highlighting problem fixed.
  294.    3. Is shell.sl finally fixed under MSDOS?  I think so.
  295.    4. Tiny change to mutekeys.sl.
  296.    5. jed -secure args....   will run jed in secure mode.  This means that
  297.       access to the shell will be denied.
  298.    6. Tiny bug affecting slang_mode corrected.  (Very rare case).
  299.    7. First attempt at a brief mode.  If you want to try it out, add:
  300.        () = evalfile ("brief");
  301.       to your jed.rc file.  Currently this file is only for MSDOS and OS2.
  302.    8. Better EDT support for jed386.exe.  You will need GOLD.COM which is a
  303.       TSR that maps the Numlock key to GOLD.  
  304.    9. Low level keyboard interface for OS/2 and MSDOS re-written.  Let me
  305.       know if there are any inconsistencies.  I have been unable to test it 
  306.       under OS/2.
  307.   10. Is dired fixed for OS/2??
  308.   11. bibtex mode added (Author: Carsten Tinggaard Nielsen,
  309.       tinggard@iesd.auc.dk)
  310.  
  311. Changes since 0.97-8
  312.    1. html syntax highlighting mode added.
  313.    2. New functions: _autoload and _add_completion.  See function
  314.       documentation.  Briefly, these permit slightly faster loading.
  315.    3. Typos corrected in shell.sl, emacs.sl, and dired.sl.
  316.    4. Small correction for file name expansion under VMS.
  317.    5. Ran purify on source code and fixed about two bad memory references.
  318.    6. new nroff mode
  319.    
  320. Changes since 0.97-7
  321.    1. The F1-F12 keys may now be used with jed386.exe and edt.sl.  See
  322.       jed/doc/jed_faq.txt for more on EDT mode and jed386.exe.
  323.    2. The `untab' function has been fixed.  I broke it in 0.97-7 (see below).
  324.    3. Somewhat nasty bug fixed that affected jed386.exe.
  325.    4. Unix and VMS: If the environment variable `COLORTERM' is defined, jed
  326.       will automatically set the variable USE_ANSI_COLORS to a non-zero value.
  327.       This feature is only available when compiled against slang version
  328.       0.99-14.  Patches have also been sent in to the maintainer of the
  329.       color xterm `rxvt' to automatically set this variable.  Incidently, if
  330.       you are using `color_xterm', I suggest that you try out `rxvt'.
  331.    5. New dired.sl and shell.sl courtesy of olesen@weber.me.queensu.ca (Mark Olesen) 
  332.    
  333. Changes since 0.97-6
  334.   -1. Mouse support added to OS/2 version.  (Thanks to John Burnell.   
  335.       <johnb@whio.grace.cri.nz>)
  336.  
  337.    0. ``Expansion hook'' added.  This hook is called upon TAB completion to
  338.       preprocess the file before completion.  The default definition of this
  339.       function expands environment variables when the variable is preceeded
  340.       by a dollar sign, e.g., $HOME.  This function has not been defined for
  341.       VMS since VMS already has this feature built in.
  342.  
  343.       Under Unix, this function also expands ~name to the login directory of
  344.       the user `name'.  The expansion only takes place when the TAB key is
  345.       pressed.
  346.       
  347.       The new intrinsic: set_expansion_hook may be used to change the hook.
  348.       
  349.    1. Under Unix, the function `get_passwd_info' may be used to return
  350.       information about a specified user such as login dir, shell, etc...
  351.       
  352.    2. TeX mode highlighting fixes:
  353.         a. words containing accents now handled properly
  354.     b. The TeX special characters `&_^#' are now colored as `operators'.
  355.     c. Braces `{}' are colored as delimiters.
  356.  
  357.    3. A prefix argument to the `untab' function will cause spaces to be
  358.       converted into tabs.
  359.       
  360.    4. Page up/down commands modified slightly to give appear more intuitive.
  361.    
  362.    5. Misc bug fixes including:
  363.        a. Parenthesis matching now works when `(` is also a comment delimiter.
  364.        
  365.    6. Pasting using the mouse has changed slightly.  Previously, text would
  366.       be pasted at the position of the mouse.  Now, it is pasted at the
  367.       position of the cursor.  This seems more intuitive.
  368.       
  369.       In addition, the editing position is restored to what it was before
  370.       dragging text into the cutbuffer.  Again, this is more intuitive and
  371.       more closely follows the Xterm usage.
  372.       
  373.    7. In C-mode, a if a line is preceeded by a line that ends with \, it is
  374.       indented to the first column.  This is useful for continuation lines.
  375.    8. Better native support for SunOS keyboards (pageup/down/home/end).
  376.    9. The function `shell_cmd' has been changed to return the exit code of the
  377.       subprocess.  Previously, it returned nothing.
  378.   10. idl mode added.  Actually, only syntax highlighting is defined.  This 
  379.       mode takes effect on .pro files.
  380.  
  381. Changes since 0.97-5
  382.    0. New routines for adding keywords.  These include:
  383.    
  384.         add_keyword, define_keywords
  385.     
  386.       See shmode.sl for an example.  Basically, this file implements syntax
  387.       highlighting for Unix sh and csh files.
  388.       
  389.    1. Bug fixed in filename completion.
  390.    2. Kevin Humphreys auctex-for-jed package has been integrated into the
  391.       source.  Thanks Kevin.
  392.    3. Popular combinations of slang functions have been combined to create
  393.       new functions.  These include:
  394.    
  395.          bol (); skip_white ();    ------------------> bol_skip_white ();
  396.      down (1);                 ------------------> down_1 ();
  397.      go_down (1);              ------------------> go_down_1 ();
  398.      up (1);                   ------------------> up_1 ();
  399.      go_up (1);                ------------------> go_up_1 ();
  400.      
  401.       These load twice as fast and use half as much memory.  If I make them
  402.       into intrinsics, they will execute twice as fast.  Jed slang
  403.       programmers are encouraged to use these.
  404.       
  405.    4. XJed: Now when the meta (alt) key is used in conjunction with a
  406.       non-alphanumeric key such as `{', the character is simply returned.
  407.       If this creates a backward compatibility problem or appears too
  408.       restrictive, please let me know.
  409.       
  410.    5. XJed: XJed now will never read a file from stdin.  This means that the
  411.       *stdin* buffer will nolonger appear when it is started from a menu by
  412.       the window manager.
  413.       
  414. Changes since 0.97-4a
  415.  
  416.    0. A COMPLETE rewrite of all the indentation routines.  The new routines 
  417.       are much more customizable through the use of syntax tables.  Now, the
  418.       C mode is completely written in S-Lang.  
  419.       
  420.          New features: 
  421.      
  422.         * Now much easier to add support for new languages.
  423.         * ESC-q will format a comment if it is in the canonical form:
  424.            /*
  425.             *  This is a C comment in
  426.         *  the canonical form
  427.         *  Notice how each line
  428.         *  begins with a `*'.
  429.         */
  430.         * `goto_match' now works in both directions.
  431.         * New C-mode functions: 
  432.             c_end_of_function : ESC Ctrl-E
  433.             c_top_of_function : ESC Ctrl-A
  434.             c_mark_function :   ESC Ctrl-H
  435.       
  436.  
  437.    1. The function `whatline' has been renamed to `what_line' for consistency 
  438.       with other names.
  439.       
  440.    2. New function: translate_region.  This function is capable of modifying 
  441.       all characters in a region according to a lookup table.  This is useful
  442.       for converting buffers between various character sets.  See the new
  443.       version of jed/lib/rot13.sl for an example of its usage.
  444.       
  445.    3. New functionality: yank-pop.  This is implemented in jed/lib/yankpop.sl.
  446.       Unfortunately this is not available on 16bit systems.  This means if you
  447.       use jed.exe you cannot use it.  However, jed386.exe is a 32bit
  448.       executable so it is available.
  449.       
  450.       If you do not know what yank-pop is already, do not worry too much.
  451.       You should not notice its presence.  However, if you do, hopefully you
  452.       will welcome jed's emulation of it.  This was added to improve the
  453.       emacs emulation.  See jed/doc/yankpop.txt for a simple discussion.
  454.  
  455.    4. New intrinsic variable _jed_version added.  This variable is an integer
  456.       that represents the version number.  For 0.97-5, it has the value 9705.
  457.       For 0.97-11, it will have the value 9711 and so on.
  458.       
  459.    5. A bug in jed386.exe was corrected.  This bug was responsible for
  460.       some keyboard lockups.
  461.       
  462. Changes since 0.97-4
  463.    1. Intrinsic function documentation improved.
  464.    2. Source code should now compiled without specifying VAX compatability
  465.       on ALPHA/AXP systems running OpenVMS.  Use the deccmake.com files to
  466.       create jed & slang.
  467.  
  468.  
  469. Changes since 0.97-3
  470.    1.  New intrinsic functions:
  471.          set_color_object: Associate a foreground/background color pair with
  472.         an integer, e.g., set_color_object (31, "green", "red");
  473.      set_column_colors: Allows one to display the columns of a buffer in
  474.         different colors.  For example:
  475.         
  476.            set_color_object (31, "green", "white");
  477.            set_color_object (32, "red", "white");
  478.            set_column_colors (31, 1, 40);
  479.            set_column_colors (32, 41, 80);
  480.         
  481.         Display columns 1 to 40 in green/white and columns 41 to 80 in
  482.         red on white.  This operates on a buffer by buffer basis does
  483.         not work when there is syntax highlighting already associated
  484.         with the buffer.
  485.         
  486.         This function is only useful when the buffer consists of data
  487.         organized in columns, e.g., columns of numbers, dired mode,
  488.         rmail mode, etc...
  489.         
  490.      str_replace: replace substrings in strings
  491.  
  492.    2.  In XJed, set_color("normal", "foreground-color", "background-color"),
  493.        now works.  This means it is nolonger necessary to mess with
  494.        .Xdefaults to set the background color. 
  495.  
  496.    3.  Small problem with expansion of symbolic links fixed.
  497.    4.  It is now possible to set the color used for messages and errors.
  498.        This is accomplished by using, e.g.,
  499.        
  500.             set_color ("message", "blue", "white");
  501.             set_color ("error", "red", "white");
  502.  
  503.    5.  A problem with info failing under VMS has been fixed.
  504.    
  505. Changes since 0.97-2
  506.  
  507.    1.  GPM mouse support under Linux.  This provides jed with complete mouse
  508.        support (dragging, etc...) under the Linux console (See mouse.txt).
  509.        
  510.    2.  Mouse support under MSDOS.  Read doc/mouse.txt for information.
  511.    
  512.    3.  Fixed a keymap problem in Xjed (specifically for Ctrl-_ and Function
  513.        keys).
  514.  
  515. Changes since 0.97-1
  516.  
  517.    1.  `:' key now overwrites instead of inserts in overwrite mode
  518.    2.  Fixed tiny problem with indentation of preprocessor lines when 
  519.        the colon is pressed.
  520.    3.  Corrected the omission of the closing `"' in abbrmisc.sl.
  521.    4.  Problem with replace_across_buffer_files corrected.
  522.    5.  If a file is edited for which one does not have write permission,
  523.        the buffer is made read-only.
  524.    6.  Termcap nolonger used.  JED is now exclusively terminfo.
  525.    
  526. Changes since 0.97-0
  527.  
  528.    1.  Fixed Xjed problem of cutting and pasting with other X applications.
  529.    
  530. This file documents changes and new features found in JED
  531. Changes since 0.96-2:
  532.  
  533.   -20. A bug introduced by `-18' beow that prevented searches from working
  534.        properly when using a macro has been fixed.
  535.        
  536.   -19. `dired' modified such that ^K nolonger runs the function
  537.        `dired_kill_line'.  Instead, one must do:
  538.        
  539.            define dired_hook ()
  540.        {
  541.          local_unsetkey ("^K");
  542.          local_setkey ("dired_kill_line", "^K");
  543.        }
  544.      
  545.     See jed.rc where this is performed.
  546.  
  547.   -18. RETURN key may be used to continue searches.  Also, matches are
  548.        highlighted.  
  549.  
  550.   -17. Variable `No_Backups' added to control whether or not JED is to
  551.        create backup files.
  552.        
  553.   -16. Command line argument parsing modified (in site.sl) to make it easier 
  554.        to write non-interactive scripts, e.g.,
  555.        
  556.           jed -script my-script.sl file1 file2 ...
  557.       
  558.        Basically, `-script' simply loads the next argument (my_script.sl).
  559.        It is up to the script file to interpret the remaining arguments.
  560.        See doc/script.txt for more info.
  561.  
  562.   -15. Trivial modification that allow JED to become a GNU-info reader 
  563.        by using: 
  564.   
  565.          `alias info jed -f info_reader'    (Unix csh)
  566.      $ info :== jed -f info_reader      (VMS)
  567.  
  568.   -14. A VMS bug fixed.  Specifically, the getkey AST is now disabled while
  569.        the main thread is accessing the keyboard buffer.
  570.  
  571.   -13. NEW abbrev mode.  This is a major rewrite of the old abbrev mode.  See
  572.        jed/doc/abbrev.txt for details.
  573.  
  574.   -12. `read_string_with_completion' added to read a string in the mini buffer
  575.        using a list of strings for completion.
  576.  
  577.   -11. Major change in S-Lang library removes the need for functions such as
  578.        `free_array'.  As a result, this function has been removed.
  579.        
  580.   -10. abbrev mode.  This differs from `dabbrev' in the sense that you can
  581.        define global and local abbreviations and use them.  The function
  582.        `toggle_abbrev' may be used to turn the mode on/off.  See abbrev.sl
  583.        for details.
  584.        
  585.    -9. mousex.sl package adds mouse routines to any terminal using the XTerm
  586.        client mouse protocol.  Such terminals include the Linux console
  587.        running selection as well as XTerm itself.  Note: this could be made
  588.        available across a dialup line from a PC using MS-Kermit, Procomm,
  589.        etc... if someone would write the appropriate mouse TSR.
  590.  
  591.    -8. Added `tex_ldots' binding that converts three `.' to \ldots.  
  592.    
  593.    -7. `replace_across_buffer_files' added.  This function allows the user
  594.         to replace a string across all buffers attached to a file.  It is 
  595.     interactive.
  596.        
  597.    -6. Book marks added: `bkmrk_goto_mark' and `bkmrk_set_mark'
  598.        These functions allow the user to set up to 10 bookmarks (0-9)
  599.        and return to a previously set book mark from any buffer.
  600.        These marks are implemented using new jed intrinsics:
  601.        
  602.           `user_mark_buffer'  : returns buffer name associtated with mark 
  603.       `goto_user_mark'    : goto position specified by mark
  604.       `create_user_mark'  : returns a mark at the current position
  605.       
  606.    -5. Automatic detection of ``non-native'' line endings.  On Unix, if a 
  607.        file is read in with ^Ms at the end of lines, it is flagged such that
  608.        writing out the file will preserve the line ending attributes.  A `C' 
  609.        will appear on the status line to indicate this fact.  On DOS, etc...
  610.        if a file is read in without the ^M, it is flagged and an `L' will
  611.        appear on the status line.  Use the function `toggle_crmode'
  612.        to change the attribute.
  613.        
  614.    -4A. New ways added to facilitate associating modes with files:
  615.    
  616.          a.  add_mode_for_extension ("c", "c++");
  617.          This asscoiates c_mode with a file named something.c++.
  618.      b.  If top line of file contains something like: -*- mode -*-
  619.     
  620.        Note that in both cases the mode argument must omit the `_mode' part
  621.        of the name.  In fact, all modes now have names that end in `_mode'.
  622.        
  623.    -4B. `fortran' and `dcl' have been renamed `fortran_mode' and `dcl_mode'.
  624.  
  625.    -3. C mode indenting improved.
  626.    -2. Writing to terminal under VMS SIGNIFICANTLY improved.  Basically I
  627.     just bypassed the VAXC buffered stdio routines in favor of my own.
  628.     This might improve performance for Unix systems as well.
  629.    -1. Emacs style completion added-- press tab to show completions, press
  630.         space to cycle through them.  Note that pressing PageUp/Down keys
  631.     will scroll the completion buffer from the minibuffer.
  632.     0. Bug fixes
  633.     1. Massive restructuring.  Keymaps, Searching, and Terminal I/O moved to
  634.     S-Lang. 
  635.     2. color syntax highlighting in FORTRAN, TeX, and C modes.
  636.     3. TeX mode enhanced--- more to come.
  637.     4. ``menu'' bar can now be hidden-- see jed.rc.
  638.     5. More hooks: c_mode_hook, tex_mode_hook, text_mode_hook, wrap_hook
  639.     6. Better documentation on hooks (see doc/hooks.txt).
  640.     7. showkey binding changed to `Ctrl-H k'.  Also rectangle commands are
  641.        now bound in emacs.sl to emacs bindings.
  642.     8. Mute (Dead or accent) key support added.  See jed.rc
  643.     9. gzipped info file support added for MSDOS
  644.    10. Alt key processing for X-Windows fixed.
  645.    11. Significant additions to dired, e.g, `~' flags all backup files.
  646.    12. Visible bell add to systems that support it (Xjed, pc and OS/2,
  647.        Linux, etc...).
  648.  
  649. Changes since 0.96-1:
  650.  
  651.     1. bug fix regarding regular expressions
  652.     2. Indentation of data statment in fortran mode fixed.
  653.     3  Documentation is improving....
  654.     4. dabbrev mode added (ESC / expands current word based on other
  655.          words in the buffer.)
  656.     5. Now possible to control Xjed syntax highlighting from .Xdefaults file.
  657.     6. Improvements to S-Lang ==> improvements to JED
  658.     7. rmail.sl: added `Rmail_Dont_Reply_To' variable to suppress unwanted
  659.          CCs.  For example, I have:
  660.      
  661.        variable Rmail_Dont_Reply_To = 
  662.       "davis@amy,davis@pacific.mps.ohio-state.edu,davis@amy.tch.harvard.edu";
  663.      
  664.        in my .jedrc file.
  665.  
  666. Changes since 0.96-0:
  667.  
  668.     1. set_color_escape_sequence function added to exploit JED's ability
  669.        to do color syntax highighting on more exotic color terminals.
  670.     2. Preprocessor lines can now be highlighted.  See jed.rc as well as
  671.        doc/syntax.txt for details.
  672.     3. Tiny bug fixes:
  673.         * bug in info.sl found caused by info file that do not end with a 
  674.        newline character
  675.     * isearch.sl is again able to repeat isearch backwards by pressing ^R.
  676.        This bug was introduced in 0.96-0.
  677.     * EDT special insert now works.
  678.     * Archive bit now set when JED creates a new file on MSDOS (only 
  679.        jed.exe had this problem--- not jed386.exe)
  680.     4. Support for CRAY added.
  681.     5. If JED is started without a filename specified, the brief message will
  682.        be displayed warning the user that the scratch buffer will not be
  683.        saved.
  684.     6. On MSDOS, rgrep.exe (recursive grep) is now distributed.  ON Unix,
  685.        simply do `make rgrep' to get a recursive highlighting grep.
  686.        
  687.    Highlights of Major changes for 0.96:
  688.    
  689.     1. OS/2 versions available!!
  690.     2. Color syntax highlighting in C mode.
  691.     3. Much improved indentation for C code.
  692.     4. Improved Fortran mode
  693.     5. Up to 20% faster loading 
  694.     6. jed386.exe distributed with DOS version and runs
  695.         in a Windows DOS box (provides up to 256 Megs of Virtual memory)
  696.  
  697. Changes since 0.95-8b:
  698.    
  699.     0. JED now compiles and runs under OS/2!
  700.     
  701.        OS/2 executables are zipped in the pc distribution.  See install.pc
  702.        for more information.
  703.  
  704.        [ I would like to acknowledge John Burnell (johnb@huia.grace.cri.nz)
  705.      for his work on the OS/2 port.  In addition, I am very grateful to
  706.      Darrel Hankerson (hankedr@mail.auburn.edu), who is responsible for
  707.      the Microsoft C and emx/gcc versions, as well Dominik Wujastyk
  708.      (ucgadkw@ucl.ac.uk) for his contribution to the OS/2 version. ]
  709.  
  710.  
  711.     1. re_fsearch and re_bsearch functions have been changed to return
  712.        1 + the length of the match, if a match was found, or return 0 if no
  713.        match was found.  For example, `re_fsearch("$")' matches the end of a
  714.        line which, strictly speaking, is a match with 0 length.
  715.        
  716.     2. Use `jed -l preparse' to pre-parse the .sl files for faster loading.
  717.        `jed -l preprocess' is now obsolete.  Again, read install.*.
  718.  
  719. Changes since 0.95-7b:
  720.  
  721.     1. Color syntax highlighting added to C mode.  It is possible to
  722.        separately color keywords, strings, numbers, delimeters, comments,
  723.        and operators.  This even works on VMS and Unix systems when using
  724.        character based color terminals such as NCSA telnet, MS-Kermit, 
  725.        etc...  See doc/color.txt and doc/syntax.txt for more information.
  726.        
  727.     2. byte compiling changed to allow preprocessing only.  Simply
  728.        preprocessing is recommended on systems where more than one type of
  729.        JED executable will share the same set of *.slc library files (e.g.,
  730.        Unix where both JED and XJed might be running).  Simply do:
  731.        
  732.           jed -batch -l preprocess.sl
  733.       
  734.        On MSDOS systems with only one version of jed.exe running, use:
  735.        
  736.           jed -batch -l bytecomp.sl
  737.       
  738.  
  739. Changes since 0.95-6b:
  740.  
  741.     1. It is now possible to display 24 hour time on the status line.
  742.        Earlier versions were capable of displaying on AM/PM format.
  743.  
  744.     2. -tmp command line switch added.  This means that the current buffer
  745.        is to not be autosaved or backed up.  This is suitable when JED is
  746.        used as an editor for elm, etc...
  747.        
  748.     3. DJGPP version fixed so that JED can read embedded ^M characters and
  749.        ^Z characters while in text mode.  Of course the ^M is striped if it
  750.        preceeds a line feed character.
  751.        
  752.     4. Improved fortran mode.  The fortran mode is the first mode that I ever
  753.        wrote for JED using S-Lang.  Since then, I have had alot of experience
  754.        with S-Lang and recently I found myself programming FORTRAN again, so
  755.        I rewrote it.  Do `Ctrl-H f fortran' for details.
  756.        
  757. Changes since 0.95-5b:
  758.  
  759.     0. XJED now compiles as a DECWindows executable under VMS.
  760.     
  761.     1. The interactive replace function has been renamed to `replace_cmd' and
  762.        is now implemented in S-lang. It can now search/replace across lines.
  763.        For most users, this change should be transparent.
  764.        
  765.     2. New functions: 
  766.     
  767.           set_buffer_no_backup ()
  768.           set_buffer_no_autosave ()
  769.     
  770.     3. XJed mouse changes:
  771.  
  772.           Clicking on a window status line causes a different behavior.
  773.       Specifically:
  774.  
  775.                 left:  switch to next buffer   
  776.         middle:  split the window
  777.         right:  delete the window
  778.  
  779.           For example, one can quickly move from one buffer to the next by
  780.       simply clicking on the status line with the left mouse button.
  781.  
  782.     4. XJed can nor distinguish shifted and control function keys.  This
  783.        enables one to bind Shift arrow keys and Control arrow keys to
  784.        different functions.
  785.      
  786.     5. Improved indenting in C-mode.
  787.     6. New variables added:
  788.     
  789.           Default_Mode: default mode for a file of unknown extension.
  790.       Startup_With_File: if non-zero, JED will prompt for a filename
  791.          if none was specified on the command line.
  792.     
  793.     
  794. Changes since 0.95b for 0.95-5b.
  795.  
  796.     1. Bug fixes:
  797.          rectangular cut and paste (when cutting single char region from
  798.         empty line)
  799.      minor color problem fixed when scrolling on color terminals
  800.      edt_line function fixed  (kp0 key)
  801.      minor rmail mode changes
  802.      backward RE-search fix.
  803.      info mode bug fixed that deals with multiple word node names
  804.      typo in menu.sl corrrected. The type was causing a STACK_UNDERFLOW
  805.         error to be generated.
  806.      parenthesis blinking bug fixed that manifested itself when
  807.         inserting a parenthesis on a line that was automatically
  808.         horizontally panned.
  809.  
  810.     2. RETURN now selects menu item in info mode.
  811.     3. Now possible to search/replace strings that span multiple lines.
  812.  
  813.     4. In XJed, it is now possible to distinguish between Shift and Control
  814.          function and arrow keys.  Also, every function key now returns
  815.      something (use the function x_set_keysym to change what a function
  816.      returns) 
  817.  
  818.     5. In XJed, clicking on the status line of a window now switches to a
  819.      new buffer for that window.  This makes it possible to conveniently
  820.      cycle through all buffers.
  821.      
  822.     6. rgrep flag now added so that directory links may be followed.  Rgrep
  823.          is a recursive, highlightin grep that is distributed with JED.  See
  824.      doc/rgrep.doc for more information.
  825.  
  826.     7. The search forward/backwad commands are now S-Lang functions which
  827.      means that they may be changed easily.
  828.      
  829.     8. New function for PC versions (DJGPP too!): find_binary_file.
  830.          This function will prompt for a filename and find it in binary
  831.      mode.  A binary mode file is indicated by a `Z' status line flag.
  832.      This means that when the file is saved, it will be saved in binary
  833.      mode as well.  This function provides a transparent way to edit
  834.      binary files under DOS.
  835.      
  836.     9. JED now understands 8 bit control sequences generated by terminals in
  837.          8 bit mode such as DEC VTXXX.  This is particularly relevant when
  838.      using JED on VMS.
  839.  
  840. Changes for version 0.95 (since 0.94-2)
  841.  
  842.     0. JED distribution is different.  If you have built JED in the past,
  843.        please read the install files because things have changed.
  844.     1. Support for column numbers on status line (set LINENUMBERS = 2)
  845.     2. X-Terminal (and DECWindows) version (make xjed).  See doc/xjed.doc
  846.     3. Elm like read/write mail (see rmail.txt-- this is considered ALPHA,
  847.         by default it is not enabled.)
  848.     4. Additional support for Color terminals (allow different colors for
  849.         modelines, regions, etc...)
  850.     5. MUCH Improved support for colors on PC versions (looks MUCH nicer,
  851.          see how it is used in jed.rc)
  852.     6. By popular demand, a new function `describe_bindings'  is available
  853.          that dumps the keybindings for the current keymap.
  854.     7. New variable Stratup_With_File can be set to prompt user for
  855.          a filename if none is specified on the command line.
  856.     8. VMS: A convenient new interface to VMSHELP is now available.  This
  857.          overcomes most of the shortcomings of the VMS HELP command.  
  858.      It is bound to Ctrl-H M.
  859.     9. search_forward + search_backward can now search for strings spanning
  860.          multiple lines.  Also, looking_at can see across multiple lines.
  861.  
  862. Also see changes listed in the next section.
  863.  
  864. *********  Important **************
  865.  
  866. The S-Lang preprocessing conditional compilation declarations have changed.
  867. Now, constructs such as:
  868.  
  869. #ifdef UNIX
  870.   ..
  871. #else
  872.   ..
  873. #endif
  874.  
  875. are used.  This means  that you may have to edit you personal jed.rc file.
  876. Instead, I encourage you to simply copy the jed.rc file shipped with this
  877. version and add your own extensions to it.
  878.  
  879. ************************************
  880. New changes SINCE 0.94-0:
  881.  
  882.     1. New buffer flags:  no backup and no autosave
  883.     2. #ifdef #else #endif preprocessing
  884.     3. skip_chars, bskip_chars changed.  Now, say, `skip_chars("^a-z")' will
  885.          skip ALL characters EXCEPT in range `a-z'.
  886.     4. Default EDT binding of TAB changed to `indent_line'.  See jed.rc
  887.          to change it back.
  888.     5. `occur' function now uses regular expression searches.
  889.     6. Special `linux.sl' file for Linux systems.  See `install.unx'.
  890.     7. New intrinsics: buffer_visible, pop2buf_whatbuf, bury_buffer,
  891.                        regexp_nth_match,
  892.     8. `window_info' intrinsic modified to take a parameter.
  893.     9. `search_file' intrinsic modified for regular expression search.
  894.    10. New support for saving and reusing keyboard macros.  This feature
  895.        has not been exploited yet!
  896.    11. By popluar request:  Highlighting only occurs in the CURRENT window.
  897.    12. Miscellaneous bug fixes.
  898.    
  899. There are also some new S-Lang builtin intrinsic functions:
  900.  
  901.     1. string_match: preforms RE match on a string
  902.     2. string_match_nth: returns information about previous match
  903.     3. Unix specific intrinsics:
  904.     
  905.           unix_kill  :  sends a signal to a process
  906.       unix_ctime :  converts a time value to a string representation
  907.       stat_file  :  performs `stat' on a given file.
  908.       lstat_file :  like stat but returns information about a link
  909.       stat_struct:  returns information from previous stat call.
  910.       chown      :  change owner/group of a file
  911.       chmod      :  change protections of file.
  912.       
  913.     4. It is now possible to perform assignments in variable declaration
  914.        statements:
  915.        
  916.           variable i = 10, y = 20.87;
  917.       
  918.     5. && and || are now flagged as errors.
  919.     
  920. ******************************    
  921. New since 0.94-0 : ------------------------------------------------------------
  922.  
  923. PageUP/Down functions scroll other window if called from the minibuffer.
  924.  
  925. Some defaults changed in jed.rc:  Display line numbers on the status line
  926.   is now the default.
  927.  
  928. Regular expression matching (search/replace):
  929.      re_search_forward, re_search_backward, query_replace_match
  930.     
  931. New S-Lang intrinsics include:
  932.  
  933.      prefix_argument()  : returns value of prefix argument.
  934.      set_status_line(format, flag) : enables user to customize status line
  935.      re_fsearch, re_bsearch, replace_match  : regular expression intrinsics
  936.      getpid  : returns process pid
  937.  
  938. New user variables:
  939.  
  940. DISPLAY_TIME  if non-zero, allows %t processing in status line format.
  941. ALT_CHAR   (ibmpc only) enables Alt-key processing.  Specifically, setting
  942.            this to 27 (Ascii 27) causes ALT-X to generate ESCAPE-X, etc...
  943.        
  944. C_BRA_NEWLINE if non-zero, insert a newline before inserting '{' in C-mode.
  945.            This was the default in previous versions but it now user
  946.        selectable.
  947.  
  948. ------------------------------------------------------------------------------
  949. New features in 0.94-0
  950.  
  951. 0.94-0 does not really add any new functionality to 0.93.  However, there is a
  952. major change:  S-Lang is now very C-Like.  (It can still be programmed as
  953. RPN though, see e.g., info.sl)  By C-like, I mean that you can write S-Lang
  954. functions that look like:
  955.  
  956.     define sum(a, b)    % sum integers from a to b
  957.     {
  958.       variable s, i;
  959.       
  960.       s = 0;
  961.       for (i = a; i <= b; i++) s += i;
  962.       return (s);
  963.     }
  964.     
  965. S-Lang has not lost any functionality, rather, its new syntax makes it more
  966. accessable to others.
  967.  
  968. The new philosophy is that JED is an editor which just happens to embed
  969. S-Lang as its extension language.  Actually, this has always been the
  970. philosophy but not it is even more clear cut.  To compile the new JED (0.94)
  971. you will need to pick up /pub/slang/slang.tar.Z as well.  This is the S-Lang
  972. interpreter code to be compiled as a library and linked in with JED.
  973.  
  974. The only other ``major'' changes are:
  975.  
  976.   1. do_while construct added:
  977.   
  978.      do { stuff... } while (expression);
  979.      
  980.   2. `defined?' replaced by `is_defined'.
  981.   3. Temporary global variables $0, $1, ... $9 added for convenience and
  982.      clarity.
  983.   4. Comment delimeter changed from `;' to `%'.
  984.   5. Arrays are indexed from 0 not 1.
  985.   6. \??? is now Octal ??? NOT decimal ???.  \d??? is decimal.
  986.   7. Sprintf added to intrinsics (formats strings)
  987.      
  988. In addition, you should ``bytecompile'' the .sl files after installing the
  989. new version of jed.  It is this simple:
  990.  
  991.     jed -batch -l bytecomp.sl
  992.  
  993.