GNU Zile NEWS                                         -*- outline -*-

* Noteworthy changes in release ?.? (????-??-??) [?]


* Noteworthy changes in release 2.4.14 (2017-10-06) [stable]

** Bug fixes

  Update gnulib to cope with printf restrictions on macOS 10.13
  (Bug #52173; thanks fxcoudert)

** Build-related

  Use gnulib valgrind-tests module to run tests.

  Add pushing release tag to dorelease target.


* Noteworthy changes in release 2.4.13 (2016-10-18) [stable]

** Bug fixes

  Document correct location of dotzile.sample in man page.


* Noteworthy changes in release 2.4.12 (2016-10-17) [stable]

** Bug fixes

  Remove obsolete variable transient-mark-mode.


* Noteworthy changes in release 2.4.11 (2014-02-26) [stable]

** Bug fixes

  Fix timeradd macro for systems that need it (thanks to Craig
  Phillips for the report and fix).


* Noteworthy changes in release 2.4.10 (2014-02-25) [stable]

** Bug fixes

  Actually use libgc. All of the previous 2.4 releases were eating all
  your memory.

  Fix speed of search on large buffers (previously, the entire buffer
  was copied for each search). The fix was copied from Zee.

  Make query-replace and save file prompt handling closer to Emacs.

  Fix many printf format bugs in user functions, thanks to GCC.

** Build-related

  Use pkgconfig to find libgc.

  Improve use of GCC warnings.

** Miscellaneous

  Some code clean-up.


* Noteworthy changes in release 2.4.9 (2012-10-01) [stable]

** Bug fixes

  Fix crash on out-of-range goto-char.

  Set mark on insert-file.

  Minor documentation fixes.

  Build system cleanups.


* Noteworthy changes in release 2.4.8 (2012-07-13) [stable]

** New features

  Improve feedback during large pastes.

  Various minor code improvements.

** Build-related

  Fix a bug in parallel builds.

  Update gnulib to fix building with glibc 2.16.

  Various minor fixes and improvements.

  Use more GCC attributes.


* Noteworthy changes in release 2.4.7 (2012-03-20) [stable]

** Bug fixes

  Fix a potential crash and cosmetic bug in global-set-key when used
  interactively.

** Build-related

  Add lots more tests.


* Noteworthy changes in release 2.4.6 (2012-02-18) [stable]

** Bug fixes

   Fix a crash in non-incremental search the first time it is used
   interactively.


* Noteworthy changes in release 2.4.5 (2012-02-08) [stable]

** Bug fixes

  Fix an egregious bug resulting in a crash whenever a non-existent
  file was edited.

  Fix other potential crash bugs in the low-level text-handling
  routine estr_replace.


* Noteworthy changes in release 2.4.4 (2012-02-03) [stable]

** New features

  find-file and find-file-read-only now work non-interactively.

** Build-related

  Minor build system fixes (thanks to Nelson Beebe for one).

** Miscellaneous

  Some code clean-up.

  Slight speed improvement to general editing operations.


* Noteworthy changes in release 2.4.3 (2011-12-20) [stable]

** Bug fixes

  Fix a crash on certain terminals.

  Fix a recently-introduced display bug in isearch.


* Noteworthy changes in release 2.4.2 (2011-10-05) [stable]

** Bug fixes

  Fix some serious display performance bugs introduced in 2.4.0.60.

** Build-related

  Don't enable Valgrind by default, and explain that correct
  suppressions are needed to use it successfully.


* Noteworthy changes in release 2.4.1 (2011-09-20) [stable]

  This is the first release in a new stable series.

** Bug fixes

  Fix a long-standing bug in uniarg handling in macros.

  Fix display of percentage position in buffer.

  Fix display of search string in query-replace.

  Fix poor performance of fill-paragraph.

  Fix handling of Backspace/^H by looking at termcap kbs setting.

** Build-related

  Several fixes and improvements were made to the build system.

* Noteworthy changes in release 2.4.0.60 (2011-08-19) [beta]

  This release is a major update, upping the dependencies from C89 to
  C99, from POSIX-1.2001 to POSIX-1.2008 (though in fact Zile will
  still build on many other POSIX and non-POSIX systems thanks to
  gnulib), and adding a dependency on libgc. Together these changes
  have allowed the removal of hundreds of lines of code and the
  elimination of whole classes of bug (in particular, classic
  memory-management bugs); overall, combined with continued
  simplification, Zile 2.4.0.60 is well over 1,000 lines of code, or
  10%, shorter than the previous stable release, 2.3.24.

  Several old bugs have been fixed, a few more esoteric features
  removed, and Emacs-compliance has been improved. However, the major
  rewrite has almost certainly introduced new bugs which have not yet
  been found and fixed, hence the alpha status of this release.
  Distribution packagers are encouraged to try packaging this version
  to find any problems with the updated build system and dependencies.

* Noteworthy changes in release 2.3.24 (2011-04-29) [stable]

** Bug fixes

  Fix kill-line with prefix argument.

  Fix a cosmetic problem with multiple ESC-digit combinations.

  Use gnulib’s mkstemp to avoid problems on some platforms.

  Fix initial screen setup when some files are loaded on the command
  line.

** Build-related

  Re-automate a bit more of the release, using gnulib and woger.

  Add more compiler warnings.

** Miscellaneous

  As usual, various bits of code cleanup and simplification.

* Noteworthy changes in release 2.3.23 (2011-03-14) [stable]

** Bug fixes

  {beginning,end}-of-buffer now take account of transient-mark-mode
  (bug present since “forever”).

** Build-related

  Turn on more compiler and build system, and run-time checks (thanks,
  gnulib!).

* Noteworthy changes in release 2.3.22 (2011-03-03)

This release fixes a bug in forward regex isearch introduced recently,
and makes the build system use silent rules by default.

Release 2.3.21

This release fixes a bug that caused build failure on non-GNU systems,
and a bug in backward search introduced in 2.3.18, and simplifies the
test system. A little other code cleanup was done.

Release 2.3.20

This release fixes a potential buffer overflow, search and replace
with embedded NULs, a bug in the build system (the Zile-only tests now
run correctly when an EMACS environment variable is defined), and a
bug introduced in 2.3.17 which caused consecutive kills not to save
the killed text (thanks to Chris Leyon for the report). Some code was
cleaned up and better use made of gnulib. The build scripts that were
previously in Lua have been rewritten in Perl; Perl is now required to
build Zile (previously, Lua was not required, at the expense of making
the build system more complicated and fragile). A cyclomatic
complexity report on the C code can now be produced.

Release 2.3.19

This release fixes a space leak, a small bug in reading filenames in
the minibuffer introduced in 2.3.18, and some behaviour that was not
the same as Emacs, and cleans up the code a little.

Release 2.3.18

This release fixes some minor space leaks, a read of freed memory, and
a bug in quoted-insert, stops Zile from catching the user signal
SIGQUIT, and cleans the code up a little.

Release 2.3.17

This release fixes a crash in undo introduced in 2.3.16 as well as
some small bugs in delete-window, and contains some code cleanup.

Release 2.3.16

This release fixes a potential buffer overrun, and a long-standing bug
in the handling of the key string "C-_", and cleans up the code a
little more.

Release 2.3.15

This release fixes the default universal argument, which should be 4
but was 16, and also some cosmetic errors with the display of
universal arguments in the minibuffer. Some fixes to the build system
were also made (thanks to Giuseppe Scrivano).

Release 2.3.14

This release fixes a minor bug in filename tab expansion, which
resulted in `/' being expanded to `~/'.

Release 2.3.13

This release fixes bugs in `kill-line`, `scroll-up' and `scroll-down',
squashes some space leaks found by Valgrind, and fixes some build
problems reported by the indefatigable Nelson Beebe.

Release 2.3.12

This release fixes the +LINE command-line action, which was broken a
few releases ago, and makes a cosmetic fix to temporary buffers.

Release 2.3.11

This release fixes a crash in `find-alternate-file', a build system
bug, and various cosmetic bugs, and cleans up the code a little.

Release 2.3.10

This release runs the test suite on Emacs as well as Zile (currently,
requires Emacs 23 or later), and contains many small fixes to both the
test suite and to Zile to improve Emacs compatibility. Various other
bug fixes, improvements and tidy-ups have also been made. Note in
particular that the commands `suspend-zile', `save-buffers-kill-zile'
and `view-zile-FAQ' are now called `suspend-emacs',
`save-buffers-kill-emacs' and `view-emacs-FAQ' respectively, and
`kill-line' now works with non-positive arguments. Portability has
been improved, in particular to DOS systems.

Release 2.3.9

This release fixes a build problem on OSF/1.

Release 2.3.8

This release fixes a crash in find-file-alternate, and another
potential crash.

Release 2.3.7

This release fixes a crash in query-replace and a highlighting bug,
both introduced in 2.3.5. Some code cleanup was done. A bug in the
build system that caused help2man to be required to build Zile was
removed.

Release 2.3.6:

This release fixes a build-system bug that caused Lua to be required
to build the release.

Release 2.3.5:

This release fixes a bug in write-file, where the undo state was not
properly updated, resulting in dirty states being marked clean. A
crash bug in paragraph filling was fixed, and some other minor bugs.
The --funcall option was reintroduced for backwards compatibility with
Zile 2.2. The build system was made more portable. Some code cleanup
was done.

Release 2.3.4:

This release fixes yet another bug in filename completion, and a
potential crash that the bug exposed. Some minor code cleanup was
performed.

Release 2.3.3:

This release fixes two more bugs in filename completion introduced in
2.3.1. Users of 2.3.1 and 2.3.2 should upgrade. Some minor code
cleanup was also performed.

Release 2.3.2:

This release fixes a bug in filename completion introduced in the
previous release that had serious results, and some minor problems in
the build system, and improves the installation instructions. help2man
is now needed to build Zile (and has been since 2.3.1). I'm sorry I
described DejaGnu as "flaky" in my previous release announcement; the
faults I encountered were those of the underlying expect/Tcl
combination, and not DejaGnu's.

Release 2.3.1:

This release contains a rewrite of the test suite which drives Zile
directly, as DejaGnu proved to be insufficiently portable, and too
flaky. Two commands have been added to make it possible to write all
the tests in Lisp, namely execute-kbd-macro and insert-char. The
--script flag is now --load, which is what it really does. Various
commands have been made to work non-interactively. Duplication has
been reduced by generating much of the documentation from the code.
The info manual, which was not particularly useful and only duplicated
information available elsewhere, has been removed. Other small fixes
and improvements have been made.

Release 2.3.0:

This release continues the code cleanup and portability fixes started
in 2.2.60. gnulib is now used extensively, and 2,000 lines of code, or
about 20% of the code base, has been removed by refactoring,
simplification, and use of gnulib. The new minor version number
reflects the magnitude of the change.

To try to limit the number of bugs introduced as a result, and to aid
future maintenance, a DejaGnu test suite has been added, which tests
almost all the interactive commands.

Many small bugs have been fixed, including cases where Zile did not
behave like Emacs; some small limitations of Zile with respect to
Emacs have been removed.

Users are for the most part encouraged to upgrade, as this release is
believed to be stable; however, cautious users may want to wait for
further 2.3.x releases, or for a suitable length of time to elapse.

Release 2.2.61:

This release uses gnulib for regex, getopt, vasprintf, and various
other features, rather than previous ad hoc solutions, to improve
portability.

Release 2.2.60:

This release attempts to improve portability by using gnulib for
various non-standard features instead of idiosyncratic code and making
various other fixes. Thanks to Nelson Beebe for reporting many build
problems on a wide range of platforms; unfortunately I've not been
able to establish how many of them this release fixes. A crash and
related bug on attempting to kill when mark and point are the same
have been fixed. Some fatal error messages have been improved.

Release 2.2.59:

This release fixes various problems with release 2.2.58, including
shipping the wrong source code (oops), and automates the GNU release
process so that errors of this sort should no longer happen. The build
system was tidied a little.

Release 2.2.58:

This release makes Zile's transition to being a GNU program. Note the
new web site, distribution URL and support addresses. This release
also fixes the display of errors that occur during startup.

Release 2.2.57:

This release changes the code to meet GNU coding standards. It's not
recommended for users because there are no (intended!) functional
changes whatsoever, and it's just possible that new bugs have been
introduced.

Release 2.2.56:

This release fixes a bug that prevented top-bit-set characters being
bindable to commands.

Release 2.2.55:

This release allows Zile to produce core dumps when it crashes,
handles SIGBUS, and fixes a crash caused by trying to bind a command
to the empty string.

Changes since Zile 2.2

* Fix macro creation.
* Add --funcall back.
* termcap terminal replaced with ncurses again.
* Removed Allegro and EPOC support.
* Incremental search improved.
* "true" and "false" changed to "t" and "nil".
* Allow key-binding in .zile.
* Design fixes to mimic Emacs better.
* Various bug fixes.

Changes between Zile 2.0 - Zile 2.2

* More code cleanup.
* .zilerc replaced by .zile, which is a pseudo-Lisp file.
* Various other bug, design and documentation fixes.
* Add case-replace and kill-whole-line.
* Change command-line options to be more like Emacs.

Changes between Zile 1.7 BETA 3 - Zile 2.0

* Major modes and fontlock removed.
* Versioned backups and many other small frivolous features removed.
* FAQ overhauled.
* Many TODOs done, including functions added (notably fill-paragraph).
* Massive code cleanup.
* Build system overhauled.
* Support for different line endings.
* Port to EPOC.
* ncurses terminal replaced by termcap; allegro terminal added.

Changes between Zile 1.7 BETA 2 - Zile 1.7 BETA 3

* Changed Zile license from BSD to GNU GPL.
* You can use M-p and M-n (or Up and Down) in minibuffer to navigate
  through history elements.
* Added `transient-mark-mode' and `highlight-nonselected-windows'
  variables (removed old `highlight-region').
* Added `delete-blank-lines'.
* Modified the internal structures to handle point in a better way.
* Support indentation for text-mode.
* Added regexp search functions.
* Now the `exchange-point-and-mark' activates the mark.
* Fixed `insert_char' to don't move the mark when a character is
  inserted in the same mark position (this fixes the
  `exchange-point-and-mark' after a `yank').
* Fixed `insert_nstring' (used by `yank' for example) when it is used
  in overwrite-mode.
* Modified `previous-line' and `next-line' to Emacs behavior.
* Added `forward-sexp', `backward-sexp', `transpose-sexp', and
  `mark-sexp'.
* Added `forward-line' and `transpose-lines'.
* Added `transpose-chars' and `transpose-words' (they don't support
  uniarg yet).
* Fixed `forward-word'.
* `C-q' doesn't support overwrite-mode.
* Fixed `overwrite-mode' to Emacs behavior.
* Fixed `revert_action' to handle nested undo-sequences.
* Added `delete-horizontal-space' and `just-one-space'.
* Fixed a bug in strtokey0 to handle `M-\' key combination.
* Fixed the clock, now is updated correctly.
* Added `mark-word'.
* Fixed `isearch' to stop recording macros when you press C-g.
* Fixed the column indicator in the status line (now 0 is the first
  column).
* Modified `universal_argument' to Emacs behavior.
* Fixed overflow for long variable names in configuration file.
* Various bug-fixes and code cleanups.
* Search and replace (query-replace and replace-string) respect case.

Changes between Zile 1.6.1 - Zile 1.7 BETA 2

Note: 1.7 BETA 2 was produced from 1.6.1, not 1.6.2, but all the same
fixes were applied.

* Changed configure script so no syntax colouring modes are built by
  default.
* Implemented Java Mode.  Contributed by Marius Nita <marius@cs.pdx.edu>.
* Implemented C# Mode.  Contributed by Josef 'Jupp' Schugt <jupp@gmx.de>.
* Implemented Mail Mode (plus the five variables `font-mailN' and
  the variable `mail-mode-auto-fill') as suggested by Josef Schugt.
* Implemented the widely-used Emacs bindings:
    - `forward-word' (bound to `M-f'), `backward-word' (bound to `M-b');
    - `capitalize-word' (bount to `M-c');
    - `upcase-word' (bount to `M-u'), `downcase-word' (bount to `M-l');
* Implemented `describe-key-briefly' (bound to `C-h c').
* Implemented `shrink-window' (bound to `M-e').  Contributed by Marius Nita.
* Implemented `back-to-indentation' (bound to `M-m').  Contributed by
  Joseph Boyd <k963@bonbon.net>.
* Implemented `goto-char'.
* Implemented `revisions-kept' and `revisions-delete' variables as
  suggested by Josef Schugt.
* Added `-u rcfile' and `-v variable=value' command line options as
  requested by many users.
* Now multiple functions can be specified on command line with `-f func'.
* Now `quoted-insert' (bound to `C-q') accepts octal digits to
  insert particular characters.
* Cleaned up X Window terminal resize handling.  Low level SIGWINCH signal
  handling has been removed; now Zile relies only on ncurses KEY_RESIZE.
* The behavior of the `auto-font-lock' variable is changed in this version.
  Now the variable applies also to buffer mode changes.
* Fixed two old bugs thanks to Reuben Thomas <rrt@sc3d.org>.
* Patches provided by David A. Capello <dacap@users.sourceforge.net>:
    * implemented `kill-word', `backward-kill-word';
    * fixed bug in undo/redo;
    * fixed bug in highlight;
    * macros support `isearch' facility;
    * shell mode supports highlight for "cat<<EOF\n...\nEOF" stuff.  With
      this, added a new variable: `font-here-document';
    * better shell mode highlight: $identifier, and fixed the \'string\'
      problem;
    * optimized the selection highlight color;
    * added alias `sh-mode' to `shell-script-mode'.
* Integrated some excellent patches from Nicolas Duboc.
* Speed-up improvements.
* Many many other bug fixes.

Changes between Zile 1.6 - Zile 1.6.1

* Added `.m' extension to C Mode (for Objective-C files).
* Fixed window resize bug under xterm (\377 character was inserted).
* Typos and minor bug fixes.

Changes between Zile 1.5.3 - Zile 1.6

* Implemented incremental search (`isearch-forward', `isearch-backward').
* Implemented search & replace (`replace-string', `query-replace').
* Implemented shell commands (`shell-command', `shell-command-on-region').
* Implemented better handling of unexpected errors, with automatic file
  saving on Zile crash.

Changes between Zile 1.5.2 - Zile 1.5.3

* Fixed wrong behavior in novice mode (Font Lock automatically set).
* Fixed a few core dumps.

Changes between Zile 1.5.1 - Zile 1.5.2

* Implemented Shell-script Mode.
* Fixed Solaris compatibility bugs.
* Fixed bugs in C/C++ Font Lock parsing.

Changes between Zile 1.5 - Zile 1.5.1

* Fixed Minibuf filename completion bug.

Changes between Zile 1.4 - Zile 1.5

* Added `switch-to-correlated-buffer' (bound to `F11').
* Added `skip-splash-screen' variable.
* Extended Mini Help functionality; now there are three help pages.
* Reorganized partially the `F1'..`F12' keys.
* Added a reference card (see `etc/refcard.tex' and `etc/refcard.ps').
* User-invisible changes: introduced three new general-purpose libraries:
        - lib/alist.c	Doubly-linked lists
        - lib/astr.c	Dynamically allocated strings
        - lib/htable.c	Hash table functions (was hash.c)
  The new libraries are documented in their man pages (see lib/*.3).
  Starting from this version, the internal structures will be rewritten
  using these libraries.  This will make the code easier to maintain,
  and hopefully fixes some hidden bugs.
* Many bug fixes.

Changes between Zile 1.3 - Zile 1.4

* Added support for `F1'..`F12' keys.
* Implemented the following functions:
        tabify
        untabify
        copy-region-as-kill (bound to `M-w')
* Added support for xterm resizing (SIGWINCH signal).
* Added `text-mode-auto-fill' variable that automatically turns on the
  Auto Fill Mode in Text Mode.
* Now `set-variable' suggests the possibile variable values.
* Added `-f function' command line option for calling internal functions
  at Zile startup.
* Bug fixes.

Changes between Zile 1.2 - Zile 1.3

* Implemented region highlighting.
* Added support for non-English character sets.
* Fixed a security hole that made Zile prone to "symlink attack".

Changes between Zile 1.1 - Zile 1.2

* Fixed some memory leaks thanks to the dmalloc package.
* Added alternative key bindings (`M-h' replaces `C-h') that can be set
  using the `alternative-bindings' variable.
* Now the users with home "/" and users not recorded in the `/etc/passwd'
  file are handled correctly.

Changes between Zile 1.0a5 - Zile 1.1

* Fixed a lot of annoying bugs and updated the documentation.
* Added Auto Fill Mode.
* Added C++ Mode (ISO C++ 14882:1998).
* Updated C Mode keywords to latest C standard (ISO C 9899:1999).
* Implemented `goto-line' (M-g).  Contributed by
  Carsten Leonhardt <leo@debian.org>.
* Added backup directory feature.  Contributed by
  Tim Middelkoop <mtim@arranvale.com>.
* Added `describe-function' (C-h d), `describe-variable' (C-h v) and
  `describe-key' (C-h k).  Now the program is really self-documenting!
* Added `list-bindings' (C-h l b), `list-functions' (C-h l f) and
  `list-registers' (C-h l r).
* Now the search functions remember the last searched value.
* All the help functions bound to `M-h' are now bound to `C-h' like Emacs.
* Added a lot of minor but useful features.

WARNING: the file backup variable `backup-files' has been renamed to
`backup-method' and the behavior has changed.  Please take a look at the
sample initialization file (press `C-h s').

Changes between Zile 1.0a4 - Zile 1.0a5

* Implemented `insert-buffer', `insert-file'.
* Implemented `start-kbd-macro', `end-kbd-macro', `call-last-kbd-macro'.
* Implemented novice mode.
* Lot of bug fixes and minor changes.

Changes between Zile 1.0a3 - Zile 1.0a4

* Rewritten from scratch for adding proper windows code, using a better
  coding that's more simple to fix.
* Cleaned up editor structures.
* Added independent terminal support.

Changes between Zile 1.0a2 - Zile 1.0a3

* Rewritten buffer list handling.  Now it is more simple, bug free and
  like Emacs one.
* Rewritten key binding.
* Removed `next-buffer' (C-x C-n) and `previous-buffer' (C-x C-p) commands
  due to the new buffer list handling.
* Added `--with-ndebug' switch to configure.
* Fixed access permissions on saving.

Changes between Zile 1.0a1 - Zile 1.0a2

* Added a new Texinfo manual (not yet finished).
* Added the undo facility.
* Added `universal-argument' (C-u) facility.
* Added `tab-width' variable.
* Added the time display to the status line; added the `display-time' and
  `display-time-format' variables.
* Added revisions facility to backup.
* Added variables to allow changing of highlight colors.
* Added `status-line-color' variable.
* Added delayed key sequence completion.
* Removed `mode-line-like-emacs' variable and facility.
* Rewritten variable handling.  Now the variables are stored into an hash
  table.
* Rewritten `list-buffers' to be more verbose.
* All the editor functions are now declared with `DEFUN()'.
* Fixed handling of tabulations.
* Fixed FreeBSD refresh bug.
* Minor fixes to font lock.
