#include <stdlib.h> to avoid warnings on some systems about no malloc proto.
[nedit.git] / ReleaseNotes
blob36e4e5551bc9357054baa90afe5e4667bc7300e6
1           Release Notes for NEdit Version 5.3RC1, March 2002
4 $Id: ReleaseNotes,v 1.16 2002/06/08 13:56:49 tringali Exp $
6 This file contains last minute notes to users about the release, which are not
7 included in the documentation or README files included with the distribution
8 kits.  It also contains change information, for users who are interested in
9 what bugs have been fixed, and what features have been added in the current
10 version.
12 If you are upgrading NEdit from a version prior to 5.0, please see the notes in
13 the README file which came with the (source or executable) distribution kit,
14 about updating macros and font settings in your .nedit file.
17 New Features in 5.3
19   This is mainly a bug fix release. The list of new features is therefore 
20   limited:
22   - The built-in Help system was revamped. Most notably, a hyperlink
23     mechanism was added for following cross-references.
25   - Enhanced Exuberant ctags support (SF #491109).
27   - Line numbers are available in shell commands (SF #434451).
29   - Goto Line also accepts column numbers (SF #403435).
30   
31   - Automatic line-feed termination when saving is now optional (SF #503073).
33   - A customizable window title (SF #477875/#519092).
35   - Optional syntax based parenthesis matching (iso. purely character based)
36     (SF #513976).
38 Bugs Fixed in 5.3
40   - Find Definition incorrectly reads the X selection when not needed 
41     (SF #520941).
43   - Background popup menu could lock up X-server when used with any of 
44     the lock keys on.
46   - Very wide windows when starting NEdit under fvwm (SF #496526).
48   - Workaround for illegal key bindings installed by other Motif applications,
49     causing PageUp/PageDown and arrow keys to stop responding in NEdit
50     (SF #493421/#525903). This is not an NEdit bug, it just looks like one.
51     
52   - Fix for PageUp/PageDown keys not responding (SF #508961).
53   
54   - Crash when running X on 2nd screen (SF #478234, #500353).
56   - Line number display updating in continous wrap mode (SF #516920).
58   - Performance problem with X Resources highlight patterns (SF #481290).
60   - Menu fonts showing up as blocks (SF #434383)
62   - Lockup's in syntax highlighting (especially Perl) (SF #512961).
64   - Crash when using characters with ASCII code >= 128 in syntax
65     highlighting patterns.
67   - Crash when modifying tab distance in continous wrap mode (SF #510631).
69   - Crash when running NEdit in low-depth color modes.
71   - Continous wrap mode + variable width font display bugs.
73   - Potential scroll bar corruption in continuous wrap mode (SF #510765).
75   - Workaround for selection copy/paste problems with recent versions
76     of gnome-terminal.
78   - Jump to tags only referenced by line number.
80   - Composed characters in learned sequence (SF #480966).
82   - Missing titles in some dialogs (SF #480960).
84   - Macro language: continue statement outside loop crash (SF #495293).
86   - Rectangular overstrike past fixes (SF #487945).
88   - Hard-coded statistics line font (SF #487153).
90   - Open filenames starting with a dash (SF #485610).
92   - Crash when closing window of non-existing file while error dialog is up.
94   - Bad CapsLock grab on certain keyboard configurations (SF #482504).
96   - Replacements in rectangular selections could sometimes fail.
97   
98   - Various buffer overflow fixes.
100   - Multiple selection dialog does not pop up on first find (SF #473602).
101   
102   - Tag not found (SF #466742).
103   
104   - Files opened with -read command line option could not be unlocked.
106 New Features in 5.2
108  - Added built-in patterns for CSS, XML, and regular expressions (Regex).
109    Many other pattern updates.
111  - Support for high- and true-color systems.  NEdit now will automatically
112    select the best visual from your X server.  This reduces the chance of
113    running out of colors.
115  - New features in the Find and Replace dialogs:
117    o Replacement across multiple windows in a session.
118    o Case sensitivity may be set independently of regular expressions.
119    o Add "Replace and Find" command, which saves keystrokes when doing
120      a large-scale find & replace.
122  - ClearCase version-extended pathnames.
124  - Many new macro subroutines and variables.
126  - Array support in macros.
128  - Range highlighting of matching delimiters.
130  - Undo and Redo highlights the text that has changed, when visible.
132  - Support for wheel mouse scrolling on servers that support it (XFree86).
134  - Improved accelerator key handling.
136  - Insert Control Code dialog accepts value in any valid C notation
138  - Optional beeping when search operations wrap.
140  - Additional default search styles.
142  - Optional displaying of path names in the window list menu.
145 Bug Fixes in 5.2
147  - Fix a crash when entering an invalid line number in "Goto Line".
149  - Ignore the Caps-Lock key when invoking accelerators.
151  - Fix problems when running NEdit on 64-bit platforms like Alpha
153  - NEdit failed to open files if some directories above were not "readable"
155  - Fix potential crashes if some system calls fail
157  - When no colors are left, attempt to reuse the closest matching color.  This
158    allows NEdit's syntax highlighting to better coexist with Netscape, which
159    unfortuntely takes all available colors.
161  - "Overtype" mode is now bound to the Insert key, to be consistent with
162    Motif text fields.
164  - Accelerators now available in confirmation dialogs, and may be invoked
165    without the Alt key.
167  - Don't even try to open a directory for editing
169  - Fix a couple of memory corruption problems
172 New Features in 5.1
174  - Significant extensions to the regular expression syntax.  See details
175    below.
177  - Incremental search, and optional search bar.
179  - New ctags code with full support for Exuberant Ctags, better
180    handling of tag collisions, multiple tag file support, on-demand
181    loading of tag files, and automatic reload of modified tag files.
183  - Optional display of line numbers along the left side of the text.
185  - NEdit can now read and write MS DOS format files.
187  - New built-in syntax highlighting patterns for Lex, PostScript, SQL,
188    Many syntax highlighting pattern improvements.
190  - Improved international character set input
192  - New macro subroutines: list_dialog, getenv, set_language_mode.
194  - Optional warnings about external modifications to files
196  - Clearcase awareness
198  - Session manager restart capability
200  - Default language mode "*" for user-defined menu items, allows
201    per-language variations on a common base
203  - Allow additional modifiers like Sun diamond key in user defined
204    accelerators
206  - Option to sort open previous menu.
208  - -geometry and -iconic command line arguments act per-window, and
209    can be specified via nc
211  - -geometry now specified in characters, rather than pixels
213  - -lm (language mode) command line option
215  - Save As dialog defaults to same file name
217  - Better default fonts for Linux systems
219  - .nedit file version mechanism to make future upgrades easier
222 Bug Fixes in 5.1
224  - Crash on large amounts of data fed to shell command which does not
225    take input
227  - Delayed secondary windows when executable statements specified in
228    users .neditmacro file
230  - Many corrections to online help
232  - Many highlight patterns corrections
234  - Using window close box in file open/save dialogs leaves nedit server
235    unresponsive
237  - escape in macro dialogs can cause macro hang
239  - Lesstif-specific fixes: attachment warnings in font selector,
240    Work around replace dialog focus bug.
242  - NEdit no longer maintains original protection settings on files.  It
243    allows them to be changed externally.
246 Details of Regular Expression Changes in 5.1
248   Bug Fixes
250     o Fixed bug that caused character classes with a character range not to
251       work properly if one of the range characters was an escaped character.
253   Improvements In Existing Features
255     o Increased maximum number of capturing parentheses from 40 to 50.
257     o Removed optimization that uses `must match' strings (it didn't work and
258       caused more problems than it solved.)
260     o Improved error messages.
262     o Improved Start-Of-Line and End-Of-Line detection by the `^', `$', and the
263       new `\B' (see below) anchors.  The Start-Of-Word and End-Of-Word anchors
264       `<' and `>' where not enhanced due to syntax color highlighting pattern
265       compatibility issues.
267     o Changed code to use "unsigned char" in most cases instead of "signed
268       char". Also, use of ANSI character functions (e.g. isdigit(), isspace())
269       were added wherever possible.  These changes should improve support for
270       locales other than "C", for example character sets with accented
271       characters.
273     o Added character escapes for:
274       -  \e   ASCII escape character (for environments that use the EBCDIC
275               character set, set the EBCDIC_CHARSET compiler symbol to get the
276               EBCDIC equivalent escape character.)
278       -  \-   minus sign
279       -  \{   left brace
280       -  \}   right brace
282     o Removed the `\"' escape since `"' is not a meta character.
284     o In order to support numeric escapes, use of `\0' as a synonym for `&'
285       in replacement strings was removed.  `\0' now signals the start of a
286       numeric (octal) escape sequence (see below.)
288     o Minor tweaks for improved performance.
290   Enhancements
292     o Octal and Hexadecimal Escapes
294       Octal and hexadecimal escapes begin with \0 and \x (or \X) respectively.
295       For example, \052 and \X2A both specify the `*' character.  Escapes for
296       null (\00 or \x0) are not valid and will generate an error message.
298     o Shortcut Escapes for Common Character Classes
300       \d  digits            0-9
301       \l  letters           a-z and A-Z
302       \s  whitespace        \t, \r, \v, \f, and space
303       \w  word characters   a-z, A-Z, 0-9, and underscore, `_'
305       `\D', `\L', `\S', and `\W' are the same as the lowercase versions except
306       that the resulting character class is negated.
308     o Anchors
310       The `\B' non-word boundary anchor has been added as the logical opposite
311       of `<' and `>' collectively.  This anchor ensures that the left and
312       right characters are either both delimiter characters or both
313       non-delimiter characters.
315     o Word Delimiter Escape Sequences
317       \y   Word delimiter character
318       \Y   Not a word delimiter character
320       The `\y' token matches any single character that is one of the characters
321       that NEdit recognizes as a word delimiter character, while the `\Y' token
322       matches any character that is NOT a word delimiter character.  Note:
323       these are not anchors and DO consume one character of input.
326     o Quantifiers
328       +  Minimal (lazy) Matching Quantifiers
330          *?   Match zero or more
331          +?   Match one at least one
332          ??   Match zero or one
334          These quantifiers match only what is absolutely necessary to achieve
335          a match.
337       +  Counting (or Brace) Quantifier
339          {min,max}  Match from `min' to `max' times the previous regular
340                     expression atom.
342          If `min' is omitted, it is assumed to be zero.  If `max' is omitted,
343          it is assumed to be infinity.  Whether specified or assumed, `min'
344          must be less than or equal to `max'.  If both are omitted, then the
345          construct is the same as `*'.   Note that `{,}' and `{}' are both
346          valid brace constructs.  A single number appearing without a comma,
347          e.g. `{3}' is short for the `{min,min}' construct, or to match
348          exactly `min' number of times.
350     o Non-Capturing Parentheses
352       Non-Capturing Parentheses are of the form `(?:<regex>)' and facilitate
353       grouping only and do not incur the overhead of normal capturing
354       parentheses.
356     o Positive Look-Ahead
358       Positive look-ahead constructs are of the form `(?=<regex>)' and
359       implement a zero width assertion of the enclosed regular expression. In
360       other words, a match of the regular expression contained in the positive
361       look-ahead construct is attempted.  If it succeeds, control is passed to
362       the next regular expression atom, but the text that was consumed by the
363       positive look-ahead is first unmatched (backtracked) to the place in the
364       text where the positive look-ahead was first encountered.
366     o Negative Look-Ahead
368       Negative look-ahead takes the form `(?!<regex>)' and is exactly the same
369       as positive look-ahead except that the enclosed regular expression must
370       NOT match.
372     o Case Sensitivity
374       (?i<regex>)   Case insensitive; `AbcD' and `aBCd' are equivalent.
375       (?I<regex>)   Case sensitive;   `AbcD' and `aBCd' are different.
377       Regular expressions are case sensitive by default, i.e `(?I<regex>)' is
378       assumed.  All regular expression meta characters respond appropriately to
379       case insensitivity including character classes and back-references.
381     o Matching Newlines
383       (?n<regex>)   `.', `[^...]', `\s', `\S' will match newlines
384       (?N<regex>)   `.', `[^...]', `\s', `\S' do not match newlines
386       `(?N<regex>)' is the default behavior.
388     o Comments
390       Comments are of the form `(?#<comment text>)' and can be inserted
391       anywhere and have no effect on the execution of the regular expression.
393     o Notes on New Parenthetical Constructs
395       Except for plain parentheses, none of the parenthetical constructs
396       capture text.  If that is desired, the construct must be wrapped with
397       capturing parentheses, e.g. `((?i<regex))'.
399       All parenthetical constructs can be nested as deeply as desired, except
400       for capturing parentheses which have a limit of 50 sets of parentheses,
401       regardless of nesting level.
404 New Features in 5.0.2:
406  - Word-selection (double click) can be used to select ranges of delimiters
408  - New built-in macro variables: $line, $column, and $modified
410  - Smart-indent mode available for Python language
412  - Minor improvements in default pattern sets for NEdit Macros, X Resources,
413    and Sh/Ksh/Bash
416 Bug Fixes in 5.0.2:
418  - -import did not work as advertised in 5.0.1.  When used, it re-set a
419    number of preferences back to default values.  Could also potentially
420    cause a crash.
422  - Macro -> Repeat crashes on some systems.
424  - Mouse state can get "stuck" on Alpha-based systems.
426  - Combination of auto-wrap, auto-indent, and unbreakable lines extending the
427    width of the window, caused nedit to unnecessarily insert blank lines.
429  - Incorrect case-insensitive comparison in character sets > 128 bits.
431  - in by-word drag-selection (double click then drag) when begun in the middle
432    of a whitespace selection, anchor would revert to original cursor position
433    rather than maintaining the entire whitespace block.
435  - Language mode names containing spaces could not be used in language
436    sensitive user-defined menu items.
438  - New windows did not always see existing learn/replay sequence, recorded
439    before the window was created.
441  - Possible crash in search_string and search_window macros, when used with
442    long search strings.
444  - Possible crash in get_selection("any") macro.
446  - Under Solaris, crashes on window opening, file dialog, and language mode
447    selection, when user-defined sub-menus were used.
449  - Filenames containing spaces could cause the .neditdb file to become
450    unreadable.
452  - Escape key could not be used to cancel file-selection dialogs when the
453    file list had keyboard focus (which it almost always does).
456 New Features in 5.0.1:
458  - Repeat-over-range, and repeat-to-end capability for repeating last
459    command and learn/replay sequence.
461  - Import capability for loading macro/shell menu commands, highlight
462    patterns, and style sets created by other users.
464  - New macro language routines: string_to_clipboard, clipboard_to_string,
465    toupper, tolower, variables: $em_tab_dist.
467  - Additional default highlight patterns for sh and X resources.
469  - Sorted Open Previous menu.
471  - Numerous improvements to default highlighting patterns and smart indent
472    macros.
475 Bug Fixes in 5.0.1:
477  - Various crashes on Motif 2.0 (Linux and FreeBSD) systems, usually
478    associated with opening files and changing language modes.  Usually,
479    but not necessarily, following changes to user-defined menu items.
481  - Background menu activation during drag operation could leave drag
482    unfinished, cause undo to malfunction, and eventually lead to a crash (which
483    was easy to trigger accidentally when the middle button is emulated with
484    mouse-chords on a two button mouse).
486  - X11R6 clients talking to X11R5 servers could crash on font dialog.
488  - Rapid repetition of long macros (such as binding to key and using keyboard
489    repeat) could cause crash.
491  - Several commands which put up dialogs were vulnerable to timing windows
492    where repeating the command could cause a crash.
494  - Calling macro close() routine could cause crash if used to close the window
495    in which the macro was executing.
497  - Using load_macro_file() as an "include" statement in macro files could
498    cause hang.
500  - Artifacts when using non-matching highlight fonts, and making certain types
501    of changes which change the fonts used to display other (not the line being
502    modified) lines in the file.
504  - Auto-newline wrap in overtype mode could duplicate part of wrapped text.
506  - Lower panes in split window mode allowed modification to read-only windows.
508  - Several minor dialog and window focus related problems for explicit (click
509    to focus) users.
511  - Paste Column ignored existing selection.
513  - After copying and re-naming language mode information, highlight patterns
514    and smart indent macros remained attached to the re-named pattern instead of
515    the original.
517  - Trailing newlines should not have been prohibited in Open Selected.
519  - Help for creating smart indent macros was missing.
522 New Features in 5.0
524  - Completed macro extension language (Simple C/awk-like syntax, safe,
525    fully interruptable)
527  - Syntax highlighting.  Built-in patterns for C, C++, Java, Fortran, Pascal,
528    Ada, Perl, Python, Tcl, Awk, Csh, HTML, LaTeX, VHDL, Verilog, and more.
530  - Programmable Smart indent.  (Experimentally, at least.  There are only
531    macros for C and C++, and they may not fit everyone's programming style.)
533  - Language-sensitive preferences
535  - Continuous wrap mode (long line wrapping), in addition to existing
536    automatic-newline wrapping
538  - User-defined menus can be hierarchical and language-sensitive.
540  - Configurable right-button pop up menu
542  - Pan-scrolling
544  - Searchable on-line help
546  - Word boundary matching (<>) in regular expressions
548  - Repeat command
550  - More dialogs have up-arrow recall
552  - White-space selection via double-click
555 Bug Fixes and Enhancements to Existing Features in 5.0
557  - No more limits on editing files containing ascii nul characters
559  - Fill Paragraph command handles leading indents
561  - Select to mark
563  - Better directory defaulting in Open Selected and shell commands
565  - Open Selected processes tilde (~) and wildcards
567  - Goto Mark centers scroll position better
569  - Multiple shell commands can be run simultaneously
571  - Shell command execution doesn't block server command processing
573  - Emulated-tab deletion treats auto-indent as emulated tabs
575  - Auto-wrapping of pasted text is optional (off by default)
577  - Notice that default preferences have changed and ask about saving
578    on exit
580  - Selections remain selected after shell command and filter execution
582  - Wrap margin and emulated tab distance preferences are properly
583    transferred to new panes in split window mode