Yet another attempted fix for 434383: menus showing up as blocks.
[nedit.git] / ReleaseNotes
blob6b356ca25a565bb8cb68dbb0e1dccbb1ab910988
1           Release Notes for NEdit Version 5.2+, ??
4 $Id: ReleaseNotes,v 1.11 2001/11/20 15:36:57 amai 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.2
19  - Added built-in patterns for CSS, XML, and regular expressions (Regex).
20    Many other pattern updates.
22  - Support for high- and true-color systems.  NEdit now will automatically
23    select the best visual from your X server.  This reduces the chance of
24    running out of colors.
26  - New features in the Find and Replace dialogs:
28    o Replacement across multiple windows in a session.
29    o Case sensitivity may be set independently of regular expressions.
30    o Add "Replace and Find" command, which saves keystrokes when doing
31      a large-scale find & replace.
33  - ClearCase version-extended pathnames.
35  - Many new macro subroutines and variables.
37  - Array support in macros.
39  - Range highlighting of matching delimiters.
41  - Undo and Redo highlights the text that has changed, when visible.
43  - Support for wheel mouse scrolling on servers that support it (XFree86). 
45  - Improved accelerator key handling.
47  - Insert Control Code dialog accepts value in any valid C notation
49  - Optional beeping when search operations wrap.
51  - Additional default search styles.
53  - Optional displaying of path names in the window list menu.
56 Bug Fixes in 5.2
58  - Fix a crash when entering an invalid line number in "Goto Line".
60  - Ignore the Caps-Lock key when invoking accelerators.
62  - Fix problems when running NEdit on 64-bit platforms like Alpha
64  - NEdit failed to open files if some directories above were not "readable"
66  - Fix potential crashes if some system calls fail
68  - When no colors are left, attempt to reuse the closest matching color.  This
69    allows NEdit's syntax highlighting to better coexist with Netscape, which
70    unfortuntely takes all available colors.
72  - "Overtype" mode is now bound to the Insert key, to be consistent with
73    Motif text fields.
75  - Accelerators now available in confirmation dialogs, and may be invoked
76    without the Alt key.
78  - Don't even try to open a directory for editing
80  - Fix a couple of memory corruption problems
82   
83 New Features in 5.1
85  - Significant extensions to the regular expression syntax.  See details
86    below.
88  - Incremental search, and optional search bar.
90  - New ctags code with full support for Exuberant Ctags, better
91    handling of tag collisions, multiple tag file support, on-demand
92    loading of tag files, and automatic reload of modified tag files.
94  - Optional display of line numbers along the left side of the text.
96  - NEdit can now read and write MS DOS format files.
98  - New built-in syntax highlighting patterns for Lex, PostScript, SQL,
99    Many syntax highlighting pattern improvements.
101  - Improved international character set input
103  - New macro subroutines: list_dialog, getenv, set_language_mode.
105  - Optional warnings about external modifications to files
107  - Clearcase awareness
109  - Session manager restart capability
111  - Default language mode "*" for user-defined menu items, allows
112    per-language variations on a common base
114  - Allow additional modifiers like Sun diamond key in user defined
115    accelerators
117  - Option to sort open previous menu.
119  - -geometry and -iconic command line arguments act per-window, and
120    can be specified via nc
122  - -geometry now specified in characters, rather than pixels
124  - -lm (language mode) command line option
126  - Save As dialog defaults to same file name
128  - Better default fonts for Linux systems
130  - .nedit file version mechanism to make future upgrades easier
133 Bug Fixes in 5.1
135  - Crash on large amounts of data fed to shell command which does not
136    take input
138  - Delayed secondary windows when executable statements specified in
139    users .neditmacro file
141  - Many corrections to online help
143  - Many highlight patterns corrections
145  - Using window close box in file open/save dialogs leaves nedit server
146    unresponsive
148  - escape in macro dialogs can cause macro hang
150  - Lesstif-specific fixes: attachment warnings in font selector,
151    Work around replace dialog focus bug.
153  - NEdit no longer maintains original protection settings on files.  It
154    allows them to be changed externally.
157 Details of Regular Expression Changes in 5.1
159   Bug Fixes
161     o Fixed bug that caused character classes with a character range not to
162       work properly if one of the range characters was an escaped character.
164   Improvements In Existing Features
166     o Increased maximum number of capturing parentheses from 40 to 50.
168     o Removed optimization that uses `must match' strings (it didn't work and
169       caused more problems than it solved.)
171     o Improved error messages.
173     o Improved Start-Of-Line and End-Of-Line detection by the `^', `$', and the
174       new `\B' (see below) anchors.  The Start-Of-Word and End-Of-Word anchors
175       `<' and `>' where not enhanced due to syntax color highlighting pattern
176       compatibility issues.
178     o Changed code to use "unsigned char" in most cases instead of "signed
179       char". Also, use of ANSI character functions (e.g. isdigit(), isspace())
180       were added wherever possible.  These changes should improve support for
181       locales other than "C", for example character sets with accented
182       characters.
184     o Added character escapes for:
185       -  \e   ASCII escape character (for environments that use the EBCDIC
186               character set, set the EBCDIC_CHARSET compiler symbol to get the
187               EBCDIC equivalent escape character.)
189       -  \-   minus sign
190       -  \{   left brace
191       -  \}   right brace
193     o Removed the `\"' escape since `"' is not a meta character.
195     o In order to support numeric escapes, use of `\0' as a synonym for `&'
196       in replacement strings was removed.  `\0' now signals the start of a
197       numeric (octal) escape sequence (see below.)
199     o Minor tweaks for improved performance.
201   Enhancements
203     o Octal and Hexadecimal Escapes
205       Octal and hexadecimal escapes begin with \0 and \x (or \X) respectively.
206       For example, \052 and \X2A both specify the `*' character.  Escapes for
207       null (\00 or \x0) are not valid and will generate an error message.
209     o Shortcut Escapes for Common Character Classes
211       \d  digits            0-9
212       \l  letters           a-z and A-Z
213       \s  whitespace        \t, \r, \v, \f, and space
214       \w  word characters   a-z, A-Z, 0-9, and underscore, `_'
216       `\D', `\L', `\S', and `\W' are the same as the lowercase versions except
217       that the resulting character class is negated.
219     o Anchors
221       The `\B' non-word boundary anchor has been added as the logical opposite
222       of `<' and `>' collectively.  This anchor ensures that the left and
223       right characters are either both delimiter characters or both
224       non-delimiter characters.
226     o Word Delimiter Escape Sequences
228       \y   Word delimiter character
229       \Y   Not a word delimiter character
231       The `\y' token matches any single character that is one of the characters
232       that NEdit recognizes as a word delimiter character, while the `\Y' token
233       matches any character that is NOT a word delimiter character.  Note:
234       these are not anchors and DO consume one character of input.
237     o Quantifiers
239       +  Minimal (lazy) Matching Quantifiers
241          *?   Match zero or more
242          +?   Match one at least one
243          ??   Match zero or one
245          These quantifiers match only what is absolutely necessary to achieve
246          a match.
248       +  Counting (or Brace) Quantifier
250          {min,max}  Match from `min' to `max' times the previous regular
251                     expression atom.
253          If `min' is omitted, it is assumed to be zero.  If `max' is omitted,
254          it is assumed to be infinity.  Whether specified or assumed, `min'
255          must be less than or equal to `max'.  If both are omitted, then the
256          construct is the same as `*'.   Note that `{,}' and `{}' are both
257          valid brace constructs.  A single number appearing without a comma,
258          e.g. `{3}' is short for the `{min,min}' construct, or to match
259          exactly `min' number of times.
261     o Non-Capturing Parentheses
263       Non-Capturing Parentheses are of the form `(?:<regex>)' and facilitate
264       grouping only and do not incur the overhead of normal capturing
265       parentheses.
267     o Positive Look-Ahead
269       Positive look-ahead constructs are of the form `(?=<regex>)' and
270       implement a zero width assertion of the enclosed regular expression. In
271       other words, a match of the regular expression contained in the positive
272       look-ahead construct is attempted.  If it succeeds, control is passed to
273       the next regular expression atom, but the text that was consumed by the
274       positive look-ahead is first unmatched (backtracked) to the place in the
275       text where the positive look-ahead was first encountered.
277     o Negative Look-Ahead
279       Negative look-ahead takes the form `(?!<regex>)' and is exactly the same
280       as positive look-ahead except that the enclosed regular expression must
281       NOT match.
283     o Case Sensitivity
285       (?i<regex>)   Case insensitive; `AbcD' and `aBCd' are equivalent.
286       (?I<regex>)   Case sensitive;   `AbcD' and `aBCd' are different.
288       Regular expressions are case sensitive by default, i.e `(?I<regex>)' is
289       assumed.  All regular expression meta characters respond appropriately to
290       case insensitivity including character classes and back-references.
292     o Matching Newlines
294       (?n<regex>)   `.', `[^...]', `\s', `\S' will match newlines
295       (?N<regex>)   `.', `[^...]', `\s', `\S' do not match newlines
297       `(?N<regex>)' is the default behavior.
299     o Comments
301       Comments are of the form `(?#<comment text>)' and can be inserted
302       anywhere and have no effect on the execution of the regular expression.
304     o Notes on New Parenthetical Constructs
306       Except for plain parentheses, none of the parenthetical constructs
307       capture text.  If that is desired, the construct must be wrapped with
308       capturing parentheses, e.g. `((?i<regex))'.
310       All parenthetical constructs can be nested as deeply as desired, except
311       for capturing parentheses which have a limit of 50 sets of parentheses,
312       regardless of nesting level.
315 New Features in 5.0.2:
317  - Word-selection (double click) can be used to select ranges of delimiters
319  - New built-in macro variables: $line, $column, and $modified
321  - Smart-indent mode available for Python language
322    
323  - Minor improvements in default pattern sets for NEdit Macros, X Resources,
324    and Sh/Ksh/Bash
327 Bug Fixes in 5.0.2:
329  - -import did not work as advertised in 5.0.1.  When used, it re-set a
330    number of preferences back to default values.  Could also potentially
331    cause a crash.
333  - Macro -> Repeat crashes on some systems.
335  - Mouse state can get "stuck" on Alpha-based systems.
337  - Combination of auto-wrap, auto-indent, and unbreakable lines extending the
338    width of the window, caused nedit to unnecessarily insert blank lines.
340  - Incorrect case-insensitive comparison in character sets > 128 bits.
342  - in by-word drag-selection (double click then drag) when begun in the middle
343    of a whitespace selection, anchor would revert to original cursor position
344    rather than maintaining the entire whitespace block.
345    
346  - Language mode names containing spaces could not be used in language
347    sensitive user-defined menu items.
348    
349  - New windows did not always see existing learn/replay sequence, recorded
350    before the window was created.
351    
352  - Possible crash in search_string and search_window macros, when used with
353    long search strings.
355  - Possible crash in get_selection("any") macro.
357  - Under Solaris, crashes on window opening, file dialog, and language mode
358    selection, when user-defined sub-menus were used.
359    
360  - Filenames containing spaces could cause the .neditdb file to become
361    unreadable.
362    
363  - Escape key could not be used to cancel file-selection dialogs when the
364    file list had keyboard focus (which it almost always does).
365    
366        
367 New Features in 5.0.1:
368    
369  - Repeat-over-range, and repeat-to-end capability for repeating last
370    command and learn/replay sequence.
371    
372  - Import capability for loading macro/shell menu commands, highlight
373    patterns, and style sets created by other users.
375  - New macro language routines: string_to_clipboard, clipboard_to_string,
376    toupper, tolower, variables: $em_tab_dist.
377    
378  - Additional default highlight patterns for sh and X resources.
380  - Sorted Open Previous menu.
381    
382  - Numerous improvements to default highlighting patterns and smart indent
383    macros.
386 Bug Fixes in 5.0.1:
388  - Various crashes on Motif 2.0 (Linux and FreeBSD) systems, usually
389    associated with opening files and changing language modes.  Usually,
390    but not necessarily, following changes to user-defined menu items.
392  - Background menu activation during drag operation could leave drag
393    unfinished, cause undo to malfunction, and eventually lead to a crash (which
394    was easy to trigger accidentally when the middle button is emulated with
395    mouse-chords on a two button mouse).
397  - X11R6 clients talking to X11R5 servers could crash on font dialog.
399  - Rapid repetition of long macros (such as binding to key and using keyboard
400    repeat) could cause crash.
401    
402  - Several commands which put up dialogs were vulnerable to timing windows
403    where repeating the command could cause a crash.
405  - Calling macro close() routine could cause crash if used to close the window
406    in which the macro was executing.
407    
408  - Using load_macro_file() as an "include" statement in macro files could
409    cause hang.
411  - Artifacts when using non-matching highlight fonts, and making certain types
412    of changes which change the fonts used to display other (not the line being
413    modified) lines in the file.
415  - Auto-newline wrap in overtype mode could duplicate part of wrapped text.
417  - Lower panes in split window mode allowed modification to read-only windows.
419  - Several minor dialog and window focus related problems for explicit (click
420    to focus) users.
422  - Paste Column ignored existing selection.
424  - After copying and re-naming language mode information, highlight patterns
425    and smart indent macros remained attached to the re-named pattern instead of
426    the original.
428  - Trailing newlines should not have been prohibited in Open Selected.
430  - Help for creating smart indent macros was missing.
433 New Features in 5.0
435  - Completed macro extension language (Simple C/awk-like syntax, safe,
436    fully interruptable)
438  - Syntax highlighting.  Built-in patterns for C, C++, Java, Fortran, Pascal,
439    Ada, Perl, Python, Tcl, Awk, Csh, HTML, LaTeX, VHDL, Verilog, and more.
441  - Programmable Smart indent.  (Experimentally, at least.  There are only
442    macros for C and C++, and they may not fit everyone's programming style.)
444  - Language-sensitive preferences
446  - Continuous wrap mode (long line wrapping), in addition to existing
447    automatic-newline wrapping
449  - User-defined menus can be hierarchical and language-sensitive.
451  - Configurable right-button pop up menu
453  - Pan-scrolling
455  - Searchable on-line help
457  - Word boundary matching (<>) in regular expressions
459  - Repeat command
461  - More dialogs have up-arrow recall
463  - White-space selection via double-click
466 Bug Fixes and Enhancements to Existing Features in 5.0
468  - No more limits on editing files containing ascii nul characters
470  - Fill Paragraph command handles leading indents
472  - Select to mark
474  - Better directory defaulting in Open Selected and shell commands
476  - Open Selected processes tilde (~) and wildcards
478  - Goto Mark centers scroll position better
480  - Multiple shell commands can be run simultaneously
482  - Shell command execution doesn't block server command processing
484  - Emulated-tab deletion treats auto-indent as emulated tabs
486  - Auto-wrapping of pasted text is optional (off by default)
488  - Notice that default preferences have changed and ask about saving
489    on exit
491  - Selections remain selected after shell command and filter execution
493  - Wrap margin and emulated tab distance preferences are properly
494    transferred to new panes in split window mode