]> git.wh0rd.org Git - nano.git/commitdiff
rework the 2.0 and 2.1 branch changelogs to be more readable, per Jordi
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 29 Jan 2007 15:45:50 +0000 (15:45 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 29 Jan 2007 15:45:50 +0000 (15:45 +0000)
Mallach's suggestions

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4059 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
ChangeLog.pre-2.1 [new file with mode: 0644]

index 1dd7391c7cea59fd56824204e08af6e1a0e10005..128d58933d2b38e950bb06fabb63d4deb7087267 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-CVS code -
-- help.c:
-  help_init()
-       - Add a missing space to the "Execute Command" help text. (DLR)
-
-- 2.1 tree forks here
-
-GNU nano 2.0.3 - 2007.01.29
-- General:
-       - Miscellaneous comment fixes. (DLR)
-       - More int -> bool conversions. (DLR)
-       - Don't install the nanorc manpages or generate their HTML
-         versions if nano is built without nanorc support.  Changes to
-         configure.ac, doc/man/Makefile.am, and doc/man/fr/Makefile.am.
-         (DLR)
-       - Simplify the commands that generate HTML documentation in
-         order to remove unnecessary usage of cat.  Changes to
-         doc/man/Makefile.am, doc/man/fr/Makefile.am, and
-         doc/texinfo/Makefile.am. (DLR)
-- files.c:
-  do_writeout()
-       - When setting retval to the return value of
-         write_(marked_)?file(), use the "?" operator instead of an
-         if/else clause. (DLR)
-  is_dir()
-       - Don't assign dirptr's value using buf until we've asserted
-         that buf isn't NULL. (DLR)
-       - Remove unneeded assert. (DLR)
-- proto.h:
-       - Add missing is_dir() prototype. (DLR)
-- search.c:
-  regexp_init()
-       - Don't assign rc's value via regcomp() until we've asserted
-         that regexp_compiled is FALSE. (DLR)
-- text.c:
-  do_alt_speller()
-       - Rename variable altspell_error to alt_spell_error, for
-         consistency. (DLR)
-  do_spell()
-       - Rename variable i to status, for clarity. (DLR)
-- winio.c:
-  do_credits()
-       - Update the last copyright notice to include 2007. (DLR)
-- Makefile.am:
-       - Add README.CVS to EXTRA_DIST, so that nano's CVS checkout
-         instructions aren't only available in its CVS snapshots. (DLR)
-- README:
-       - Add more miscellaneous cosmetic fixes. (DLR)
-- README.CVS:
-       - Update for the 2.0 branch of nano. (DLR)
-- NEWS:
-       - Formatting fix. (DLR)
-- m4/glib-2.0.m4:
-       - Import the latest version of this file from glib 2.10.3. (DLR)
-- doc/faq.html:
-       - Update section 4.1 to describe how to open files with names
-         beginning with '+' at specified columns as well as lines.
-         (DLR)
-- doc/man/fr/Makefile.am:
-       - Set mandir before setting man_MANS, to more closely match
-         doc/man/Makefile.am. (DLR)
-- doc/syntax/python.nanorc:
-       - Improve string highlighting regexes. (Mike Frysinger)
-
-GNU nano 2.0.2 - 2006.12.20
-- General:
-       - Miscellaneous comment fixes. (DLR)
-- browser.c:
-  do_browser()
-       - Properly handle directories that contain nulls. (DLR)
-- files.c:
-  do_insertfile()
-       - Properly handle filenames and executable commands that contain
-         nulls. (DLR)
-  write_file()
-       - Properly handle filenames that contain nulls. (DLR)
-  do_writeout()
-       - Fix a segfault when we can't get the full path of either the
-         filename we want to save under or the original filename. (DLR,
-         found by Mike Frysinger)
-- nano.h:
-       - Rename NANO_ALT_REPLACE_KEY to NANO_REPLACE_ALTKEY, for
-         consistency. (DLR)
-       - Rename NANO_ALT_.* and NANO_.*ALTKEY to NANO_META_.* and
-         NANO_.*METAKEY, for consistency. (DLR)
-- search.c:
-  update_history()
-       - Fix minor memory leak. (DLR)
-- text.c:
-  do_spell()
-       - When setting i to the return value of write_(marked_)?file(),
-         use the "?" operator instead of an if/else clause. (DLR)
-  do_verbatim_input()
-       - Fix minor memory leak. (DLR)
-- winio.c:
-  parse_kbinput()
-       - Add missing break. (DLR)
-       - Fix minor memory leak. (Itay Perl)
-  parse_verbatim_kbinput()
-       - Fix minor memory leak. (DLR)
-  edit_draw()
-       - Fix potential warnings when assigning -1 to paintlen by using
-         if/else clauses instead of "?" operators. (DLR)
-- configure.ac:
-       - Reword several option descriptions, for clarity. (DLR)
-- doc/faq.html:
-       - Add miscellaneous wording and capitalization fixes. (DLR)
-- BUGS:
-       - Add miscellaneous cosmetic fixes. (DLR)
-- README:
-       - Update for the 2.0 branch of nano. (DLR)
-
-GNU nano 2.0.1 - 2006.11.20
-- General:
-       - Miscellaneous comment fixes. (DLR)
-       - Fix copyright notices to not abbreviate the year list using a
-         range.  Changes to do_credits() and all source files. (DLR)
-- files.c:
-  get_full_path()
-       - Remove unneeded assert. (DLR)
-       - Fix problem where only paths would be returned when both paths
-         and filenames should have been. (DLR)
-  do_writeout()
-       - For consistency, when saving a file with no name, don't allow
-         overwriting an existing file when in restricted mode. (DLR)
-       - Fix problem where a file could sometimes be overwritten
-         without a warning prompt. (DLR)
-- winio.c:
-  do_replace_highlight()
-       - Include the code to display zero-length matches even when
-         regex.h isn't found, as it can also be used to display
-         zero-length Unicode characters. (DLR)
-- doc/rnano.1, doc/fr/rnano.1:
-       - Add missing "(C)" to the copyright notice in the comments.
-         (DLR)
-- doc/nano.texi:
-       - Remove unneeded "." from the copyright notice in the comments.
-         (DLR)
-- NEWS:
-       - Add missing entries for nano 1.0.2 and 1.0.3, since 1.1.0
-         includes their changes. (DLR)
-
-GNU nano 2.0.0 - 2006.11.06
-- General:
-       - Miscellaneous comment fixes. (DLR)
-       - Add syntax for POV-Ray files.  New file doc/syntax/pov.nanorc;
-         changes to doc/nanorc.sample.in and doc/syntax/Makefile.am.
-         (Donnie Berkholz, minor tweaks by DLR)
-- AUTHORS:
-       - Update for the 2.0 branch of nano. (DLR)
-- nano.spec.in:
-       - Update links for the 2.0 branch of nano. (DLR)
-       - Update for newer RPM-based distributions. (DLR, adapted from
-         the nano 1.3.12-1.1.spec file in Fedora Rawhide)
-       - Delete the changelog section, as it hasn't been kept up to
-         date, and all its changes are documented here in any case.
-         (DLR)
-- doc/faq.html:
-       - Update links for the 2.0 branch of nano. (DLR)
-- doc/nano.1, doc/nanorc.5, doc/rnano.1:
-       - Add minor wording fixes. (DLR)
-- doc/man/fr/nano.1, doc/man/fr/nanorc.5, doc/man/fr/rnano.1:
-       - Updated manpage translations by Jean-Philippe GuĂ©rard.
-- doc/nano.texi:
-       - Add minor wording and punctuation fixes. (DLR)
-
-GNU nano 1.9.99pre3 - 2006.10.25
-- chars.c:
-  nstrncasecmp()
-       - When returning, use the "?" operator instead of an if/else
-         clause. (DLR)
-- cut.c:
-  do_cut_text()
-       - When uncutting text in the process of copying it, always set
-         placewewant, as do_uncut_text() does, so that the current line
-         is always updated properly. (DLR)
-- files.c:
-  input_tab()
-       - Since the field precision operator used in the sprintf() uses
-         ints and not size_t's, replace it with two strncpy()s, which
-         use size_t's, and a null termination. (DLR)
-- help.c:
-  parse_help_input()
-       - Add 'E' and 'e' as aliases for Exit, for consistency with the
-         file browser. (DLR)
-- m4/ac_define_dir.m4:
-       - Import the latest version of this file from
-         http://autoconf-archive.cryp.to/ac_define_dir.m4. (DLR)
-- doc/faq.html:
-       - Update the question in section 4.13 to match the version of it
-         in the answer section. (DLR)
-- doc/syntax/c.nanorc:
-       - Simplify "undef", "ifn?def", "elif", and "else" in the
-         preprocessor regexes. (DLR)
-
-GNU nano 1.9.99pre2 - 2006.10.02
-- General:
-       - Miscellaneous comment fixes. (DLR)
-       - Make sure that the statusbar cursor position is always
-         properly reset when we get out of all statusbar prompts.
-         Changes to do_insertfile(), do_writeout(),
-         handle_sigwinch(), main(), and do_prompt_abort(). (DLR)
-- prompt.c:
-  do_statusbar_input()
-       - If we get a verbatim input sequence ending with Ctrl-J, remove
-         the Ctrl-J from the buffer before interpreting it as Enter, so
-         that it doesn't erroneously fall through to the edit window
-         and get interpreted as Justify. (DLR)
-- winio.c:
-  get_input()
-       - Simplify to avoid an unnecessary key_buffer_len check. (DLR)
-- doc/syntax/c.nanorc:
-       - Add "size_t" and "ssize_t" to the types regexes. (DLR,
-         suggested by Mike Frysinger)
-       - Simplify "signed" and "unsigned" in the types regexes. (DLR)
-
-GNU nano 1.9.99pre1 - 2006.08.29
-- General:
-       - Miscellaneous comment fixes. (DLR)
-       - Fix option descriptions.  At least one of the two parts of
-         +LINE,COLUMN must be specified at all times; COLUMN is not the
-         only optional value.  Also, fix wording problems in
-         -O/--morespace and -W/--wordbounds.  Changes to usage(),
-         UPGRADE, nano.1, nanorc.5, rnano.1, nano.texi, and
-         nanorc.sample.in. (DLR)
-       - Fix mouse support so that it truly ignores everything except
-         releases and clicks of button 1.  Changes to
-         enable_mouse_support() and get_mouseinput(). (DLR)
-       - In certain places, call wnoutrefresh(bottomwin) after calling
-         blank_statusbar(), in order to ensure that the statusbar is
-         actually blanked.  Changes to do_help(), do_continue(),
-         handle_sigwinch(), and update_statusbar_line(). (DLR)
-       - If the mark isn't on, allow Meta-} and Meta-{ to indent and
-         unindent only the current line, just as it would if the mark
-         covered only the current line, instead of displaying a
-         statusbar message and quitting.  Changes to shortcut_init(),
-         do_indent_marked() (renamed do_indent()),
-         do_indent_marked_void() (renamed do_indent_void()),
-         do_unindent_marked_void() (renamed do_unindent()), and
-         UPGRADE. (DLR, suggested by John M. Gabriele)
-       - Consolidate do_scroll_(up|down)() into do_(up|down)(), as
-         they have a lot of duplicate code.  New functions do_up_void()
-         and do_down_void(); changes to shortcut_init(), do_up(),
-         do_scroll_up(), do_down(), do_scroll_down(), do_left(), and
-         do_right(). (DLR)
-       - Make Jordi's email address, and the description of what the
-         manual pages were written for, consistent in the
-         documentation.  Changes to AUTHORS, nano.1, nanorc.5, and
-         rnano.1. (DLR, based on suggestions by Jordi)
-       - Don't include sys/ioctl.h in nano.c when NANO_TINY is defined,
-         as ioctl() is never used then. (DLR)
-       - Improve the display of bools in debugging statements.  Changes
-         to parse_kbinput(), get_escape_seq_kbinput(),
-         parse_escape_seq_kbinput(), get_shortcut(), and get_toggle().
-         (DLR)
-       - Rename the values of the scroll_dir enum to UP_DIR and
-         DOWN_DIR, since UP is defined as a termcap value in Tru64's
-         and NetBSD 3.0's curses.h, which breaks compilation on those
-         systems.  Changes to do_page_up(), do_page_down(), do_up(),
-         do_down(), nano.h, and edit_scroll(). (DLR; found by Daniel
-         Richard G. and Adam Wysocki, repectively)
-       - Rename the DISABLE_ROOTWRAP #define to DISABLE_ROOTWRAPPING.
-         (DLR)
-       - When using slang 2.x, call SLutf8_enable() with an argument of
-         1 instead of TRUE, as that's the proper way to enable its
-         UTF-8 support.  Changes to main() and configure.ac. (DLR)
-       - Fix punctuation relating to "i.e." in various comments and
-         documentation. (Benno Schulenberg and DLR)
-       - Make bad_mbchar a static const char* const in chars.c, as its
-         value doesn't change. (DLR)
-       - Add various clarifications to translated strings.  Changes to
-         do_insertfile_void(), shortcut_init(), toggle_init(),
-         help_init(), print_view_warning(), usage(), and do_mark().
-         (Benno Schulenberg, minor tweaks by DLR)
-       - Properly preserve the cursor position when going from the
-         "Read File" or "Save File As" prompt to the file browser to
-         the "Go To Directory" prompt, and then canceling back to the
-         "Read File" or "Save File As" prompt.  Changes to
-         get_prompt_string() and do_prompt(). (DLR)
-       - Rename the parameter old_pww to pww_save in
-         need_statusbar_horizontal_update(), need_horizontal_update(),
-         need_vertical_update(), and edit_redraw(); and rename the
-         variable old_pww to pww_save in do_search() and do_research();
-         for consistency. (DLR)
-- browser.c:
-  do_browser()
-       - Refactor the mouse support, modeling it after do_mouse() for
-         consistency. (DLR)
-       - Remove unneeded call to blank_edit(). (DLR)
-       - After entering "..", select the directory we were in before
-         instead of the first filename in the list, as Pico does. (DLR)
-       - Simplify screen update handling and exiting. (DLR)
-       - Fix potential segfault when going to a directory that doesn't
-         begin with '/'. (DLR)
-  do_browse_from()
-       - During the operating directory check, if path isn't NULL,
-         don't bother freeing it before mallocstrcpy()ing operating_dir
-         into it, as the latter operation will free it. (DLR)
-       - Don't bother freeing path if it's NULL. (DLR)
-  browser_init()
-       - Fix off-by-one error when calculating longest that kept the
-         rightmost column of the screen from being used. (DLR)
-       - Calculate width here instead of in browser_refresh(), as it's
-         more consistent. (DLR)
-       - If filelist is initialized, free it here instead of in several
-         places in do_browser(). (DLR)
-  browser_refresh()
-       - Simplify. (DLR)
-       - Fix problems where translated versions of "(dir)" could be
-         truncated, and where file sizes could be too long. (DLR)
-       - For the ".." entry, display "(parent dir)" instead of "(dir)",
-         as Pico does. (DLR)
-       - If a filename is too long, truncate it and display an ellipsis
-         before it, as titlebar() does. (DLR)
-       - Add translator comments explaining the maximum intended
-         lengths of "(dir)" and "(parent dir)". (DLR)
-       - Fix problem where width wouldn't be properly initialized if
-         the file list took up one line or less. (DLR)
-       - Don't display overly long filenames with ellipses if the
-         number of columns is extremely small. (DLR)
-  browser_select_filename()
-       - New function, used to select a specific filename in the list.
-         (DLR)
-  findnextfile()
-       - Simplify the uses of tail(). (DLR)
-  striponedir()
-       - Since all the strings passed to this are dynamically
-         allocated, use null_at() to strip the directory from the
-         string.  Also, return the stripped path instead of modifying
-         path. (DLR)
-- chars.c:
-  mbstrncasecmp(), mbstrcasestr(), mbrevstrcasestr()
-       - Don't allocate space for multibyte characters until we've
-         asserted that the parameters we're using aren't NULL. (DLR)
-- files.c:
-  do_insertfile()
-       - If we execute a command in a new buffer, move back to the
-         beginning of the first line of the buffer afterwards, for
-         consistency. (DLR)
-       - If we don't insert a file into a new buffer, properly update
-         the x-coordinate to account for the number of characters
-         inserted on the current line. (DLR)
-  get_full_path()
-       - Don't return NULL when the current directory doesn't exist, as
-         we can still recover from that. (DLR, found by Mike Frysinger)
-       - Add various cleanups. (DLR)
-- global.c:
-  sc_init_one(), shortcut_init()
-       - Don't include blank_after when DISABLE_HELP is defined, as
-         it's never used then. (DLR)
-  shortcut_init()
-       - Remove the ^X shortcut for CutTillEnd at the search prompt, as
-         official Pico doesn't include it, and it can be confused with
-         Exit. (DLR, suggested by Benno Schulenberg)
-       - Make the help shortcut for the "Go to Directory" prompt call
-         do_browser_help() instead of do_help_void(), as this prompt is
-         only accessible inside the file browser. (DLR, found by Benno
-         Schulenberg)
-  toggle_init()
-       - Don't include desc or blank_after when DISABLE_HELP is
-         defined, as neither are ever used then. (DLR)
-       - Make sure that a blank line is not displayed after the Meta-Q
-         toggle when mouse support is disabled and we're in restricted
-         mode, and that it is displayed all other times. (DLR)
-  toggle_init_one()
-       - Don't include desc or blank_after when DISABLE_HELP is
-         defined, as neither are ever used then. (DLR)
-- help.c:
-  do_help()
-       - Simplify screen update handling and exiting. (DLR)
-       - Don't allow moving down a page when the last line of the help
-         text is onscreen. (DLR)
-  help_init()
-       - Adjust the first two chunks of the main help text so that
-         they're no more than 509 characters again. (DLR)
-- move.c:
-  do_scroll_up(), do_scroll_down()
-       - Fix problems where, after scrolling, the previous and current
-         lines would not be updated properly if the current line was
-         not the first or last line of the edit window. (DLR, found by
-         Mike Frysinger)
-- nano.c:
-  handle_sigwinch()
-       - Just in case we're in the statusbar prompt, reset the
-         statusbar cursor position when resizing the window. (DLR)
-- nano.h:
-       - Remove the manual disabling of color support if regex.h isn't
-         found, as configure.ac now handles that. (DLR)
-- rcfile.c:
-  parse_rcfile()
-       - Add missing ENABLE_COLOR #ifdef around the second check for a
-         syntax with no color commands, to fix compilation with rcfile
-         support and without color support. (Daniel Richard G.)
-- search.c:
-  replace_regexp()
-       - Remove unnecessary casting of c to int. (DLR)
-- text.c:
-  execute_command()
-       - Remove the marking of the file as modified, as do_insertfile()
-         now handles that. (DLR)
-- utils.c:
-  digits()
-       - Tweak to remove the assumption that n is always positive,
-         although it always is in this particular case. (DLR)
-- winio.c:
-  parse_kbinput()
-       - Properly handle combined meta and escape sequences, so that
-         e.g. Meta-/ will work properly when the / is on the numeric
-         keypad and NumLock is off.  Also, properly handle combined
-         control character and escape sequences, so that e.g. Esc Esc /
-         will work properly when the / is on the numeric keypad and
-         NumLock is off. (DLR)
-       - Translate extended keypad keys to their ASCII equivalents even
-         when we hit Escape once or twice before typing them, for
-         consistency. (DLR)
-       - If they're defined, translate KEY_SUP into NANO_PREVLINE_KEY
-         and KEY_SDOWN into NANO_NEXTLINE_KEY, since they are sometimes
-         generated by Shift-Up and Shift-Down. (DLR)
-  parse_escape_seq_kbinput()
-       - Handle unknown and unignored escape sequences once here
-         instead of twice in parse_kbinput(). (DLR)
-       - Don't ignore escape sequences anymore.  Instead, return the
-         corresponding key so that parse_kbinput() can translate it.
-         (DLR)
-  display_string()
-       - Properly handle buf[start_index]'s being a null terminator.
-         (DLR)
-  edit_draw()
-       - Simplify the setting of paintlen. (DLR)
-  titlebar()
-       - Don't display overly long filenames with ellipses if the
-         number of columns is extremely small. (DLR)
-       - Don't display any blank space for the state if we're in the
-         file browser, as Pico doesn't. (DLR)
-- configure.ac:
-       - If regex.h isn't found, display an error message if we try to
-         enable color support. (DLR)
-       - Fix the spacing of the error message displayed when slcurses.h
-         isn't found. (DLR)
-       - If we use the --disable-wrapping option, ignore the
-         --disable-wrapping-as-root option. (DLR)
-       - Add minor cosmetic tweaks. (DLR)
-- doc/Makefile.am:
-       - Don't include nanorc.sample in EXTRA_DIST, as it's only useful
-         when we're building from source, as opposed to building a
-         distribution. (DLR)
-       - Tweak to remove usage of the += operator again. (DLR)
-- doc/man/Makefile.am:
-       - Tweak to remove usage of the += operator again. (DLR)
-- doc/man/fr/nano.1, doc/man/fr/nanorc.5, doc/man/fr/rnano.1:
-       - Updated manpage translations by Jean-Philippe GuĂ©rard.
-- doc/faq.html:
-       - Update section 5.3 again to not state "the latest development
-         version" before 1.3.12, as it's no longer accurate. (DLR)
-       - Add some minor spacing fixes. (DLR)
-- doc/nano.texi:
-       - Add missing description of the -O/--morespace command line
-         option. (DLR)
-- doc/syntax/c.nanorc:
-       - Since .i and .ii are preprocessed C and C++ output, colorize
-         them here. (Mike Frysinger)
-       - Remove redundancy from the file extension regexes. (DLR)
-- doc/syntax/ruby.nanorc:
-       - Add missing blank line after the first comment, for
-         consistency. (DLR)
-       - Improve highlighting of constants. (John M. Gabriele, minor
-         tweaks by DLR)
-
-GNU nano 1.3.12 - 2006.06.26
-- General:
-       - Miscellaneous comment fixes. (DLR)
-       - Implement filename searches in the file browser.  New
-         functions filesearch_init(), findnextfile(),
-         findnextfile_wrap_reset(), filesearch_abort(),
-         do_filesearch(), do_fileresearch(), do_first_file(),
-         do_last_file(), do_help_void(), and do_browser_help(); changes
-         to do_browser(), parse_browser_input(), shortcut_init(),
-         do_help(), and help_init(). (DLR)
-       - Open all files in binary mode for consistency and robustness.
-         Changes to load_history() and do_rcfile(). (DLR)
-       - Change translator-specific comments in global.c and prompt.c
-         so that they show up in nano.pot, and make them all
-         consistent. (Benno Schulenberg and DLR)
-       - Reduce USE_UTF8 to a static bool in chars.c, allow nano.c to
-         set it via a function, and allow winio.c to read its value
-         when needed.  New functions utf8_init() and using_utf8();
-         changes to is_alnum_mbchar(), is_blank_mbchar(),
-         is_cntrl_mbchar(), is_punct_mbchar(), control_mbrep(),
-         mbrep(), mbwidth(), mb_cur_max(), make_mbchar(),
-         parse_mbchar(), mbstrncasecmp(), mbstrcasestr(),
-         mbrevstrcasestr(), mbstrnlen(), mbstrchr(), mbstrpbrk(),
-         mbrevstrpbrk(), has_blank_mbchars(), is_valid_mbstring(),
-         main(), display_string(), and do_credits(). (DLR)
-       - Add the ability to use bold text instead of reverse video
-         text, via the -D/--boldtext command line option and the
-         "boldtext" rcfile option.  Changes to browser_refresh(),
-         do_help(), usage(), main(), update_statusbar_prompt(),
-         do_yesno_prompt(), titlebar(), statusbar(), onekey(),
-         edit_draw(), do_replace_highlight(), nano.1, nanorc.5,
-         nano.texi, and nanorc.sample. (DLR, suggested by Benno
-         Schulenberg)
-       - Add the ability to use self-contained color syntaxes from
-         separate files, accessible in the nanorc via the "include"
-         command.  New function parse_include(); changes to
-         parse_rcfile(), do_nanorc(), nanorc.5, and nanorc.sample.
-         (Victor Ananievsky, Brand Huntsman and DLR)
-       - Change references to the "help menu" to the "help text
-         display" refer to display, for clarity.  Changes to
-         shortcut_init(), configure.ac, and faq.html. (DLR, suggested
-         by Benno Schulenberg)
-       - Adjust the shortcut list display and related mouse support to
-         not waste the last few characters of bottomwin when the screen
-         width isn't a clean multiple of the column width.  Changes to
-         do_mouseinput() and bottombars(). (Benno Schulenberg, minor
-         tweaks by DLR)
-       - Add several blank entries to the main shortcut list and the
-         global toggle list, in order to make the help text easier to
-         read.  Changes to sc_init_one(), toggle_init(),
-         toggle_init_one(), shortcut_init(), get_toggle(), and
-         help_init(). (DLR, suggested by Benno Schulenberg)
-       - Reduce NO_RCFILE to a static bool in nano.c, since it's only
-         used there.  Changes to finish() and main(). (DLR)
-       - Readd the Cancel -> Exit aliases for the file browser and help
-         browser.  New function parse_help_input(); changes to
-         parse_browser_input() and do_help(). (DLR, suggested by Benno
-         Schulenberg)
-       - Add the ability to copy text into the cutbuffer without
-         cutting it, via Meta-^ (Meta-6).  Note that this is disabled
-         when NANO_TINY is defined.  New functions do_cut_text_void()
-         and do_copy_text(); changes to do_cut_text(), shortcut_init(),
-         and do_input(). (DLR, suggested by Ken Tyler)
-       - Add the ability to indent and unindent all marked lines of
-         text, via Meta-} (Meta-]) and Meta-{ (Meta-[).  New functions
-         do_indent_marked(), do_indent_marked_void(), and
-         do_unindent_marked_void(); changes to shortcut_init(). (Chris
-         and DLR)
-       - Change the shortcut to find the matching bracket to Ctrl-].
-         Changes to shortcut_init() and do_statusbar_input(). (DLR)
-       - Drop the Meta-] and Meta-[ aliases for Meta-} and Meta-{, and
-         change the shortcut to find the matching bracket from Ctrl-]
-         back to Meta-], since Ctrl-] is used as the telnet escape key.
-         Changes to shortcut_init() and do_statusbar_input(). (DLR,
-         found by Chris)
-       - Add the ability to move to the first and last line of the help
-         text and the first and last file in the file browser via
-         Meta-\ (Meta-|) and Meta-/ (Meta-?).  Changes to do_browser(),
-         shortcut_init(), and do_help(). (DLR)
-       - Allow unjustifying if we resize the window immediately after
-         justifying, as Pico does, and make input handling across
-         resizes more consistent.  Changes to handle_sigwinch(),
-         main(), get_kbinput(), parse_kbinput(), get_byte_kbinput(),
-         and get_unicode_kbinput(); removal of reset_kbinput(). (DLR)
-       - Handle statusbar blanking in two places instead of many, so
-         that it always works consistently.  Changes to do_browser(),
-         do_cut_text(), do_uncut_text(), do_first_line(),
-         do_last_line(), do_page_up(), do_page_down(), do_para_begin(),
-         do_para_end(), do_para_end(), do_next_word(), do_prev_word(),
-         do_home(), do_end(), do_up(), do_scroll_up(), do_down(),
-         do_scroll_down(), do_left(), do_right(), do_indent_marked(),
-         do_verbatim_input(), and get_kbinput(). (Benno Schulenberg,
-         minor tweaks by DLR)
-       - Handle prepending of wrapped text in one place instead of
-         many, so that it always works consistently.  Changes to
-         do_uncut_text(), do_insertfile(), do_page_up(),
-         do_page_down(), do_up(), do_scroll_up(), do_down(),
-         do_scroll_down(), do_input(), do_search(), do_research(), and
-         do_delete(). (DLR)
-       - Ignore unhandled meta key sequences, function keys, and escape
-         sequences, indicate it on the statusbar, and beep when we get
-         an unhandled shortcut or toggle, as Pico does.  To get this to
-         work properly, add a shortcut for moving to the next
-         search/replace string.  New function is_ascii_cntrl_char();
-         changes to shortcut_init(), do_input(), do_statusbar_input(),
-         get_prompt_string(), and parse_kbinput(). (DLR, suggested by
-         Nick Warne and Benno Schulenberg)
-       - Explain the mouse support in more detail, and sync the text of
-         its description across all documentation.  Changes to nano.1,
-         nanorc.5, nanorc.sample, and nano.texi. (Benno Schulenberg and
-         DLR)
-       - If we're using verbatim input to enter a Unicode sequence,
-         indicate it on the statusbar, and add a translator comment
-         explaining the message.  Also, refactor get_unicode_kbinput()
-         to remove redundant code.  New function add_unicode_digit();
-         changes to get_unicode_kbinput() and parse_verbatim_kbinput().
-         (Benno Schulenberg, minor tweaks by DLR)
-       - Allow normal typing of high-bit control characters, as Pico
-         does.  Changes to do_output() and do_statusbar_output(). (DLR)
-       - Move color regexes into separate files, make nanorc.sample
-         reference them, and make them install properly.  In the
-         process, rename nanorc.sample to nanorc.sample.in, put
-         @PKGDATADIR@ at the beginning of all nanorc file paths, add
-         needed AC_DEFINE_DIR macro from the Autoconf Macro Archive at
-         http://autoconf-archive.cryp.to/ac_define_dir.m4, and make
-         configure.ac do the substitution, so that the proper paths
-         will always be used in nanorc.sample.  New files
-         m4/ac_define_dir.m4, doc/syntax/Makefile.am,
-         doc/syntax/asm.nanorc, doc/syntax/c.nanorc,
-         doc/syntax/groff.nanorc, doc/syntax/html.nanorc,
-         doc/syntax/java.nanorc, doc/syntax/man.nanorc,
-         doc/syntax/mutt.nanorc, doc/syntax/nanorc.nanorc,
-         doc/syntax/patch.nanorc, doc/syntax/perl.nanorc,
-         doc/syntax/python.nanorc, doc/syntax/ruby.nanorc,
-         doc/syntax/sh.nanorc, and doc/syntax/tex.nanorc; changes to
-         configure.ac, nano.spec.in, doc/Makefile.am, and
-         m4/Makefile.am; removal of doc/nanorc.sample. (DLR)
-       - Replace usage of the bool curses_ended with the isendwin()
-         function, and remove curses_ended.  Changes to do_suspend().
-         (DLR)
-       - Remove the workaround for glibc 2.2.3's broken regexec(), and
-         replace it with a FAQ entry explaining the problem, since it
-         could break anything using extended regular expressions, and
-         glibc 2.2.3 is old.  Changes to configure.ac, faq.html,
-         nano.h, proto.h, and UPGRADE; removal of safe_regexec(). (DLR)
-       - Minor wording fixes to various messages.  Changes to
-         load_history(), shortcut_init(), toggle_init(), usage(),
-         do_suspend(), do_input(), rcfile_error(), parse_argument(),
-         parse_rcfile(), nano.1, nano.texi, and nanorc.sample.in.
-         (Benno Schulenberg, minor tweaks by DLR and Nick Warne)
-       - Make suspension clear the screen and put the cursor on the
-         last line before displaying anything, as Pico does.  New
-         functions disable_mouse_support() and enable_mouse_support();
-         changes to do_mouse(), do_suspend(), do_continue(), and
-         terminal_init(). (DLR)
-- browser.c:
-  do_browser()
-       - Reference NANO_GOTODIR_(ALT|F)?KEY instead of
-         NANO_GOTOLINE_(ALT|F)?KEY for the "Go to Directory" shortcut.
-         (DLR)
-  parse_browser_input()
-       - Remove redundant key checks. (DLR)
-  browser_refresh()
-       - Rename variable editline to line, for consistency. (DLR)
-       - Change variable i from an int to a size_t in order to match
-         selected, which it's compared against. (DLR)
-- color.c:
-  color_update()
-       - Fix incorrect setting of defcolor, which prevented the
-         reserved "default" syntax from being handled correctly. (DLR)
-- cut.c:
-  cut_to_eof()
-       - New function, containing the main functionality of
-         do_cut_till_end(). (DLR)
-  do_cut_text()
-       - Add parameter cut_till_end, to indicate when we're cutting
-         from the current cursor position to the end of the file, and
-         call cut_to_eof() when it's TRUE. (DLR)
-  do_cut_till_end()
-       - Convert to a wrapper for do_cut_text(). (DLR)
-- files.c:
-  open_file()
-       - Remove redundant wording in the error message when we try to
-         open a device file. (DLR)
-  do_insertfile()
-       - Use actual gettext calls instead of no-ops, for consistency.
-         (DLR)
-  safe_tempfile()
-       - Don't ignore $TMPDIR if it's set but blank, for consistency.
-         (DLR)
-  write_file()
-       - Don't free backupname before displaying it in a statusbar error
-         message. (DLR, found by Bill Marcum)
-       - If we can't save the backup file for some reason, at least
-         save the original file, if possible, since that's better than
-         saving nothing. (DLR, problem found by Bill Marcum, solution
-         suggested by Jordi)
-       - Clarify the error messages when creating a temporary file or
-         writing one for prepending fails. (DLR)
-       - Simplify the routine for closing the file just before we
-         indicate success on the statusbar. (DLR)
-  do_writeout()
-       - Fix problem where the modifiers at the "Write File" prompt
-         were marked for translation via gettext no-ops but never
-         actually translated. (Benno Schulenberg)
-  free_chararray()
-       - Assert that array isn't NULL, for consistency with the other
-         free_.*() functions. (DLR)
-- global.c:
-  shortcut_init()
-       - Change the cursor position display help text to use "display"
-         instead of "show", for consistency. (DLR)
-       - In the main shortcut list, move the "Refresh" shortcut down to
-         after the "Enter" shortcut, for consistency. (DLR)
-       - Add the ability to move to the first and last line of the
-         current file from the main list via Meta-\ (Meta-|) and Meta-/
-         (Meta-?).  Also, make sure all the equivalent shortcuts in the
-         search, replace, and "Go To Line" lists accept both the meta
-         keys and the equivalent function keys. (DLR)
-       - Reorganize the main shortcut list to make it easier for new
-         users.  It now lists the twelve Pico-compatible default
-         operations, followed by search and replace shortcuts, followed
-         by cut and paste shortcuts, followed by marking shortcuts,
-         followed by back and forth movement shortcuts, followed by
-         start and end movement shortcuts, followed by buffer-switching
-         shortcuts, followed by insertion and deletion shortcuts,
-         followed by special movement shortcuts, followed by advanced
-         word and paragraph shortcuts, followed by display shortcuts.
-         (DLR and Benno Schulenberg, suggested by Benno Schulenberg)
-       - Tweak the descriptions of some shortcut keys to make them more
-         uniform. (Benno Schulenberg, minor tweaks by DLR)
-       - Shorten the "Where is Next" shortcut name to fit on the screen
-         after adding Meta-\ (Meta-|) and Meta-/ (Meta-?). (DLR)
-       - Lengthen the "UnCut Txt" shortcut name to "UnCut Text", as
-         there's enough room to display it unabbreviated. (DLR)
-       - Clarify the descriptions of the "Search" and "Replace"
-         shortcuts, and add spaces to the "Exit" shortcut's description
-         in multibuffer mode. (Benno Schulenberg)
-       - Remove the "Go To Line" shortcut in the replace shortcut list,
-         for compatibility with Pico. (DLR)
-  toggle_init()
-       - In the global toggle list, move the "Constant cursor position
-         display" toggle up to after the "Use more space for editing"
-         toggle, for consistency. (DLR)
-       - Reorganize the global toggle list to make it easier for new
-         users.  It now lists toggles that affect the way things are
-         displayed, followed by toggles that affect editing, followed
-         by toggles that have to do with peripheral things. (DLR,
-         suggested by Benno Schulenberg)
-- help.c:
-  do_help()
-       - Call get_shortcut() after getting input, so that we only have
-         to check for a main shortcut key instead of both it and all of
-         its equivalents. (DLR)
-       - Clean up the handling of NANO_REFRESH_KEY. (DLR)
-       - Remove redundant key checks. (DLR)
-  help_init()
-       - If we have at least two entries' worth of blank space, use it
-         to display more of "^Space" and "M-Space". (DLR, suggested by
-         Benno Schulenberg)
-       - Add various wording fixes. (DLR and Benno Schulenberg)
-       - If one of the help strings ends in newlines followed by a
-         space, move the space to the next help string to make it
-         easier for translators to see. (Benno Schulenberg)
-       - Make sure we have enough memory in all cases when displaying
-         the shortcut and toggle lists. (DLR)
-       - Wrap the shortcut list help text, and display it even when we
-         have fewer than 24 columns, for consistency with the toggle
-         help text. (DLR, suggested by Benno Schulenberg)
-  parse_help_input()
-       - Add Space and '-' as aliases for PageDown and PageUp, for
-         consistency with the file browser. (DLR, suggested by Benno
-         Schulenberg)
-       - Remove redundant key checks. (DLR)
-  help_line_len()
-       - Properly handle the case where we can't break the line of help
-         text. (DLR)
-       - Wrap the line of help text at (COLS - 1) instead of
-         (COLS - 8), for consistency. (DLR, suggested by Benno
-         Schulenberg)
-- nano.c:
-  print1opt_full()
-       - Rename to print_opt_full(), for consistency. (DLR)
-  usage()
-       - Fix inaccuracies in the usage example. (DLR)
-       - Put command line arguments in <>'s instead of []'s, as the
-         latter imply that the arguments are optional when they aren't.
-         (DLR, found by Benno Schulenberg)
-  renumber()
-       - Remove invalid assert. (DLR, found by Filipe Moreira)
-  do_input()
-       - Remove redundant check for allow_funcs' being TRUE when we get
-         KEY_MOUSE. (DLR)
-       - Don't blow away the cutbuffer when we get a shortcut and the
-         function associated with it is do_cut_till_end(). (DLR)
-       - Simplify the routine to preserve the cutbuffer when we call a
-         cutting or copying function associated with a shortcut. (DLR)
-- nano.h:
-       - Reorder the toggle #defines to match their corresponding order
-         in toggle_init(). (DLR)
-       - Move the #include for sys/param.h here from nano.c, and add an
-         #ifdef around it. (DLR)
-- prompt.c:
-  get_prompt_string()
-       - Include the handling of the help key even when help is
-         disabled, so that we aren't erroneously kicked out of the
-         statusbar prompt under any circumstances. (DLR, found by Benno
-         Schulenberg)
-  do_statusbar_input()
-       - Remove redundant check for allow_funcs' being TRUE when we get
-         KEY_MOUSE. (DLR)
-       - Improve the handling of NANO_REFRESH_KEY. (DLR)
-  total_statusbar_refresh()
-       - New function, called when we get NANO_REFRESH_KEY in
-         do_statusbar_input(). (DLR)
-  do_yesno_prompt()
-       - Handle the keys in a switch statement instead of a long if
-         block, for simplicity. (DLR)
-- rcfile.c:
-  parse_argument()
-       - Rename variable ptr_bak to ptr_save, for consistency. (DLR)
-       - Add double quotes around invalid string arguments in error
-         messages, for consistency. (DLR)
-       - Add single quotes around the invalid string argument in the
-         error message about unterminated strings, to avoid confusion.
-         (Benno Schulenberg)
-  parse_syntax()
-       - Don't generate an error if we find a duplicate syntax name,
-         since we might be trying to override a syntax in the global
-         nanorc with one in our local nanorc.  Instead, free any
-         duplicate syntaxes we find, so that we always use the last
-         syntax with a given name. (DLR)
-  color_to_short()
-       - Add quotes around invalid string arguments in error messages,
-         for consistency. (DLR)
-  parse_colors()
-       - Check for a color command's not following a syntax line before
-         anything else. (DLR)
-       - Add quotes around invalid string arguments in error messages,
-         for consistency. (DLR)
-  parse_rcfile()
-       - Properly generate an error if we've read in a syntax without
-         any associated color commands. (DLR)
-       - Change variable i from an int to a size_t, for consistency.
-         (DLR)
-       - Properly handle rcfiles that don't end in newlines. (DLR)
-       - Add quotes around invalid string arguments in error messages,
-         for consistency. (DLR)
-  do_rcfile()
-       - Check for the rcfile's being a directory or device file and
-         reject it if it is, for consistency with file handling
-         elsewhere. (DLR)
-       - Remove SYSCONFDIR #ifdef, as SYSCONFDIR should always be set.
-         (DLR)
-       - Change all rcfile error messages to refer to commands instead
-         of directives, for consistency with nanorc.5. (DLR)
-- text.c:
-  break_line()
-       - Fix problem where tab widths in columns would always be
-         calculated as tabsize. (DLR, found by Alexey Toptygin)
-       - Handle newlines consistently when searching for the last blank
-         in the first group of blanks in the range of (goal - 1). (DLR,
-         found by Benno Schulenberg)
-  do_justify()
-       - Remove redundant key checks. (DLR)
-  do_spell()
-       - Clarify the error message when creating a temporary file
-         fails. (DLR)
-       - Set currshortcut to main_list before calling total_refresh()
-         near the end of the function, so that we don't display the
-         wrong shortcut list. (DLR)
-  do_verbatim_input()
-       - Add a translator comment explaining the "Verbatim Input"
-         statusbar message. (Benno Schulenberg)
-       - Unconditionally blank the statusbar as soon as we're finished
-         getting input. (DLR, suggested by Benno Schulenberg)
-- utils.c:
-  digits()
-       - Return the proper number of digits when n is exactly 10. (DLR)
-       - Simplify to use a for loop instead of a while loop. (DLR)
-  ngetdelim()
-       - Set errno to EINVAL if stream is not a valid file stream.
-         This matches the manual page. (DLR)
-  nperror()
-       - Simplify. (DLR)
-  check_linenumbers()
-       - Removed, as it's no longer used, and since there's no way to
-         tell if its return value will be in int or ssize_t range.
-         (DLR)
-- winio.c:
-  parse_kbinput()
-       - If we get NANO_CONTROL_8, properly handle it in all cases.
-         (DLR)
-  parse_escape_seq_kbinput()
-       - New function used to interpret escape sequences, formerly part
-         of parse_kbinput(). (DLR)
-  get_byte_kbinput()
-       - Fix typo preventing Esc Esc 3 through Esc Esc 6 from being
-         interpreted as control key sequences. (DLR)
-       - Tweak to more closely match get_unicode_kbinput(). (DLR)
-  get_control_kbinput()
-       - Add Ctrl-/ as an alias for Ctrl-_. (DLR, found by Benno
-         Schulenberg)
-       - Simplify the if blocks wherever possible. (DLR)
-  parse_verbatim_kbinput()
-       - Don't include the ability to enter a Unicode sequence via
-         verbatim input mode if ENABLE_UTF8 isn't defined or we're not
-         in a UTF-8 locale. (DLR)
-  check_statusblank()
-       - Avoid redundant updates when statusblank is 0. (DLR)
-  display_string()
-       - Properly display double-column characters if they're past the
-         first virtual page and their first column is covered by the
-         "$" displayed at the beginning of the line. (DLR)
-  statusbar()
-       - Blank the statusbar after 26 keystrokes instead of 25, for
-         conpatibility with Pico. (DLR)
-  edit_draw()
-       - Properly ignore zero-length regexes in multi-line regexes as
-         well as single-line ones.  This avoids a segfault when trying
-         to color e.g. "start="$" end="$"". (DLR, found by Trevor
-         Caira)
-       - Don't display any statusbar message when we get a zero-length
-         regex, as we can get one under legitimate circumstances. (DLR,
-         found by Mike Frysinger)
-  update_line()
-       - Remove unneeded assert. (DLR)
-  edit_redraw()
-       - Fix problem where not all lines would be updated properly if
-         we'd scrolled off the screen and the mark was on. (DLR)
-  do_credits()
-       - Update the last copyright notice to include 2006. (DLR)
-- configure.ac:
-       - Remove old warnings about color support. (DLR)
-       - Remove conditional header checks for fcntl.h and termios.h, as
-         nano won't build without them, and add conditional header
-         check for sys/param.h, as some systems need only limits.h.
-         (DLR)
-- doc/faq.html:
-       - Add a new section 4.4, and move all section 4 entries after it
-         down one number, to explain how to deal with problems typing
-         Meta-[. (DLR)
-       - Add a new section 4.5, and move all section 4 entries after it
-         down one number, to explain a problem that can occur when
-         holding down keys to generate Meta sequences. (Benno
-         Schulenberg, minor tweaks by DLR)
-       - Add a few capitalization and wording fixes. (DLR)
-       - Remove section 4.4, and move all section 4 entries after it up
-         one number, since it no longer applies.  Meta-] and Meta-[ are
-         no longer used to indent and unindent marked text, since they
-         require that the bracket matching key change to Ctrl-], which
-         is used as the telnet escape key. (DLR, found by Chris)
-       - Make the link to the nano CVS page a bit more readable. (DLR)
-       - Update section 3.8 to mention the new "Unicode Input" prompt,
-         and how Unicode input only works when Unicode support is
-         enabled. (DLR)
-       - Add minor punctuation, wording, and typo fixes. (DLR)
-       - Update section 5.3, due to the display fix for two-column
-         Unicode characters. (DLR)
-- doc/nano.1:
-       - Update the copyright years to include 2006. (DLR)
-       - Explicitly mention that all regexes should be extended regular
-         expressions. (DLR, suggested by John M. Gabriele)
-       - Miscellaneous minor fixes. (DLR)
-       - Add various wording fixes. (Benno Schulenberg and DLR)
-       - Put command line arguments in <>'s instead of []'s, as the
-         latter imply that the arguments are optional when they aren't.
-         (Benno Schulenberg)
-- doc/nanorc.5:
-       - Update the copyright years to include 2006. (DLR)
-       - Explicitly mention that all regexes should be extended regular
-         expressions. (DLR, suggested by John M. Gabriele)
-       - Miscellaneous minor fixes. (DLR)
-       - Add various wording fixes. (Benno Schulenberg and DLR)
-       - Mention that the nanorc file should not be in DOS or Mac
-         format. (DLR)
-- doc/rnano.1:
-       - Update the copyright years to include 2006. (DLR)
-       - Explicitly mention that all regexes should be extended regular
-         expressions. (DLR, suggested by John M. Gabriele)
-       - Miscellaneous minor fixes. (DLR)
-       - Add various wording fixes. (Benno Schulenberg and DLR)
-       - Add description of the +LINE[,COLUMN] option. (DLR)
-- doc/nano.texi:
-       - Update the copyright years to include 2006. (DLR)
-       - Explicitly mention that all regexes should be extended regular
-         expressions. (DLR, suggested by John M. Gabriele)
-       - Miscellaneous minor fixes. (DLR)
-       - Add various wording fixes. (Benno Schulenberg and DLR)
-       - Change license to GPL, in order to match the rest of the
-         documentation, and because the current license is incompatible
-         with everything else in any case. (DLR)
-       - Mention that backup files and spell checking are disabled in
-         restricted mode, as rnano.1 does. (DLR)
-       - Add minor updates to put some text back in sync with nano's
-         help text, and with nano's current feature set. (DLR)
-       - Add a "Nanorc Files" section to explain the nanorc file format
-         in detail, using text from nanorc.5. (DLR)
-       - Put command line arguments in <>'s instead of []'s, as the
-         latter imply that the arguments are optional when they aren't.
-         (Benno Schulenberg)
-       - Add missing description of -H/--historylog, and move
-         -x/--nohelp down so that all the command line options are in
-         alphabetical order. (Benno Schulenberg)
-       - Change all occurrences of "file name" to "filename". (Benno
-         Schulenberg)
-- doc/man/Makefile.am:
-       - Simplify the setting of SUBDIRS. (DLR)
-- doc/man/fr/nano.1, doc/man/fr/nanorc.5, doc/man/fr/rnano.1:
-       - Updated manpage translations by Jean-Philippe GuĂ©rard.
-- doc/nanorc.sample:
-       - Miscellaneous minor fixes. (DLR and Benno Schulenberg)
-       - Tweak the "c-file" regex for characters to accept '"' again,
-         as it's apparently valid, and simplify it. (DLR)
-       - Simplify the "shellscript" regex for command line options.
-         (DLR)
-       - Replace instances of \" with ", since quotes inside string
-         parameters don't need to be escaped with backslashes. (DLR)
-       - Mention in the comments that more than one start/end regex can
-         be included per line.  Also, change the comment for the
-         "whitespace" option so that the hexadecimal character values
-         are six digits long, and state which character values work
-         with which encodings. (DLR)
-       - Add sample regexes for Python. (singular on the Gentoo forums,
-         http://forums.gentoo.org/viewtopic.php?t=86562; minor tweaks
-         by DLR, suggested by John M. Gabriele)
-       - Explicitly mention that all regexes should be extended regular
-         expressions. (DLR, suggested by John M. Gabriele)
-       - Simplify the "nanorc" regex for commands. (DLR)
-       - Mention that the nanorc file should not be in DOS or Mac
-         format. (DLR)
-       - Add various wording fixes. (Benno Schulenberg and DLR)
-       - Replace instances of "\w" with its equivalent "[0-9A-Z_a-z]",
-         and instances of "\W" with its equivalent "[^0-9A-Z_a-z]", for
-         greater readability. (DLR)
-       - Remove unneeded foreground color for the Java source regex
-         used to highlight trailing whitespace, since we now support
-         background colors without foreground colors. (DLR)
-       - Further simplify the "groff" regexes. (DLR)
-       - Tweak the "shellscript" regexes to properly color all special
-         variables, such as $? and $@. (Benno Schulenberg)
-       - Tweak the "nanorc" regexes to color keywords bright green
-         instead of cyan, and comments bright blue instead of blue.
-         (John M. Gabriele)
-       - Simplify the extensions associated with the "nanorc" regexes.
-         (DLR)
-       - Add regexes for Ruby. (John M. Gabriele, minor tweaks by DLR)
-- doc/nanorc.sample.in:
-       - Add comments describing the relationships between syntax file
-         names and the names used as their short descriptions. (John M.
-         Gabriele)
-- doc/java.nanorc:
-       - Simplify a comment. (DLR)
-- doc/man.nanorc:
-       - Change the name of the "manpage" regexes to "man", for
-         consistency. (John M. Gabriele)
-- doc/nanorc.nanorc:
-       - Tweak the "nanorc" regexes to color comments starting with a
-         double ## cyan instead of bright blue. (John M. Gabriele)
-- doc/ruby.nanorc:
-       - Add regex for "here" docs. (John M. Gabriele)
-- doc/sh.nanorc:
-       - Tweak the regex for special variables, moving "-" to the end,
-         to avoid excessive coloring or an "Invalid range end" error.
-         (Benno Schulenberg)
-       - Tweak the "sh" regexes to color comments cyan instead of
-         yellow. (John M. Gabriele)
-- src/Makefile.am:
-       - If we're uninstalling, remove the "rnano" symlink. (DLR, found
-         by Benno Schulenberg)
-       - Remove "-Iintl" from INCLUDES, as we don't use an intl
-         directory inside the source directory anymore. (DLR)
-- README, README.CVS:
-       - Add various cosmetic and wording improvements. (John M.
-         Gabriele, minor tweaks by DLR)
-- TODO:
-       - Update for nano 2.0, since we're now in a feature freeze.
-         (DLR)
-- UPGRADE:
-       - Miscellaneous minor fixes. (DLR)
-       - Update for nano 2.0, since we're now in a feature freeze.
-         (DLR)
-
-GNU nano 1.3.11 - 2006.03.30
-- General:
-       - Miscellaneous comment fixes. (DLR)
-       - Remove unnecessary #ifdef around termios.h #include in nano.c.
-         (DLR)
-       - Sort the default strings for brackets and punct, and the "or"
-         atom in the default regex string for quotestr, according to
-         ASCII.  Changes to main(), nano.1, nanorc.5, and
-         nanorc.sample. (DLR)
-       - Rework the bracket searching code to handle multibyte bracket
-         characters, and allow specifying matching bracket characters
-         other than the default via the "matchbrackets" rcfile option.
-         New functions mbstrpbrk() and mbrevstrpbrk(); changes to
-         find_statusbar_bracket_match(), do_statusbar_find_bracket(),
-         find_bracket_match(), do_find_bracket(), main(),
-         parse_rcfile(), nanorc.5, and nanorc.sample. (DLR)
-       - Rework input parsing in the file browser to be more flexible.
-         New function parse_browser_input(); changes to do_browser().
-         (DLR)
-       - Allow tab completion of directories at the "Go To Directory"
-         prompt.  Also, move the browser drawing routines to a separate
-         function, and make sure it's used when refreshing or doing tab
-         completion at the prompt in the file browser.  New function
-         browser_refresh(); changes to do_browser(), browser_init(),
-         do_insertfile(), do_writeout(), cwd_tab_completion(),
-         input_tab(), do_statusbar_input(), get_prompt_string(),
-         do_prompt(), search_init(), do_replace(), do_gotolinecolumn(),
-         and do_int_spell_fix(). (DLR)
-- browser.c:
-  do_browser()
-       - Properly set currshortcut back to the file browser shortcut
-         list after a "Go To Directory" prompt, and properly restore
-         the file list display after returning from the help browser at
-         the "Go To Directory" prompt. (DLR)
-       - Rename variable j to i, for consistency. (DLR)
-       - Make fileline, old_selected, and the static selected size_t's,
-         since the first and second can hold the value of the third,
-         and the first can be that large. (DLR)
-- chars.c:
-  mbstrchr()
-       - Make parameter c const. (DLR)
-- files.c:
-  do_writeout()
-       - Remove unneeded setting of currshortcut. (DLR)
-  is_dir()
-       - Rename parameter ret to retval, for consistency. (DLR)
-- global.c:
-  shortcut_init()
-       - Remove erroneous handling of the "Get Help" shortcut in the
-         file browser shortcut list. (DLR)
-- nano.h:
-       - Remove now-unneeded VERMSG #define. (DLR)
-- prompt.c:
-  get_prompt_string()
-       - Redraw the prompt and set finished to FALSE when NANO_HELP_KEY
-         is pressed, so that we don't leave the prompt, enter the help
-         browser, and restart the prompt after leaving it.  This will
-         properly preserve the cursor position after doing the last of
-         these. (DLR)
-- utils.c:
-  ngetdelim()
-       - Do sanity checks manually again instead of in an assert, and
-         set errno to EINVAL as well as return -1 if they fail.  This
-         matches the manual page. (DLR)
-- winio.c:
-  get_key_buffer()
-       - If we fail to get a character MAX_BUF_SIZE times in a row,
-         hang up regardless of the value of errno.  This fixes a
-         problem where nano doesn't terminate properly under xterm if
-         the user su's to root, runs nano, and then closes the terminal
-         window.  errno isn't set properly to EIO then. (DLR, found by
-         John <acocaracha@gmail.com>)
-  parse_kbinput()
-       - Interpret Shift-Begin, Shift-Delete, Shift-End, Shift-Home,
-         Shift-Insert, and Shift-Suspend as Begin, Delete, End, Home,
-         Insert, and Suspend, respectively, regardless of whether
-         --rebindkeypad is used. (DLR, found by David Benbennick)
-  titlebar()
-       - Use PACKAGE_STRING, as defined by autoconf, instead of VERMSG.
-         (DLR)
-  edit_redraw()
-       - If either current or old_current is offscreen, we're not on
-         the first page, and/or we're not on the same page as before,
-         update old_current before scrolling the edit window.  This
-         fixes a potential display problem when a search moves the
-         cursor offscreen and onto a different page. (DLR, found by
-         Mike Frysinger)
-  display_string()
-       - Fix minor memory leak. (DLR)
-       - Fix memory corruption problems caused by not allocating enough
-         space for converted when a line ends in a tab(s) and we're not
-         in UTF-8 mode. (DLR, found by Duncan Geoffry Doyle, Nick
-         Warne, and Mike Frysinger)
-- doc/faq.html:
-       - Update the Free Translation Project's address, change the
-         character set to UTF-8, and remove broken links to contributed
-         RedHat nano packages. (DLR)
-- doc/nano.1:
-       - Better display the default values for quotestr. (DLR)
-- doc/nanorc.5:
-       - Give the default values for the brackets and punct options,
-         and better display the default values for quotestr. (DLR)
-       - Mention that quotes inside string parameters don't need to be
-         escaped with backslashes. (John M. Gabriele, minor tweaks by
-         DLR)
-- doc/rnano.1:
-       - Remove unneeded comments. (DLR)
-- doc/nanorc.sample:
-       - Remove unneeded comment. (DLR)
-       - Mention that quotes inside string parameters don't need to be
-         escaped with backslashes. (John M. Gabriele, minor tweaks by
-         DLR)
-- THANKS:
-       - Add new Swedish translator.
-
-GNU nano 1.3.10 - 2005.12.23
-- General:
-       - Miscellaneous comment fixes. (DLR)
-       - More int -> bool conversions. (DLR)
-       - Add the ability to scroll up or down single lines without
-         scrolling the cursor, via Meta-- and Meta-+.  Note that this
-         is disabled when NANO_SMALL is defined.  New functions
-         do_scroll_up() and do_scroll_down(); changes to
-         shortcut_init(). (DLR, suggested by Mike Frysinger)
-       - Properly handle mouse clicks on the statusbar prompt text.
-         New functions statusbar_xplustabs() and
-         get_statusbar_page_start(); changes to do_statusbar_mouse(),
-         nanoget_repaint(), nanogetstr(), and statusq(). (DLR)
-       - Since the statusbar prompt code needs at least 4 columns in
-         order to work properly, make that the minimum number of
-         columns that nano requires in order to run, and remove
-         assertions and code that make use of a smaller number of
-         columns.  Changes to window_init(), nanoget_repaint(),
-         titlebar(), statusbar(), and get_page_start(). (DLR)
-       - Move get_page_start(), xplustabs(), actual_x(), strnlenpt(),
-         strlenpt(), check_linenumbers(), dump_buffer(), and
-         dump_buffer_reverse() from winio.c to utils.c, as they're
-         really utility functions. (DLR)
-       - Add missing stdio.h #include to text.c and winio.c, and remove
-         unneeded sys/wait.h #include from files.c. (DLR)
-       - Move functions specific to the statusbar prompt to their own
-         source file, adjust related variables accordingly, and rename
-         variable resetstatuspos reset_statusbar_x.  New file prompt.c;
-         changes to do_statusbar_input(), do_statusbar_mouse(),
-         do_statusbar_output(), do_statusbar_home(),
-         do_statusbar_end(), do_statusbar_right(), do_statusbar_left(),
-         do_statusbar_backspace(), do_statusbar_delete(),
-         do_statusbar_cut_text(), do_statusbar_next_word(),
-         do_statusbar_prev_word(), do_statusbar_verbatim_input(),
-         statusbar_xplustabs(), get_statusbar_page_start(),
-         nanoget_repaint(), nanogetstr(), statusq(), statusq_abort(),
-         and do_yesno() (all moved to prompt.c). (DLR)
-       - Move functions specific to the help browser to their own
-         source file, and adjust related variables accordingly.  New
-         file help.c; changes to help_init(), help_line_len(), and
-         do_help() (all moved to help.c). (DLR)
-       - Tweak a few functions to remove the assumption that the file
-         always ends in a magicline.  Changes to cut_line(),
-         do_cut_till_end(), open_buffer(), read_file(), write_file(),
-         do_last_line(), do_para_end(), do_wrap(), backup_lines(),
-         find_paragraph(), do_justify(), do_alt_speller(), and
-         do_wordlinechar_count(). (DLR)
-       - Tweak a few functions to rely on fileage and filebot instead
-         of NULL for their checks to detect the top or bottom of the
-         file.  Changes to cut_line(), cut_to_eol(), do_page_up(),
-         do_page_down(), do_para_end(), do_next_word(), do_prev_word(),
-         do_up(), do_down(), do_scroll_down(), do_right(), do_mouse(),
-         do_gotolinecolumn(), do_delete(), begpar(), find_paragraph(),
-         do_wrap(), remove_magicline(), and edit_scroll(). (DLR)
-       - Add new -L/--nonewlines command line option, and new
-         "nonewlines" rcfile option, to control whether nano adds
-         magiclines to the ends of files.  Changes to read_file(),
-         write_marked_file(), move_to_filestruct(),
-         copy_from_filestruct(), usage(), do_output(), main(),
-         do_replace_loop(), do_delete(), do_int_spell_fix(),
-         do_alt_speller(), nano.1, nanorc.5, nano.texi, and
-         nanorc.sample. (DLR, suggested by Jaime
-         <re2823@Safe-mail.net>)
-       - Move functions specific to the file browser to their own
-         source file, and adjust related variables accordingly.  New
-         file browser.c; changes to striponedir(), browser_init(),
-         do_browser(), and do_browse_from() (all moved to browser.c).
-         (DLR)
-       - Add the statusbar prompt's equivalent of placewewant,
-         statusbar_pww, to prompt.c, and convert its functions to use
-         it.  New functions reset_statusbar_cursor() and
-         need_statusbar_horizontal_update(); changes to
-         do_statusbar_mouse(), do_statusbar_output(),
-         do_statusbar_home(), do_statusbar_end(), do_statusbar_right(),
-         do_statusbar_left(), do_statusbar_delete(),
-         do_statusbar_cut_text(), do_statusbar_next_word(),
-         do_statusbar_prev_word(), do_statusbar_verbatim_input(),
-         nanoget_repaint() (renamed update_statusbar_line()),
-         nanogetstr() (renamed get_prompt_string()), statusq() (renamed
-         do_prompt()), statusq_abort() (renamed do_prompt_abort()), and
-         do_yesno() (renamed do_yesno_prompt()). (DLR)
-       - Initialize the static pid_t pid in text.c to -1. (DLR)
-       - Fix copyright years on source files.  All functions in
-         browser.c were originally added in 2001; the oldest function
-         in color.c is do_colorinit() (now color_init()), which was
-         originally added in 2001; the oldest function in chars.c is
-         revstrstr(), which was originally added in 2001; the oldest
-         function in help.c is do_help(), which was originally added in
-         2000; the oldest function in prompt.c is statusq() (now
-         do_prompt()), which was originally added before 0.6.6, which
-         was apparently in 1999; all functions in rcfile.c were
-         originally added in 2001; one of the oldest functions in
-         search.c is do_search(), which was originally added in 0.2.7,
-         which was apparently in 1999; and one of the oldest functions
-         in text.c is do_wrap(), which was originally added in 0.3.1,
-         which was apparently in 1999. (DLR)
-       - For functions originally adapted from other sources, add
-         notices from the original files, as we do with the tab
-         completion functions adapted from busybox, updating the Free
-         Software Foundation's address as needed.  Also, invoke LGPL
-         clause 3 to convert the LGPLed ngetdelim() and ngetline()
-         functions to use the GPL instead.  This is done so that we
-         don't have to include a copy of the LGPL, and because the
-         changes made to integrate these functions with nano make them
-         dependent on nano's GPLed functions and hence useless
-         elsewhere. (DLR)
-       - Don't install the localized versions of the manpages if
-         nano is built with --disable-nls.  Changes to Makefile.am and
-         doc/man/Makefile.am. (Mike Frysinger)
-       - Rename the NANO_SMALL #define to NANO_TINY. (DLR)
-       - Overhaul the bracket searching code so that it no longer
-         requires regex support to work.  New functions revstrpbrk()
-         and find_bracket_match(); changes to shortcut_init() and
-         do_find_bracket(). (DLR)
-       - Add the ability to do bracket searches at the statusbar
-         prompt.  New functions find_statusbar_bracket_match() and
-         do_statusbar_find_bracket(); changes to do_statusbar_input().
-         (DLR)
-       - Beep whenever we can't read a file or directory and have to
-         indicate it on the statusbar, as Pico does.  Changes to
-         do_browser(), open_file(), and write_file(). (DLR)
-       - Adjust copyright notices in all source files to account for
-         Chris' reassigning the 2005-2006 copyright on nano to me.
-         Changes to do_credits(). (DLR)
-       - Readd RETSIGTYPE return types for signal handlers, since any
-         problems with its being defined as the wrong type aren't
-         nano's fault.  Changes to handle_hupterm(), do_suspend(),
-         do_continue(), handle_sigwinch(), and cancel_command(). (DLR)
-       - Since proto.h includes nano.h, and nano.h includes config.h
-         first, include proto.h first and remove redundant includes of
-         config.h in all non-header source files. (DLR)
-       - Refer to the Enter key instead of the Return key for
-         consistency.  Changes to load_history() and rcfile_error().
-         (DLR)
-- browser.c:
-  do_browser()
-       - When setting the width of each file, use the "?" operator
-         instead of an if/else clause. (DLR)
-- chars.c:
-  mbwidth()
-       - If wcwidth() returns -1 for the character passed in, treat the
-         character as having the width of Unicode U+FFFD (Replacement
-         Character) instead of having a width of zero, since display
-         problems can crop up with the latter approach. (DLR)
-  mbstrchr()
-       - Detect the case where the character isn't found in the string
-         more accurately. (DLR)
-- cut.c:
-  cut_line()
-       - Since placewewant will always be zero after the line is cut,
-         set it to zero directly instead of assigning it the value of
-         xplustabs(). (DLR)
-- files.c:
-  read_file()
-       - Remove apparently unneeded logic to handle a case where
-         current is NULL, since it shouldn't be NULL there. (DLR)
-  get_next_filename()
-       - Store the value of digits(ULONG_MAX) in a static, since it
-         doesn't change and hence doesn't need to be recalculated.
-         (DLR)
-- global.c:
-  shortcut_init()
-       - Change the description of the Meta-] shortcut to "Find
-         matching bracket", as it's clearer. (DLR)
-- nano.c:
-  version()
-       - If DISABLE_WRAPPING is defined, the code in DISABLE_ROOTWRAP
-         #ifdefs isn't included, so don't display
-         "--disable-wrapping-as-root" in that case. (DLR)
-  do_cont()
-       - Rename to do_continue(), and rename parameter s to signal, for
-         consistency. (DLR)
-  do_verbatim_input()
-       - Move to text.c, since it's an advanced text-based operation.
-         (DLR)
-- nano.h:
-       - Readd MIN_EDITOR_COLS #define, set to 4. (DLR)
-- proto.h:
-       - Remove now-unused externs for currslen, shortcut_list,
-         fileinfo, syntaxfile_regexp, and synfilematches. (DLR)
-- prompt.c:
-  do_statusbar_input()
-       - Fix misplaced break when handling NANO_VERBATIM_KEY. (DLR)
-  reset_statusbar_cursor()
-       - Fix cursor placement problem by modeling the code more closely
-         after reset_cursor(). (DLR)
-  get_prompt_string()
-       - Adjust #ifdefs to leave out disabled keys entirely instead of
-         keeping enough code to just ignore them. (DLR)
-- rcfile.c:
-  do_rcfile()
-       - Remove unneeded assert. (DLR)
-- search.c:
-  search_abort()
-       - Rename to search_replace_abort(). (DLR)
-  findnextstr()
-       - Remove parameter can_display_wrap, as it's always set to TRUE
-         now, and rename parameter wholeword to whole_word, for
-         consistency. (DLR)
-       - Only include the whole_word parameter when DISABLE_SPELLER
-         isn't defined, as it's only used then. (DLR)
-  replace_abort()
-       - Replace with search_replace_abort(), since it does the same
-         things that this function does. (DLR)
-  do_replace_loop()
-       - Change order of parameters to more closely match those of
-         findnextstr(), and rename parameter wholewords to whole_word,
-         for consistency. (DLR)
-       - Only include the whole_word parameter when DISABLE_SPELLER
-         isn't defined, as it's only used then. (DLR)
-- text.c:
-  execute_command()
-       - Instead of hardcoding /bin/sh as the shell to use when
-         executing a command, use $SHELL, and only fall back to /bin/sh
-         if $SHELL isn't set. (DLR)
-  do_wrap()
-       - Rename variable wrapping to prepending, to avoid confusion,
-         and rename the static bool same_line_wrap to prepend_wrap to
-         match. (DLR)
-       - Properly add a new magicline when needed if, in the process of
-         wrapping, we prepend text to the last line of the file. (DLR)
-  break_line()
-       - Only include the newline parameter if DISABLE_HELP isn't
-         defined, as it's only used then. (DLR)
-       - In the surrounding #ifdef, replace the combination of
-         !DISABLE_JUSTIFY and !DISABLE_WRAPPING with
-         !DISABLE_WRAPJUSTIFY, for consistency. (DLR)
-  begpar()
-       - Return FALSE if foo is NULL, as inpar() does. (DLR)
-  backup_lines()
-       - Return void instead of a pointer to the copy of the first
-         line, since current will point to the same location after the
-         text is copied and so can be used instead of the old return
-         value. (DLR)
-       - Remove unused quote_len parameter. (DLR)
-  do_justify()
-       - Don't save current_y and restore it if the user unjustifies,
-         as the reset_cursor() called by edit_refresh() after restoring
-         edittop and current will ensure that current_y is restored to
-         its original value. (DLR)
-       - Renumber after justifying each individual paragraph, since
-         find_paragraph() needs the line numbers to be right as well as
-         edit_refresh().  This fixes a potential segfault when doing
-         full justify with auto-indent turned on. (DLR)
-  do_alt_speller()
-       - Move the code that replaces the text of the current file with
-         the text of the spell-checked file into its own function,
-         replace_buffer(). (DLR)
-- utils.c:
-  parse_line_column()
-       - Simplify parsing of the column number. (DLR)
-  ngetdelim()
-       - Do sanity checks in an assert instead of checking them
-         manually and returning -1 if they fail. (DLR)
-  is_whole_word()
-       - Only include when DISABLE_SPELLER isn't defined, as it's only
-         used then. (DLR)
-  get_page_start()
-       - Fix test so that we scroll through the line in 8-character
-         chunks when COLS is greater than 8, not when COLS is greater
-         than 9. (DLR)
-  remove_magicline()
-       - Add assert. (DLR)
-- winio.c:
-  nanoget_repaint()
-       - Rename parameter inputbuf to buf, for consistency. (DLR)
-  reset_cursor()
-       - Rename variable x to xpt, to avoid confusion. (DLR)
-  update_line()
-       - Remove now-unneeded logic that set the index parameter to zero
-         if the fileptr parameter didn't point to current. (DLR)
-  edit_add()
-       - Rename to edit_draw(), and rename parameter yval to line.
-         (DLR)
-  do_cursorpos()
-       - Remove unneeded assert. (DLR)
-  do_yesno()
-       - Make mouse clicks on the Yes/No/All shortcuts work properly
-         when the MORE_SPACE flag is set. (DLR)
-- configure.ac:
-       - Clarify description of --disable-speller. (DLR)
-       - Disable wrapping entirely when --enable-tiny is used, as it
-         matches the FAQ, it makes nano even smaller, and it eliminates
-         the need for --disable-wrapping-as-root in that case (in which
-         it's impossible to turn wrapping back on without nanorc
-         support). (DLR)
-- README.CVS:
-       - Mention that the minimum required version of texinfo is 4.0,
-         since that's the first version that supports generating HTML.
-         (DLR)
-       - Mention that the minimum required version of groff is 1.12,
-         since that's the first version that supports generating HTML.
-         (DLR)
-       - Update the given cvs commands so that they work again. (DLR)
-- doc/faq.html:
-       - Add a new section 5.3 to explain the status of nano's Unicode
-         support. (Mike Frysinger, minor tweaks by DLR)
-       - Clarify section 5.3 to better explain how to enable Unicode
-         support, and remove the mention of quirks, since they turned
-         out to not be a nano problem. (Mike Frysinger and DLR)
-- doc/nano.1:
-       - Make one non-bold instance of "nano" bold, for consistency.
-         (DLR)
-- doc/man/fr/nano.1, doc/man/fr/nanorc.5:
-       - Updated manpage translations by Jean-Philippe GuĂ©rard.
-- doc/rnano.1:
-       - Add rnano.1 manpage from Thijs Kinkhorst. (Jordi)  DLR: Merge
-         a few minor updates from nano.1.
-- doc/nano.texi:
-       - Fix inconsistent wording and punctuation. (DLR)
-       - Add missing configure options. (Mike Frysinger, minor tweaks
-         by DLR)
-       - Sort the configure options more consistently, and add missing
-         --disable-utf8 option. (DLR)
-       - Move --disable-wrapping above --enable-tiny, as the latter now
-         turns it on. (DLR)
-- doc/nanorc.sample:
-       - Tweak the "c-file" regex for characters to properly accept
-         '\"' and reject '"' and '''. (DLR)
-- doc/texinfo/Makefile.am:
-       - Automatically generate an HTML version of the info page,
-         nano.html. (DLR)
-- src/Makefile.am:
-       - Add browser.c, help.c, and prompt.c to nano_SOURCES. (DLR)
-
-GNU nano 1.3.9 - 2005.10.23
-- General:
-       - Miscellaneous comment fixes. (DLR)
-       - More int -> bool conversions. (DLR)
-       - Fix a few last instances of the current line number's being
-         saved as an int instead of a ssize_t.  Changes to
-         renumber_all(), renumber(), do_alt_speller(), and
-         backup_lines(). (DLR)
-       - Reorder some functions for consistency. (DLR)
-       - Rename variable open_files openfile, for consistency. (DLR)
-       - Remove renumber()'s dependency on the main filestruct.
-         Changes to renumber(); removal of renumber_all(). (DLR)
-       - Restructure things so that every file has its own
-         openfilestruct, and so that the values in it are used directly
-         instead of being periodically synced up with the globals.
-         Accordingly, remove the globals.  Changes to pretty much
-         every function.  Rename add_open_file() make_new_buffer(),
-         rename load_buffer() open_buffer(), rename load_open_file()
-         display_buffer(), rename open_prevnext_file()
-         switch_to_prevnext_buffer(), rename open_prevfile_void()
-         switch_to_prev_buffer(), rename open_nextfile_void()
-         switch_to_next_buffer(), rename write_marked()
-         write_marked_file(), remove load_file(), rename cancel_fork()
-         cancel_command(), rename open_pipe() execute_command(), remove
-         execute_command(), rename resize_variables(), rename
-         global_init() window_size_init(), rename get_buffer()
-         get_key_buffer(), and rename get_buffer_len()
-         get_key_buffer_len(). (DLR)
-       - Replace all mvwaddstr(hblank) calls with a new function that
-         does the same thing without the need for hblank.  New function
-         blank_line(); changes to do_browser(), blank_titlebar(),
-         blank_topbar(), blank_edit(), blank_statusbar(),
-         blank_bottombars(), update_line(), and edit_refresh(). (DLR)
-       - Make the static pid variable used by execute_command() and
-         cancel_command() a pid_t instead of an int, for consistency.
-         (DLR)
-       - Consistently make the flags global and any variables used to
-         hold it longs. (DLR)
-       - Make edit_scroll() sophisticated enough to keep track of
-         current and current_x, update the lines before and after the
-         scrolled region, and properly scroll more than editwinrows
-         lines; and change the movement functions that use
-         edit_scroll() to (a) set current and current_x before calling
-         it, and (b) no longer call edit_redraw() afterward, as it's
-         now unnecessary.  These changes eliminate redundant screen
-         updates when the mark is on, since the mark display depends on
-         current and current_x.  Also change edit_redraw() to use
-         edit_scroll() instead of edit_refresh() when one of its two
-         reference lines is offscreen.  Changes to edit_scroll(),
-         do_page_up(), do_page_down(), do_up(), and do_down(). (DLR)
-       - Consistently make the fg and bg colortype struct entries and
-         any variables used to hold them shorts.  Changes to
-         do_colorinit() (renamed color_init()), color_to_int() (renamed
-         color_to_short()), and parse_colors(). (DLR)
-       - Change color handling to save only the extension and color
-         regex strings constantly,  and to actually compile them on an
-         as-needed basis.  Also, make a color syntax specified on the
-         command line override the syntax associated with the current
-         file extension, add a "default" syntax that takes no
-         extensions for those files that don't match any other
-         syntax's extensions, and add a "none" syntax that's the same
-         as having no syntax at all.  Changes to update_color(),
-         thanks_for_all_the_fish(), nregcomp(), parse_syntax(), and
-         parse_colors(). (Brand Huntsman and DLR)
-       - Various other color fixes.  Handle unspecified foreground
-         colors properly, treat syntax names case sensitively, flag
-         duplicate syntax names as errors, don't automatically
-         reinitialize the displayed colors every time we update the
-         current buffer's colors (since the buffer may not be displayed
-         immediately), don't bother doing complete refreshes of the
-         screen when color support is enabled if there's no regex
-         associated with the current file, and rename variable
-         exttype->val to exttype->ext, for consistency.  Changes to
-         do_colorinit() (renamed color_init()), update_color() (renamed
-         color_update()), write_file(), do_input(), do_output(), and
-         parse_syntax(). (DLR)
-       - Simplify get_totals() to only get the total number of
-         characters, and eliminate dependence on its old ability to get
-         the total number of lines by renumber()ing when necessary and
-         using the number of the last line of a filestruct.  Changes to
-         read_file(), move_to_filestruct(), copy_from_filestruct(),
-         do_justify(), get_totals() (renamed get_totsize()), and
-         do_cursorpos(). (DLR)
-       - Change the NANO_WIDE #define to ENABLE_UTF8, as the latter is
-         clearer. (DLR)
-       - Minor history code fixes: Make sure that the current position
-         in the history list is properly set to the bottom if we cancel
-         out of the prompt, and that magichistory is properly updated
-         when we change it and then move up.  New function
-         history_reset(); changes to nanogetstr(). (DLR)
-       - Various character-handling cleanups.  If we get an invalid
-         multibyte sequence, treat it as Unicode FFFD (Replacement
-         Character), unless we're searching for a match to it.  Also,
-         remove unneeded variables and checks when parsing multibyte
-         sequences.  Changes to is_alnum_mbchar(), is_blank_mbchar(),
-         is_cntrl_mbchar(), is_punct_mbchar(), control_mbrep(),
-         mbwidth(), make_mbchar(), parse_mbchar(), mbstrncasecmp(),
-         mbstrcasestr(), mbrevstrcasestr(), mbstrchr(), and
-         display_string(). (DLR)
-       - Move advanced text operations (command execution in a buffer,
-         wrapping, spell checking, justifying, and word counting) to
-         their own source file, and adjust related variables
-         accordingly.  New file text.c; changes to cancel_command(),
-         execute_command(), do_backspace(), do_delete(), do_tab(),
-         do_enter(), do_mark(), wrap_reset(), do_wrap(),
-         do_int_spell_fix(), do_int_speller(), do_alt_speller(),
-         do_spell(), break_line(), indent_length(), justify_format(),
-         quote_length(), quotes_match(), indents_match(), begpar(),
-         inpar(), backup_lines(), find_paragraph(), do_justify(),
-         do_justify_void(), do_full_justify(), and do_word_count() (all
-         moved to text.c). (DLR)
-       - Since the total number of lines in a file is the same as the
-         number of its last line when all its lines are numbered
-         properly, use that in place of openfile->totlines, and
-         eliminate references to openfile->totlines.  Changes to
-         initialize_buffer_text(), read_file(), move_to_filestruct(),
-         copy_from_filestruct(), do_delete(), do_enter(), do_wrap(),
-         do_justify(), do_alt_speller(), do_wordlinechar_count(),
-         new_magicline(), remove_magicline(), and do_cursorpos(). (DLR)
-       - Various fill-related cleanups.  Move check_die_too_small() and
-         window_size_init()'s code into window_init(), as they really
-         belong there, remove associated separate calls to them, make
-         sure window_init() is always called at the same time when
-         redrawing the screen, and turn the keypad on in topwin in case
-         we ever read input from it.  Changes to window_init(), main(),
-         and do_alt_speller(); removal of check_die_too_small() and
-         window_size_init(). (DLR)
-       - Remove still more redundant screen updates.  Change all
-         wrefresh() calls to wnoutrefresh() calls, except for those in
-         total_update() and do_credits(); call doupdate() just before
-         using blocking input, since nano spends the most time using
-         it, for blocking input; and only do constant sursor position
-         display if we're just about to use blocking input.  Changes to
-         input_tab(), do_browser(), do_output(), main(),
-         get_key_buffer(), check_statusblank(), nanogetstr(),
-         titlebar(), statusbar(), bottombars(), edit_refresh(),
-         do_yesno(), and do_help(). (DLR)
-       - Treat the Unicode characters D800-DFFF, FDD0-FDEF, and
-         xxFFFE-xxFFFF,  as invalid, since the C library's multibyte
-         functions don't seem to.  New function is_valid_unicode();
-         changes to mbrep() and make_mbchar(). (DLR)
-       - Store Unicode values in longs instead of ints, and cover the
-         entire range of Unicode.  Changes to make_mbchar(),
-         is_valid_unicode(), parse_kbinput(), get_unicode_kbinput(),
-         parse_verbatim_kbinput(), and faq.html. (DLR)
-       - Readd the option to turn the keypad off by default from nano
-         1.2.x, but rename the long option from --keypad to
-         --rebindkeypad, clarify its description on the command line,
-         and add an updated FAQ entry about its use.  Changes to
-         window_init(), usage(), main(), get_verbatim_kbinput(),
-         nanorc.sample, nano.1, nanorc.5, nano.texi, and faq.html.
-         (DLR)
-       - Add new -W/--wordbounds command line option, and new
-         "wordbounds" rcfile option, to control whether
-         the word movement functions treat punctuation characters as
-         part of a word.  Changes to do_next_word_void(),
-         do_prev_word_void(), usage(), main(), nano.1, nanorc.5,
-         nano.texi, and nanorc.sample. (DLR, suggested by Mike
-         Frysinger)
-       - Update email address.  Changes to faq.html and AUTHORS. (DLR)
-       - Remove do_(left|right)()'s ability to optionally not update
-         the current line, as this was only used in do_backspace(), and
-         it didn't always update the screen properly.  Changes to
-         shortcut_init(), do_left(), do_right(), and do_backspace();
-         removal of do_left_void() and do_right_void(). (DLR; problem
-         found by Mike Frysinger)
-- color.c:
-       - Remove unneeded fcntl.h include. (DLR)
-- chars.c:
-  control_rep(), control_mbrep()
-       - Assert that the multibyte character passed in is a control
-         character if it's valid. (DLR)
-       - If crep is an invalid multibyte sequence, copy Unicode 0xFFFD
-         (Replacement Character) into it using strncpy() instead of
-         assigning the former to it.  This avoids segfaults when freeing
-         crep later, since it's supposed to be dynamically allocated.
-         (DLR)
-  mbrep()
-       - New function, the equivalent of control_mbrep() for non-control
-         characters. (DLR)
-  parse_mbchar()
-       - Remove now-unneeded bad_chr parameter. (DLR)
-  mbstrchr()
-       - Don't count matches between valid and invalid multibyte
-         sequences anymore, for consistency. (DLR)
-- files.c:
-  open_file()
-       - Assert that filename isn't NULL, and don't do anything special
-         if it's blank, as the the former case shouldn't occur, and the
-         latter case is now handled elsewhere. (DLR)
-  write_file(), write_marked_file(), do_writeout()
-       - Make append an append_type enum instead of an int. (DLR)
-  input_tab()
-       - Make columns an int instead of a size_t, since it's limited by
-         COLS. (DLR)
-- global.c:
-  shortcut_init()
-       - Simplify wording of nano_gotoline_msg. (Jordi and Ken Tyler)
-       - Clarify wording of nano_wordcount_msg, as it will only go
-         through the marked portions of the file if the mark is on.
-         (DLR)
-- move.c:
-  do_first_line(), do_last_line()
-       - Simplify by only using edit_redraw(), and also make them call
-         check_statusblank(). (DLR)
-  do_page_up(), do_page_down()
-       - If there's less than a page of text onscreen, just call
-         do_(first|last)_line(). (DLR)
-  do_para_begin(), do_para_begin_void(), do_para_end(),
-  do_para_end_void(), do_next_word(), do_next_word_void(),
-  do_prev_word(), do_prev_word_void()
-       - Move here from nano.c, as they're movement functions, and also
-         make them call check_statusblank().
-- nano.c:
-  move_to_filestruct()
-       - Fix problem where edittop wouldn't be reset properly if it was
-         inside the text moved to another filestruct. (DLR)
-  copy_from_filestruct()
-       - Miscellaneous cleanups. (DLR)
-  usage()
-       - Properly mention the support for "[+LINE,COLUMN]" on the
-         command line when HAVE_GETOPT_LONG isn't defined. (DLR)
-       - Remove unneeded translation of "--quickblank". (DLR)
-  do_verbatim_input()
-       - If constant cursor position display is on, make sure the
-         cursor position is displayed properly when we finish. (DLR)
-  do_next_word()
-       - Rework to be more like do_prev_word(), to avoid a potential
-         problem if we start at the end of a line. (DLR)
-  do_mouse()
-       - Avoid redundant screen updates by using edit_redraw() instead
-         of edit_refresh(), and remove now-erroneous code that disables
-         setting the mark while in view mode. (DLR)
-  do_output()
-       - When adding a character, just add its length in bytes to
-         current_x instead of calling do_right(), and set placewewant
-         afterward. (DLR)
-  do_alt_speller()
-       - If we can't invoke the spell checker, use sprintf() instead of
-         snprintf() to write the error string we return, as the one
-         formatted value is a simple string, and so altspell_error will
-         always be long enough to hold it.  Also remove unnecessary
-         initialization of altspell_error, refactor so that msglen is
-         no longer needed, and make the error message more similar to
-         what the internal spell checker returns under the same
-         circumstances. (DLR)
-       - Block any pending SIGWINCHes while the alternate spell checker
-         is running, so that it can handle them, and unblock them once
-         it's finished and we've loaded the spell-checked file back in.
-         (DLR)
-       - Use doupdate() to reenter curses mode instead of refresh().
-         (DLR)
-  do_spell()
-       - When displaying an error message from do_(int|alt)_speller(),
-         don't display the error message corresponding to errno if
-         errno is zero. (David Benbennick)
-  do_justify()
-       - If constant cursor position display is on, make sure the
-         cursor position is displayed properly when we finish. (DLR)
-  handle_sigwinch()
-       - Use doupdate() to reenter curses mode instead of refresh().
-         (DLR)
-  allow_pending_sigwinch()
-       - Simplify by using the "?" operator instead of an if clause.
-         (DLR)
-  main()
-       - When opening files with "+LINE,COLUMN" arguments on the
-         command line, don't update the screen when moving to their
-         specified lines and columns. (DLR)
-       - Rename variable fill_flag_used to fill_used, for consistency.
-         (DLR)
-- nano.h:
-       - Since we only use vsnprintf() now, remove the #ifdef block for
-         HAVE_SNPRINTF. (DLR)
-       - Remove TOP from the topmidnone enum, and rename the latter
-         centernone. (DLR)
-       - Move stdlib.h, dirent.h, regex.h, and assert.h includes here,
-         as every source file needs them. (DLR)
-       - Rename the updown enum scroll_dir and the centernone enum
-         update_type for clarity, and add an append_type enum. (DLR)
-       - If we don't have regex.h and hence regex support, disable
-         color support, as it depends on the use of regexes. (DLR)
-- rcfile.c:
-  nregcomp()
-       - Return TRUE when the compilation succeeds and FALSE otherwise,
-         instead of the other way around. (DLR)
-- search.c:
-  search_init()
-       - Don't blank out last_replace anymore when we get a new string,
-         as it'll be blanked out in do_replace().  Also, consolidate
-         the cases for blank and new search strings, as they now differ
-         only in which string they pass to regexp_init(). (DLR)
-  is_whole_word()
-       - Move to utils.c, as it's really a utility function in the same
-         vein as regexp_bol_or_eol(). (DLR)
-  replace_abort()
-       - Remove unnecessary update of placewewant. (DLR)
-  do_replace()
-       - Blank out last_replace properly again just before displaying
-         the "Replace" prompt. (DLR, found by Mike Frysinger)
-       - Remove unnecessary renumber(). (DLR)
-  do_gotolinecolumn()
-       - Add parameter allow_update to control whether the screen is
-         updated after moving.  If it's TRUE, call edit_refresh() after
-         edit_update(). (DLR)
-  do_gotopos()
-       - Only include this function when DISABLE_SPELLER isn't defined,
-         as the alternate spell checking code is now the only place
-         where it's used. (DLR)
-  do_find_bracket()
-       - Add comments and minor cleanups. (DLR)
-  find_history()
-       - Make parameters const where possible. (DLR)
-  update_history()
-       - Don't renumber the history list starting after the entry we
-         found if the entry we found is at the bottom of the list.
-         (DLR, found by Simon Strandman)
-  get_history_completion()
-       - Make parameters const where possible. (DLR)
-- text.c:
-  do_tab()
-       - Make sure that we insert the correct number of spaces if the
-         TABS_TO_SPACES flag is set and placewewant is greater than the
-         current column position of the cursor. (DLR)
-  do_enter()
-       - Don't update the edit window until we set placewewant. (DLR)
-  break_line()
-       - Fix a problem where a line could be broken in the middle of a
-         multibyte character. (DLR)
-  do_word_count()
-       - Rename to do_wordlinechar_count(), and expand to also count
-         the number of lines and characters in the file or selection,
-         as wc does. (DLR)
-- winio.c:
-  get_key_buffer()
-       - Only save all open buffers and hang up when a blocking
-         wgetch() returns ERR and errno is set to EIO (input/output
-         error).  If errno is set to something else, recover properly.
-         This fixes problems with nano's erroneously hanging up while
-         e.g. resizing or unsuspending in a chroot. (DLR, found by Mike
-         Frysinger)
-  get_escape_seq_kbinput()
-       - Fix typo preventing the VT100/VT220/VT320/xterm/rxvt escape
-         sequence for ',' on the numeric keypad with NumLock off from
-         being interpreted properly. (DLR)
-  get_word_kbinput()
-       - Multiply the entered digits by hexadecimal numbers instead of
-         decimal numbers for clarity, rename to get_unicode_kbinput(),
-         and rename variables word and word_digits to uni and
-         uni_digits. (DLR)
-  parse_verbatim_kbinput()
-       - Rename variables word_mb and word_mb_len to uni_mb and
-         uni_mb_len. (DLR)
-  display_string()
-       - Instead of using parse_mbchar()'s bad_chr parameter, use
-         mbrep() to get the representation of a bad character. (DLR)
-       - If column is less than start_col and the character's a tab,
-         which can be possible if there are enough tabs and the
-         terminal size is sufficiently large, don't try to display it
-         using control_mbrep(). (DLR, found by Duncan Geoffry Doyle)
-       - Really avoid a memory corruption problem by allocating enough
-         space for COLS characters. (DLR)
-  edit_redraw(), edit_refresh()
-       - Clean up and simplify. (DLR)
-  edit_update()
-       - Since we no longer use TOP, remove references to it.  Also,
-         don't call edit_refresh() anymore; it will call us. (DLR)
-  do_statusbar_next_word()
-       - Rework to be more like do_statusbar_prev_word(), to avoid a
-         potential problem if we start at the end of a line. (DLR)
-  do_statusbar_input()
-       - Call do_statusbar_mouse() instead of do_mouse(). (DLR)
-  do_statusbar_output()
-       - When adding a character, just add its length in bytes to
-         statusbar_x instead of calling do_statusbar_right(). (DLR)
-  titlebar()
-       - Rework to display only one space after the version number, so
-         that there's more room for other things, and to not display
-         the status when we're in the file browser, since Pico doesn't.
-         (DLR)
-  do_credits()
-       - Various cleanups.  Turn on the MORE_SPACE and NO_HELP flags
-         before showing the credits, so that they use as much of the
-         screen as possible, and set the flags back to their original
-         values afterward.  Also, call wscrl(1) instead of scroll(),
-         only call scrollok() just before and after we scroll, and
-         tweak where screen updates occur so that messages are properly
-         displayed when they first scroll onto the bottom line of the
-         screen. (DLR)
-       - Add Mike Frysinger to credits. (DLR)
-- configure.ac:
-       - Since we only use vsnprintf() now, remove the tests for
-         snprintf(). (DLR)
-       - Change the description of "sufficient wide character support"
-         to "sufficient UTF-8 support", as the latter is clearer. (DLR)
-       - Update the description of the ENABLE_COLOR option to mention
-         the need for regex.h. (DLR)
-- doc/faq.html:
-       - Update section 4.10 to mention that pasting from the X
-         clipboard via the middle mouse button also works when the
-         Shift key is used. (DLR)
-- doc/nanorc.sample:
-       - Add regexes for Bourne shell scripts. (Mike Frysinger, minor
-         tweaks by DLR)
-       - Explain how the "none" and "default" syntaxes work. (DLR)
-       - Tweaks and additions to the "c-file" regexes: handle #defined
-         constants more accurately and use a brighter color for them,
-         support C99 standard integer types, support more GCC builtins,
-         and color code flow control statements differently. (Mike
-         Frysinger)  DLR: Slightly simplify the integer types regex.
-       - Tweak one "TeX" regex to use the "icolor" directive. (DLR)
-- doc/man/nanorc.5:
-       - Explain how the "none" and "default" syntaxes work. (DLR)
-- doc/man/fr/nano.1, doc/man/fr/nanorc.5:
-       - Updated translation by Jean-Philippe GuĂ©rard.
-- src/Makefile.am:
-       - Add text.c to nano_SOURCES. (DLR)
-- AUTHORS:
-       - Add Mike Frysinger. (DLR)
-- README.CVS:
-       - Since we only use vsnprintf() now, remove the mention of
-         snprintf(). (DLR)
-- THANKS:
-       - Add Bulgarian and Dutch translators.
-
-GNU nano 1.3.8 - 2005.06.30
-- General:
-       - Miscellaneous comment fixes. (DLR)
-       - Various #include fixes.  Since proto.h includes nano.h, only
-         include the former in source files.  Also add an #include
-         guard to proto.h, and make the config.h #include in nano.h
-         match the config.h #includes everywhere else. (DLR)
-       - Change all hardcoded instances of 128 bytes to MAX_BUF_SIZE,
-         and #define MAX_BUF_SIZE as 128 in nano.h. (DLR)
-       - Display the key to go to the previous strings in the
-         search/replace history as "^P" instead of "Up".  This makes
-         mouse clicks work properly on it.  Changes to shortcut_init(),
-         help_init(), nanogetstr(), and do_statusbar_input(). (DLR)
-       - Update the Free Software Foundation's mailing address in
-         various comments. (DLR)
-       - Add the ability to open a file on a specified column as well
-         as a specified line, by allowing an argument of the form
-         +LINE,COLUMN.  New function parse_line_column(); changes to
-         shortcut_init(), main(), do_gotoline() (renamed
-         do_gotolinecolumn()), do_gotoline_void() (renamed
-         do_gotolinecolumn_void()), nano.1, and nano.texi. (DLR,
-         suggested by PFTank)
-       - Overhaul the history code to work more consistently, and clean
-         up various parts of it.  New function history_has_changed();
-         changes to load_history(), writehist(),
-         thanks_for_all_the_fish(), history_init(), find_node()
-         (renamed find_history()), update_history(),
-         get_history_older(), get_history_newer(),
-         get_history_completion(), do_search(), do_replace(),
-         nanogetstr(), and statusq(); removal of remove_node() and
-         insert_node(). (DLR)
-       - Remove all instances of charcpy() and replace them with
-         strncpy(), since there's no way to be sure that a charcpy()ed
-         string will always be properly null-terminated, and strcpy()'s
-         null termination is the only difference between it and
-         charcpy(). (DLR)
-       - When using a backup directory, make sure all the filenames
-         written are unique by using get_next_filename() when
-         necessary.  Changes to get_next_filename(), write_file(),
-         die(), usage(), nano.1, nanorc.5, nanorc.sample, and
-         nano.texi. (DLR, suggested by James Collings)
-       - Rework the file-writing routines so that they can work
-         properly with already-opened files, such as the
-         mkstemp()-created files used by the spell-checking code.
-         Changes to safe_tempnam() (renamed safe_tempfile()),
-         write_file(), write_marked(), die(), do_spell(), and
-         do_exit(). (DLR)
-       - Remove the -R/--regexp command line option and enable the
-         toggle at the search prompt in tiny mode, as it already
-         allows the prepend and append toggles at the search prompt.
-         For consistency, rename TOGGLE_REGEXP_KEY to NANO_REGEXP_KEY,
-         and move it out of the toggles block to where NANO_PREPEND_KEY
-         and NANO_APPEND_KEY are.  Also, change the short command line
-         option for --restricted from -Z to -R.  Changes to
-         shortcut_init(), usage(), main(), search_init(), nano.1,
-         nano.texi, etc. (DLR)
-       - Various cleanups and improvements in chars.c.  Remove some
-         unnecessary w?ctype wrappers and variables; change the wctype
-         wrappers to take wint_t instead of wchar_t to match the
-         functions they wrap; rename some functions for consistency;
-         add functions to detect blank characters in a string, for use
-         in rcfile option parsing; and don't count matches between
-         valid and invalid multibyte sequences anymore, as it causes
-         problems when doing a replace.  New functions
-         is_valid_mbstring(), has_blank_chars(), and
-         has_blank_mbchars(); changes to is_alnum_mbchar(),
-         is_blank_char() (renamed nisblank()), is_blank_mbchar(),
-         is_blank_wchar() (renamed niswblank()), is_cntrl_wchar(),
-         control_rep(), control_mbrep(), make_mbstring() (renamed
-         make_valid_mbstring()), mbstrncasecmp(), mbstrcasestr(),
-         mbrevstrcasestr(), etc.; removal of is_alnum_char() and
-         is_alnum_wchar(). (DLR)
-       - Implement word count via Meta-D at the main window.  Note that
-         this is disabled when NANO_SMALL is defined.  Also, convert
-         all word detection functions to use the same wrapper function
-         for ease of maintenance, and make them return more
-         information.  New functions is_punct_mbchar(),
-         is_word_mbchar(), do_next_word_void(), do_prev_word_void(),
-         and do_word_count(); changes to shortcut_init(),
-         do_next_word(), do_prev_word(), is_whole_word(),
-         do_statusbar_next_word(), and do_statusbar_prev_word(). (DLR)
-       - Fix #ifdefs so that nano compiles with NANO_SMALL defined and
-         DISABLE_TABCOMP undefined.  Changes to revstrstr() and
-         free_charptrarray() (renamed free_chararray()). (DLR)
-       - Change the wctype wrappers to take wchar_t's again, as they
-         still work the same way with them.  This also fixes
-         compilation on Mac OS X 10.4.1, which doesn't seem to define a
-         wint_t type. (DLR, found by Emily Jackson)
-       - Add the ability to convert typed tabs to spaces using
-         the -E/--tabstospaces command line options, the "tabstospaces"
-         rcfile option, and the toggle Meta-Q (since QBasic did this by
-         default :)).  Note that this doesn't affect tabs entered using
-         verbatim input, and that it's disabled when NANO_SMALL is
-         defined.  Also, change the short command line option for
-         --backupdir from -E to -C.  Changes to toggle_init(), usage(),
-         do_tab(), main(), nanorc.sample, nano.1, nanorc.5, and
-         nano.texi. (DLR, suggested by many people)
-       - Change the CONSTUPDATE, REVERSE_SEARCH, and SMOOTHSCROLL flags
-         to the CONST_UPDATE, BACKWARDS_SEARCH, and SMOOTH_SCROLL
-         flags, respectively. (DLR)
-       - Change the SMOOTHSCROLL flag to the SMOOTH_SCROLL flag. (DLR)
-       - Change the NO_UTF8 flag to the USE_UTF8 flag, and reverse its
-         meaning. (DLR)
-       - Add rcfile options "casesensitive" and "backwards", to do
-         case sensitive and backwards searches by default.  Changes to
-         nanorc.sample and nanorc.5. (DLR)
-       - Since the DISABLE_CURPOS flag is only used in winio.c, reduce
-         it to a static bool there.  Changes to statusbar() and
-         disable_cursorpos(). (DLR)
-       - Add -U/--quickblank option and a "quickblank" rcfile option to
-         blank the statusbar after 1 keystroke instead of 25.  Note
-         that this obviously has no effect when constant cursor
-         position display is turned on, and that this is disabled when
-         NANO_SMALL is defined.  Changes to usage(), main(),
-         statusbar(), nanorc.sample, nano.1, and nanorc.5. (DLR,
-         suggested by CHAO Wei-Lun)
-       - Add support for case insensitive expression matching when
-         using color syntax highlighting, via the "icolor" directive,
-         and add it to those regexes that can use it.  Changes to
-         parse_colors(), parse_rcfile(), nanorc.sample, and nanorc.5.
-         (Brand Huntsman, minor tweaks by DLR)
-       - Add various type changes to avoid problems on systems where
-         int and ssize_t are different sizes.  Make filestruct->lineno
-         a ssize_t (so that we can avoid negative line numbers at the
-         "Go To Line" prompt), current_y a ssize_t (in order to hold
-         the maximum difference between two filestruct->lineno's),
-         totlines a size_t, and change related variables to match.
-         (DLR, initial problem with parse_line_column() found by Mike
-         Frysinger)
-       - Rework the credits handling to display Florian König's name
-         properly whether we're in a UTF-8 locale or not, and without
-         requiring a massive function that we only use once.  Changes
-         to do_credits(); removal of make_valid_mbstring(). (DLR)
-- chars.c:
-  make_mbstring()
-       - Change erroneous ENABLE_EXTRA #ifdef to NANO_EXTRA to fix a
-         compilation problem when --enable-nanorc isn't used and
-         --enable-extra is. (DLR)
-- color.c:
-  update_color()
-       - Use mbstrcasecmp() instead of strcasecmp(), so that UTF-8
-         color syntax names are properly detected. (DLR)
-- cut.c:
-  cut_line()
-       - Set placewewant properly after cutting a line, to avoid a
-         problem where the screen won't be updated if (a) we're not on
-         the first page when we cut the line, and (b) immediately after
-         we cut the line, we hit End to move to the end of the line
-         after it. (DLR)
-- files.c:
-  read_line()
-       - Rename variable prev to prevnode to avoid confusion. (DLR)
-       - Rename variable len to buf_len, for consistency. (DLR)
-  load_open_file()
-       - Remove an unneeded clearok(FALSE). (DLR)
-  get_next_filename()
-       - Use an unsigned long instead of an int for the number
-         prepended to the filename. (DLR)
-  do_insertfile()
-       - Set i to 0 when we get a filename via the file browser, so
-         that it's read in properly when we exit the file browser.
-         (DLR)
-  open_prevnext_file()
-       - Move up a misplaced assert. (DLR)
-       - Rename variable next to next_file, to avoid confusion. (DLR)
-  write_file()
-       - Since lineswritten is a size_t, print its value as an unsigned
-         long instead of an unsigned int. (DLR)
-       - Declare the size_t i only in the loop where it's used. (DLR)
-  diralphasort()
-       - Use mbstrcasecmp() instead of strcasecmp(), so that UTF-8
-         filenames are sorted properly. (DLR)
-  cwd_tab_completion(), browser_init()
-       - Rename variable next to nextdir to avoid confusion. (DLR)
-  input_tab()
-       - Since list is a bool, set it to FALSE instead of 0. (DLR)
-       - Add multibyte/wide character support, so that we don't end up
-         with a string that contains only part of a multibyte
-         character during tab completion. (DLR)
-       - Rename variable buflen to buf_len, for consistency. (DLR)
-  do_browser()
-       - Don't treat NANO_CANCEL_KEY as NANO_EXIT_KEY anymore, for
-         consistency. (DLR)
-       - When displaying "(dir)" in the available screen space, make
-         sure that the string it's stored in is always null-terminated.
-         (DLR)
-       - Rename variable selectedbackup to old_selected, for
-         consistency. (DLR)
-       - Make mouse clicks in the browser window work properly when the
-         MORE_SPACE flag is set. (DLR)
-       - Make foo_len a size_t instead of an int. (DLR)
-  save_history()
-       - Properly save history when we're in view mode. (DLR)
-- global.c:
-  shortcut_init()
-       - Move the "Refresh" and "Exit" shortcuts to the beginning of
-         the help browser shortcut list, for consistency. (DLR)
-       - Remove unnecessary "Refresh" placeholder in the file browser
-         shortcut list. (DLR)
-       - Allow the mark to be used in view mode, as Pico does. (DLR)
-       - Clarify the description of ^X when --enable-multibuffer is
-         used. (DLR)
-       - Change the description of the Meta-B toggle at the search
-         prompt from "Direction" to "Backwards", for consistency. (DLR)
-  toggle_init()
-       - Clarify the descriptions of M-C and M-L. (DLR)
-       - Reorder the toggles to put more toggles with similar functions
-         together. (DLR)
-  thanks_for_all_the_fish()
-       - Remove free_toggles() and move its code here verbatim, as it's
-         only called here anyway. (David Benbennick)
-       - Fix the code to free all open file buffers to work properly
-         with the previous overhaul of the multibuffer code instead of
-         going into an infinite loop. (David Benbennick)
-       - Add additional checks for variables' not being NULL before we
-         try to free them, to avoid assertion failures. (DLR)
-- nano.c:
-  die()
-       - Rename variable ret to retval for consistency. (DLR)
-       - Tweak the message displayed when a backup file can't be
-         written, so as to not duplicate a translated string. (DLR)
-       - If the current filestruct's been partitioned, unpartition it
-         before saving the associated file. (DLR)
-  resize_variables()
-       - Use charset() instead of memset() to initialize hblank. (DLR)
-  copy_filestruct()
-       - Rename variable prev to copy to avoid confusion. (DLR)
-  print1opt_full()
-       - If desc should be empty, allow it to be NULL instead of
-         "", since the latter is not necessarily translated as "".
-         (DLR, found by Jordi)
-  usage()
-       - Add missing N_() around one message, so that it isn't
-         erroneously translated twice. (DLR)
-       - Remove inaccurate default listed for -Q/--quotestr. (DLR)
-  version()
-       - Add --enable-utf8 to the displayed compilation options, put
-         the options in alphabetical order, and handle --enable-tiny
-         the same way as all the other options. (DLR)
-  do_tab()
-       - Remove unneeded variable kbinput. (DLR)
-  do_int_spell_fix()
-       - Display highlighted misspelled words using display_string(),
-         as do_replace_loop() does. (DLR)
-  do_alt_speller()
-       - Replace a set_modified() with SET(MODIFIED) to avoid an
-         unnecessary update, and remove an unneeded clearok(FALSE).
-         (DLR)
-       - Move the spell checking error handling block down and refactor
-         it so that we go back into curses mode, reinitialize the
-         terminal, turn the cursor back on, and turn the mark back on
-         if necessary before returning the error message. (DLR)
-  do_spell()
-       - If the spell-checker printed any error messages onscreen, call
-         total_refresh() to make sure they're cleared off. (DLR, found
-         by CHAO Wei-Lun)
-  find_paragraph()
-       - Reset placewewant as well as current_x to 0, in order to avoid
-         a potential screen update problem. (DLR)
-  do_justify()
-       - Save placewewant, and restore it if we unjustify, in order to
-         avoid a potential screen update problem. (DLR)
-  do_output()
-       - Properly allow wrapping when we insert a tab, for consistency.
-         (DLR)
-       - Don't set current_len until after it's been asserted that both
-         current and current->data aren't NULL. (DLR)
-  do_toggle()
-       - Properly treat color syntax highlighting as enabled by
-         default, and only treat wrapping as enabled by default when
-         DISABLE_WRAPPING isn't defined. (DLR)
-  disable_extended_input()
-       - Disable extended output processing as well as extended input
-         processing, and rename to disable_extended_io(). (DLR)
-  disable_flow_control(), enable_flow_control()
-       - Only turn off flow control on output, as it might be needed
-         for input on slow terminals. (DLR)
-- nano.h:
-       - Add macro charset(), a wrapper that calls memset(). (DLR)
-       - Readd #defines for the isblank() and iswblank() equivalents.
-         (DLR)
-       - In the colortype struct, make bright a bool instead of an int,
-         for consistency. (DLR)
-- proto.h:
-       - Add missing NANO_SMALL and HAVE_REGEX_H #ifdefs around the
-         do_find_bracket() prototype. (DLR)
-- rcfile.c:
-  color_to_int()
-       - Since colorname's being NULL is handled elsewhere now, assert
-         that it isn't NULL at the beginning of the function. (DLR)
-  parse_colors()
-       - Properly parse a background color without a foreground color.
-         (DLR)
-       - Properly generate an error if we get a color directive without
-         a regex string. (DLR)
-  parse_rcfile()
-       - Properly generate an error if we get an invalid multibyte
-         string for an option, instead of working around it. (DLR)
-       - Use has_blank_mbchars() to check for blank characters in the
-         "punct" and "brackets" options, and clarify the error message
-         displayed when we find blank characters. (DLR)
-- search.c:
-  do_gotoline()
-       - Properly show an error message if we try to go to line 0,
-         since the first line in the file is 1. (DLR)
-       - Start the search for a line from fileage instead of current
-         (again). (DLR)
-  replace_regexp()
-       - Rename variables create_flag and new_size to create and
-         new_line_size, for consistency. (DLR)
-       - Make new_line_size, search_match_count, and i size_t's, for
-         consistency. (DLR)
-  replace_line()
-       - Make new_line_size and search_match_count size_t's, for
-         consistency. (DLR)
-  do_replace_loop()
-       - When moving to the next match, update the screen using
-         edit_refresh() instead of edit_redraw(), as the latter won't
-         work properly when we've replaced one or more instances of a
-         string in copy and haven't yet updated current->data to match
-         copy. (DLR)
-  do_find_bracket()
-       - Miscellaneous cleanups: rename variables for consistency, and
-         save the search direction and regexp setting in two bools
-         instead of one flags variable. (DLR)
-- utils.c:
-  num_of_digits()
-       - Use a size_t instead of an int, and rename to digits(). (DLR)
-  align()
-       - Rename variable strp to str for consistency. (DLR)
-- winio.c:
-  do_statusbar_output()
-       - Don't set answer_len until after it's been asserted that
-         answer isn't NULL. (DLR)
-  display_string()
-       - Avoid a memory corruption problem by allocating enough space
-         for len plus a trailing multibyte character and/or tab. (DLR)
-       - Don't check for multicolumn characters if the NO_UTF8 flag
-         isn't set. (DLR)
-       - Free buf_mb when we're done using it. (DLR)
-  nanogetstr()
-       - Rename variable def to curranswer to avoid confusion. (DLR)
-       - Only declare and use the tabbed variable if DISABLE_TABCOMP
-         isn't defined. (DLR)
-       - Refactor to replace unnecessary variable answer_len with
-         curranswer_len, and hence avoid an assertion failure involving
-         the former. (DLR)
-  statusq()
-       - Rename variable which_history to history_list, for
-         consistency. (DLR)
-       - Rename variables def and ret to curranswer and retval to avoid
-         confusion. (DLR)
-       - Call wnoutrefresh(bottomwin) after getting an answer and
-         blanking out the statusbar, to make sure that the blanking is
-         done.  This fixes a problem where the statusbar is not
-         properly blanked after using the "Go To Line" prompt with the
-         NO_HELP flag set. (DLR)
-  titlebar()
-       - Use actual_x() to calculate the number of characters VERMSG
-         takes up, in case it's UTF-8. (DLR)
-  do_cursorpos()
-       - Properly display the value of totsize as unsigned. (DLR)
-       - If constant is TRUE, only display the cursor position when
-         disable_cursorpos is FALSE.  Don't refuse to display it when
-         the cursor position hasn't changed, as that doesn't always
-         keep it properly updated. (DLR, found by Mike Frysinger)
-  do_help()
-       - Don't treat NANO_CANCEL_KEY as NANO_EXIT_KEY anymore, for
-         consistency. (DLR)
-  statusbar()
-       - Set statusblank to 25 instead of 26, to match current Pico.
-         (DLR)
-  edit_redraw()
-       - Make do_refresh a bool instead of an int. (DLR)
-  do_yesno()
-       - Allow refreshing the screen via Ctrl-L, as Pico does. (DLR)
-       - Add a missing assert, and use actual_x() to calculate the
-         number of characters buf takes up, in case it's UTF-8. (DLR)
-       - Get input from bottomwin instead of edit, so that the cursor
-         isn't erroneously put in the edit window while we wait for an
-         answer. (DLR)
-       - Call wnoutrefresh(edit) to make sure that the edit window is
-         refreshed before we get input, as statusq() does. (DLR)
-  total_redraw()
-       - Simplify to just call wrefresh() on curscr, which updates the
-         entire screen in one function call without moving the cursor
-         from the window it's currently in. (DLR)
-       - When using slang, use SLsmg_touch_screen() and SLsmg_refresh()
-         to update the screen, as slang doesn't define curscr. (DLR)
-  do_replace_highlight()
-       - Use waddch() instead of waddstr() to display a space when we
-         have a zero-length regex. (DLR)
-       - Rename variable highlight_flag to highlight, for consistency.
-         (DLR)
-  do_credits()
-       - Save the keystroke that breaks us out of the credits (if any)
-         and put it back so that it isn't lost.  This is especially
-         needed if the keystroke is part of a multibyte character.
-         (DLR)
-- nano.1:
-       - Clarify and consolidate the descriptions of --fill and
-         --tabsize. (DLR)
-- nanorc.5:
-       - Update the description of how the "color" regex works. (DLR)
-       - Clarify descriptions of the characters that aren't allowed
-         in the "punct" or "brackets" options. (DLR)
-       - Use .B instead of \fB ... \fP where possible, as nano.1 does.
-         (DLR)
-       - Clarify and consolidate the descriptions of "fill" and
-         "tabsize". (DLR)
-- nano.texi:
-       - Update the "Feature Toggles" section to match current nano.
-         (DLR)
-       - Clarify and consolidate the descriptions of --fill and
-         --tabsize. (DLR)
-- configure.ac:
-       - Minor tweaks to some of the test blocks to avoid XSI:isms.
-         (DLR, adapted from a Debian patch for GNU ed by David
-         Weinehall)
-       - Don't refer to the built-in file browser as crappy anymore.
-         (DLR)
-       - Check for iswpunct() and mbstowcs(). (DLR)
-       - Change the behavior of --enable-extra to only define
-         NANO_EXTRA, instead of defining both it and
-         ENABLE_MULTIBUFFER. (DLR)
-       - Check for get_wch() instead of wget_wch() to determine if
-         there's a wide curses library, as it's a more generic
-         function. (DLR)
-       - Check for possibly unavailable functions in alphabetical
-         order. (DLR)
-- doc/faq.html:
-       - Update section 1.1 to mention the current maintainer. (DLR)
-       - Minor capitalization and wording fixes. (DLR)
-       - Update description of --enable-extra, and add missing line
-         breaks. (DLR)
-- doc/nanorc.sample:
-       - In the "nanorc" regexes, tweak the "color" regex to properly
-         color a line that specifies a background color without a
-         foreground color, and update the associated comments. (DLR)
-       - Clarify descriptions of the characters that aren't allowed
-         in the "punct" or "brackets" options. (DLR)
-       - Update comment referring to --enable-extra. (DLR)
-       - Add "cxx" and "hxx" to the list of extensions that the
-         "c-file" regexes apply to, and add "warning" and "error" to
-         them as well. (Mike Frysinger)
-       - Add regexes for assembler files. (Mike Frysinger)
-       - In the preprocessor directives regex string in the "c-file"
-         regexes, cover more whitespace characters than just " " by
-         using "[[:space:]]" instead. (Mike Frysinger)  DLR: Extend
-         this to other regex strings whenever possible.
-       - Move some overly long split-up regex strings that cover
-         similar areas onto the same line. (DLR)
-       - Add GCC builtins to the "c-file" regexes. (Mike Frysinger)
-       - Simplify the file extension regex for groff. (DLR)
-       - Clarify and consolidate the descriptions of "fill" and
-         "tabsize". (DLR)
-- Makefile.am, m4/Makefile.am:
-       - Make sure that the files in EXTRA_DIST are in alphabetical
-         order, and that the lines are wrapped at 72 characters. (DLR)
-- doc/man/fr/Makefile.am:
-       - Set mandir to @mandir@/fr, so French manpages get installed
-         where they belong (Jordi).
-- THANKS:
-       - Add new translators to the credits.
-
-GNU nano 1.3.7 - 2005.04.10
-- General:
-       - Miscellaneous comment fixes. (DLR)
-       - After (re)initializing the terminal, make sure the cursor is
-         always turned on.  Changes to do_alt_speller(),
-         handle_sigwinch(), and main(). (DLR)
-       - Make sure that all references to cut-to-end are left out when
-         NANO_SMALL is defined.  Changes to cut_to_eol(),
-         do_cut_text(), and do_statusbar_cut_text(). (DLR)
-- chars.c:
-  make_mbchar()
-       - Remove unneeded assert. (DLR)
-  move_mbleft()
-       - Fix assert to reference the proper variable, so that nano
-         builds with DEBUG defined again. (Mike Frysinger, found by
-         Dmitri Vassilenko)
-- files.c:
-  do_insertfile()
-       - Fix problem where going into the help browser at the "Insert
-         File" prompt would always result in the current answer's being
-         used as the filename afterward. (DLR)
-  get_full_path()
-       - Rework handling of the results of getcwd() in order to avoid
-         segfaults if they fail, and to remove uses of the nonportable
-         GNU extension where passing a size of 0 will get a string as
-         long as we need. (DLR)
-  do_browser()
-       - Rename variable lineno to fileline to avoid confusion. (DLR)
-  do_browse_from()
-       - Rework handling of the results of getcwd() in order to avoid
-         segfaults if they fail, and to remove uses of the nonportable
-         GNU extension where passing a size of 0 will get a string as
-         long as we need. (DLR)
-- nano.c:
-  help_init()
-       - When calculating allocsize, take multibyte characters into
-         account, and keep the column number limits consistent. (DLR)
-       - Break htx up into three chunks, in case the string is too long
-         for the compiler to handle (e.g. an ISO C89 compiler that can
-         only handle up to 509 characters). (DLR)
-       - Minor wording fixes. (DLR)
-  print1opt()
-       - Don't include longflag if HAVE_GETOPT_LONG isn't defined.
-         Rename this function to print1opt_full(), leave out the
-         longflag parameter if HAVE_GETOPT_LONG isn't defined, and make
-         print1opt() a macro for print1opt_full() that does that
-         without the need for a lot of extra #ifdefs. (David
-         Benbennick)  DLR: Rename print1opt_f() to print1opt_full().
-       - Rework the special case of options that are ignored for Pico
-         compatibility so that they display more neatly when
-         HAVE_GETOPT_LONG isn't defined. (DLR)
-  usage()
-       - Fix erroneous #ifdef that resulted in the -d/--rebinddelete
-         option's not being printed when NANO_SMALL was defined. (DLR)
-  find_paragraph()
-       - Fix problem where a search for the next paragraph would skip
-         over certain cases of one-line paragraphs. (DLR)
-  do_justify()
-       - Instead of breaking a line at a space and readding the space
-         afterwards, just break the line after the space, as it's more
-         efficient. (DLR)
-  main()
-       - Change 0 to NULL in the option struct where needed. (David
-         Benbennick)
-- nano.h:
-       - Define PATH_MAX as 4096 if it isn't defined, as passing a size
-         of 0 to get a string as long as we need is a nonportable GNU
-         extension, and hence it won't work on non-GNU systems that
-         don't define PATH_MAX. (DLR)
-- rcfile.c:
-  parse_rcfile()
-       - Fix debugging message to display the long value of a flag
-         properly. (DLR)
-- utils.c:
-  regexec_safe()
-       - Rename to safe_regexec() for consistency. (DLR)
-- winio.c:
-  nanogetstr()
-       - Fix misplaced break. (DLR)
-  statusq()
-       - Make sure that the vsnprintf(foo) call and foo's subsequent
-         null termination both take the proper number of bytes when
-         using multibyte characters, so that multibyte prompt strings
-         aren't prematurely cut off. (DLR)
-  titlebar()
-       - Make sure that the (mv)?waddnstr() calls take the proper
-         number of bytes when using multibyte characters, so that
-         multibyte strings aren't prematurely cut off. (DLR, found by
-         Jordi)
-       - Allow the "View" state to be displayed when a filename is
-         passed in, in case we're in multibuffer mode and inside the
-         file browser. (DLR)
-  help_line_len()
-       - Make the text display more flexible, and closer to what nano
-         1.2.x does. (DLR)
-- configure.ac:
-       - Allow more flexible handling of UTF-8 support by allowing
-         the --enable-utf8 and --disable-utf8 options. (Mike
-         Frysinger)  DLR: Extend these options to work with slang as
-         well as curses, consolidate the warning and error messages
-         dealing with UTF-8 support as much as possible, and add a few
-         minor consistency fixes.
-       - Mention explicitly that the check for the broken regexec() is
-         needed for glibc 2.2.3. (DLR)
-- nanorc.sample:
-       - Fix the description for the whitespace option to mention that
-         only single-column characters are allowed. (DLR)
-       - Add C++ regexes. (Neil Brown, merged into c-file regexes by
-         DLR)
-       - Break up overly long perl and nanorc regexes into separate
-         regexes of no more than 256 bytes, as POSIX-compliant regexp
-         implementations can reject regexes of over 256 bytes. (DLR)
-- nano.1, nano.texi:
-       - Mention the -? alias for -h/--help, and add various
-         consistency fixes. (DLR)
-- nanorc.5:
-       - Fix the description for the whitespace option to mention that
-         only single-column characters are allowed. (DLR)
-
-GNU nano 1.3.6 - 2005.03.20
-- General:
-       - More int -> bool conversions. (DLR and David Benbennick)
-       - Overhaul the cutting and uncutting routines to use the
-         partitioning code, as it greatly simplifies how they work.
-         New functions move_to_filestruct(), copy_from_filestruct(),
-         cut_line(), cut_marked(), and cut_to_eol(); changes to
-         add_to_cutbuffer(), do_cut_text(), do_uncut_text(), etc.;
-         removal of functions get_cutbottom(), add_to_cutbuffer(), and
-         cut_marked_segment(). (DLR)
-       - Overhaul the justify-related routines to back up and restore
-         unjustified text to use the partitioning code, as it greatly
-         simplifies how they work, and to store such text in its own
-         buffer rather than the cutbuffer.  Changes to backup_lines(),
-         do_justify(), etc. (DLR)
-       - Overhaul the multibuffer routines to increase efficiency, most
-         importantly making them use a doubly linked list for the open
-         files so that switching between them is no longer O(N), and
-         only including free_openfilestruct() when --enable-debug is
-         used.  Also use some of the same efficiency tweaks when
-         dealing with filestruct nodes.  New function
-         open_prevnext_file(); changes to make_new_opennode(),
-         splice_opennode(), unlink_opennode(), delete_opennode(),
-         free_openfilestruct(), add_open_file(), load_open_file(),
-         close_open_file(), shortcut_init(), die(), make_new_node(),
-         copy_node(), splice_node(), delete_node(), and
-         free_filestruct(); removal of open_prevfile() and
-         open_nextfile(). (David Benbennick, minor tweaks and additions
-         by DLR)
-       - Change references to "open files" to "open file buffers", for
-         consistency. (DLR)
-       - Add flag to disable UTF-8 sequence interpretation, so that
-         people using single-byte encodings such as KOI8-R can type
-         properly again. (DLR, found by Arthur Ivanov)
-       - Massively overhaul the input and output routines to support
-         buffered input and output, the first steps toward
-         wide/multibyte character input and output, and verbatim input
-         of double-byte Unicode characters instead of single-byte ASCII
-         characters.  New functions is_byte(), get_buffer(),
-         get_buffer_len(), buffer_to_keys(), unget_input(),
-         get_input(), parse_kbinput(), and parse_verbatim_kbinput();
-         new macro charcpy(); changes to do_char() (renamed to
-         do_output()), get_edit_input() (renamed to do_input() and
-         moved to nano.c), get_edit_mouse() (renamed do_mouse() and
-         moved to nano.c), do_verbatim_input(), do_tab(), main(), and
-         get_ascii_kbinput() (renamed to get_byte_kbinput()).  The wide
-         version of ncurses is required in order for wide/multibyte
-         input and output to work properly. (DLR; buffered input/output
-         based on ideas from mutt 1.4.2.1; input of Unicode characters
-         in hexadecimal suggested by Michael Piefel)
-       - More steps toward wide character/multibyte character support.
-         New functions control_rep(), parse_char(), move_left(), and
-         move_right(); changes to do_left(), do_right(), do_delete(),
-         breakable(), break_line(), do_output(), get_buffer(),
-         unget_input(), actual_x(), strnlenpt(), display_string(),
-         titlebar(), statusbar(), onekey(), edit_add(),
-         do_replace_highlight(), and do_credits(). (David Benbennick
-         and DLR)
-       - Overhaul the high-level input routines for the statusbar to
-         make them read the shortcut lists for functions instead of
-         manually running them, to make nanogetstr() less complex, and
-         to increase flexibility.  Note that currshortcut is now used
-         regardless of #ifdefs, and that cutting text at the statusbar
-         now respects the CUT_TO_END flag.  Changes to shortcut_init()
-         and nanogetstr(); new functions do_statusbar_input(),
-         do_statusbar_mouse(), do_statusbar_home(), do_statusbar_end(),
-         do_statusbar_right(), do_statusbar_left(),
-         do_statusbar_backspace(), do_statusbar_delete(),
-         do_statusbar_cut_text(), and do_statusbar_output(). (DLR)
-       - Even more steps toward wide character/multibyte character
-         support.  Movement and cursor display at the statusbar prompt
-         should now (mostly) work properly with a string containing
-         multibyte characters, and text display of such strings should
-         now (mostly) work properly as well.  Changes to search_init(),
-         nanoget_repaint(), do_statusbar_right(), do_statusbar_left(),
-         do_statusbar_backspace(), and do_statusbar_delete(). (David
-         Benbennick and DLR)
-       - Implement cutting from the current position to the end of the
-         file, using Ctrl-X from the search prompt and Meta-T from the
-         edit window.  New function do_cut_till_end().  Note that this
-         is disabled when NANO_SMALL is defined. (DLR, based on ideas
-         from a patch for Pico by Eduardo Chappa, suggested by Ryan
-         Dlugosz and Paul Adams)
-       - Implement verbatim input for the statusbar prompt.  Changes to
-         do_statusbar_input() and do_statusbar_output(); new functions
-         keys_to_buffer(), unparse_kbinput(), and
-         do_statusbar_verbatim_input(). (DLR)
-       - Yet more steps toward full wide character/multibyte character
-         support.  Overhaul the functions that already have support for
-         them to work with multibyte strings as much as possible, add
-         support to a few more functions as well, and move multibyte
-         character-specific functions to their own source file.  New
-         file chars.c; new functions is_alnum_char(),
-         is_alnum_mbchar(), is_alnum_wchar(), is_blank_mbchar(),
-         is_blank_wchar(), is_cntrl_mbchar(), is_cntrl_wchar(),
-         control_mbrep(), control_wrep(), mbwidth(), mb_cur_max(),
-         make_mbchar(), mbstrlen(), mbstrnlen(), mbstrcasecmp(),
-         mbstrncasecmp(), mbstrcasestr(), and mbrevstrcasestr();
-         changes to help_init(), do_wrap(), break_line(), is_byte()
-         (moved to chars.c), is_blank_char() (moved to chars.c),
-         is_cntrl_char() (moved to chars.c), nstricmp() (renamed
-         nstrcasecmp() and moved to chars.c), nstrnicmp() (renamed
-         nstrncasecmp() and moved to chars.c), nstristr() (renamed
-         nstrcasestr() and moved to chars.c), revstrstr() (moved to
-         chars.c), revstristr() (renamed revstrcasestr() and moved to
-         chars.c), nstrnlen() (moved to chars.c), parse_char() (renamed
-         parse_mbchar() and moved to chars.c), move_left() (renamed
-         move_mbleft() and moved to chars.c), move_right() (renamed
-         move_mbright() and moved to chars.c), do_home(),
-         do_verbatim_input(), do_delete(), do_tab(), do_enter(),
-         indent_length(), do_next_word(), do_prev_word(), do_wrap(),
-         do_input(), do_output(), is_whole_word(), strstrwrapper(),
-         get_buffer(), unget_input(), unget_kbinput(), get_input(),
-         parse_kbinput(), unparse_kbinput(), parse_verbatim_kbinput(),
-         do_statusbar_input(), do_statusbar_home(),
-         do_statusbar_verbatim_kbinput(), do_statusbar_output(),
-         do_help(), help_line_len(), and display_string(); removal of
-         buffer_to_keys() and keys_to_buffer(). (DLR)
-       - Add -O/--morespace command line option, plus a corresponding
-         Meta-O toggle and a "morespace" rcfile option.  When these are
-         used, the normally-unused blank line below the titlebar will
-         be treated as part of the edit window.  New functions
-         no_more_space() and blank_topbar(); changes to global_init(),
-         window_init(), handle_sigwinch(), do_toggle(), do_mouse(),
-         get_mouseinput(), etc. (DLR; suggested by Mike Frysinger,
-         Rocco, and Robert Schultz)
-       - Add support for moving to the next or previous word at the
-         statusbar prompt.  New functions do_statusbar_next_word() and
-         do_statusbar_prev_word(); changes to do_statusbar_input().
-         (DLR)
-       - Make resizing more flexible.  We now can work with as few as
-         one row, and with no limit on the number of columns (except of
-         course the curses-imposed limit that it be greater than zero).
-         New function resize_variables(); changes to die_too_small()
-         (renamed check_die_too_small()), global_init(), window_init(),
-         and handle_sigwinch(). (David Benbennick)
-       - Use void instead of RETSIGTYPE, as signal handlers are
-         supposed to return void anyway.  Also, the value of RETSIGTYPE
-         is sometimes misdetected as int, leading to compilation
-         warnings or errors.  Changes to cancel_fork(),
-         handle_hupterm(), do_suspend(), and do_cont(). (David
-         Benbennick)
-       - Change flags to an unsigned long, and totsize to a size_t.
-         (DLR)
-       - Store the number of multibyte characters instead of the number
-         of single-byte characters in totsize, and use get_totals() to
-         get the value of totsize in a few more places.  Changes to
-         read_line(), read_file(), do_delete(), do_input(),
-         get_totals(), and do_cursorpos(). (DLR)
-       - Overhaul the tab completion code, the file browser code, and
-         related functions to increase efficiency and support multibyte
-         characters.  New function is_dir(); changes to
-         get_full_path(), check_writable_directory(), safe_tempnam(),
-         diralphasort(), username_tab_completion(),
-         cwd_tab_completion(), input_tab(), tail(), striponedir(),
-         browser_init(), do_browser(), and do_browse_from(); removal of
-         append_slash_if_dir(), readable_dir(), and
-         check_wildcard_match(). (David Benbennick)  DLR: Move the
-         routine to get the current user's home directory into the new
-         function get_homedir(), and use it where necessary.  Also add
-         a few miscellaneous tweaks.
-       - Overhaul the rcfile parsing code to make it simpler and more
-         accurate, remove now-redundant checks from the color code,
-         change the COLOR_SYNTAX toggle to the NO_COLOR_SYMTAX toggle,
-         and improve various debugging messsages.  Changes to
-         set_colorpairs(), do_colorinit(), parse_next_word(),
-         parse_argument(), colortoint(), parse_next_regex(),
-         parse_syntax(), parse_colors(), parse_rcfile(), do_rcfile(),
-         etc. (David Benbennick)  DLR: Rename colortoint() to
-         color_to_int(), and add a few miscellaneous tweaks.
-       - Overhaul the paragraph-searching code to make it use the
-         paragraph-searching utility functions when possible instead of
-         duplicating code.  Also overhaul the justify code to make it
-         leave the right number of spaces at the ends of the lines of a
-         paragraph, to make it support multibyte characters, and to
-         make it simpler.  Also, don't remove a space after a duplicate
-         character in punct anymore, as it doesn't really make us more
-         compatible with Pico.  New functions mbstrchr(),
-         do_para_begin_void(), and do_para_end_void(); changes to
-         justify_format(), do_para_begin(), inpar(), do_para_end(),
-         break_line(), do_para_search() (renamed find_paragraph()), and
-         do_justify(); removal of breakable(). (DLR)
-       - Still more steps toward full wide/multibyte character support.
-         Make sure all rcfile arguments are valid multibyte strings,
-         make whitespace display mode work with multibyte characters,
-         and add a few related documentation updates.  New function
-         make_mbstring(); changes to make_mbchar(), make_mbstring(),
-         main(), parse_rcfile(), display_string(), and do_help(). (DLR)
-- cut.c:
-  do_cut_text()
-       - If keep_cutbuffer is FALSE, only blow away the text in the
-         cutbuffer if the cutbuffer isn't empty. (DLR)
-  do_uncut_text()
-       - No longer duplicate Pico's adding an extra magicline to the
-         file if uncutting leaves the cursor on the current one.  This
-         behavior appears to be a bug, as inserting a file in the same
-         manner doesn't add an extra magicline. (DLR)
-- files.c:
-  get_full_path()
-       - Remove unneeded NANO_SMALL #ifdef, so that it's included
-         whenever its prototype is, and so it can compile when
-         DISABLE_OPERATINGDIR isn't defined and NANO_SMALL is. (DLR)
-  do_browser()
-       - Refresh the screen when Ctrl-L is pressed in the file browser,
-         as Pico does. (DLR)
-- global.c:
-  shortcut_init()
-       - Fix misplaced #endif keeping the "Full Justify" shortcut in
-         the search shortcut list from being included when NANO_SMALL
-         is defined but DISABLE_JUSTIFY isn't. (DLR)
-       - Use NULL instead of 0 when a shortcut has no associated
-         function. (DLR)
-  thanks_for_all_the_fish()
-       - Free the justify buffer if it isn't empty. (DLR)
-- nano.c:
-  help_init()
-       - Clarify the text describing double-escape character input.
-         Since ASCII is technically only seven bits wide, characters
-         128-255 aren't ASCII. (DLR, suggested by Michael Piefel)
-  do_toggle()
-       - When we get the whitespace display toggle, update the titlebar
-         as well as the edit window, in case the filename displayed on
-         the titlebar contains spaces or tabs. (DLR)
-  handle_sigwinch()
-       - If the justify buffer isn't empty, blow it away and don't
-         display "UnJustify" in the shortcut list anymore. (DLR)
-  usage()
-       - Typo fix. (DLR)
-  do_wrap()
-       - Make wrap_loc and word_back ssize_t's, to match fill. (DLR)
-  break_line()
-       - Fix compilation problem caused by its returning int when it
-         should return ssize_t according to its prototype. (Jeremy
-         Huddleston)
-  indent_length()
-       - Make the #ifdef around it match that of its prototype to avoid
-         compilation problems when compiling with --enable-tiny and
-         without DISABLE_JUSTIFY's being defined. (DLR)
-  do_justify()
-       - For consistency, preserve placewewant if we didn't unjustify
-         instead of setting it to 0. (DLR)
-       - When justifying the entire file, properly break out of the
-         loop if we've found at least one paragraph, there are no more
-         paragraphs after the current one, and the paragraph search
-         left us on the magicline.  This avoids a segfault. (DLR)
-  do_input()
-       - Add finished parameter, used to indicate when we run or try to
-         run a function associated with a shortcut. (DLR)
-  main()
-       - Try to automatically detect whether UTF-8 support is needed by
-         setting the NO_UTF8 flag if setlocale() returns a string that
-         doesn't contain "UTF8" or "UTF-8", case insensitively.  When
-         using slang 2.x, enable UTF-8 support with SLutf8_enable().
-         (DLR, string checks beyond case-sensitive "UTF-8" adapted from
-         Debian's UTF-8 patch for slang)
-- nano.h:
-       - Remove now-unneeded #defines for functions that now have
-         multibyte equivalents. (DLR)
-       - Remove now-unneeded MIN_EDITOR_COLS. (David Benbennick)
-- utils.c:
-  regexec_safe()
-       - Remove redundant regexec #define, and move the regexec #undef
-         to nano.h. (DLR)
-  is_blank_char()
-       - Rewrite to use ctype functions instead of checking directly
-         for spaces and tabs. (DLR)
-  revstrstr(), revstristr()
-       - Add asserts. (DLR)
-- winio.c:
-  get_buffer()
-       - If we get ERR when using blocking input, it means that the
-         input source that we were using is gone.  In this case, call
-         handle_hupterm(), so that nano dies gracefully instead of
-         going into an infinite loop. (DLR, found by Jim Uhl)
-  titlebar()
-       - Rename some variables for consistency, make space an int
-         instead of a size_t, properly handle the case where the prefix
-         length plus the path length is greater than the amount of
-         space available, and fix a typo in an assert. (DLR)
-  unget_kbinput()
-       - Remove the wide character handling, as it didn't work properly
-         with respect to function keys. (DLR)
-  get_kbinput(), get_translated_kbinput(), get_ascii_kbinput(),
-  get_untranslated_kbinput()
-       - Make the ascii_digits variables ints instead of size_t's,
-         since they will only hold very small values. (DLR)
-  get_kbinput()
-       - Remove the wide character handling, as it didn't work properly
-         with respect to adding multiple wide characters at once, and
-         ungetting them just caused other problems elsewhere. (DLR)
-  get_translated_kbinput()
-       - Remove the wide character handling, as it didn't work properly
-         with respect to adding multiple wide characters at once, and
-         ungetting them just caused other problems elsewhere. (DLR)
-       - Use if statements instead of switch/case statements to handle
-         ASCII character sequence mode, as they take up less room.
-  get_ascii_kbinput()
-       - Use if statements instead of switch/case statements to handle
-         ASCII character sequence mode, as they take up less room.
-  get_verbatim_kbinput()
-       - Don't pass v_kbinput in as a parameter, since we're
-         dynamically allocating it and then returning it. (DLR)
-       - Remove v_first parameter, and go back to the old behavior of
-         putting back the first character of the escape sequence, as it
-         worked just as well and was less complicated. (DLR)
-  get_mouseinput()
-       - Return TRUE instead of FALSE only when we have a control key,
-         a prinary meta key sequence, or both. (DLR)
-  get_shortcut()
-       - Add a debug message. (DLR)
-       - Take kbinput as a reference instead of a value, so that it's
-         translated when the key is translated to its equivalent
-         control key or meta key shortcut. (DLR)
-       - Return s instead of NULL only when we have a control key, a
-         prinary meta key sequence, or both. (DLR)
-  get_toggle()
-       - Add a debug message. (DLR)
-  bottombars()
-       - Initialize foo, in case a keystroke meets none of the handled
-         cases. (DLR)
-  total_refresh()
-       - Refresh bottomwin using the value of currshortcut, and change
-         the code around do_refresh() calls to accommodate this. (DLR)
-       - Split out the code that updates the screen before refreshing
-         it into the new function total_redraw().
-  do_help()
-       - Refresh the screen when Ctrl-L is pressed in the help browser,
-         as Pico does. (DLR)
-- configure.ac:
-       - Remove specific references to control key shortcuts. (DLR)
-       - Check for the wide versions of ncurses or slang, without which
-         multibyte strings don't seem to be displayed properly, and
-         associated multibyte/wide character functions. (DLR)
-       - Check for wchar.h, for those systems that need it for the
-         wcwidth() prototype. (DLR)
-       - Remove checks for all include files that we include
-         unconditionally. (DLR)
-       - Remove references to termio.h here and elsewhere, since it's
-         obsolete and it defines a struct termio that we don't use
-         anywhere. (DLR)
-       - Typo fixes. (DLR)
-       - Add checks for isascii(), iswalnum(), iswblank() or
-         iswspace(), mblen(), and wctype.h. (DLR)
-- README:
-       - Updated for the 1.3 branch. (DLR)
-- README.CVS:
-       - Updated to mention the need for a wide character-supporting
-         version of curses or slang if UTF-8 support is desired. (DLR)
-- doc/faq.html:
-       - Remove now-inaccurate note about verbatim input's not working
-         at prompts, and update its description to mention that it
-         handles hexadecimal values now. (DLR)
-       - Add question about opening files with names beginning with
-         '+'s, and add a few more miscellaneous cosmetic fixes.
-- nanorc.sample:
-       - Add return to the "c-file" regexes. (DLR)
-       - Clarify the text describing good values for whitespace
-         display.  Since ASCII is technically only seven bits wide,
-         characters 128-255 aren't ASCII. (DLR, suggested by Michael
-         Piefel)
-       - Add the "morespace" option. (DLR)
-       - Add support for characters to the "c-file" regexes. (DLR)
-       - Add the hexadecimal equivalents of the decimal values
-         suggested for whitespace display, now that it can handle
-         multibyte characters. (DLR)
-       - Add "manpage" regex. (Mike Frysinger, minor tweaks by DLR)
-- nano.1. nanorc.5, nano.texi:
-       - Add the "morespace" option, and sync with the descriptions in
-         nanorc.sample in a few places. (DLR)
-       - Miscellaneous wording tweaks. (DLR)
-- src/Makefile.am:
-       - Add chars.c to nano_SOURCES. (DLR)
-       - If we're installing and the "rnano" symlink already exists,
-         remove it so that we can create it again without an error.
-         (DLR)
-- AUTHORS:
-       - Updated to mention UTF-8 support.
-
-GNU nano 1.3.5 - 2004.11.22
-- General:
-       - Convert more ints that hold only TRUE and FALSE values to
-         bools. (DLR)
-       - Consolidate the code for finding and running a shortcut in a
-         shortcut list, the code for finding and toggling a toggle in a
-         toggle list, and the code for doing both of those and
-         interpreting mouse clicks in the edit window.  Also move the
-         code for do_mouse() to get_edit_mouse() and tweak it to
-         properly handle cases where a shortcut isn't clicked.  New
-         functions get_shortcut(), get_toggle(), get_edit_input(), and
-         get_edit_mouse(); changes to do_browser(), do_justify(),
-         do_help(), and main(). (DLR)
-       - Simplify a few more translated messages. (DLR)
-       - Translation updates (see po/ChangeLog for details).
-       - Remove reference to @includedir@ in src/Makefile.am, as it's
-         unneeded and can break cross-compilation. (DLR, found by Mike
-         Frysinger)
-       - Overhaul the file opening, reading, and loading operations to
-         increase efficiency, avoid problems on invalid filenames
-         specified on the command line, and eliminate corner cases that
-         erroneously leave edittop or current NULL when they shouldn't
-         be.  Also split out the code to execute a command into a
-         separate function, eliminate a workaround for one of the
-         aforementioned corner cases, handle files with a mix of DOS
-         and Mac format lines, and remove the code to turn on the
-         NO_CONVERT flag when opening a binary file, as it's not always
-         reliable and will cause problems with UTF-8 text files.  New
-         functions open_file(), execute_command(), and mallocstrassn();
-         changes to read_line(), load_file(), read_file(), open_file(),
-         get_next_filename(), do_insertfile(), do_insertfile_void(),
-         do_alt_speller(), and edit_refresh(). (David Benbennick)  DLR:
-         Add a few minor fixes to make sure that current is set
-         properly in all cases, indicate on the statusbar when the file
-         has a mix of DOS and Mac format lines, move the test for DOS
-         line endings from read_line() to read_file() to avoid
-         inaccurate statusbar messages and to reduce fileformat to a
-         local variable in read_file(), eliminate another workaround in
-         edit_update(), rename open_the_file() to open_file() since the
-         latter has been removed, and rename load_a_file() to
-         load_buffer().
-       - Add alternative shortcuts to the main and search shortcut
-         lists for moving to the beginning and end of a paragraph and
-         justifying the entire file: Meta-( (Meta-9), Meta-) (Meta-0),
-         and Meta-J, respectively.  Do this because Pico's practice of
-         putting these shortcuts only in the search shortcut list is
-         rather odd. (DLR)
-       - Turn off extended input processing (the IEXTEN termios flag)
-         as nano 1.2.x does.  New function disable_extended_input();
-         changes to terminal_init(). (DLR)
-       - Remove redundant include of limits.h from nano.c.  nano.c
-         includes nano.h and nano.h includes limits.h. (DLR)
-       - Add a func_key flag to the low-level input functions and the
-         currently existing high-level input functions, to indicate
-         extended keypad values.  This is needed for UTF-8 support.
-         Changes to unget_kbinput(), get_kbinput(),
-         get_translated_kbinput(), get_shortcut(), get_edit_input(),
-         etc. (DLR)
-       - Add a multibuffer mode toggle to the "Execute Command" prompt,
-         for consistency with the "Read File" prompt.  Changes to
-         do_insertfile() and shortcut_init(). (DLR)
-       - Add an ^X toggle to the "Execute Command" prompt to go back to
-         the "Insert File" prompt, and add a ^T toggle to the "Go To
-         Line" prompt to go back to the "Where Is" prompt.  Changes to
-         do_insertfile(), shortcut_init(), do_gotoline(), etc.
-       - Make sure a few uninitialized static variables are initialized
-         to sane values. (DLR)
-       - After reading in a file and detecting the format it's in, set
-         the file format flags (DOS_FILE and MAC_FILE) to match, and
-         preserve them across multiple file buffers.  Changes to
-         read_file(), add_open_file(), and load_open_file(). (DLR,
-         suggested by Bill Soudan)
-       - Remove the -D/--dos and -M/--mac command line options, as they
-         aren't much use with the new file format autodetection.  Also
-         remove the global versions of the toggles, so that they can
-         only be used at the "Write File" prompt as similar options
-         can.  Finally, change the Mac format toggle to Meta-M, since
-         that no longer conflicts with the global -m/--mouse toggle.
-         (DLR)
-       - Add support for reading in UTF-8 sequences to the low-level
-         input routines.  Changes to get_kbinput() and
-         get_translated_kbinput(). (DLR)
-       - Reduce search_last_line to a static variable in search.c, and
-         allow it to be set to FALSE via a function.  New function
-         findnextstr_wrap_reset(); changes to do_int_spell_fix(),
-         findnextstr(), do_search(), do_research(), do_replace_loop(),
-         do_replace(), and do_find_bracket(). (DLR, problem with making
-         search_last_line local to findnextstr() found by Rocco)
-       - When saving or changing file positions, be sure not to ignore
-         placewewant.  Changes to do_int_spell_fix(), findnextstr(),
-         do_replace_loop(), and do_replace(). (DLR)
-       - Convert current_x and mark_beginx to size_t's, and convert
-         some functions that use them as a parameter to use size_t as
-         well.  Also change some related assertions to handle them.
-         (David Benbennick and DLR)
-       - Add code to partition a filestruct between a set of arbitrary
-         coordinates.  Given the coordinates of the beginning and end
-         of the mark, this allows proper and easier handling of saving
-         marked selections, replacing text only in marked selections
-         (suggested by Joseph Birthisel), and spell-checking marked
-         selections using either the internal or alternate spell
-         checker.  Do all these using a global partition structure.
-         New functions partition_filestruct(),
-         unpartition_filestruct(), remove_magicline(), and
-         get_totals(); changes to write_marked(), do_int_spell_fix(),
-         do_alt_speller(), handle_sigwinch(), and do_replace_loop().
-         (DLR)
-       - Remove most redundant includes of sys/stat.h.  It's included
-         in nano.h, so it doesn't need to be included in files that
-         include nano.h. (DLR)
-       - Remove the DOS_FILE and MAC_FILE flags, as they're only used
-         in files.c, and replace them with a static file_format enum.
-         Change the openfilestruct structure accordingly in order to
-         handle this. (DLR)
-       - Convert some ints with predefined boundaries to enums. (DLR)
-       - Include config.h only if HAVE_CONFIG_H. (Jordi)
-- cut.c:
-  cut_marked_segment()
-       - Respect concatenate_cut, as we need to use it if we do a
-         marked cut and immediately follow it with a cut-to-end (which
-         uses this function). (DLR)
-  do_cut_text()
-       - Set concatenate_cut to TRUE unconditionally when doing a
-         marked cut.  This fixes an incompatibility with Pico where an
-         extra line is uncut if we do a marked cut that includes the
-         magicline and immediately follow it with an unmarked cut.
-         (DLR)
-  do_uncut_text()
-       - Maintain current_y's value when uncutting blocks so that
-         smooth scrolling works correctly. (DLR)
-- files.c:
-  read_file()
-       - Rename variable fileformat to format, to avoid confusion with
-         the file_format enum type. (DLR)
-  load_buffer()
-       - Don't change the file format when we insert another file into
-         the current one. (DLR)
-  do_insertfile()
-       - Simplify by reusing variables whereever possible, and add a
-         parameter execute to indicate whether or not to be in "Execute
-         Command" mode. (DLR)
-       - Rework so that goto is no longer needed, using do_writeout()
-         as a model. (DLR)
-       - If file browsing succeeds, call statusq_abort() so that the
-         cursor position at the statusbar is reset. (DLR)
-       - Add missing #ifdefs around the wrap_reset() call so that nano
-         compiles with wrapping disabled again. (DLR)
-       - If we're not inserting a file into a new buffer, partition the
-         current buffer so that it's effectively a new buffer just
-         before inserting the file, and only restore placewewant
-         afterwards.  This is the same behavior we would get if we
-         opened the file, added all of it to the cutbuffer, closed the
-         file, and uncut at the current cursor position. (DLR)
-       - Maintain current_y's value when inserting so that smooth
-         scrolling works correctly. (DLR)
-  do_writeout()
-       - Restructure if blocks for greater efficiency, using
-         do_insertfile() as a model. (DLR)
-       - Simplify where possible, and use an int retval to hold the
-         return value instead of i. (DLR)
-       - If file browsing succeeds, call statusq_abort() so that the
-         cursor position at the statusbar is reset. (DLR)
-       - Remove unneeded calls to display_main_list(). (DLR)
-  do_writeout_void()
-       - Call display_main_list(), for consistency with
-         do_insertfile_void(). (DLR)
-  write_file()
-       - If we've tried to write to an unwritable file and we're not
-         prepending, tempname is NULL when it's passed to unlink().
-         This can cause problems if unlink() can't handle NULL, so
-         don't call it in that case. (David Benbennick)
-  write_marked()
-       - Remove check for MARK_ISSET's not being set. (DLR)
-  open_prevfile(), open_nextfile()
-       - Translate the "New Buffer" string when displaying "Switched
-         to" messages on the statusbar. (DLR)
-  input_tab()
-       - Fix snprintf() call so that we don't segfault when trying to
-         complete a filename containing %'s. (Ulf Härnhammar)
-- global.c:
-  shortcut_init()
-       - Remove redundant NANO_SMALL #ifdef. (DLR)
-       - Change an erroneous _() around the "New Buffer" string to
-         N_(). (DLR)
-       - Add new key aliases: F15 for "Mark Text" (DLR) and F16 for
-         "Where Is Next" (Chris).
-       - Leave "Mark Text" and "Where Is Next" out entirely when
-         NANO_SMALL is defined.  Since they aren't in the visible main
-         list, there's no point in having them in but disabled. (DLR)
-       - In the search prompt shortcut list, move "Full Justify" to
-         after "History", so that the latter is visible onscreen
-         again. (DLR)
-- nano.c:
-  die_save_file()
-       - Clarify the error message when there are too many backup files
-         and the current one can't be written. (DLR)
-  help_init()
-       - Rework to be a bit more flexible.  Only add tabs for shortcut
-         key entries if those entries exist, and if there's only one
-         entry left but there's room for more than one, add enough tabs
-         to put that entry at the end.  Also, make sure a function key
-         is displayed in the middle if it's the first entry.  These
-         changes allow e.g. the miscellaneous meta key sequence to be
-         displayed in a shortcut that has a control key, a primary meta
-         key sequence, and a miscellaneous meta key sequence, but no
-         function key. (DLR)
-       - Update the help text to mention replacing and spell checking
-         only selected text, and also add a few cosmetic fixes to it.
-         (DLR)
-       - Update the help text to mention how to get a blank buffer at
-         the "Execute Command" prompt. (DLR)
-  do_prev_word()
-       - Tweak to avoid an infinite loop, since current_x is now a
-         size_t and hence is unsigned. (DLR)
-  do_int_spell_fix()
-       - Move the REVERSE_SEARCH flag toggling into the NANO_SMALL
-         #ifdef, since the tiny version of nano doesn't support reverse
-         searching.  Move the CASE_SENSITIVE flag toggling out in order
-         to allow the internal spell checker to work properly when
-         NANO_SMALL is defined and DISABLE_SPELLER isn't.  Also, turn
-         the USE_REGEXP flag off during spell checking in order to
-         avoid a potential segfault. (DLR)
-       - Fix a problem where if the cursor is in the middle of a file,
-         the spell checker will sometimes only correct the misspelled
-         word instances that appear before the cursor position and then
-         stop. (Rocco)
-       - Use do_replace_loop()'s canceled parameter in order to ensure
-         that the spell checking stops if we canceled at the replace
-         prompt. (DLR)
-  do_alt_speller()
-       - Call terminal_init() unconditionally after running the
-         alternate spell checker, so that the terminal state is
-         properly restored in all cases. (DLR)
-  justify_format()
-       - For more compatibility with Pico, remove extra space after a
-         character in punct if that character is the same as the one
-         before it.  For example, with the default values of punct and
-         brackets, only one space will be left after "...". (DLR)
-  do_para_begin(), do_para_end()
-       - Maintain current_y's value when moving up or down lines so
-         that smooth scrolling works correctly. (DLR)
-  breakable(), break_line()
-       - Make goal a ssize_t instead of an int, since fill is now a
-         ssize_t, and the position at which a line is broken can be
-         greater than COLS. (DLR)
-  main()
-       - Tweak the command line parsing routine so that multiple +LINE
-         flags are properly interpreted in multibuffer mode. (DLR)
-- nano.h:
-       - Add WIDTH_OF_TAB #define, containing the default width of a
-         tab. (DLR)
-       - Move the PATH_MAX #define here from files.c.
-       - Remove unused COPYFILEBLOCKSIZE #define. (DLR)
-- proto.h:
-       - Add missing NANO_SMALL #ifdef around the cut_marked_segment()
-         prototype. (DLR)
-- rcfile.c:
-  parse_rcfile()
-       - Add missing brackets around an if statement block so that
-         parsing the numeric argument after "tabsize" works properly
-         again. (DLR, found by Mike Frysinger)
-       - Since flag values are longs, use "%ld" instead of "%d" in the
-         debugging messages indicating when a flag is set or unset.
-         (DLR)
-- search.c:
-  regexp_init()
-       - If NANO_SMALL is defined, don't bother checking the
-         CASE_SENSITIVE flag or using its value when compiling a list
-         of matching regular expressions. (DLR)
-  search_init()
-       - Add parameter use_answer.  When it's TRUE, only set
-         backupstring to answer.  This is needed to preserve the text
-         of the statusbar when switching to the search prompt from
-         the "Go To Line" prompt.  Also, set backupstring before doing
-         anything else, add one minor efficiency tweak, and preserve
-         the text of the statusbar no matter what when switching from
-         the search prompt to the "Go To Line" prompt, since the
-         toggling works both ways now and non-numeric text shouldn't be
-         lost when going only one of those ways. (DLR)
-       - When we're replacing and the mark is on, display a prompt
-         indicating that we're replacing text only in the selection
-         instead of the usual prompt. (DLR)
-  findnextstr()
-       - Take the no_sameline parameter after can_display_wrap and
-         wholewords, not after all other parameters. (DLR)
-       - Maintain current_y's value when moving up or down lines so
-         that smooth scrolling works correctly. (DLR)
-       - Fix handling of the wholewords flag so that it works with
-         regular expressions and in conjunction with the no_sameline
-         flag, and add new parameter needle_len (used to return the
-         length of the match). (DLR)
-  do_replace_loop()
-       - Miscellaneous cleanups: treat real_current as current and
-         real_current_x as current_x, only turn the mark off and call
-         edit_refresh() if the mark was originally on, and make
-         length_change a ssize_t. (DLR)
-       - Return ssize_t instead of int. (DLR)
-       - Add new parameter canceled, set to TRUE if we canceled at the
-         prompt and FALSE otherwise. (DLR)
-- utils.c:
-  regexp_bol_or_eol()
-       - Don't assume any longer that string will be found if
-         REG_NOTBOL and REG_NOTEOL are not set. (DLR)
-  mallocstrncpy()
-       - New function, used as a malloc()ing equivalent of strncpy().
-         (DLR)
-  mallocstrcpy()
-       - Refactor to be a wrapper for mallocstrncpy(). (DLR)
-  mark_order()
-       - Add new parameter right_side_up.  Set it to TRUE If the mark
-         begins with (mark_beginbuf, mark_beginx) and ends with
-         (current, current_x), or FALSE otherwise. (DLR)
-- winio.c:
-  unget_kbinput()
-       - New function used as a wrapper for ungetch(). (DLR)
-  get_kbinput()
-       - When reading an escape sequence, set get_verbatim_kbinput()'s
-         new first parameter to the first character of the sequence
-         instead of putting that character back and reading the entire
-         sequence afterwards. (DLR)
-  get_escape_seq_kbinput()
-       - Make the escape_seq parameter a const int*, since it's never
-         modified. (DLR)
-       - Support the escape sequences for F15 and F16. (DLR)
-  get_verbatim_kbinput()
-       - Add new parameter first.  If first isn't ERR, make it the
-         first character in the returned sequence instead of reading
-         the first character in via blocking input. (DLR)
-  get_mouseinput()
-       - Consolidate two if statements to increase efficiency. (DLR)
-       - Check kbinput against metaval instead of (erroneously) ctrlval
-         when putting back a meta sequence. (DLR)
-       - If there are more than MAIN_VISIBLE shortcuts available, only
-         register clicks on the first MAIN_VISIBLE shortcuts, since
-         bottombars() only shows that many shortcuts. (DLR)
-  check_statblank()
-       - Rename to check_statusblank(), and rename its associated
-         global int statusblank too. (DLR)
-  nanogetstr()
-       - Refresh the screen when Ctrl-L is pressed at the statusbar
-         prompt, as Pico does. (DLR)
-       - Always return the key pressed by the user. (DLR)
-  statusq()
-       - Rework slightly to reset the cursor position when the user
-         hits Enter as well as Cancel.  This means that resetstatuspos
-         no longer needs to be global. (DLR)
-  statusq_abort()
-       - New function to set resetstatuspos to FALSE when we don't
-         properly exit the statusbar prompt, e.g. when we get a file
-         from the file browser). (DLR)
-  bottombars()
-       - For efficiency, no longer dynamically allocate space for each
-         visible shortcut, as they're all of a constant short length.
-         (David Benbennick)
-  reset_cursor()
-       - If this is called before any files have been opened, as it can
-         be by statusbar(), put the cursor at the top left corner of
-         the edit window before getting out. (DLR)
-  edit_refresh()
-       - Call edit_update() with NONE instead of CENTER when smooth
-         scrolling is on, for consistency with the movement routines.
-         (DLR)
-  edit_update()
-       - Simplify so as not to require the fileptr parameter anymore,
-         since it's set to current in all calls. (DLR)
-       - Add comments better explaining what the update actually does,
-         and avoid an infinite loop when location is NONE and current_y
-         is greater than (editwinrows - 1). (DLR)
-  do_yesno()
-       - Don't bother assigning the value of get_mouseinput() to
-         anything.  Since allow_shortcuts is FALSE, its return value
-         will always be FALSE. (DLR)
-- configure.ac:
-       - When calling AC_TRY_RUN() to test for a broken regexec()
-         function, set the fourth parameter to default to "no" (since
-         it apparently only occurs on glibc 2.2.3-based systems) so
-         that cross-compiling will work. (DLR, found by Mike Frysinger)
-       - Simplify the curses library tests by only checking for
-         initscr(), which ncurses, curses, and pdcurses should all
-         have, and not tgetent(), which is a termcap-specific function.
-         (DLR)
-       - Check only for glib 2.x, as it's much more common than
-         glib 1.2.x now, and it has a better v?snprintf()
-         implementation. (DLR, suggested by Jordi)
-- nanorc.sample:
-       - Remove specific references to control key shortcuts other than
-         XON and XOFF. (DLR)
-       - Add continue and goto to the "c-file" regexes. (DLR)
-       - Change the included speller value to "aspell -x -c".  The -x
-         option makes aspell not create backup files, and this is
-         consistent with the internal spell checker's behavior. (DLR)
-- doc/man/fr/nano.1, doc/man/fr/nanorc.1:
-       - Updated manpage translations by Jean-Philippe GuĂ©rard.
-- README.CVS:
-       - Mention the requirement for glib 2.x on systems lacking
-         v?snprintf(), and add minor formatting changes.
-       - Mention the requirement for groff in order to create html
-         versions of the manpages. (DLR)
-       - Update the given cvs commands so that they work again, and
-         mention the need for ssh to do cvs checkouts. (DLR)
-       - List sh as an example of a Bourne shell. (DLR)
-- faq.html:
-       - Fixed inaccuracy: Pico compatibility mode was made the default
-         in nano 1.1.99pre1, not 1.2.2. (DLR)
-       - Added question about how to type F13-F16 on terminals lacking
-         keys past F12 (suggested by Chris), question about how to
-         select text for the clipboard in X terminals with nano's mouse
-         support turned on (answer found by Joseph Birthisel), and
-         miscellaneous fixes and link updates. (DLR)
-- nano.1:
-       - Eliminate references to the now removed -D/--dos and -M/--mac
-         command line options. (DLR)
-- nano.texi:
-       - Eliminate references to the now removed -D/--dos and -M/--mac
-         command line options, and their corresponding toggles. (DLR)
-- m4/Makefile.am:
-       - Add glib-2.0.m4 to EXTRA_DIST, so that nano builds from CVS
-         with automake 1.7.x again.  For some reason, automake 1.9.x
-         didn't have a problem with its (erroneously) being left out.
-         (DLR, problem found by Chris)
-- m4/glib-2.0.m4:
-       - New file imported from glib 2.4.7.  This is needed to detect
-         glib 2.x on systems that may not have it installed. (DLR,
-         suggested by Jordi)
-- src/Makefile.am:
-       - Don't use DEFS to define things.  Use INCLUDES instead.
-         (Jordi)
-
-GNU nano 1.3.4 - 2004.08.17
-- General:
-       - More minor comment cleanups. (DLR)
-       - Convert more ints and functions using 0 and 1 to bools using
-         TRUE and FALSE. (David Benbennick and DLR)
-       - Change more instances of ints that have large enough upper
-         bounds and which can never be negative to size_t's, and
-         convert nano to handle them properly. (DLR)
-       - Convert the shortcut list functions and most related functions
-         to return void instead of int, as the return values of all
-         those functions are essentially unused.  Changes to
-         sc_init_one(), shortcut_init(), etc. (David Benbennick and
-         DLR)
-       - Make flags and all variables meant to store the value of flags
-         longs for consistency. (David Benbennick)
-       - Rename the TEMP_OPT flags to TEMP_FILE, as it's more
-         descriptive. (DLR)
-       - Remove unused global variable search_offscreen. (David
-         Benbennick)
-       - Add new N_() macro to mark strings that aren't translated
-         immediately, and convert nano to use it in cases where the
-         translated string is stored in a const char*.  Changes
-         to sc_init_one(), print1opt(), help_init(), rcfile_error(),
-         do_credits(), etc. (David Benbennick)  DLR: Do this for
-         toggle_init_one() too.
-       - Minor tweaks and clarifications to some option descriptions.
-         (DLR)
-       - Overhaul the shortcut list and toggle list initialization
-         code for efficiency.  Changes to shortcut_init() and
-         toggle_init(). (David Benbennick)  DLR: Move "Cancel" to just
-         after "Get Help" in the file browser list, for consistency
-         with all the other lists, have the replace list accept all the
-         same function keys as the search list, and clarify a few
-         shortcut descriptions.
-       - Convert nano to use the new parse_num() function to read in
-         numeric values at the command line and in the rcfile, and
-         duplicate the messages used in the rcfile in the command line
-         for consistency. (David Benbennick)  DLR: Tweak parse_num() to
-         parse ssize_t values instead of ints and to return a bool
-         indicating whether parsing succeeded.  Convert tabsize,
-         wrap_at, and fill to ssize_t in order to work with
-         parse_num() properly and also to increase their capacity
-         while keeping the ability to hold negative numbers in case of
-         errors.  Also exit instead of calling usage() in the event of
-         an invalid fill value, for consistency with how an invalid
-         tabsize value is handled.  Finally, handle invalid tabsize
-         entries in the rcfile the same way as on the command line,
-         and reset tabsize and wrap_at to their default values if
-         invalid rcfile entries are specified for them.
-       - Remove several unnecessary reset_cursor() calls. (David
-         Benbennick)
-       - Include <sys/types.h> in proto.h. (David Benbennick)  DLR:
-         Remove some redundant inclusions of <sys/types.h> elsewhere.
-       - Move the main terminal initialization functions, aside from
-         initscr(), into a new terminal_init() function, and convert
-         nano to use it. (DLR)
-       - Convert placewewant to a size_t, and convert some functions
-         that use it as a parameter to use size_t as well. (David
-         Benbennick and DLR)
-       - Overhaul the paragraph searching code and some of the justify
-         code to clarify it and fix a bug where searches from the
-         previous paragraph would move up too far.  Also make
-         quotestr-related variables global so that they only have to be
-         compiled once, and remove the no-longer-needed IFREG() macro.
-         New functions begpar() and inpar(); changes to quote_length(),
-         quotes_match(), do_para_search(), do_para_begin(),
-         do_para_end(), and do_justify(). (David Benbennick)
-       - Readded the errors flag and moved the ending prompt from
-         rcfile_error() to parse_rcfile() so that we only get prompted
-         once for all errors instead of separately for each error.
-         (DLR)  David Benbennick: Make sure that no rcfile error
-         messages end in newlines, and show the ending prompt if we
-         can't read the .nano_history file while starting nano.
-       - Don't treat the return value of strn?(case)?cmp() as boolean.
-         (DLR and David Benbennick)
-       - Automatically install a symlink "rnano" pointing to nano.
-         Changes to src/Marefile.am. (DLR)
-       - Move the static int pid to the beginning of nano.c with all
-         the other static variables. (DLR)
-       - Consolidate some if blocks to remove some redundant code.
-         (David Benbennick)
-       - Fix warnings when compiling with ENABLE_NLS undefined and with
-         the fwritable-strings option. (David Benbennick)
-       - Add various #ifdefs to fix warnings and compilation problems
-         when compiling with every option manually turned on, including
-         NANO_SMALL. (David Benbennick)
-       - Simplify some of the rcfile and statusbar error messages, and
-         make some of them more consistent. (David Benbennick and DLR)
-       - Change some functions to take const char*'s instead of char*'s
-         where possible. (David Benbennick)
-       - Tweak some #ifdefs around indent_length() and references to
-         fill_flag_used to avoid warnings when compiling with
-         --disable-wrapping, --disable-justify, or a combination of the
-         two. (DLR)
-       - Overhaul the routines used to read the rcfiles and history
-         files for efficiency, make them work properly on lines over
-         1023 characters long and on lines containing nulls, and make
-         them properly handle the case where the user's home directory
-         changes in the middle of a session.  New functions
-         histfilename() and writehist(); changes to
-         thanks_for_all_the_fish(), load_history(), save_history(), and
-         do_rcfile(). (David Benbennick)
-- files.c:
-  get_next_filename()
-       - Tweak for efficiency, and add the ".save" suffix to the file
-         here. (David Benbennick)
-  close_open_file()
-       - Tweak to no longer rely on the return values of
-         open_(prev|next)file(). (DLR)
-  write_file()
-       - For consistency with nano 1.2.x and with other editors, make
-         the mode of newly created files 666 instead of 600 before
-         it's modified by the umask. (DLR, found by Toni Suokas)
-  do_writeout()
-       - If we're in restricted mode and the current filename isn't
-         blank, we can't change it, so disable tab completion in that
-         case. (DLR)
-       - Fix spacing problem in the "Save Under Different Name"
-         prompt. (DLR)
-- global.c:
-  shortcut_init()
-       - Fix erroneous #ifdef so that nano compiles with
-         --disable-justify again. (DLR, found by Mike Frysinger)
-       - Change the Cancel shortcut in the file browser to an Exit
-         shortcut, to be more compatible with the current version of
-         Pico. (DLR)
-  thanks_for_all_the_fish()
-       - Delete topwin, edit, and bottomwin. (David Benbennick)
-- nano.c:
-  die()
-       - Don't add the ".save" suffix to a saved file here anymore,
-         since get_next_filename() does that now. (David Benbennick)
-  die_save_file()
-       - Tweak for efficiency. (David Benbennick)
-  help_init()
-       - Fix the display of the translated key descriptions "Up" and
-         "Space" under all circumstances, and make the help browser
-         work properly when there are fewer than 24 columns available.
-         (David Benbennick)
-  usage()
-       - Don't translate the option strings for -Z/--restricted.
-         (David Benbennick)
-  do_enter()
-       - Don't treat it as a special case when the user presses Enter
-         on the last line of the screen and smooth scrolling is on, for
-         consistency. (DLR)
-  do_alt_speller()
-       - When reloading the newly spell-checked temporary file, call
-         terminal_init() to make sure that all the original terminal
-         settings are restored, as a curses-based alternative spell
-         checker (e.g. aspell) can change them. (DLR)
-  quote_length()
-       - Fix problem where quoted justify wouldn't work if HAVE_REGEX_H
-         wasn't set. (David Benbennick)
-  do_justify()
-       - Add allow_respacing flag, used to indicate when we've moved to
-         the next line after justifying the current line, and only run
-         the respacing routine when it's true.  This keeps the
-         respacing routine from erroneously being run more than once on
-         the same line. (DLR)
-       - Check for first_par_line's not being NULL and only run the
-         renumbering and cutbuffer-splicing routines depending on that
-         if that's the case.  This fixes a segfault occurring when
-         trying to do full justification on a file with no paragraphs
-         (in which case there are no normal lines to renumber and no
-         backed-up lines to be stored in the cutbuffer or spliced back
-         in during unjustify). (DLR)
-  do_exit()
-       - Tweak for efficiency. (David Benbennick)
-  main()
-       - Move the reset_cursor() call to the beginning of the main
-         input loop, and remove the apparently unnecessary wrefresh()
-         call. (David Benbennick)
-       - Call setlocale() outside the ENABLE_NLS #ifdef, since UTF-8
-         support won't work properly if the locale isn't set, whether
-         NLS is enabled or not. (Junichi Uekawa)
-       - Add titlebar() calls before all open_file() calls and remove
-         the titlebar() call after them, so that the titlebar is
-         displayed properly for all file(s) loaded.  Also call
-         display_main_list() after adding the first file to open_files,
-         so that "Close" is properly displayed then instead of "Exit".
-         (DLR)
-- nano.h:
-       - Reassign the key for full justification to Ctrl-U, for
-         compatibility with the current version of Pico. (DLR)
-       - Remove justbegend enum, as it's no longer needed. (DLR)
-- proto.h:
-       - Change the variables in the prototypes for do_justify(),
-         get_verbatim_kbinput(), and get_mouseinput() to match the ones
-         used in the actual functions. (DLR)
-       - Remove unused declaration of temp_opt. (David Benbennick)
-       - Add missing copy_file() prototype. (David Benbennick)
-       - Move the load_history() and save_history() prototypes up to
-         match their corresponding location in files.c. (DLR)
-- rcfile.c:
-  rcfile_msg()
-       - Removed and replaced with calls to rcfile_error(). (David
-         Benbennick)
-       - Removed the reference to "starting nano" in the statusbar
-         message, as it may be called when we exit if the history file
-         can't be saved. (DLR)
-  parse_rcfile()
-       - Have whitespace display default to off instead of on. (Mike
-         Frysinger)
-  nregcomp()
-       - Rename the variable flags to eflags so as not to conflict with
-         the global flags. (DLR)
-- search.c:
-  do_replace_loop()
-       - Make sure old_pww is updated to the current value of
-         placewewant when a new match is found, so that edit_redraw()
-         will redraw the screen properly when only placewewant changes.
-         (DLR, found by Mike Frysinger)
-  do_replace()
-       - Instead of using edit_update() to redraw the screen with
-         edittop at the top, set edittop beforehand and call
-         edit_refresh(). (DLR)
-  do_gotoline()
-       - Use parse_num() to interpret a line entered by the user, and
-         start the search for a line from current instead of fileage.
-         (DLR)
-  do_gotopos(), find_node(), free_history()
-       - Tweak for efficiency. (David Benbennick)
-  free_history()
-       - Only include when DEBUG is defined. (David Benbennick)
-- utils.c:
-  parse_num()
-       - New function to parse numeric values, so that we don't have to
-         duplicate code that calls strtol() all over the place. (David
-         Benbennick)  DLR: Renamed from parse_int() to parse_num() and
-         converted to use ssize_t instead of int.
-  nstrnicmp()
-       - Remove code chacking for n's being less than 0 that will never
-         be run, since n is a size_t and is hence unsigned. (David
-         Benbennick)
-  ngetdelim(), ngetline()
-       - New functions equivalent to getdelim() and getline(), which
-         are both GNU extensions. (DLR, adapted from GNU mailutils
-         0.5 with minor changes to better integrate with nano and
-         increase efficiency)
-- winio.c:
-  get_kbinput()
-       - Since the only valid values for escapes are 0, 1, and 2,
-         convert it to an int. (DLR)
-  get_control_kbinput()
-       - Fix erroneous debugging statement so that nano compiles with
-         --enable-debug again. (Jon Oberheide)
-  nanogetstr()
-       - Tweak the code to update the edit window just before getting
-         statusbar input for efficiency, and update bottomwin just
-         before then too. (David Benbennick)
-       - Don't delete the statusbar line on UnCut, since the current
-         version of Pico doesn't. (DLR)
-  do_cursorpos()
-       - Add assert to check whether totsize is correct. (David
-         Benbennick)
-  line_len()
-       - Rename to help_line_len() so as not to conflict with the
-         line_len variable used elsewhere, and move inside the
-         DISABLE_HELP #ifdef surrounding do_help() since it's only
-         called in do_help(). (DLR)
-  do_help()
-       - Have help_line_len() properly return an int again, since its
-         value can't be larger than COLS. (DLR)
-       - Allow the user to exit the help browser via Ctrl-C as well as
-         Ctrl-X, for consistency with the file browser. (DLR)
-- configure.ac:
-       - Add AC_PROG_LN_S, so that we can portably create symlinks.
-         (DLR)
-       - Check for getdelim() and getline(), which are both GNU
-         extensions. (DLR)
-- nanorc.sample:
-       - Add sample regexes for patch files. (Mike Frysinger)
-       - Various improvements to the "c-file" regexes.  Add double,
-         typedef, extern, union, unsigned, inline, and long to the
-         green list. (Mike Frysinger)  DLR: Also add signed, short, and
-         enum to the green list.
-- nano.spec.in:
-       - Tweak to include all files in %{_bindir} instead of just nano,
-         so that the "rnano" symlink will be properly packaged. (DLR)
-
-GNU nano 1.3.3 - 2004.06.28
-- General:
-       - Minor comment cleanups. (DLR)
-       - Convert more ints used as boolean values to use TRUE and
-         FALSE. (David Benbennick)
-       - Make sure the special control keys are handled the same way
-         after the window is resized or we come out of suspend mode.
-         Changes to do_cont() and handle_sigwinch(). (DLR)
-       - Change some instances of ints that can never be negative to
-         size_t's. (DLR)
-       - Add better explanations for and in the "Terminal breakage"
-         comments, and handle missing key #ifdefs inside the functions
-         that use those keys. (DLR)
-       - Add restricted mode, accessible via the -Z/--restricted
-         command line option or by invoking nano with any name
-         beginning with 'r' (e.g. "rnano").  In restricted mode, nano
-         will not read or write to any file not specified on the
-         command line, read any nanorc files, allow suspending, or
-         allow a file to be appended to, prepended to, or saved under a
-         different name if it already has one. (IO ERROR)  DLR: Also
-         disable backup files and spell checking (since the latter can
-         leave a pre-spell-checked version of the file in a temporary
-         directory), use tail() to get the program name so that the
-         check for its beginning with 'r' will work when a path is
-         specified, disable toggles that are only useful with options
-         that are disabled in restricted mode, call nano_disabled_msg()
-         when trying to read or spell check a file instead of leaving
-         the shortcuts out of the main list, and instead of acting as
-         though TEMP_OPT is enabled when exiting with a modified file
-         (which caused problems if the filename was blank), only allow
-         a filename to be modified at the writeout prompt if it's blank
-         beforehand.  Changes to do_writeout(), toggle_init(),
-         shortcut_init(), die_save_file(), and nanogetstr().
-       - Call nano_disabled_msg() directly from the shortcut list
-         instead of inside the disabled functions. (David Benbennick)
-       - Clarifications to comments explaining exactly what control
-         characters and escape sequences are supported. (DLR)
-       - Disable "Where Is Next" in tiny mode. (DLR)
-       - Added the ability to justify the entire file at once, which
-         Pico has via ^W^J.  Changes to backup_lines() and
-         do_justify(); new functions do_justify_void() and
-         do_full_justify(). (DLR)
-       - Modify the justification algorithm to work the same way as in
-         the current version of Pico, i.e. add a space at the end of
-         each line of the justified paragraph except for the last one,
-         and if there was a space at the end of the last one, remove
-         it.  Changes to justify_format() and do_justify().  Note that
-         we can no longer reliably detect the first modified line in a
-         paragraph, since a line unmodified by justify_format() may get
-         a space tacked onto the end of it or removed from the end of
-         it later.  The entire original paragraph is now always backed
-         up, and justify_format() no longer has a non-modifying mode,
-         so it's now only called in backup_lines(). (DLR)
-       - Wrap the long jump code in NANO_SMALL #ifdefs, since we only
-         use it if we're resizing the window, which is disabled when
-         NANO_SMALL is defined. (DLR)
-       - Add smart home key option, accessible via -A/--smarthome on
-         the command line, "set smarthome" in the rcfile, and the
-         Meta-H toggle in the edit window.  Smart home works as
-         follows: When Home is pressed anywhere but at the very
-         beginning of non-whitespace characters on a line, the cursor
-         will jump to that beginning (either forwards or backwards).
-         If the cursor is already at that position, it will jump to the
-         true beginning of the line.  This option is disabled in tiny
-         mode.  Changes to do_home(), nanogetstr(), etc. (DLR;
-         suggested by Stephan T. Lavavej)
-       - Minor tweaks to the punctuation in some statusbar messages.
-         (DLR)
-       - Overhaul the low-level input routines into main routines that
-         actually get the input and state machines that interpret the
-         input.  This allows better handling of the input (e.g. ignored
-         keys are now always ignored instead of just being ignored when
-         there are no escapes prefixing them) and will make it easier
-         to port to interfaces that don't have blocking input.  New
-         functions reset_kbinput(), get_translated_kbinput(),
-         get_control_kbinput(), and get_untranslated_kbinput(); changes
-         to do_verbatim_input(), handle_sigwinch(), get_kbinput(),
-         get_ascii_kbinput(), get_escape_seq_kbinput(), and
-         get_verbatim_kbinput(); removal of get_ignored_kbinput() and
-         get_accepted_kbinput(). (DLR)
-       - Overhaul all the movement functions in order to avoid
-         redundant screen redraws (and regexec()s when color support is
-         available) whenever possible during ordinary cursor movement
-         when the text doesn't change.  Do the same for moving in
-         do_char(), do_delete(), do_next_word(), do_prev_word(),
-         do_search(), do_research(), and do_replace_loop.  Changes to
-         do_first_line(), do_last_line(), do_home(), do_end(),
-         do_page_up(), do_page_down(), do_up(), do_down(), do_left(),
-         do_right(), do_delete(), do_backspace(), do_search(),
-         do_research(), do_replace_loop(), do_find_bracket(), and
-         edit_refresh().  New functions do_left_void(),
-         do_right_void(), need_horizontal_update(),
-         need_vertical_update(), edit_scroll(), and edit_redraw().  All
-         of these functions but the first two require the previous
-         versions of current and/or placewewant as parameters, so that
-         they can redraw properly when the location has changed.  Also
-         rename the int refresh in do_delete() and do_backspace() to
-         do_refresh so as not to conflict with refresh(). (DLR)
-       - Add some comments better explaining what is disabled in
-         restricted mode and why. (DLR)
-       - Since KEEP_CUTBUFFER is only used in cut.c, make it a static
-         variable in cut.c instead of a flag, and unset it in other
-         files via the new function cutbuffer_reset(). (DLR)
-       - Add the ability to change the characters used to display the
-         beginning characters of tabs and spaces via the rcfile entry
-         "whitespace".  This is disabled if nanorc support is disabled
-         or if we're in tiny mode.  Displaying the new characters is
-         toggled on and off by Meta-P; the default is on. (Mike
-         Frysinger; minor changes and adaptations by DLR)
-       - Add the ability to change the closing punctuation and closing
-         brackets used to control justification, via the rcfile
-         entries "punct" and "brackets". (DLR)
-       - Translation updates (see po/ChangeLog for details).
-       - Make the former flag same_line_wrap use TRUE and FALSE
-         instead of 1 and 0. (DLR)
-- files.c:
-  add_open_file()
-       - Rearrange the NANO_SMALL #ifdef so that the code to set the
-         MODIFIED flag in open_files->flags is included only once.
-         (DLR)
-  write_marked()
-       - Call write_file() with nonamechange set to TRUE so that we
-         don't erroneously change the current filename when writing a
-         selection, and don't take a nonamechange parameter anymore
-         since we don't use it. (DLR)
-  do_writeout()
-       - Refactor so that no recursion is needed if we try to exit with
-         a modified file that has no name when TEMP_OPT is set. (DLR)
-       - Add spaces to the ends of the "Overwrite" and "Different Name"
-         prompts, for consistency. (DLR)
-  do_browser()
-       - Call check_statblank() instead of blanking the statusbar
-         unconditionally, for consistency. (David Benbennick)
-- global.c:
-  shortcut_init()
-       - Don't assign any handler functions to the help browser keys,
-         as the help browser handles them all internally. (David
-         Benbennick)
-- move.c:
-  do_first_line(), do_last_line()
-       - Move these functions here from winio.c. (DLR)
-- nano.c:
-  finish()
-       - Call blank_statusbar() and blank_bottombars() to blank out
-         the statusbar and shortcut list in bottomwin. (DLR)
-       - Since all of the calls to finish() use 0 for the value of
-         sigage, and the return value of finish() is never used, make
-         it accept and return void. (David Benbennick)
-  die_save_file()
-       - Call write_file() with nonamechange set to TRUE since we don't
-         need to change the current filename if we're writing emergency
-         backup files. (DLR)
-  do_early_abort()
-       - Removed, as it's no longer called anywhere. (David Benbennick)
-  usage()
-       - Add missing "[dir]" and two missing _()'s around the strings
-         describing the -E [dir]/--backupdir=[dir]" option. (CHAO
-         Wei-Lun)
-  open_pipe()
-       - Call enable_signals() at the beginning and disable_signals()
-         at the end, so that we get a SIGINT when Ctrl-C is pressed
-         during wait() and can then call cancel_fork() properly. (DLR)
-  do_delete(), do_enter()
-       - Tweak for efficiency. (David Benbennick)
-  do_prev_word()
-       - Switch the last test (current != NULL or not) around to match
-         the order of the same test in do_next_word() (current ==
-         NULL).  The results are the same either way. (DLR)
-  do_wrap()
-       - Tweak for efficiency. (David Benbennick)
-  do_spell()
-       - Tweak for efficiency. (David Benbennick)
-       - Change the statusbar entries used in cases of failure so that
-         they all display the actual error that occurred. (David
-         Benbennick and DLR)
-  do_int_speller(), do_alt_speller()
-       - Make these functions return const char*'s instead of char*'s.
-         (David Benbennick)
-  justify_format()
-       - Remove redundant assignment. (DLR)
-  do_para_search()
-       - Remove unneeded edit_update() calls. (David Benbennick)
-       - Convert to use an enum to specify the search type: JUSTIFY,
-         BEGIN, or END. (DLR)
-       - Refactor to properly do searches for beginnings of paragraphs
-         in the same way as searches for endings of paragraphs, without
-         needing the old (and somewhat inaccurate) recursive approach.
-         (DLR)
-  do_justify()
-       - Remove unneeded edit_update() calls, and add a few minor
-         efficiency tweaks. (David Benbennick)
-       - Simplify an if statement. (DLR)
-  do_exit()
-       - Refactor so that no recursion is needed if we try to exit with
-         a modified file that has no name when TEMP_OPT is set. (DLR)
-  print_numlock_warning()
-       - Removed, as it's no longer needed and was never called
-         anywhere after the input overhaul. (DLR)
-  signal_init()
-       - Don't use termios and _POSIX_VDISABLE to disable keys anymore,
-         as there's no real equivalent of it when the latter isn't
-         defined. (DLR)
-  handle_sigwinch()
-       - Call resetty() to get the original terminal settings back.
-         (DLR)
-       - Rework so that nano properly redraws the screen on systems
-         that don't have resizeterm() and/or wresize().  In curses, we
-         now leave and immediately reenter curses mode via endwin() and
-         refresh(), and then reinitialize all windows via
-         window_init().  In slang, the above routine will only work if
-         the resize made the window smaller, so we now leave and
-         immediately reenter screen management mode via
-         SLsmg_reset_smg() and SLsmg_init_smg(), and then reinitialize
-         all windows via window_init().  (DLR, adapted from code in
-         Minimum Profit 3.3.0 and mutt 1.4.2.1, respectively)
-  do_toggle()
-       - Call blank_statusbar() and blank_bottombars() to blank out
-         the statusbar and shortcut list in bottomwin. (DLR)
-  do_verbatim_input()
-       - If PRESERVE is set, disable flow control characters before
-         getting input and reenable them after getting input. (DLR)
-  disable_signals(), enable_signals(), disable_flow_control(),
-  enable_flow_control()
-       - New functions that allow more fine-grained control of the
-         terminal: disabling and enabling signals without having to use
-         _POSIX_VDISABLE and disabling and enabling flow control
-         characters. (DLR)
-  main()
-       - Don't open the first file in quiet mode, since if we do, an
-         error message won't be shown if it's unreadable. (DLR; found
-         by Jaap Eldering)
-       - If we've specified multiple files on the command line and
-         multibuffer support is compiled in, turn multibuffer mode on
-         when reading those files and turn it off afterward if it was
-         off before.  This allows us to open multiple files without
-         having to turn multibuffer mode on at the command line or in
-         the nanorc first, both of which are unintuitive.  Multibuffer
-         mode should only affect how the "Read File" command behaves
-         anyway. (DLR)
-       - Remove the disabling of implementation-defined input
-         processing, as cbreak mode appears to turn it off anyway.
-         (DLR)
-       - After noecho(), call disable_signals() and
-         disable_flow_control(), the latter only if PRESERVE is not
-         set. (DLR)
-       - Move the savetty() call down from just after initscr() to just
-         after the terminal is properly set up, so that we can restore
-         it easily after a resize. (DLR)
-       - Add missing cast to char when calling do_char(). (DLR)
-       - Don't initialize the backup directory if we're in restricted
-         mode, since backups are disabled then. (DLR)
-       - Check $SPELL for an alternative spell checker if we didn't get
-         one from the command line and/or rcfile, as Pico does.  Don't
-         do this if we're in restricted mode, since spell checking is
-         disabled then. (DLR)
-       - Add some cleanups for greater readability, and remove a few
-         bits of redundant code. (DLR and David Benbennick)
-- nano.h:
-       - Since REGEXP_COMPILED is only used in search.c, convert it
-         from a flag to a static int there. (DLR)
-       - Add justbegend enum, used in do_para_search(). (DLR)
-       - Add updown enum, used in edit_scroll(). (DLR)
-- proto.h:
-       - Remove unused xpt() and add_marked_sameline() prototypes.
-         (DLR)
-       - Add missing #ifdefs around the nstristr() and get_mouseinput()
-         prototypes. (DLR)
-- rcfile.c:
-       - Move "rebinddelete" up in the list of options so that the list
-         is in alphabetical order. (DLR)
-       - Cosmetic reorganization of the order in which some options are
-         interpreted. (DLR)
-       - Explicitly check for rcopts[i].name's being "tabsize" to avoid
-         a spurious error under some circumstances about tabsize's
-         being 0 when there's no tabsize entry in the rcfile. (DLR)
-- search.c:
-  regexp_init()
-       - Overhaul for efficiency.  Also check if regcomp() failed, and
-         if so, display "Bad regex" message on the statusbar, so that
-         we don't have to display it separately after every call to
-         this function. (David Benbennick)
-  search_init()
-       - Only check whether USE_REGEXP is set, and hence whether or not
-         to display "[Regexp]" on the search prompt, if HAVE_REGEX_H is
-         defined. (DLR)
-  not_found_msg()
-       - Convert to properly handle strings generated by
-         display_string() that have been used in the search prompt
-         since 1.3.0. (David Benbennick)
-       - Use display_string() directly to display the text that we
-         didn't find instead of relying on statusbar() to do it
-         indirectly, since the latter won't display its text with the
-         user-specified whitespace characters and the former will.
-         (DLR)
-- utils.c:
-  is_blank_char()
-       - New function used as an isblank() equivalent, since isblank()
-         is a GNU extension. (DLR)
-  nstricmp(), nstrnicmp()
-       - Add extra blank lines for greater readability, and remove
-         unneeded test for n's being less than zero (since it's already
-         been tested for being greater than zero or equal to zero at
-         that point) from nstrnicmp(). (DLR)
-  stristr()
-       - Rename to nstristr() to avoid a potential conflict with an
-         existing stristr() function, and move up to just after
-         nstrnicmp(). (DLR)  David Benbennick: Tweak for efficiency.
-       - Include and use only when strcasestr() is unavailable, since
-         strcasestr() is a GNU extension. (DLR)
-  nstrnlen()
-       - New function used as a strnlen() equivalent, since strnlen()
-         is a GNU extension. (DLR)
-- winio.c:
-  get_verbatim_kbinput()
-       - Refactor the output in the DEBUG #ifdef.  It didn't work
-         properly ever since this function was changed to use an int*
-         instead of a char*. (DLR)
-       - When reading characters from input, properly reallocate
-         verbatim_kbinput via (int*)nrealloc() instead of an uncast
-         realloc(). (DLR)
-  get_accepted_kbinput()
-       - Add proper support for the keypad values and escape sequences
-         generated by the NumLock glitch and by certain keys on the
-         numeric keypad. (DLR)
-       - Add an extra break and move an #endif down to fix a potential
-         problem when NANO_SMALL is defined or KEY_RESIZE isn't, and
-         when PDCURSES isn't defined. (DLR)
-  get_escape_seq_kbinput()
-       - Add proper support for the keypad values and escape sequences
-         generated by the NumLock glitch. (DLR)
-       - Add ignore_seq parameter.  If a sequence is recognized but
-         ignored, we will now return ERR and set ignore_seq to TRUE, and
-         if a sequence is unrecognized, we will now return ERR and set
-         ignore_seq to FALSE.  Also, here and elsewhere, don't bother
-         assigning ERR to retval when that's its initial value. (DLR)
-       - Fix problem where the escape sequence for F3 on the FreeBSD
-         console would not be interpreted properly. (DLR)
-  get_mouseinput()
-       - Don't ungetch() anything if there's no control key and no meta
-         key defined in the shortcut we clicked. (DLR)
-  bottombars()
-       - Don't display any more than MAIN_VISIBLE shortcuts.  Adding
-         justification of the entire file above made the search
-         shortcut list longer than this and hence made the shortcuts in
-         it so short as to be almost incomprehensible. (DLR)
-       - Tweak for efficiency and to better handle shorter screen
-         widths. (David Benbennick)
-       - Restructure the if block used for the sentinel key values,
-         dynamically allocate keystr based on the number of columns
-         available, and make sure we can display shortcuts even when
-         the number of available columns is too short for any complete
-         one. (DLR)
-  onekey()
-       - Don't bother padding the displayed shortcuts with spaces.
-         (David Benbennick)
-       - Convert len to a size_t. (DLR)
-  edit_add()
-       - Minor cosmetic reformatting.  Also remove unused int
-         searched_later_lines. (DLR)
-  blank_bottomwin()
-       - Removed, as it does the same thing as blank_bottombars().
-         (David Benbennick)
-  blank_titlebar()
-       - New function used to blank the titlebar in topwin. (DLR)
-  blank_statusbar_refresh()
-       - Removed, as it's now unnecessary. (David Benbennick)
-  titlebar()
-       - Overhaul to use display_string() to display the filename, and
-         to better handle shorter screen widths.  Also remove
-         now-unneeded wrefresh(topwin) calls. (David Benbennick)
-         DLR: Tweak to reserve enough space for "Modified", plus
-         padding, in all cases, to make sure that the version message
-         takes up no more more than 1/3 of the available width, minus
-         padding, and to include a reset_cursor() call so that the
-         cursor is always in the right place.
-  bottombars()
-       - Call blank_bottombars() instead of blank_bottomwin(). (David
-         Benbennick)
-  check_statblank()
-       - Overhaul for efficiency, (David Benbennick)  DLR: Add
-         reset_cursor() call to ensure that the cursor is always in the
-         right place.
-  update_cursor()
-       - Removed, as it's no longer called anywhere. (David Benbennick)
-  edit_refresh()
-       - Remove apparently unneeded leaveok() calls. (David Benbennick)
-  edit_refresh_clearok(), center_cursor()
-       - Removed, as they are now unnecessary. (David Benbennick)
-  statusq()
-       - Don't allow "Full Justify" when in view mode. (DLR)
-  statusbar()
-       - Call reset_cursor() just before refreshing the edit window, so
-         that slang and other non-ncurses versions of curses will
-         properly place the cursor back in the edit window instead of
-         leaving it at the end of the statusbar. (DLR)
-  do_help()
-       - Overhaul for efficiency, and allow scrolling through the help
-         via the arrow keys as well as the paging keys. (David
-         Benbennick)  DLR: Revert the use of the return value of
-         curs_set() to restore the previous state of the cursor, as
-         some curses implementations (including slang) get it wrong,
-         and explicitly turn the cursor off where needed instead.
-  do_credits()
-       - Use napms() instead of nanosleep(), as it does the same thing
-         (aside from taking an argument in milliseconds instead of
-         microseconds) and curses includes it. (DLR)
-       - Overhaul for efficiency, and make sure the xlcredits
-         translations are done after initialization in order to avoid
-         an error when compiling with -pedantic. (David Benbennick)
-  do_yesno()
-       - Add a comment to encourage translators to use both native and
-         English shortcuts, if possible. (Jordi)
-- configure.ac:
-       - Add tests for isblank(), strcasestr(), and strnlen(), and
-         define _GNU_SOURCE so that the tests work properly.  Increase
-         the minimum required autoconf version to 2.54. (DLR)
-       - Reformat the test programs so that they aren't packed into
-         fewer lines than usual, so as to make them easier to read, and
-         remove unnecessary inclusion of stdio.h in the slang test
-         programs. (DLR)
-       - Remove the checks for resizeterm() and wresize(), as they're
-         no longer needed. (DLR)
-- config.rpath:
-       - Replace usage of egrep with grep -E, avoiding a XSI:ism (David
-         Weinehall)
-- faq.html:
-       - Removed question about the NumLock glitch, as it's no longer
-         needed. (DLR)
-- nano.1:
-       - Document restricted mode. (IO ERROR)  DLR: Add minor
-         modifications to account for the above changes.
-       - Document the smart home key option. (DLR)
-       - Document the use of the SPELL environment variable. (DLR)
-- nanorc.5:
-       - Document the smart home key option. (DLR)
-       - Document the whitespace option. (DLR, adapted from
-         documentation by Mike Frysinger)
-       - Document the punct and brackets options. (DLR)
-- nano.texi:
-       - Fix toggle inaccuracies: Meta-L now toggles line wrapping, and
-         Meta-< and Meta-> aren't toggles. (DLR)
-       - Document restricted mode. (IO ERROR)  DLR: Add minor
-         modifications to account for the above changes.
-       - Fix version number inaccuracies: Search/replace history and
-         sorting/uniqueness filtering for the internal spell checker
-         were added in nano 1.1.99pre1. (DLR)
-       - Document the smart home key option. (DLR)
-       - Document the use of the SPELL environment variable. (DLR)
-- nanorc.sample:
-       - Add missing mouse entry, and update the nanorc sample regexes
-         to account for the backupdir and mouse options. (DLR)
-       - Add smarthome description. (DLR)
-       - Document the whitespace option. (DLR, adapted from
-         documentation by Mike Frysinger)
-- README.CVS:
-       - Increase the minimum required autoconf version to 2.54, and
-         change the recommended automake version 1.7 to the minimum
-         required automake version.  Note that autoconf 2.54 will
-         technically also work with automake 1.6c, but that is a CVS
-         version as opposed to a stable release version, and automake
-         1.7 requires at least autoconf 2.54 in any case. (DLR)
-- TODO:
-       - Added entry for justifying the entire file at once, since Pico
-         can do it, and with "[DONE]" since it's already been
-         implemented. (DLR)
-
-GNU nano 1.3.2 - 2004.03.31
-- General:
-       - Change instances in the code that refresh the entire edit
-         window when color support is enabled (in order to properly
-         handle multi-line color regexes) to only do so when
-         it's necessary, i.e. when COLOR_SYNTAX is set. (DLR)
-       - Minor cosmetic tweaks to the code involving direction keys.
-         NANO_UP_KEY and NANO_DOWN_KEY are now NANO_PREVLINE_KEY and
-         NANO_NEXTLINE_KEY, and the help messages for them have been
-         changed accordingly.  Also remove extraneous references to
-         NANO_DOWN_KEY in the search history shortcut entries. (DLR)
-       - Add NANO_UNJUSTIFY_FKEY (the same as NANO_UNCUT_FKEY) to the
-         shortcut list, and tweak the unjustify routine to use it.
-         Also add NANO_FIRSTLINE_FKEY and NANO_LASTLINE_FKEY, and tweak
-         the statusbar input routines to handle them and NANO_HELP_FKEY
-         properly. (DLR)
-       - Block SIGWINCH after setting up its handler, and only unblock
-         and handle it when we're in a stable state, i.e. when we're
-         waiting for input from the user.  New function
-         allow_pending_sigwinch(); changes to signal_init(),
-         get_kbinput(), and get_verbatim_kbinput(). (DLR)
-       - Decouple the paragraph searching code and the justifying code.
-         Removed function do_para_operation(); new function
-         do_para_search(); changes to do_justify(). (DLR)
-       - Add -E/--backupdir option.  When used with -B/--backup, backup
-         files will be saved in the specified directory with their
-         canonical pathnames encoded in their names (all '/'s replaced
-         with '!'s).  Changes to write_file(). (Martin Ehmsen)  DLR:
-         Add function init_backup_dir() to handle relative paths
-         correctly, use get_full_path() to get the canonical pathname,
-         and use tail() to get the filename if get_full_path() fails.
-       - Port to the Tandem NonStop Kernel (nsr-tandem-nsk). (Tom
-         Bates; minor tweaks by DLR)
-       - Change some instances of boolean 0 and 1 to TRUE and FALSE.
-         (David Benbennick)
-       - Fix memory corruption problem occurring when answer is used as
-         the value of def; if the realloc() of answer leads to its
-         pointing to a different memory block, there will be a segfault
-         when the value of def is copied into it via strcpy().
-         (bort@alltel.net, Christian Weisgerber, David Benbennick, and
-         DLR)
-       - Remove the last editbot references, to avoid any potential
-         segfaults related to them.  Also remove fix_editbot(), as it's
-         no longer needed. (David Benbennick)
-       - Rename several variables to make their use clearer and to
-         avoid conflicts. (DLR)
-       - Set the input mode before turning the keypad on. (DLR)
-- cut.c:
-  add_to_cutbuffer()
-       - Add parameter allow_concat to determine whether we're allowed
-         to concatenate strings in the cutbuffer. (DLR)
-- files.c:
-  do_insertfile()
-       - Wrap one reference to NANO_EXTCMD_KEY in a NANO_SMALL #ifdef.
-         (DLR)
-       - Save the already-typed answer when switching from "Insert
-         File" to "Execute Command" mode via Ctrl-X, just in case we
-         started typing a command before switching. (DLR)
-  add_open_files()
-       - Make the saving of marked status in open_files->file_flags
-         work properly again; a tweak to the ISSET() macro in 1.3.0
-         to make it only return 0 or 1 broke it. (DLR)
-  write_marked()
-       - New function used to write the current marked selection to a
-         file, split out from do_writeout(). (DLR)
-  do_writeout()
-       - Tweak for efficiency. (David Benbennick)  DLR: Modify to have
-         the current answer preserved between toggles again.
-  filestat()
-       - Removed, as it is only called in one place and is
-         redundant. (DLR)
-  do_browser()
-       - Replace the filestat() call with an equivalent stat() call.
-         (DLR)
-- global.c:
-  shortcut_init()
-       - Only allow verbatim input when we're not in view mode. (DLR)
-       - Set the associated function for unjustify to 0 instead of
-         do_uncut_text(), since it's currently unused. (DLR)
-- nano.c:
-  usage()
-       - Clarify the description for -T/--tabsize a bit. (DLR)
-  do_verbatim_input()
-       - Remove the now-unneeded code to disable XON, XOFF, and
-         suspend, since we now go into raw mode in
-         get_verbatim_kbinput() and bypass them. (DLR)
-  do_next_word()
-       - Simplify and remove references to editbot so as to avoid a
-         segfault. (David Benbennick)
-  do_prev_word()
-       - Simplify and remove references to edittop. (David Benbennick)
-  do_int_speller(), do_alt_speller(), do_spell()
-       - Modify to write only the current selection from a file to the
-         temporary file used for spell checking when the mark is on,
-         and add a few miscellaneous cosmetic cleanups. (DLR)
-  do_int_spell_fix()
-       - Store the value of current_x in a size_t instead of an int,
-         and add a few minor efficiency tweaks. (David Benbennick)
-       - Remove comment explaining why findnextstr() is called with
-         bracket_mode set to TRUE even though we aren't doing a bracket
-         search, since after the above efficiency tweaks, it's now more
-         accurately called can_display_wrap. (DLR)
-  indent_length()
-       - Remove unneeded #ifdef. (David Benbennick)
-  do_justify()
-       - Remove references to the now-unneeded JUSTIFY_MODE flag. (DLR)
-  signal_init()
-       - Trap SIGQUIT in addition to turning it off via termios in
-         main().  This is consistent with SIGINT, which we trap here
-         and turn off via termios in main(), as well as with the
-         associated comment. (DLR)
-  handle_sigwinch()
-       - Set keypad() to TRUE and switch to cbreak mode just before
-         calling siglongjmp(), in case we resized during verbatim
-         input. (DLR)
-  main()
-       - Move the call to raw() on systems that don't define
-         _POSIX_VDISABLE outside the main input/output loop, as it
-         doesn't need to be called every time through the loop.  Call it
-         instead of cbreak() on such systems, as it overrides cbreak()
-         anyway. (DLR)
-       - Add more descriptive comments explaining the termios and
-         curses setup routines, and turn the keypad on before setting
-         the input mode. (DLR)
-       - Remove stray HAVE_GETOPT_LONG #ifdefs. (DLR)
-       - Don't call keypad() before initializing the windows it needs
-         via window_init().
-- nano.h:
-       - Move the NANO_H include guard up before the first #include.
-         (DLR)
-       - Remove the now-unneeded JUSTIFY_MODE flag. (DLR)
-- search.c:
-  regexp_cleanup()
-       - Only do anything if REGEXP_COMPILED is set. (David Benbennick)
-  search_abort()
-       - Only test if the mark is set when NANO_SMALL isn't defined.
-         (David Benbennick)
-  search_init()
-       - Add some more comments and comment tweaks, don't indicate that
-         the search has been canceled when we enter a blank string in
-         replace mode, only call regexp_init() when USE_REGEXP is set,
-         and return -1 instead of -3 since a canceled search and a
-         canceled replace should be mostly equivalent. (David
-         Benbennick)  DLR: Tweak to use the old behavior if we try to
-         search for invalid regexes.
-  findnextstr()
-       - Refactor to use a loop invariant, and tweak for greater
-         efficiency and simplicity.  Also modify so that all searches
-         start one character after (or before, if we're doing a
-         backwards search) the current one, as opposed to all searches
-         except for regex searches for "^" and the like, for
-         consistency with other searches. (David Benbennick)
-  do_search()
-       - Handle search_init()'s no longer returning -3 above. (David
-         Benbennick)
-       - Port the code from do_replace_loop() to skip the current line
-         if we're searching for a regex with "^" and/or "$" in it and
-         end up on the same line to this function.  This fixes a
-         problem where doing a forward search for "^" on a file with
-         more than one line would erroneously stop at the magicline and
-         indicate that that was the only occurrence. (DLR)
-  do_research()
-       - Port David Benbennick's efficiency tweaks and the
-         aforementioned code ported from do_replace_loop() to this
-         function. (DLR)
-  replace_regexp()
-       - Completely refactor for increased efficiency. (David
-         Benbennick)
-  replace_line()
-       - Use a char* parameter for the replacement string instead of
-         last_search, and add minor efficiency tweaks. (David
-         Benbennick)
-  do_replace_loop()
-       - Fix segfault when doing a regex replace of a string that
-         matches inside a line (e.g. replace the "b" in "abc" with
-         anything). (David Benbennick)
-       - If the mark is on at the beginning of the function, turn it
-         off and turn it back on just before returning.  Also overhaul
-         to rely on the return value of findnextstr() instead of a loop
-         invariant, to not need to take an int* parameter, and store
-         the beginning x-coordinate in a size_t instead of an int.
-         (David Benbennick)
-  do_replace()
-       - Handle search_init()'s no longer returning -3 above, and add
-         efficiency tweaks. (David Benbennick)  DLR: Tweak to follow
-         the old behavior of adding non-blank strings entered at the
-         "Replace: " prompt to the search history. (DLR)
-  do_gotoline()
-       - Simplify the edit_update() call depending on the value of
-         save_pos. (David Benbennick)
-  do_bracket()
-       - Add efficiency tweaks. (David Benbennick)  DLR: Remove
-         reliance on the hardcoded bracket string length; instead, only
-         require that the bracket string length be even.
-- utils.c:
-  regexec_safe()
-       - Wrap in HAVE_REGEX_H #ifdefs. (DLR)
-  regexp_bol_or_eol()
-       - New function used to check if a regex contains "^" and/or "$",
-         assuming that the regex would be found if the REG_NOT(BOL|EOL)
-         flags aren't used in the regexec() call; it replaces the
-         direct regexec()s used before. (DLR)
-  strstrwrapper()
-       - Refactor for increased efficiency, and eliminate the need for
-         the line_pos parameter. (David Benbennick)
-  mallocstrcpy()
-       - Tweak so that when src is "", "" is allocated and returned
-         instead of NULL. (David Benbennick)
-- winio.c:
-  get_verbatim_kbinput()
-       - Set keypad() to FALSE and switch to raw mode while reading
-         input, and set it back to TRUE and go back into cbreak mode
-         mode afterwards.  (Note that if _POSIX_VDISABLE isn't defined,
-         we don't need to change to or from raw mode since we're
-         already in it exclusively.)  This ensures that we don't end up
-         reading in extended keypad values that are outside the ASCII
-         range or having to deal with interrupt-generating key values.
-         Also, with keypad() set to TRUE, xterm generates KEY_BACKSPACE
-         when the user hits Ctrl-H, which, when cut down to ASCII
-         range, ends up being Ctrl-G, which can be confusing. (DLR)
-       - For consistency with get_kbinput(), use an int* to store and
-         return the input instead of a char*, and tweak the functions
-         that call it to handle this. (DLR)
-  get_accepted_kbinput()
-       - Don't use "kbinput = wgetch(win)" as a switch value. (DLR)
-  get_escape_seq_kbinput()
-       - Add support for the escape sequences for F1-F14 whenever
-         possible (i.e. whenever a conflict doesn't occur), some
-         additional comments, and a few cosmetic cleanups. (DLR)
-       - Use switch statements instead of strncmp() to read in the long
-         xterm sequences for Ctrl-[arrow key] and Shift-[arrow key].
-         (DLR)
-  get_escape_seq_abcd()
-       - A resurrected version of the old abcd() function, readded in
-         order to simplify get_escape_seq_kbinput(). (DLR)
-  get_mouseinput()
-       - Interpret shortcut key values slightly more stringently when
-         ungetch()ing them. (DLR)
-  strlenpt()
-       - Properly cast the second parameter of the strnlenpt() call to
-         size_t. (DLR)
-  get_page_start()
-       - For consistency, tweak so that scrolling always occurs when we
-         try to move onto the "$" at the end of the line, as opposed to
-         (a) when we move onto the "$" at the end of the line on the
-         first page and (b) when we move onto the character just before
-         the "$" on subsequent pages. (DLR)
-  reset_cursor()
-       - Tweak for efficiency. (David Benbennick)
-  edit_refresh()
-       - Tweak for efficiency. (David Benbennick)
-  statusq()
-       - Rename "tabs" to "allowtabs". (David Benbennick)
-  do_credits()
-       - Use nanosleep() instead of usleep().  The latter is only
-         standard under BSD, whereas the former is POSIX compliant.
-         Accordingly, only include time.h if we use this function, i.e.
-         if NANO_EXTRA is defined. (DLR)
-       - Add explanatory comment. (DLR)
-- configure.ac:
-       - Change instances of "int main ()" to "int main(void)". (DLR)
-- faq.html:
-       - Fixed inaccuracy: multibuffer mode was first in nano 1.1.0,
-         not 1.1.12. (DLR)
-- nano.1, nanorc.5, nano.texi
-       - Clarify the description for -T/--tabsize a bit. (DLR)
-       - Add -E/--backupdir description. (Martin Ehmsen; minor cosmetic
-         fixes by DLR)
-- nanorc.sample:
-       - Add backupdir description. (Martin Ehmsen; minor cosmetic
-         fixes by DLR)
-- README:
-       - Reformat to 72 characters per line, fix wording in one spot,
-         and fix spacing and capitalization in several spots. (DLR)
-- NEWS:
-       - Capitalization fix. (DLR)
-- TODO:
-       - Clarify the paragraph searching item, and add item for
-         filename searches in the file browser. (DLR)
-
-GNU nano 1.3.1 - 2004.01.09
-- General:
-       - Minor overhaul and abstraction of the lowest level of mouse
-         input, mostly adapted from the code in do_mouse() that handles
-         clicking on the shortcut list.  New function do_mouseinput();
-         changes to do_mouse(). (DLR)  David Benbennick: Add a few
-         efficiency/extensibility tweaks.
-       - Modify the shortcut structure so that instead of having two
-         miscellaneous key values (misc1 and misc2), there is one key
-         value reserved for function keys (func_key) and one
-         miscellaneous key value (misc), and tweak the
-         shortcut-handling code to deal with this.  These changes allow
-         NANO_OPEN(PREV|NEXT)_ALTKEY to work properly when added to the
-         shortcut entries for NANO_OPEN(PREV|NEXT)_KEY.  Also remove
-         the values in the shortcut list and elsewhere that were made
-         redundant by the low-level input overhaul, use toupper()
-         instead of subtracting 32 from values for greater code
-         readability, and eliminate use of adding 32 to values when
-         testing for toggles, as get_kbinput_accepted() converts toggle
-         values to lowercase before returning them. (DLR)
-       - Remove the workarounds for missing KEY_UP and KEY_DOWN, as
-         they appear to be holdovers of the old way of denoting the
-         search history shortcuts; if they aren't defined, KEY_LEFT and
-         KEY_RIGHT probably shouldn't work either, and all four appear
-         to be standard keys in termcap/terminfo in any case.  Add new
-         special sentinel key values NANO_NO_KEY (for no shortcut key)
-         and NANO_HISTORY_KEY (for search history keys, both Up and
-         Down), modify the shortcut list to use them, and modify the
-         shortcut display routines to handle them.  Also modify the
-         shortcut list code to not treat non-control character values
-         of val as Meta-sequences, and fix dependencies on that
-         behavior.  Also rename several variables: "alt" -> "meta",
-         "altval" -> "metaval". (DLR)
-       - Hook up the verbatim input functions so that verbatim input
-         can be used in the edit window.  New function
-         do_verbatim_input(); changes to do_char(). (DLR)  Additional
-         minor tweaks to do_char() by David Benbennick.
-       - Clarify the description of the --rebinddelete option. (DLR)
-       - Miscellaneous comment tweaks, and copyright year updates in
-         the comments and in do_credits(). (DLR)
-- cut.c:
-       - Overhaul to increase efficiency and add various cleanups.
-         Changes to add_to_cutbuffer(), cut_marked_segment(), and
-         do_uncut_text(). (David Benbennick)
-- files.c:
-  check_operating_dir()
-       - Add an assert to ensure that full_operatingdir isn't NULL,
-         a fix for reporting nonexistent (incomplete) directory names
-         as being outside the operating directory when tab completion
-         is being used, and cosmetic cleanups. (David Benbennick)
-  copy_file()
-       - New function used to create a copy of a file, split out from
-         do_writeout(). (David Benbennick)
-  write_file()
-       - Completely overhauled to properly ignore appending/prepending
-         to symlinks when NOFOLLOW_SYMLINKS is defined, to properly
-         support writing a selection to a file under the changed
-         cutting code, to have more concise error messages, to add
-         various cleanups, and so on. (David Benbennick)
-  do_writeout()
-       - Prompt the user if we're trying to save an existing file (and
-         not just a selection of it) under a different name. (DLR;
-         suggested by Jean-Philippe GuĂ©rard)
-       - Overhaul the code used to write a selection of a file to
-         temporarily set fileage and filebot to the top and bottom of
-         the selection and then call write_file(), instead of following
-         the old hackish behavior with cut_marked_segment() (which
-         won't work after the cutting code changes anyway). (David
-         Benbennick)  DLR: Tweak to not add an extra blank line to the
-         end of the written selection if the cursor is at the beginning
-         of the last line of the selection.
-  open_prevfile(), open_nextfile()
-       - For consistency with the rest of the multibuffer code, change
-         "No more open files" to "No more open file buffers". (DLR)
-  do_browser()
-       - Allow '?' to open the help browser, and readd the ability of
-         'G'/'g' to open the "Go to Directory" prompt (which was
-         erroneously removed before), for compatibility with Pico.
-         (DLR)
-- global.c:
-  shortcut_init()
-       - Allow WHEREIS_NEXT_KEY to be used in view mode. (DLR)
-- nano.c:
-  do_int_spell_fix()
-       - Add comment explaining why findnextstr() is called with
-         bracket_mode set to TRUE even though we aren't doing a bracket
-         search. (DLR)
-  do_para_operation()
-       - Convert to use the new low-level input functions. (DLR)
-  main()
-       - Remove unused variable option_index. (DLR)
-       - Fix omission of NANO_NO_KEY in the shortcut list scanning
-         code. (DLR)
-       - Remove now-unnecessary initialization of kbinput. (DLR)
-- nano.h:
-       - Comment additions and cosmetic tweaks. (DLR)
-- search.c:
-  findnextstr(), do_replace_loop()
-       - Fix potential infinite loops and other misbehavior when doing
-         beginning-of-line or end-of-line regex replacements ("^", "$",
-         and "^$").  Add a no_sameline parameter to findnextstr(), and
-         set it in the calls in do_replace_loop() when such regexes are
-         found, so that such regexes are only found once per line.
-         Also change length_change from a long to an int; size_t is
-         unsuitable due to its being unsigned. (DLR; found by Mike
-         Frysinger and DLR)  David Benbennick: Add a few minor cleanups
-         to do_replace_loop().
-- winio.c:
-  get_kbinput(), get_accepted_kbinput()
-       - Don't pass in the value of the REBIND_DELETE flag anymore.
-         Instead, handle it directly inside the functions. (DLR)
-  get_accepted_kbinput()
-       - Translate Ctrl-8 into NANO_DELETE_KEY (or NANO_BACKSPACE_KEY
-         if REBIND_DELETE is set), since it apparently is generated
-         sometimes even when keypad() is TRUE. (DLR)
-       - Translate KEY_SLEFT into NANO_BACK_KEY and KEY_SRIGHT into
-         NANO_FORWARD_KEY, since they are sometimes generated by
-         Shift-Left and Shift-Right. (DLR)
-  get_ascii_kbinput()
-       - Tweak to make it slightly more readable. (DLR)
-  get_verbatim_kbinput()
-       - Modify to take an extra parameter indicating if we should
-         interpret ASCII codes or not. (DLR)
-  get_escape_seq_kbinput()
-       - Expand to deal with more broken terminals that don't generate
-         keypad values.  Support the escape sequences for Insert,
-         Delete, Home, End, PageUp, and PageDown, [arrow key],
-         Ctrl-[arrow key], and Shift-[arrow key] when needed in the
-         Linux console, the FreeBSD console, the Hurd console, xterm,
-         rxvt, and Eterm.  Also, use get_verbatim_kbinput(), with ASCII
-         interpretation disabled, to read in the sequences. (DLR)
-  get_skip_tilde_kbinput()
-       - Removed, as it is unneeded due to the expansion of
-         get_escape_seq_kbinput(). (DLR)
-  get_mouseinput()
-       - Modify to take an extra parameter indicating if we should
-         ungetch() the key equivalents of shortcuts we click on or not.
-         (DLR)
-  nanogetstr()
-       - Properly interpret the Meta key value in misc if we hit it at
-         the statusbar prompt. (DLR)
-  do_yesno()
-       - Add a few efficiency/extensibility tweaks. (David Benbennick)
-       - Convert to use the new low-level input functions, and remove
-         two last hardcoded widths left after the above tweaks. (DLR)
-  do_replace_highlight()
-       - Display a highlighted space if the word length is zero, so
-         that we can see zero-length regexes we're replacing. (DLR;
-         suggested by Mike Frysinger)
-- configure.ac:
-       - Check for glib 2.x and then 1.2.x if we need glib. (DLR)
-- faq.html:
-       - Add question explaining how verbatim input works, as well as a
-         few minor fixes. (DLR)
-- nano.1, nanorc.5:
-       - Add nano version numbers (minus any "-cvs" suffixes). (DLR)
-- nano.spec.in:
-       - Update for the 1.3 branch of nano. (DLR)
-- NEWS:
-       - Reformat so all lines are limited to 72 columns, add a few
-         typo fixes, and make a few minor cosmetic cleanups. (DLR)
-- THANKS:
-       - Add Danilo Segan, for the Serbian translation.
-
-GNU nano 1.3.0 - 2003.10.22
-- General:
-       - Complete overhaul and abstraction of the lowest level of
-         keyboard input, mostly rewritten but incorporating a few bits
-         from the old functions and adding support for Pico's Esc Esc
-         [three-digit decimal ASCII code] input method.  New functions
-         get_kbinput(), get_verbatim_kbinput(), get_ignored_kbinput(),
-         get_accepted_kbinput(), get_ascii_kbinput(),
-         get_escape_seq_kbinput(), and get_skip_tilde_kbinput().  These
-         should work properly on FreeBSD (due to code and input
-         provided by Lee Nelson and Wouter van Hemel, respectively).
-         (DLR)
-       - The -K/--keypad command line/rcfile option has been removed,
-         and keypad() is now always TRUE.  keypad_on() in winio.c and
-         the check for _use_keypad in configure.ac have both been
-         removed. (DLR)
-       - The -d/--rebinddelete command line/rcfile option, equivalent
-         to Pico's -d, has been added.  It is intended to work around
-         the problem with Backspace/Delete confusion on some terminals,
-         notably FreeBSD; if your Backspace key acts like Delete, this
-         option will fix that. (DLR)
-       - Remove unneeded breaks at the ends of default: clauses. (DLR)
-       - Add the ability to repeat the last search without prompting
-         via Meta-W, and move the line wrapping toggle to Meta-L.  New
-         function do_research(). (Wouter van Hemel)
-       - Added the ability to move to the beginning or end of the
-         paragraph, which Pico has via ^W^W (previous paragraph)
-         and ^W^O (next paragraph).  Changes to do_justify(); new
-         functions do_para_operation(), do_para_begin(), and
-         do_para_end().  Note that the last three functions are
-         disabled if justification is disabled. (DLR)
-       - Make sure the "historylog" option isn't included at all if
-         NANO_SMALL is defined. (DLR)
-       - Source reorganization: move code to src/, docs to doc/.
-         (Jordi)
-       - Translation updates (see po/ChangeLog for details).
-       - Since SAMELINEWRAP is only used in nano.c, make it a static
-         variable in nano.c instead of a flag, and surround all
-         wrap_reset() calls with DISABLE_WRAPPING #ifdefs. (DLR)
-       - Change enum "topmidbotnone" to "topmidnone", as there's no
-         BOTTOM option anymore. (DLR)
-       - Split out the string-displaying routine from update_line()
-         into a separate function; convert the edit window, statusbar
-         display, and statusbar prompt to use it, so that they can all
-         properly display control characters and tabs; free and NULL
-         the backup search string in one place in the search code
-         instead of several; and do some other minor refactoring of
-         related display functions to simplify them.  New functions
-         mark_order() and display_string(); new macro charmove();
-         changes to actual_x(), strnlenpt(), blank_bottombars(),
-         blank_edit(), get_page_start(), edit_add(), update_line(),
-         statusbar(), and do_replace_highlight(). (David Benbennick)
-         DLR: Add minor cosmetic tweaks, add missing NANO_SMALL #ifdef
-         around the text for a backwards search in the refactored code,
-         and enclose dump_buffer() and dump_buffer_reverse() in one
-         ENABLE_DEBUG #ifdef instead of two.
-       - Convert memmove() function calls to charmove() macro calls, as
-         the former all work on char*'s. (DLR)
-       - Miscellaneous #define cleanups: only include the prototype for
-         and definition of wrap_at if wrapping and/or justification are
-         enabled, remove duplicate wrap_at prototype, and define
-         DISABLE_MOUSE if NCURSES_MOUSE_VERSION isn't defined in nano.h
-         instead of all over the code. (DLR)
-       - Autogenerate the html versions of the manpages in the
-         Makefile.am's in doc/man/, make sure that they're properly
-         installed via "make dist", and make sure that "make distcheck"
-         works too.  Also be sure to set EXTRA_DIST properly. (Jordi,
-         DLR and Jeff Bailey)
-- files.c:
-  read_file()
-       - After we've read in a file and possibly converted it from
-         DOS/Mac format, set fileformat back to 0 to prevent erroneous
-         conversion messages when we read other files in. (DLR)
-  do_browser()
-       - Some of the Pico compatibility options in the file browser
-         that don't work properly for current Pico have been removed.
-         Backspace, 'g', 'l', 'q', and 'u' are invalid.  'd' deletes
-         the highlighted file, and 'r' renames the highlighted file;
-         neither of these are implemented. (DLR)
-- global.c:
-  toggle_init()
-       - Change the message for the line wrapping toggle from "Auto
-         wrap" to "Auto line wrap", to more clearly associate it with
-         Meta-L. (DLR)
-  shortcut_init()
-       - Change multibuffer-enabled references to
-         opening/closing/toggling the previous/next loaded file to
-         toggling/switching to/closing the previous/next file buffer,
-         for consistency with other references. (DLR)
-- nano.c:
-  window_init()
-       - Set keypad() to TRUE regardless of whether PDCurses is being
-         used, as Meta-X apparently turns it off even under ncurses.
-         (DLR)
-  do_backspace()
-       - Vastly simplify, and remove dependency on page_up(). (David
-         Benbennick)
-  help_init()
-       - Document the support for Esc Esc [character]'s being
-         interpreted as Ctrl-[character], and the support for Pico's
-         Esc Esc [three-digit decimal ASCII code] input method. (DLR)
-  do_mark()
-       - Toggle MARK_ISSET at the beginning of the function instead of
-         setting it in one place and unsetting it in another place.
-         (David Benbennick)
-  do_suspend()
-       - Use handle_hupterm() to handle SIGHUP and SIGTERM so we can
-         properly deal with them while nano is suspended. (DLR; problem
-         found by David Benbennick)
-  abcd()
-       - Removed, as it's unneeded due to the low-level input overhaul.
-         (DLR)
-- nano.h:
-       - Define KEY_RESIZE and KEY_SUSPEND as -1 when slang is used, as
-         slang has no equivalent of either.  When nano is compiled with
-         slang support, resizing the window doesn't generate
-         KEY_RESIZE, and pressing Ctrl-Z to suspend nano at the Linux
-         console with keypad(TRUE) generates Ctrl-Z instead of
-         KEY_SUSPEND, both unlike ncurses. (DLR)
-       - Define KEY_RESIZE as -1 if it isn't defined, as it isn't in
-         the curses library included with SunOS 5.7-5.9.  Also define
-         KEY_SUSPEND as -1 if it isn't defined, in case it isn't in
-         more than just Slang. (DLR)
-       - Define all potentially missing keys as different negative
-         values (ERR is -1, so use -2, -3, etc.) so as to avoid having
-         duplicate case values when keys are missing. (DLR)
-- move.c:
-       - Remove unneeded inclusion of stdio.h, make various cleanups,
-         and preserve the cursor's coordinates when paging up and down.
-         (David Benbennick)  DLR: Readd the ability to behave the old
-         way while paging, make it so the new behavior is only used in
-         smooth-scrolling mode, and modify page_down() to always go
-         down a full page (even when there's less than one page of text
-         left) for consistency.
-  page_up()
-       - Removed due to rewrite of movement functions. (David
-         Benbennick)
-- proto.h:
-       - Surround the do_prev_word() and do_next_word() prototypes with
-         NANO_SMALL #ifdefs, since the actual functions aren't included
-         in tiny mode. (DLR)
-- rcfile.c:
-  parse_colors()
-       - Generate an error if we try to use a bright background color
-         in a nanorc file. (DLR; found by Brand Huntsman)
-       - Make sure all rcfile error messages are capitalized, for
-         consistency. (DLR)
-- winio.c:
-  get_verbatim_kbinput()
-       - Fix a silly memory corruption bug that would occur when trying
-         to read a sequence of more than one key verbatim. (DLR)
-  get_accepted_kbinput()
-         Handle Ctrl-{ to Ctrl-~ correctly, and drop support for
-         converting Esc ` to Esc Space, since making Meta-[key]
-         correspond to Ctrl-[key] in all cases is inconsistent due to
-         the different natures of Contol and Meta key sequences. (DLR)
-  do_first_line()
-       - Call edit_update() with TOP instead of CENTER; both do the
-         same thing, but it works faster with TOP. (DLR)
-  nanogetstr()
-       - Don't let the user type in ASCII 127 at the statusbar prompt.
-         (DLR)
-  titlebar()
-       - Fix problem with the available space for a filename on the
-         titlebar's being short by one. (DLR)
-  edit_add()
-       - Fix problems with the marking highlight's being drawn
-         improperly in some cases. (DLR)
-  edit_update()
-       - Tweak for efficiency and remove the fix_editbot() call. (David
-         Benbennick)
-  do_credits()
-       - Update the copyright years to "1999-2003", to match those
-         given in the rest of the code. (DLR)
-- configure.ac:
-       - Change instances of "GNU Nano" to "GNU nano" for consistency.
-         (DLR)
-- nano.1, nanorc.5, nano.texi:
-       - Change all instances of $SYSCONFDIR to SYSCONFDIR, since
-         SYSCONFDIR is set at compile time and can't be overridden by
-         setting SYSCONFDIR in the environment. (David Benbennick)
-       - Remove -K/--keypad, and document -d/--rebinddelete. (DLR)
-       - Document the support for Esc Esc [character]'s being
-         interpreted as Ctrl-[character], and the support for Pico's
-         Esc Esc [three-digit decimal ASCII code] input method, if
-         applicable. (DLR)
-       - French translation by Jean-Philippe GuĂ©rard.
-- nano.1.html, nanorc.5.html:
-       - Regenerated. (DLR)
-- nanorc.sample:
-       - Remove duplicate "historylog" entry, remove "keypad" entry,
-         and add "rebinddelete" entry. (DLR)
-       - Update and add comments to the regexes for nanorc files.
-         (Brand Huntsman)
-       - Fix an attempt at a bright background color in the sample Java
-         source regexes. (DLR)
-       - Since tabs are shown as groups of spaces, they are interpreted
-         as such when parsed by color regexes.  Accordingly, simplify
-         regexes that handle both spaces and tabs to just handle
-         spaces, as the results are the same. (DLR)
-- AUTHORS:
-       - Updated to show 1.2/1.3 maintainers.
-
-- 1.3 tree forks here
-
-GNU nano 1.2.2 - 2003.08.11
-- General:
-       - Translation updates (see po/ChangeLog for details).
-       - Change uncast nrealloc()s assigned to char pointers/arrays to
-         charealloc()s, and cast all other nrealloc()s and all
-         nmalloc()s. (David Benbennick and DLR)
-       - Remove gettext marks from all debug messages. Good for developers,
-         better for translators. (Jordi)
-       - Add translator comments on strings that should be short, like in
-         status bar strings, etc. (Jordi)
-- utils.c:
-  align()
-       - Tweak to avoid a potential problem when strp is non-NULL but
-         *strp is NULL. (David Benbennick)
-  nstricmp(), nstrnicmp()
-       - Add these functions, equivalent to strcasecmp() and
-         strncasecmp(), and convert nano to use them when strcasecmp()
-         and/or strncasecmp() are unavailable. (DLR)
-- winio.c:
-  do_help()
-       - Get rid of keypad_on() call for bottomwin, which should not be
-         needed (DLR).
-  nanogetstr()
-       - Fix problem with search history where a temporary string
-         added at the bottom of the history (but which was not in the
-         history) would not be preserved after scrolling down to the
-         blank bottom entry and then scrolling back up. (DLR)
-       - Fix problem where pressing down,up,down does not blank the
-         search prompt but keeps the previous search (DLR).
-       - Handle Alt-[-F and H (DLR, fixed home and end not working with
-         -K in statusbar).
-- configure.ac:
-       - Change the program used to detect a broken regexec() function
-         so that it works properly, using information found at
-         http://sources.redhat.com/ml/libc-hacker/2001-06/msg00015.html.
-         (DLR)
-- nanorc.sample:
-       - Revised comment explaining the non-escaping of quotes to cover
-         non-escaping of all shell-interpreted characters. (DLR)
-       - Fixes to the descriptions and examples in the comments, and
-         changes to some default values. (David Benbennick and DLR)
-       - Add regexes for Perl syntax. (Richard Smith, tweaked for
-         greater efficiency by David Benbennick)
-       - Add regexes for Java source syntax. (David Benbennick)
-         Regex for C++-style comments (colored the same way as C-style
-         comments) added by DLR.
-- THANKS:
-       - Added Laurentiu Buzdugan, for Romanian.
-       - Added Geir Helland, for Norwegian BokmĂĄl.
-- TODO:
-       - Move the items for nano 1.2 to the "Old Requests" section,
-         and mark color syntax highlighting as done. (David Benbennick)
-- faq.html:
-       - Added question about nano's not showing color when it's
-         compiled with color support. (DLR; suggested by Jordi)
-- nano.1, nanorc.5:
-       - Formatting improvements by Jean-Philippe GuĂ©rard.
-       - Minor fixes by DLR.
-- nano.1.html, nanorc.5.html:
-       - Regenerated from nano.1 and nanorc.5. (DLR)
-
-GNU nano 1.2.1 - 2003.04.19
-- General:
-       - Translation updates (see po/ChangeLog for details).
-       - Work around broken regexec() on some systems that segfaults
-         when passed an empty string.  This is known to be in glibc
-         2.2.3.  New function regexec_safe(). (David Benbennick)
-       - Fix various bugs with search string history logging: don't
-         print a broken error message and freeze if ~/.nano_history is
-         unreadable, actually show an error message in save_history()
-         if ~/.nano_history is unwritable, and prevent ~/.nano_history
-         from being completely overwritten by save_history() if it's
-         unreadable but writable. (David Benbennick)
-       - Only unset KEEP_CUTBUFFER in main() when we do something other
-         than cut text in the main input loop, instead of unsetting it
-         all over the place (which, as written, didn't handle cases
-         like a cut followed by M-Space properly).  Also, instead of
-         checking for keyhandled's not being set inside the for loops,
-         do it in if blocks surrounding the for loops to increase
-         efficiency. (David Benbennick)  DLR: Also unset KEEP_CUTBUFFER
-         if we hit a shortcut key other than the one for cutting text.
-       - Make it so a marked cut immediately followed by an unmarked
-         cut tacks the latter's text onto the end of the former's text
-         instead of putting it on a new line, as Pico does. (DLR)
-       - Convert instances of "(char *)nrealloc()" to the macro
-         charealloc(), which does the same thing. (DLR)
-       - Change justify_mode from a boolean int to a flag (DLR).
-- cut.c:
-  do_cut_text()
-       - Tweak where KEEP_CUTBUFFER is set so that a marked cut
-         immediately followed by an unmarked cut preserves the
-         cutbuffer between the two. (David Benbennick)  DLR: Also
-         properly set KEEP_CUTBUFFER in tiny mode.
-  do_uncut_text()
-       - If we're about to uncut on the magicline, always make a new
-         magicline in advance, as Pico does. (DLR)
-- global.c:
-  shortcut_init()
-       - Simplify the #ifdef used to enable file insertion in view mode
-         if multibuffer support has been compiled in. (DLR)
-- nano.c:
-  justify_format()
-       - If we shave spaces off the end of the line, make sure totsize
-         is properly updated. (DLR; much simplified by David
-         Benbennick)
-- nano.h:
-       - Simplify #ifdefs relating to HAVE_STRCASECMP and
-         HAVE_STRNCASECMP. (David Benbennick)
-- search.c:
-  goto_abort()
-       - Removed, with all instances replaced with display_main_list(),
-         since with the removal of all the scattered calls to
-         SET(KEEP_CUTBUFFER), that function was all that was left of
-         it. (DLR)
-  do_find_bracket()
-       - If a matching bracket wasn't found, call update_line() after
-         setting current and current_x back to their original values,
-         in case current_x's original value is greater than the width
-         of the screen. (DLR)
-- winio.c:
-  nanogetstr()
-       - Remove a few unnecessary breaks occurring immediately after
-         gotos, and properly interpret the up and down arrow keys when
-         ALT_KEYPAD is set. (DLR)
-- configure.ac:
-       - Enable autodetection of broken regexec(). (DLR) Re-added
-         regex.h check to ensure compile under Debian w/autoconf 1.6.
-- README:
-       - Update obsolete 1.1.x information.
-- TODO:
-       - Fix typo. (David Benbennick)
-- faq.html:
-       - Update RPM links for nano 1.2.x. (DLR)
-
-GNU nano 1.2.0 - 2003.02.19
-- General:
-       - Translation updates (see po/ChangeLog for details).
-- files.c:
-  read_file()
-       - If the file we're loading has already been detected as a DOS
-         or Mac formatted file, don't turn on NOCONVERT if we find
-         binary chars in it.  This is because if it's detected as
-         DOS/Mac format, at least one line has already been converted,
-         so setting NOCONVERT (which is supposed to signal that none
-         of the file should be converted) makes no sense. (DLR)
-- nano.c:
-  justify_format()
-       - Fix ugly behavior when wrapping spaces at the end of long
-         words (David Benbennick).
-- nanorc.5:
-       - Fix formatting error and update copyright year (Jordi).
-       - Several enhancements (David Benbennick).
-
-GNU nano 1.1.99pre3 - 2003.02.13
-- General:
-       - Translation updates (see po/ChangeLog for details).
-       - Fix globals and externs such that nano will compile with
-         DISABLE_SPELLER (David Benbennick).
-       - Fix unreasonable fill values by wrapping at length 0 instead
-         of erroring out, and don't start up if the window size is too
-         small but fill is set reasonably.  Changes to
-         nano.c:global_init(), window_init(), and handle_sigwinch().
-         New macro MIN_EDITOR_COLS replaces MIN_FILL_LENGTH
-         (David Benbennick).
-       - Change ngettext macro to P_(), to avoid a clash with the
-         reserved C __ identifier (Jordi).
-       - Memory leak fixes for files.c:do_insertfile(),do_browser(),
-         nano.c:do_spell(), and search.c:do_replace() (David
-         Benbennick).
-       - Remove do_preserve_msg, as using -p still gives Pico-style
-         string behavior, so an annoying message every invocation is
-         probably unneeded (all cheer).
-       - Change resetpos function to be global (now called
-         resetstatuspos.  Fixes annoying but small odd problem with
-         cursor placement when inserting a file.  This needs to be done
-         better in 1.3 (originally by David Lawrence Ramsey).  Added
-         this issue to TODO.
-- files.c:
-  cwd_tab_completion()
-       - Memory leak fix (David Benbennick).
-  input_tab()
-       - Fix assumption that matches is null terminated (David
-         Benbennick).
-  load_history()
-       - Fix segfault on loading huge strings from history file
-         (David Benbennick).
-  load_history(), save_history()
-       - Changed to look at $HOME before getpwuid(geteuid()), see
-         details in comment for rcfile.c:do_rcfile().
-  real_dir_from_tilde()
-       - Change check for the running user's home dir to use
-         getpwuid(geteuid()) rather than a getpwent() loop
-         (suggested by Jordi).
-- nano.c:
-  breakable()
-       - Fix incorrect return value on short lines (David Benbennick).
-  do_help()
-       - Fix line lengths not being computed properly, causes display
-         glitches most noticeable with < 20 rows.  New function
-         nano.c:line_len(). (David Benbennick).
-  do_justify()
-       - Add regfree() to quote regex (David Benbennick).
-       - Only copy previous indent if AUTOINDENT is set (David
-         Benbennick).
-  do_suspend()
-       - Fix untranslated message (David Benbennick).
-  do_wrap()
-       - Fix isspace() call to operate on int.
-  help_init()
-       - Fix crashing in do_help when COLS < 23 (David Benbennick).
-  main()
-       - Fix nano not compiling with ENABLE_RCFILE and DISABLE_TABCOMP
-         (David Benbennick).
-       - Silence annoying compiler messages about clobbering and
-         uninitialized variables by moving variable inits to the top
-         of main() and re-initializing them after the sigsetjmp().
-- rcfile.c:
-  colortoint()
-       - Don't bomb after invalid color and print bad color name
-         (David Benbennick).
-  colortoint, parse_colors()
-       - Don't add strings with invalid fg colors at all.
-  do_rcfile()
-       - Revert (somewhat) previous behavior of looking at
-         $HOME, and only run getpw* if it is NULL.  Most *nix programs
-         seem to only care about $HOME, and at the user-level
-         getpw* may not be reliable (and its slower).
-- search.c:
-  do_gotoline()
-       - Only goto_abort() if we *didnt* abort the command, making
-         the function seem horribly misnamed ;-) (David Benbennick).
-- winio.c:
-  browser_init(), striponedir(), do_browse_from()
-       - Various memory leak fixes (David Benbennick).
-  do_yesno(), do_help()
-       - Add defined(NCURSES_MOUSE_VERSION) to macro so systems that
-         don't understand MEVENT will compile.
-  nanogetstr()
-       - Remove unnecessary reset of x since it is now handled
-         elsewhere (David Lawrence Ramsey).
-  statusq()
-       - Always blank the statusbar on exit (David Benbennick).
-- nano.1, nano.1.html:
-       - Add initialization file comments, change some options from
-         bracketed to underlined to emphasize that they are not
-         optional.
-       - Add SEE ALSO section (Jordi).
-       - Moved nano.1 color and syntax sections to nanorc, pointed
-         nano.1 to nanorc.5 for initialization file.  Changed
-         nanorc.5 variables to be italics to match nano.1.  Added
-         nanorc.5.html to CVS tree.
-- nanorc.5:
-       - Add nanorc manpage, with descriptions of all available commands
-         (Jordi).
-- nanorc.sample:
-       - Make nanorc entry less tolerant of invalid colors.
-- nano.spec.in:
-       - Change default flags to --enable-all.
-- THANKS:
-       - Add Kalle Kivimaa and Kalle Olavi Niemitalo, for Finnish (Jordi).
-- UPGRADE:
-       - Add upgrading information document for 1.0 users (Jordi).
-
-GNU nano 1.1.99pre2 - 2003.02.03
-- General:
-       - Changed some translatable debug messages to use %s
-         instead of the function name, and removed gettext from
-         two strings that had no actual words in them that
-         should be translated.  Suggested originally by
-         Christian Rose.
-       - Fix subexpression replacement to work consistently.
-         Affects search.c:replace_regexp() and
-         utils.c:strstrwrapper() (David Benbennick).
-       - Fix cursor position being saved when escaping out
-         of nanogetstr with keys like ^Y and ^V.  New arg
-         resetpos to nanogetstr(), added static int
-         resetpos in statusq() (bug found by DLR).
-       - Fix constant curos updates from obliterating other
-         system messages, and fix statusbar message length.
-         Affects files.c:load_open_file(), nano.c:main(),
-         search.c:findnextstr(), winio.c:statusbar() and
-         do_cursorpos() (David Benbennick).
-       - Fix nano crashing when searching/replacing an invalid
-         regex (try "^*").  Changed regexp_init() to return
-         1 or 0 based on regcomp()'s return value and search_init
-         to exit with an error message (sorry Jordi!).  Added
-         another check when using last_search instead of answer.
-       - Move regcomp into rcfile.c rather than each display refresh
-         of winio.c.  New function rcfile.c:nregcomp().
-         This fixes much of nano's resource hogging behavior
-         in syntax higlighting. (David Benbennick).
-       - Fix justify failing for certain lines, new function
-         nano.c:breakable() (David Benbennick).
-       - Fix screen getting trashed on signals nano can catch
-         (TERM and HUP).  New global variable curses_ended,
-         changes to winio.c:statusbar() and nano.c:die()
-         (David Benbennick).
-- cut.c:
-  do_cut_text()
-       - Fix incorrect cursor location when cutting long lines
-         (David Benbennick).
-- files.c:
-       - Set a default PATH_MAX for getcwd() etc calls (David
-         Benbennick).
-  do_browse_from()
-       - Fix path checking to fix bad paths, escaping
-         the operating directory, new function readable_dir() (David
-         Benbennick).
-  do_browser()
-       - Fix incorrect path check for check_operating_dir()
-         (David Benbennick).
-       - Fix goto directory operating dir check and tilde expansion
-         (David Benbennick).
-       - Even more checks and operating dir fixes (David Benbennick).
-  do_insertfile()
-       - Add some more checks and fix recursion when toggling
-         multibuffer (David Benbennick).
-  open_file()
-       - Fix FD leak with file load error (David Benbennick).
-  add_open_file()
-       - Revert the fix for the supposed minor logic error from before;
-         it was keeping some updates from happening when they should,
-         which was leading to segfaults with both multibuffer and view
-         mode on. (DLR; found by David Benbennick)
-  save_history()
-       - Fix nrealloc return value being ignored (David Benbennick).
-       - Fix off-by-one bug causing write to unallocated memory
-         (David Benbennick).
-- global.c:
-  thanks_for_all_the_fish()
-       - Fix compiling with DEBUG and multibuffer (David Benbennick).
-- nano.c:
-  do_char()
-       - Remove unneeded check_statblank() (David Benbennick).
-  do_int_spell_fix(), do_int_speller()
-       - Fix crashes with mark position, current_x position,
-         and edit_update args (David Benbennick).
-  do_justify()
-       - Unset KEEP_CUTBUFFER so nano won't crash with subsequent
-         ^K cuts and justifies (David Benbennick).
-  do_mouse()
-       - Fix the mouse code to work with lines longer than COLS and
-         with the proper positioning, including special characters
-         (David Benbennick).
-  do_preserve_msg():
-       - Unsplit error message into a single fprintf call (Jordi).
-  main()
-       - Call load_file with arg 0 for insert, as we aren't really
-         doing an insert, allows new_file() to run if we open a
-         non-file at startup.
-  usage()
-       - Remove gettext markings from -p/--preserve (Jordi).
-       - Revamp -H option message to fit in 80 column terminal.
-  window_init()
-       - Fix leaking *WINDOWs (no pun intended) (David Benbennick).
-- search.c:
-  do_search(), do_replace_loop()
-       - Fix edit_update call to use CENTER instead of current_x
-         (related to David Benbennick's fixes for spelling).
-  do_replace_loop()
-       - Fix various bugs having to do with replace string length
-         and positioning (David Benbennick).
-  edit_refresh()
-       - Fix cursor being above as well as below the current screen
-         (David Benbennick).
-- winio.c:
-  bottombars()
-       - Change strcpy of gettext() "Up" string to strncpy of max
-         width 8, to stop stupid strcpy crash.
-  do_yesno()
-       - Fix mouse interaction bugs with yes/no prompt (David Benbennick).
-- nanorc.sample:
-       - Change comment to say magenta instead of purple.
-
-GNU nano 1.1.99pre1 - 2003.01.17
-- General:
-       - New date format for NEWS and ChangeLog.
-       - Completely removed PICO_MODE, as with the search/replace
-         history patch we should have the extended functionality we can
-         without being incompatible with Pico.  Removed all code for
-         different search/replace string editing and alternate shortcut
-         list.  I'm sure I won't even have to ask for feedback on this
-         one :-)
-       - Add in Pico's -p flag, (-p, --preserve).  To preserve the XON
-         and XOFF keys (^Q and ^S).  Add warning if we invoke -p and
-         add checks for using --preserve (to skip warning) and --pico
-         (to force showing it).   New flag PRESERVE, function
-         do_preserve_msg(), changes to main(), signal_init().
-       - Search history and replace history up/down cursor arrows,
-         w/history tab completion, not available w/NANO_SMALL.  Changes
-         to statusq(), others (Ken Tyler).  Added shortcut to
-         search/replace shortcuts so people will know it's there,
-         forced KEY_UP and KEY_DOWN defs in nano.h (Chris, in case
-         blame needs to be placed later).  Minor fixes by DLR: allow ^P
-         and ^N as alternatives to the up and down arrows, make sure
-         the "Up" shortcut is displayed properly in the help menu,
-         remove a few bits of unneeded and/or warning-generating code,
-         and fix some missing statusq() prompts with --enable-tiny.
-       - Added search/replace history log.  Flag -H, --historylog.
-         Flags HISTORY_CHANGED and HISTORYLOG (only room for one more
-         flag!), added entries in nanorc.sample, new functions
-         log_history and save_history (Ken Tyler).
-       - Translation updates (see po/ChangeLog for details).
-       - Forward-ported Chris' --disable-wrapping-as-root option from
-         1.0.9.  Per Jordi's suggestions, have it override
-         $SYSCONFDIR/nanorc but not ~/.nanorc. (DLR)
-       - Change all references to /etc/nanorc in the documentation to
-         $SYSCONFDIR/nanorc. (DLR)
-       - Minor cosmetic tweaks to the ngettext() macro, and fix to
-         properly detect systems lacking ngettext() and correctly
-         compile on them; the previous fix didn't work. (DLR)
-       - Fix problems with some code sections' not being #ifdef'ed out
-         when they should be, or being #ifdef'ed out improperly. (David
-         Benbennick and DLR)
-       - Change FOLLOW_SYMLINKS to NOFOLLOW_SYMLINKS, and rework the
-         associated logic accordingly, throughout the code. (David
-         Benbennick)
-       - Rework #ifdefs to not include mouse_init() at all if
-         DISABLE_MOUSE is defined or NCURSES_MOUSE_VERSION isn't. (DLR)
-       - For consistency, change many references of (!x) to (x == NULL)
-         and (x) to (x != NULL). (DLR)
-       - Define KEY_IC properly (and KEY_DC more portably) when slang
-         support is enabled, and remove the hack to work around the
-         former's not being defined. (David Benbennick and DLR)
-       - Miscellaneous tweaks to update_color() calls, to make sure
-         they're called at the right times and that refreshes are done
-         afterwards only when needed. (David Benbennick)
-       - Renamed [have_]past_editbuff [have_]search_offscreen. (DLR)
-       - Add the "preserve" option to the nanorc file, to match
-         nanorc.sample. (DLR)
-       - Fixed awful scrolling in do_int_speller.  Problem was
-         findnextstr() calling edit_update(), though screen updating
-         is not its business.  Added checks in do_search() and
-         do_replace_loop() to do the checks.  It really should not be
-         done here, as some function in winio.c should handle this,
-         but I can't seem to find a good place to put this check.
-       - Updated all copyright notices to say 2003 rather than 2002, as
-         nearly all the source files have been worked on this year
-         (DLR).
-- configure.ac:
-       - Added tr and eu to ALL_LINGUAS (Jordi).
-       - Fix now inaccurate description of --enable-tiny's effects; it
-         no longer disables NLS support. (DLR)
-       - Fix typo. (David Benbennick)
-       - Check for strcasecmp() and strncasecmp(), since they are
-         apparently only standard under BSD. (DLR)
-       - Small cleanups. Add copyright header, add autopoint support and
-         define bug report address and full package name in AC_INIT. Move
-         ALL_LINGUAS to po/LINGUAS, recommended place for gettext 0.11.
-       - Added --enable-all option to compile in all the extra stuff
-         we'd normally need extra flags for.
-- color.c:
-  update_color():
-       - Remove an unneeded edit_refresh() call after do_colorinit().
-         (David Benbennick)
-- cut.c:
-  do_cut_text()
-       - Fix a memory corruption problem caused by accessing edittop
-         after it was freed but before it was reset to a sane value
-         from current. (David Benbennick)
-  do_uncut_text()
-       - If uncutting more than one line of unmarked text at editbot,
-         don't center the screen, since Pico doesn't. (DLR)
-       - If uncutting previously unmarked text, uncut to end if we're
-         not at the beginning of the line, and set placewewant to 0 if
-         we are.  This matches Pico's behavior. (DLR)
-- files.c:
-  load_file()
-       - Remove unneeded wmove() call. (David Benbennick)
-  read_line()
-       - Miscellaneous cleanups. (David Benbennick)
-  open_file()
-       - If we're in multibuffer mode and there's an error opening the
-         file in read-only mode, display the error message on the
-         statusbar regardless of the value of quiet. (DLR)
-  read_file()
-       - Miscellaneous cleanups. (David Benbennick)
-       - Fix len's being off by one when reading in Mac-format files,
-         exposed by one of David Benbennick's cleanups. (DLR)
-       - If NO_CONVERT isn't set when we first enter, and it gets set
-         while reading in the file, unset it again afterwards. (DLR)
-  do_insertfile()
-       - If we're in multibuffer mode and there's an error opening the
-         file that we're trying to insert, close the new buffer that we
-         made to hold it and reload the buffer we had open before.
-         (DLR)
-  add_open_file()
-       - Fix minor logic error when determining when to resave fileage
-         and filebot. (DLR)
-  load_open_file()
-       - If switching between files when CONSTUPDATE is set, only force
-         a cursor position display update if DISABLE_CURPOS isn't set.
-         This will ensure that the "Switching to [file]" messages are
-         shown. (DLR)
-  write_file()
-       - Change lineswritten from a long to an int, to match
-         filestruct->lineno. (DLR; mismatch found by David Benbennick)
-  real_dir_from_tilde()
-       - Since this is needed for proper interpretation of paths
-         containing tildes and not just for tab completion, include and
-         use it regardless of whether tab completion is disabled.
-         (David Benbennick and DLR)
-  input_tab()
-       - Variable name change: matchBuf -> matchbuf. (DLR)
-  diralphasort()
-       - Remove the HAVE_STRCASECMP #ifdef block; see the changes to
-         configure.ac and nano.h for why. (DLR)
-- global.c:
-  thanks_for_all_the_fish()
-       - Miscellaneous cleanups. (David Benbennick)
-- move.c:
-  do_page_down()
-       - If there's a page or less of text, do an edit_update() if the
-         mark is on; otherwise, the highlight won't be displayed. (DLR)
-- nano.c:
-       - Added free_history() list calls clean up, added init of list
-         headers, and modified statusq() calls (Ken Tyler).
-  do_prev_word()
-       - Make the assert match that in do_next_word(). (DLR)
-  do_enter()
-       - If smooth scrolling is on, and Enter is pressed on the
-         magicline, don't center the screen. (DLR)
-  do_justify()
-       - Fix memory corruption problem triggered when edittop and
-         current->next pointed to the same value and current->next was
-         destroyed during justification. (DLR)
-       - Center the screen when justification moves the cursor entirely
-         off the bottom of the screen, instead of when it moves the
-         cursor near the bottom of the screen, to more closely match
-         Pico's behavior. (DLR)
-  version()
-       - Remove obsolete reference to --enable-undo. (David Benbennick)
-       - Move up check for --disable-nls as it's independent of
-         --enable-tiny now (DLR).
-  do_int_speller()
-       - Make internal spell program use sort -f and uniq to create a
-         less redundant word list.  [The only reason this is going in
-         during feature freeze is because the int speller is useless as
-         is and should either be improved or removed.  I chose
-         improved].
-       - Change all child error checks to use one goto (gasp!) called
-         close_pipes_and_exit, so we don't leak FDs.
-       - Fix FD leaks which occur outside of errors (David Benbennick).
-  do_int_speller(), do_alt_speller()
-       - Programs now return char *, NULL for successful completion,
-         otherwise the error string to display.  This allows us to give
-         more useful feedback to the user when spell checking fails.
-  ABCD()
-       - Renamed abcd(). (DLR)
-  main()
-       - Remove an unneeded do_colorinit() call, do major cleanups, and
-         allow loading of multiple files on the command line when
-         multibuffers are used. (David Benbennick)
-- nano.h:
-       - Make sure NO_RCFILE and COLOR_SYNTAX aren't set to the same
-         value. (DLR; discovered by Ken Tyler)
-       - If strcasecmp() and/or strncasecmp() aren't available, use
-         strcmp() and/or strncmp() instead. (DLR)
-- proto.h:
-       - Fix the #ifdef block for DISABLE_TABCOMP's being undefined
-         so that functions only used with tab completion are properly
-         #ifdef'ed out. (DLR)
-- search.c:
-  do_gotoline()
-       - Don't call blank_statusbar_refresh() so if there's an error
-         returned in multibuffer mode, we can actually see it.
-  do_search()
-       - Remove erroneously introduced near-duplicate call to
-         update_history(). (DLR)
-  print_replaced()
-       - Remove and replace with an equivalent ngettext() call. (DLR)
-  do_replace_loop()
-       - Fix bug where if text on the magicline was replaced (which can
-         be done via a regexp replace of "^$" with something other than
-         ""), a new magicline wouldn't be created. (DLR)
-       - Remove check for answer being a blank string, presumed to be
-         a PICO_MODE holdover, but it stops us from doing a blank
-         spelling replacement.
-  do_replace()
-       - For greater Pico compatibility, when an attempt to replace a
-         string results in 0 replacements due to the string's not being
-         found, display "[string] not found" instead of "Replaced 0
-         occurrences". (DLR)
-- utils.c:
-  is_cntrl_char()
-       - Rework to fix a problem with displaying certain high-bit
-         characters. (David Benbennick; reported by Andrzej Marecki)
-  align()
-       - Don't just assert that the string passed in isn't NULL; check
-         that it isn't and only do the alignment when it isn't. (David
-         Benbennick)
-  nmalloc(), nrealloc()
-       - If the size passed to nmalloc() or nrealloc() is zero, don't
-         die with an erroneous out-of-memory error.  Also, change
-         their dying messages to "nano is out of memory!". (David
-         Benbennick)
-  charalloc()
-       - Removed and redefined as a macro that calls nmalloc(). (David
-         Benbennick)
-- winio.c:
-  nanogetstr()
-       - Tweak to make the cursor stay in the same place if we hit a
-         prompt-changing toggle while it's in the middle of the string.
-         Reset it to -1 (so next time we come here, it'll be set to the
-         end of the string) if we leave the prompt via Enter or Cancel.
-         Also fix minor problem with search history where the current
-         search item could be at the bottom of the history twice in a
-         row under certain conditions. (DLR)
-       - Remove parens in NANO_CONTROL_I check so nano won't complain if
-         just NANO_SMALL is defined (David Benbennick).
-  edit_refresh()
-       - Miscellaneous cleanups that fix a bug where the screen
-         isn't updated after uncutting chunks of upwardly marked cut
-         text that are over a page in length. (David Benbennick)
-  do_credits()
-       - Add David Benbennick to credits. (DLR)
-- nanorc.sample:
-       - Added comment to explain the non-escaping of quotes in
-         color regexes, based on info provided by David Benbennick.
-         (DLR)
-       - Added some examples for groff and the nanorc courtesy of
-         Robert D. Goulding.
-       - Added double hash marks to comment lines, so people who
-         uncomment the beginning of every line won't get syntax errors.
-- faq.html:
-       - Miscellaneous fixes and updates for typos, broken links, and
-         slashes at the end of directories.  It is now fully compliant
-         with HTML 4.01 Transitional. (DLR and David Benbennick)
-       - Added docs about the new unified search string interface and
-         search histories, and added --enable-all into configure docs.
-- nano.texi:
-       - Typo fixes and updates. (David Benbennick)
-       - Updates for the most recent and not so recent changes.
-- nano.1, nano.1.html
-       - Updated for the --preserve and --historylog options.
-- TODO
-       - Added some wishlist stuff.
-- THANKS:
-       - Added Doruk Fisek and Peio Ziarsolo (Jordi).
-
-GNU nano 1.1.12 - 10/24/2002
-- General:
-       - Translation updates (see po/ChangeLog for details).
-       - Remove malloc.h, as it's unneeded and just causes annoyances on
-         *BSD systems.  Added stdlib.h to global.c.
-       - Added Meta-Y toggle to disable/enable color syntax highlighting
-         completely.  This may eventually be per-buffer, but that's too
-         complicated for a feature freeze.
-       - Disable VSTOP keystroke.  Stops people accidentally locking up
-         nano (suggested by David Benbennick).
-       - Pluralize messages with ngettext() where needed. (David
-         Benbennick)  Tweaked to compile on systems lacking ngettext()
-         by DLR (problem found by Ken Tyler).
-       - Update nano.1 and nano.1.html to show that nano now does an
-         emergency save on receiving SIGHUP or SIGTERM. (DLR)
-       - Don't include "nowrap" in the long options if
-         DISABLE_WRAPPING is defined. (DLR)
-- files.c:
-  read_file()
-       - Minor efficiency fixes, some of which fit in with the change
-         to ngettext() usage mentioned above. (David Benbennick)
-  do_browser()
-       - Make sure the value of path is mallocstrcpy()ed into retval
-         and not just assigned to it, to avoid memory corruption
-         problems. (DLR)
-- nano.c:
-  version()
-       - If ENABLE_NLS isn't defined, display "--disable-nls"
-         (suggested by Ken Tyler). (DLR)
-  justify_format()
-       - Make sure the double space maintained after sentence-ending
-         punctuation is done when that punctuation is immediately
-         followed by a bracket-type character, so justifying e.g.
-         sentences in parentheses works properly. (David Benbennick)
-  handle_hup()
-       - Renamed handle_hupterm() to show that it now handles SIGTERM
-         as well as SIGHUP. (DLR)
-  signal_init()
-       - Do an emergency save on receiving either SIGHUP or SIGTERM,
-         not just SIGHUP. (David Benbennick)
-  main()
-       - Fix a problem where control key commands were printed
-         literally instead of interpreted after a failed search of a
-         one-line file. (David Benbennick)
-- proto.h:
-  handle_hup()
-       - Renamed handle_hupterm(); see above for why. (DLR)
-- winio.c:
-  edit_add()
-       - Fix a potential infinite loop occurring with certain
-         zero-length regexes. (David Benbennick)
-
-GNU nano 1.1.11 - 10/01/2002
-- General:
-       - Translation updates (see po/ChangeLog for details).
-       - Upgraded to gettext 0.11.5 (Jordi).
-       - Updated nano.1, nano.1.html, and nano.texi to fix an
-         inaccuracy in the description of -Q/--quotestr. (DLR)
-       - Set REG_EXTENDED in all regcomp() calls. (DLR)
-       - Minor cosmetic code cleanups. (DLR)
-       - Changed do_insertfile to (a) report multibuffer status at the
-         prompt and allowing it to be toggled, taking into account the
-         need to keep the translatable strings, and (b) added a
-         variable inspath to keep track of what the string was before
-         toggling.  I'm sure there's bugs, have at it.
-       - Make sure all functions have prototypes in proto.h, and swap
-         some functions around to put similar functions closer
-         together (for this, rename clear_bottombars() to
-         blank_bottombars()). (DLR; suggested by David Benbennick)
-       - More changes of char *'s to const char *'s when possible.
-         (David Benbennick)
-       - Fix various minor memory leaks in files.c. (David Benbennick)
-       - Fix minor problems with the operating directory code: set the
-         operating directory properly if it's specified only in a
-         nanorc file, and handle an operating directory of "/"
-         properly.  New function init_operating_dir() to handle
-         setting it both on the command line and in the nanorc file.
-         (David Benbennick)
-       - Major rewrite of color and screen update routines to fix
-         minor bugs and increase efficiency.  New function
-         set_colorpairs() for the former. (David Benbennick)
-- configure.ac:
-       - Added pt_BR to ALL_LINGUAS (Jordi).
-       - Changed --enable-color warning to be slightly less severe.
-       - Put the configure options in more or less alphabetical order,
-         and remove --enable-undo, since it doesn't do anything. (DLR)
-- files.c:
-  open_file()
-       - String change: "File "x" is a directory" -> ""x" is a
-         directory". (Jordi)
-  do_insertfile()
-       - Disallow multibuffer toggling at the "Insert File" prompt if
-         we're in both view and multibuffer mode, so as to keep proper
-         integration between the two, and make sure the toggle
-         actually works all the time otherwise.  Also, make sure
-         TOGGLE_LOAD_KEY isn't referenced when NANO_SMALL and
-         ENABLE_MULTIBUFFER are both defined. (DLR)
-  open_prevfile_void(), open_nextfile_void()
-       - Return the return values of open_prevfile() and
-         open_nextfile(), respectively, instead of (incorrectly)
-         calling them and returning 0. (DLR)
-  real_dir_from_tilde()
-       - Rework to use getpwent() exclusively and end reliance on
-         $HOME.  Adapted from equivalent code in do_rcfile(). (DLR)
-  input_tab()
-       - Most likely fixed the check marked with FIXME, so that tab
-         completion works properly when we're trying to tab-complete a
-         username and the string already contains data. (DLR)
-- global.c:
-  shortcut_init()
-       - Disable the new multibuffer toggle at the file insertion
-         prompt when NANO_SMALL and ENABLE_MULTIBUFFER are both
-         defined. (DLR)
-  thanks_for_all_the_fish()
-       - Make sure the reference to help_text is #ifdefed out when
-         --disable-help is used. (DLR)
-- move.c:
-  page_up()
-       - Fix bug where current is moved up two lines when the up arrow
-         is pressed on the top line of the edit window; this causes a
-         segfault if the top line in the edit window is the second
-         line of the file, as the line current ends up on doesn't
-         exist. (Jeff DeFouw)
-  do_down()
-       - Fix bug where, if the last line in the edit window is the
-         line before the magicline, and smooth scrolling is turned
-         off, pressing the down arrow on that last line centers the
-         cursor without updating the edit window. (Jeff DeFouw)
-- nano.c:
-  version()
-       - Put the listed configure options in more or less alphabetical
-         order. (DLR)
-  open_pipe()
-       - If we're in view mode here (in which case we're also in
-         multibuffer mode), don't set the modification flag. (DLR)
-  do_next_word(), do_prev_word()
-       - If we're on the last/first line of the file, don't center the
-         screen; Pico doesn't in the former case. (DLR)
-  do_backspace()
-       - Rework to call edit_refresh() regardless of the value of
-         current_x if ENABLE_COLOR is defined, so that multiple-line
-         color regexes are properly updated onscreen as they are in
-         do_delete(). (DLR)
-  do_delete()
-       - Rework to only call edit_refresh() unconditionally if
-         ENABLE_COLOR is defined; if it isn't, and we're not deleting
-         the end of the line, only call update_line(). (DLR)
-  do_wrap()
-       - Make sure wrapping is done properly when the number of
-         characters on the line is exactly one over the limit. (David
-         Benbennick)
-       - Restore the previous wrapping point behavior (pre 1.1.10)
-         (David Benbennick).  Minor fix by DLR to prevent spaces from
-         being added to the ends of lines ending in spaces or lines
-         ending in tabs (the latter case found by David Benbennick).
-  do_alt_speller()
-       - Readd DLR's fix to preserve marking when using the alternate
-         spell checker; it was accidentally dropped. (David
-         Benbennick)
-  do_justify()
-       - Fix cosmetic problems caused when justifying on the
-         magicline, and a minor problem where the cursor would
-         sometimes be moved to the wrong line after justification.
-         (David Benbennick)
-  main()
-       - When searching through the main shortcut list looking for a
-         shortcut key, stop searching after finding one; this avoids a
-         rare segfault. (DLR)
-- nano.h:
-       - Change search toggles for case sensitive searching and regexp
-         searching to M-C and M-R, respectively. (DLR; suggested by
-         Chris)
-       - Add support for HP-UX's curses, which doesn't seem to support
-         KEY_HOME and KEY_END.
-- nanorc.sample:
-       - Fix the c-file regex for all caps words to be extended regex
-         format ({} instead of \{\}) (found by DLR).
-       - Add a better string matching sequence that includes escaped
-         quotes (thanks to Carl E. Lindberg, who doesn't even know he
-         helped ;-).  Some unneeded \'s in that sequence removed, and
-         a new sequence to handle multi-line quotes added, by David
-         Benbennick.
-       - Add some examples for HTML and TeX files (David Benbennick).
-- rcfile.c:
-  parse_colors()
-       - Stop infinite loop when syntax doesn't begin with " char.
-- utils.c:
-  charalloc()
-       - Switch from using calloc() to using malloc(). (David
-         Benbennick)
-- faq.html:
-       - Typo fix. (DLR)
-- AUTHORS:
-       - Add David Benbennick. (Jordi and Chris)
-- TODO:
-       - Add entry in the 1.4 section for Pico's paragraph searching
-         ability (at the search prompt, ^W goes to the paragraph's
-         beginning, and ^O goes to the paragraph's end). (DLR)
-
-GNU nano 1.1.10 - 07/25/2002
-- General:
-       - Translation updates (see po/ChangeLog for details).
-       - Upgraded to gettext 0.11.2 (Jordi).
-         Removed intl/ entirely, and a few more tweaks by gettextize.
-       - i18nized a few strings used in DEBUG mode. (DLR)
-       - Some chars being assigned 0 are now assigned '\0'. (DLR)
-       - Put header file #includes in a more consistent order. (DLR)
-       - Remove some unneeded blank lines and spaces, and make some
-         spacing more consistent. (DLR)
-       - When possible, use iscntrl() to determine whether a character
-         is a control character or not. (DLR)
-       - Miscellaneous typo fixes. (DLR)
-       - Many fixes to the help browser and shortcut lists: efficiency
-         updates, consistency fixes, help text fixes and improvements,
-         and spacing improvements. (David Benbennick)
-       - Make some functions use const variables when possible, and
-         also make them static when necessary. (David Benbennick,
-         necessary redefined by Chris ;-)
-       - Add Carl Drinkwater's backup file option (-B or --backup on the
-         command line, M-B in nano's global shortcuts). If the original
-         file is unchanged from when it was loaded, it is backed up to
-         filename~; if the original file has been changed or deleted
-         since it was originally loaded, it isn't backed up.  The backup
-         file retains the permissions, owner/group, and
-         access/modification times of the original file.  This option is
-         disabled when --enable-tiny is used.  It will not back up
-         temporary files.  Minor fixes to it by David Benbennick and
-         DLR.  Changes to open_file(), add_open_file(),
-         load_open_file(), write_file(), and do_writeout().
-       - Add \n's to the ends of "filename is %s" debugging strings.
-         (Carl Drinkwater)
-       - Add the long option --quotestr as an alternative for -Q, and
-         --regexp as an alternative for -R; they were listed in nano's
-         usage information, but weren't actually in nano.  Also, display
-         "-?" as an alternative for "-h" in nano's usage information,
-         put the command line options in a more consistent (i.e. mostly
-         alphabetical) order in nano, put the long options in a more
-         consistent order in rcfile.c and nanorc.sample, don't include
-         rcfile options if their equivalent command line options are
-         disabled, and remove obsolete relative option from
-         nanorc.sample. (DLR)
-       - Change "File Name to Append/Prepend" to "File Name to
-         Append/Prepend to".  The original prompt could confusingly
-         imply that we are appending/prepending another file to the
-         current file, when we are actually appending/prepending the
-         current file to another file. (DLR)
-       - Put nano.1, nano.1.html, and nano.texi up to date, and fix a
-         few inconsistencies in them. (DLR)
-       - Typo fixes for the ChangeLog. (David Benbennick and DLR)
-       - Complete rewrite of justification code to fix some bugs and
-         improve its functionality. (David Benbennick)
-       - If a variable isn't going to be used in tiny mode, #define it
-         out when possible. (David Benbennick)
-       - Major reworking of the cutting/screen-updating code in cut.c,
-         some functions in utils.c, the cursor placement code in
-         winio.c, and many, many other areas to increase efficiency.
-         (David Benbennick)
-       - Rework handling of prompts when there's a list of partial
-         filename matches on the screen: remove kludgy case-by-case
-         handling (which didn't even handle every case), and have
-         statusq() handle it directly for all cases. (David Benbennick
-         and DLR)
-       - Fix some warnings and errors that show up when using gcc's
-         -pedantic option. (DLR)
-       - Add a comment to nanorc.sample warning that an out-of-range
-         negative value for fill can make nano die complaining that
-         the screen is too small (which may not be immediately
-         obvious). (DLR)
-       - There were some opendir() calls in files.c without
-         corresponding closedir() calls; add them. (DLR)
-       - Move align() and null_at() from nano.c to utils.c, and move
-         the openfilestruct handling functions from nano.c to files.c.
-         (DLR)
-       - In color.c, start the "#ifdef ENABLE_COLOR" block after
-         including all the header files, as rcfile.c does; this fixes
-         a warning about ANSI C'S inability to handle blank files.
-         (DLR)
-       - Add new function is_cntrl_char() as a wrapper for iscntrl();
-         this is needed to treat ASCII 0x80-0x9f as control characters
-         consistently.  (Without this, they will only be treated as
-         such when gettext is used; when it isn't used, they will be
-         printed as-is and be interpreted as commands by xterm, which
-         will corrupt the display.) (DLR)
-       - Add command line option -I/--ignorercfiles to ignore
-         $SYSCONFDIR/nanorc and ~/.nanorc. (Carl Drinkwater).   Fix to
-         parsing getopt args (DLR).
-       - Fix minor bugs with importing certain text files in Mac
-         format. (DLR)
-- files.c:
-  append_slash_if_dir(), input_tab()
-       - Changed variable names: lastWasTab -> lastwastab, matchBuf ->
-         matchbuf. (DLR)
-  check_operating_dir()
-       - Memory leak fix. (David Benbennick)
-  check_writable_directory()
-       - Optimizations (David Benbennick).
-  cwd_tab_completion()
-       - Changed a variable name: dirName -> dirname. (DLR)
-  do_browser()
-       - Optimizations and mouse selection fixes (David Benbennick).
-  do_writeout()
-       - Fix problem with formatstr's being defined as NULL when
-         --enable-tiny is used.  Since formatstr isn't ever used in tiny
-         mode, don't bother even creating the variable. (David
-         Benbennick and DLR)
-  do_insertfile()
-       - Memory leak fix (accidentally dropped 1st time).
-         (David Benbennick).
-  get_full_path()
-       - Memory leak fix.  Also, make it properly interpret ~/ notation
-         so, among other things, the option "--operatingdir ~" works.
-         (David Benbennick)
-       - More optimizations (David Benbennick).
-  new_file()
-       - Make sure current_x is zero; this fixes a problem where the
-         current cursor position wasn't reset when reading in a file in
-         multibuffer mode. (David Benbennick)
-       - Use make_new_node rather than setting up fileage by hand
-         (David Benbennick).
-  read_file(), read_line()
-       - Rework to properly handle nulls in the input file, fix
-         detection of binary files to properly mark a file as binary if
-         the only binary characters it contains are ASCII 127's, and
-         after reading the last line of a file that doesn't end in a
-         newline, increment totsize.  Remove previous kludge to set
-         totsize properly. (DLR)
-  write_file()
-       - Rework to properly handle nulls in the input file.  When
-         appending/prepending, don't change the current file's name to
-         the name of the file it's being appended/prepended to.  When
-         writing a marked selection to a file, save and restore totsize
-         so it isn't decreased by the size of the selection afterward.
-         (DLR)
-       - Optimizations (David Benbennick).
-- global.c:
-  free_toggles()
-       - Only include if we're not using tiny mode. (David Benbennick)
-  toggle_init()
-       - Remove global entries for search toggles, as they aren't really
-         global. (DLR)
-       - Don't reinititialize the toggles if they've already been
-         initialized; it's unnecessary and even causes a segfault in
-         do_toggle() if Pico emulation mode is the toggle in question.
-         Don't free the toggles here, either; it's unnecessary after the
-         above change. (David Benbennick)
-       - If wrapping is disabled, don't include the toggle for it.
-         (DLR)
-  shortcut_init()
-       - Rework IFHELP macro (David Benbennick).
-- move.c
-  page_down(), page_up()
-       - Put sanity checks for current_x back in, to avoid rare
-         segfaults (oops). Now, however, they are only called when
-         placewewant is zero instead of being called unconditionally;
-         see changes to winio.c:actual_x_from_start() below. (DLR)
-- nanorc.sample:
-       - Put in much less crappy example regex rules for c-file.
-- nano.c:
-  clear_filename()
-       - Remove this function, as it has unneeded functionality, is
-         short enough to be inlined, and is only called in two spots
-         anyway. (DLR)
-  die()
-       - Rework slightly to remove redundant printing of last message
-         and print all messages after resetting the terminal. (DLR)
-  do_backspace()
-       - Make sure placewewant is set properly, and that the mark is
-         moved backwards. (David Benbennick)
-  do_char()
-       - Fix a problem where, if ENABLE_COLOR wasn't used, typing
-         characters on a marked line before the beginning of the mark
-         would make the highlight short by one. (David Benbennick)
-  do_cont()
-       - Handle the case where the window was resized while we were
-         stopped. (David Benbennick)
-  do_delete()
-       - Make sure placewewant is set properly, to match Pico's
-         behavior. (DLR)
-  do_int_spell(), do_alt_spell()
-       - Rework to save the marked selection before doing spell checking
-         and restore it afterward. (DLR)
-  do_next_word(), do_prev_word()
-       - Fix a problem where highlighting isn't done properly after
-         calling either of these, and another problem where the cursor
-         would move back too far in certain cases with do_prev_word().
-         (David Benbennick)
-  do_toggle()
-       - Since the search mode toggles aren't global anymore, we don't
-         need to explicitly block them here anymore (which will end up
-         blocking the global backup mode toggle, which is the same as
-         the backwards search toggle). (DLR)
-  do_wrap()
-       - fill fixes and 'two short word wrap' bug (David Benbennick).
-  global_init()
-       - Call die_too_small() when fill is 0. (DLR)
-  handle_sigwinch()
-       - Make sure we adjust fill when the window is resized. (David
-         Benbennick)
-       - Call die_too_small() when fill is 0. (DLR)
-  help_init()
-       - Since the return value of snprintf() isn't well defined, use
-         sprintf() instead. (David Benbennick)
-  main()
-       - Rework to blank out filename manually before doing anything
-         with it, instead of calling clear_filename() in two places.
-         Make startline an int instead of a long, since it's supposed to
-         hold a line number. (DLR)
-       - Properly handle multiple -r settings on the command line. (Carl
-         Drinkwater)
-       - Fix a bug that prevented file insertion via the Insert key
-         from working at all when --enable-multibuffer wasn't used
-         (oops). (DLR)
-       - Adapt David Benbennick's fix to get fill to accept negative
-         numbers properly in parse_rcfile() (see below) to the
-         handlers for the -r and -T options as well, so that -r/-T 0
-         can be treated separately from -r/-T string. (DLR)
-       - Fix so that Esc-Esc-Space is properly treated as Ctrl-Space.
-         (DLR)
-  usage()
-       - List the options that are ignored for the purpose of Pico
-         compatibility, and make some minor consistency fixes. (DLR)
-- nano.h:
-       - Fix some space/tab formatting for flags (DLR).
-- proto.h:
-       - Remove external declaration of the global int fill, since
-         it's now static. (DLR)
-- rcfile.c:
-  parse_rcfile()
-       - Add David Benbennick's fix that allows fill to accept
-         negative numbers properly.  Specifically, use strtol() there
-         instead of atoi() so that errors can be detected.  Also
-         adapted for tabsize by DLR.
-  parse_next_regex(), colortoint()
-       - Only include if ENABLE_COLOR is defined. (DLR)
-- search.c:
-  search_init()
-       - Since the search mode toggles aren't global anymore, rework the
-         part of this function referencing them so that they still work.
-         (DLR)
-       - Remove unneeded toggles variable. (David Benbennick)
-       - Fix a problem where the first character of buf was overwritten
-         if the last search string was one third the number of columns
-         plus one. (David Benbennick)
-  findnextstr()
-       - Update the current line at current_x if we don't find a match.
-         Also, pass current_x_find to strstrwrapper() so we know whether
-         we're at the beginning of a string or not (see changes to
-         strstrwrapper() below), and reset it between lines. (DLR)
-  do_gotoline():
-       - Make sure placewewant is zero after we go to a line. (David
-         Benbennick)
-  do_gotopos()
-       - Simplify the sanity check to only put x within the range of the
-         current line; don't call actual_x() anymore. (DLR)
-- utils.c:
-       - Add sunder() and unsunder().  These functions convert nulls
-         other than the terminating null in strings to newlines and
-         back; they're used to handle null characters in files properly.
-         (DLR)
-  lowercase()
-       - Remove, since it isn't actually used anywhere. (David
-         Benbennick)
-  strstrwrapper()
-       - Set REG_NOTBOL when we're not at the beginning of a
-         string, to avoid false positives when searching for regular
-         expressions prefixed with ^. Make it take a new parameter,
-         line_pos, to determine where we are in the string. (DLR)
-  check_wildcard_match()
-       - Changed variable names: retryPat -> retrypat, retryText ->
-         retrytext. (DLR)
-- winio.c:
-  actual_x_from_start()
-       - Overhaul to make cursor placement more like that of Pico: add
-         sanity check for i, and then place i as close to the value of
-         xplus column as possible.  This change is most noticeable when
-         moving down through binary files. (DLR)
-  do_credits()
-       - Fix for the i18ned credits so it will compile with -pedantic
-         (DLR & Chris).
-  do_help()
-       - Add support for the handled keyboard escape sequences in the
-         help menu, as they are needed with some terminals (e.g. xterm
-         with TERM=ansi). (DLR)
-  edit_refresh()
-       - Turn on leaveok() so the cursor doesn't bounce around the
-         screen while we're updating it (most noticeable when using
-         color syntax over a very slow connection).
-  do_replace_highlight()
-       - When using regexps, make sure the highlight is the length of
-         the search result and not the regexp string. (DLR)
-  nanogetstr()
-       - After the user presses Enter at the prompt, refresh the edit
-         window in case there's a list of possible filename matches
-         (left over from attempted tab completion) on it. (DLR)
-  statusbar()
-       - Limit statusbar display to the number of columns less four, and
-         don't allow it to go over its original row. (David Benbennick)
-  titlebar()
-       - Tweak text spacing and printing so that the titlebar text looks
-         better on smaller terminals. (Carl Drinkwater)
-  update_line()
-       - When marking control characters, make sure the mark moves
-         forward by two characters instead of one.  Rework control
-         character display routine to display newlines within the line
-         (which should never occur under normal circumstances; they will
-         only be there if the line had nulls in it and was unsunder()ed
-         beforehand) as ^@'s. (DLR)
-       - Fix to properly treat ASCII 128-159 as control characters.
-         (DLR)
-- configure.ac:
-       - Added ms to ALL_LINGUAS (Jordi).
-       - Merged acconfig.h in (Jordi).
-       - Fixed so that --enable-debug defines DEBUG and undefines
-         NDEBUG. (Carl Drinkwater)
-- THANKS:
-       - Completed a bit (Jordi).
-       - Fixed David Benbennick's email address. (David Benbennick)
-       - Typo fix. (DLR)
-
-GNU nano 1.1.9 - 05/12/2002
-- General:
-       - Typos n misspellings all over the place (David Benbennick).
-       - Allow --tiny and --multibuffer to cooperate (who the heck
-         would want this is beyond me but ;-).  Changes to
-         configure.ac, global.c, ,  (David Benbennick).
-       - Change to openfilestruct for multibuffer mode by DLR.
-         New functions nano.c:make_new_opennode(), free_openfilestruct(),
-         delete_opennode(), unlink_opennode(), splice_opennode(),
-         new struct openfilestruct in nano.h.
-       - Preliminary prepend code.  This may be a bad idea, but I've
-         been wanting it for awhile now and we'll see how bad it messes
-         everything up.  Changes to files.c:do_writeout(), write_file().
-         Fixes for O_CREAT & append compatibility by David Benbennick.
-       - Change from read() and write() to file streams by Jay Carlson.
-         Allows OS to implement read and write ahead rather than making
-         us do it.  Hopefully merged properly.
-       - More cleanups with DISABLE flags, better free_shortcutage and
-         free_toggle, and get rid of unnecessary variable decls with
-         NANO_SMALL in shortcut_init() by David Benbennick.
-       - Added "syntax" command to .nanorc file, to allow multiple
-         syntaxes.  New function color.c:update_color(), calls in various
-         files.c places, syntaxtype struct, global variables syntaxes,
-         syntaxfile_regexp and synfilematches.  Global flag -Y ,--syntax
-         to specify the type on the command line, if there's no good
-         filename regex to use.  Global variable syntaxstr.
-       - Changed many strcmp()s and strcpy()s to their equivalent
-         '\0' counterparts (David Lawrence Ramsey).
-       - Many changes to allow marked cutting to work with multiple
-         file buffers: changes to openfilestruct type in nano.h and
-         files.c (David Lawrence Ramsey).
-       - Changed NANO_SMALL to ENABLE_NLS for gettext disabling
-         (David Benbennick).
-       - Move next_key and pev_key definitions out of main() and into
-         global.c where they belong (David Benbennick).
-- color.c:
-  update_color()
-       - Add regfree call here to avoid memory leaks.
-- configure.ac:
-       - Define NDEBUG to silence asserts (David Benbennick).
-- files.c:
-  get_next_filename()
-       - Optimizations (David Benbennick).
-- global.c:
-  shortcut_init()
-       - Add missing free_shortcutage()s (David Benbennick).
-  thanks_for_all_the_fish()
-       - Only defined when using DEBUG, makes sense (David Benbennick).
-- nano.c:
-  die_save_file()
-       - Add missing free (David Benbennick).
-  do_justify()
-       - Optimizations (David Benbennick).
-  do_wrap()
-       - Complete rewrite (David Benbennick).
-  help_init()
-       - A little less readable, a lot shorter :-) (David Benbennick).
-       - Fix Meta-A not getting capitalized, and convert the ASCII
-         #s to their character equivalent.
-  main()
-       - Changed charalloc(), strcpy()s to mallocstrcpy()s.
-- nano.h:
-       - NANO_ALT_COMMAND and NANO_ALT_PERIOD were reversed (lol)
-         (David Benbennick).
-- nano.spec.in:
-       - Don't put Chris' name as the Packager in the distribution
-         by default (Im an idiot).
-       - Fixed Source line (David Lawrence Ramsey).
-- nano.1:
-       - Changed references to Debian GNU/Linux to Debian GNU (Jordi).
-- nano.1.html:
-       - Updated for -Y option (David Lawrence Ramsey).
-- rcfile.c:
-       - Made some rc file errors less fatal.
-       - Added in my patch for getpwent instead of relying on $HOME
-         (David Lawrence Ramsey).
-- winio.c:
-  edit_add()
-       - Changed some syntax highlight computations for the sake of COLS.
-       - Add in the necessary regfree() calls to stop nano from leaking
-         memory like a sieve when using color syntax highlighting :-)
-  bottombars(), onekey()
-       - Cleanups (David Benbennick).
-- po/gl.po:
-       - Galician translation updates (Jacobo Tarrio).
-- po/de.po:
-       - German translation updates (Michael Piefel).
-- po/fr.po:
-       - French translation updates (Jean-Philippe GuĂ©rard).
-- po/ca.po, po/es.po:
-       - Catalan and Spanish translation updates (Jordi).
-- po/sv.po:
-       - Swedish translation updates (Christian Rose).
-- po/nl.po:
-       - Dutch translation updates (Guus Sliepen).
-- po/it.po:
-       - Italian translation updates (Marco Colombo).
-- po/ru.po, po/uk.po:
-       - Russian and Ukrainian translation updates (Sergey A. Ribalchenko).
-- po/id.po:
-       - Indonesian translation updates (Tedi Heriyanto).
-- po/sv.po:
-       - Swedish translation updates (Christian Rose).
-
-GNU nano 1.1.8 - 03/30/2002
-- General
-       - Type misalignments and mem leaks in renumber_all, do_justify
-         and do_spell (Rocco & Steven Kneizys).
-       - New "External Command" code, originally by Dwayne Rightler,
-         various fixes and changes by Chris, Rocco and David Benbennick.
-         New function nano.c:open_pipe() and signal handler cancel_fork(),
-         changes to do_insertfile(), new list extcmd_list, cmd is
-         ^X after ^R.
-       - Added separate regex variable (color_regex and colormatches)
-         so that color syntax and regex search/replace can coexist.
-       - Added new nano.spec file from Brett <brett@bad-sports.com>,
-         added because maintaining the spec file is getting to be a large
-         hassle ;)
-- files.c:
-  check_writable_directory()
-       - Stat full_path, not path (Steven Kneizys).
-  open_pipe()
-       - I18nize the pipe error (DLR).
-  do_insertfile()
-       - Handle cancel from ExtCmd properly (David Benbennick).
-  read_file()
-       - Abort if we read a file of 0 lines (num_lines == 0), fixes BUG #70.
-       - Reverse tests to stop segfault on editing a new file of 0
-         lines (David Benbennick)
-       - Change input var to one char instead of array (David Benbennick).
-       - Move NO_CONVERT check up so chars get read in properly (DLR).
-- nano.c:
-  do_justify()
-       - More fixes for indented justify (David Benbennick).
-  do_int_speller()
-       - Fix zombie processes and spelling buffer issues (Rocco Corsi).
-  help_init()
-       - Capitalize Meta altkeys.
-       - Various fixes and string changes.
-  main()
-       - Put NANO_SMALL defines around toggle pointer (noticed by Jordi);
-  usage()
-       - Rewritten to encompass systems with and without GETOPT_LONG.
-         New function print1opt does most of the dirty work, stops
-         duplication of effort and eases translator's jobs.  Also
-         breaks all the current translations ;-)
-- proto.h:
-       - Missing externs (Rocco).
-- rcfile.c:
-  do_rcfile()
-       - Reset lineno between system and local .nanorc file.
-       - Fix errno->strerror(errno) mismatch.
-  parse_rcfile()
-       - Don't use i for both for loop and atoi(), fixes lots of
-         potential crashes, 1st reported by Jean-Philippe GuĂ©rard.
-  rcfile_error()
-       - Don't print out the file name if we haven't opened the file
-        yet (lineno == 0).
-- search.c:
-  search_init()
-       - Fix a missing free (Rocco).
-  do_gotoline()
-       - Set placewewant if we actually move to a different line.
-- utils.c:
-  stristr()
-       - Defined regardless of NANO_SMALL (noticed by Jordi).
-  nperror()
-       - New wrapper for perror (David Benbennick).
-- winio.c:
-  do_credits()
-       - Add Thomas Dickey.
-  do_cursorpos()
-       - Make col numbering start from 1 (suggested by Andrew Ho).
-  update_line(), xpt()
-       - Add check for 127 (DLR).
-- po/sv.po:
-       - Swedish translation updates (Christian Rose).
-- po/de.po:
-       - German translation updates (Michael Piefel).
-- po/id.po:
-       - Indonesian translation updates (Tedi Heriyanto).
-- po/it.po:
-       - Serious typo.
-- po/ca.po, po/es.po:
-       - Catalan and Spanish translation updates (Jordi).
-       - Typo (DLR).
-- po/fr.po:
-       - French translation updates (Jean-Philippe GuĂ©rard).
-- po/gl.po:
-       - Galician translation updates (Jacobo Tarrio).
-- po/uk.po, po/ru.po:
-       - Russian and Ukrainian translation updates (Sergey A. Ribalchenko).
-- po/pl.po:
-       - Polish translation updates (Wojciech Kotwica).
-- po/fr.po:
-       - French translation updates (Jean-Philippe GuĂ©rard).
-- po/it.po:
-       - Italian translation updates (Marco Colombo).
-- po/da.po:
-       - Danish translation updates (Keld Simonsen).
-       
-GNU nano 1.1.7 - 03/05/2002
-- General
-       - malloc->calloc, etc cleanups (DLR).
-       - New option, noconvert (-N, --noconvert) to completely stop
-         the translation of files from DOS or Mac format (DLR).
-       - New functions check_writable_directory() and safe_tempnam()
-         to get around the tempnam warning. More improvements (DLR)
-         Still needs testing.
-       - Added DOS and Mac format options to write file routine.
-         Changes to shortcut_init() and do_writeout(). 
-       - Removed stupid static definitions of toggles and shortcut
-         lists.  Many changes to shortcut_init(), toggle_init(),
-         statusq(), nanogetstr(), main(), and many other places.
-       - Multibuffer mode now allows multiple empty filenames.
-         Changes to add_open_files(), removed open_file_dup_search(),
-         open_file_dup_fix(), etc (DLR).
-       - New code to handle multiple .save files.  Changes to
-         die_save_file(), new function files.c:get_next_filename()
-         and utils.c:num_of_digits(). (Dwayne Rightler, DLR & Chris)
-       - Many malloc() cleanups and files.c tweaks by Steven Kneizys,
-         new functions utils.c:free_shortcutage() (got to love that
-         name!) & free_toggles(), and big cleanup program
-         thanks_for_all_the_fish() (originally
-         thanks_for_the_memories()).  Mods to shortcut_init() by Chris.
-       - Preliminary quoting support for justify.  New arg -Q,
-         --quotestr, changes to do_justify(), global variable
-         quotestr().
-- Makefile.am:
-       - Add SYSCONFDIR to DEFS, so we can have a $SYSCONFDIR/nanorc.
-       - Change localedir line to 1.0's version.
-       - Moved m4/ stuff to its own m4/Makefile.am.
-- m4/aclocal_inc.m4:
-       - New macro AM_ACLOCAL_INCLUDE, tells configure.ac where to look
-         for macros (Gergely Nagy).
-- configure.in:
-       - Renamed to configure.ac.
-- configure.ac:
-       - Moved to autoconf 2.52 (Jeff Bailey).
-       - Added call to AM_ACLOCAL_INCLUDE.
-- files.c:
-  read_byte()
-       - Added check for control characters (indicative of a binary
-         file), set NO_CONVERT if found (fixes by DLR).
- do_insertfile()
-       - Added support for -o in prompt (Steven Kneizys).
-- global.c:
-       - Move openprev and opennext functions to shortcuts, they really
-         aren't toggles (DLR).
-- rcfile.c:
-  parse_next_regex()
-       - Allow " symbol to be in regex without leading \ by checking
-         for *ptr+1 is not the end of the regex.
-  do_rcfile()
-       - Parse rcfile in $SYSCONFDIR as well (Dwayne Rightler).
-- nano.1:
-       - Added Noconvert option to man page (DLR).
-- nano.c:
-  justify_format(), do_justify()
-        - Various fixes for starting blank spaces, spaces after
-          punctuation, & segfault with quoting strings (David Benbennick).
-  do_justify()
-       - Don't continue to justify string if it's indented more
-         (quoting wise) than the beginning of the justification.
-  help_init()
-       - Added message re: having multiple blank buffers (DLR).
-  main()
-       - Add 407 as equiv of 26, this seems to be sent when using
-         ^Z in linux console with keypad() enabled.
-- rcfile.c:
-       - Get rid of unneeded relativechars from rcopts (DLR).
-- search.c
-  do_replace(), findnextstr()
-       - Fixes for various search issues (Ken Tyler)
-- winio.c:
-  do_cursorpos()
-       - Rewritten to show col place as well as character place, without
-         needing an entirely separate flag.
-  bottombars(), onekey()
-       - Make bottom list dynamic with screen size (Guus Sliepen & Chris).
-       - More cleanups w/width of shortcut.
-- utils.c:
-  strcasestr(),revstrcasestr()
-       - Renamed to stristr and revstristr since strcasestr has not
-         been confirmed to be detected properly on various Linux
-         systems.
-  strstrwrapper()
-       - NANO_SMALL test was backwards (Ken Tyler).
-- winio.c:
-  strlenpt()
-        - Changed main function to strnlenpt() for new justify changes,
-          original function now just a stub.
-- nanorc.sample
-       - Mention unset in the sample nanorc.
-- po/ca.po, po/es.po:
-       - Catalan and Spanish translation updates (Jordi).
-- po/sv.po:
-       - Swedish translation updates (Christian Rose).
-- po/fr.po:
-       - French translation updates (Jean-Philippe GuĂ©rard).
-- po/nn.po:
-       - Norwegian nynorsk translation updates (Kjetil Torgrim Homme).
-- po/de.po:
-       - German translation updates (Michael Piefel).
-- po/it.po:
-       - Italian translation updates (Marco Colombo).
-- po/cs.po:
-       - Partial Czech translation updates (Vaclav Haisman).
-- po/hu.po:
-       - Hungarian translation updates, or to be precise, rewrite
-         (Gergely Nagy).
-- po/uk.po, po/ru.po:
-       - Russian and Ukrainian translation updates (Sergey A. Ribalchenko).
-- po/da.po:
-       - Danish translation updates (Keld Simonsen).
-- po/nb.po:
-       - Norwegian bokmĂĄl translation updates (Stig E Sandoe).
-- po/nl.po:
-       - Dutch translation updates (Guus Sliepen).
-- po/pl.po:
-       - Polish translation updates (Wojciech Kotwica).
-
-nano-1.1.6 - 01/25/2002
-- General
-       - Add Meta-A as alternate keystroke for ^^ for people with
-         non-US keyboards.
-       - Add Alt-G (NANO_ALT_GOTO_KEY) as alternate for goto dir in
-         browser.
-       - Better partial word checking code. New function
-         search.c:is_whole_word(), changes to findnextstr(),
-         and nano.c:do_int_spell_fix() (Rocco Corsi).
-       - Added multiple-line regex support.  Format in .nanorc is
-         start="regex" end="regex".  Cleaned up nanorc:parse_colors(),
-         added parse_next_regex(), changes to edit_add in winio.c(),
-         changes to colortype, cleaning up some old cruft.
-       - Upgrade to gettext 0.10.40, probably broke everything again :)
-       - Upgraded to and then downgraded from automake 1.5, as there
-         are severe security implications.
-- color.c:
-  do_colorinit()
-       - Moved some comments and braces around so color can work
-         w/slang (DLR).
-- global.c:
-  shorcut_init()
-       - Replace hard coded ALT_G and ALT_H values in the replace
-         and goto shortcuts with their macro counterparts NANO_ALT_*_KEY.      
-- nano.c:
-  usage()
-       - Remove extra \n in --keypad description (Jordi).
-  main()
-       - Check that alt value is an alpha char before comparing to
-         val - 32, fixes Alt-R calling doprev instead of replace.
-  do_char()
-       - Run edit_refresh() if ENABLE_COLOR is defined so adding
-         multi-liners will update (e.g. /* in C).
-  do_int_spell_fix()
-       - Temporarily unset REVERSE_SEARCH if it's set (Rocco Corsi).
-  do_suspend()
-       - Call tcsetattr() to restore the old terminal settings, so
-         tcsh can use ^C after suspend for example (fixes BUG #68).
-  do_wrap()
-       - Move "right" increment to part where new line is created,
-         should change (fix?) some wrapping problems with autoindent.
-  version()
-       - Show --enable-multibuffer independently of --enable-extra being
-         compiled in (Jordi).
-- nano.h:
-       - Changed color struct slightly, because of previous issue with
-         applying color painting in order, the "str" portion was
-         useless.  Renamed "val" in colortype to "start", added "end"
-         for multi-line color strings.
-- rcfile.c:
-  General
-       - Took silly variables being passed everywhere like lineno and
-         filename and made them static variables.
-       - Re-indented.
-       - Added stdarg.h to includes.
-  rcfile_error()
-       - Now automatically prepends the "error in line blah at foo"
-         message to error messages.
-  parse_colors()
-       - Added section for computing "end" section.
-  parse_next_word()
-       - Added support for "\ ", in word parsing.
-- search.c:
-  do_search()
-       - Check position of cursor and return value of findnextstr and
-         tell user if search string only occurs once (Rocco & Chris).
-  findnextstr()
-       - Fix off by one in check for wrap around (Rocco Corsi).
-- winio.c:
-  edit_refresh()
-       - Rename lines to nlines to fix AIX breakage (reported by
-         Dennis Cranston, re-reported by arh14@cornell.edu).
-  edit_add()
-       - Refuse to honor regex matches of 0 characters when applying
-         color highlighting, and say so on the statusbar.  Otherwise
-         we go into an infinite loop, the error message should clue
-         users into the fact that their regex is doing something bad.
-- THANKS:
-       - Oops, correct Eivind's entry. His translation was Norwegian nynorsk,
-         not bokmĂĄl as we claimed (Jordi).
-- .cvsignore
-       - Added config.guess config.sub install-sh missing & mkinstalldirs
-- po/ca.po, po/es.po:
-       - Catalan and Spanish translation updates (Jordi).
-- po/sv.po:
-       - Swedish translation update (Christian Rose).
-- po/de.po:
-       - German translation update (Michael Piefel).
-- po/fr.po:
-       - French translation update (Jean-Philippe GuĂ©rard).
-- po/ru.po, po/uk.po:
-       - Russian and Ukrainian translation updates (Sergey A. Ribalchenko).
-- po/no.po:
-       - Moved to po/nn.po, which is the correct name for Norwegian nynorsk.
-- po/nn.po:
-       - Norwegian nynorsk translation updates (Kjetil Torgrim Homme).
-- po/nb.po:
-       - New Norwegian bokmĂĄl translation (Stig E Sandoe <stig@ii.uib.no>).
-- po/da.po:
-       - Danish translation update (Keld Simonsen).
-
-nano-1.1.5 - 01/05/2002
-- General
-       - Better integration of View mode (-v) and multibuffer.
-         Fixes to new_file(), do_insertfile_void(), shortcut_init()
-         (David Lawrence Ramsey).
-       - The keypad handling has changed (again).  We now use
-         the keypad() function by default.  New flag -K, --keypad
-         allows the old behavior for those using the keypad arrow keys
-         and rxvt-based terminals.
-       - Updated copyright notices to 2002 (Jordi).
-- nano.c:
-  die()
-       - Only save files that were modified (David Lawrence Ramsey).
-  do_cont()
-       - Run signal_init() after doupdate() so ^Y wont suddenly
-         start suspending after returning from ^Z suspend in Hurd.
-  signal_init()
-       - Unconditionally disable VDSUSP if it exists, stops ^Y
-         suspending nano on the Hurd.
-  help_init()
-       - Typo fixes in help strings (Jordi).
-       - New variable helplen needed cause currslen is not always
-         the length we want (bug found by David Lawrence Ramsey).
-       - Typo in file switch string (found by David Lawrence Ramsey).
-  main()
-       - Handle Alt prev/next file keys (,.), as well as normal ones (<>).
-       - Handle OS-specific insert keys by jump to do_insertkey (David
-         Lawrence Ramsey).
-- files.c:
-  read_file()
-       - Make conversion message less confusing (suggested by Jordi).
-- rcfile.c:
-  parse_next_word()
-       - Get rid of ptr == \n check to abort, screws up option
-         parsing (bug found by David Lawrence Ramsey)
-- winio.c:
-  update_line()
-       - set realdata check to >= 1 && <= 31, lack of > 0 check screwed
-         high ascii characters.
-  titlebar()
-       - gettextized a pair of strings.
-  bottombars()
-       - Get rid of that annoying reversed line when color is on! :)
-  edit_add()
-       - Little fixes to let color highlights not bleed onto the next line.
-  statusq()
-       - Initialize "list".
-- m4/gettext.m4:
-       - Back down to 1.1.3 version.
-- faq.html:
-       - Various link updates and other fixes (Aaron S. Hawley).
-       - Typo fixes (David Lawrence Ramsey).
-- AUTHORS
-       - Add DLR.
-- po/sv.po:
-       - Swedish translation update (Christian Rose).
-- po/ru.po, po/uk.po:
-       - Russian and Ukrainian translations updates (Sergey A. Ribalchenko).
-- po/ca.po, po/es.po:
-       - Catalan and Spanish translations updates (Jordi).
-- po/pl.po:
-       - New Polish, partial translation, by Cezary Sliwa <sliwa@cft.edu.pl>.
-       - Wojciech Kotwica <wkotwica@post.pl> completed it and is the new
-         official maintainer.
-- po/fr.po:
-       - French translation update (Michel Robitaille).
-- po/gl.po:
-       - Galician translation update (Jacobo TarrĂ­o).
-- po/it.po:
-       - Italian translation update (Marco Colombo).
-- po/de.po:
-       - German translation update (Michael Piefel).
-- po/fr.po:
-       - French translation update (Jean-Philippe GuĂ©rard).
-
-nano-1.1.4 - 12/11/2001
-- General
-       - Preliminary syntax highlighting support.  New functions
-         colortoint() and parse_color() in rcfile.c, new code in
-         edit_add() in winio.c to actually do the highlighting.  It's
-         not even close to pretty yet :P
-       - Many int/long alignments (David Lawrence Ramsey).
-- files.c:
-       - Fixes for tab completion and screen refresh (David Lawrence
-         Ramsey).
-  add_open_file()
-       - Get rid of unsetting MARK_ISSET because otherwise writing
-         marked text will automatically unset the marker with
-         multibuffer enabled.
-- global.c:
-       - Define currshortcut and currslen when either DISABLE_MOUSE
-         or DISABLE_HELP or DISABLE_BROWSER is not defined (Silvan
-         Minghetti).
-- nano.c:
-  main()
-       - Add Esc-[-[IGL] keys for FreeBSD Console (PgUp,PgDn,Insert).
-        - Added better Hurd support for function keys (Alt-V,U,9,@,F).
-  signal_init()
-        - do SIG_IGN for the SIGTSTP sigaction regardless of whether
-          we have _POSIX_VDISABLE or not (more Hurd fixes)
-  help_init()
-       - Typo fixes and additions to the new help texts.
-  do_curpos()
-       - Now takes arg for constant updating to always show the cursor
-         position (David Lawrence Ramsey).
-  do_wrap()
-       - Many fixes (David Lawrence Ramsey).
-  do_spell()
-       - Dont prompt for replace if we don't change the word in
-         question (Rocco Corsi).
-- po/de.po:
-       - German translation updates (Karl Eichwalder).
-- po/ru.po:
-       - Russian translation updates (Sergey A. Ribalchenko).
-- po/sv.po:
-       - Swedish translation updates (Christian Rose).
-- po/da.po:
-       - Danish translation updates (Keld Simonse).
-- po/es.po:
-       - Spanish translation updates (Jordi).
-- po/fr.po:
-       - French translation updates (Michel Robitaille).
-- m4/gettext.m4:
-       - diff against mutt 1.2.5's gettext.m4.
-
-nano-1.1.3 - 10/26/2001
-- General
-       - Finally wrote function-specific help mode.  Changes to
-         nano.c:help_init() and winio.c:do_help().  Changed
-         currshortcut and currslen #ifdefs to depend on both
-         DISABLE_HELP and DISABLE_MOUSE being defined to not
-         include.  Changed all the shortcuts and lengths.
-       - Fixed null_at to ACTUALLY DO SOMETHING with its arg.  Again,
-         this was causing nasty errors if the call to nrealloc moved
-         where the data was located.
-       - Changed header comments to say "version 2" instead of "version
-         1" as the COPYING file is actually version 2 of the GPL (bug
-         noticed by Jordi Mallach).
-- cut.c:
-  do_cut_text()
-       -  Check to see whether marked text is contained within edit
-          window and if so only do an edit_refresh (variable dontupdate
-          replaces cuttingpartialline).
-  do_uncut_text()
-       - Similar display fixes (David Lawrence Ramsey).
-- faq.html
-       - Removed nano-editor.org FTP site address [deprecated] and added
-       the GNU one.
-- files.c:
-       - Added status messages for converted DOS and Mac files.
-         People should know that their file wasnt normally formatted.  
-  load_file()
-       - Status message when trying to load an already loaded file with multiple
-         buffers (David Lawrence Ramsey).
-  read_file()
-       - Get rid of useless linetemp variable and name num_lines int
-         (David Lawrence Ramsey).
-- nano.c:
-       - New function do_prev_word, similar to do_next_word.  Hard coded as
-         Alt-space, as next word is hard coded as control-space. Fixed
-         goofy logic setting x pos to value of last line when hitting the
-         beginning of first line, prog should simply abort.  Added
-         the #ifdefs around the code in main().
-- nano.h:
-       - Additional #define, SMALL_TOO to determine how long
-         MAIN_LIST_LEN is.  We need this because of the find matching
-         bracket code.
-  main()
-       - Moved #ifndef NANO_SMALL down past the case 0: line so
-         control-space doesn't insert a \0 (ack!)
-- rcfile.c:
-       - Fix incorrect number of rc options (David Lawrence Ramsey).
-- po/sv.po:
-       - Updated Swedish translation (Christian Rose).
-- po/da.po:
-       - Updated Danish translation (Keld Simonsen).
-- po/es.po:
-       - Style updates to Spanish translation (Santiago Vila).
-- po/ru.po, po/uk.po:
-       - Updated Russian and Ukrainian translation (Sergey A. Ribalchenko).
-
-nano-1.1.2 - 10/03/2001
-- General
-       - Added BUGS #63 & 64.  Fixes in search_init() and nanogetstr(),
-         new flag CLEAR_BACKUPSTRING because there's no easy way to
-         clear the backupstring without making it global (messy), so we
-         use a flag instead (just as messy?)
-       - --enable-tiny now leaves out the Auto Indent code, do you really
-         need that on a bootdisk? =-)
-       - New flag -o, --operatingdir, similar to Pico's -o mode.  New
-         function check_operating_dir(), changes to load_file (arg),
-         open_file_dup_search (arg), new function do_gotopos for -F
-         (David Lawrence Ramsey).
-       - Code to read/write dos formatted files.  Massive amounts of
-         new code in read_line and write_file.  New cmdline flag
-         (-D --dos) to automatically write the file in DOS format,
-         regardless of the original format.
-       - Mac file writing supported too.  Flag -M, --mac.  Toggle
-         Meta-O (MacOS? OS-X? =-)
-       - New smooth scroll code by Ken Tyler.  New flag -S, --smooth,
-         changes to page_up() and page_down().  Many fixes to paging by
-         David Lawrence Ramsey.
-       - Bracket (brace, parens, etc) matching code by Ken Tyler.
-         New functions do_find_bracket(), changes to findnextstr(),
-         command is Meta-] (hope you dont mind since I already sold off
-         Meta-O to the MacOS file code Ken...) Fixes to bracket_msg
-         by DLR.
-       - Call do_gotopos from do_alt_spell() to keep position
-         consistent when invoking alt speller (DLR).
-       - Readded DISABLE_CURPOS because in certain instances (like
-         all the "Search Wrapped" lines) the cursor position will
-         be different yet we don't want the cursor position displayed.
-       - Take control-space out of -tiny build, unneeded.
-- cut.c:
-  cut_marked_segment()
-       - Add magic line when cutting a selection including filebot
-         (discovered by DLR, fixed by DLR & Chris, fixes BUG #66).
-  do_cut_text()
-       - Don't recenter the line when cutting one line (DLR) (Bug #65).
-- faq.html:
-       - Notes about the Free Translation Project.
-       - Debian additions.
-- files.c:
-  do_writeout()
-       - Expanded strings to not use %s and ?: to determine
-         write/append string to be nice to translators.
-  new_file()
-       - Initialize totsize (DLR).
-- nano.c:
-  main()
-       - Added var constcheck as a CRC-like check of whether cursor
-         pos has changed and if so update the pos with -c.
-       - Many tweaks and changes from numerics to char equivs
-         (David Lawrence Ramsey).
-       - Fix the KEY_IC being undefined when using slang.
-  do_mouse()
-       - Send 27 when the menu item clicked is an alt key seq... The
-         lines aren't lined up since the menu width changed though,
-         this breakage depends on whether the new widths will be kept
-         or not (FEEDBACK!!)
-       - Change k based on currslen to allow the new widths in
-         bottombars().
-  do_wrap()
-       - Fixes for Pico incompatibility in cases 2b and 2c.
-         (David Lawrence Ramsey).
-  global_init()
-       - New arg save_cutbuffer, allows cutbuffer to not be lost when
-         using multibuffer.
-- nano.1:
-       - Added new features, fixed some typos (Jordi).
-- nano.texi:
-       - Corrected the Mouse Toggle section, noticed by Daniel Bonniot.
-       - Added many command line options, toggles and other additions
-         (Jordi).
-- rcfile.c:
-       - NUM_RCOPTS fix (DLR).
-       - Add tabsize support to rc file (Nathan Heagy).
-       - Fix incorrect argument in fill and tabsize error message
-         (Nathan Heagy)
-- search.c:
-       - Changed search prompt to "Search" followed by a list of
-         bracketed, free-standing modifiers that do not imply a grammar,
-         and the (to replace) string separately.  Hopefully this resolves
-         the i18n problems that this provoked.
-  findnextstr()
-       - Various fixes that need testing (Ken Tyler).
-- winio.c:
-       - Add David Lawrence Ramsey to credits.
-  bottombars()
-       - Spread out the menu items, feedback definitely needed on this.
-  nanogetstr()
-       - More key fixes (David Lawrence Ramsey)
-       - Don't be clever and wasteful, just repaint every iteration.
-- po/nl.po:
-       - New Dutch translation, by Guus Sliepen <guus@nl.linux.org>.
-- po/ca.po, po/es.po:
-       - Updated Catalan and Spanish translation (Jordi).
-- po/gl.po:
-       - Updated Galician translation (Jacobo TarrĂ­o).
-- po/da.po:
-       - New Danish translation, by Keld Simonsen <keld@dkuug.dk>.
-- po/sv.po:
-       - Updated Swedish translation (Christian Rose).
-- po/it.po:
-       - Updated Italian translation (Marco Colombo).
-- po/fi.po:
-       - Updated Finnish translation (Pauli Virtanen).
-
-nano-1.1.1 - 07/28/2001
-- General
-       - Reverted included gettext from 0.10.38 to 0.10.35 in intl/ dir.
-       - Added m4/ directory to allow rebuilding using only the internal
-         version of gettext.m4 (Albert Chin).
-- nano.c:
-  main()
-       - Change the multibuffer getopt option to 'F' (David Lawrence
-         Ramsey)
-  do_mark()
-       - Temporarily disable cursorpos when enabled to be able to see
-         the mark (un)set message (Ken Tyler).
-- nanorc.sample
-       - Typo fixes and updates (David Lawrence Ramsey)
-- files.c:
-  new_file()
-       - Do add_open_files if there aren't any open yet (David Lawrence
-         Ramsey).
-  close_open_file()
-       - Try to open the next file first, then the previous one
-         (David Lawrence Ramsey).
-- global.c:
-  shortcut_init()
-       - Rewrote the whereis and replace lists to put CANCEL at the end
-         of the list, and not include the toggle functions when using
-         NANO_SMALL.
-- nano.h:
-       - Fix type in INSERTFILE_LIST_LEN.
-       - Rewrote all the macro definitions to be a little less messy,
-         for the #ifdefs anyway.
-- rcfile.c:
-       - Update for the multibuffer option (oops) (David Lawrence Ramsey).
-- search.c:
-       - Added #ifdef NANO_SMALLs around the REVERSE_SEARCH code.
-  search_init()
-       - add #ifdef NANO_SMALL around toggles code.
-- winio.c:
-  bottombars()
-       - Fixed an off by one that wasn't letting lines with odd #
-         shortcuts work in certain cases.
-
-nano-1.1.0 - 07/15/2001
-- General
-       - New global variables currshortcut and currslen to support using
-         the mouse with the shortcuts.  Also supports clicking on files
-         in browser.  Added #ifdef DISABLE_MOUSE around this code also.
-       - Changed mouse disabling code from depending on --enable-tiny
-         to its own flag, --disable-mouse.  The --tiny option defines
-         this automatically, but now just mouse support can be disabled
-         if desired.
-       - File Browser supports the "Goto Directory"
-       - Added rcfile.c source file.  Only includes much of anything when
-         --enable-nanorc is used.  Tons of new funcs, most notably
-         do_rcfile() called from nano.c:main().  Added much needed
-         function ncalloc(), will have to go through source code later
-         and change the appropriate calls which used nmalloc for lack of
-         an appropriate calloc function *** FIXME ***
-       - After "Alternate" spell checker is called, cursor is repositioned on
-         the same line as before ^T was pressed.
-       - Moved config.h up in all .c files #include list (Albert Chin).
-       - Added config.guess and config.sub to distribution because,
-         apparently, newer autoconf/automakes can't live without them.
-       - Various spelling updates by David Lawrence Ramsey.
-       - Changed all string allocations to charalloc(), new function
-         designed to take nmalloc argument but call calloc based on
-         (char *) size.
-       - New macro DISABLE_WRAPJUSTIFY to easily check for both wrapping
-         and justify being disabled.  This allows us to compile out the
-         -r flag if neither are set, and will also allow us to comment
-         out -W when it is written.
-       - Allow fill to take a negative value to signify a "from right side"
-         value.  This allows the value to vary with the screen size yet
-         still be correct.  New static value wrap_at to minimize code
-         impact.  Updated man page and info file.
-       - Allow file appending.  New shortcut list nano_insertfile_list (since
-         insert and write routines can't share shortcut lists anymore),
-         new args to do_writeout and write_file called append, and of source
-         code changes to those functions.
-       - Allow backwards searching.  Drastic rewrite of the search prompt
-         string by Chris.  All other code by Ken Tyler.  New globals
-         nano_reverse_msg, new functions revstrstr and revstrcasestr,
-         many changes to search functions.  Not too big a code size
-         increase!
-       - Moved extension functions (Case Sensitive, Regexp, and Backwards
-         Search, Append key in write file function) to Meta keys, as
-         people are complaining loudly about nano not being control-key
-         compatible with Pico, which is a Bad Thing (TM).  Changes to
-         shortcut_init, toggle_init, new toggles for backwards and regexp
-         (and you can now toggle all search options including regexp at
-         the Search: prompt!)  Changes to nanogetstr to enable Meta
-         keys to be grabbed, changes to onekey to print M-style shortcuts.
-       - New macro TOGGLE which just toggles, no more silly checking
-         ISSET and then using SET or UNSET when we want a simple toggle
-         for a flag.
-       - Added multiple buffer capability (God help us).  New configure
-         option --enable-multibuffer (-F), changes to do_insertfile(),
-         do_insertfile_void(), toggle_init(), do_gotoline(), edit_update(),
-         and write_file(), new functions add_open_file(),
-         open_file_change_name(), load_open_file(), open_file_dup_search(),
-         open_file_dup_fix(), open_prevfile(), open_nextfile(),
-         close_open_file(), get_full_path(), die_save_file(), etc.
-         (David Lawrence Ramsey).
-       - Using --enable-extra automatically defines --enable-multibuffer
-         changes to version() and configure.in.
-       - Moved to gettext 0.10.38 at the last second, sure to break
-         something, but at least I can run make distcheck!
-- Makefile.am:
-       - Include ABOUT-NLS and the new THANKS files to the distributed list.
-- THANKS:
-       - Initial, incomplete list of people to thank.
-       - Added some more people.
-- configure.in:
-       - New option, --enable-nanorc, which allows people to have a .nanorc
-         initialization file and set options normally used on the command
-         line, and color later on.
-       - Added --enable-color option to allow color and syntax highlighting
-         (stub as of now).
-- cut.c:
-  add_to_cutbuffer()
-       - Remove useless statements (Rocco).
-  cut_marked_segment()
-       - Add bizarre copy of bot node, else *BSD goes ballistic (fixes
-          BUG #60).
-       - Added 'destructive' argument.  Allows the selected text to be
-         added to the cutbuffer without changing the contents of the
-         file.  This allows writing selection to separate files.
-  do_cut_text()
-       - If the line is empty when using -k and wasn't already added,
-         create a dummy line and add it to the cutbuffer (fixes bug #61)
-       - Reset marked_cut if we blow away the cutbuffer.
-       - Moved the case of current == mark_beginbuf into cut_marked
-         segment, so do_writeout could call it when writing selection to
-         file.
-  do_uncut_text()
-       - Reset cutbuffer even if we're uncutting marked or cut to end text!
-- faq.html:
-       - Brought the FAQ up to date, many little changes (Jordi).
-       - Added sections 3.7 and 3.8 for the multibuffer and nanorc support.
-- files.c:
-  do_browser()
-       - Minor fixes to the processing of SELECT function (Rocco)
-       - Added the "Goto Directory" code (Rocco)
-       - Don't shift the size of the file is it's less than 1K. Fixed
-         files less than 1K being displayed as 0B (Rocco).
-       - More Picoish keystrokes for the browser, ^P, ^N, etc, for up,
-         down, etc, and add the consistent ^C to exit (Jim Knoble).
-  do_writeout()
-       - New code to allow writing selected text to a separate file.
-         When this is done, the current state is preserved.
-  write_file()
-       - New arg, nonamechange, means whether or not to update the
-         current filename after writing the file out.
-       - Increment lineswritten when the very last line isn't null.
-         Fixes off by one count when writing selection to file.
-- global.c:
-       - Updated some of the lists for the "Goto Directory" code (Rocco)
-- move.c:
-  page_up()
-       - Rewritten with a loop to make screen updates work when
-         mark is set (fixes bug #59).
-  do_home(), do_end()
-       - Don't keep cutbuffer.
-- nano.1:
-       - Added the missing -r flag (Jordi).
-- nano.c:
-  do_alt_speller()
-       - Reposition cursor on same line as before ^T was called (Rocco)
-  ABCD(), main()
-       - Add Alt-whatever-[a-d] support as well as Alt-whatever-[A-D].
-  main()
-       - Code to silently process "-g" and "-j" (Rocco)
-       - Added Alt-[-7,8 support for home/end keys (Jeff Teunissen).
-  signal_init()
-       - Reorder sigaction calls, use sigfillset() to stop SIGTSTP and
-         SIGCONT from being interrupted, allows suspending nano
-         to work more reliably, esp. with mutt, etc.
-  do_suspend()
-       - Don't try to play with the handler inside the handler.  Just
-         raise a SIGSTOP.  We also now write the "use "fg"" message to
-         stdout instead of stderr.
-       - Added _POSIX_VDISABLE macro to fully ignore suspend keystroke.
-         Eliminates the possibility that nano can be suspended when
-         it's not supposed to be.  Many many many thanks to Jordi and
-         Tom Lear for helping out finding and fixing this bug!
-  do_cont()
-       - Now just does a refresh call instead of playing with the SIGTSTP
-         handler.
-- nano.h:
-       - Updated the BROWSER_LIST_LEN for the "Goto Directory" code (Rocco)
-- proto.h:
-       - New shortcut list added: gotodir_list (Rocco).
-- search.c:
-  do_gotoline()
-       - Optimizations, remove "$" goes-to-last-line, less messages (Rocco)
-  do_replace()
-       - If we manage to make it in somehow with VIEW_MODE on, abort
-         nicely (fixes BUG #59).
-- utils.c
-  strcasestr()
-       - Replaced by mutt's mutt_stristr function, because the thought
-         of dynamically allocating memory and copying each line in a file
-         to do a search or replace was causing me to lose sleep.
-- winio.c:
-  actual_x()
-       - Remove inline from function decl (Albert Chin).
-- po/POTFILES.in:
-       - Added utils.c to the list.
-- po/es.po, po/ca.po:
-       - Updated (Jordi).
-- po/gl.po:
-       - Galician translation by Jacobo TarrĂ­o.
-- po/uk.po, po/ru.po:
-       - New Ukrainian and Russian translations by Sergey A. Ribalchenko
-         <fisher@obu.ck.ua>, thanks!
-- po/id.po:
-       - Updated Indonesian translation by Tedi Heriyanto.
-- po/it.po
-       - Updated Italian translation by Marco Colombo.
-- po/no.po:
-       - New Norwegian translation by Eivind Kjørstad <ekj@vestdata.no>.
-- po/sv.po:
-       - New Swedish translation by Christian Rose <menthos@menthos.com>.
-
-nano 1.1 tree forked here 04/07/2001
-
-nano 1.0.1 - 04/06/2001
-- General:
-       - added configure option --disable-wrapping.  Does what it says,
-         no wrapping or checks are done.  Separate from --enable-tiny,
-         some may want a bare-bones Pico clone that does wrap text.
-         Affects configure, nano.c:do_char() and check_wrap() obviously,
-         version(), and do_char().
-- aclocal.m4:
-       - Minor patch for intl check (really this time) (Albert Chin)
-- faq.html:
-       - Fixed typo in section 6.1 (discovered by Bob Farmer).
-- files.c:
-       - fix two typos in comments, one in ChangeLog (Matthias Andree)
-  diralphasort()
-       - Stop abort on symlinks (Matthias Andree)
-       - use strcasecmp to sort directory if available, pilot does that
-         as well (Matthias Andree)
-  filestat(), do_browse()
-       - Changed lstat calls to stat, which fixes the browser not
-         following links to directories.  We only use lstat() when
-         printing the details of the file, and if it is a link, then
-         check via lstat() for link to a directory.  If it is
-         a directory, display (dir), else use the normal "--".
-  do_browser()
-       - Fix broken size suffix off-by-one errors (Matthias Andree)
-  cwd_tab_completion(), do_browse_from()
-       - Use PATH_MAX instead of 0 arg to getcwd (Matthias Andree).
-       - Changed above to use PATH_MAX only when defined on the
-         system, as the HURD e.g. does not support it.
-- intl/Makefile.in:
-  distclean
-       - added intl/libintl.h to the rm -f rule, should fix the unresolved
-         gettext symbols problem (Jordi).
-
-nano-1.0.0 - 03/22/2001
-- General
-       - Added void to functions declared as () args, nano.c:do_mark()
-         and search.c:regexp_cleanup(). (Christian Weisgerber).
-       - Changed internal variables called "new" to "newnode" to avoid
-         the "new" C++ reserved word, even though there is likely no way
-         nano will EVER be compilable with a C++ compiler. (suggested by
-         Rocco Corsi).
-- ca.po, es.po:
-       - Final tweaks for Nano 1.0.
-- cs.po:
-       - Czech translation from Vaclav Haisman.
-- nano.info:
-       - Added dir entry (Albert Chin).
-- winio.c:
-  statusq()
-       - Added NANO_BACK_KEY and NANO_FORWARD_KEY cases for left and right.
-
-1.0-test prerelease - 03/17/2001
-- nano.c:
-  do_wrap()
-       - Added case for autoindenting text causing new line (Adam).
-       - Added SAMELINE case to above.  Added checks to cases 1b and
-         2b for placement of cursor.
-- move.c:
-  page_down()
-       - Check for totlines < editwinrows in check for superfluous
-         edit update (fixed BUG #57).
-- search.c:
-  print_replaced()
-       - s/occurence/occurrence typos (Jordi).
-  search_init()
-       - If using Pico mode and regex and same answer is entered, use
-         last_search string instead of answer (fixes BUG #56).
-- nano.texi:
-       - Meta-Z correction and grammar in --enable-tiny desc (Neil Parks).
-
-nano-0.9.99pre3 - 02/19/2001
-- General
-  GNU compliance issues:
-       - Reworked shortcut list, put "Get Help" into default list,
-         removed "Goto Line", aligned "Read File" with "Write Out" and
-         "Replace" with "Where is" for consistency.
-       - Added texinfo manual nano.texi.  Added texi options to
-         Makefile.am.  
-- configure.in:
-       - Autoconf compatibility fixes (Pavel Roskin)
-       - Added separate check for resizeterm().
-       - ALL_LINGUAS: added hu and ca.
-- cut.c:
-  do_cut_text()
-       - marked text cut fixes (Rocco) (Fixes bug #54).
-- nano.c:
-  do_delete()
-       - Added check for current->next == fileptr, as we have a magic
-         line code again, fixes silliness at the end of the last line
-         before the magic line (reported by J.A. Neitzel).
-  do_justify()
-       - If the keystroke after the justify is not the unjustify key,
-         blank the statusbar (bug reported by Neil Parks).
-  main()
-       - Added ENABLE_NLS check around gettext stuff.
-- winio.c:
-  do_yesno()
-       - Added localized yes, no and all strings to function and rewrote
-         handler for the new format.
-- de.po:
-       - Translation updates by Florian König.
-- fi.po:
-       - Translation updates by Pauli Virtanen.
-- hu.po:
-       - Hungarian translation by Horvath Szabolcs.
-- id.po:
-       - Translation updates by Tedi Heriyanto.
-- es.po:
-       - Translation updates and grammatical/typo fixes (Jordi).
-- ca.po:
-       - Catalan translation by Jordi Mallach :)
-       - Miquel Vidal <miquel@sindominio.net> went over it and corrected
-         many typos and completed bits that remained untranslated by error.
-
-nano-0.9.99pre2 - 01/31/2001
-General
-       - Removed center_x and center_y globals.  center_y was
-         completely unused and center_x was only used a few places,
-         easily replaced with COLS / 2 (oops, not current_x & y (Rob)).
-       - Deleted free_node, duplicate of delete_node, and changed all
-         free_node calls to delete_node.
-       - Fix for resizing the window in modes other than normal edit mode
-         Changes to handle_sigwinch(), main().  Fixes bug #52 (Rocco).
-- files.c:
-  write_file()
-       - Don't free() realname on error, if it needs to be free()d later
-         it will be (fixes crash on successful write after failed write,
-         discovered by David Sobon).
-  username_tab_completion()
-       - Optimization and removal of useless vars (Rocco).
-       - Rewritten using getpwent (suggested by Rocco).
-       - Removed redundant conditional (Rocco).
-  real_dir_from_tilde()
-       - Rewritten using getpwent (suggested by Adam, much optimized by
-         Rocco).
-- global.c:
-       - Don't define toggles global or toggle_init_one if using --tiny.
-- nano.c:
-  do_justify()
-       - Added restoration of totsize after unjustify command.
-  usage()
-       - Add arg to -T help (Rocco).
-  global_init(), handle_sigwinch()
-       - Messy loops replaced with memset calls (Rocco).
-  do_alt_speller()
-       - Added code to parse multi-word alt_speller strings.
-       - Fix initialization before fork()  (Rocco).
-- proto.h:
-       - Fix do_credits() proto (oops!)
-- winio.c:
-  nanogetstr()
-       - Sanity check for x overrunning the string buffer len.
-
-nano 0.9.99pre1 - 01/17/2001
-General
-       - Changed #ifdefs to check for both DISABLE_TABCOMP and
-         NANO_SMALL, makes tiny option leave out tab completion, which
-         should be left out in that circumstance.  Saves at least 5k.
-       - Previous change to #ifdefs DISABLE_TABCOMP and NANO_SMALL rolled
-         back. (Rocco)
-       - Various #ifdef & #ifndef cleanups. (Rocco)
-       - Added message for when keypad goes awry.  Added code in main and
-         function print_numlock_warning() to notify user, and added an
-         appropriate section in the faq to refer to this brokenness.
-       - Added macros in nano.h for magic values that might be unclear in
-         nano.c:global_init(). (Rocco)
-- configure.in:
-       - Fix for _use_keypad check breaking slang support (Christian
-         Weisgerber).
-       - Changed to automatically define the 5 DISABLE variables when
-         NANO_SMALL (enable-tiny) is requested at configure.
-- faq.html:
-       - Added some info on making the binary smaller with the configure
-         script.
-       - Added section on keypad bugginess.
-- files.c:
-  real_dir_from_tilde()
-       - Oops, fix case where buf ="~", silly crash (bug discovered by
-         Neil Parks).
-  do_browser()
-       - Added space and - keys to do page up and down.
-  cwd_tab_completion(), input_tab()
-       - Changed bare malloc/calloc calls to nmalloc (found by Rocco).
-       - Added memset() to matchBuf to ensure sanity (Rocco, Adam).
-- nano.c:
-  ABCD()
-       - New function, figures out what kbinput to return given
-         input common to several switch statements, allows us to
-         support the default Konsole key settings.
-  main()
-       - Alternate speller option no longer valid if DISABLE_SPELLER is
-         active. (Rocco)
-       - Removed direct calls to usage() (#else) for -k (cut) or -s (speller)
-         options when these have been disabled. (Rocco)
-       - Initialized kbinput to get around stupid compiler warning.
-  nano_small_msg()
-       - This function has been removed.  All references now call
-         nano_disabled_msg. (Rocco)
-  version()
-       - When NANO_SMALL (enable-tiny) is defined, the 5 main DISABLE
-         variables (SPELLER, HELP, JUSTIFY, BROWSER, TABCOMP) are not
-         reported as enabled when Nano is called with -V (--version)
-         command line option. (Rocco)
-  usage()
-       - Alternate speller option no longer valid if DISABLE_SPELLER is
-         active. (Rocco)
-  window_init(), handle_sigwinch()
-       - Added check for not having enough LINES to do anything useful,
-         if so die with an error. (Rocco)
-  die_too_small()
-       - Function to print the window too small error message, avoids
-         repeated string defs and globals.
-  do_justify()
-       - Small fix for totsize calculation (Rob)
-
-- fi.po:
-       - Update by Pauli Virtanen.
-
-nano 0.9.25 - 01/07/2001
-General -
-       - New file browser code.  New functions in files.c:do_browser(),
-         helper functions browser_init(), tail(), striponedir(),
-         filestat().  New shortcut list browser_list.  Some new
-         strings to translate.  Added function do_browse_from().
-       - Keypad code has been changed slightly.  Now checks for
-         _use_keypad flag in window to see whether or not to turn
-         the keypad() back off when finished (taken from aumix).  Moved
-         to winio.c where it should probably be anyway.  New configure
-         check for _use_keypad in window struct.  This will have to do
-         for now.
-       - Moved keypad() calls for PDCurses from main() to window_init()
-         so the keypad continues to work after a Meta-X, for example.
-         Fixed bug #51.
-- faq.html:
-       - Fix typos and small mistakes (Jordi).
-- files.c:
-  username_tab_completion()
-       - Added the (char *) sizeof when allocating memory for the filename
-         array (Rocco).
-  cwd_tab_completion()
-       - removed skipping . and .. when tabulating matches.
-       - Added the (char *) sizeof when allocating memory for the filename
-         array (Rocco).
-  do_writeout()
-       - Now takes an argument so the string typed in can be retained
-         when calling the browser.
-  do_browser()
-       - Don't decrement longest by the length of path.  Fixes crashes
-         on entering various dirs  (Rocco).
-       - Don't ungetch() the exit key, unneeded, fixes inserting a file
-         causes exit code.
-- move.c:
-  page_down()
-       - Don't do an edit_update when there is only one page of text
-         (fileage == edittop && filebot == editbot).  Fixes Bug #50.
-- nano.c:
-  main()
-       - Reorder the getopt options to be more or less alphabetical
-         (suggested by Sven Guckes).
-- winio.c:
-  do_cursorpos()
-       - Optimizations and cleanups by Rocco Corsi.
-  do_credits()
-       - Spell Erik Andersen's name right.
-  titlebar()
-       - Now takes an arg, needed for browser function.
-  do_help()
-       - Changed way of temporarily bringing up shortcuts at the
-         bottom in the help screen (actually works).
-- utils.c:
-  mallocstrcpy()
-       - Takes char pointers now instead of void (makes debugging a
-         helluva lot easier)
-       - Duh, don't do anything if src == dest!
-- es.po:
-       - Updates for file browser (Jordi).
-
-nano 0.9.24 - 12/18/2000
-General
-       - Added --disable-help option, affects acconfig.h, configure(.in),
-         winio.c:do_help, nano.c:help_init,help_text_init,version.
-       - Changed filename to no longer use PATH_MAX, so it can work on the
-         HURD.  Changes in files.c:write_file(), new function
-         nano.c:clear_filename(), many changed in main(), a few other
-         places.  Please test this!
-       - Added -b, -e, and -f flags, which we ignore as nano provides
-         their functionality already.
-- cut.c:
-  do_uncut_text()
-       - Fix renumbering bug when uncutting marked text at filebot.
-       - Fix screen not being displayed when we are uncutting marked
-         text at editbot (Bug discovered by Ken Tyler).
-       - Fix magic line not getting created when (you guessed it)
-         uncutting marked text at filebot (Ryan Krebs).
-- files.c:
-  read_file()
-       - If we encounter an error and insert is not set, run new_file().
-         (bug discovered by Ben Roberts).
-  write_file()
-       - Change open call flags, basically copy joe's way of doing it so
-         a more recent version will actually be included in (un)stable.
-       - Remove useless fstat call.
-  open_file()
-       - Added check for S_ISBLK and S_ISCHR, don't open device files!
-- nano.c:
-  renumber()
-       - Don't stupidly assign the value of prev->lineno if prev == NULL!
-  main()
-       - Added code to check for Alt-Alt (27-27) keystrokes and set the
-         next keystroke as a control sequence.  New variable
-         modify_control_key.  Removed #ifdef _POSIX_VDISABLE check
-         around Control-S,Q,Z handlers because we need it now for
-         the Alt-Alt-x code.
-       - Added --view option to getopt_long() call.  Bug discovered
-         by Rocco Corsi.
-  help_init()
-       - Fix off by one error that was making ^G help in normal mode and
-         ^_ in Pico mode not be displayed in the help (bug discovered by
-         Rocco Corsi).
-  do_toggle()
-       - Added fix_editbot() call to fix improper redisplay of edit
-         window when using nohelp toggle (bug discovered by Rocco Corsi).
-- nano.1, nano.1.html:
-       - Updated man page for -b, -e, -f and expanded explanation for -p.
-- winio.c
-  do_help()
-       - Force keypad on so F-keys and PageUp/Down will work properly.
-         Added check for NANO_EXIT_FKEY to loop.
-- utils.c:
-  new_magicline()
-       - Increment totsize!!  We decrement it when we've read a file,
-         everywhere else it should automatically be incremented
-
-nano 0.9.23 - 12/08/2000
-General
-       - Changed --disable-spell to --disable speller.  The term is
-         "speller" for -s, so it should be --disable-speller.
-- files.c:
-  write_file()
-       - Added tmp check to TMP_OPT section (how appropriate).
-       - Added new consistency checking code from securityfocus
-         article by Oliver Friedrichs, and use O_EXCL if tmp == 1.
-       - We now run check on result of lstat(), not stat(), to be
-         safer.  New variable anyexists, we use still use realexists
-         later in the program.
-       - OOPS, line up link/unlink/rename check if conditional with
-         top if conditional.  Option -l has been broken for 9 versions,
-         no one noticed?!
-       - Added saving perms at end of link so we can apply them to the
-         new file if --nofollow is used.
-- winio.c:
-  edit_add()
-       - Off by one display error (fix by Rocco Corsi).
-  do_replace_highlight()
-       - New code to handle being past COLS (Rocco Corsi).
-       - Moved from search.c, as it's definitely a winio function now =)
-  update_line()
-       - More '$' display fixes (Rocco Corsi).
-
-nano 0.9.22 - 12/02/2000
-- General
-       - Username tab completion code, and cleaned up existing tabcomp
-         code. New functions real_dir_from_tide(), append_slash_if_dir(),
-         username_tab_completion is more than a stub now =-).
-       - Ignore key sequence 543 & 545, right control and alt keys in
-         windows. Affects main() and winio.c:nanogetstr().
-       - Took out help from spell_list and changed SPELL_LIST_LEN to 1.
-         Is using a spell checker THAT difficult? =-)
-       - New function nano_disabled_msg(), to alert that certain
-         functions have been disabled, similar to nano_tiny feature.
-- New configure options:
-       - Added configure argument --disable-tabcomp.  Affects
-         bottom of files.c and write_file, utils.c:check_wildcard_match()
-         and winio.c:nanogetstr().
-       - New options --enable-extra.  New code in nano.c:version() to
-         print out various options from ./configure, function do_credits().
-       - Added --disable-spell option for those who want to just disable
-         the spell check feature.  Affects the spelling functions
-         do_spell, do_int_speller and do_alt_speller.
-       - Added --disable-justify to get rid of the justify function.
-         Affects do_justify() (not surprisingly).
-- files.c:
-  write_file()
-       - Unsetting modified on temp files bug fixed (Rocco Corsi).
-       - Okay, if tmp == 1 and the file exists, we abort.
-  do_insertfile()
-       - Added call to real_name_from tilde, oops.  Added check for
-         DISABLE_TABCOMP.
-  read_file()
-       - Added check for fileptr == NULL.
-- global.c:
-  shortcut_init()
-       - Now takes an argument as to whether to display the unjustify
-         shortcut or the normal uncut text one.  Needed to accommodate
-         the kludgey unjustify code.
-- nano.1, nano.1.html:
-       - Updated date on pages because of -p changes.
-       - Added "NOTES" section, where I explain what nano.save & friends
-         are.
-       - Added a copyright notice for the manpage, under the GPL.
-       - Other minor changes.
-- nano.c:
-  do_justify()
-       - Wrote unjustify code.  Borrows cutbuffer and stores the unjustified
-         text there, then grabs the next keystroke and, if the unjustify
-         key, gets rid of the justified text and calls do_uncut_text.
-         Added macro NANO_UNJUSTIFY_KEY.
-  do_int_spell*
-       - Various fixes (Rocco Corsi).
-       - Changed abort of program to aborting based on value of "edit a
-         replacement" question, and not caring about the replace loop
-         return value.  That way the user can get out of the replace loop
-         and continue spell checking (very important to me anyway).
-  version()
-       - Took out huge check for the various --disabled macros,
-         eventually there will be too many to reasonably check for.
-  nano_small_msg(), nano_disabled_msg()
-       - Added checks for disabled functions to see whether or not to
-         declare them.
-  do_next_word()
-       - Update the previous line as well as the current one in case we
-         have moved beyond COLS or back from COLS, patch submitted
-         by Ryan Krebs.
-  die()
-       - Now creates .save file using variable-length strings.  Also
-         calls write_file with tmp == 1, which happens to do exactly what
-         we want (abort on save file exists and use mode 0600).
-  handle_sighup()
-       - Now calls die instead of writing on its own and exiting normally.
-- search.c:
-  do_replace_highlight()
-       - New function, displays the currently selected word as highlighted
-         in the spell check.  Called from do_replace_loop (Rocco Corsi).
-       - Added calls to curs_set(0) and (1) to disable the cursor when
-         highlighting, looks much better.
-- es.po:
-       - Traditional Spanish strings updates.
-
-nano 0.9.21 - 11/23/2000
-- AUTHORS
-       - Added Rocco Corsi.
-- nano.c:
-  main()
-       - Changed check for argc == 1 to argv[optind] == NULL to decide
-         whether or not to display "New File" in the statusbar.
-- search.c:
-  findnextstr()
-       - Fix current_x increment bug by using another variable (Rocco Corsi).
-  search_init()
-       - Silly typo in our "one simple call" of statusq.  Stopped
-         previous search string from being displayed.
-  do_replace()
-       - Copy back the previous value of last_replace into answer if
-         using PICO_MODE and answer == ""
-- winio.c:
-  do_up()
-       - Deleted first update_line() call, screws up display when marker is
-         set.
-- nano.1, nano.1.html
-       - Updated man page for new -p definition.
-
-nano 0.9.20 - 11/18/2000
-- General
-       - Ran source through indent -kr again.  Make everything pretty.
-       - Changed behavior of "search" and "replace" prompts to make all
-         previous values editable.  This change was made so that you can
-         replace with the null string without needing a special key for it.
-         changed code in search_init(), do_replace(), nanogetstr (see
-         below).
-       - Added some missing gettext calls here and there (Jordi).
-       - Revamped nanogetstr() and calls to it to use variable length
-         strings.
-         MANY changes in nanogetstr(), many chances in search.c, new
-         function mallocstrcpy which is sure to be a programmatic
-         nightmare, changed last_search, last_replace, answer to
-         pointers.  New function not_found_msg in search.c for displaying
-         truncated strings in statusbar when the string is not found
-         (-pedantic fixes by Rocco Corsi). We disable this feature when
-         using PICO_MODE (-p).
-       - New spelling code by Rocco Corsi.  New functions
-         do_int_speller, do_alt_speller, changes to do_spell in nano.c,
-         New functions search_init_globals and do_replace_loop, changes
-         to search_init(), do_replace, findnextstr, moved last_search and
-         last_replace back to nano.c (*shrug*).
-       - New tab completion code.  Used check_wildcard_match, input_tab,
-         cwd_tab_completion, username_tab_completion from busybox,
-         hacked them a lot, changes to nanogetstr().  nanogetstr() and
-         statusq() now take an arg for whether or not to allow tab
-         completion.
-       - Fixed value being input in statusbar during a search or replace
-         and CASE_SENSITIVE or the other search is called and the
-         string being typed in is blown away.  Reported by Ken Tyler.
-       - Changed PICO_MSGS flag to PICO_MODE, changed help strings
-         accordingly.
-- files.c:
-  do_writeout()
-       - Change strcpy to answer to mallocstrcpy.
-- global.c
-       - New global replace_list_2, for 2nd half of the replace dialog
-         ("Replace with:"), has fewer options than first half because
-         they were inappropriate.
-  toggle_init()
-       - Added #ifdef around toggle_regex_msg to get rid of compiler
-         warning.
-
-- nano.c:
-  keypad_on()
-       - New function, toggles turning the keypad on and off in edit and
-         bottomwin().  Added call to this in finish(), fixes bug #45.
-- search.c
-  findnextstr()
-       - New arg for begin_x variable, basically a rewrite that
-         makes a little more sense and isn't quite as messy (Rocco Corsi).
-       - Update the line we're checking if not the whole screen, because
-         it's quite possible the search team could exist somewhere way
-         to the right on the same line, for example.
-  replace_abort()
-       - Add reset of placewewant, stops cursor from jumping when moving
-         cursor after a replace.
-  do_replace()
-       - Added code for Gotoline key after entering the search term.
-         Fixes bug #46.
-       - Removed redundant code involving processing replacement string.
-         Converted if statements to switch statements.
-       - Optimizations by Rocco Corsi.
-       - Removed code for deleted shortcuts from in replace_list_2.
-  do_search()
-       - Converted if statements to one switch statement.
-- winio.c
-  nanogetstr()
-       - Added check for 343 in while loop to get rid of getting "locked"
-         into statusbar" bug in odd $TERMs like iris-ansi.
-       - Changed check to return -2 on "enter" from answer == ""
-         to answer == def.
-       - Fixed fallthrough code because there was no break.  Make much
-         more sense now.
-       - Added check for ASCII 54[124] when using PDCurses, ignore them
-         if noticed.
-  nanoget_repaint()
-       - New function, removes about 30 lines of duplicate code in
-         nanogetstr().
-       - Black magic code to make $ appear in prompt if we're past
-         COLS.
-  blank_edit()
-       - Removed wrefresh() call, much less choppy now.  If there's a need
-         for a wrefresh after a specific call, let me know.
-- es.po:
-       - Updated translation for 0.9.20 (Jordi).
-
-nano 0.9.19 - 10/02/2000
-- General
-       - Added PDCurses support under cygwin, which allows building
-         a nice stand-alone nano.exe for those poor Windows users.
-         Extra check in configure.in for initscr() in -lcurses (as
-         PDcurses has no tgetent), some #ifdef PDCURSES statements
-         in main().
-       - Changed web site and email to new nano-editor.org domain.
-- nano.c
-       - Added (int) casts to remove compile warnings with -Wall.
-  main()
-       - Added check for _POSIX_VDISABLE around term variable definition.
-- search.c
-       - Added initializations for last_search and last_replace (Rocco Corsi)
-
-nano 0.9.18 - 09/18/2000
-- General
-       - Changed _POSIX_VERSION checks in regex code to HAVE_REGEX_H,
-         added check for regex.h in configure.in.
-- configure.in:
-       - Added default case for cross-compiling to get rid of annoying
-         AC_TRY_RUN warning.
-- cut.c:
-  do_cut_text()
-       - Don't immediately abort if we're on filebot and the marker is
-         set (fixes bug #42).
-- files.c:
-  open_file()
-       - Fix for bug #44 (Rocco Corsi).
-- global.c:
-  shortcut_init()
-       - Added in FKEYs that for some reason were left out.  *boggle*
-- nano.c:
-  main()
-       - Added check for _POSIX_VDISABLE and use raw mode if not
-         available, allows nano to work with cygwin.
-       - Added gettext calls to enable/disable strings (Jordi).
-       - Revamped a great deal of the F-key and keypad key handling,
-         because we not longer use keypad() (see below).
-       - Removed keypad() call because nano was not working with the
-         keypad in many terms, which is very bad.
-       - Made insert key call do_insertfile().
-  do_toggle()
-       - Rewrote function to allow NOHELP toggle to work on systems
-         without a working resizewin().  New function window_init().
-  mouse_init()
-       - Add keypad only if mouse support is on, otherwise mouse doesn't
-         work.  I guess you have to choose between having the mouse and
-         having a working keypad for the time being (thank god for Meta-M).
-- winio.c:
-  total_refresh()
-       - Added titlebar() call.
-  onekey()
-       - Off by one error fix fix ;-) (Rocco Corsi).
-
-- search.c:
-  findnextstr()
-       - Reset starting at current for search instead of begin.
-- es.po:
-       - Translated new strings and minor updates (Jordi).
-- de.po
-       - Revised translations by floki@bigfoot.com
-
-nano-0.9.17 - 09/04/2000
-- General
-       - New shortcuts to toggle certain options that are normally only
-         flags via Alt/Meta.  See Alt-C,E,I,K,M,P,X,Z.  New struct called
-         toggles in nano.h, toggle_init(), toggle_init_one() in global.c
-         called from shortcut_init(), and do_toggle in nano.c.  Also
-         moved the signal code into a separate function in nano.c called
-         signal_init().  Moved "struct sigaction act"into a static in
-         nano.c.
-       - Changed from Alt-key symbol (@) which is completely nonstandard
-         to the *nix "Meta" symbol (M-).  Changed help_init to show
-         the M-key usage and the help text to explain keys which generate
-         Meta.  Moved the toggle Meta keystrokes to the first column
-         instead of the third as they are the primary keystrokes for the
-         functions.  Thanks Mini editor team :->
-       - Changed last_search and last_replace vars to statically
-         allocated (hence nulled) and moved to search.c (Matt Kraai).
-- global.c:
-  toggle_init()
-       - Changed "No auto wrap" and "No help mode" to "Auto wrap" and
-         "Help mode". See the change to do_toggle() below.
-- nano.c:
-  do_mouse()
-       - Patch for handling lines w/tabs and mouse better (Ben Roberts).
-  do_wrap()
-       - Made wrapping code less ambitious.
-  do_toggle()
-       - Added checks for no help and no wrap mode, and print opposite
-         enable/disable message.
-  do_suspend(), do_cont():
-       - New functions, handle suspend signal in a Pico-like manner and
-         work with Meta-Z.
-- winio.c:
-  total_refresh()
-       - Added edit_refresh() call to actually update the screen if messy.
-  edit_refresh_clearok()
-       - New function, does a total update for edit refresh, needed to fix
-         lack of reversed text on searching with MARK_ISSET.
-  onekey()
-       - Off by one error fix (Rocco Corsi).
-
-  update_line()
-       - Added check for binary data >= 1 and <= 26, and use ^+letter
-         to display it.   Should fix editing text files with binary
-         data in them.  Placing of the cursor seems to be a bit screwed
-         though...
-- search.c:
-  search_abort()
-       - Now calls edit_refresh_clearok when MARK_ISSET to handle screen
-         ugliness bug (reported by Ken Tyler).
-  findnextstr():
-       - Added reset for placewewant (Ben Roberts).
-       - Fixed check for string that only occurs on the same line failing
-         (discovered by Ken Tyler).
-
-nano-0.9.16 - 08/09/2000
-- cut.c:
-  do_cut_text()
-       - Fixed getting locked into cutbuffer on cutting first line of file.
-       - Added check_statblank().
-       - Check for fileptr == filebot, if so return, we shouldn't bother
-         cutting the magic line.
-  do_uncut_text()
-       - Added check_statblank().
-- nano.c:
-  main()
-       - Changed tabsize long arg to actually accept an argument *sigh*.
-- po/Makefile.in.in:
-       - Patch to handle $DESTDIR (orig by Dan Harnett contributed by
-         Christian Weisgerber)
-- configure.in:
-       - New (and severally revised =) slang test code (Albert Chin-A-Young)
-
-nano-0.9.15 - 08/03/2000
-- Changed edit_update call to take arguments TOP, CENTER or BOTTOM.
-  Affects many many functions.  Removed functions edit_update_top and
-  edit_update_bot.
-- Added global variable tabsize, we no longer screw with the curses
-  library in order to implement -T (suggested by Christian Weisgerber).
-- configure.in:
-       - Finally fixed check for slang to report "no" if not called
-         with --with-slang or --without-slang
-- nano.c:
-  splice_node()
-       - New function, abstracts linking in nodes.   Fixes bug #36.
-  null_at()
-       - New function, nulls a string at a given index and realigns it.
-  delete_buffer()
-       - Removed, same as free_filestruct().
-  do_backspace()
-       - Now calls page_up_center instead of page_up (as it should?)
-  do_enter()
-       - Fixed typo (?) in check for inptr->next.  Caused lots of
-         grief for editing lines at filebot.
-  main()
-       - Removed now useless usertabsize variable (Christian Weisgerber).
-- search.c:
-  replace_abort()
-       - redundant, now just calls search abort until it does something
-         different.
-- winio.c:
-  edit_refresh()
-       - Added check for current line "running" off the screen.
-         Hopefully this will not cause any recursive lockups.
-         (Who am I kidding, of course it will!)
-       - Added check to stop infinite loop calling edit_update.
-  edit_update()
-       - Rewritten, hopefully this will remove a lot of the
-         scrolling the cursor back and forth needlessly.
-- move.c:
-  page_down()
-       - do an edit_update() at last case.  Made function more like
-         Pico's version, only move down to two lines before editbot.
-  page_up()
-       - Made function more like Pico's version, only move down to two
-         lines after edittop.
-
-nano-0.9.14 - 07/27/2000
-- nano.h:
-       - Set CUT_TO_END to a different bit than TEMP_OPT.  Fixes bug #32.
-- cut.c:
-  do_cut_text()
-       - Added check for MARK_ISSET when using CUT_TO_END.  Fixes bug #31.
-       - Simplified check for freeing cutbuffer.  Added checks for doing
-         multiple cuts with -k, now sets marked_cut to 2 for later
-         processing by do_uncut_text().
-  do_uncut_text()
-       - Added handler for uncutting with -k cuts.
-- files.c:
-  write_file()
-       - Removed (redundant) check for writing out files with -t.
-  do_writeout()
-       - Changed check for filename to filename[0].  Added some code,
-         overall fixes bug #30 =-)
-- nano.c:
-  do_justify() & do_wrap():
-       - totsize-related fixes (Rob)
-- de.po
-       - Revised translations by floki@bigfoot.com
-
-nano-0.9.13 - 07/23/2000
-- Implemented Pico's -k mode.  New flag CUT_TO_END, option (-k, --cut),
-  affects do_cut_text in cut.c.  Not available with SMALL_NANO because it
-  depends on the marker code which is not available with that setting.
-- Changed static temp_opt to flag TEMP_OPT.  Fixed bug #29 (using
-  -t with an unwritable file causes users to get locked into editor).
-- move.c
-  page_down()
-       - Don't edit_refresh() if the bottom of the file is in the edit
-         buffer. (Adam)
-- nano.c:
-  main():
-       - TABSIZE now set before first call to edit_refresh (Bill Soudan)
-       - Different ^C kill code (patch by Christian Weisgerber).
-  die():
-       - More intelligent emergency-save filename selection (Rob)
-  do_spell():
-       - Changed exit semantics a bit so that aspell wouldn't get
-         all screwy (bug discovered by Joshua Jensen.
-- files.c:
-  read_file():
-       - Added init of buf variable, hopefully this will stop the
-         "bleeding" of text seen with mutt and using i18n.
-  write_file():
-       - Added code to check to see if using -l and the file is not
-         in fact a link.  This should fix the behavior where a file
-         that does not have write permission but could be removed and
-         rewritten is saved without error.  Please test this feature
-         and give feedback.
-- search.c:
-  search_init():
-       - Added " (to replace)" statement to end of search string if
-         we are doing a replace.  Manually converted all the translations
-         from '%s' to '%s%s' to ensure they still work with the new code.
-         Also put in the translation for " (replace)" in the .po's.  Hope
-         I didn't step on your toes doing this Jordi. (Chris)
-  do_search(), do_replace():
-       - Removed call to search_abort()/replace_abort() before call to
-         the opposite function.
-       - Fixed bug #28.
-  findnextstr()
-       - do not center string found if it is currently visible. (Adam)
-- fr.po:
-       - French update by Clement Laforet <clem_laf@wanadoo.fr>.
-- es.po:
-       - Updated strings to 0.9.13 (Jordi).
-
-nano-0.9.12 - 07/07/2000
-- all:
-       - New regexp search feature by Bill Soudan.  New flags USE_REGEXP
-         and REGEXP_COMPILED, new functions regexp_init, regexp_cleanup
-         replace_line, replace_regexp in search.c, changes to
-         search_init() and do_replace() and strstrwrapper().
-       - Added _POSIX_VERSION check to regexp code.  Better than nothing
-         for non-POSIX systems...
-       - Made search functions & keys more like Pico.  Added goto line from
-         search and replace function, changed wording to "No Replace" instead
-         of "To Search", "To Replace" to simply "Replace", and changed to
-         Pico's keystroke by default, ^R. Affects search_init(),
-         do_search() in search.c, globals in nano.h and
-         shortcut_init() in global.c.
-       - changed 'sprintf' calls to safer 'snprintf' (Rob)
-- cut.c
-       - further totsize update corrections
-- files.c:
-       - changed do_insertfile to call fix_editbot (Rob)
-       - Magic Line code in read_file (Rob)
-- nano.c:
-       - Removed dual alt_speller variables, oops! (Rocco Corsi)
-       - Removed unnecessary do_oldspell function (Rocco Corsi).  Added
-         SMALL_NANO #ifdef around actual spell function.
-       - Moved page_up() to move.c where is belongs.
-       - Corrected FIXME in do_enter with explanation. (Rob)
-       - Fixed FIXME in do_justify, resulted in creation of
-         fix_editbot [also fixed in do_enter] (winio.c) (Rob)
-  help_init():
-       - Moved newline out of if statement (Rocco Corsi)
-  do_char():
-       - Magic Line related code in do_char (Rob)
-  do_backspace(), do_delete():
-       - Added magic line code here too.
-
-- de.po:
-       - Revised translations by floki@bigfoot.com.
-- fi.po:
-       - Finnish translation by pauli.virtanen@saunalahti.fi.
-- utils.c:
-       - Added new_magicline()
-- winio.c:
-       - Added stdlib.h to includes, found by OpenBSD gcc.
-       - lots of new commenting around display functions
-  do_yesno(), nanogetstr():
-       - Removed now unnecessary raw/cbreak combos.
-       - Removed gettext calls from "Y(es)", "N(o)", "A(ll)" and "^C", till
-         we decide if those keybindings should be translated. (Jordi)
-  clear_bottomwin():
-       - Removed wrefresh(edit) call.
-  edit_update_top():
-       - Fixed a bug that caused nano to not update when
-         current->next == NULL (e.g. paging down to the very bottom of
-         ABOUT NLS wouldn't work).
-  fix_editbot:
-       - Added (should rebuild editbot from a valid edittop) (Rob)
-  edit_add:
-       - removal of redundant call to mvwaddnstr
-
-nano-0.9.11 - 06/20/2000
-- New flag "-T" or "--tabsize" to specify how to display tab widths.
-  Affects main() in nano.c, strlenpt(), xpt() and actual_x() (et al) in
-  winio.c, and nano.h.  Many hardcoded "8"s have been changed to the
-  TABSIZE int.  Added changes to nano.1 and nano.1.html.
-- id.po:
-       - Indonesian translation by Tedi Heriyanto.
-- es.po:
-       - Updated translation (Jordi Mallach).
-- winio.c
-       - Rewrite of display functions to correct the display problems
-         we had been seeing. Affects: add_marked_sameline, edit_add,
-         and many others. (Rob Siemborski)
-       - totsize fixes (Rob Siemborski)
-  total_refresh():
-       - Cut display_main_list call, as this function is only supposed to
-         refresh what's already on the screen, not go through the process
-         of adding the text again.
-- cut.c:
-       - totsize fixes (Rob Siemborski)
-- nano.c:
-       - experimental do_wrap and check_wrap (Adam Rogoyski)
-       - Removed editwineob, as it was redundant for (editwinrows - 1).
-         Changed all calls to editwinrows - 1 in nano.c and move.c.
-       - Removed all functions that were split into other files.
-         Affects LOTS of funcs.
-  do_enter():
-       - Added reset of placewewant to end.
-  do_insertfile():
-       - Fix display problem when using ctrl-r to load a file
-         into the buffer (Rob Siemborski)
-  handle_sigwinch():
-       - Added titlebar(), edit_refresh() and display_main_list() calls
-         because a resize wasn't picking up on possible different width
-         correctly.
-- utils.c:
-       - Moved nmalloc() and nrealloc() here.
-- move.c:
-       - New file, contains movement functions (like do_home(), do_up(),
-         do_down(), page_up(), etc...).
-- files.c:
-       - Contains functions for files (read_file, insert_file,
-         do_writeout(), etc).
-- search.c:
-       - Contains all our searching and related functions, (do_search(),
-         findnextstr(), do_replace(), do_gotoline()).
-
-nano-0.9.10 - 06/04/2000
-- es.po:
-       - Translation updates (Jordi).
-- AUTHORS, nano.1.html, TODO, README:
-       - Documentation and email address updates (Jordi).
-- nano.c:
-  main():
-       - Moved Adam's termio code down to after getopt() and before initscr()
-         to stop people losing their SIGINT character when using args that
-         exit nano before it runs (--version, --help, etc).
-
-nano-0.9.9 - 05/31/2000
-- Makefile.am:
-       - Added proper lines for defining LOCALEDIR.
-- configure.in:
-       - Spelling fixes (Jordi Mallach)
-       - Removed CFLAGS changes for gcc, reduces portability according to
-         some, and it certainly doesn't seem to decrease exe size.
-- es.po:
-       - Spanish translation updates (Jordi Mallach)
-- POTFILES.in:
-       - Added global.c file, was screwing up translations (i.e. they
-         weren't getting done).
-- cut.c:
-  add_to_cutbuffer():
-       - Added totsize increment.
-       - Cut fixes and optimizations (Rob Siemborski).
-  do_uncut_text():
-       - Added totsize increment in several places.
-- nano.c:
-  headers:
-       - Removed LOCALEDIR define.
-  do_justify():
-       - Added edit_refresh() call (bug discovered by Adam).
-  page_down_center():
-       - Added call to edit_update(current) for last case.  Removed
-         increment of current_y since it's now just wasteful.
-  do_enter():
-       - Added totsize increment.
-  renumber(), renumber_all():
-       - Removed totsize-- and totsize init in renumber_all.
-  do_mouse():
-       - Added edit_refresh() call to show highlight updates.  Removed
-         unnecessary wrefresh(edit).
-  main():
-       - Moved up locale calls so that translated --help messages would
-         actually get translated.
-  do_backspace(), do_delete():
-       - Added decrement of totsize.
-  init_help_msg():
-       - New function, initializes help text if NANO_SMALL isn't set (fixes
-         broken i18n).
-  read_file():
-       - malloc call changed to nmalloc (Rob Siemborski).
-- winio.c:
-  total_refresh():
-       - Completely rewrote function, not quite so brain-damaged now.
-
-nano-0.9.8 - 05/18/2000
-- nano.c:
-  main():
-       - Added awesome code that disables the CINTR and CQUIT
-         character (Adam Rogoyski).  Removed raw()/noraw() calls so that
-         nano gets input in 'normal' mode, which is the Right Way(tm) to
-         do it. ^S, ^Z and ^Q now work properly as a result, as well as
-         ^C.  New variable term, global variable oldterm to save previous
-         term settings, and changes to finish() and die().
-       - Added extra #ifdefs in getopt code, so that above code and
-         flag init is run even if GETOPT_LONG is not #defined.
-       - Added memset line before sigactions. (Adam Rogoyski)
-  do_suspend():
-         Removed function, see above for why.
-- winio.c:
-  update_line(), center_cursor():
-       - Removed wrefresh(edit) from bottom of functions.  wrefresh
-         should now only be called once, at the bottom of the main()
-         loop.
-- global.c:
-   shortcut_init():
-       - Removed suspend sc_init call and suspend message because suspend
-         is no longer needed in the shortcut list to work properly.
-
-nano-0.9.7 - 05/14/2000
-- nano.c:
-  do_home(), do_end():
-       - Added calls to update_line for the current line, fixes
-         lack of update (bug discovered by Alberto GarcĂ­a).
-  main():
-       - Added SET(FOLLOW_SYMLINKS) before getopt call, fixes not
-         following symlinks even when -l isn't set, and "no changes"
-         error when nano is called from crontab -e (Adam Rogoyski).
-- cut.c:
-  do_cut_text():
-       - Added edit_update_top to cut when mark is set, fixes lack of
-         display update (bug discovered by Ken Tyler).
-
-nano-0.9.6 - 05/08/2000
-- New Italian translation (it.po), by Daniele Medri.
-- nano.c:
-  page_up(), page_down():
-       - Added reset of placewewant to 0, as it should be.
-  do_up(), do_down():
-       - Added call to update_line() for line we move from and line we
-         move to, in order to keep the highlighting correct.
-  do_wrap():
-       - Added var chop, new code to wrap lines more like Pico, mostly.
-         THIS STILL DEFINITELY NEEDS TO BE REWRITTEN!
-- winio.c:
-  do_help():
-       - Added edit_refresh() before exit.
-  update_cursor():
-       - Removed cursor updating which really wasn't needed anyway.
-  edit_update():
-       - Removed yucky code that didn't work, this function now just
-         computes edittop and editbot and calls edit_refresh() to do the
-         rest, which removes a lot of duplicate code...
-
-nano-0.9.5 - 05/01/2000
-- Removed bytes from file struct because it was computationally wasteful.
-- cut.c:
-  do_uncut_text():
-       - Added call to edit_refresh().
-- nano.c:
-  do_backspace():
-       - Added reset of editbot when deleting the last line of the file
-         (bug discovered by Adam).
-  do_char():
-       - Removed call to reset_cursor().
-  do_delete():
-       - Added similar check as to do_backspace().
-  do_enter():
-       - Added call to edit_refresh().
-  do_left(), right():
-       - Added call to update_line(), still redundant but better...
-  do_up(), do_down():
-       - Added refresh calls both for current line and line to which
-         we are moving.
-  main():
-       - Removed inefficient call to edit_refresh() after every keystroke.
-         It is now up each function to leave the screen in a good state.
-- winio.c:
-  do_cursorpos()
-       - Rewritten to not use bytes from filestruct by an incremental sum.
-  update_line(), reset_cursor():
-       - Optimized calls to xplustabs() through a single variable.
-       - update_line() now takes a new arg, an index into the string
-         for where to update the line from.  Needed for new update
-         code.
-- configure.in:
-       - Better checks for slang, allows argument to --with-slang.
-         (Albert Chin-A-Young)
-       - Removed -Iintl from CFLAGS in gcc check.
-- Makefile.am:
-       - Addition of -Iintl for gettext (Albert Chin-A-Young)
-
-nano-0.9.4 - 04/25/2000
- - Fixed calls to no_help and changed them to the more consistent
-   ISSET(NO_HELP).  Fixed return val of no_help to be what it should (2,
-   not 1.  Code to temporarily disable NO_HELP when in the
-   help system. (Adam Rogoyski)
-- cut.c:
-  do_marked_cut(), do_cut(), do_uncut():
-       - Commented out unnecessary bits when NANO_SMALL is being used.
-- winio.c:
-  xpt(), strlenpt(), actual_x():
-       - Added check for value of data[i] & 0x80, if so do not make
-         character 2 chars wide (orig. by Chris, 0x80 check by Adam).
-  edit_refresh():
-       - New check for temp == NULL (bad thing), if so go back to the
-         previous line.  New filestruct var hold points to prev line.
-         Fixes segfault when paging down to the end of a file.
-- nano.c:
-  write_file():
-       - Added check for if file exists and is not equal to the current
-         filename, prompt for overwrite (Adam Rogoyski).
-  do_down():
-       - Removed check for current->next == NULL, now checks return value
-         of do_down before setting current_x = 0 (discovered by Adam).
-  do_justify():
-       - Fixed segfault when reaching the last line (tried to assign
-         current->next->data when current->next == NULL) (discovered
-         by Adam).
-- utils.c:
-       - Removed extra macro defs that are now in nano.h.
-- nano.h:
-       - Changed macro SET() to use |= instead of ^=.  Fixes bug in
-         cut code when cutting more than one line, and cutbuffer gets
-         blown away when it shouldn't.
-
-nano-0.9.3 - 04/29/2000
-- cut.c:
-  do_marked_cut():
-       - Fixed off by one error in cut code for marked text.
-  do_cut_text():
-       - Removed check for being on the last line, part of
-         magic line code.
-  add_to_cutbuffer():
-       - Moved tmp->prev = inptr line to part where cutbuffer != NULL.
-       - Added inptr->prev = NULL for case where cutbuffer == NULL.
-- nano.c:
-  do_backspace(), do_char():
-       - Removed "magic line" code.  It was basically causing more bugs
-         than it was helping for the sake of compatibility.  This fixes
-         at least one known segfault condition.
-  do_enter():
-       - Added setting editbot to new node if the new node is the last
-         node in the file.
-  write_file():
-       - Changed writing file behavior.  Now, if last line of the file
-         has any data on it, we write a newline on it, else we don't.
-- winio.c:
-  add_marked_sameline():
-       - New code that checks for whether the begin and end of the marker
-         are on different lines.  Missing previously.
-  edit_add():
-       - added some more checks for text length.  Cleaned up some
-         mvwaddnstrs that could be written more simply as waddnstrs.
-  edit_refresh():
-       - Removed check for temp == filebot, it is now treated like any other
-         line.  Fixes a bug where selected text on the last line shows
-         normally.
-  xpt():
-       - Removed an extra computation for tabs variable that was incorrect.
-  xplustabs():
-       - Since xpt now actually works, this func is now just a wrapper for
-         xpt(current, current_x)
-- nano.1, nano.1.html:
-       - Added -l option to man pages.
-- configure.in:
-       - New option --enable-tiny, #defines NANO_SMALL in config.h.
-         Disables call to gettext in functions and other i18n stuff in
-         nano.c, the detailed help mode, the resize functions, and the
-         justify code which no one ever uses.
-       - New option --with-slang.  Enables slang libraries instead of
-         ncurses, requires slcurses.h for wrapper functions. (Based
-         on patches for 0.8.7 by Glenn McGrath).
-
-nano-0.9.2 - 04/15/2000
-- This release just fixes the serious segfault problem if nano is
-  invoked any way other than using the absolute path.  The bug was
-  in the new code for checking whether nano is invoked as 'pico'.
-
-nano-0.9.1 - 04/14/2000
-- Added Pico compatibility for ^T when in search or switch to switch
-  to the opposite function.  Added one to REPLACE_LIST_LEN and
-  WHEREIS_LIST_LEN in nano.h, new args to sc_init_one in global.c and
-  new strings that will have to be gettext()ed.  New argument 'replacing'
-  to search_init().  Handlers in do_replace and do_search().
-- New write code, now follows symbolic links instead of replacing them
-  with the new file.  New option (-l, --nofollow) to enable the old
-  (incorrect, but secure) behavior (Adam Rogoyski).
-- nano.c:
-  do_wrap():   
-       - Fixed another bug relating to wrapping, and which would cause
-         a segfault *sigh*.
-  do_replace():
-       - Incremented current_x by the length of the replacement
-         text inside the main replace loop.  Fixes bug #15.
-  add_marked_sameline():
-       - New function, handles marked text when start & end of marker is
-         on one line, also supports most marked text when cursor > COLS.
-  main():
-       - Code to check if nano is invoked as 'pico', and if so
-         automatically set pico_msgs (Robert Jones).
-
-nano-0.9.0 - 04/07/2000
-- nano.1, nano.1.html:         Updated man page with my email address and homepage.
-- winio.c:
-  reset_cursor(), update_line():       
-       - Changed update algorithm for x value to (COLS - 7) multiple when x
-         value > (COLS - 2).
-- edit_refresh():
-       - Removed inner loop code, now calls update_line() for each line
-         in question, MUCH nicer.
-- xplustabs(), xpt():
-       - Removed redundant increment of tabs when column no % 8 == 0.
-       - Added check for data[i] < 32, most of such bits are 2 chars wide.
-- update_line():
-       - Fixed a stupid call to strlenpt with col when we should have
-         been using actual_col.  Ugh.
-
-nano-0.8.9 - 03/22/2000
-- nano.c:
-  empty_line(), no_spaces(), justify_format(), do_justify():
-               Actually added these (screwup applying patch).
-  do_justify():        Added call to set_modified().
-
-nano-0.8.8 - 03/12/2000
-- Preliminary internationalization support.  Many many functions modified
-  to use gettext (via _() macro).  es.po file included. (Jordi Mallach)
-  New dirs po/ and intl/, changes to configure.in and Automake.am to
-  support i18n.
-- nano.c:
-  includes:    Added sys/param.h and limits.h. (Adam Rogoyski).
-  statics:     Changed some things that were not necessarily static
-               (Adam Rogoyski).
-  nrealloc():  New function, similar to nmalloc().  Changed calls from
-               realloc() to nrealloc (Adam Rogoyski).
-  empty_line(), no_spaces(), justify_format(), do_justify():
-               New functions for justify function (Adam Rogoyski).
-- winio.c:
-  blank_edit():        Added wrefresh call to edit so that screen updates (like
-               on ^L) actually work.
-  xplustabs(), xpt(), strlenpt(): Fixed off-by-one buglets (Adam Rogoyski).
-
-nano-0.8.7 - 03/01/2000
-- main.c:
-  do_wrap():   Better fix for segfaults, and fix for lines being wrapped
-               to a single character on one line when no good place to
-               break the line exists, and for wrapping lines longer than
-               COLS.
-- nano.1.html:
-               Html version of man page, now included in dist.  For
-               the benefit of nano packages in Linux distributions.
-
-nano-0.8.6 - 02/24/2000
-- global.c:
-  shortcut_init():
-               Added shortcuts for goto_line and do_replace when using
-               pico_msgs.  Oops.
-- nano.c:
-  statics:     Changed fill back to 0 from 71 by default (Adam Rogoyski).
-  do_wrap():   Added check for backing up past tabs, which we shouldn't do.
-               Removed check for backing up past spaces first.
-  main():      Added for loop to check for alt keys instead of hard list.
-  do_enter():  Fix for bug #14, added call to reset_cursor and messed
-               up do_char quite a bit.
-  version():   Added time and date stamp for compile on version message.
-               Added mail and web page info.
-- README:      Updated mailing list info.
-
-nano-0.8.5 - 02/18/2000
-- nano.c:
-  main():      Finally fixed tilde being input on page up/down keys in
-               certain terminal types.  Fix was input 26->91->5[34] check
-               for 126, if so make the kbinput PAGE UP/DOWN, else unget
-               the keystroke and continue.  Added #include <ioctl.h> for
-               ioctl call.
-  handle_hup():
-               Handler for hangup signal.  Belated include of patch from
-               Tim Sherwood.
-- winio.c:
-  edit_refresh():
-               Temporary fix for selecting text when temp == current.
-               edit_refresh() is now unmanageably complex, and must be
-               revamped.
-  check_statblank():
-               Added check for constupdate, makes things less choppy
-               (Adam Rogoyski)
-
-nano-0.8.4 - 02/11/2000
-- Moved global variables that were only (or mostly) used in one file into
-  its proper file as a static.  Affects cut.c, nano.c, global.c (Andy Kahn).
-- global.c:    
-  shortcut_init():
-               Removed redundant NANO_CONTROL_H from backspace shortcut,
-               added char 127 which should have been there.
-- nano.c:
-  main():      Fix for loops looping until MAIN_LEN, added -1 to stop
-               segfaults (Adam Rogoyski).
-- Makefile.am: Added all source filenames (Adam Rogoyski).
-- nano.1:      Fixed mail addressed and added mailing list address.
-- README:      Updated my email address and the nano web page.
-
-nano-0.8.3 - 02/08/2000
-- New Pico mode (-p, --pico), toggles (more) compatibility with the
-  Pico messages displayed in the shortcut list.  Note that there are still
-  small differences in this mode.
-- nano.h:      New shortcut struct format, for the benefit of i18n and
-               our help menu.  Removed shortcut message macros, they are
-               now all in shortcut_init in global.c.
-- nano.c:
-  do_wrap():   Removed resetting of current_x when we are in fact
-               wrapping to the next line, fixes a bug in -i mode.
-  do_enter():
-               Rewrote the autoindent mode code to be a lot less pretty,
-               but a lot more magical.
-  main():
-               Removed case for ignoring char 126 (~).  That's kind of
-               important, we'll have to fix handling that sequence when
-               paging up/down on a terminal some other way... Revamped
-               main switch loop in much snazzier fashion based on the
-               shortcut list.
-- winio.c:
-               New function display_main_list.  Affects all functions
-               that used to call bottombars() with main_list.  Added
-               because we now only call bottombars with the macro
-               MAIN_VISIBLE instead of MAIN_LIST_LEN, because of the
-               changes to the main_list shortcut list (see global.c below).
-               New function do_help, our preliminary dynamic help system.
-- Many many funcs:
-               Changed from int to void to allow one uniform type to call
-               from the shortcut struct.  Also a few functions that do
-               not simple have void argument have new functions called
-               funcname_void(void) to be called from the shortcut list.
-               do_cut_text and do_uncut_text were changed to void
-               arguments because they were never called with a filestruct
-               other than *current anyway.
-- global.c:
-               Shortcut list main_list was expanded to cover all
-               shortcuts that could be caught in the main loop.
-               Consequently there is a new macro MAIN_VISIBLE which tells
-               how many items in the main list to actually show.
-
-nano-0.8.2 - 02/02/2000
-- Added initial mouse (-m, --mouse) support.  New global variable
-  use_mouse. (Adam Rogoyski)
-
-- nano.c:      Set initial value of fill to COLS - 8 rather than just 72
-               regardless. (Adam Rogoyski).
-  do_delete(): 
-               Deleted call to do_backspace() when on the end of a line,
-               because it won't update the line properly.
-  do_backspace():
-               Removed unnecessary pointer manipulation that was being
-               handled by unlink_node().
-  open_file():
-               Added check for trying to open a directory (currently we
-               segfault on this).  Bug pointed out by Chad Ziccardi.
-
-nano-0.8.1 - 01/28/2000
-- Implemented Pico's -r (fill) mode, command line flag -r or --fill.  New
-  global variable fill, affects check_wrap(), do_wrap(), main(), usage(),
-  global.c and proto.h.
-- nano.c:
-write_file():          Added (incredibly) necessary check for EPERM when
-                       link() fails.  This allows us to actually save
-                       files via rename() on filesystems that dont
-                       support hard links (AIEEEEEE).
-do_goto():
-                       Fixed a stupid mistake where we were calling
-                       bottombars() with replace_list instead of goto_list.
-- nano.h:
-                       New char *help in shortcut structure for help
-                       feature. Added NANO_*_MSG and NANO_*_HELP #defines
-                       for help function and i18n.
-- global.c:
-                       New functions shortcut_init (called in nano.c) and
-                       sc_init_one() to initialize the shortcuts without
-                       using {}s (for i18n).
-
-nano-0.8.0 - 01/25/2000
-- View flag (-v, --view) implemented.  Global variable view_mode, affects
-  main loop of nano.c and new_file(). (me)
-- nano.c:
-                       split checks for TERMIOS_H and TERMIO_H up so we
-                       can (theoretically) include them both, which is good.
-handle_sigwinch():
-                       Added check for ncurses.h.  (Andy Kahn)
-do_spell():
-                       We now only try ispell because we don't as of yet
-                       handle the 'spell' program the right way, now that
-                       I finally know what the right way is =-).  Added
-                       call to edit_update(fileage) to stop segfaults.
-global_init():
-                       Added initialization of edit* filestruct pointers
-                       to stop segfaults on spell check.
-usage():
-                       Check for getopt_long, and if no leave out the
-                       GNU options everyone seems to love so much (Andy Kahn)
-main():
-                       Added checks for getopt_long (Andy Kahn)
-                       We ignore character 126 because it gets put into
-                       the buffer when we page up/down on a vt terminal.
-write_file():
-                       Fixes for umask (Adam Rogoyski).  Renamed tmpfile
-                       variable to tmp.  Documented the tmp option
-                       better in the function comments.  Fixed my
-                       stupidly commented out check for tmp on setting
-                       umask which I really like =>
-- nano.h:
-                       Made desc variable in shortcut struct a pointer
-                       instead of a fixed-length string.
-- utils.c:
-                       Fixed check for config.h before nano.h.
-- configure.in:
-                       New checks for getopt_long, getopt.h, removed
-                       CFLAGS and LDFLAGS changes.  Gonna have to run
-                       strip manually now =-) (Andy Kahn)
-                       Added check for HAVE_WRESIZE, new file acconfig.h
-                       (me).
-
-nano-0.7.9 - 01/24/2000
-- New autoindent feature.  Command flag 'i' or '--autoindent'.  New
-  function do_char() to clean up character output, global
-  variable autoindent in global.c. (Graham Mainwaring)
-- New flag 't' or '--tempfile', like Pico's -t mode, automatically saves
-  files on exit without prompting.  Affects do_writeout().  Also
-  do_writeout() now takes a parameter for if exiting.
-  Global variable temp_opt in global.c (Graham Mainwaring)
-- Preliminary spell program support.  Added command flag '-s' or
-  '--speller' for alternative speller command.  Added function do_spell()
-  and exit_spell() to nano.c.  New global variable alt_speller.
-- nano.c:
-  main():      We now ignore input of decimal 410 because these get entered
-               when we resize the screen.  Sorted options in getopt()
-               switch statement.
-  usage():     Sorted options and changed tabs to make room for -s option.
-  write_file():        Now takes a second parameter 'tmpfile', uses mask 0600 and
-               doesn't print the number of lines written on the statusbar.
-  global_init():
-               Added more initializations to globals to support do_spell().
-
-nano-0.7.8 - 01/23/2000
-- Stubbed justify function.  Affects main() in nano.c and nano.h defines.
-- Added Fkey equivalents for Pico compatibility.  Affects nano.h defines
-  and main() in nano.c
-- Removed redundant reset_cursor() calls from the blank() routines.
-- nano.c:
-  main():      Fixed typo in main while loop for NANO_ALT_REPLACE_KEY.
-               Removed check for isprint() characters in main while loop
-               for people with odd character sets *shrug*.  Added some X
-               window F-key combos.
-  read_line(): New function, consolidates of most of the special
-               sections of the file reading code. (Rob Siemborski)
-  do_replace(): Many scattered fixes. (Rob Siemborski)
-  write_file():        Added check for empty filename.
-- winio.c:
-  nanogetstr():        Fixes for deleting at places other than the end of the
-               buffer, cut support. (Adam Rogoyski)
-  blank_edit():        New function, blanks edit buffer.  Added call to it in
-               total_refresh().
-- configure:   Checks for glib if snprintf or vsnprintf aren't available
-               (Andy Kahn). Changed warning message when no termcap lib
-               is found.
-
-nano-0.7.7 - 01/19/2000
-- Option '-v' for version moved to '-V', because -v is Pico's "read only"
-  mode (affects getopt() in main() and usage() function in nano.c
-- New flag -c, always show cursor position.  Affects main() in nano.c and
-  statusbar() in winio.c
-- Option '-x' doesn't show help window at the bottom of the editor.
-  New variable no_help in nano.h and proto.h, affects main(), usage(),
-  and global_init() in nano.c, blank_bottombars(), clear_bottomwin(),
-  bottombars(), and do_yesno()  in winio.c  (I had to apply this patch by
-  hand =P) (Adam Rogoyski)
-- nano.c:
-  handle_sigwinch():   New function (Adam Rogoyski), handles resizing.
-  page_up(), page_down():      
-       - New functions.  We now set the cursor at the top right corner,
-         not at the center line, and page up and down a full screen
-         rather than a half screen. Original functions renamed to
-         page_up_center() and page_down_center().
-  main():
-       - Added check for keystroke key sequence 407 or NANO_CONTROL_Z
-         in main while loop because suspend mode was broken.  This should
-         fix it, at least for now.
-       - Added long option support (By popular harassment ;-) - Added
-         #include for getopt.h, changed getopt() to getopt_long().
-         Options added so far: --version (-V), --nowrap (-w), --suspend
-         (-z), --help (-h), --nohelp (-x).
-       - Rewrote signal statements (Adam Rogoyski)
-
-nano 0.7.6 - 01/15/2000
-- New ChangeLog format
-- nano.c:
-  main():      Bound CONTROL_H to backspace (oops)
-               Added more Alt-[-key combinations, for page up & down.
-  read_bytes():        New function (Adam Rogoyski)
-  read_file(): Optimizations - malloc()s *buf a little at a time rather
-               than one huge buffer, and replaced the strcat at the end
-               with an index variable.  Added call to read_bytes().
-  do_next_word(): New function, binding is control-space (0) (me)
-
-- winio.c:
-  bottombars():        Fixed non-expanding shortcut keys at bottom of screen.
-               (formula is extra space needed = COLS / 6 - 13).
-  actual_x() & strlenpt():     
-               Added bug#9 fix - when tabs % 8 == 0, we should only
-               increment tabs by 1.
-  titlebar():  Fixed overrun in titlebar on very long filenames.
-
-0.7.5  Pico 'last line' feature added (Rob Siemborski & me).  Eliminated
-       writing a newline at EOF. do_cursorpos and do_replace are now not
-       directly bound to signals but picked up as their control sequences
-       in raw mode. Bug fix in do_backspace. Fixed bug #9 (woohoo!)
-0.7.4  Optimized (obfuscated?) edit_refresh. Malloc() calls checked for
-       available memory, align bug fixed (Big Gaute).
-
---- As of version 0.7.4 TIP is renamed to nano.
-
-0.7.3  Fixed a double blank_statusbar() when jumping to first and last
-       lines.  Took out unnecessary updates in load_file. Bug fix in
-       do_left. Missing updates to totlines, fixed bug #7 (last line not
-       having a newline at the end doesn't get read, bugfix in do_replace
-       with replace all, more/better comments (Robert Siemborski)
-0.7.2  Our first patch accepted into the source! configure fixes
-       and optimizations (Erik Anderson).  Added missing stdarg.h to winio.c.
-       Bug fix in update_line for editing long lines. Fixed arguments
-       being put into the filename when none is specified. Preliminary
-       +line command argument function.
-0.7.1  configure tweak for better FreeBSD support. Removed refresh() from
-       edit_refresh to stop cursor "jumping" during screen updates.  This
-       will probably cause a bug or two. Replace is now Alt-R (@R) and
-       Goto line is Alt-G (@G), but they have control key aliases of ^\ and
-       ^_ respectively.  Made Control-F,B,N,P work like they do in Pico.
-       Control-G will become the Help key, but for now is stubbed out.
-0.7.0  Fixed missing stdlib.h from cut.c. Fixed a few message bugs in
-       findnextstr. Bound Control-D to Delete. Refixed segfault on zero
-       length file. Added Esc-[-A,B,C,D cursor key sequences.
-0.6.9  Preliminary cursor position function. Split up tip.c more, made
-       new files cut.c and winio.c. Fixed a bug in cut_marked_segment
-       that was leaving out a character.
-0.6.8  By request, optchr in main() is now an int.  Removed unneeded
-       globals. Bound functions for next/prev page, and wrote functions
-       do_home and do_end.
-0.6.7  Bugfix in do_uncut_text for totlines. Broke up open_file and
-       created read_file.  Implemented Insert File. Fixes in tipgetstr
-       for erroneous keystrokes. Added leave_cursor arg to do_yesno().
-0.6.6  Fixes in do_search(), do_replace(), do_writeout, and do_exit() for
-       aborted searches and more Pico-compatible messages. statusq() now
-       returns -2 on a blank entry instead of -1. Bug fix in actual_x().
-0.6.5  More BSD compatibility.  Fixed two bugs in do_uncut_text
-       regarding buffers with filebot in them.  Fixins in do_backspace
-       and do_enter. Removed unused variables. Removed strip_newline.
-0.6.4  Took out the awful newlines from each string buffers.  This will
-       certainly cause more bugs. Fixes in do_exit(). Better empty file
-       handling (I hope).
-0.6.3  Implemented ^E.  Removed now unneeded wrapline from filestruct.
-       do_enter() rewritten.
-0.6.2  Better default file permissions. Complete rewrite of do_wrap().
-       Better handling of editing with cursor near COLS - 1.
-0.6.1  Starting to implement wrapping toggle. Fix for unhandled control
-       codes being entered into the buffer. Bug fix in actual_x; more
-       > COLS - 1 functionality, especially on lines with TABs.  Fixed being
-       locked into cutbuffer when cutting more than one marked screen of
-       text.
-0.6.0  We have TABs!!!  To do this, placewewant is now set to the actual
-       width on the screen we want to be, not an index of current->data.
-       New functions xplustabs and actual_x convert the actual place
-       the cursor should be on the screen to and from the place in the
-       string.
-0.5.5  Changed do_right to test do_down before setting current_x to 0,
-       eliminating the "looping" on the last line when holding the right
-       arrow.  Preliminary support for longer than COLS - 1 lines.
-       Wrote do_delete.
-0.5.4  Fixed a bug in total_update that wasn't repainting the screen
-       properly.  tipgetstr is much more messy but text is now more
-       editable ;)  Fixed crash on entering a new file, hopefully.  Awful
-       stub for tab handling, only in do_right() to save me some sanity.
-0.5.3  Added check for malloc.h.  Implementing uncut from marker slowly.
-       Fixed a few bugs in do_uncut when not uncutting from marked text.
-       I would not trust your data with the mark code right now, but then
-       we're not at version 1.0 yet so dont trust anything ;)
-0.5.2  Added reset_cursor() before end of update_line so cursor doesn't
-       jump after each keystroke entered. Select text stubbed. Fixed
-       a bug in total_refresh().  Setting a mark will highlight properly,
-       but does not actually affect what gets put in the cutbuffer (yet).
-0.5.1  Writing a file out causes modified to be set back to 0.  Good.
-       Set_modified function written.  Cut and uncut text now set
-       modified when called.
-0.5.0  Half way there!  Implemented write out, save function seems
-       stable.  Changed statusbar blank routing to not refresh, a separate
-       program calls it and then refreshes.  Made the program not clear
-       the screen on exit, just the bottom two lines (like Pico).
-0.4.2  Implemented replace all in replace function.  Crude exit function
-       (asks yes or no if modified but does not write to file).
-0.4.1  Implementing search & replace.  Fixed crash on deleting at top of
-       edit buffer.  Implemented "timeout" of statusbar messages.
-       Implemented ^A and ^E (beginning and end of line).
-0.4.0  Split code into global.c and proto.h to allow for better multiple
-       file handling.  Added #defines for the majority of the shortcut
-       keys in tip.h for easy modification.
-0.3.1  Write edit_refresh which doesn't move the screen around, just
-       updates what's there already.  do_wrap() and do_enter() added.
-0.3.0  Preliminary cutbuffer (cut and uncut) support.
-0.2.7   Check for Modification added.  do_search() works.
-0.2.5  Rewrite of file data struct.
-0.2    Read in data to buffer, bound keystrokes to stub functions,
-       initial cursor movement on screen.  Initial autoconf support.
-0.1    Initial program setup w/ncurses
-
-$Id$
+2007-01.29  David Lawrence Ramsey  <pooka109@cox.net>
+
+       * ChangeLog: Rework the 2.1 branch's changelog to be more
+       readable, per Jordi Mallach's suggestion.
+       * ChangeLog.pre-2.1: Move the 2.0 branch's changelog here, per
+       Jordi Mallach's suggestion.
+       * src/help.c (help_init): Add a missing space to the "Execute
+       Command" help text.
diff --git a/ChangeLog.pre-2.1 b/ChangeLog.pre-2.1
new file mode 100644 (file)
index 0000000..72d5957
--- /dev/null
@@ -0,0 +1,8369 @@
+GNU nano 2.0.3 - 2007.01.29
+- General:
+       - Miscellaneous comment fixes. (DLR)
+       - More int -> bool conversions. (DLR)
+       - Don't install the nanorc manpages or generate their HTML
+         versions if nano is built without nanorc support.  Changes to
+         configure.ac, doc/man/Makefile.am, and doc/man/fr/Makefile.am.
+         (DLR)
+       - Simplify the commands that generate HTML documentation in
+         order to remove unnecessary usage of cat.  Changes to
+         doc/man/Makefile.am, doc/man/fr/Makefile.am, and
+         doc/texinfo/Makefile.am. (DLR)
+- files.c:
+  do_writeout()
+       - When setting retval to the return value of
+         write_(marked_)?file(), use the "?" operator instead of an
+         if/else clause. (DLR)
+  is_dir()
+       - Don't assign dirptr's value using buf until we've asserted
+         that buf isn't NULL. (DLR)
+       - Remove unneeded assert. (DLR)
+- proto.h:
+       - Add missing is_dir() prototype. (DLR)
+- search.c:
+  regexp_init()
+       - Don't assign rc's value via regcomp() until we've asserted
+         that regexp_compiled is FALSE. (DLR)
+- text.c:
+  do_alt_speller()
+       - Rename variable altspell_error to alt_spell_error, for
+         consistency. (DLR)
+  do_spell()
+       - Rename variable i to status, for clarity. (DLR)
+- winio.c:
+  do_credits()
+       - Update the last copyright notice to include 2007. (DLR)
+- Makefile.am:
+       - Add README.CVS to EXTRA_DIST, so that nano's CVS checkout
+         instructions aren't only available in its CVS snapshots. (DLR)
+- README:
+       - Add more miscellaneous cosmetic fixes. (DLR)
+- README.CVS:
+       - Update for the 2.0 branch of nano. (DLR)
+- NEWS:
+       - Formatting fix. (DLR)
+- m4/glib-2.0.m4:
+       - Import the latest version of this file from glib 2.10.3. (DLR)
+- doc/faq.html:
+       - Update section 4.1 to describe how to open files with names
+         beginning with '+' at specified columns as well as lines.
+         (DLR)
+- doc/man/fr/Makefile.am:
+       - Set mandir before setting man_MANS, to more closely match
+         doc/man/Makefile.am. (DLR)
+- doc/syntax/python.nanorc:
+       - Improve string highlighting regexes. (Mike Frysinger)
+
+GNU nano 2.0.2 - 2006.12.20
+- General:
+       - Miscellaneous comment fixes. (DLR)
+- browser.c:
+  do_browser()
+       - Properly handle directories that contain nulls. (DLR)
+- files.c:
+  do_insertfile()
+       - Properly handle filenames and executable commands that contain
+         nulls. (DLR)
+  write_file()
+       - Properly handle filenames that contain nulls. (DLR)
+  do_writeout()
+       - Fix a segfault when we can't get the full path of either the
+         filename we want to save under or the original filename. (DLR,
+         found by Mike Frysinger)
+- nano.h:
+       - Rename NANO_ALT_REPLACE_KEY to NANO_REPLACE_ALTKEY, for
+         consistency. (DLR)
+       - Rename NANO_ALT_.* and NANO_.*ALTKEY to NANO_META_.* and
+         NANO_.*METAKEY, for consistency. (DLR)
+- search.c:
+  update_history()
+       - Fix minor memory leak. (DLR)
+- text.c:
+  do_spell()
+       - When setting i to the return value of write_(marked_)?file(),
+         use the "?" operator instead of an if/else clause. (DLR)
+  do_verbatim_input()
+       - Fix minor memory leak. (DLR)
+- winio.c:
+  parse_kbinput()
+       - Add missing break. (DLR)
+       - Fix minor memory leak. (Itay Perl)
+  parse_verbatim_kbinput()
+       - Fix minor memory leak. (DLR)
+  edit_draw()
+       - Fix potential warnings when assigning -1 to paintlen by using
+         if/else clauses instead of "?" operators. (DLR)
+- configure.ac:
+       - Reword several option descriptions, for clarity. (DLR)
+- doc/faq.html:
+       - Add miscellaneous wording and capitalization fixes. (DLR)
+- BUGS:
+       - Add miscellaneous cosmetic fixes. (DLR)
+- README:
+       - Update for the 2.0 branch of nano. (DLR)
+
+GNU nano 2.0.1 - 2006.11.20
+- General:
+       - Miscellaneous comment fixes. (DLR)
+       - Fix copyright notices to not abbreviate the year list using a
+         range.  Changes to do_credits() and all source files. (DLR)
+- files.c:
+  get_full_path()
+       - Remove unneeded assert. (DLR)
+       - Fix problem where only paths would be returned when both paths
+         and filenames should have been. (DLR)
+  do_writeout()
+       - For consistency, when saving a file with no name, don't allow
+         overwriting an existing file when in restricted mode. (DLR)
+       - Fix problem where a file could sometimes be overwritten
+         without a warning prompt. (DLR)
+- winio.c:
+  do_replace_highlight()
+       - Include the code to display zero-length matches even when
+         regex.h isn't found, as it can also be used to display
+         zero-length Unicode characters. (DLR)
+- doc/rnano.1, doc/fr/rnano.1:
+       - Add missing "(C)" to the copyright notice in the comments.
+         (DLR)
+- doc/nano.texi:
+       - Remove unneeded "." from the copyright notice in the comments.
+         (DLR)
+- NEWS:
+       - Add missing entries for nano 1.0.2 and 1.0.3, since 1.1.0
+         includes their changes. (DLR)
+
+GNU nano 2.0.0 - 2006.11.06
+- General:
+       - Miscellaneous comment fixes. (DLR)
+       - Add syntax for POV-Ray files.  New file doc/syntax/pov.nanorc;
+         changes to doc/nanorc.sample.in and doc/syntax/Makefile.am.
+         (Donnie Berkholz, minor tweaks by DLR)
+- AUTHORS:
+       - Update for the 2.0 branch of nano. (DLR)
+- nano.spec.in:
+       - Update links for the 2.0 branch of nano. (DLR)
+       - Update for newer RPM-based distributions. (DLR, adapted from
+         the nano 1.3.12-1.1.spec file in Fedora Rawhide)
+       - Delete the changelog section, as it hasn't been kept up to
+         date, and all its changes are documented here in any case.
+         (DLR)
+- doc/faq.html:
+       - Update links for the 2.0 branch of nano. (DLR)
+- doc/nano.1, doc/nanorc.5, doc/rnano.1:
+       - Add minor wording fixes. (DLR)
+- doc/man/fr/nano.1, doc/man/fr/nanorc.5, doc/man/fr/rnano.1:
+       - Updated manpage translations by Jean-Philippe GuĂ©rard.
+- doc/nano.texi:
+       - Add minor wording and punctuation fixes. (DLR)
+
+GNU nano 1.9.99pre3 - 2006.10.25
+- chars.c:
+  nstrncasecmp()
+       - When returning, use the "?" operator instead of an if/else
+         clause. (DLR)
+- cut.c:
+  do_cut_text()
+       - When uncutting text in the process of copying it, always set
+         placewewant, as do_uncut_text() does, so that the current line
+         is always updated properly. (DLR)
+- files.c:
+  input_tab()
+       - Since the field precision operator used in the sprintf() uses
+         ints and not size_t's, replace it with two strncpy()s, which
+         use size_t's, and a null termination. (DLR)
+- help.c:
+  parse_help_input()
+       - Add 'E' and 'e' as aliases for Exit, for consistency with the
+         file browser. (DLR)
+- m4/ac_define_dir.m4:
+       - Import the latest version of this file from
+         http://autoconf-archive.cryp.to/ac_define_dir.m4. (DLR)
+- doc/faq.html:
+       - Update the question in section 4.13 to match the version of it
+         in the answer section. (DLR)
+- doc/syntax/c.nanorc:
+       - Simplify "undef", "ifn?def", "elif", and "else" in the
+         preprocessor regexes. (DLR)
+
+GNU nano 1.9.99pre2 - 2006.10.02
+- General:
+       - Miscellaneous comment fixes. (DLR)
+       - Make sure that the statusbar cursor position is always
+         properly reset when we get out of all statusbar prompts.
+         Changes to do_insertfile(), do_writeout(),
+         handle_sigwinch(), main(), and do_prompt_abort(). (DLR)
+- prompt.c:
+  do_statusbar_input()
+       - If we get a verbatim input sequence ending with Ctrl-J, remove
+         the Ctrl-J from the buffer before interpreting it as Enter, so
+         that it doesn't erroneously fall through to the edit window
+         and get interpreted as Justify. (DLR)
+- winio.c:
+  get_input()
+       - Simplify to avoid an unnecessary key_buffer_len check. (DLR)
+- doc/syntax/c.nanorc:
+       - Add "size_t" and "ssize_t" to the types regexes. (DLR,
+         suggested by Mike Frysinger)
+       - Simplify "signed" and "unsigned" in the types regexes. (DLR)
+
+GNU nano 1.9.99pre1 - 2006.08.29
+- General:
+       - Miscellaneous comment fixes. (DLR)
+       - Fix option descriptions.  At least one of the two parts of
+         +LINE,COLUMN must be specified at all times; COLUMN is not the
+         only optional value.  Also, fix wording problems in
+         -O/--morespace and -W/--wordbounds.  Changes to usage(),
+         UPGRADE, nano.1, nanorc.5, rnano.1, nano.texi, and
+         nanorc.sample.in. (DLR)
+       - Fix mouse support so that it truly ignores everything except
+         releases and clicks of button 1.  Changes to
+         enable_mouse_support() and get_mouseinput(). (DLR)
+       - In certain places, call wnoutrefresh(bottomwin) after calling
+         blank_statusbar(), in order to ensure that the statusbar is
+         actually blanked.  Changes to do_help(), do_continue(),
+         handle_sigwinch(), and update_statusbar_line(). (DLR)
+       - If the mark isn't on, allow Meta-} and Meta-{ to indent and
+         unindent only the current line, just as it would if the mark
+         covered only the current line, instead of displaying a
+         statusbar message and quitting.  Changes to shortcut_init(),
+         do_indent_marked() (renamed do_indent()),
+         do_indent_marked_void() (renamed do_indent_void()),
+         do_unindent_marked_void() (renamed do_unindent()), and
+         UPGRADE. (DLR, suggested by John M. Gabriele)
+       - Consolidate do_scroll_(up|down)() into do_(up|down)(), as
+         they have a lot of duplicate code.  New functions do_up_void()
+         and do_down_void(); changes to shortcut_init(), do_up(),
+         do_scroll_up(), do_down(), do_scroll_down(), do_left(), and
+         do_right(). (DLR)
+       - Make Jordi's email address, and the description of what the
+         manual pages were written for, consistent in the
+         documentation.  Changes to AUTHORS, nano.1, nanorc.5, and
+         rnano.1. (DLR, based on suggestions by Jordi)
+       - Don't include sys/ioctl.h in nano.c when NANO_TINY is defined,
+         as ioctl() is never used then. (DLR)
+       - Improve the display of bools in debugging statements.  Changes
+         to parse_kbinput(), get_escape_seq_kbinput(),
+         parse_escape_seq_kbinput(), get_shortcut(), and get_toggle().
+         (DLR)
+       - Rename the values of the scroll_dir enum to UP_DIR and
+         DOWN_DIR, since UP is defined as a termcap value in Tru64's
+         and NetBSD 3.0's curses.h, which breaks compilation on those
+         systems.  Changes to do_page_up(), do_page_down(), do_up(),
+         do_down(), nano.h, and edit_scroll(). (DLR; found by Daniel
+         Richard G. and Adam Wysocki, repectively)
+       - Rename the DISABLE_ROOTWRAP #define to DISABLE_ROOTWRAPPING.
+         (DLR)
+       - When using slang 2.x, call SLutf8_enable() with an argument of
+         1 instead of TRUE, as that's the proper way to enable its
+         UTF-8 support.  Changes to main() and configure.ac. (DLR)
+       - Fix punctuation relating to "i.e." in various comments and
+         documentation. (Benno Schulenberg and DLR)
+       - Make bad_mbchar a static const char* const in chars.c, as its
+         value doesn't change. (DLR)
+       - Add various clarifications to translated strings.  Changes to
+         do_insertfile_void(), shortcut_init(), toggle_init(),
+         help_init(), print_view_warning(), usage(), and do_mark().
+         (Benno Schulenberg, minor tweaks by DLR)
+       - Properly preserve the cursor position when going from the
+         "Read File" or "Save File As" prompt to the file browser to
+         the "Go To Directory" prompt, and then canceling back to the
+         "Read File" or "Save File As" prompt.  Changes to
+         get_prompt_string() and do_prompt(). (DLR)
+       - Rename the parameter old_pww to pww_save in
+         need_statusbar_horizontal_update(), need_horizontal_update(),
+         need_vertical_update(), and edit_redraw(); and rename the
+         variable old_pww to pww_save in do_search() and do_research();
+         for consistency. (DLR)
+- browser.c:
+  do_browser()
+       - Refactor the mouse support, modeling it after do_mouse() for
+         consistency. (DLR)
+       - Remove unneeded call to blank_edit(). (DLR)
+       - After entering "..", select the directory we were in before
+         instead of the first filename in the list, as Pico does. (DLR)
+       - Simplify screen update handling and exiting. (DLR)
+       - Fix potential segfault when going to a directory that doesn't
+         begin with '/'. (DLR)
+  do_browse_from()
+       - During the operating directory check, if path isn't NULL,
+         don't bother freeing it before mallocstrcpy()ing operating_dir
+         into it, as the latter operation will free it. (DLR)
+       - Don't bother freeing path if it's NULL. (DLR)
+  browser_init()
+       - Fix off-by-one error when calculating longest that kept the
+         rightmost column of the screen from being used. (DLR)
+       - Calculate width here instead of in browser_refresh(), as it's
+         more consistent. (DLR)
+       - If filelist is initialized, free it here instead of in several
+         places in do_browser(). (DLR)
+  browser_refresh()
+       - Simplify. (DLR)
+       - Fix problems where translated versions of "(dir)" could be
+         truncated, and where file sizes could be too long. (DLR)
+       - For the ".." entry, display "(parent dir)" instead of "(dir)",
+         as Pico does. (DLR)
+       - If a filename is too long, truncate it and display an ellipsis
+         before it, as titlebar() does. (DLR)
+       - Add translator comments explaining the maximum intended
+         lengths of "(dir)" and "(parent dir)". (DLR)
+       - Fix problem where width wouldn't be properly initialized if
+         the file list took up one line or less. (DLR)
+       - Don't display overly long filenames with ellipses if the
+         number of columns is extremely small. (DLR)
+  browser_select_filename()
+       - New function, used to select a specific filename in the list.
+         (DLR)
+  findnextfile()
+       - Simplify the uses of tail(). (DLR)
+  striponedir()
+       - Since all the strings passed to this are dynamically
+         allocated, use null_at() to strip the directory from the
+         string.  Also, return the stripped path instead of modifying
+         path. (DLR)
+- chars.c:
+  mbstrncasecmp(), mbstrcasestr(), mbrevstrcasestr()
+       - Don't allocate space for multibyte characters until we've
+         asserted that the parameters we're using aren't NULL. (DLR)
+- files.c:
+  do_insertfile()
+       - If we execute a command in a new buffer, move back to the
+         beginning of the first line of the buffer afterwards, for
+         consistency. (DLR)
+       - If we don't insert a file into a new buffer, properly update
+         the x-coordinate to account for the number of characters
+         inserted on the current line. (DLR)
+  get_full_path()
+       - Don't return NULL when the current directory doesn't exist, as
+         we can still recover from that. (DLR, found by Mike Frysinger)
+       - Add various cleanups. (DLR)
+- global.c:
+  sc_init_one(), shortcut_init()
+       - Don't include blank_after when DISABLE_HELP is defined, as
+         it's never used then. (DLR)
+  shortcut_init()
+       - Remove the ^X shortcut for CutTillEnd at the search prompt, as
+         official Pico doesn't include it, and it can be confused with
+         Exit. (DLR, suggested by Benno Schulenberg)
+       - Make the help shortcut for the "Go to Directory" prompt call
+         do_browser_help() instead of do_help_void(), as this prompt is
+         only accessible inside the file browser. (DLR, found by Benno
+         Schulenberg)
+  toggle_init()
+       - Don't include desc or blank_after when DISABLE_HELP is
+         defined, as neither are ever used then. (DLR)
+       - Make sure that a blank line is not displayed after the Meta-Q
+         toggle when mouse support is disabled and we're in restricted
+         mode, and that it is displayed all other times. (DLR)
+  toggle_init_one()
+       - Don't include desc or blank_after when DISABLE_HELP is
+         defined, as neither are ever used then. (DLR)
+- help.c:
+  do_help()
+       - Simplify screen update handling and exiting. (DLR)
+       - Don't allow moving down a page when the last line of the help
+         text is onscreen. (DLR)
+  help_init()
+       - Adjust the first two chunks of the main help text so that
+         they're no more than 509 characters again. (DLR)
+- move.c:
+  do_scroll_up(), do_scroll_down()
+       - Fix problems where, after scrolling, the previous and current
+         lines would not be updated properly if the current line was
+         not the first or last line of the edit window. (DLR, found by
+         Mike Frysinger)
+- nano.c:
+  handle_sigwinch()
+       - Just in case we're in the statusbar prompt, reset the
+         statusbar cursor position when resizing the window. (DLR)
+- nano.h:
+       - Remove the manual disabling of color support if regex.h isn't
+         found, as configure.ac now handles that. (DLR)
+- rcfile.c:
+  parse_rcfile()
+       - Add missing ENABLE_COLOR #ifdef around the second check for a
+         syntax with no color commands, to fix compilation with rcfile
+         support and without color support. (Daniel Richard G.)
+- search.c:
+  replace_regexp()
+       - Remove unnecessary casting of c to int. (DLR)
+- text.c:
+  execute_command()
+       - Remove the marking of the file as modified, as do_insertfile()
+         now handles that. (DLR)
+- utils.c:
+  digits()
+       - Tweak to remove the assumption that n is always positive,
+         although it always is in this particular case. (DLR)
+- winio.c:
+  parse_kbinput()
+       - Properly handle combined meta and escape sequences, so that
+         e.g. Meta-/ will work properly when the / is on the numeric
+         keypad and NumLock is off.  Also, properly handle combined
+         control character and escape sequences, so that e.g. Esc Esc /
+         will work properly when the / is on the numeric keypad and
+         NumLock is off. (DLR)
+       - Translate extended keypad keys to their ASCII equivalents even
+         when we hit Escape once or twice before typing them, for
+         consistency. (DLR)
+       - If they're defined, translate KEY_SUP into NANO_PREVLINE_KEY
+         and KEY_SDOWN into NANO_NEXTLINE_KEY, since they are sometimes
+         generated by Shift-Up and Shift-Down. (DLR)
+  parse_escape_seq_kbinput()
+       - Handle unknown and unignored escape sequences once here
+         instead of twice in parse_kbinput(). (DLR)
+       - Don't ignore escape sequences anymore.  Instead, return the
+         corresponding key so that parse_kbinput() can translate it.
+         (DLR)
+  display_string()
+       - Properly handle buf[start_index]'s being a null terminator.
+         (DLR)
+  edit_draw()
+       - Simplify the setting of paintlen. (DLR)
+  titlebar()
+       - Don't display overly long filenames with ellipses if the
+         number of columns is extremely small. (DLR)
+       - Don't display any blank space for the state if we're in the
+         file browser, as Pico doesn't. (DLR)
+- configure.ac:
+       - If regex.h isn't found, display an error message if we try to
+         enable color support. (DLR)
+       - Fix the spacing of the error message displayed when slcurses.h
+         isn't found. (DLR)
+       - If we use the --disable-wrapping option, ignore the
+         --disable-wrapping-as-root option. (DLR)
+       - Add minor cosmetic tweaks. (DLR)
+- doc/Makefile.am:
+       - Don't include nanorc.sample in EXTRA_DIST, as it's only useful
+         when we're building from source, as opposed to building a
+         distribution. (DLR)
+       - Tweak to remove usage of the += operator again. (DLR)
+- doc/man/Makefile.am:
+       - Tweak to remove usage of the += operator again. (DLR)
+- doc/man/fr/nano.1, doc/man/fr/nanorc.5, doc/man/fr/rnano.1:
+       - Updated manpage translations by Jean-Philippe GuĂ©rard.
+- doc/faq.html:
+       - Update section 5.3 again to not state "the latest development
+         version" before 1.3.12, as it's no longer accurate. (DLR)
+       - Add some minor spacing fixes. (DLR)
+- doc/nano.texi:
+       - Add missing description of the -O/--morespace command line
+         option. (DLR)
+- doc/syntax/c.nanorc:
+       - Since .i and .ii are preprocessed C and C++ output, colorize
+         them here. (Mike Frysinger)
+       - Remove redundancy from the file extension regexes. (DLR)
+- doc/syntax/ruby.nanorc:
+       - Add missing blank line after the first comment, for
+         consistency. (DLR)
+       - Improve highlighting of constants. (John M. Gabriele, minor
+         tweaks by DLR)
+
+GNU nano 1.3.12 - 2006.06.26
+- General:
+       - Miscellaneous comment fixes. (DLR)
+       - Implement filename searches in the file browser.  New
+         functions filesearch_init(), findnextfile(),
+         findnextfile_wrap_reset(), filesearch_abort(),
+         do_filesearch(), do_fileresearch(), do_first_file(),
+         do_last_file(), do_help_void(), and do_browser_help(); changes
+         to do_browser(), parse_browser_input(), shortcut_init(),
+         do_help(), and help_init(). (DLR)
+       - Open all files in binary mode for consistency and robustness.
+         Changes to load_history() and do_rcfile(). (DLR)
+       - Change translator-specific comments in global.c and prompt.c
+         so that they show up in nano.pot, and make them all
+         consistent. (Benno Schulenberg and DLR)
+       - Reduce USE_UTF8 to a static bool in chars.c, allow nano.c to
+         set it via a function, and allow winio.c to read its value
+         when needed.  New functions utf8_init() and using_utf8();
+         changes to is_alnum_mbchar(), is_blank_mbchar(),
+         is_cntrl_mbchar(), is_punct_mbchar(), control_mbrep(),
+         mbrep(), mbwidth(), mb_cur_max(), make_mbchar(),
+         parse_mbchar(), mbstrncasecmp(), mbstrcasestr(),
+         mbrevstrcasestr(), mbstrnlen(), mbstrchr(), mbstrpbrk(),
+         mbrevstrpbrk(), has_blank_mbchars(), is_valid_mbstring(),
+         main(), display_string(), and do_credits(). (DLR)
+       - Add the ability to use bold text instead of reverse video
+         text, via the -D/--boldtext command line option and the
+         "boldtext" rcfile option.  Changes to browser_refresh(),
+         do_help(), usage(), main(), update_statusbar_prompt(),
+         do_yesno_prompt(), titlebar(), statusbar(), onekey(),
+         edit_draw(), do_replace_highlight(), nano.1, nanorc.5,
+         nano.texi, and nanorc.sample. (DLR, suggested by Benno
+         Schulenberg)
+       - Add the ability to use self-contained color syntaxes from
+         separate files, accessible in the nanorc via the "include"
+         command.  New function parse_include(); changes to
+         parse_rcfile(), do_nanorc(), nanorc.5, and nanorc.sample.
+         (Victor Ananievsky, Brand Huntsman and DLR)
+       - Change references to the "help menu" to the "help text
+         display" refer to display, for clarity.  Changes to
+         shortcut_init(), configure.ac, and faq.html. (DLR, suggested
+         by Benno Schulenberg)
+       - Adjust the shortcut list display and related mouse support to
+         not waste the last few characters of bottomwin when the screen
+         width isn't a clean multiple of the column width.  Changes to
+         do_mouseinput() and bottombars(). (Benno Schulenberg, minor
+         tweaks by DLR)
+       - Add several blank entries to the main shortcut list and the
+         global toggle list, in order to make the help text easier to
+         read.  Changes to sc_init_one(), toggle_init(),
+         toggle_init_one(), shortcut_init(), get_toggle(), and
+         help_init(). (DLR, suggested by Benno Schulenberg)
+       - Reduce NO_RCFILE to a static bool in nano.c, since it's only
+         used there.  Changes to finish() and main(). (DLR)
+       - Readd the Cancel -> Exit aliases for the file browser and help
+         browser.  New function parse_help_input(); changes to
+         parse_browser_input() and do_help(). (DLR, suggested by Benno
+         Schulenberg)
+       - Add the ability to copy text into the cutbuffer without
+         cutting it, via Meta-^ (Meta-6).  Note that this is disabled
+         when NANO_TINY is defined.  New functions do_cut_text_void()
+         and do_copy_text(); changes to do_cut_text(), shortcut_init(),
+         and do_input(). (DLR, suggested by Ken Tyler)
+       - Add the ability to indent and unindent all marked lines of
+         text, via Meta-} (Meta-]) and Meta-{ (Meta-[).  New functions
+         do_indent_marked(), do_indent_marked_void(), and
+         do_unindent_marked_void(); changes to shortcut_init(). (Chris
+         and DLR)
+       - Change the shortcut to find the matching bracket to Ctrl-].
+         Changes to shortcut_init() and do_statusbar_input(). (DLR)
+       - Drop the Meta-] and Meta-[ aliases for Meta-} and Meta-{, and
+         change the shortcut to find the matching bracket from Ctrl-]
+         back to Meta-], since Ctrl-] is used as the telnet escape key.
+         Changes to shortcut_init() and do_statusbar_input(). (DLR,
+         found by Chris)
+       - Add the ability to move to the first and last line of the help
+         text and the first and last file in the file browser via
+         Meta-\ (Meta-|) and Meta-/ (Meta-?).  Changes to do_browser(),
+         shortcut_init(), and do_help(). (DLR)
+       - Allow unjustifying if we resize the window immediately after
+         justifying, as Pico does, and make input handling across
+         resizes more consistent.  Changes to handle_sigwinch(),
+         main(), get_kbinput(), parse_kbinput(), get_byte_kbinput(),
+         and get_unicode_kbinput(); removal of reset_kbinput(). (DLR)
+       - Handle statusbar blanking in two places instead of many, so
+         that it always works consistently.  Changes to do_browser(),
+         do_cut_text(), do_uncut_text(), do_first_line(),
+         do_last_line(), do_page_up(), do_page_down(), do_para_begin(),
+         do_para_end(), do_para_end(), do_next_word(), do_prev_word(),
+         do_home(), do_end(), do_up(), do_scroll_up(), do_down(),
+         do_scroll_down(), do_left(), do_right(), do_indent_marked(),
+         do_verbatim_input(), and get_kbinput(). (Benno Schulenberg,
+         minor tweaks by DLR)
+       - Handle prepending of wrapped text in one place instead of
+         many, so that it always works consistently.  Changes to
+         do_uncut_text(), do_insertfile(), do_page_up(),
+         do_page_down(), do_up(), do_scroll_up(), do_down(),
+         do_scroll_down(), do_input(), do_search(), do_research(), and
+         do_delete(). (DLR)
+       - Ignore unhandled meta key sequences, function keys, and escape
+         sequences, indicate it on the statusbar, and beep when we get
+         an unhandled shortcut or toggle, as Pico does.  To get this to
+         work properly, add a shortcut for moving to the next
+         search/replace string.  New function is_ascii_cntrl_char();
+         changes to shortcut_init(), do_input(), do_statusbar_input(),
+         get_prompt_string(), and parse_kbinput(). (DLR, suggested by
+         Nick Warne and Benno Schulenberg)
+       - Explain the mouse support in more detail, and sync the text of
+         its description across all documentation.  Changes to nano.1,
+         nanorc.5, nanorc.sample, and nano.texi. (Benno Schulenberg and
+         DLR)
+       - If we're using verbatim input to enter a Unicode sequence,
+         indicate it on the statusbar, and add a translator comment
+         explaining the message.  Also, refactor get_unicode_kbinput()
+         to remove redundant code.  New function add_unicode_digit();
+         changes to get_unicode_kbinput() and parse_verbatim_kbinput().
+         (Benno Schulenberg, minor tweaks by DLR)
+       - Allow normal typing of high-bit control characters, as Pico
+         does.  Changes to do_output() and do_statusbar_output(). (DLR)
+       - Move color regexes into separate files, make nanorc.sample
+         reference them, and make them install properly.  In the
+         process, rename nanorc.sample to nanorc.sample.in, put
+         @PKGDATADIR@ at the beginning of all nanorc file paths, add
+         needed AC_DEFINE_DIR macro from the Autoconf Macro Archive at
+         http://autoconf-archive.cryp.to/ac_define_dir.m4, and make
+         configure.ac do the substitution, so that the proper paths
+         will always be used in nanorc.sample.  New files
+         m4/ac_define_dir.m4, doc/syntax/Makefile.am,
+         doc/syntax/asm.nanorc, doc/syntax/c.nanorc,
+         doc/syntax/groff.nanorc, doc/syntax/html.nanorc,
+         doc/syntax/java.nanorc, doc/syntax/man.nanorc,
+         doc/syntax/mutt.nanorc, doc/syntax/nanorc.nanorc,
+         doc/syntax/patch.nanorc, doc/syntax/perl.nanorc,
+         doc/syntax/python.nanorc, doc/syntax/ruby.nanorc,
+         doc/syntax/sh.nanorc, and doc/syntax/tex.nanorc; changes to
+         configure.ac, nano.spec.in, doc/Makefile.am, and
+         m4/Makefile.am; removal of doc/nanorc.sample. (DLR)
+       - Replace usage of the bool curses_ended with the isendwin()
+         function, and remove curses_ended.  Changes to do_suspend().
+         (DLR)
+       - Remove the workaround for glibc 2.2.3's broken regexec(), and
+         replace it with a FAQ entry explaining the problem, since it
+         could break anything using extended regular expressions, and
+         glibc 2.2.3 is old.  Changes to configure.ac, faq.html,
+         nano.h, proto.h, and UPGRADE; removal of safe_regexec(). (DLR)
+       - Minor wording fixes to various messages.  Changes to
+         load_history(), shortcut_init(), toggle_init(), usage(),
+         do_suspend(), do_input(), rcfile_error(), parse_argument(),
+         parse_rcfile(), nano.1, nano.texi, and nanorc.sample.in.
+         (Benno Schulenberg, minor tweaks by DLR and Nick Warne)
+       - Make suspension clear the screen and put the cursor on the
+         last line before displaying anything, as Pico does.  New
+         functions disable_mouse_support() and enable_mouse_support();
+         changes to do_mouse(), do_suspend(), do_continue(), and
+         terminal_init(). (DLR)
+- browser.c:
+  do_browser()
+       - Reference NANO_GOTODIR_(ALT|F)?KEY instead of
+         NANO_GOTOLINE_(ALT|F)?KEY for the "Go to Directory" shortcut.
+         (DLR)
+  parse_browser_input()
+       - Remove redundant key checks. (DLR)
+  browser_refresh()
+       - Rename variable editline to line, for consistency. (DLR)
+       - Change variable i from an int to a size_t in order to match
+         selected, which it's compared against. (DLR)
+- color.c:
+  color_update()
+       - Fix incorrect setting of defcolor, which prevented the
+         reserved "default" syntax from being handled correctly. (DLR)
+- cut.c:
+  cut_to_eof()
+       - New function, containing the main functionality of
+         do_cut_till_end(). (DLR)
+  do_cut_text()
+       - Add parameter cut_till_end, to indicate when we're cutting
+         from the current cursor position to the end of the file, and
+         call cut_to_eof() when it's TRUE. (DLR)
+  do_cut_till_end()
+       - Convert to a wrapper for do_cut_text(). (DLR)
+- files.c:
+  open_file()
+       - Remove redundant wording in the error message when we try to
+         open a device file. (DLR)
+  do_insertfile()
+       - Use actual gettext calls instead of no-ops, for consistency.
+         (DLR)
+  safe_tempfile()
+       - Don't ignore $TMPDIR if it's set but blank, for consistency.
+         (DLR)
+  write_file()
+       - Don't free backupname before displaying it in a statusbar error
+         message. (DLR, found by Bill Marcum)
+       - If we can't save the backup file for some reason, at least
+         save the original file, if possible, since that's better than
+         saving nothing. (DLR, problem found by Bill Marcum, solution
+         suggested by Jordi)
+       - Clarify the error messages when creating a temporary file or
+         writing one for prepending fails. (DLR)
+       - Simplify the routine for closing the file just before we
+         indicate success on the statusbar. (DLR)
+  do_writeout()
+       - Fix problem where the modifiers at the "Write File" prompt
+         were marked for translation via gettext no-ops but never
+         actually translated. (Benno Schulenberg)
+  free_chararray()
+       - Assert that array isn't NULL, for consistency with the other
+         free_.*() functions. (DLR)
+- global.c:
+  shortcut_init()
+       - Change the cursor position display help text to use "display"
+         instead of "show", for consistency. (DLR)
+       - In the main shortcut list, move the "Refresh" shortcut down to
+         after the "Enter" shortcut, for consistency. (DLR)
+       - Add the ability to move to the first and last line of the
+         current file from the main list via Meta-\ (Meta-|) and Meta-/
+         (Meta-?).  Also, make sure all the equivalent shortcuts in the
+         search, replace, and "Go To Line" lists accept both the meta
+         keys and the equivalent function keys. (DLR)
+       - Reorganize the main shortcut list to make it easier for new
+         users.  It now lists the twelve Pico-compatible default
+         operations, followed by search and replace shortcuts, followed
+         by cut and paste shortcuts, followed by marking shortcuts,
+         followed by back and forth movement shortcuts, followed by
+         start and end movement shortcuts, followed by buffer-switching
+         shortcuts, followed by insertion and deletion shortcuts,
+         followed by special movement shortcuts, followed by advanced
+         word and paragraph shortcuts, followed by display shortcuts.
+         (DLR and Benno Schulenberg, suggested by Benno Schulenberg)
+       - Tweak the descriptions of some shortcut keys to make them more
+         uniform. (Benno Schulenberg, minor tweaks by DLR)
+       - Shorten the "Where is Next" shortcut name to fit on the screen
+         after adding Meta-\ (Meta-|) and Meta-/ (Meta-?). (DLR)
+       - Lengthen the "UnCut Txt" shortcut name to "UnCut Text", as
+         there's enough room to display it unabbreviated. (DLR)
+       - Clarify the descriptions of the "Search" and "Replace"
+         shortcuts, and add spaces to the "Exit" shortcut's description
+         in multibuffer mode. (Benno Schulenberg)
+       - Remove the "Go To Line" shortcut in the replace shortcut list,
+         for compatibility with Pico. (DLR)
+  toggle_init()
+       - In the global toggle list, move the "Constant cursor position
+         display" toggle up to after the "Use more space for editing"
+         toggle, for consistency. (DLR)
+       - Reorganize the global toggle list to make it easier for new
+         users.  It now lists toggles that affect the way things are
+         displayed, followed by toggles that affect editing, followed
+         by toggles that have to do with peripheral things. (DLR,
+         suggested by Benno Schulenberg)
+- help.c:
+  do_help()
+       - Call get_shortcut() after getting input, so that we only have
+         to check for a main shortcut key instead of both it and all of
+         its equivalents. (DLR)
+       - Clean up the handling of NANO_REFRESH_KEY. (DLR)
+       - Remove redundant key checks. (DLR)
+  help_init()
+       - If we have at least two entries' worth of blank space, use it
+         to display more of "^Space" and "M-Space". (DLR, suggested by
+         Benno Schulenberg)
+       - Add various wording fixes. (DLR and Benno Schulenberg)
+       - If one of the help strings ends in newlines followed by a
+         space, move the space to the next help string to make it
+         easier for translators to see. (Benno Schulenberg)
+       - Make sure we have enough memory in all cases when displaying
+         the shortcut and toggle lists. (DLR)
+       - Wrap the shortcut list help text, and display it even when we
+         have fewer than 24 columns, for consistency with the toggle
+         help text. (DLR, suggested by Benno Schulenberg)
+  parse_help_input()
+       - Add Space and '-' as aliases for PageDown and PageUp, for
+         consistency with the file browser. (DLR, suggested by Benno
+         Schulenberg)
+       - Remove redundant key checks. (DLR)
+  help_line_len()
+       - Properly handle the case where we can't break the line of help
+         text. (DLR)
+       - Wrap the line of help text at (COLS - 1) instead of
+         (COLS - 8), for consistency. (DLR, suggested by Benno
+         Schulenberg)
+- nano.c:
+  print1opt_full()
+       - Rename to print_opt_full(), for consistency. (DLR)
+  usage()
+       - Fix inaccuracies in the usage example. (DLR)
+       - Put command line arguments in <>'s instead of []'s, as the
+         latter imply that the arguments are optional when they aren't.
+         (DLR, found by Benno Schulenberg)
+  renumber()
+       - Remove invalid assert. (DLR, found by Filipe Moreira)
+  do_input()
+       - Remove redundant check for allow_funcs' being TRUE when we get
+         KEY_MOUSE. (DLR)
+       - Don't blow away the cutbuffer when we get a shortcut and the
+         function associated with it is do_cut_till_end(). (DLR)
+       - Simplify the routine to preserve the cutbuffer when we call a
+         cutting or copying function associated with a shortcut. (DLR)
+- nano.h:
+       - Reorder the toggle #defines to match their corresponding order
+         in toggle_init(). (DLR)
+       - Move the #include for sys/param.h here from nano.c, and add an
+         #ifdef around it. (DLR)
+- prompt.c:
+  get_prompt_string()
+       - Include the handling of the help key even when help is
+         disabled, so that we aren't erroneously kicked out of the
+         statusbar prompt under any circumstances. (DLR, found by Benno
+         Schulenberg)
+  do_statusbar_input()
+       - Remove redundant check for allow_funcs' being TRUE when we get
+         KEY_MOUSE. (DLR)
+       - Improve the handling of NANO_REFRESH_KEY. (DLR)
+  total_statusbar_refresh()
+       - New function, called when we get NANO_REFRESH_KEY in
+         do_statusbar_input(). (DLR)
+  do_yesno_prompt()
+       - Handle the keys in a switch statement instead of a long if
+         block, for simplicity. (DLR)
+- rcfile.c:
+  parse_argument()
+       - Rename variable ptr_bak to ptr_save, for consistency. (DLR)
+       - Add double quotes around invalid string arguments in error
+         messages, for consistency. (DLR)
+       - Add single quotes around the invalid string argument in the
+         error message about unterminated strings, to avoid confusion.
+         (Benno Schulenberg)
+  parse_syntax()
+       - Don't generate an error if we find a duplicate syntax name,
+         since we might be trying to override a syntax in the global
+         nanorc with one in our local nanorc.  Instead, free any
+         duplicate syntaxes we find, so that we always use the last
+         syntax with a given name. (DLR)
+  color_to_short()
+       - Add quotes around invalid string arguments in error messages,
+         for consistency. (DLR)
+  parse_colors()
+       - Check for a color command's not following a syntax line before
+         anything else. (DLR)
+       - Add quotes around invalid string arguments in error messages,
+         for consistency. (DLR)
+  parse_rcfile()
+       - Properly generate an error if we've read in a syntax without
+         any associated color commands. (DLR)
+       - Change variable i from an int to a size_t, for consistency.
+         (DLR)
+       - Properly handle rcfiles that don't end in newlines. (DLR)
+       - Add quotes around invalid string arguments in error messages,
+         for consistency. (DLR)
+  do_rcfile()
+       - Check for the rcfile's being a directory or device file and
+         reject it if it is, for consistency with file handling
+         elsewhere. (DLR)
+       - Remove SYSCONFDIR #ifdef, as SYSCONFDIR should always be set.
+         (DLR)
+       - Change all rcfile error messages to refer to commands instead
+         of directives, for consistency with nanorc.5. (DLR)
+- text.c:
+  break_line()
+       - Fix problem where tab widths in columns would always be
+         calculated as tabsize. (DLR, found by Alexey Toptygin)
+       - Handle newlines consistently when searching for the last blank
+         in the first group of blanks in the range of (goal - 1). (DLR,
+         found by Benno Schulenberg)
+  do_justify()
+       - Remove redundant key checks. (DLR)
+  do_spell()
+       - Clarify the error message when creating a temporary file
+         fails. (DLR)
+       - Set currshortcut to main_list before calling total_refresh()
+         near the end of the function, so that we don't display the
+         wrong shortcut list. (DLR)
+  do_verbatim_input()
+       - Add a translator comment explaining the "Verbatim Input"
+         statusbar message. (Benno Schulenberg)
+       - Unconditionally blank the statusbar as soon as we're finished
+         getting input. (DLR, suggested by Benno Schulenberg)
+- utils.c:
+  digits()
+       - Return the proper number of digits when n is exactly 10. (DLR)
+       - Simplify to use a for loop instead of a while loop. (DLR)
+  ngetdelim()
+       - Set errno to EINVAL if stream is not a valid file stream.
+         This matches the manual page. (DLR)
+  nperror()
+       - Simplify. (DLR)
+  check_linenumbers()
+       - Removed, as it's no longer used, and since there's no way to
+         tell if its return value will be in int or ssize_t range.
+         (DLR)
+- winio.c:
+  parse_kbinput()
+       - If we get NANO_CONTROL_8, properly handle it in all cases.
+         (DLR)
+  parse_escape_seq_kbinput()
+       - New function used to interpret escape sequences, formerly part
+         of parse_kbinput(). (DLR)
+  get_byte_kbinput()
+       - Fix typo preventing Esc Esc 3 through Esc Esc 6 from being
+         interpreted as control key sequences. (DLR)
+       - Tweak to more closely match get_unicode_kbinput(). (DLR)
+  get_control_kbinput()
+       - Add Ctrl-/ as an alias for Ctrl-_. (DLR, found by Benno
+         Schulenberg)
+       - Simplify the if blocks wherever possible. (DLR)
+  parse_verbatim_kbinput()
+       - Don't include the ability to enter a Unicode sequence via
+         verbatim input mode if ENABLE_UTF8 isn't defined or we're not
+         in a UTF-8 locale. (DLR)
+  check_statusblank()
+       - Avoid redundant updates when statusblank is 0. (DLR)
+  display_string()
+       - Properly display double-column characters if they're past the
+         first virtual page and their first column is covered by the
+         "$" displayed at the beginning of the line. (DLR)
+  statusbar()
+       - Blank the statusbar after 26 keystrokes instead of 25, for
+         conpatibility with Pico. (DLR)
+  edit_draw()
+       - Properly ignore zero-length regexes in multi-line regexes as
+         well as single-line ones.  This avoids a segfault when trying
+         to color e.g. "start="$" end="$"". (DLR, found by Trevor
+         Caira)
+       - Don't display any statusbar message when we get a zero-length
+         regex, as we can get one under legitimate circumstances. (DLR,
+         found by Mike Frysinger)
+  update_line()
+       - Remove unneeded assert. (DLR)
+  edit_redraw()
+       - Fix problem where not all lines would be updated properly if
+         we'd scrolled off the screen and the mark was on. (DLR)
+  do_credits()
+       - Update the last copyright notice to include 2006. (DLR)
+- configure.ac:
+       - Remove old warnings about color support. (DLR)
+       - Remove conditional header checks for fcntl.h and termios.h, as
+         nano won't build without them, and add conditional header
+         check for sys/param.h, as some systems need only limits.h.
+         (DLR)
+- doc/faq.html:
+       - Add a new section 4.4, and move all section 4 entries after it
+         down one number, to explain how to deal with problems typing
+         Meta-[. (DLR)
+       - Add a new section 4.5, and move all section 4 entries after it
+         down one number, to explain a problem that can occur when
+         holding down keys to generate Meta sequences. (Benno
+         Schulenberg, minor tweaks by DLR)
+       - Add a few capitalization and wording fixes. (DLR)
+       - Remove section 4.4, and move all section 4 entries after it up
+         one number, since it no longer applies.  Meta-] and Meta-[ are
+         no longer used to indent and unindent marked text, since they
+         require that the bracket matching key change to Ctrl-], which
+         is used as the telnet escape key. (DLR, found by Chris)
+       - Make the link to the nano CVS page a bit more readable. (DLR)
+       - Update section 3.8 to mention the new "Unicode Input" prompt,
+         and how Unicode input only works when Unicode support is
+         enabled. (DLR)
+       - Add minor punctuation, wording, and typo fixes. (DLR)
+       - Update section 5.3, due to the display fix for two-column
+         Unicode characters. (DLR)
+- doc/nano.1:
+       - Update the copyright years to include 2006. (DLR)
+       - Explicitly mention that all regexes should be extended regular
+         expressions. (DLR, suggested by John M. Gabriele)
+       - Miscellaneous minor fixes. (DLR)
+       - Add various wording fixes. (Benno Schulenberg and DLR)
+       - Put command line arguments in <>'s instead of []'s, as the
+         latter imply that the arguments are optional when they aren't.
+         (Benno Schulenberg)
+- doc/nanorc.5:
+       - Update the copyright years to include 2006. (DLR)
+       - Explicitly mention that all regexes should be extended regular
+         expressions. (DLR, suggested by John M. Gabriele)
+       - Miscellaneous minor fixes. (DLR)
+       - Add various wording fixes. (Benno Schulenberg and DLR)
+       - Mention that the nanorc file should not be in DOS or Mac
+         format. (DLR)
+- doc/rnano.1:
+       - Update the copyright years to include 2006. (DLR)
+       - Explicitly mention that all regexes should be extended regular
+         expressions. (DLR, suggested by John M. Gabriele)
+       - Miscellaneous minor fixes. (DLR)
+       - Add various wording fixes. (Benno Schulenberg and DLR)
+       - Add description of the +LINE[,COLUMN] option. (DLR)
+- doc/nano.texi:
+       - Update the copyright years to include 2006. (DLR)
+       - Explicitly mention that all regexes should be extended regular
+         expressions. (DLR, suggested by John M. Gabriele)
+       - Miscellaneous minor fixes. (DLR)
+       - Add various wording fixes. (Benno Schulenberg and DLR)
+       - Change license to GPL, in order to match the rest of the
+         documentation, and because the current license is incompatible
+         with everything else in any case. (DLR)
+       - Mention that backup files and spell checking are disabled in
+         restricted mode, as rnano.1 does. (DLR)
+       - Add minor updates to put some text back in sync with nano's
+         help text, and with nano's current feature set. (DLR)
+       - Add a "Nanorc Files" section to explain the nanorc file format
+         in detail, using text from nanorc.5. (DLR)
+       - Put command line arguments in <>'s instead of []'s, as the
+         latter imply that the arguments are optional when they aren't.
+         (Benno Schulenberg)
+       - Add missing description of -H/--historylog, and move
+         -x/--nohelp down so that all the command line options are in
+         alphabetical order. (Benno Schulenberg)
+       - Change all occurrences of "file name" to "filename". (Benno
+         Schulenberg)
+- doc/man/Makefile.am:
+       - Simplify the setting of SUBDIRS. (DLR)
+- doc/man/fr/nano.1, doc/man/fr/nanorc.5, doc/man/fr/rnano.1:
+       - Updated manpage translations by Jean-Philippe GuĂ©rard.
+- doc/nanorc.sample:
+       - Miscellaneous minor fixes. (DLR and Benno Schulenberg)
+       - Tweak the "c-file" regex for characters to accept '"' again,
+         as it's apparently valid, and simplify it. (DLR)
+       - Simplify the "shellscript" regex for command line options.
+         (DLR)
+       - Replace instances of \" with ", since quotes inside string
+         parameters don't need to be escaped with backslashes. (DLR)
+       - Mention in the comments that more than one start/end regex can
+         be included per line.  Also, change the comment for the
+         "whitespace" option so that the hexadecimal character values
+         are six digits long, and state which character values work
+         with which encodings. (DLR)
+       - Add sample regexes for Python. (singular on the Gentoo forums,
+         http://forums.gentoo.org/viewtopic.php?t=86562; minor tweaks
+         by DLR, suggested by John M. Gabriele)
+       - Explicitly mention that all regexes should be extended regular
+         expressions. (DLR, suggested by John M. Gabriele)
+       - Simplify the "nanorc" regex for commands. (DLR)
+       - Mention that the nanorc file should not be in DOS or Mac
+         format. (DLR)
+       - Add various wording fixes. (Benno Schulenberg and DLR)
+       - Replace instances of "\w" with its equivalent "[0-9A-Z_a-z]",
+         and instances of "\W" with its equivalent "[^0-9A-Z_a-z]", for
+         greater readability. (DLR)
+       - Remove unneeded foreground color for the Java source regex
+         used to highlight trailing whitespace, since we now support
+         background colors without foreground colors. (DLR)
+       - Further simplify the "groff" regexes. (DLR)
+       - Tweak the "shellscript" regexes to properly color all special
+         variables, such as $? and $@. (Benno Schulenberg)
+       - Tweak the "nanorc" regexes to color keywords bright green
+         instead of cyan, and comments bright blue instead of blue.
+         (John M. Gabriele)
+       - Simplify the extensions associated with the "nanorc" regexes.
+         (DLR)
+       - Add regexes for Ruby. (John M. Gabriele, minor tweaks by DLR)
+- doc/nanorc.sample.in:
+       - Add comments describing the relationships between syntax file
+         names and the names used as their short descriptions. (John M.
+         Gabriele)
+- doc/java.nanorc:
+       - Simplify a comment. (DLR)
+- doc/man.nanorc:
+       - Change the name of the "manpage" regexes to "man", for
+         consistency. (John M. Gabriele)
+- doc/nanorc.nanorc:
+       - Tweak the "nanorc" regexes to color comments starting with a
+         double ## cyan instead of bright blue. (John M. Gabriele)
+- doc/ruby.nanorc:
+       - Add regex for "here" docs. (John M. Gabriele)
+- doc/sh.nanorc:
+       - Tweak the regex for special variables, moving "-" to the end,
+         to avoid excessive coloring or an "Invalid range end" error.
+         (Benno Schulenberg)
+       - Tweak the "sh" regexes to color comments cyan instead of
+         yellow. (John M. Gabriele)
+- src/Makefile.am:
+       - If we're uninstalling, remove the "rnano" symlink. (DLR, found
+         by Benno Schulenberg)
+       - Remove "-Iintl" from INCLUDES, as we don't use an intl
+         directory inside the source directory anymore. (DLR)
+- README, README.CVS:
+       - Add various cosmetic and wording improvements. (John M.
+         Gabriele, minor tweaks by DLR)
+- TODO:
+       - Update for nano 2.0, since we're now in a feature freeze.
+         (DLR)
+- UPGRADE:
+       - Miscellaneous minor fixes. (DLR)
+       - Update for nano 2.0, since we're now in a feature freeze.
+         (DLR)
+
+GNU nano 1.3.11 - 2006.03.30
+- General:
+       - Miscellaneous comment fixes. (DLR)
+       - Remove unnecessary #ifdef around termios.h #include in nano.c.
+         (DLR)
+       - Sort the default strings for brackets and punct, and the "or"
+         atom in the default regex string for quotestr, according to
+         ASCII.  Changes to main(), nano.1, nanorc.5, and
+         nanorc.sample. (DLR)
+       - Rework the bracket searching code to handle multibyte bracket
+         characters, and allow specifying matching bracket characters
+         other than the default via the "matchbrackets" rcfile option.
+         New functions mbstrpbrk() and mbrevstrpbrk(); changes to
+         find_statusbar_bracket_match(), do_statusbar_find_bracket(),
+         find_bracket_match(), do_find_bracket(), main(),
+         parse_rcfile(), nanorc.5, and nanorc.sample. (DLR)
+       - Rework input parsing in the file browser to be more flexible.
+         New function parse_browser_input(); changes to do_browser().
+         (DLR)
+       - Allow tab completion of directories at the "Go To Directory"
+         prompt.  Also, move the browser drawing routines to a separate
+         function, and make sure it's used when refreshing or doing tab
+         completion at the prompt in the file browser.  New function
+         browser_refresh(); changes to do_browser(), browser_init(),
+         do_insertfile(), do_writeout(), cwd_tab_completion(),
+         input_tab(), do_statusbar_input(), get_prompt_string(),
+         do_prompt(), search_init(), do_replace(), do_gotolinecolumn(),
+         and do_int_spell_fix(). (DLR)
+- browser.c:
+  do_browser()
+       - Properly set currshortcut back to the file browser shortcut
+         list after a "Go To Directory" prompt, and properly restore
+         the file list display after returning from the help browser at
+         the "Go To Directory" prompt. (DLR)
+       - Rename variable j to i, for consistency. (DLR)
+       - Make fileline, old_selected, and the static selected size_t's,
+         since the first and second can hold the value of the third,
+         and the first can be that large. (DLR)
+- chars.c:
+  mbstrchr()
+       - Make parameter c const. (DLR)
+- files.c:
+  do_writeout()
+       - Remove unneeded setting of currshortcut. (DLR)
+  is_dir()
+       - Rename parameter ret to retval, for consistency. (DLR)
+- global.c:
+  shortcut_init()
+       - Remove erroneous handling of the "Get Help" shortcut in the
+         file browser shortcut list. (DLR)
+- nano.h:
+       - Remove now-unneeded VERMSG #define. (DLR)
+- prompt.c:
+  get_prompt_string()
+       - Redraw the prompt and set finished to FALSE when NANO_HELP_KEY
+         is pressed, so that we don't leave the prompt, enter the help
+         browser, and restart the prompt after leaving it.  This will
+         properly preserve the cursor position after doing the last of
+         these. (DLR)
+- utils.c:
+  ngetdelim()
+       - Do sanity checks manually again instead of in an assert, and
+         set errno to EINVAL as well as return -1 if they fail.  This
+         matches the manual page. (DLR)
+- winio.c:
+  get_key_buffer()
+       - If we fail to get a character MAX_BUF_SIZE times in a row,
+         hang up regardless of the value of errno.  This fixes a
+         problem where nano doesn't terminate properly under xterm if
+         the user su's to root, runs nano, and then closes the terminal
+         window.  errno isn't set properly to EIO then. (DLR, found by
+         John <acocaracha@gmail.com>)
+  parse_kbinput()
+       - Interpret Shift-Begin, Shift-Delete, Shift-End, Shift-Home,
+         Shift-Insert, and Shift-Suspend as Begin, Delete, End, Home,
+         Insert, and Suspend, respectively, regardless of whether
+         --rebindkeypad is used. (DLR, found by David Benbennick)
+  titlebar()
+       - Use PACKAGE_STRING, as defined by autoconf, instead of VERMSG.
+         (DLR)
+  edit_redraw()
+       - If either current or old_current is offscreen, we're not on
+         the first page, and/or we're not on the same page as before,
+         update old_current before scrolling the edit window.  This
+         fixes a potential display problem when a search moves the
+         cursor offscreen and onto a different page. (DLR, found by
+         Mike Frysinger)
+  display_string()
+       - Fix minor memory leak. (DLR)
+       - Fix memory corruption problems caused by not allocating enough
+         space for converted when a line ends in a tab(s) and we're not
+         in UTF-8 mode. (DLR, found by Duncan Geoffry Doyle, Nick
+         Warne, and Mike Frysinger)
+- doc/faq.html:
+       - Update the Free Translation Project's address, change the
+         character set to UTF-8, and remove broken links to contributed
+         RedHat nano packages. (DLR)
+- doc/nano.1:
+       - Better display the default values for quotestr. (DLR)
+- doc/nanorc.5:
+       - Give the default values for the brackets and punct options,
+         and better display the default values for quotestr. (DLR)
+       - Mention that quotes inside string parameters don't need to be
+         escaped with backslashes. (John M. Gabriele, minor tweaks by
+         DLR)
+- doc/rnano.1:
+       - Remove unneeded comments. (DLR)
+- doc/nanorc.sample:
+       - Remove unneeded comment. (DLR)
+       - Mention that quotes inside string parameters don't need to be
+         escaped with backslashes. (John M. Gabriele, minor tweaks by
+         DLR)
+- THANKS:
+       - Add new Swedish translator.
+
+GNU nano 1.3.10 - 2005.12.23
+- General:
+       - Miscellaneous comment fixes. (DLR)
+       - More int -> bool conversions. (DLR)
+       - Add the ability to scroll up or down single lines without
+         scrolling the cursor, via Meta-- and Meta-+.  Note that this
+         is disabled when NANO_SMALL is defined.  New functions
+         do_scroll_up() and do_scroll_down(); changes to
+         shortcut_init(). (DLR, suggested by Mike Frysinger)
+       - Properly handle mouse clicks on the statusbar prompt text.
+         New functions statusbar_xplustabs() and
+         get_statusbar_page_start(); changes to do_statusbar_mouse(),
+         nanoget_repaint(), nanogetstr(), and statusq(). (DLR)
+       - Since the statusbar prompt code needs at least 4 columns in
+         order to work properly, make that the minimum number of
+         columns that nano requires in order to run, and remove
+         assertions and code that make use of a smaller number of
+         columns.  Changes to window_init(), nanoget_repaint(),
+         titlebar(), statusbar(), and get_page_start(). (DLR)
+       - Move get_page_start(), xplustabs(), actual_x(), strnlenpt(),
+         strlenpt(), check_linenumbers(), dump_buffer(), and
+         dump_buffer_reverse() from winio.c to utils.c, as they're
+         really utility functions. (DLR)
+       - Add missing stdio.h #include to text.c and winio.c, and remove
+         unneeded sys/wait.h #include from files.c. (DLR)
+       - Move functions specific to the statusbar prompt to their own
+         source file, adjust related variables accordingly, and rename
+         variable resetstatuspos reset_statusbar_x.  New file prompt.c;
+         changes to do_statusbar_input(), do_statusbar_mouse(),
+         do_statusbar_output(), do_statusbar_home(),
+         do_statusbar_end(), do_statusbar_right(), do_statusbar_left(),
+         do_statusbar_backspace(), do_statusbar_delete(),
+         do_statusbar_cut_text(), do_statusbar_next_word(),
+         do_statusbar_prev_word(), do_statusbar_verbatim_input(),
+         statusbar_xplustabs(), get_statusbar_page_start(),
+         nanoget_repaint(), nanogetstr(), statusq(), statusq_abort(),
+         and do_yesno() (all moved to prompt.c). (DLR)
+       - Move functions specific to the help browser to their own
+         source file, and adjust related variables accordingly.  New
+         file help.c; changes to help_init(), help_line_len(), and
+         do_help() (all moved to help.c). (DLR)
+       - Tweak a few functions to remove the assumption that the file
+         always ends in a magicline.  Changes to cut_line(),
+         do_cut_till_end(), open_buffer(), read_file(), write_file(),
+         do_last_line(), do_para_end(), do_wrap(), backup_lines(),
+         find_paragraph(), do_justify(), do_alt_speller(), and
+         do_wordlinechar_count(). (DLR)
+       - Tweak a few functions to rely on fileage and filebot instead
+         of NULL for their checks to detect the top or bottom of the
+         file.  Changes to cut_line(), cut_to_eol(), do_page_up(),
+         do_page_down(), do_para_end(), do_next_word(), do_prev_word(),
+         do_up(), do_down(), do_scroll_down(), do_right(), do_mouse(),
+         do_gotolinecolumn(), do_delete(), begpar(), find_paragraph(),
+         do_wrap(), remove_magicline(), and edit_scroll(). (DLR)
+       - Add new -L/--nonewlines command line option, and new
+         "nonewlines" rcfile option, to control whether nano adds
+         magiclines to the ends of files.  Changes to read_file(),
+         write_marked_file(), move_to_filestruct(),
+         copy_from_filestruct(), usage(), do_output(), main(),
+         do_replace_loop(), do_delete(), do_int_spell_fix(),
+         do_alt_speller(), nano.1, nanorc.5, nano.texi, and
+         nanorc.sample. (DLR, suggested by Jaime
+         <re2823@Safe-mail.net>)
+       - Move functions specific to the file browser to their own
+         source file, and adjust related variables accordingly.  New
+         file browser.c; changes to striponedir(), browser_init(),
+         do_browser(), and do_browse_from() (all moved to browser.c).
+         (DLR)
+       - Add the statusbar prompt's equivalent of placewewant,
+         statusbar_pww, to prompt.c, and convert its functions to use
+         it.  New functions reset_statusbar_cursor() and
+         need_statusbar_horizontal_update(); changes to
+         do_statusbar_mouse(), do_statusbar_output(),
+         do_statusbar_home(), do_statusbar_end(), do_statusbar_right(),
+         do_statusbar_left(), do_statusbar_delete(),
+         do_statusbar_cut_text(), do_statusbar_next_word(),
+         do_statusbar_prev_word(), do_statusbar_verbatim_input(),
+         nanoget_repaint() (renamed update_statusbar_line()),
+         nanogetstr() (renamed get_prompt_string()), statusq() (renamed
+         do_prompt()), statusq_abort() (renamed do_prompt_abort()), and
+         do_yesno() (renamed do_yesno_prompt()). (DLR)
+       - Initialize the static pid_t pid in text.c to -1. (DLR)
+       - Fix copyright years on source files.  All functions in
+         browser.c were originally added in 2001; the oldest function
+         in color.c is do_colorinit() (now color_init()), which was
+         originally added in 2001; the oldest function in chars.c is
+         revstrstr(), which was originally added in 2001; the oldest
+         function in help.c is do_help(), which was originally added in
+         2000; the oldest function in prompt.c is statusq() (now
+         do_prompt()), which was originally added before 0.6.6, which
+         was apparently in 1999; all functions in rcfile.c were
+         originally added in 2001; one of the oldest functions in
+         search.c is do_search(), which was originally added in 0.2.7,
+         which was apparently in 1999; and one of the oldest functions
+         in text.c is do_wrap(), which was originally added in 0.3.1,
+         which was apparently in 1999. (DLR)
+       - For functions originally adapted from other sources, add
+         notices from the original files, as we do with the tab
+         completion functions adapted from busybox, updating the Free
+         Software Foundation's address as needed.  Also, invoke LGPL
+         clause 3 to convert the LGPLed ngetdelim() and ngetline()
+         functions to use the GPL instead.  This is done so that we
+         don't have to include a copy of the LGPL, and because the
+         changes made to integrate these functions with nano make them
+         dependent on nano's GPLed functions and hence useless
+         elsewhere. (DLR)
+       - Don't install the localized versions of the manpages if
+         nano is built with --disable-nls.  Changes to Makefile.am and
+         doc/man/Makefile.am. (Mike Frysinger)
+       - Rename the NANO_SMALL #define to NANO_TINY. (DLR)
+       - Overhaul the bracket searching code so that it no longer
+         requires regex support to work.  New functions revstrpbrk()
+         and find_bracket_match(); changes to shortcut_init() and
+         do_find_bracket(). (DLR)
+       - Add the ability to do bracket searches at the statusbar
+         prompt.  New functions find_statusbar_bracket_match() and
+         do_statusbar_find_bracket(); changes to do_statusbar_input().
+         (DLR)
+       - Beep whenever we can't read a file or directory and have to
+         indicate it on the statusbar, as Pico does.  Changes to
+         do_browser(), open_file(), and write_file(). (DLR)
+       - Adjust copyright notices in all source files to account for
+         Chris' reassigning the 2005-2006 copyright on nano to me.
+         Changes to do_credits(). (DLR)
+       - Readd RETSIGTYPE return types for signal handlers, since any
+         problems with its being defined as the wrong type aren't
+         nano's fault.  Changes to handle_hupterm(), do_suspend(),
+         do_continue(), handle_sigwinch(), and cancel_command(). (DLR)
+       - Since proto.h includes nano.h, and nano.h includes config.h
+         first, include proto.h first and remove redundant includes of
+         config.h in all non-header source files. (DLR)
+       - Refer to the Enter key instead of the Return key for
+         consistency.  Changes to load_history() and rcfile_error().
+         (DLR)
+- browser.c:
+  do_browser()
+       - When setting the width of each file, use the "?" operator
+         instead of an if/else clause. (DLR)
+- chars.c:
+  mbwidth()
+       - If wcwidth() returns -1 for the character passed in, treat the
+         character as having the width of Unicode U+FFFD (Replacement
+         Character) instead of having a width of zero, since display
+         problems can crop up with the latter approach. (DLR)
+  mbstrchr()
+       - Detect the case where the character isn't found in the string
+         more accurately. (DLR)
+- cut.c:
+  cut_line()
+       - Since placewewant will always be zero after the line is cut,
+         set it to zero directly instead of assigning it the value of
+         xplustabs(). (DLR)
+- files.c:
+  read_file()
+       - Remove apparently unneeded logic to handle a case where
+         current is NULL, since it shouldn't be NULL there. (DLR)
+  get_next_filename()
+       - Store the value of digits(ULONG_MAX) in a static, since it
+         doesn't change and hence doesn't need to be recalculated.
+         (DLR)
+- global.c:
+  shortcut_init()
+       - Change the description of the Meta-] shortcut to "Find
+         matching bracket", as it's clearer. (DLR)
+- nano.c:
+  version()
+       - If DISABLE_WRAPPING is defined, the code in DISABLE_ROOTWRAP
+         #ifdefs isn't included, so don't display
+         "--disable-wrapping-as-root" in that case. (DLR)
+  do_cont()
+       - Rename to do_continue(), and rename parameter s to signal, for
+         consistency. (DLR)
+  do_verbatim_input()
+       - Move to text.c, since it's an advanced text-based operation.
+         (DLR)
+- nano.h:
+       - Readd MIN_EDITOR_COLS #define, set to 4. (DLR)
+- proto.h:
+       - Remove now-unused externs for currslen, shortcut_list,
+         fileinfo, syntaxfile_regexp, and synfilematches. (DLR)
+- prompt.c:
+  do_statusbar_input()
+       - Fix misplaced break when handling NANO_VERBATIM_KEY. (DLR)
+  reset_statusbar_cursor()
+       - Fix cursor placement problem by modeling the code more closely
+         after reset_cursor(). (DLR)
+  get_prompt_string()
+       - Adjust #ifdefs to leave out disabled keys entirely instead of
+         keeping enough code to just ignore them. (DLR)
+- rcfile.c:
+  do_rcfile()
+       - Remove unneeded assert. (DLR)
+- search.c:
+  search_abort()
+       - Rename to search_replace_abort(). (DLR)
+  findnextstr()
+       - Remove parameter can_display_wrap, as it's always set to TRUE
+         now, and rename parameter wholeword to whole_word, for
+         consistency. (DLR)
+       - Only include the whole_word parameter when DISABLE_SPELLER
+         isn't defined, as it's only used then. (DLR)
+  replace_abort()
+       - Replace with search_replace_abort(), since it does the same
+         things that this function does. (DLR)
+  do_replace_loop()
+       - Change order of parameters to more closely match those of
+         findnextstr(), and rename parameter wholewords to whole_word,
+         for consistency. (DLR)
+       - Only include the whole_word parameter when DISABLE_SPELLER
+         isn't defined, as it's only used then. (DLR)
+- text.c:
+  execute_command()
+       - Instead of hardcoding /bin/sh as the shell to use when
+         executing a command, use $SHELL, and only fall back to /bin/sh
+         if $SHELL isn't set. (DLR)
+  do_wrap()
+       - Rename variable wrapping to prepending, to avoid confusion,
+         and rename the static bool same_line_wrap to prepend_wrap to
+         match. (DLR)
+       - Properly add a new magicline when needed if, in the process of
+         wrapping, we prepend text to the last line of the file. (DLR)
+  break_line()
+       - Only include the newline parameter if DISABLE_HELP isn't
+         defined, as it's only used then. (DLR)
+       - In the surrounding #ifdef, replace the combination of
+         !DISABLE_JUSTIFY and !DISABLE_WRAPPING with
+         !DISABLE_WRAPJUSTIFY, for consistency. (DLR)
+  begpar()
+       - Return FALSE if foo is NULL, as inpar() does. (DLR)
+  backup_lines()
+       - Return void instead of a pointer to the copy of the first
+         line, since current will point to the same location after the
+         text is copied and so can be used instead of the old return
+         value. (DLR)
+       - Remove unused quote_len parameter. (DLR)
+  do_justify()
+       - Don't save current_y and restore it if the user unjustifies,
+         as the reset_cursor() called by edit_refresh() after restoring
+         edittop and current will ensure that current_y is restored to
+         its original value. (DLR)
+       - Renumber after justifying each individual paragraph, since
+         find_paragraph() needs the line numbers to be right as well as
+         edit_refresh().  This fixes a potential segfault when doing
+         full justify with auto-indent turned on. (DLR)
+  do_alt_speller()
+       - Move the code that replaces the text of the current file with
+         the text of the spell-checked file into its own function,
+         replace_buffer(). (DLR)
+- utils.c:
+  parse_line_column()
+       - Simplify parsing of the column number. (DLR)
+  ngetdelim()
+       - Do sanity checks in an assert instead of checking them
+         manually and returning -1 if they fail. (DLR)
+  is_whole_word()
+       - Only include when DISABLE_SPELLER isn't defined, as it's only
+         used then. (DLR)
+  get_page_start()
+       - Fix test so that we scroll through the line in 8-character
+         chunks when COLS is greater than 8, not when COLS is greater
+         than 9. (DLR)
+  remove_magicline()
+       - Add assert. (DLR)
+- winio.c:
+  nanoget_repaint()
+       - Rename parameter inputbuf to buf, for consistency. (DLR)
+  reset_cursor()
+       - Rename variable x to xpt, to avoid confusion. (DLR)
+  update_line()
+       - Remove now-unneeded logic that set the index parameter to zero
+         if the fileptr parameter didn't point to current. (DLR)
+  edit_add()
+       - Rename to edit_draw(), and rename parameter yval to line.
+         (DLR)
+  do_cursorpos()
+       - Remove unneeded assert. (DLR)
+  do_yesno()
+       - Make mouse clicks on the Yes/No/All shortcuts work properly
+         when the MORE_SPACE flag is set. (DLR)
+- configure.ac:
+       - Clarify description of --disable-speller. (DLR)
+       - Disable wrapping entirely when --enable-tiny is used, as it
+         matches the FAQ, it makes nano even smaller, and it eliminates
+         the need for --disable-wrapping-as-root in that case (in which
+         it's impossible to turn wrapping back on without nanorc
+         support). (DLR)
+- README.CVS:
+       - Mention that the minimum required version of texinfo is 4.0,
+         since that's the first version that supports generating HTML.
+         (DLR)
+       - Mention that the minimum required version of groff is 1.12,
+         since that's the first version that supports generating HTML.
+         (DLR)
+       - Update the given cvs commands so that they work again. (DLR)
+- doc/faq.html:
+       - Add a new section 5.3 to explain the status of nano's Unicode
+         support. (Mike Frysinger, minor tweaks by DLR)
+       - Clarify section 5.3 to better explain how to enable Unicode
+         support, and remove the mention of quirks, since they turned
+         out to not be a nano problem. (Mike Frysinger and DLR)
+- doc/nano.1:
+       - Make one non-bold instance of "nano" bold, for consistency.
+         (DLR)
+- doc/man/fr/nano.1, doc/man/fr/nanorc.5:
+       - Updated manpage translations by Jean-Philippe GuĂ©rard.
+- doc/rnano.1:
+       - Add rnano.1 manpage from Thijs Kinkhorst. (Jordi)  DLR: Merge
+         a few minor updates from nano.1.
+- doc/nano.texi:
+       - Fix inconsistent wording and punctuation. (DLR)
+       - Add missing configure options. (Mike Frysinger, minor tweaks
+         by DLR)
+       - Sort the configure options more consistently, and add missing
+         --disable-utf8 option. (DLR)
+       - Move --disable-wrapping above --enable-tiny, as the latter now
+         turns it on. (DLR)
+- doc/nanorc.sample:
+       - Tweak the "c-file" regex for characters to properly accept
+         '\"' and reject '"' and '''. (DLR)
+- doc/texinfo/Makefile.am:
+       - Automatically generate an HTML version of the info page,
+         nano.html. (DLR)
+- src/Makefile.am:
+       - Add browser.c, help.c, and prompt.c to nano_SOURCES. (DLR)
+
+GNU nano 1.3.9 - 2005.10.23
+- General:
+       - Miscellaneous comment fixes. (DLR)
+       - More int -> bool conversions. (DLR)
+       - Fix a few last instances of the current line number's being
+         saved as an int instead of a ssize_t.  Changes to
+         renumber_all(), renumber(), do_alt_speller(), and
+         backup_lines(). (DLR)
+       - Reorder some functions for consistency. (DLR)
+       - Rename variable open_files openfile, for consistency. (DLR)
+       - Remove renumber()'s dependency on the main filestruct.
+         Changes to renumber(); removal of renumber_all(). (DLR)
+       - Restructure things so that every file has its own
+         openfilestruct, and so that the values in it are used directly
+         instead of being periodically synced up with the globals.
+         Accordingly, remove the globals.  Changes to pretty much
+         every function.  Rename add_open_file() make_new_buffer(),
+         rename load_buffer() open_buffer(), rename load_open_file()
+         display_buffer(), rename open_prevnext_file()
+         switch_to_prevnext_buffer(), rename open_prevfile_void()
+         switch_to_prev_buffer(), rename open_nextfile_void()
+         switch_to_next_buffer(), rename write_marked()
+         write_marked_file(), remove load_file(), rename cancel_fork()
+         cancel_command(), rename open_pipe() execute_command(), remove
+         execute_command(), rename resize_variables(), rename
+         global_init() window_size_init(), rename get_buffer()
+         get_key_buffer(), and rename get_buffer_len()
+         get_key_buffer_len(). (DLR)
+       - Replace all mvwaddstr(hblank) calls with a new function that
+         does the same thing without the need for hblank.  New function
+         blank_line(); changes to do_browser(), blank_titlebar(),
+         blank_topbar(), blank_edit(), blank_statusbar(),
+         blank_bottombars(), update_line(), and edit_refresh(). (DLR)
+       - Make the static pid variable used by execute_command() and
+         cancel_command() a pid_t instead of an int, for consistency.
+         (DLR)
+       - Consistently make the flags global and any variables used to
+         hold it longs. (DLR)
+       - Make edit_scroll() sophisticated enough to keep track of
+         current and current_x, update the lines before and after the
+         scrolled region, and properly scroll more than editwinrows
+         lines; and change the movement functions that use
+         edit_scroll() to (a) set current and current_x before calling
+         it, and (b) no longer call edit_redraw() afterward, as it's
+         now unnecessary.  These changes eliminate redundant screen
+         updates when the mark is on, since the mark display depends on
+         current and current_x.  Also change edit_redraw() to use
+         edit_scroll() instead of edit_refresh() when one of its two
+         reference lines is offscreen.  Changes to edit_scroll(),
+         do_page_up(), do_page_down(), do_up(), and do_down(). (DLR)
+       - Consistently make the fg and bg colortype struct entries and
+         any variables used to hold them shorts.  Changes to
+         do_colorinit() (renamed color_init()), color_to_int() (renamed
+         color_to_short()), and parse_colors(). (DLR)
+       - Change color handling to save only the extension and color
+         regex strings constantly,  and to actually compile them on an
+         as-needed basis.  Also, make a color syntax specified on the
+         command line override the syntax associated with the current
+         file extension, add a "default" syntax that takes no
+         extensions for those files that don't match any other
+         syntax's extensions, and add a "none" syntax that's the same
+         as having no syntax at all.  Changes to update_color(),
+         thanks_for_all_the_fish(), nregcomp(), parse_syntax(), and
+         parse_colors(). (Brand Huntsman and DLR)
+       - Various other color fixes.  Handle unspecified foreground
+         colors properly, treat syntax names case sensitively, flag
+         duplicate syntax names as errors, don't automatically
+         reinitialize the displayed colors every time we update the
+         current buffer's colors (since the buffer may not be displayed
+         immediately), don't bother doing complete refreshes of the
+         screen when color support is enabled if there's no regex
+         associated with the current file, and rename variable
+         exttype->val to exttype->ext, for consistency.  Changes to
+         do_colorinit() (renamed color_init()), update_color() (renamed
+         color_update()), write_file(), do_input(), do_output(), and
+         parse_syntax(). (DLR)
+       - Simplify get_totals() to only get the total number of
+         characters, and eliminate dependence on its old ability to get
+         the total number of lines by renumber()ing when necessary and
+         using the number of the last line of a filestruct.  Changes to
+         read_file(), move_to_filestruct(), copy_from_filestruct(),
+         do_justify(), get_totals() (renamed get_totsize()), and
+         do_cursorpos(). (DLR)
+       - Change the NANO_WIDE #define to ENABLE_UTF8, as the latter is
+         clearer. (DLR)
+       - Minor history code fixes: Make sure that the current position
+         in the history list is properly set to the bottom if we cancel
+         out of the prompt, and that magichistory is properly updated
+         when we change it and then move up.  New function
+         history_reset(); changes to nanogetstr(). (DLR)
+       - Various character-handling cleanups.  If we get an invalid
+         multibyte sequence, treat it as Unicode FFFD (Replacement
+         Character), unless we're searching for a match to it.  Also,
+         remove unneeded variables and checks when parsing multibyte
+         sequences.  Changes to is_alnum_mbchar(), is_blank_mbchar(),
+         is_cntrl_mbchar(), is_punct_mbchar(), control_mbrep(),
+         mbwidth(), make_mbchar(), parse_mbchar(), mbstrncasecmp(),
+         mbstrcasestr(), mbrevstrcasestr(), mbstrchr(), and
+         display_string(). (DLR)
+       - Move advanced text operations (command execution in a buffer,
+         wrapping, spell checking, justifying, and word counting) to
+         their own source file, and adjust related variables
+         accordingly.  New file text.c; changes to cancel_command(),
+         execute_command(), do_backspace(), do_delete(), do_tab(),
+         do_enter(), do_mark(), wrap_reset(), do_wrap(),
+         do_int_spell_fix(), do_int_speller(), do_alt_speller(),
+         do_spell(), break_line(), indent_length(), justify_format(),
+         quote_length(), quotes_match(), indents_match(), begpar(),
+         inpar(), backup_lines(), find_paragraph(), do_justify(),
+         do_justify_void(), do_full_justify(), and do_word_count() (all
+         moved to text.c). (DLR)
+       - Since the total number of lines in a file is the same as the
+         number of its last line when all its lines are numbered
+         properly, use that in place of openfile->totlines, and
+         eliminate references to openfile->totlines.  Changes to
+         initialize_buffer_text(), read_file(), move_to_filestruct(),
+         copy_from_filestruct(), do_delete(), do_enter(), do_wrap(),
+         do_justify(), do_alt_speller(), do_wordlinechar_count(),
+         new_magicline(), remove_magicline(), and do_cursorpos(). (DLR)
+       - Various fill-related cleanups.  Move check_die_too_small() and
+         window_size_init()'s code into window_init(), as they really
+         belong there, remove associated separate calls to them, make
+         sure window_init() is always called at the same time when
+         redrawing the screen, and turn the keypad on in topwin in case
+         we ever read input from it.  Changes to window_init(), main(),
+         and do_alt_speller(); removal of check_die_too_small() and
+         window_size_init(). (DLR)
+       - Remove still more redundant screen updates.  Change all
+         wrefresh() calls to wnoutrefresh() calls, except for those in
+         total_update() and do_credits(); call doupdate() just before
+         using blocking input, since nano spends the most time using
+         it, for blocking input; and only do constant sursor position
+         display if we're just about to use blocking input.  Changes to
+         input_tab(), do_browser(), do_output(), main(),
+         get_key_buffer(), check_statusblank(), nanogetstr(),
+         titlebar(), statusbar(), bottombars(), edit_refresh(),
+         do_yesno(), and do_help(). (DLR)
+       - Treat the Unicode characters D800-DFFF, FDD0-FDEF, and
+         xxFFFE-xxFFFF,  as invalid, since the C library's multibyte
+         functions don't seem to.  New function is_valid_unicode();
+         changes to mbrep() and make_mbchar(). (DLR)
+       - Store Unicode values in longs instead of ints, and cover the
+         entire range of Unicode.  Changes to make_mbchar(),
+         is_valid_unicode(), parse_kbinput(), get_unicode_kbinput(),
+         parse_verbatim_kbinput(), and faq.html. (DLR)
+       - Readd the option to turn the keypad off by default from nano
+         1.2.x, but rename the long option from --keypad to
+         --rebindkeypad, clarify its description on the command line,
+         and add an updated FAQ entry about its use.  Changes to
+         window_init(), usage(), main(), get_verbatim_kbinput(),
+         nanorc.sample, nano.1, nanorc.5, nano.texi, and faq.html.
+         (DLR)
+       - Add new -W/--wordbounds command line option, and new
+         "wordbounds" rcfile option, to control whether
+         the word movement functions treat punctuation characters as
+         part of a word.  Changes to do_next_word_void(),
+         do_prev_word_void(), usage(), main(), nano.1, nanorc.5,
+         nano.texi, and nanorc.sample. (DLR, suggested by Mike
+         Frysinger)
+       - Update email address.  Changes to faq.html and AUTHORS. (DLR)
+       - Remove do_(left|right)()'s ability to optionally not update
+         the current line, as this was only used in do_backspace(), and
+         it didn't always update the screen properly.  Changes to
+         shortcut_init(), do_left(), do_right(), and do_backspace();
+         removal of do_left_void() and do_right_void(). (DLR; problem
+         found by Mike Frysinger)
+- color.c:
+       - Remove unneeded fcntl.h include. (DLR)
+- chars.c:
+  control_rep(), control_mbrep()
+       - Assert that the multibyte character passed in is a control
+         character if it's valid. (DLR)
+       - If crep is an invalid multibyte sequence, copy Unicode 0xFFFD
+         (Replacement Character) into it using strncpy() instead of
+         assigning the former to it.  This avoids segfaults when freeing
+         crep later, since it's supposed to be dynamically allocated.
+         (DLR)
+  mbrep()
+       - New function, the equivalent of control_mbrep() for non-control
+         characters. (DLR)
+  parse_mbchar()
+       - Remove now-unneeded bad_chr parameter. (DLR)
+  mbstrchr()
+       - Don't count matches between valid and invalid multibyte
+         sequences anymore, for consistency. (DLR)
+- files.c:
+  open_file()
+       - Assert that filename isn't NULL, and don't do anything special
+         if it's blank, as the the former case shouldn't occur, and the
+         latter case is now handled elsewhere. (DLR)
+  write_file(), write_marked_file(), do_writeout()
+       - Make append an append_type enum instead of an int. (DLR)
+  input_tab()
+       - Make columns an int instead of a size_t, since it's limited by
+         COLS. (DLR)
+- global.c:
+  shortcut_init()
+       - Simplify wording of nano_gotoline_msg. (Jordi and Ken Tyler)
+       - Clarify wording of nano_wordcount_msg, as it will only go
+         through the marked portions of the file if the mark is on.
+         (DLR)
+- move.c:
+  do_first_line(), do_last_line()
+       - Simplify by only using edit_redraw(), and also make them call
+         check_statusblank(). (DLR)
+  do_page_up(), do_page_down()
+       - If there's less than a page of text onscreen, just call
+         do_(first|last)_line(). (DLR)
+  do_para_begin(), do_para_begin_void(), do_para_end(),
+  do_para_end_void(), do_next_word(), do_next_word_void(),
+  do_prev_word(), do_prev_word_void()
+       - Move here from nano.c, as they're movement functions, and also
+         make them call check_statusblank().
+- nano.c:
+  move_to_filestruct()
+       - Fix problem where edittop wouldn't be reset properly if it was
+         inside the text moved to another filestruct. (DLR)
+  copy_from_filestruct()
+       - Miscellaneous cleanups. (DLR)
+  usage()
+       - Properly mention the support for "[+LINE,COLUMN]" on the
+         command line when HAVE_GETOPT_LONG isn't defined. (DLR)
+       - Remove unneeded translation of "--quickblank". (DLR)
+  do_verbatim_input()
+       - If constant cursor position display is on, make sure the
+         cursor position is displayed properly when we finish. (DLR)
+  do_next_word()
+       - Rework to be more like do_prev_word(), to avoid a potential
+         problem if we start at the end of a line. (DLR)
+  do_mouse()
+       - Avoid redundant screen updates by using edit_redraw() instead
+         of edit_refresh(), and remove now-erroneous code that disables
+         setting the mark while in view mode. (DLR)
+  do_output()
+       - When adding a character, just add its length in bytes to
+         current_x instead of calling do_right(), and set placewewant
+         afterward. (DLR)
+  do_alt_speller()
+       - If we can't invoke the spell checker, use sprintf() instead of
+         snprintf() to write the error string we return, as the one
+         formatted value is a simple string, and so altspell_error will
+         always be long enough to hold it.  Also remove unnecessary
+         initialization of altspell_error, refactor so that msglen is
+         no longer needed, and make the error message more similar to
+         what the internal spell checker returns under the same
+         circumstances. (DLR)
+       - Block any pending SIGWINCHes while the alternate spell checker
+         is running, so that it can handle them, and unblock them once
+         it's finished and we've loaded the spell-checked file back in.
+         (DLR)
+       - Use doupdate() to reenter curses mode instead of refresh().
+         (DLR)
+  do_spell()
+       - When displaying an error message from do_(int|alt)_speller(),
+         don't display the error message corresponding to errno if
+         errno is zero. (David Benbennick)
+  do_justify()
+       - If constant cursor position display is on, make sure the
+         cursor position is displayed properly when we finish. (DLR)
+  handle_sigwinch()
+       - Use doupdate() to reenter curses mode instead of refresh().
+         (DLR)
+  allow_pending_sigwinch()
+       - Simplify by using the "?" operator instead of an if clause.
+         (DLR)
+  main()
+       - When opening files with "+LINE,COLUMN" arguments on the
+         command line, don't update the screen when moving to their
+         specified lines and columns. (DLR)
+       - Rename variable fill_flag_used to fill_used, for consistency.
+         (DLR)
+- nano.h:
+       - Since we only use vsnprintf() now, remove the #ifdef block for
+         HAVE_SNPRINTF. (DLR)
+       - Remove TOP from the topmidnone enum, and rename the latter
+         centernone. (DLR)
+       - Move stdlib.h, dirent.h, regex.h, and assert.h includes here,
+         as every source file needs them. (DLR)
+       - Rename the updown enum scroll_dir and the centernone enum
+         update_type for clarity, and add an append_type enum. (DLR)
+       - If we don't have regex.h and hence regex support, disable
+         color support, as it depends on the use of regexes. (DLR)
+- rcfile.c:
+  nregcomp()
+       - Return TRUE when the compilation succeeds and FALSE otherwise,
+         instead of the other way around. (DLR)
+- search.c:
+  search_init()
+       - Don't blank out last_replace anymore when we get a new string,
+         as it'll be blanked out in do_replace().  Also, consolidate
+         the cases for blank and new search strings, as they now differ
+         only in which string they pass to regexp_init(). (DLR)
+  is_whole_word()
+       - Move to utils.c, as it's really a utility function in the same
+         vein as regexp_bol_or_eol(). (DLR)
+  replace_abort()
+       - Remove unnecessary update of placewewant. (DLR)
+  do_replace()
+       - Blank out last_replace properly again just before displaying
+         the "Replace" prompt. (DLR, found by Mike Frysinger)
+       - Remove unnecessary renumber(). (DLR)
+  do_gotolinecolumn()
+       - Add parameter allow_update to control whether the screen is
+         updated after moving.  If it's TRUE, call edit_refresh() after
+         edit_update(). (DLR)
+  do_gotopos()
+       - Only include this function when DISABLE_SPELLER isn't defined,
+         as the alternate spell checking code is now the only place
+         where it's used. (DLR)
+  do_find_bracket()
+       - Add comments and minor cleanups. (DLR)
+  find_history()
+       - Make parameters const where possible. (DLR)
+  update_history()
+       - Don't renumber the history list starting after the entry we
+         found if the entry we found is at the bottom of the list.
+         (DLR, found by Simon Strandman)
+  get_history_completion()
+       - Make parameters const where possible. (DLR)
+- text.c:
+  do_tab()
+       - Make sure that we insert the correct number of spaces if the
+         TABS_TO_SPACES flag is set and placewewant is greater than the
+         current column position of the cursor. (DLR)
+  do_enter()
+       - Don't update the edit window until we set placewewant. (DLR)
+  break_line()
+       - Fix a problem where a line could be broken in the middle of a
+         multibyte character. (DLR)
+  do_word_count()
+       - Rename to do_wordlinechar_count(), and expand to also count
+         the number of lines and characters in the file or selection,
+         as wc does. (DLR)
+- winio.c:
+  get_key_buffer()
+       - Only save all open buffers and hang up when a blocking
+         wgetch() returns ERR and errno is set to EIO (input/output
+         error).  If errno is set to something else, recover properly.
+         This fixes problems with nano's erroneously hanging up while
+         e.g. resizing or unsuspending in a chroot. (DLR, found by Mike
+         Frysinger)
+  get_escape_seq_kbinput()
+       - Fix typo preventing the VT100/VT220/VT320/xterm/rxvt escape
+         sequence for ',' on the numeric keypad with NumLock off from
+         being interpreted properly. (DLR)
+  get_word_kbinput()
+       - Multiply the entered digits by hexadecimal numbers instead of
+         decimal numbers for clarity, rename to get_unicode_kbinput(),
+         and rename variables word and word_digits to uni and
+         uni_digits. (DLR)
+  parse_verbatim_kbinput()
+       - Rename variables word_mb and word_mb_len to uni_mb and
+         uni_mb_len. (DLR)
+  display_string()
+       - Instead of using parse_mbchar()'s bad_chr parameter, use
+         mbrep() to get the representation of a bad character. (DLR)
+       - If column is less than start_col and the character's a tab,
+         which can be possible if there are enough tabs and the
+         terminal size is sufficiently large, don't try to display it
+         using control_mbrep(). (DLR, found by Duncan Geoffry Doyle)
+       - Really avoid a memory corruption problem by allocating enough
+         space for COLS characters. (DLR)
+  edit_redraw(), edit_refresh()
+       - Clean up and simplify. (DLR)
+  edit_update()
+       - Since we no longer use TOP, remove references to it.  Also,
+         don't call edit_refresh() anymore; it will call us. (DLR)
+  do_statusbar_next_word()
+       - Rework to be more like do_statusbar_prev_word(), to avoid a
+         potential problem if we start at the end of a line. (DLR)
+  do_statusbar_input()
+       - Call do_statusbar_mouse() instead of do_mouse(). (DLR)
+  do_statusbar_output()
+       - When adding a character, just add its length in bytes to
+         statusbar_x instead of calling do_statusbar_right(). (DLR)
+  titlebar()
+       - Rework to display only one space after the version number, so
+         that there's more room for other things, and to not display
+         the status when we're in the file browser, since Pico doesn't.
+         (DLR)
+  do_credits()
+       - Various cleanups.  Turn on the MORE_SPACE and NO_HELP flags
+         before showing the credits, so that they use as much of the
+         screen as possible, and set the flags back to their original
+         values afterward.  Also, call wscrl(1) instead of scroll(),
+         only call scrollok() just before and after we scroll, and
+         tweak where screen updates occur so that messages are properly
+         displayed when they first scroll onto the bottom line of the
+         screen. (DLR)
+       - Add Mike Frysinger to credits. (DLR)
+- configure.ac:
+       - Since we only use vsnprintf() now, remove the tests for
+         snprintf(). (DLR)
+       - Change the description of "sufficient wide character support"
+         to "sufficient UTF-8 support", as the latter is clearer. (DLR)
+       - Update the description of the ENABLE_COLOR option to mention
+         the need for regex.h. (DLR)
+- doc/faq.html:
+       - Update section 4.10 to mention that pasting from the X
+         clipboard via the middle mouse button also works when the
+         Shift key is used. (DLR)
+- doc/nanorc.sample:
+       - Add regexes for Bourne shell scripts. (Mike Frysinger, minor
+         tweaks by DLR)
+       - Explain how the "none" and "default" syntaxes work. (DLR)
+       - Tweaks and additions to the "c-file" regexes: handle #defined
+         constants more accurately and use a brighter color for them,
+         support C99 standard integer types, support more GCC builtins,
+         and color code flow control statements differently. (Mike
+         Frysinger)  DLR: Slightly simplify the integer types regex.
+       - Tweak one "TeX" regex to use the "icolor" directive. (DLR)
+- doc/man/nanorc.5:
+       - Explain how the "none" and "default" syntaxes work. (DLR)
+- doc/man/fr/nano.1, doc/man/fr/nanorc.5:
+       - Updated translation by Jean-Philippe GuĂ©rard.
+- src/Makefile.am:
+       - Add text.c to nano_SOURCES. (DLR)
+- AUTHORS:
+       - Add Mike Frysinger. (DLR)
+- README.CVS:
+       - Since we only use vsnprintf() now, remove the mention of
+         snprintf(). (DLR)
+- THANKS:
+       - Add Bulgarian and Dutch translators.
+
+GNU nano 1.3.8 - 2005.06.30
+- General:
+       - Miscellaneous comment fixes. (DLR)
+       - Various #include fixes.  Since proto.h includes nano.h, only
+         include the former in source files.  Also add an #include
+         guard to proto.h, and make the config.h #include in nano.h
+         match the config.h #includes everywhere else. (DLR)
+       - Change all hardcoded instances of 128 bytes to MAX_BUF_SIZE,
+         and #define MAX_BUF_SIZE as 128 in nano.h. (DLR)
+       - Display the key to go to the previous strings in the
+         search/replace history as "^P" instead of "Up".  This makes
+         mouse clicks work properly on it.  Changes to shortcut_init(),
+         help_init(), nanogetstr(), and do_statusbar_input(). (DLR)
+       - Update the Free Software Foundation's mailing address in
+         various comments. (DLR)
+       - Add the ability to open a file on a specified column as well
+         as a specified line, by allowing an argument of the form
+         +LINE,COLUMN.  New function parse_line_column(); changes to
+         shortcut_init(), main(), do_gotoline() (renamed
+         do_gotolinecolumn()), do_gotoline_void() (renamed
+         do_gotolinecolumn_void()), nano.1, and nano.texi. (DLR,
+         suggested by PFTank)
+       - Overhaul the history code to work more consistently, and clean
+         up various parts of it.  New function history_has_changed();
+         changes to load_history(), writehist(),
+         thanks_for_all_the_fish(), history_init(), find_node()
+         (renamed find_history()), update_history(),
+         get_history_older(), get_history_newer(),
+         get_history_completion(), do_search(), do_replace(),
+         nanogetstr(), and statusq(); removal of remove_node() and
+         insert_node(). (DLR)
+       - Remove all instances of charcpy() and replace them with
+         strncpy(), since there's no way to be sure that a charcpy()ed
+         string will always be properly null-terminated, and strcpy()'s
+         null termination is the only difference between it and
+         charcpy(). (DLR)
+       - When using a backup directory, make sure all the filenames
+         written are unique by using get_next_filename() when
+         necessary.  Changes to get_next_filename(), write_file(),
+         die(), usage(), nano.1, nanorc.5, nanorc.sample, and
+         nano.texi. (DLR, suggested by James Collings)
+       - Rework the file-writing routines so that they can work
+         properly with already-opened files, such as the
+         mkstemp()-created files used by the spell-checking code.
+         Changes to safe_tempnam() (renamed safe_tempfile()),
+         write_file(), write_marked(), die(), do_spell(), and
+         do_exit(). (DLR)
+       - Remove the -R/--regexp command line option and enable the
+         toggle at the search prompt in tiny mode, as it already
+         allows the prepend and append toggles at the search prompt.
+         For consistency, rename TOGGLE_REGEXP_KEY to NANO_REGEXP_KEY,
+         and move it out of the toggles block to where NANO_PREPEND_KEY
+         and NANO_APPEND_KEY are.  Also, change the short command line
+         option for --restricted from -Z to -R.  Changes to
+         shortcut_init(), usage(), main(), search_init(), nano.1,
+         nano.texi, etc. (DLR)
+       - Various cleanups and improvements in chars.c.  Remove some
+         unnecessary w?ctype wrappers and variables; change the wctype
+         wrappers to take wint_t instead of wchar_t to match the
+         functions they wrap; rename some functions for consistency;
+         add functions to detect blank characters in a string, for use
+         in rcfile option parsing; and don't count matches between
+         valid and invalid multibyte sequences anymore, as it causes
+         problems when doing a replace.  New functions
+         is_valid_mbstring(), has_blank_chars(), and
+         has_blank_mbchars(); changes to is_alnum_mbchar(),
+         is_blank_char() (renamed nisblank()), is_blank_mbchar(),
+         is_blank_wchar() (renamed niswblank()), is_cntrl_wchar(),
+         control_rep(), control_mbrep(), make_mbstring() (renamed
+         make_valid_mbstring()), mbstrncasecmp(), mbstrcasestr(),
+         mbrevstrcasestr(), etc.; removal of is_alnum_char() and
+         is_alnum_wchar(). (DLR)
+       - Implement word count via Meta-D at the main window.  Note that
+         this is disabled when NANO_SMALL is defined.  Also, convert
+         all word detection functions to use the same wrapper function
+         for ease of maintenance, and make them return more
+         information.  New functions is_punct_mbchar(),
+         is_word_mbchar(), do_next_word_void(), do_prev_word_void(),
+         and do_word_count(); changes to shortcut_init(),
+         do_next_word(), do_prev_word(), is_whole_word(),
+         do_statusbar_next_word(), and do_statusbar_prev_word(). (DLR)
+       - Fix #ifdefs so that nano compiles with NANO_SMALL defined and
+         DISABLE_TABCOMP undefined.  Changes to revstrstr() and
+         free_charptrarray() (renamed free_chararray()). (DLR)
+       - Change the wctype wrappers to take wchar_t's again, as they
+         still work the same way with them.  This also fixes
+         compilation on Mac OS X 10.4.1, which doesn't seem to define a
+         wint_t type. (DLR, found by Emily Jackson)
+       - Add the ability to convert typed tabs to spaces using
+         the -E/--tabstospaces command line options, the "tabstospaces"
+         rcfile option, and the toggle Meta-Q (since QBasic did this by
+         default :)).  Note that this doesn't affect tabs entered using
+         verbatim input, and that it's disabled when NANO_SMALL is
+         defined.  Also, change the short command line option for
+         --backupdir from -E to -C.  Changes to toggle_init(), usage(),
+         do_tab(), main(), nanorc.sample, nano.1, nanorc.5, and
+         nano.texi. (DLR, suggested by many people)
+       - Change the CONSTUPDATE, REVERSE_SEARCH, and SMOOTHSCROLL flags
+         to the CONST_UPDATE, BACKWARDS_SEARCH, and SMOOTH_SCROLL
+         flags, respectively. (DLR)
+       - Change the SMOOTHSCROLL flag to the SMOOTH_SCROLL flag. (DLR)
+       - Change the NO_UTF8 flag to the USE_UTF8 flag, and reverse its
+         meaning. (DLR)
+       - Add rcfile options "casesensitive" and "backwards", to do
+         case sensitive and backwards searches by default.  Changes to
+         nanorc.sample and nanorc.5. (DLR)
+       - Since the DISABLE_CURPOS flag is only used in winio.c, reduce
+         it to a static bool there.  Changes to statusbar() and
+         disable_cursorpos(). (DLR)
+       - Add -U/--quickblank option and a "quickblank" rcfile option to
+         blank the statusbar after 1 keystroke instead of 25.  Note
+         that this obviously has no effect when constant cursor
+         position display is turned on, and that this is disabled when
+         NANO_SMALL is defined.  Changes to usage(), main(),
+         statusbar(), nanorc.sample, nano.1, and nanorc.5. (DLR,
+         suggested by CHAO Wei-Lun)
+       - Add support for case insensitive expression matching when
+         using color syntax highlighting, via the "icolor" directive,
+         and add it to those regexes that can use it.  Changes to
+         parse_colors(), parse_rcfile(), nanorc.sample, and nanorc.5.
+         (Brand Huntsman, minor tweaks by DLR)
+       - Add various type changes to avoid problems on systems where
+         int and ssize_t are different sizes.  Make filestruct->lineno
+         a ssize_t (so that we can avoid negative line numbers at the
+         "Go To Line" prompt), current_y a ssize_t (in order to hold
+         the maximum difference between two filestruct->lineno's),
+         totlines a size_t, and change related variables to match.
+         (DLR, initial problem with parse_line_column() found by Mike
+         Frysinger)
+       - Rework the credits handling to display Florian König's name
+         properly whether we're in a UTF-8 locale or not, and without
+         requiring a massive function that we only use once.  Changes
+         to do_credits(); removal of make_valid_mbstring(). (DLR)
+- chars.c:
+  make_mbstring()
+       - Change erroneous ENABLE_EXTRA #ifdef to NANO_EXTRA to fix a
+         compilation problem when --enable-nanorc isn't used and
+         --enable-extra is. (DLR)
+- color.c:
+  update_color()
+       - Use mbstrcasecmp() instead of strcasecmp(), so that UTF-8
+         color syntax names are properly detected. (DLR)
+- cut.c:
+  cut_line()
+       - Set placewewant properly after cutting a line, to avoid a
+         problem where the screen won't be updated if (a) we're not on
+         the first page when we cut the line, and (b) immediately after
+         we cut the line, we hit End to move to the end of the line
+         after it. (DLR)
+- files.c:
+  read_line()
+       - Rename variable prev to prevnode to avoid confusion. (DLR)
+       - Rename variable len to buf_len, for consistency. (DLR)
+  load_open_file()
+       - Remove an unneeded clearok(FALSE). (DLR)
+  get_next_filename()
+       - Use an unsigned long instead of an int for the number
+         prepended to the filename. (DLR)
+  do_insertfile()
+       - Set i to 0 when we get a filename via the file browser, so
+         that it's read in properly when we exit the file browser.
+         (DLR)
+  open_prevnext_file()
+       - Move up a misplaced assert. (DLR)
+       - Rename variable next to next_file, to avoid confusion. (DLR)
+  write_file()
+       - Since lineswritten is a size_t, print its value as an unsigned
+         long instead of an unsigned int. (DLR)
+       - Declare the size_t i only in the loop where it's used. (DLR)
+  diralphasort()
+       - Use mbstrcasecmp() instead of strcasecmp(), so that UTF-8
+         filenames are sorted properly. (DLR)
+  cwd_tab_completion(), browser_init()
+       - Rename variable next to nextdir to avoid confusion. (DLR)
+  input_tab()
+       - Since list is a bool, set it to FALSE instead of 0. (DLR)
+       - Add multibyte/wide character support, so that we don't end up
+         with a string that contains only part of a multibyte
+         character during tab completion. (DLR)
+       - Rename variable buflen to buf_len, for consistency. (DLR)
+  do_browser()
+       - Don't treat NANO_CANCEL_KEY as NANO_EXIT_KEY anymore, for
+         consistency. (DLR)
+       - When displaying "(dir)" in the available screen space, make
+         sure that the string it's stored in is always null-terminated.
+         (DLR)
+       - Rename variable selectedbackup to old_selected, for
+         consistency. (DLR)
+       - Make mouse clicks in the browser window work properly when the
+         MORE_SPACE flag is set. (DLR)
+       - Make foo_len a size_t instead of an int. (DLR)
+  save_history()
+       - Properly save history when we're in view mode. (DLR)
+- global.c:
+  shortcut_init()
+       - Move the "Refresh" and "Exit" shortcuts to the beginning of
+         the help browser shortcut list, for consistency. (DLR)
+       - Remove unnecessary "Refresh" placeholder in the file browser
+         shortcut list. (DLR)
+       - Allow the mark to be used in view mode, as Pico does. (DLR)
+       - Clarify the description of ^X when --enable-multibuffer is
+         used. (DLR)
+       - Change the description of the Meta-B toggle at the search
+         prompt from "Direction" to "Backwards", for consistency. (DLR)
+  toggle_init()
+       - Clarify the descriptions of M-C and M-L. (DLR)
+       - Reorder the toggles to put more toggles with similar functions
+         together. (DLR)
+  thanks_for_all_the_fish()
+       - Remove free_toggles() and move its code here verbatim, as it's
+         only called here anyway. (David Benbennick)
+       - Fix the code to free all open file buffers to work properly
+         with the previous overhaul of the multibuffer code instead of
+         going into an infinite loop. (David Benbennick)
+       - Add additional checks for variables' not being NULL before we
+         try to free them, to avoid assertion failures. (DLR)
+- nano.c:
+  die()
+       - Rename variable ret to retval for consistency. (DLR)
+       - Tweak the message displayed when a backup file can't be
+         written, so as to not duplicate a translated string. (DLR)
+       - If the current filestruct's been partitioned, unpartition it
+         before saving the associated file. (DLR)
+  resize_variables()
+       - Use charset() instead of memset() to initialize hblank. (DLR)
+  copy_filestruct()
+       - Rename variable prev to copy to avoid confusion. (DLR)
+  print1opt_full()
+       - If desc should be empty, allow it to be NULL instead of
+         "", since the latter is not necessarily translated as "".
+         (DLR, found by Jordi)
+  usage()
+       - Add missing N_() around one message, so that it isn't
+         erroneously translated twice. (DLR)
+       - Remove inaccurate default listed for -Q/--quotestr. (DLR)
+  version()
+       - Add --enable-utf8 to the displayed compilation options, put
+         the options in alphabetical order, and handle --enable-tiny
+         the same way as all the other options. (DLR)
+  do_tab()
+       - Remove unneeded variable kbinput. (DLR)
+  do_int_spell_fix()
+       - Display highlighted misspelled words using display_string(),
+         as do_replace_loop() does. (DLR)
+  do_alt_speller()
+       - Replace a set_modified() with SET(MODIFIED) to avoid an
+         unnecessary update, and remove an unneeded clearok(FALSE).
+         (DLR)
+       - Move the spell checking error handling block down and refactor
+         it so that we go back into curses mode, reinitialize the
+         terminal, turn the cursor back on, and turn the mark back on
+         if necessary before returning the error message. (DLR)
+  do_spell()
+       - If the spell-checker printed any error messages onscreen, call
+         total_refresh() to make sure they're cleared off. (DLR, found
+         by CHAO Wei-Lun)
+  find_paragraph()
+       - Reset placewewant as well as current_x to 0, in order to avoid
+         a potential screen update problem. (DLR)
+  do_justify()
+       - Save placewewant, and restore it if we unjustify, in order to
+         avoid a potential screen update problem. (DLR)
+  do_output()
+       - Properly allow wrapping when we insert a tab, for consistency.
+         (DLR)
+       - Don't set current_len until after it's been asserted that both
+         current and current->data aren't NULL. (DLR)
+  do_toggle()
+       - Properly treat color syntax highlighting as enabled by
+         default, and only treat wrapping as enabled by default when
+         DISABLE_WRAPPING isn't defined. (DLR)
+  disable_extended_input()
+       - Disable extended output processing as well as extended input
+         processing, and rename to disable_extended_io(). (DLR)
+  disable_flow_control(), enable_flow_control()
+       - Only turn off flow control on output, as it might be needed
+         for input on slow terminals. (DLR)
+- nano.h:
+       - Add macro charset(), a wrapper that calls memset(). (DLR)
+       - Readd #defines for the isblank() and iswblank() equivalents.
+         (DLR)
+       - In the colortype struct, make bright a bool instead of an int,
+         for consistency. (DLR)
+- proto.h:
+       - Add missing NANO_SMALL and HAVE_REGEX_H #ifdefs around the
+         do_find_bracket() prototype. (DLR)
+- rcfile.c:
+  color_to_int()
+       - Since colorname's being NULL is handled elsewhere now, assert
+         that it isn't NULL at the beginning of the function. (DLR)
+  parse_colors()
+       - Properly parse a background color without a foreground color.
+         (DLR)
+       - Properly generate an error if we get a color directive without
+         a regex string. (DLR)
+  parse_rcfile()
+       - Properly generate an error if we get an invalid multibyte
+         string for an option, instead of working around it. (DLR)
+       - Use has_blank_mbchars() to check for blank characters in the
+         "punct" and "brackets" options, and clarify the error message
+         displayed when we find blank characters. (DLR)
+- search.c:
+  do_gotoline()
+       - Properly show an error message if we try to go to line 0,
+         since the first line in the file is 1. (DLR)
+       - Start the search for a line from fileage instead of current
+         (again). (DLR)
+  replace_regexp()
+       - Rename variables create_flag and new_size to create and
+         new_line_size, for consistency. (DLR)
+       - Make new_line_size, search_match_count, and i size_t's, for
+         consistency. (DLR)
+  replace_line()
+       - Make new_line_size and search_match_count size_t's, for
+         consistency. (DLR)
+  do_replace_loop()
+       - When moving to the next match, update the screen using
+         edit_refresh() instead of edit_redraw(), as the latter won't
+         work properly when we've replaced one or more instances of a
+         string in copy and haven't yet updated current->data to match
+         copy. (DLR)
+  do_find_bracket()
+       - Miscellaneous cleanups: rename variables for consistency, and
+         save the search direction and regexp setting in two bools
+         instead of one flags variable. (DLR)
+- utils.c:
+  num_of_digits()
+       - Use a size_t instead of an int, and rename to digits(). (DLR)
+  align()
+       - Rename variable strp to str for consistency. (DLR)
+- winio.c:
+  do_statusbar_output()
+       - Don't set answer_len until after it's been asserted that
+         answer isn't NULL. (DLR)
+  display_string()
+       - Avoid a memory corruption problem by allocating enough space
+         for len plus a trailing multibyte character and/or tab. (DLR)
+       - Don't check for multicolumn characters if the NO_UTF8 flag
+         isn't set. (DLR)
+       - Free buf_mb when we're done using it. (DLR)
+  nanogetstr()
+       - Rename variable def to curranswer to avoid confusion. (DLR)
+       - Only declare and use the tabbed variable if DISABLE_TABCOMP
+         isn't defined. (DLR)
+       - Refactor to replace unnecessary variable answer_len with
+         curranswer_len, and hence avoid an assertion failure involving
+         the former. (DLR)
+  statusq()
+       - Rename variable which_history to history_list, for
+         consistency. (DLR)
+       - Rename variables def and ret to curranswer and retval to avoid
+         confusion. (DLR)
+       - Call wnoutrefresh(bottomwin) after getting an answer and
+         blanking out the statusbar, to make sure that the blanking is
+         done.  This fixes a problem where the statusbar is not
+         properly blanked after using the "Go To Line" prompt with the
+         NO_HELP flag set. (DLR)
+  titlebar()
+       - Use actual_x() to calculate the number of characters VERMSG
+         takes up, in case it's UTF-8. (DLR)
+  do_cursorpos()
+       - Properly display the value of totsize as unsigned. (DLR)
+       - If constant is TRUE, only display the cursor position when
+         disable_cursorpos is FALSE.  Don't refuse to display it when
+         the cursor position hasn't changed, as that doesn't always
+         keep it properly updated. (DLR, found by Mike Frysinger)
+  do_help()
+       - Don't treat NANO_CANCEL_KEY as NANO_EXIT_KEY anymore, for
+         consistency. (DLR)
+  statusbar()
+       - Set statusblank to 25 instead of 26, to match current Pico.
+         (DLR)
+  edit_redraw()
+       - Make do_refresh a bool instead of an int. (DLR)
+  do_yesno()
+       - Allow refreshing the screen via Ctrl-L, as Pico does. (DLR)
+       - Add a missing assert, and use actual_x() to calculate the
+         number of characters buf takes up, in case it's UTF-8. (DLR)
+       - Get input from bottomwin instead of edit, so that the cursor
+         isn't erroneously put in the edit window while we wait for an
+         answer. (DLR)
+       - Call wnoutrefresh(edit) to make sure that the edit window is
+         refreshed before we get input, as statusq() does. (DLR)
+  total_redraw()
+       - Simplify to just call wrefresh() on curscr, which updates the
+         entire screen in one function call without moving the cursor
+         from the window it's currently in. (DLR)
+       - When using slang, use SLsmg_touch_screen() and SLsmg_refresh()
+         to update the screen, as slang doesn't define curscr. (DLR)
+  do_replace_highlight()
+       - Use waddch() instead of waddstr() to display a space when we
+         have a zero-length regex. (DLR)
+       - Rename variable highlight_flag to highlight, for consistency.
+         (DLR)
+  do_credits()
+       - Save the keystroke that breaks us out of the credits (if any)
+         and put it back so that it isn't lost.  This is especially
+         needed if the keystroke is part of a multibyte character.
+         (DLR)
+- nano.1:
+       - Clarify and consolidate the descriptions of --fill and
+         --tabsize. (DLR)
+- nanorc.5:
+       - Update the description of how the "color" regex works. (DLR)
+       - Clarify descriptions of the characters that aren't allowed
+         in the "punct" or "brackets" options. (DLR)
+       - Use .B instead of \fB ... \fP where possible, as nano.1 does.
+         (DLR)
+       - Clarify and consolidate the descriptions of "fill" and
+         "tabsize". (DLR)
+- nano.texi:
+       - Update the "Feature Toggles" section to match current nano.
+         (DLR)
+       - Clarify and consolidate the descriptions of --fill and
+         --tabsize. (DLR)
+- configure.ac:
+       - Minor tweaks to some of the test blocks to avoid XSI:isms.
+         (DLR, adapted from a Debian patch for GNU ed by David
+         Weinehall)
+       - Don't refer to the built-in file browser as crappy anymore.
+         (DLR)
+       - Check for iswpunct() and mbstowcs(). (DLR)
+       - Change the behavior of --enable-extra to only define
+         NANO_EXTRA, instead of defining both it and
+         ENABLE_MULTIBUFFER. (DLR)
+       - Check for get_wch() instead of wget_wch() to determine if
+         there's a wide curses library, as it's a more generic
+         function. (DLR)
+       - Check for possibly unavailable functions in alphabetical
+         order. (DLR)
+- doc/faq.html:
+       - Update section 1.1 to mention the current maintainer. (DLR)
+       - Minor capitalization and wording fixes. (DLR)
+       - Update description of --enable-extra, and add missing line
+         breaks. (DLR)
+- doc/nanorc.sample:
+       - In the "nanorc" regexes, tweak the "color" regex to properly
+         color a line that specifies a background color without a
+         foreground color, and update the associated comments. (DLR)
+       - Clarify descriptions of the characters that aren't allowed
+         in the "punct" or "brackets" options. (DLR)
+       - Update comment referring to --enable-extra. (DLR)
+       - Add "cxx" and "hxx" to the list of extensions that the
+         "c-file" regexes apply to, and add "warning" and "error" to
+         them as well. (Mike Frysinger)
+       - Add regexes for assembler files. (Mike Frysinger)
+       - In the preprocessor directives regex string in the "c-file"
+         regexes, cover more whitespace characters than just " " by
+         using "[[:space:]]" instead. (Mike Frysinger)  DLR: Extend
+         this to other regex strings whenever possible.
+       - Move some overly long split-up regex strings that cover
+         similar areas onto the same line. (DLR)
+       - Add GCC builtins to the "c-file" regexes. (Mike Frysinger)
+       - Simplify the file extension regex for groff. (DLR)
+       - Clarify and consolidate the descriptions of "fill" and
+         "tabsize". (DLR)
+- Makefile.am, m4/Makefile.am:
+       - Make sure that the files in EXTRA_DIST are in alphabetical
+         order, and that the lines are wrapped at 72 characters. (DLR)
+- doc/man/fr/Makefile.am:
+       - Set mandir to @mandir@/fr, so French manpages get installed
+         where they belong (Jordi).
+- THANKS:
+       - Add new translators to the credits.
+
+GNU nano 1.3.7 - 2005.04.10
+- General:
+       - Miscellaneous comment fixes. (DLR)
+       - After (re)initializing the terminal, make sure the cursor is
+         always turned on.  Changes to do_alt_speller(),
+         handle_sigwinch(), and main(). (DLR)
+       - Make sure that all references to cut-to-end are left out when
+         NANO_SMALL is defined.  Changes to cut_to_eol(),
+         do_cut_text(), and do_statusbar_cut_text(). (DLR)
+- chars.c:
+  make_mbchar()
+       - Remove unneeded assert. (DLR)
+  move_mbleft()
+       - Fix assert to reference the proper variable, so that nano
+         builds with DEBUG defined again. (Mike Frysinger, found by
+         Dmitri Vassilenko)
+- files.c:
+  do_insertfile()
+       - Fix problem where going into the help browser at the "Insert
+         File" prompt would always result in the current answer's being
+         used as the filename afterward. (DLR)
+  get_full_path()
+       - Rework handling of the results of getcwd() in order to avoid
+         segfaults if they fail, and to remove uses of the nonportable
+         GNU extension where passing a size of 0 will get a string as
+         long as we need. (DLR)
+  do_browser()
+       - Rename variable lineno to fileline to avoid confusion. (DLR)
+  do_browse_from()
+       - Rework handling of the results of getcwd() in order to avoid
+         segfaults if they fail, and to remove uses of the nonportable
+         GNU extension where passing a size of 0 will get a string as
+         long as we need. (DLR)
+- nano.c:
+  help_init()
+       - When calculating allocsize, take multibyte characters into
+         account, and keep the column number limits consistent. (DLR)
+       - Break htx up into three chunks, in case the string is too long
+         for the compiler to handle (e.g. an ISO C89 compiler that can
+         only handle up to 509 characters). (DLR)
+       - Minor wording fixes. (DLR)
+  print1opt()
+       - Don't include longflag if HAVE_GETOPT_LONG isn't defined.
+         Rename this function to print1opt_full(), leave out the
+         longflag parameter if HAVE_GETOPT_LONG isn't defined, and make
+         print1opt() a macro for print1opt_full() that does that
+         without the need for a lot of extra #ifdefs. (David
+         Benbennick)  DLR: Rename print1opt_f() to print1opt_full().
+       - Rework the special case of options that are ignored for Pico
+         compatibility so that they display more neatly when
+         HAVE_GETOPT_LONG isn't defined. (DLR)
+  usage()
+       - Fix erroneous #ifdef that resulted in the -d/--rebinddelete
+         option's not being printed when NANO_SMALL was defined. (DLR)
+  find_paragraph()
+       - Fix problem where a search for the next paragraph would skip
+         over certain cases of one-line paragraphs. (DLR)
+  do_justify()
+       - Instead of breaking a line at a space and readding the space
+         afterwards, just break the line after the space, as it's more
+         efficient. (DLR)
+  main()
+       - Change 0 to NULL in the option struct where needed. (David
+         Benbennick)
+- nano.h:
+       - Define PATH_MAX as 4096 if it isn't defined, as passing a size
+         of 0 to get a string as long as we need is a nonportable GNU
+         extension, and hence it won't work on non-GNU systems that
+         don't define PATH_MAX. (DLR)
+- rcfile.c:
+  parse_rcfile()
+       - Fix debugging message to display the long value of a flag
+         properly. (DLR)
+- utils.c:
+  regexec_safe()
+       - Rename to safe_regexec() for consistency. (DLR)
+- winio.c:
+  nanogetstr()
+       - Fix misplaced break. (DLR)
+  statusq()
+       - Make sure that the vsnprintf(foo) call and foo's subsequent
+         null termination both take the proper number of bytes when
+         using multibyte characters, so that multibyte prompt strings
+         aren't prematurely cut off. (DLR)
+  titlebar()
+       - Make sure that the (mv)?waddnstr() calls take the proper
+         number of bytes when using multibyte characters, so that
+         multibyte strings aren't prematurely cut off. (DLR, found by
+         Jordi)
+       - Allow the "View" state to be displayed when a filename is
+         passed in, in case we're in multibuffer mode and inside the
+         file browser. (DLR)
+  help_line_len()
+       - Make the text display more flexible, and closer to what nano
+         1.2.x does. (DLR)
+- configure.ac:
+       - Allow more flexible handling of UTF-8 support by allowing
+         the --enable-utf8 and --disable-utf8 options. (Mike
+         Frysinger)  DLR: Extend these options to work with slang as
+         well as curses, consolidate the warning and error messages
+         dealing with UTF-8 support as much as possible, and add a few
+         minor consistency fixes.
+       - Mention explicitly that the check for the broken regexec() is
+         needed for glibc 2.2.3. (DLR)
+- nanorc.sample:
+       - Fix the description for the whitespace option to mention that
+         only single-column characters are allowed. (DLR)
+       - Add C++ regexes. (Neil Brown, merged into c-file regexes by
+         DLR)
+       - Break up overly long perl and nanorc regexes into separate
+         regexes of no more than 256 bytes, as POSIX-compliant regexp
+         implementations can reject regexes of over 256 bytes. (DLR)
+- nano.1, nano.texi:
+       - Mention the -? alias for -h/--help, and add various
+         consistency fixes. (DLR)
+- nanorc.5:
+       - Fix the description for the whitespace option to mention that
+         only single-column characters are allowed. (DLR)
+
+GNU nano 1.3.6 - 2005.03.20
+- General:
+       - More int -> bool conversions. (DLR and David Benbennick)
+       - Overhaul the cutting and uncutting routines to use the
+         partitioning code, as it greatly simplifies how they work.
+         New functions move_to_filestruct(), copy_from_filestruct(),
+         cut_line(), cut_marked(), and cut_to_eol(); changes to
+         add_to_cutbuffer(), do_cut_text(), do_uncut_text(), etc.;
+         removal of functions get_cutbottom(), add_to_cutbuffer(), and
+         cut_marked_segment(). (DLR)
+       - Overhaul the justify-related routines to back up and restore
+         unjustified text to use the partitioning code, as it greatly
+         simplifies how they work, and to store such text in its own
+         buffer rather than the cutbuffer.  Changes to backup_lines(),
+         do_justify(), etc. (DLR)
+       - Overhaul the multibuffer routines to increase efficiency, most
+         importantly making them use a doubly linked list for the open
+         files so that switching between them is no longer O(N), and
+         only including free_openfilestruct() when --enable-debug is
+         used.  Also use some of the same efficiency tweaks when
+         dealing with filestruct nodes.  New function
+         open_prevnext_file(); changes to make_new_opennode(),
+         splice_opennode(), unlink_opennode(), delete_opennode(),
+         free_openfilestruct(), add_open_file(), load_open_file(),
+         close_open_file(), shortcut_init(), die(), make_new_node(),
+         copy_node(), splice_node(), delete_node(), and
+         free_filestruct(); removal of open_prevfile() and
+         open_nextfile(). (David Benbennick, minor tweaks and additions
+         by DLR)
+       - Change references to "open files" to "open file buffers", for
+         consistency. (DLR)
+       - Add flag to disable UTF-8 sequence interpretation, so that
+         people using single-byte encodings such as KOI8-R can type
+         properly again. (DLR, found by Arthur Ivanov)
+       - Massively overhaul the input and output routines to support
+         buffered input and output, the first steps toward
+         wide/multibyte character input and output, and verbatim input
+         of double-byte Unicode characters instead of single-byte ASCII
+         characters.  New functions is_byte(), get_buffer(),
+         get_buffer_len(), buffer_to_keys(), unget_input(),
+         get_input(), parse_kbinput(), and parse_verbatim_kbinput();
+         new macro charcpy(); changes to do_char() (renamed to
+         do_output()), get_edit_input() (renamed to do_input() and
+         moved to nano.c), get_edit_mouse() (renamed do_mouse() and
+         moved to nano.c), do_verbatim_input(), do_tab(), main(), and
+         get_ascii_kbinput() (renamed to get_byte_kbinput()).  The wide
+         version of ncurses is required in order for wide/multibyte
+         input and output to work properly. (DLR; buffered input/output
+         based on ideas from mutt 1.4.2.1; input of Unicode characters
+         in hexadecimal suggested by Michael Piefel)
+       - More steps toward wide character/multibyte character support.
+         New functions control_rep(), parse_char(), move_left(), and
+         move_right(); changes to do_left(), do_right(), do_delete(),
+         breakable(), break_line(), do_output(), get_buffer(),
+         unget_input(), actual_x(), strnlenpt(), display_string(),
+         titlebar(), statusbar(), onekey(), edit_add(),
+         do_replace_highlight(), and do_credits(). (David Benbennick
+         and DLR)
+       - Overhaul the high-level input routines for the statusbar to
+         make them read the shortcut lists for functions instead of
+         manually running them, to make nanogetstr() less complex, and
+         to increase flexibility.  Note that currshortcut is now used
+         regardless of #ifdefs, and that cutting text at the statusbar
+         now respects the CUT_TO_END flag.  Changes to shortcut_init()
+         and nanogetstr(); new functions do_statusbar_input(),
+         do_statusbar_mouse(), do_statusbar_home(), do_statusbar_end(),
+         do_statusbar_right(), do_statusbar_left(),
+         do_statusbar_backspace(), do_statusbar_delete(),
+         do_statusbar_cut_text(), and do_statusbar_output(). (DLR)
+       - Even more steps toward wide character/multibyte character
+         support.  Movement and cursor display at the statusbar prompt
+         should now (mostly) work properly with a string containing
+         multibyte characters, and text display of such strings should
+         now (mostly) work properly as well.  Changes to search_init(),
+         nanoget_repaint(), do_statusbar_right(), do_statusbar_left(),
+         do_statusbar_backspace(), and do_statusbar_delete(). (David
+         Benbennick and DLR)
+       - Implement cutting from the current position to the end of the
+         file, using Ctrl-X from the search prompt and Meta-T from the
+         edit window.  New function do_cut_till_end().  Note that this
+         is disabled when NANO_SMALL is defined. (DLR, based on ideas
+         from a patch for Pico by Eduardo Chappa, suggested by Ryan
+         Dlugosz and Paul Adams)
+       - Implement verbatim input for the statusbar prompt.  Changes to
+         do_statusbar_input() and do_statusbar_output(); new functions
+         keys_to_buffer(), unparse_kbinput(), and
+         do_statusbar_verbatim_input(). (DLR)
+       - Yet more steps toward full wide character/multibyte character
+         support.  Overhaul the functions that already have support for
+         them to work with multibyte strings as much as possible, add
+         support to a few more functions as well, and move multibyte
+         character-specific functions to their own source file.  New
+         file chars.c; new functions is_alnum_char(),
+         is_alnum_mbchar(), is_alnum_wchar(), is_blank_mbchar(),
+         is_blank_wchar(), is_cntrl_mbchar(), is_cntrl_wchar(),
+         control_mbrep(), control_wrep(), mbwidth(), mb_cur_max(),
+         make_mbchar(), mbstrlen(), mbstrnlen(), mbstrcasecmp(),
+         mbstrncasecmp(), mbstrcasestr(), and mbrevstrcasestr();
+         changes to help_init(), do_wrap(), break_line(), is_byte()
+         (moved to chars.c), is_blank_char() (moved to chars.c),
+         is_cntrl_char() (moved to chars.c), nstricmp() (renamed
+         nstrcasecmp() and moved to chars.c), nstrnicmp() (renamed
+         nstrncasecmp() and moved to chars.c), nstristr() (renamed
+         nstrcasestr() and moved to chars.c), revstrstr() (moved to
+         chars.c), revstristr() (renamed revstrcasestr() and moved to
+         chars.c), nstrnlen() (moved to chars.c), parse_char() (renamed
+         parse_mbchar() and moved to chars.c), move_left() (renamed
+         move_mbleft() and moved to chars.c), move_right() (renamed
+         move_mbright() and moved to chars.c), do_home(),
+         do_verbatim_input(), do_delete(), do_tab(), do_enter(),
+         indent_length(), do_next_word(), do_prev_word(), do_wrap(),
+         do_input(), do_output(), is_whole_word(), strstrwrapper(),
+         get_buffer(), unget_input(), unget_kbinput(), get_input(),
+         parse_kbinput(), unparse_kbinput(), parse_verbatim_kbinput(),
+         do_statusbar_input(), do_statusbar_home(),
+         do_statusbar_verbatim_kbinput(), do_statusbar_output(),
+         do_help(), help_line_len(), and display_string(); removal of
+         buffer_to_keys() and keys_to_buffer(). (DLR)
+       - Add -O/--morespace command line option, plus a corresponding
+         Meta-O toggle and a "morespace" rcfile option.  When these are
+         used, the normally-unused blank line below the titlebar will
+         be treated as part of the edit window.  New functions
+         no_more_space() and blank_topbar(); changes to global_init(),
+         window_init(), handle_sigwinch(), do_toggle(), do_mouse(),
+         get_mouseinput(), etc. (DLR; suggested by Mike Frysinger,
+         Rocco, and Robert Schultz)
+       - Add support for moving to the next or previous word at the
+         statusbar prompt.  New functions do_statusbar_next_word() and
+         do_statusbar_prev_word(); changes to do_statusbar_input().
+         (DLR)
+       - Make resizing more flexible.  We now can work with as few as
+         one row, and with no limit on the number of columns (except of
+         course the curses-imposed limit that it be greater than zero).
+         New function resize_variables(); changes to die_too_small()
+         (renamed check_die_too_small()), global_init(), window_init(),
+         and handle_sigwinch(). (David Benbennick)
+       - Use void instead of RETSIGTYPE, as signal handlers are
+         supposed to return void anyway.  Also, the value of RETSIGTYPE
+         is sometimes misdetected as int, leading to compilation
+         warnings or errors.  Changes to cancel_fork(),
+         handle_hupterm(), do_suspend(), and do_cont(). (David
+         Benbennick)
+       - Change flags to an unsigned long, and totsize to a size_t.
+         (DLR)
+       - Store the number of multibyte characters instead of the number
+         of single-byte characters in totsize, and use get_totals() to
+         get the value of totsize in a few more places.  Changes to
+         read_line(), read_file(), do_delete(), do_input(),
+         get_totals(), and do_cursorpos(). (DLR)
+       - Overhaul the tab completion code, the file browser code, and
+         related functions to increase efficiency and support multibyte
+         characters.  New function is_dir(); changes to
+         get_full_path(), check_writable_directory(), safe_tempnam(),
+         diralphasort(), username_tab_completion(),
+         cwd_tab_completion(), input_tab(), tail(), striponedir(),
+         browser_init(), do_browser(), and do_browse_from(); removal of
+         append_slash_if_dir(), readable_dir(), and
+         check_wildcard_match(). (David Benbennick)  DLR: Move the
+         routine to get the current user's home directory into the new
+         function get_homedir(), and use it where necessary.  Also add
+         a few miscellaneous tweaks.
+       - Overhaul the rcfile parsing code to make it simpler and more
+         accurate, remove now-redundant checks from the color code,
+         change the COLOR_SYNTAX toggle to the NO_COLOR_SYMTAX toggle,
+         and improve various debugging messsages.  Changes to
+         set_colorpairs(), do_colorinit(), parse_next_word(),
+         parse_argument(), colortoint(), parse_next_regex(),
+         parse_syntax(), parse_colors(), parse_rcfile(), do_rcfile(),
+         etc. (David Benbennick)  DLR: Rename colortoint() to
+         color_to_int(), and add a few miscellaneous tweaks.
+       - Overhaul the paragraph-searching code to make it use the
+         paragraph-searching utility functions when possible instead of
+         duplicating code.  Also overhaul the justify code to make it
+         leave the right number of spaces at the ends of the lines of a
+         paragraph, to make it support multibyte characters, and to
+         make it simpler.  Also, don't remove a space after a duplicate
+         character in punct anymore, as it doesn't really make us more
+         compatible with Pico.  New functions mbstrchr(),
+         do_para_begin_void(), and do_para_end_void(); changes to
+         justify_format(), do_para_begin(), inpar(), do_para_end(),
+         break_line(), do_para_search() (renamed find_paragraph()), and
+         do_justify(); removal of breakable(). (DLR)
+       - Still more steps toward full wide/multibyte character support.
+         Make sure all rcfile arguments are valid multibyte strings,
+         make whitespace display mode work with multibyte characters,
+         and add a few related documentation updates.  New function
+         make_mbstring(); changes to make_mbchar(), make_mbstring(),
+         main(), parse_rcfile(), display_string(), and do_help(). (DLR)
+- cut.c:
+  do_cut_text()
+       - If keep_cutbuffer is FALSE, only blow away the text in the
+         cutbuffer if the cutbuffer isn't empty. (DLR)
+  do_uncut_text()
+       - No longer duplicate Pico's adding an extra magicline to the
+         file if uncutting leaves the cursor on the current one.  This
+         behavior appears to be a bug, as inserting a file in the same
+         manner doesn't add an extra magicline. (DLR)
+- files.c:
+  get_full_path()
+       - Remove unneeded NANO_SMALL #ifdef, so that it's included
+         whenever its prototype is, and so it can compile when
+         DISABLE_OPERATINGDIR isn't defined and NANO_SMALL is. (DLR)
+  do_browser()
+       - Refresh the screen when Ctrl-L is pressed in the file browser,
+         as Pico does. (DLR)
+- global.c:
+  shortcut_init()
+       - Fix misplaced #endif keeping the "Full Justify" shortcut in
+         the search shortcut list from being included when NANO_SMALL
+         is defined but DISABLE_JUSTIFY isn't. (DLR)
+       - Use NULL instead of 0 when a shortcut has no associated
+         function. (DLR)
+  thanks_for_all_the_fish()
+       - Free the justify buffer if it isn't empty. (DLR)
+- nano.c:
+  help_init()
+       - Clarify the text describing double-escape character input.
+         Since ASCII is technically only seven bits wide, characters
+         128-255 aren't ASCII. (DLR, suggested by Michael Piefel)
+  do_toggle()
+       - When we get the whitespace display toggle, update the titlebar
+         as well as the edit window, in case the filename displayed on
+         the titlebar contains spaces or tabs. (DLR)
+  handle_sigwinch()
+       - If the justify buffer isn't empty, blow it away and don't
+         display "UnJustify" in the shortcut list anymore. (DLR)
+  usage()
+       - Typo fix. (DLR)
+  do_wrap()
+       - Make wrap_loc and word_back ssize_t's, to match fill. (DLR)
+  break_line()
+       - Fix compilation problem caused by its returning int when it
+         should return ssize_t according to its prototype. (Jeremy
+         Huddleston)
+  indent_length()
+       - Make the #ifdef around it match that of its prototype to avoid
+         compilation problems when compiling with --enable-tiny and
+         without DISABLE_JUSTIFY's being defined. (DLR)
+  do_justify()
+       - For consistency, preserve placewewant if we didn't unjustify
+         instead of setting it to 0. (DLR)
+       - When justifying the entire file, properly break out of the
+         loop if we've found at least one paragraph, there are no more
+         paragraphs after the current one, and the paragraph search
+         left us on the magicline.  This avoids a segfault. (DLR)
+  do_input()
+       - Add finished parameter, used to indicate when we run or try to
+         run a function associated with a shortcut. (DLR)
+  main()
+       - Try to automatically detect whether UTF-8 support is needed by
+         setting the NO_UTF8 flag if setlocale() returns a string that
+         doesn't contain "UTF8" or "UTF-8", case insensitively.  When
+         using slang 2.x, enable UTF-8 support with SLutf8_enable().
+         (DLR, string checks beyond case-sensitive "UTF-8" adapted from
+         Debian's UTF-8 patch for slang)
+- nano.h:
+       - Remove now-unneeded #defines for functions that now have
+         multibyte equivalents. (DLR)
+       - Remove now-unneeded MIN_EDITOR_COLS. (David Benbennick)
+- utils.c:
+  regexec_safe()
+       - Remove redundant regexec #define, and move the regexec #undef
+         to nano.h. (DLR)
+  is_blank_char()
+       - Rewrite to use ctype functions instead of checking directly
+         for spaces and tabs. (DLR)
+  revstrstr(), revstristr()
+       - Add asserts. (DLR)
+- winio.c:
+  get_buffer()
+       - If we get ERR when using blocking input, it means that the
+         input source that we were using is gone.  In this case, call
+         handle_hupterm(), so that nano dies gracefully instead of
+         going into an infinite loop. (DLR, found by Jim Uhl)
+  titlebar()
+       - Rename some variables for consistency, make space an int
+         instead of a size_t, properly handle the case where the prefix
+         length plus the path length is greater than the amount of
+         space available, and fix a typo in an assert. (DLR)
+  unget_kbinput()
+       - Remove the wide character handling, as it didn't work properly
+         with respect to function keys. (DLR)
+  get_kbinput(), get_translated_kbinput(), get_ascii_kbinput(),
+  get_untranslated_kbinput()
+       - Make the ascii_digits variables ints instead of size_t's,
+         since they will only hold very small values. (DLR)
+  get_kbinput()
+       - Remove the wide character handling, as it didn't work properly
+         with respect to adding multiple wide characters at once, and
+         ungetting them just caused other problems elsewhere. (DLR)
+  get_translated_kbinput()
+       - Remove the wide character handling, as it didn't work properly
+         with respect to adding multiple wide characters at once, and
+         ungetting them just caused other problems elsewhere. (DLR)
+       - Use if statements instead of switch/case statements to handle
+         ASCII character sequence mode, as they take up less room.
+  get_ascii_kbinput()
+       - Use if statements instead of switch/case statements to handle
+         ASCII character sequence mode, as they take up less room.
+  get_verbatim_kbinput()
+       - Don't pass v_kbinput in as a parameter, since we're
+         dynamically allocating it and then returning it. (DLR)
+       - Remove v_first parameter, and go back to the old behavior of
+         putting back the first character of the escape sequence, as it
+         worked just as well and was less complicated. (DLR)
+  get_mouseinput()
+       - Return TRUE instead of FALSE only when we have a control key,
+         a prinary meta key sequence, or both. (DLR)
+  get_shortcut()
+       - Add a debug message. (DLR)
+       - Take kbinput as a reference instead of a value, so that it's
+         translated when the key is translated to its equivalent
+         control key or meta key shortcut. (DLR)
+       - Return s instead of NULL only when we have a control key, a
+         prinary meta key sequence, or both. (DLR)
+  get_toggle()
+       - Add a debug message. (DLR)
+  bottombars()
+       - Initialize foo, in case a keystroke meets none of the handled
+         cases. (DLR)
+  total_refresh()
+       - Refresh bottomwin using the value of currshortcut, and change
+         the code around do_refresh() calls to accommodate this. (DLR)
+       - Split out the code that updates the screen before refreshing
+         it into the new function total_redraw().
+  do_help()
+       - Refresh the screen when Ctrl-L is pressed in the help browser,
+         as Pico does. (DLR)
+- configure.ac:
+       - Remove specific references to control key shortcuts. (DLR)
+       - Check for the wide versions of ncurses or slang, without which
+         multibyte strings don't seem to be displayed properly, and
+         associated multibyte/wide character functions. (DLR)
+       - Check for wchar.h, for those systems that need it for the
+         wcwidth() prototype. (DLR)
+       - Remove checks for all include files that we include
+         unconditionally. (DLR)
+       - Remove references to termio.h here and elsewhere, since it's
+         obsolete and it defines a struct termio that we don't use
+         anywhere. (DLR)
+       - Typo fixes. (DLR)
+       - Add checks for isascii(), iswalnum(), iswblank() or
+         iswspace(), mblen(), and wctype.h. (DLR)
+- README:
+       - Updated for the 1.3 branch. (DLR)
+- README.CVS:
+       - Updated to mention the need for a wide character-supporting
+         version of curses or slang if UTF-8 support is desired. (DLR)
+- doc/faq.html:
+       - Remove now-inaccurate note about verbatim input's not working
+         at prompts, and update its description to mention that it
+         handles hexadecimal values now. (DLR)
+       - Add question about opening files with names beginning with
+         '+'s, and add a few more miscellaneous cosmetic fixes.
+- nanorc.sample:
+       - Add return to the "c-file" regexes. (DLR)
+       - Clarify the text describing good values for whitespace
+         display.  Since ASCII is technically only seven bits wide,
+         characters 128-255 aren't ASCII. (DLR, suggested by Michael
+         Piefel)
+       - Add the "morespace" option. (DLR)
+       - Add support for characters to the "c-file" regexes. (DLR)
+       - Add the hexadecimal equivalents of the decimal values
+         suggested for whitespace display, now that it can handle
+         multibyte characters. (DLR)
+       - Add "manpage" regex. (Mike Frysinger, minor tweaks by DLR)
+- nano.1. nanorc.5, nano.texi:
+       - Add the "morespace" option, and sync with the descriptions in
+         nanorc.sample in a few places. (DLR)
+       - Miscellaneous wording tweaks. (DLR)
+- src/Makefile.am:
+       - Add chars.c to nano_SOURCES. (DLR)
+       - If we're installing and the "rnano" symlink already exists,
+         remove it so that we can create it again without an error.
+         (DLR)
+- AUTHORS:
+       - Updated to mention UTF-8 support.
+
+GNU nano 1.3.5 - 2004.11.22
+- General:
+       - Convert more ints that hold only TRUE and FALSE values to
+         bools. (DLR)
+       - Consolidate the code for finding and running a shortcut in a
+         shortcut list, the code for finding and toggling a toggle in a
+         toggle list, and the code for doing both of those and
+         interpreting mouse clicks in the edit window.  Also move the
+         code for do_mouse() to get_edit_mouse() and tweak it to
+         properly handle cases where a shortcut isn't clicked.  New
+         functions get_shortcut(), get_toggle(), get_edit_input(), and
+         get_edit_mouse(); changes to do_browser(), do_justify(),
+         do_help(), and main(). (DLR)
+       - Simplify a few more translated messages. (DLR)
+       - Translation updates (see po/ChangeLog for details).
+       - Remove reference to @includedir@ in src/Makefile.am, as it's
+         unneeded and can break cross-compilation. (DLR, found by Mike
+         Frysinger)
+       - Overhaul the file opening, reading, and loading operations to
+         increase efficiency, avoid problems on invalid filenames
+         specified on the command line, and eliminate corner cases that
+         erroneously leave edittop or current NULL when they shouldn't
+         be.  Also split out the code to execute a command into a
+         separate function, eliminate a workaround for one of the
+         aforementioned corner cases, handle files with a mix of DOS
+         and Mac format lines, and remove the code to turn on the
+         NO_CONVERT flag when opening a binary file, as it's not always
+         reliable and will cause problems with UTF-8 text files.  New
+         functions open_file(), execute_command(), and mallocstrassn();
+         changes to read_line(), load_file(), read_file(), open_file(),
+         get_next_filename(), do_insertfile(), do_insertfile_void(),
+         do_alt_speller(), and edit_refresh(). (David Benbennick)  DLR:
+         Add a few minor fixes to make sure that current is set
+         properly in all cases, indicate on the statusbar when the file
+         has a mix of DOS and Mac format lines, move the test for DOS
+         line endings from read_line() to read_file() to avoid
+         inaccurate statusbar messages and to reduce fileformat to a
+         local variable in read_file(), eliminate another workaround in
+         edit_update(), rename open_the_file() to open_file() since the
+         latter has been removed, and rename load_a_file() to
+         load_buffer().
+       - Add alternative shortcuts to the main and search shortcut
+         lists for moving to the beginning and end of a paragraph and
+         justifying the entire file: Meta-( (Meta-9), Meta-) (Meta-0),
+         and Meta-J, respectively.  Do this because Pico's practice of
+         putting these shortcuts only in the search shortcut list is
+         rather odd. (DLR)
+       - Turn off extended input processing (the IEXTEN termios flag)
+         as nano 1.2.x does.  New function disable_extended_input();
+         changes to terminal_init(). (DLR)
+       - Remove redundant include of limits.h from nano.c.  nano.c
+         includes nano.h and nano.h includes limits.h. (DLR)
+       - Add a func_key flag to the low-level input functions and the
+         currently existing high-level input functions, to indicate
+         extended keypad values.  This is needed for UTF-8 support.
+         Changes to unget_kbinput(), get_kbinput(),
+         get_translated_kbinput(), get_shortcut(), get_edit_input(),
+         etc. (DLR)
+       - Add a multibuffer mode toggle to the "Execute Command" prompt,
+         for consistency with the "Read File" prompt.  Changes to
+         do_insertfile() and shortcut_init(). (DLR)
+       - Add an ^X toggle to the "Execute Command" prompt to go back to
+         the "Insert File" prompt, and add a ^T toggle to the "Go To
+         Line" prompt to go back to the "Where Is" prompt.  Changes to
+         do_insertfile(), shortcut_init(), do_gotoline(), etc.
+       - Make sure a few uninitialized static variables are initialized
+         to sane values. (DLR)
+       - After reading in a file and detecting the format it's in, set
+         the file format flags (DOS_FILE and MAC_FILE) to match, and
+         preserve them across multiple file buffers.  Changes to
+         read_file(), add_open_file(), and load_open_file(). (DLR,
+         suggested by Bill Soudan)
+       - Remove the -D/--dos and -M/--mac command line options, as they
+         aren't much use with the new file format autodetection.  Also
+         remove the global versions of the toggles, so that they can
+         only be used at the "Write File" prompt as similar options
+         can.  Finally, change the Mac format toggle to Meta-M, since
+         that no longer conflicts with the global -m/--mouse toggle.
+         (DLR)
+       - Add support for reading in UTF-8 sequences to the low-level
+         input routines.  Changes to get_kbinput() and
+         get_translated_kbinput(). (DLR)
+       - Reduce search_last_line to a static variable in search.c, and
+         allow it to be set to FALSE via a function.  New function
+         findnextstr_wrap_reset(); changes to do_int_spell_fix(),
+         findnextstr(), do_search(), do_research(), do_replace_loop(),
+         do_replace(), and do_find_bracket(). (DLR, problem with making
+         search_last_line local to findnextstr() found by Rocco)
+       - When saving or changing file positions, be sure not to ignore
+         placewewant.  Changes to do_int_spell_fix(), findnextstr(),
+         do_replace_loop(), and do_replace(). (DLR)
+       - Convert current_x and mark_beginx to size_t's, and convert
+         some functions that use them as a parameter to use size_t as
+         well.  Also change some related assertions to handle them.
+         (David Benbennick and DLR)
+       - Add code to partition a filestruct between a set of arbitrary
+         coordinates.  Given the coordinates of the beginning and end
+         of the mark, this allows proper and easier handling of saving
+         marked selections, replacing text only in marked selections
+         (suggested by Joseph Birthisel), and spell-checking marked
+         selections using either the internal or alternate spell
+         checker.  Do all these using a global partition structure.
+         New functions partition_filestruct(),
+         unpartition_filestruct(), remove_magicline(), and
+         get_totals(); changes to write_marked(), do_int_spell_fix(),
+         do_alt_speller(), handle_sigwinch(), and do_replace_loop().
+         (DLR)
+       - Remove most redundant includes of sys/stat.h.  It's included
+         in nano.h, so it doesn't need to be included in files that
+         include nano.h. (DLR)
+       - Remove the DOS_FILE and MAC_FILE flags, as they're only used
+         in files.c, and replace them with a static file_format enum.
+         Change the openfilestruct structure accordingly in order to
+         handle this. (DLR)
+       - Convert some ints with predefined boundaries to enums. (DLR)
+       - Include config.h only if HAVE_CONFIG_H. (Jordi)
+- cut.c:
+  cut_marked_segment()
+       - Respect concatenate_cut, as we need to use it if we do a
+         marked cut and immediately follow it with a cut-to-end (which
+         uses this function). (DLR)
+  do_cut_text()
+       - Set concatenate_cut to TRUE unconditionally when doing a
+         marked cut.  This fixes an incompatibility with Pico where an
+         extra line is uncut if we do a marked cut that includes the
+         magicline and immediately follow it with an unmarked cut.
+         (DLR)
+  do_uncut_text()
+       - Maintain current_y's value when uncutting blocks so that
+         smooth scrolling works correctly. (DLR)
+- files.c:
+  read_file()
+       - Rename variable fileformat to format, to avoid confusion with
+         the file_format enum type. (DLR)
+  load_buffer()
+       - Don't change the file format when we insert another file into
+         the current one. (DLR)
+  do_insertfile()
+       - Simplify by reusing variables whereever possible, and add a
+         parameter execute to indicate whether or not to be in "Execute
+         Command" mode. (DLR)
+       - Rework so that goto is no longer needed, using do_writeout()
+         as a model. (DLR)
+       - If file browsing succeeds, call statusq_abort() so that the
+         cursor position at the statusbar is reset. (DLR)
+       - Add missing #ifdefs around the wrap_reset() call so that nano
+         compiles with wrapping disabled again. (DLR)
+       - If we're not inserting a file into a new buffer, partition the
+         current buffer so that it's effectively a new buffer just
+         before inserting the file, and only restore placewewant
+         afterwards.  This is the same behavior we would get if we
+         opened the file, added all of it to the cutbuffer, closed the
+         file, and uncut at the current cursor position. (DLR)
+       - Maintain current_y's value when inserting so that smooth
+         scrolling works correctly. (DLR)
+  do_writeout()
+       - Restructure if blocks for greater efficiency, using
+         do_insertfile() as a model. (DLR)
+       - Simplify where possible, and use an int retval to hold the
+         return value instead of i. (DLR)
+       - If file browsing succeeds, call statusq_abort() so that the
+         cursor position at the statusbar is reset. (DLR)
+       - Remove unneeded calls to display_main_list(). (DLR)
+  do_writeout_void()
+       - Call display_main_list(), for consistency with
+         do_insertfile_void(). (DLR)
+  write_file()
+       - If we've tried to write to an unwritable file and we're not
+         prepending, tempname is NULL when it's passed to unlink().
+         This can cause problems if unlink() can't handle NULL, so
+         don't call it in that case. (David Benbennick)
+  write_marked()
+       - Remove check for MARK_ISSET's not being set. (DLR)
+  open_prevfile(), open_nextfile()
+       - Translate the "New Buffer" string when displaying "Switched
+         to" messages on the statusbar. (DLR)
+  input_tab()
+       - Fix snprintf() call so that we don't segfault when trying to
+         complete a filename containing %'s. (Ulf Härnhammar)
+- global.c:
+  shortcut_init()
+       - Remove redundant NANO_SMALL #ifdef. (DLR)
+       - Change an erroneous _() around the "New Buffer" string to
+         N_(). (DLR)
+       - Add new key aliases: F15 for "Mark Text" (DLR) and F16 for
+         "Where Is Next" (Chris).
+       - Leave "Mark Text" and "Where Is Next" out entirely when
+         NANO_SMALL is defined.  Since they aren't in the visible main
+         list, there's no point in having them in but disabled. (DLR)
+       - In the search prompt shortcut list, move "Full Justify" to
+         after "History", so that the latter is visible onscreen
+         again. (DLR)
+- nano.c:
+  die_save_file()
+       - Clarify the error message when there are too many backup files
+         and the current one can't be written. (DLR)
+  help_init()
+       - Rework to be a bit more flexible.  Only add tabs for shortcut
+         key entries if those entries exist, and if there's only one
+         entry left but there's room for more than one, add enough tabs
+         to put that entry at the end.  Also, make sure a function key
+         is displayed in the middle if it's the first entry.  These
+         changes allow e.g. the miscellaneous meta key sequence to be
+         displayed in a shortcut that has a control key, a primary meta
+         key sequence, and a miscellaneous meta key sequence, but no
+         function key. (DLR)
+       - Update the help text to mention replacing and spell checking
+         only selected text, and also add a few cosmetic fixes to it.
+         (DLR)
+       - Update the help text to mention how to get a blank buffer at
+         the "Execute Command" prompt. (DLR)
+  do_prev_word()
+       - Tweak to avoid an infinite loop, since current_x is now a
+         size_t and hence is unsigned. (DLR)
+  do_int_spell_fix()
+       - Move the REVERSE_SEARCH flag toggling into the NANO_SMALL
+         #ifdef, since the tiny version of nano doesn't support reverse
+         searching.  Move the CASE_SENSITIVE flag toggling out in order
+         to allow the internal spell checker to work properly when
+         NANO_SMALL is defined and DISABLE_SPELLER isn't.  Also, turn
+         the USE_REGEXP flag off during spell checking in order to
+         avoid a potential segfault. (DLR)
+       - Fix a problem where if the cursor is in the middle of a file,
+         the spell checker will sometimes only correct the misspelled
+         word instances that appear before the cursor position and then
+         stop. (Rocco)
+       - Use do_replace_loop()'s canceled parameter in order to ensure
+         that the spell checking stops if we canceled at the replace
+         prompt. (DLR)
+  do_alt_speller()
+       - Call terminal_init() unconditionally after running the
+         alternate spell checker, so that the terminal state is
+         properly restored in all cases. (DLR)
+  justify_format()
+       - For more compatibility with Pico, remove extra space after a
+         character in punct if that character is the same as the one
+         before it.  For example, with the default values of punct and
+         brackets, only one space will be left after "...". (DLR)
+  do_para_begin(), do_para_end()
+       - Maintain current_y's value when moving up or down lines so
+         that smooth scrolling works correctly. (DLR)
+  breakable(), break_line()
+       - Make goal a ssize_t instead of an int, since fill is now a
+         ssize_t, and the position at which a line is broken can be
+         greater than COLS. (DLR)
+  main()
+       - Tweak the command line parsing routine so that multiple +LINE
+         flags are properly interpreted in multibuffer mode. (DLR)
+- nano.h:
+       - Add WIDTH_OF_TAB #define, containing the default width of a
+         tab. (DLR)
+       - Move the PATH_MAX #define here from files.c.
+       - Remove unused COPYFILEBLOCKSIZE #define. (DLR)
+- proto.h:
+       - Add missing NANO_SMALL #ifdef around the cut_marked_segment()
+         prototype. (DLR)
+- rcfile.c:
+  parse_rcfile()
+       - Add missing brackets around an if statement block so that
+         parsing the numeric argument after "tabsize" works properly
+         again. (DLR, found by Mike Frysinger)
+       - Since flag values are longs, use "%ld" instead of "%d" in the
+         debugging messages indicating when a flag is set or unset.
+         (DLR)
+- search.c:
+  regexp_init()
+       - If NANO_SMALL is defined, don't bother checking the
+         CASE_SENSITIVE flag or using its value when compiling a list
+         of matching regular expressions. (DLR)
+  search_init()
+       - Add parameter use_answer.  When it's TRUE, only set
+         backupstring to answer.  This is needed to preserve the text
+         of the statusbar when switching to the search prompt from
+         the "Go To Line" prompt.  Also, set backupstring before doing
+         anything else, add one minor efficiency tweak, and preserve
+         the text of the statusbar no matter what when switching from
+         the search prompt to the "Go To Line" prompt, since the
+         toggling works both ways now and non-numeric text shouldn't be
+         lost when going only one of those ways. (DLR)
+       - When we're replacing and the mark is on, display a prompt
+         indicating that we're replacing text only in the selection
+         instead of the usual prompt. (DLR)
+  findnextstr()
+       - Take the no_sameline parameter after can_display_wrap and
+         wholewords, not after all other parameters. (DLR)
+       - Maintain current_y's value when moving up or down lines so
+         that smooth scrolling works correctly. (DLR)
+       - Fix handling of the wholewords flag so that it works with
+         regular expressions and in conjunction with the no_sameline
+         flag, and add new parameter needle_len (used to return the
+         length of the match). (DLR)
+  do_replace_loop()
+       - Miscellaneous cleanups: treat real_current as current and
+         real_current_x as current_x, only turn the mark off and call
+         edit_refresh() if the mark was originally on, and make
+         length_change a ssize_t. (DLR)
+       - Return ssize_t instead of int. (DLR)
+       - Add new parameter canceled, set to TRUE if we canceled at the
+         prompt and FALSE otherwise. (DLR)
+- utils.c:
+  regexp_bol_or_eol()
+       - Don't assume any longer that string will be found if
+         REG_NOTBOL and REG_NOTEOL are not set. (DLR)
+  mallocstrncpy()
+       - New function, used as a malloc()ing equivalent of strncpy().
+         (DLR)
+  mallocstrcpy()
+       - Refactor to be a wrapper for mallocstrncpy(). (DLR)
+  mark_order()
+       - Add new parameter right_side_up.  Set it to TRUE If the mark
+         begins with (mark_beginbuf, mark_beginx) and ends with
+         (current, current_x), or FALSE otherwise. (DLR)
+- winio.c:
+  unget_kbinput()
+       - New function used as a wrapper for ungetch(). (DLR)
+  get_kbinput()
+       - When reading an escape sequence, set get_verbatim_kbinput()'s
+         new first parameter to the first character of the sequence
+         instead of putting that character back and reading the entire
+         sequence afterwards. (DLR)
+  get_escape_seq_kbinput()
+       - Make the escape_seq parameter a const int*, since it's never
+         modified. (DLR)
+       - Support the escape sequences for F15 and F16. (DLR)
+  get_verbatim_kbinput()
+       - Add new parameter first.  If first isn't ERR, make it the
+         first character in the returned sequence instead of reading
+         the first character in via blocking input. (DLR)
+  get_mouseinput()
+       - Consolidate two if statements to increase efficiency. (DLR)
+       - Check kbinput against metaval instead of (erroneously) ctrlval
+         when putting back a meta sequence. (DLR)
+       - If there are more than MAIN_VISIBLE shortcuts available, only
+         register clicks on the first MAIN_VISIBLE shortcuts, since
+         bottombars() only shows that many shortcuts. (DLR)
+  check_statblank()
+       - Rename to check_statusblank(), and rename its associated
+         global int statusblank too. (DLR)
+  nanogetstr()
+       - Refresh the screen when Ctrl-L is pressed at the statusbar
+         prompt, as Pico does. (DLR)
+       - Always return the key pressed by the user. (DLR)
+  statusq()
+       - Rework slightly to reset the cursor position when the user
+         hits Enter as well as Cancel.  This means that resetstatuspos
+         no longer needs to be global. (DLR)
+  statusq_abort()
+       - New function to set resetstatuspos to FALSE when we don't
+         properly exit the statusbar prompt, e.g. when we get a file
+         from the file browser). (DLR)
+  bottombars()
+       - For efficiency, no longer dynamically allocate space for each
+         visible shortcut, as they're all of a constant short length.
+         (David Benbennick)
+  reset_cursor()
+       - If this is called before any files have been opened, as it can
+         be by statusbar(), put the cursor at the top left corner of
+         the edit window before getting out. (DLR)
+  edit_refresh()
+       - Call edit_update() with NONE instead of CENTER when smooth
+         scrolling is on, for consistency with the movement routines.
+         (DLR)
+  edit_update()
+       - Simplify so as not to require the fileptr parameter anymore,
+         since it's set to current in all calls. (DLR)
+       - Add comments better explaining what the update actually does,
+         and avoid an infinite loop when location is NONE and current_y
+         is greater than (editwinrows - 1). (DLR)
+  do_yesno()
+       - Don't bother assigning the value of get_mouseinput() to
+         anything.  Since allow_shortcuts is FALSE, its return value
+         will always be FALSE. (DLR)
+- configure.ac:
+       - When calling AC_TRY_RUN() to test for a broken regexec()
+         function, set the fourth parameter to default to "no" (since
+         it apparently only occurs on glibc 2.2.3-based systems) so
+         that cross-compiling will work. (DLR, found by Mike Frysinger)
+       - Simplify the curses library tests by only checking for
+         initscr(), which ncurses, curses, and pdcurses should all
+         have, and not tgetent(), which is a termcap-specific function.
+         (DLR)
+       - Check only for glib 2.x, as it's much more common than
+         glib 1.2.x now, and it has a better v?snprintf()
+         implementation. (DLR, suggested by Jordi)
+- nanorc.sample:
+       - Remove specific references to control key shortcuts other than
+         XON and XOFF. (DLR)
+       - Add continue and goto to the "c-file" regexes. (DLR)
+       - Change the included speller value to "aspell -x -c".  The -x
+         option makes aspell not create backup files, and this is
+         consistent with the internal spell checker's behavior. (DLR)
+- doc/man/fr/nano.1, doc/man/fr/nanorc.1:
+       - Updated manpage translations by Jean-Philippe GuĂ©rard.
+- README.CVS:
+       - Mention the requirement for glib 2.x on systems lacking
+         v?snprintf(), and add minor formatting changes.
+       - Mention the requirement for groff in order to create html
+         versions of the manpages. (DLR)
+       - Update the given cvs commands so that they work again, and
+         mention the need for ssh to do cvs checkouts. (DLR)
+       - List sh as an example of a Bourne shell. (DLR)
+- faq.html:
+       - Fixed inaccuracy: Pico compatibility mode was made the default
+         in nano 1.1.99pre1, not 1.2.2. (DLR)
+       - Added question about how to type F13-F16 on terminals lacking
+         keys past F12 (suggested by Chris), question about how to
+         select text for the clipboard in X terminals with nano's mouse
+         support turned on (answer found by Joseph Birthisel), and
+         miscellaneous fixes and link updates. (DLR)
+- nano.1:
+       - Eliminate references to the now removed -D/--dos and -M/--mac
+         command line options. (DLR)
+- nano.texi:
+       - Eliminate references to the now removed -D/--dos and -M/--mac
+         command line options, and their corresponding toggles. (DLR)
+- m4/Makefile.am:
+       - Add glib-2.0.m4 to EXTRA_DIST, so that nano builds from CVS
+         with automake 1.7.x again.  For some reason, automake 1.9.x
+         didn't have a problem with its (erroneously) being left out.
+         (DLR, problem found by Chris)
+- m4/glib-2.0.m4:
+       - New file imported from glib 2.4.7.  This is needed to detect
+         glib 2.x on systems that may not have it installed. (DLR,
+         suggested by Jordi)
+- src/Makefile.am:
+       - Don't use DEFS to define things.  Use INCLUDES instead.
+         (Jordi)
+
+GNU nano 1.3.4 - 2004.08.17
+- General:
+       - More minor comment cleanups. (DLR)
+       - Convert more ints and functions using 0 and 1 to bools using
+         TRUE and FALSE. (David Benbennick and DLR)
+       - Change more instances of ints that have large enough upper
+         bounds and which can never be negative to size_t's, and
+         convert nano to handle them properly. (DLR)
+       - Convert the shortcut list functions and most related functions
+         to return void instead of int, as the return values of all
+         those functions are essentially unused.  Changes to
+         sc_init_one(), shortcut_init(), etc. (David Benbennick and
+         DLR)
+       - Make flags and all variables meant to store the value of flags
+         longs for consistency. (David Benbennick)
+       - Rename the TEMP_OPT flags to TEMP_FILE, as it's more
+         descriptive. (DLR)
+       - Remove unused global variable search_offscreen. (David
+         Benbennick)
+       - Add new N_() macro to mark strings that aren't translated
+         immediately, and convert nano to use it in cases where the
+         translated string is stored in a const char*.  Changes
+         to sc_init_one(), print1opt(), help_init(), rcfile_error(),
+         do_credits(), etc. (David Benbennick)  DLR: Do this for
+         toggle_init_one() too.
+       - Minor tweaks and clarifications to some option descriptions.
+         (DLR)
+       - Overhaul the shortcut list and toggle list initialization
+         code for efficiency.  Changes to shortcut_init() and
+         toggle_init(). (David Benbennick)  DLR: Move "Cancel" to just
+         after "Get Help" in the file browser list, for consistency
+         with all the other lists, have the replace list accept all the
+         same function keys as the search list, and clarify a few
+         shortcut descriptions.
+       - Convert nano to use the new parse_num() function to read in
+         numeric values at the command line and in the rcfile, and
+         duplicate the messages used in the rcfile in the command line
+         for consistency. (David Benbennick)  DLR: Tweak parse_num() to
+         parse ssize_t values instead of ints and to return a bool
+         indicating whether parsing succeeded.  Convert tabsize,
+         wrap_at, and fill to ssize_t in order to work with
+         parse_num() properly and also to increase their capacity
+         while keeping the ability to hold negative numbers in case of
+         errors.  Also exit instead of calling usage() in the event of
+         an invalid fill value, for consistency with how an invalid
+         tabsize value is handled.  Finally, handle invalid tabsize
+         entries in the rcfile the same way as on the command line,
+         and reset tabsize and wrap_at to their default values if
+         invalid rcfile entries are specified for them.
+       - Remove several unnecessary reset_cursor() calls. (David
+         Benbennick)
+       - Include <sys/types.h> in proto.h. (David Benbennick)  DLR:
+         Remove some redundant inclusions of <sys/types.h> elsewhere.
+       - Move the main terminal initialization functions, aside from
+         initscr(), into a new terminal_init() function, and convert
+         nano to use it. (DLR)
+       - Convert placewewant to a size_t, and convert some functions
+         that use it as a parameter to use size_t as well. (David
+         Benbennick and DLR)
+       - Overhaul the paragraph searching code and some of the justify
+         code to clarify it and fix a bug where searches from the
+         previous paragraph would move up too far.  Also make
+         quotestr-related variables global so that they only have to be
+         compiled once, and remove the no-longer-needed IFREG() macro.
+         New functions begpar() and inpar(); changes to quote_length(),
+         quotes_match(), do_para_search(), do_para_begin(),
+         do_para_end(), and do_justify(). (David Benbennick)
+       - Readded the errors flag and moved the ending prompt from
+         rcfile_error() to parse_rcfile() so that we only get prompted
+         once for all errors instead of separately for each error.
+         (DLR)  David Benbennick: Make sure that no rcfile error
+         messages end in newlines, and show the ending prompt if we
+         can't read the .nano_history file while starting nano.
+       - Don't treat the return value of strn?(case)?cmp() as boolean.
+         (DLR and David Benbennick)
+       - Automatically install a symlink "rnano" pointing to nano.
+         Changes to src/Marefile.am. (DLR)
+       - Move the static int pid to the beginning of nano.c with all
+         the other static variables. (DLR)
+       - Consolidate some if blocks to remove some redundant code.
+         (David Benbennick)
+       - Fix warnings when compiling with ENABLE_NLS undefined and with
+         the fwritable-strings option. (David Benbennick)
+       - Add various #ifdefs to fix warnings and compilation problems
+         when compiling with every option manually turned on, including
+         NANO_SMALL. (David Benbennick)
+       - Simplify some of the rcfile and statusbar error messages, and
+         make some of them more consistent. (David Benbennick and DLR)
+       - Change some functions to take const char*'s instead of char*'s
+         where possible. (David Benbennick)
+       - Tweak some #ifdefs around indent_length() and references to
+         fill_flag_used to avoid warnings when compiling with
+         --disable-wrapping, --disable-justify, or a combination of the
+         two. (DLR)
+       - Overhaul the routines used to read the rcfiles and history
+         files for efficiency, make them work properly on lines over
+         1023 characters long and on lines containing nulls, and make
+         them properly handle the case where the user's home directory
+         changes in the middle of a session.  New functions
+         histfilename() and writehist(); changes to
+         thanks_for_all_the_fish(), load_history(), save_history(), and
+         do_rcfile(). (David Benbennick)
+- files.c:
+  get_next_filename()
+       - Tweak for efficiency, and add the ".save" suffix to the file
+         here. (David Benbennick)
+  close_open_file()
+       - Tweak to no longer rely on the return values of
+         open_(prev|next)file(). (DLR)
+  write_file()
+       - For consistency with nano 1.2.x and with other editors, make
+         the mode of newly created files 666 instead of 600 before
+         it's modified by the umask. (DLR, found by Toni Suokas)
+  do_writeout()
+       - If we're in restricted mode and the current filename isn't
+         blank, we can't change it, so disable tab completion in that
+         case. (DLR)
+       - Fix spacing problem in the "Save Under Different Name"
+         prompt. (DLR)
+- global.c:
+  shortcut_init()
+       - Fix erroneous #ifdef so that nano compiles with
+         --disable-justify again. (DLR, found by Mike Frysinger)
+       - Change the Cancel shortcut in the file browser to an Exit
+         shortcut, to be more compatible with the current version of
+         Pico. (DLR)
+  thanks_for_all_the_fish()
+       - Delete topwin, edit, and bottomwin. (David Benbennick)
+- nano.c:
+  die()
+       - Don't add the ".save" suffix to a saved file here anymore,
+         since get_next_filename() does that now. (David Benbennick)
+  die_save_file()
+       - Tweak for efficiency. (David Benbennick)
+  help_init()
+       - Fix the display of the translated key descriptions "Up" and
+         "Space" under all circumstances, and make the help browser
+         work properly when there are fewer than 24 columns available.
+         (David Benbennick)
+  usage()
+       - Don't translate the option strings for -Z/--restricted.
+         (David Benbennick)
+  do_enter()
+       - Don't treat it as a special case when the user presses Enter
+         on the last line of the screen and smooth scrolling is on, for
+         consistency. (DLR)
+  do_alt_speller()
+       - When reloading the newly spell-checked temporary file, call
+         terminal_init() to make sure that all the original terminal
+         settings are restored, as a curses-based alternative spell
+         checker (e.g. aspell) can change them. (DLR)
+  quote_length()
+       - Fix problem where quoted justify wouldn't work if HAVE_REGEX_H
+         wasn't set. (David Benbennick)
+  do_justify()
+       - Add allow_respacing flag, used to indicate when we've moved to
+         the next line after justifying the current line, and only run
+         the respacing routine when it's true.  This keeps the
+         respacing routine from erroneously being run more than once on
+         the same line. (DLR)
+       - Check for first_par_line's not being NULL and only run the
+         renumbering and cutbuffer-splicing routines depending on that
+         if that's the case.  This fixes a segfault occurring when
+         trying to do full justification on a file with no paragraphs
+         (in which case there are no normal lines to renumber and no
+         backed-up lines to be stored in the cutbuffer or spliced back
+         in during unjustify). (DLR)
+  do_exit()
+       - Tweak for efficiency. (David Benbennick)
+  main()
+       - Move the reset_cursor() call to the beginning of the main
+         input loop, and remove the apparently unnecessary wrefresh()
+         call. (David Benbennick)
+       - Call setlocale() outside the ENABLE_NLS #ifdef, since UTF-8
+         support won't work properly if the locale isn't set, whether
+         NLS is enabled or not. (Junichi Uekawa)
+       - Add titlebar() calls before all open_file() calls and remove
+         the titlebar() call after them, so that the titlebar is
+         displayed properly for all file(s) loaded.  Also call
+         display_main_list() after adding the first file to open_files,
+         so that "Close" is properly displayed then instead of "Exit".
+         (DLR)
+- nano.h:
+       - Reassign the key for full justification to Ctrl-U, for
+         compatibility with the current version of Pico. (DLR)
+       - Remove justbegend enum, as it's no longer needed. (DLR)
+- proto.h:
+       - Change the variables in the prototypes for do_justify(),
+         get_verbatim_kbinput(), and get_mouseinput() to match the ones
+         used in the actual functions. (DLR)
+       - Remove unused declaration of temp_opt. (David Benbennick)
+       - Add missing copy_file() prototype. (David Benbennick)
+       - Move the load_history() and save_history() prototypes up to
+         match their corresponding location in files.c. (DLR)
+- rcfile.c:
+  rcfile_msg()
+       - Removed and replaced with calls to rcfile_error(). (David
+         Benbennick)
+       - Removed the reference to "starting nano" in the statusbar
+         message, as it may be called when we exit if the history file
+         can't be saved. (DLR)
+  parse_rcfile()
+       - Have whitespace display default to off instead of on. (Mike
+         Frysinger)
+  nregcomp()
+       - Rename the variable flags to eflags so as not to conflict with
+         the global flags. (DLR)
+- search.c:
+  do_replace_loop()
+       - Make sure old_pww is updated to the current value of
+         placewewant when a new match is found, so that edit_redraw()
+         will redraw the screen properly when only placewewant changes.
+         (DLR, found by Mike Frysinger)
+  do_replace()
+       - Instead of using edit_update() to redraw the screen with
+         edittop at the top, set edittop beforehand and call
+         edit_refresh(). (DLR)
+  do_gotoline()
+       - Use parse_num() to interpret a line entered by the user, and
+         start the search for a line from current instead of fileage.
+         (DLR)
+  do_gotopos(), find_node(), free_history()
+       - Tweak for efficiency. (David Benbennick)
+  free_history()
+       - Only include when DEBUG is defined. (David Benbennick)
+- utils.c:
+  parse_num()
+       - New function to parse numeric values, so that we don't have to
+         duplicate code that calls strtol() all over the place. (David
+         Benbennick)  DLR: Renamed from parse_int() to parse_num() and
+         converted to use ssize_t instead of int.
+  nstrnicmp()
+       - Remove code chacking for n's being less than 0 that will never
+         be run, since n is a size_t and is hence unsigned. (David
+         Benbennick)
+  ngetdelim(), ngetline()
+       - New functions equivalent to getdelim() and getline(), which
+         are both GNU extensions. (DLR, adapted from GNU mailutils
+         0.5 with minor changes to better integrate with nano and
+         increase efficiency)
+- winio.c:
+  get_kbinput()
+       - Since the only valid values for escapes are 0, 1, and 2,
+         convert it to an int. (DLR)
+  get_control_kbinput()
+       - Fix erroneous debugging statement so that nano compiles with
+         --enable-debug again. (Jon Oberheide)
+  nanogetstr()
+       - Tweak the code to update the edit window just before getting
+         statusbar input for efficiency, and update bottomwin just
+         before then too. (David Benbennick)
+       - Don't delete the statusbar line on UnCut, since the current
+         version of Pico doesn't. (DLR)
+  do_cursorpos()
+       - Add assert to check whether totsize is correct. (David
+         Benbennick)
+  line_len()
+       - Rename to help_line_len() so as not to conflict with the
+         line_len variable used elsewhere, and move inside the
+         DISABLE_HELP #ifdef surrounding do_help() since it's only
+         called in do_help(). (DLR)
+  do_help()
+       - Have help_line_len() properly return an int again, since its
+         value can't be larger than COLS. (DLR)
+       - Allow the user to exit the help browser via Ctrl-C as well as
+         Ctrl-X, for consistency with the file browser. (DLR)
+- configure.ac:
+       - Add AC_PROG_LN_S, so that we can portably create symlinks.
+         (DLR)
+       - Check for getdelim() and getline(), which are both GNU
+         extensions. (DLR)
+- nanorc.sample:
+       - Add sample regexes for patch files. (Mike Frysinger)
+       - Various improvements to the "c-file" regexes.  Add double,
+         typedef, extern, union, unsigned, inline, and long to the
+         green list. (Mike Frysinger)  DLR: Also add signed, short, and
+         enum to the green list.
+- nano.spec.in:
+       - Tweak to include all files in %{_bindir} instead of just nano,
+         so that the "rnano" symlink will be properly packaged. (DLR)
+
+GNU nano 1.3.3 - 2004.06.28
+- General:
+       - Minor comment cleanups. (DLR)
+       - Convert more ints used as boolean values to use TRUE and
+         FALSE. (David Benbennick)
+       - Make sure the special control keys are handled the same way
+         after the window is resized or we come out of suspend mode.
+         Changes to do_cont() and handle_sigwinch(). (DLR)
+       - Change some instances of ints that can never be negative to
+         size_t's. (DLR)
+       - Add better explanations for and in the "Terminal breakage"
+         comments, and handle missing key #ifdefs inside the functions
+         that use those keys. (DLR)
+       - Add restricted mode, accessible via the -Z/--restricted
+         command line option or by invoking nano with any name
+         beginning with 'r' (e.g. "rnano").  In restricted mode, nano
+         will not read or write to any file not specified on the
+         command line, read any nanorc files, allow suspending, or
+         allow a file to be appended to, prepended to, or saved under a
+         different name if it already has one. (IO ERROR)  DLR: Also
+         disable backup files and spell checking (since the latter can
+         leave a pre-spell-checked version of the file in a temporary
+         directory), use tail() to get the program name so that the
+         check for its beginning with 'r' will work when a path is
+         specified, disable toggles that are only useful with options
+         that are disabled in restricted mode, call nano_disabled_msg()
+         when trying to read or spell check a file instead of leaving
+         the shortcuts out of the main list, and instead of acting as
+         though TEMP_OPT is enabled when exiting with a modified file
+         (which caused problems if the filename was blank), only allow
+         a filename to be modified at the writeout prompt if it's blank
+         beforehand.  Changes to do_writeout(), toggle_init(),
+         shortcut_init(), die_save_file(), and nanogetstr().
+       - Call nano_disabled_msg() directly from the shortcut list
+         instead of inside the disabled functions. (David Benbennick)
+       - Clarifications to comments explaining exactly what control
+         characters and escape sequences are supported. (DLR)
+       - Disable "Where Is Next" in tiny mode. (DLR)
+       - Added the ability to justify the entire file at once, which
+         Pico has via ^W^J.  Changes to backup_lines() and
+         do_justify(); new functions do_justify_void() and
+         do_full_justify(). (DLR)
+       - Modify the justification algorithm to work the same way as in
+         the current version of Pico, i.e. add a space at the end of
+         each line of the justified paragraph except for the last one,
+         and if there was a space at the end of the last one, remove
+         it.  Changes to justify_format() and do_justify().  Note that
+         we can no longer reliably detect the first modified line in a
+         paragraph, since a line unmodified by justify_format() may get
+         a space tacked onto the end of it or removed from the end of
+         it later.  The entire original paragraph is now always backed
+         up, and justify_format() no longer has a non-modifying mode,
+         so it's now only called in backup_lines(). (DLR)
+       - Wrap the long jump code in NANO_SMALL #ifdefs, since we only
+         use it if we're resizing the window, which is disabled when
+         NANO_SMALL is defined. (DLR)
+       - Add smart home key option, accessible via -A/--smarthome on
+         the command line, "set smarthome" in the rcfile, and the
+         Meta-H toggle in the edit window.  Smart home works as
+         follows: When Home is pressed anywhere but at the very
+         beginning of non-whitespace characters on a line, the cursor
+         will jump to that beginning (either forwards or backwards).
+         If the cursor is already at that position, it will jump to the
+         true beginning of the line.  This option is disabled in tiny
+         mode.  Changes to do_home(), nanogetstr(), etc. (DLR;
+         suggested by Stephan T. Lavavej)
+       - Minor tweaks to the punctuation in some statusbar messages.
+         (DLR)
+       - Overhaul the low-level input routines into main routines that
+         actually get the input and state machines that interpret the
+         input.  This allows better handling of the input (e.g. ignored
+         keys are now always ignored instead of just being ignored when
+         there are no escapes prefixing them) and will make it easier
+         to port to interfaces that don't have blocking input.  New
+         functions reset_kbinput(), get_translated_kbinput(),
+         get_control_kbinput(), and get_untranslated_kbinput(); changes
+         to do_verbatim_input(), handle_sigwinch(), get_kbinput(),
+         get_ascii_kbinput(), get_escape_seq_kbinput(), and
+         get_verbatim_kbinput(); removal of get_ignored_kbinput() and
+         get_accepted_kbinput(). (DLR)
+       - Overhaul all the movement functions in order to avoid
+         redundant screen redraws (and regexec()s when color support is
+         available) whenever possible during ordinary cursor movement
+         when the text doesn't change.  Do the same for moving in
+         do_char(), do_delete(), do_next_word(), do_prev_word(),
+         do_search(), do_research(), and do_replace_loop.  Changes to
+         do_first_line(), do_last_line(), do_home(), do_end(),
+         do_page_up(), do_page_down(), do_up(), do_down(), do_left(),
+         do_right(), do_delete(), do_backspace(), do_search(),
+         do_research(), do_replace_loop(), do_find_bracket(), and
+         edit_refresh().  New functions do_left_void(),
+         do_right_void(), need_horizontal_update(),
+         need_vertical_update(), edit_scroll(), and edit_redraw().  All
+         of these functions but the first two require the previous
+         versions of current and/or placewewant as parameters, so that
+         they can redraw properly when the location has changed.  Also
+         rename the int refresh in do_delete() and do_backspace() to
+         do_refresh so as not to conflict with refresh(). (DLR)
+       - Add some comments better explaining what is disabled in
+         restricted mode and why. (DLR)
+       - Since KEEP_CUTBUFFER is only used in cut.c, make it a static
+         variable in cut.c instead of a flag, and unset it in other
+         files via the new function cutbuffer_reset(). (DLR)
+       - Add the ability to change the characters used to display the
+         beginning characters of tabs and spaces via the rcfile entry
+         "whitespace".  This is disabled if nanorc support is disabled
+         or if we're in tiny mode.  Displaying the new characters is
+         toggled on and off by Meta-P; the default is on. (Mike
+         Frysinger; minor changes and adaptations by DLR)
+       - Add the ability to change the closing punctuation and closing
+         brackets used to control justification, via the rcfile
+         entries "punct" and "brackets". (DLR)
+       - Translation updates (see po/ChangeLog for details).
+       - Make the former flag same_line_wrap use TRUE and FALSE
+         instead of 1 and 0. (DLR)
+- files.c:
+  add_open_file()
+       - Rearrange the NANO_SMALL #ifdef so that the code to set the
+         MODIFIED flag in open_files->flags is included only once.
+         (DLR)
+  write_marked()
+       - Call write_file() with nonamechange set to TRUE so that we
+         don't erroneously change the current filename when writing a
+         selection, and don't take a nonamechange parameter anymore
+         since we don't use it. (DLR)
+  do_writeout()
+       - Refactor so that no recursion is needed if we try to exit with
+         a modified file that has no name when TEMP_OPT is set. (DLR)
+       - Add spaces to the ends of the "Overwrite" and "Different Name"
+         prompts, for consistency. (DLR)
+  do_browser()
+       - Call check_statblank() instead of blanking the statusbar
+         unconditionally, for consistency. (David Benbennick)
+- global.c:
+  shortcut_init()
+       - Don't assign any handler functions to the help browser keys,
+         as the help browser handles them all internally. (David
+         Benbennick)
+- move.c:
+  do_first_line(), do_last_line()
+       - Move these functions here from winio.c. (DLR)
+- nano.c:
+  finish()
+       - Call blank_statusbar() and blank_bottombars() to blank out
+         the statusbar and shortcut list in bottomwin. (DLR)
+       - Since all of the calls to finish() use 0 for the value of
+         sigage, and the return value of finish() is never used, make
+         it accept and return void. (David Benbennick)
+  die_save_file()
+       - Call write_file() with nonamechange set to TRUE since we don't
+         need to change the current filename if we're writing emergency
+         backup files. (DLR)
+  do_early_abort()
+       - Removed, as it's no longer called anywhere. (David Benbennick)
+  usage()
+       - Add missing "[dir]" and two missing _()'s around the strings
+         describing the -E [dir]/--backupdir=[dir]" option. (CHAO
+         Wei-Lun)
+  open_pipe()
+       - Call enable_signals() at the beginning and disable_signals()
+         at the end, so that we get a SIGINT when Ctrl-C is pressed
+         during wait() and can then call cancel_fork() properly. (DLR)
+  do_delete(), do_enter()
+       - Tweak for efficiency. (David Benbennick)
+  do_prev_word()
+       - Switch the last test (current != NULL or not) around to match
+         the order of the same test in do_next_word() (current ==
+         NULL).  The results are the same either way. (DLR)
+  do_wrap()
+       - Tweak for efficiency. (David Benbennick)
+  do_spell()
+       - Tweak for efficiency. (David Benbennick)
+       - Change the statusbar entries used in cases of failure so that
+         they all display the actual error that occurred. (David
+         Benbennick and DLR)
+  do_int_speller(), do_alt_speller()
+       - Make these functions return const char*'s instead of char*'s.
+         (David Benbennick)
+  justify_format()
+       - Remove redundant assignment. (DLR)
+  do_para_search()
+       - Remove unneeded edit_update() calls. (David Benbennick)
+       - Convert to use an enum to specify the search type: JUSTIFY,
+         BEGIN, or END. (DLR)
+       - Refactor to properly do searches for beginnings of paragraphs
+         in the same way as searches for endings of paragraphs, without
+         needing the old (and somewhat inaccurate) recursive approach.
+         (DLR)
+  do_justify()
+       - Remove unneeded edit_update() calls, and add a few minor
+         efficiency tweaks. (David Benbennick)
+       - Simplify an if statement. (DLR)
+  do_exit()
+       - Refactor so that no recursion is needed if we try to exit with
+         a modified file that has no name when TEMP_OPT is set. (DLR)
+  print_numlock_warning()
+       - Removed, as it's no longer needed and was never called
+         anywhere after the input overhaul. (DLR)
+  signal_init()
+       - Don't use termios and _POSIX_VDISABLE to disable keys anymore,
+         as there's no real equivalent of it when the latter isn't
+         defined. (DLR)
+  handle_sigwinch()
+       - Call resetty() to get the original terminal settings back.
+         (DLR)
+       - Rework so that nano properly redraws the screen on systems
+         that don't have resizeterm() and/or wresize().  In curses, we
+         now leave and immediately reenter curses mode via endwin() and
+         refresh(), and then reinitialize all windows via
+         window_init().  In slang, the above routine will only work if
+         the resize made the window smaller, so we now leave and
+         immediately reenter screen management mode via
+         SLsmg_reset_smg() and SLsmg_init_smg(), and then reinitialize
+         all windows via window_init().  (DLR, adapted from code in
+         Minimum Profit 3.3.0 and mutt 1.4.2.1, respectively)
+  do_toggle()
+       - Call blank_statusbar() and blank_bottombars() to blank out
+         the statusbar and shortcut list in bottomwin. (DLR)
+  do_verbatim_input()
+       - If PRESERVE is set, disable flow control characters before
+         getting input and reenable them after getting input. (DLR)
+  disable_signals(), enable_signals(), disable_flow_control(),
+  enable_flow_control()
+       - New functions that allow more fine-grained control of the
+         terminal: disabling and enabling signals without having to use
+         _POSIX_VDISABLE and disabling and enabling flow control
+         characters. (DLR)
+  main()
+       - Don't open the first file in quiet mode, since if we do, an
+         error message won't be shown if it's unreadable. (DLR; found
+         by Jaap Eldering)
+       - If we've specified multiple files on the command line and
+         multibuffer support is compiled in, turn multibuffer mode on
+         when reading those files and turn it off afterward if it was
+         off before.  This allows us to open multiple files without
+         having to turn multibuffer mode on at the command line or in
+         the nanorc first, both of which are unintuitive.  Multibuffer
+         mode should only affect how the "Read File" command behaves
+         anyway. (DLR)
+       - Remove the disabling of implementation-defined input
+         processing, as cbreak mode appears to turn it off anyway.
+         (DLR)
+       - After noecho(), call disable_signals() and
+         disable_flow_control(), the latter only if PRESERVE is not
+         set. (DLR)
+       - Move the savetty() call down from just after initscr() to just
+         after the terminal is properly set up, so that we can restore
+         it easily after a resize. (DLR)
+       - Add missing cast to char when calling do_char(). (DLR)
+       - Don't initialize the backup directory if we're in restricted
+         mode, since backups are disabled then. (DLR)
+       - Check $SPELL for an alternative spell checker if we didn't get
+         one from the command line and/or rcfile, as Pico does.  Don't
+         do this if we're in restricted mode, since spell checking is
+         disabled then. (DLR)
+       - Add some cleanups for greater readability, and remove a few
+         bits of redundant code. (DLR and David Benbennick)
+- nano.h:
+       - Since REGEXP_COMPILED is only used in search.c, convert it
+         from a flag to a static int there. (DLR)
+       - Add justbegend enum, used in do_para_search(). (DLR)
+       - Add updown enum, used in edit_scroll(). (DLR)
+- proto.h:
+       - Remove unused xpt() and add_marked_sameline() prototypes.
+         (DLR)
+       - Add missing #ifdefs around the nstristr() and get_mouseinput()
+         prototypes. (DLR)
+- rcfile.c:
+       - Move "rebinddelete" up in the list of options so that the list
+         is in alphabetical order. (DLR)
+       - Cosmetic reorganization of the order in which some options are
+         interpreted. (DLR)
+       - Explicitly check for rcopts[i].name's being "tabsize" to avoid
+         a spurious error under some circumstances about tabsize's
+         being 0 when there's no tabsize entry in the rcfile. (DLR)
+- search.c:
+  regexp_init()
+       - Overhaul for efficiency.  Also check if regcomp() failed, and
+         if so, display "Bad regex" message on the statusbar, so that
+         we don't have to display it separately after every call to
+         this function. (David Benbennick)
+  search_init()
+       - Only check whether USE_REGEXP is set, and hence whether or not
+         to display "[Regexp]" on the search prompt, if HAVE_REGEX_H is
+         defined. (DLR)
+  not_found_msg()
+       - Convert to properly handle strings generated by
+         display_string() that have been used in the search prompt
+         since 1.3.0. (David Benbennick)
+       - Use display_string() directly to display the text that we
+         didn't find instead of relying on statusbar() to do it
+         indirectly, since the latter won't display its text with the
+         user-specified whitespace characters and the former will.
+         (DLR)
+- utils.c:
+  is_blank_char()
+       - New function used as an isblank() equivalent, since isblank()
+         is a GNU extension. (DLR)
+  nstricmp(), nstrnicmp()
+       - Add extra blank lines for greater readability, and remove
+         unneeded test for n's being less than zero (since it's already
+         been tested for being greater than zero or equal to zero at
+         that point) from nstrnicmp(). (DLR)
+  stristr()
+       - Rename to nstristr() to avoid a potential conflict with an
+         existing stristr() function, and move up to just after
+         nstrnicmp(). (DLR)  David Benbennick: Tweak for efficiency.
+       - Include and use only when strcasestr() is unavailable, since
+         strcasestr() is a GNU extension. (DLR)
+  nstrnlen()
+       - New function used as a strnlen() equivalent, since strnlen()
+         is a GNU extension. (DLR)
+- winio.c:
+  get_verbatim_kbinput()
+       - Refactor the output in the DEBUG #ifdef.  It didn't work
+         properly ever since this function was changed to use an int*
+         instead of a char*. (DLR)
+       - When reading characters from input, properly reallocate
+         verbatim_kbinput via (int*)nrealloc() instead of an uncast
+         realloc(). (DLR)
+  get_accepted_kbinput()
+       - Add proper support for the keypad values and escape sequences
+         generated by the NumLock glitch and by certain keys on the
+         numeric keypad. (DLR)
+       - Add an extra break and move an #endif down to fix a potential
+         problem when NANO_SMALL is defined or KEY_RESIZE isn't, and
+         when PDCURSES isn't defined. (DLR)
+  get_escape_seq_kbinput()
+       - Add proper support for the keypad values and escape sequences
+         generated by the NumLock glitch. (DLR)
+       - Add ignore_seq parameter.  If a sequence is recognized but
+         ignored, we will now return ERR and set ignore_seq to TRUE, and
+         if a sequence is unrecognized, we will now return ERR and set
+         ignore_seq to FALSE.  Also, here and elsewhere, don't bother
+         assigning ERR to retval when that's its initial value. (DLR)
+       - Fix problem where the escape sequence for F3 on the FreeBSD
+         console would not be interpreted properly. (DLR)
+  get_mouseinput()
+       - Don't ungetch() anything if there's no control key and no meta
+         key defined in the shortcut we clicked. (DLR)
+  bottombars()
+       - Don't display any more than MAIN_VISIBLE shortcuts.  Adding
+         justification of the entire file above made the search
+         shortcut list longer than this and hence made the shortcuts in
+         it so short as to be almost incomprehensible. (DLR)
+       - Tweak for efficiency and to better handle shorter screen
+         widths. (David Benbennick)
+       - Restructure the if block used for the sentinel key values,
+         dynamically allocate keystr based on the number of columns
+         available, and make sure we can display shortcuts even when
+         the number of available columns is too short for any complete
+         one. (DLR)
+  onekey()
+       - Don't bother padding the displayed shortcuts with spaces.
+         (David Benbennick)
+       - Convert len to a size_t. (DLR)
+  edit_add()
+       - Minor cosmetic reformatting.  Also remove unused int
+         searched_later_lines. (DLR)
+  blank_bottomwin()
+       - Removed, as it does the same thing as blank_bottombars().
+         (David Benbennick)
+  blank_titlebar()
+       - New function used to blank the titlebar in topwin. (DLR)
+  blank_statusbar_refresh()
+       - Removed, as it's now unnecessary. (David Benbennick)
+  titlebar()
+       - Overhaul to use display_string() to display the filename, and
+         to better handle shorter screen widths.  Also remove
+         now-unneeded wrefresh(topwin) calls. (David Benbennick)
+         DLR: Tweak to reserve enough space for "Modified", plus
+         padding, in all cases, to make sure that the version message
+         takes up no more more than 1/3 of the available width, minus
+         padding, and to include a reset_cursor() call so that the
+         cursor is always in the right place.
+  bottombars()
+       - Call blank_bottombars() instead of blank_bottomwin(). (David
+         Benbennick)
+  check_statblank()
+       - Overhaul for efficiency, (David Benbennick)  DLR: Add
+         reset_cursor() call to ensure that the cursor is always in the
+         right place.
+  update_cursor()
+       - Removed, as it's no longer called anywhere. (David Benbennick)
+  edit_refresh()
+       - Remove apparently unneeded leaveok() calls. (David Benbennick)
+  edit_refresh_clearok(), center_cursor()
+       - Removed, as they are now unnecessary. (David Benbennick)
+  statusq()
+       - Don't allow "Full Justify" when in view mode. (DLR)
+  statusbar()
+       - Call reset_cursor() just before refreshing the edit window, so
+         that slang and other non-ncurses versions of curses will
+         properly place the cursor back in the edit window instead of
+         leaving it at the end of the statusbar. (DLR)
+  do_help()
+       - Overhaul for efficiency, and allow scrolling through the help
+         via the arrow keys as well as the paging keys. (David
+         Benbennick)  DLR: Revert the use of the return value of
+         curs_set() to restore the previous state of the cursor, as
+         some curses implementations (including slang) get it wrong,
+         and explicitly turn the cursor off where needed instead.
+  do_credits()
+       - Use napms() instead of nanosleep(), as it does the same thing
+         (aside from taking an argument in milliseconds instead of
+         microseconds) and curses includes it. (DLR)
+       - Overhaul for efficiency, and make sure the xlcredits
+         translations are done after initialization in order to avoid
+         an error when compiling with -pedantic. (David Benbennick)
+  do_yesno()
+       - Add a comment to encourage translators to use both native and
+         English shortcuts, if possible. (Jordi)
+- configure.ac:
+       - Add tests for isblank(), strcasestr(), and strnlen(), and
+         define _GNU_SOURCE so that the tests work properly.  Increase
+         the minimum required autoconf version to 2.54. (DLR)
+       - Reformat the test programs so that they aren't packed into
+         fewer lines than usual, so as to make them easier to read, and
+         remove unnecessary inclusion of stdio.h in the slang test
+         programs. (DLR)
+       - Remove the checks for resizeterm() and wresize(), as they're
+         no longer needed. (DLR)
+- config.rpath:
+       - Replace usage of egrep with grep -E, avoiding a XSI:ism (David
+         Weinehall)
+- faq.html:
+       - Removed question about the NumLock glitch, as it's no longer
+         needed. (DLR)
+- nano.1:
+       - Document restricted mode. (IO ERROR)  DLR: Add minor
+         modifications to account for the above changes.
+       - Document the smart home key option. (DLR)
+       - Document the use of the SPELL environment variable. (DLR)
+- nanorc.5:
+       - Document the smart home key option. (DLR)
+       - Document the whitespace option. (DLR, adapted from
+         documentation by Mike Frysinger)
+       - Document the punct and brackets options. (DLR)
+- nano.texi:
+       - Fix toggle inaccuracies: Meta-L now toggles line wrapping, and
+         Meta-< and Meta-> aren't toggles. (DLR)
+       - Document restricted mode. (IO ERROR)  DLR: Add minor
+         modifications to account for the above changes.
+       - Fix version number inaccuracies: Search/replace history and
+         sorting/uniqueness filtering for the internal spell checker
+         were added in nano 1.1.99pre1. (DLR)
+       - Document the smart home key option. (DLR)
+       - Document the use of the SPELL environment variable. (DLR)
+- nanorc.sample:
+       - Add missing mouse entry, and update the nanorc sample regexes
+         to account for the backupdir and mouse options. (DLR)
+       - Add smarthome description. (DLR)
+       - Document the whitespace option. (DLR, adapted from
+         documentation by Mike Frysinger)
+- README.CVS:
+       - Increase the minimum required autoconf version to 2.54, and
+         change the recommended automake version 1.7 to the minimum
+         required automake version.  Note that autoconf 2.54 will
+         technically also work with automake 1.6c, but that is a CVS
+         version as opposed to a stable release version, and automake
+         1.7 requires at least autoconf 2.54 in any case. (DLR)
+- TODO:
+       - Added entry for justifying the entire file at once, since Pico
+         can do it, and with "[DONE]" since it's already been
+         implemented. (DLR)
+
+GNU nano 1.3.2 - 2004.03.31
+- General:
+       - Change instances in the code that refresh the entire edit
+         window when color support is enabled (in order to properly
+         handle multi-line color regexes) to only do so when
+         it's necessary, i.e. when COLOR_SYNTAX is set. (DLR)
+       - Minor cosmetic tweaks to the code involving direction keys.
+         NANO_UP_KEY and NANO_DOWN_KEY are now NANO_PREVLINE_KEY and
+         NANO_NEXTLINE_KEY, and the help messages for them have been
+         changed accordingly.  Also remove extraneous references to
+         NANO_DOWN_KEY in the search history shortcut entries. (DLR)
+       - Add NANO_UNJUSTIFY_FKEY (the same as NANO_UNCUT_FKEY) to the
+         shortcut list, and tweak the unjustify routine to use it.
+         Also add NANO_FIRSTLINE_FKEY and NANO_LASTLINE_FKEY, and tweak
+         the statusbar input routines to handle them and NANO_HELP_FKEY
+         properly. (DLR)
+       - Block SIGWINCH after setting up its handler, and only unblock
+         and handle it when we're in a stable state, i.e. when we're
+         waiting for input from the user.  New function
+         allow_pending_sigwinch(); changes to signal_init(),
+         get_kbinput(), and get_verbatim_kbinput(). (DLR)
+       - Decouple the paragraph searching code and the justifying code.
+         Removed function do_para_operation(); new function
+         do_para_search(); changes to do_justify(). (DLR)
+       - Add -E/--backupdir option.  When used with -B/--backup, backup
+         files will be saved in the specified directory with their
+         canonical pathnames encoded in their names (all '/'s replaced
+         with '!'s).  Changes to write_file(). (Martin Ehmsen)  DLR:
+         Add function init_backup_dir() to handle relative paths
+         correctly, use get_full_path() to get the canonical pathname,
+         and use tail() to get the filename if get_full_path() fails.
+       - Port to the Tandem NonStop Kernel (nsr-tandem-nsk). (Tom
+         Bates; minor tweaks by DLR)
+       - Change some instances of boolean 0 and 1 to TRUE and FALSE.
+         (David Benbennick)
+       - Fix memory corruption problem occurring when answer is used as
+         the value of def; if the realloc() of answer leads to its
+         pointing to a different memory block, there will be a segfault
+         when the value of def is copied into it via strcpy().
+         (bort@alltel.net, Christian Weisgerber, David Benbennick, and
+         DLR)
+       - Remove the last editbot references, to avoid any potential
+         segfaults related to them.  Also remove fix_editbot(), as it's
+         no longer needed. (David Benbennick)
+       - Rename several variables to make their use clearer and to
+         avoid conflicts. (DLR)
+       - Set the input mode before turning the keypad on. (DLR)
+- cut.c:
+  add_to_cutbuffer()
+       - Add parameter allow_concat to determine whether we're allowed
+         to concatenate strings in the cutbuffer. (DLR)
+- files.c:
+  do_insertfile()
+       - Wrap one reference to NANO_EXTCMD_KEY in a NANO_SMALL #ifdef.
+         (DLR)
+       - Save the already-typed answer when switching from "Insert
+         File" to "Execute Command" mode via Ctrl-X, just in case we
+         started typing a command before switching. (DLR)
+  add_open_files()
+       - Make the saving of marked status in open_files->file_flags
+         work properly again; a tweak to the ISSET() macro in 1.3.0
+         to make it only return 0 or 1 broke it. (DLR)
+  write_marked()
+       - New function used to write the current marked selection to a
+         file, split out from do_writeout(). (DLR)
+  do_writeout()
+       - Tweak for efficiency. (David Benbennick)  DLR: Modify to have
+         the current answer preserved between toggles again.
+  filestat()
+       - Removed, as it is only called in one place and is
+         redundant. (DLR)
+  do_browser()
+       - Replace the filestat() call with an equivalent stat() call.
+         (DLR)
+- global.c:
+  shortcut_init()
+       - Only allow verbatim input when we're not in view mode. (DLR)
+       - Set the associated function for unjustify to 0 instead of
+         do_uncut_text(), since it's currently unused. (DLR)
+- nano.c:
+  usage()
+       - Clarify the description for -T/--tabsize a bit. (DLR)
+  do_verbatim_input()
+       - Remove the now-unneeded code to disable XON, XOFF, and
+         suspend, since we now go into raw mode in
+         get_verbatim_kbinput() and bypass them. (DLR)
+  do_next_word()
+       - Simplify and remove references to editbot so as to avoid a
+         segfault. (David Benbennick)
+  do_prev_word()
+       - Simplify and remove references to edittop. (David Benbennick)
+  do_int_speller(), do_alt_speller(), do_spell()
+       - Modify to write only the current selection from a file to the
+         temporary file used for spell checking when the mark is on,
+         and add a few miscellaneous cosmetic cleanups. (DLR)
+  do_int_spell_fix()
+       - Store the value of current_x in a size_t instead of an int,
+         and add a few minor efficiency tweaks. (David Benbennick)
+       - Remove comment explaining why findnextstr() is called with
+         bracket_mode set to TRUE even though we aren't doing a bracket
+         search, since after the above efficiency tweaks, it's now more
+         accurately called can_display_wrap. (DLR)
+  indent_length()
+       - Remove unneeded #ifdef. (David Benbennick)
+  do_justify()
+       - Remove references to the now-unneeded JUSTIFY_MODE flag. (DLR)
+  signal_init()
+       - Trap SIGQUIT in addition to turning it off via termios in
+         main().  This is consistent with SIGINT, which we trap here
+         and turn off via termios in main(), as well as with the
+         associated comment. (DLR)
+  handle_sigwinch()
+       - Set keypad() to TRUE and switch to cbreak mode just before
+         calling siglongjmp(), in case we resized during verbatim
+         input. (DLR)
+  main()
+       - Move the call to raw() on systems that don't define
+         _POSIX_VDISABLE outside the main input/output loop, as it
+         doesn't need to be called every time through the loop.  Call it
+         instead of cbreak() on such systems, as it overrides cbreak()
+         anyway. (DLR)
+       - Add more descriptive comments explaining the termios and
+         curses setup routines, and turn the keypad on before setting
+         the input mode. (DLR)
+       - Remove stray HAVE_GETOPT_LONG #ifdefs. (DLR)
+       - Don't call keypad() before initializing the windows it needs
+         via window_init().
+- nano.h:
+       - Move the NANO_H include guard up before the first #include.
+         (DLR)
+       - Remove the now-unneeded JUSTIFY_MODE flag. (DLR)
+- search.c:
+  regexp_cleanup()
+       - Only do anything if REGEXP_COMPILED is set. (David Benbennick)
+  search_abort()
+       - Only test if the mark is set when NANO_SMALL isn't defined.
+         (David Benbennick)
+  search_init()
+       - Add some more comments and comment tweaks, don't indicate that
+         the search has been canceled when we enter a blank string in
+         replace mode, only call regexp_init() when USE_REGEXP is set,
+         and return -1 instead of -3 since a canceled search and a
+         canceled replace should be mostly equivalent. (David
+         Benbennick)  DLR: Tweak to use the old behavior if we try to
+         search for invalid regexes.
+  findnextstr()
+       - Refactor to use a loop invariant, and tweak for greater
+         efficiency and simplicity.  Also modify so that all searches
+         start one character after (or before, if we're doing a
+         backwards search) the current one, as opposed to all searches
+         except for regex searches for "^" and the like, for
+         consistency with other searches. (David Benbennick)
+  do_search()
+       - Handle search_init()'s no longer returning -3 above. (David
+         Benbennick)
+       - Port the code from do_replace_loop() to skip the current line
+         if we're searching for a regex with "^" and/or "$" in it and
+         end up on the same line to this function.  This fixes a
+         problem where doing a forward search for "^" on a file with
+         more than one line would erroneously stop at the magicline and
+         indicate that that was the only occurrence. (DLR)
+  do_research()
+       - Port David Benbennick's efficiency tweaks and the
+         aforementioned code ported from do_replace_loop() to this
+         function. (DLR)
+  replace_regexp()
+       - Completely refactor for increased efficiency. (David
+         Benbennick)
+  replace_line()
+       - Use a char* parameter for the replacement string instead of
+         last_search, and add minor efficiency tweaks. (David
+         Benbennick)
+  do_replace_loop()
+       - Fix segfault when doing a regex replace of a string that
+         matches inside a line (e.g. replace the "b" in "abc" with
+         anything). (David Benbennick)
+       - If the mark is on at the beginning of the function, turn it
+         off and turn it back on just before returning.  Also overhaul
+         to rely on the return value of findnextstr() instead of a loop
+         invariant, to not need to take an int* parameter, and store
+         the beginning x-coordinate in a size_t instead of an int.
+         (David Benbennick)
+  do_replace()
+       - Handle search_init()'s no longer returning -3 above, and add
+         efficiency tweaks. (David Benbennick)  DLR: Tweak to follow
+         the old behavior of adding non-blank strings entered at the
+         "Replace: " prompt to the search history. (DLR)
+  do_gotoline()
+       - Simplify the edit_update() call depending on the value of
+         save_pos. (David Benbennick)
+  do_bracket()
+       - Add efficiency tweaks. (David Benbennick)  DLR: Remove
+         reliance on the hardcoded bracket string length; instead, only
+         require that the bracket string length be even.
+- utils.c:
+  regexec_safe()
+       - Wrap in HAVE_REGEX_H #ifdefs. (DLR)
+  regexp_bol_or_eol()
+       - New function used to check if a regex contains "^" and/or "$",
+         assuming that the regex would be found if the REG_NOT(BOL|EOL)
+         flags aren't used in the regexec() call; it replaces the
+         direct regexec()s used before. (DLR)
+  strstrwrapper()
+       - Refactor for increased efficiency, and eliminate the need for
+         the line_pos parameter. (David Benbennick)
+  mallocstrcpy()
+       - Tweak so that when src is "", "" is allocated and returned
+         instead of NULL. (David Benbennick)
+- winio.c:
+  get_verbatim_kbinput()
+       - Set keypad() to FALSE and switch to raw mode while reading
+         input, and set it back to TRUE and go back into cbreak mode
+         mode afterwards.  (Note that if _POSIX_VDISABLE isn't defined,
+         we don't need to change to or from raw mode since we're
+         already in it exclusively.)  This ensures that we don't end up
+         reading in extended keypad values that are outside the ASCII
+         range or having to deal with interrupt-generating key values.
+         Also, with keypad() set to TRUE, xterm generates KEY_BACKSPACE
+         when the user hits Ctrl-H, which, when cut down to ASCII
+         range, ends up being Ctrl-G, which can be confusing. (DLR)
+       - For consistency with get_kbinput(), use an int* to store and
+         return the input instead of a char*, and tweak the functions
+         that call it to handle this. (DLR)
+  get_accepted_kbinput()
+       - Don't use "kbinput = wgetch(win)" as a switch value. (DLR)
+  get_escape_seq_kbinput()
+       - Add support for the escape sequences for F1-F14 whenever
+         possible (i.e. whenever a conflict doesn't occur), some
+         additional comments, and a few cosmetic cleanups. (DLR)
+       - Use switch statements instead of strncmp() to read in the long
+         xterm sequences for Ctrl-[arrow key] and Shift-[arrow key].
+         (DLR)
+  get_escape_seq_abcd()
+       - A resurrected version of the old abcd() function, readded in
+         order to simplify get_escape_seq_kbinput(). (DLR)
+  get_mouseinput()
+       - Interpret shortcut key values slightly more stringently when
+         ungetch()ing them. (DLR)
+  strlenpt()
+       - Properly cast the second parameter of the strnlenpt() call to
+         size_t. (DLR)
+  get_page_start()
+       - For consistency, tweak so that scrolling always occurs when we
+         try to move onto the "$" at the end of the line, as opposed to
+         (a) when we move onto the "$" at the end of the line on the
+         first page and (b) when we move onto the character just before
+         the "$" on subsequent pages. (DLR)
+  reset_cursor()
+       - Tweak for efficiency. (David Benbennick)
+  edit_refresh()
+       - Tweak for efficiency. (David Benbennick)
+  statusq()
+       - Rename "tabs" to "allowtabs". (David Benbennick)
+  do_credits()
+       - Use nanosleep() instead of usleep().  The latter is only
+         standard under BSD, whereas the former is POSIX compliant.
+         Accordingly, only include time.h if we use this function, i.e.
+         if NANO_EXTRA is defined. (DLR)
+       - Add explanatory comment. (DLR)
+- configure.ac:
+       - Change instances of "int main ()" to "int main(void)". (DLR)
+- faq.html:
+       - Fixed inaccuracy: multibuffer mode was first in nano 1.1.0,
+         not 1.1.12. (DLR)
+- nano.1, nanorc.5, nano.texi
+       - Clarify the description for -T/--tabsize a bit. (DLR)
+       - Add -E/--backupdir description. (Martin Ehmsen; minor cosmetic
+         fixes by DLR)
+- nanorc.sample:
+       - Add backupdir description. (Martin Ehmsen; minor cosmetic
+         fixes by DLR)
+- README:
+       - Reformat to 72 characters per line, fix wording in one spot,
+         and fix spacing and capitalization in several spots. (DLR)
+- NEWS:
+       - Capitalization fix. (DLR)
+- TODO:
+       - Clarify the paragraph searching item, and add item for
+         filename searches in the file browser. (DLR)
+
+GNU nano 1.3.1 - 2004.01.09
+- General:
+       - Minor overhaul and abstraction of the lowest level of mouse
+         input, mostly adapted from the code in do_mouse() that handles
+         clicking on the shortcut list.  New function do_mouseinput();
+         changes to do_mouse(). (DLR)  David Benbennick: Add a few
+         efficiency/extensibility tweaks.
+       - Modify the shortcut structure so that instead of having two
+         miscellaneous key values (misc1 and misc2), there is one key
+         value reserved for function keys (func_key) and one
+         miscellaneous key value (misc), and tweak the
+         shortcut-handling code to deal with this.  These changes allow
+         NANO_OPEN(PREV|NEXT)_ALTKEY to work properly when added to the
+         shortcut entries for NANO_OPEN(PREV|NEXT)_KEY.  Also remove
+         the values in the shortcut list and elsewhere that were made
+         redundant by the low-level input overhaul, use toupper()
+         instead of subtracting 32 from values for greater code
+         readability, and eliminate use of adding 32 to values when
+         testing for toggles, as get_kbinput_accepted() converts toggle
+         values to lowercase before returning them. (DLR)
+       - Remove the workarounds for missing KEY_UP and KEY_DOWN, as
+         they appear to be holdovers of the old way of denoting the
+         search history shortcuts; if they aren't defined, KEY_LEFT and
+         KEY_RIGHT probably shouldn't work either, and all four appear
+         to be standard keys in termcap/terminfo in any case.  Add new
+         special sentinel key values NANO_NO_KEY (for no shortcut key)
+         and NANO_HISTORY_KEY (for search history keys, both Up and
+         Down), modify the shortcut list to use them, and modify the
+         shortcut display routines to handle them.  Also modify the
+         shortcut list code to not treat non-control character values
+         of val as Meta-sequences, and fix dependencies on that
+         behavior.  Also rename several variables: "alt" -> "meta",
+         "altval" -> "metaval". (DLR)
+       - Hook up the verbatim input functions so that verbatim input
+         can be used in the edit window.  New function
+         do_verbatim_input(); changes to do_char(). (DLR)  Additional
+         minor tweaks to do_char() by David Benbennick.
+       - Clarify the description of the --rebinddelete option. (DLR)
+       - Miscellaneous comment tweaks, and copyright year updates in
+         the comments and in do_credits(). (DLR)
+- cut.c:
+       - Overhaul to increase efficiency and add various cleanups.
+         Changes to add_to_cutbuffer(), cut_marked_segment(), and
+         do_uncut_text(). (David Benbennick)
+- files.c:
+  check_operating_dir()
+       - Add an assert to ensure that full_operatingdir isn't NULL,
+         a fix for reporting nonexistent (incomplete) directory names
+         as being outside the operating directory when tab completion
+         is being used, and cosmetic cleanups. (David Benbennick)
+  copy_file()
+       - New function used to create a copy of a file, split out from
+         do_writeout(). (David Benbennick)
+  write_file()
+       - Completely overhauled to properly ignore appending/prepending
+         to symlinks when NOFOLLOW_SYMLINKS is defined, to properly
+         support writing a selection to a file under the changed
+         cutting code, to have more concise error messages, to add
+         various cleanups, and so on. (David Benbennick)
+  do_writeout()
+       - Prompt the user if we're trying to save an existing file (and
+         not just a selection of it) under a different name. (DLR;
+         suggested by Jean-Philippe GuĂ©rard)
+       - Overhaul the code used to write a selection of a file to
+         temporarily set fileage and filebot to the top and bottom of
+         the selection and then call write_file(), instead of following
+         the old hackish behavior with cut_marked_segment() (which
+         won't work after the cutting code changes anyway). (David
+         Benbennick)  DLR: Tweak to not add an extra blank line to the
+         end of the written selection if the cursor is at the beginning
+         of the last line of the selection.
+  open_prevfile(), open_nextfile()
+       - For consistency with the rest of the multibuffer code, change
+         "No more open files" to "No more open file buffers". (DLR)
+  do_browser()
+       - Allow '?' to open the help browser, and readd the ability of
+         'G'/'g' to open the "Go to Directory" prompt (which was
+         erroneously removed before), for compatibility with Pico.
+         (DLR)
+- global.c:
+  shortcut_init()
+       - Allow WHEREIS_NEXT_KEY to be used in view mode. (DLR)
+- nano.c:
+  do_int_spell_fix()
+       - Add comment explaining why findnextstr() is called with
+         bracket_mode set to TRUE even though we aren't doing a bracket
+         search. (DLR)
+  do_para_operation()
+       - Convert to use the new low-level input functions. (DLR)
+  main()
+       - Remove unused variable option_index. (DLR)
+       - Fix omission of NANO_NO_KEY in the shortcut list scanning
+         code. (DLR)
+       - Remove now-unnecessary initialization of kbinput. (DLR)
+- nano.h:
+       - Comment additions and cosmetic tweaks. (DLR)
+- search.c:
+  findnextstr(), do_replace_loop()
+       - Fix potential infinite loops and other misbehavior when doing
+         beginning-of-line or end-of-line regex replacements ("^", "$",
+         and "^$").  Add a no_sameline parameter to findnextstr(), and
+         set it in the calls in do_replace_loop() when such regexes are
+         found, so that such regexes are only found once per line.
+         Also change length_change from a long to an int; size_t is
+         unsuitable due to its being unsigned. (DLR; found by Mike
+         Frysinger and DLR)  David Benbennick: Add a few minor cleanups
+         to do_replace_loop().
+- winio.c:
+  get_kbinput(), get_accepted_kbinput()
+       - Don't pass in the value of the REBIND_DELETE flag anymore.
+         Instead, handle it directly inside the functions. (DLR)
+  get_accepted_kbinput()
+       - Translate Ctrl-8 into NANO_DELETE_KEY (or NANO_BACKSPACE_KEY
+         if REBIND_DELETE is set), since it apparently is generated
+         sometimes even when keypad() is TRUE. (DLR)
+       - Translate KEY_SLEFT into NANO_BACK_KEY and KEY_SRIGHT into
+         NANO_FORWARD_KEY, since they are sometimes generated by
+         Shift-Left and Shift-Right. (DLR)
+  get_ascii_kbinput()
+       - Tweak to make it slightly more readable. (DLR)
+  get_verbatim_kbinput()
+       - Modify to take an extra parameter indicating if we should
+         interpret ASCII codes or not. (DLR)
+  get_escape_seq_kbinput()
+       - Expand to deal with more broken terminals that don't generate
+         keypad values.  Support the escape sequences for Insert,
+         Delete, Home, End, PageUp, and PageDown, [arrow key],
+         Ctrl-[arrow key], and Shift-[arrow key] when needed in the
+         Linux console, the FreeBSD console, the Hurd console, xterm,
+         rxvt, and Eterm.  Also, use get_verbatim_kbinput(), with ASCII
+         interpretation disabled, to read in the sequences. (DLR)
+  get_skip_tilde_kbinput()
+       - Removed, as it is unneeded due to the expansion of
+         get_escape_seq_kbinput(). (DLR)
+  get_mouseinput()
+       - Modify to take an extra parameter indicating if we should
+         ungetch() the key equivalents of shortcuts we click on or not.
+         (DLR)
+  nanogetstr()
+       - Properly interpret the Meta key value in misc if we hit it at
+         the statusbar prompt. (DLR)
+  do_yesno()
+       - Add a few efficiency/extensibility tweaks. (David Benbennick)
+       - Convert to use the new low-level input functions, and remove
+         two last hardcoded widths left after the above tweaks. (DLR)
+  do_replace_highlight()
+       - Display a highlighted space if the word length is zero, so
+         that we can see zero-length regexes we're replacing. (DLR;
+         suggested by Mike Frysinger)
+- configure.ac:
+       - Check for glib 2.x and then 1.2.x if we need glib. (DLR)
+- faq.html:
+       - Add question explaining how verbatim input works, as well as a
+         few minor fixes. (DLR)
+- nano.1, nanorc.5:
+       - Add nano version numbers (minus any "-cvs" suffixes). (DLR)
+- nano.spec.in:
+       - Update for the 1.3 branch of nano. (DLR)
+- NEWS:
+       - Reformat so all lines are limited to 72 columns, add a few
+         typo fixes, and make a few minor cosmetic cleanups. (DLR)
+- THANKS:
+       - Add Danilo Segan, for the Serbian translation.
+
+GNU nano 1.3.0 - 2003.10.22
+- General:
+       - Complete overhaul and abstraction of the lowest level of
+         keyboard input, mostly rewritten but incorporating a few bits
+         from the old functions and adding support for Pico's Esc Esc
+         [three-digit decimal ASCII code] input method.  New functions
+         get_kbinput(), get_verbatim_kbinput(), get_ignored_kbinput(),
+         get_accepted_kbinput(), get_ascii_kbinput(),
+         get_escape_seq_kbinput(), and get_skip_tilde_kbinput().  These
+         should work properly on FreeBSD (due to code and input
+         provided by Lee Nelson and Wouter van Hemel, respectively).
+         (DLR)
+       - The -K/--keypad command line/rcfile option has been removed,
+         and keypad() is now always TRUE.  keypad_on() in winio.c and
+         the check for _use_keypad in configure.ac have both been
+         removed. (DLR)
+       - The -d/--rebinddelete command line/rcfile option, equivalent
+         to Pico's -d, has been added.  It is intended to work around
+         the problem with Backspace/Delete confusion on some terminals,
+         notably FreeBSD; if your Backspace key acts like Delete, this
+         option will fix that. (DLR)
+       - Remove unneeded breaks at the ends of default: clauses. (DLR)
+       - Add the ability to repeat the last search without prompting
+         via Meta-W, and move the line wrapping toggle to Meta-L.  New
+         function do_research(). (Wouter van Hemel)
+       - Added the ability to move to the beginning or end of the
+         paragraph, which Pico has via ^W^W (previous paragraph)
+         and ^W^O (next paragraph).  Changes to do_justify(); new
+         functions do_para_operation(), do_para_begin(), and
+         do_para_end().  Note that the last three functions are
+         disabled if justification is disabled. (DLR)
+       - Make sure the "historylog" option isn't included at all if
+         NANO_SMALL is defined. (DLR)
+       - Source reorganization: move code to src/, docs to doc/.
+         (Jordi)
+       - Translation updates (see po/ChangeLog for details).
+       - Since SAMELINEWRAP is only used in nano.c, make it a static
+         variable in nano.c instead of a flag, and surround all
+         wrap_reset() calls with DISABLE_WRAPPING #ifdefs. (DLR)
+       - Change enum "topmidbotnone" to "topmidnone", as there's no
+         BOTTOM option anymore. (DLR)
+       - Split out the string-displaying routine from update_line()
+         into a separate function; convert the edit window, statusbar
+         display, and statusbar prompt to use it, so that they can all
+         properly display control characters and tabs; free and NULL
+         the backup search string in one place in the search code
+         instead of several; and do some other minor refactoring of
+         related display functions to simplify them.  New functions
+         mark_order() and display_string(); new macro charmove();
+         changes to actual_x(), strnlenpt(), blank_bottombars(),
+         blank_edit(), get_page_start(), edit_add(), update_line(),
+         statusbar(), and do_replace_highlight(). (David Benbennick)
+         DLR: Add minor cosmetic tweaks, add missing NANO_SMALL #ifdef
+         around the text for a backwards search in the refactored code,
+         and enclose dump_buffer() and dump_buffer_reverse() in one
+         ENABLE_DEBUG #ifdef instead of two.
+       - Convert memmove() function calls to charmove() macro calls, as
+         the former all work on char*'s. (DLR)
+       - Miscellaneous #define cleanups: only include the prototype for
+         and definition of wrap_at if wrapping and/or justification are
+         enabled, remove duplicate wrap_at prototype, and define
+         DISABLE_MOUSE if NCURSES_MOUSE_VERSION isn't defined in nano.h
+         instead of all over the code. (DLR)
+       - Autogenerate the html versions of the manpages in the
+         Makefile.am's in doc/man/, make sure that they're properly
+         installed via "make dist", and make sure that "make distcheck"
+         works too.  Also be sure to set EXTRA_DIST properly. (Jordi,
+         DLR and Jeff Bailey)
+- files.c:
+  read_file()
+       - After we've read in a file and possibly converted it from
+         DOS/Mac format, set fileformat back to 0 to prevent erroneous
+         conversion messages when we read other files in. (DLR)
+  do_browser()
+       - Some of the Pico compatibility options in the file browser
+         that don't work properly for current Pico have been removed.
+         Backspace, 'g', 'l', 'q', and 'u' are invalid.  'd' deletes
+         the highlighted file, and 'r' renames the highlighted file;
+         neither of these are implemented. (DLR)
+- global.c:
+  toggle_init()
+       - Change the message for the line wrapping toggle from "Auto
+         wrap" to "Auto line wrap", to more clearly associate it with
+         Meta-L. (DLR)
+  shortcut_init()
+       - Change multibuffer-enabled references to
+         opening/closing/toggling the previous/next loaded file to
+         toggling/switching to/closing the previous/next file buffer,
+         for consistency with other references. (DLR)
+- nano.c:
+  window_init()
+       - Set keypad() to TRUE regardless of whether PDCurses is being
+         used, as Meta-X apparently turns it off even under ncurses.
+         (DLR)
+  do_backspace()
+       - Vastly simplify, and remove dependency on page_up(). (David
+         Benbennick)
+  help_init()
+       - Document the support for Esc Esc [character]'s being
+         interpreted as Ctrl-[character], and the support for Pico's
+         Esc Esc [three-digit decimal ASCII code] input method. (DLR)
+  do_mark()
+       - Toggle MARK_ISSET at the beginning of the function instead of
+         setting it in one place and unsetting it in another place.
+         (David Benbennick)
+  do_suspend()
+       - Use handle_hupterm() to handle SIGHUP and SIGTERM so we can
+         properly deal with them while nano is suspended. (DLR; problem
+         found by David Benbennick)
+  abcd()
+       - Removed, as it's unneeded due to the low-level input overhaul.
+         (DLR)
+- nano.h:
+       - Define KEY_RESIZE and KEY_SUSPEND as -1 when slang is used, as
+         slang has no equivalent of either.  When nano is compiled with
+         slang support, resizing the window doesn't generate
+         KEY_RESIZE, and pressing Ctrl-Z to suspend nano at the Linux
+         console with keypad(TRUE) generates Ctrl-Z instead of
+         KEY_SUSPEND, both unlike ncurses. (DLR)
+       - Define KEY_RESIZE as -1 if it isn't defined, as it isn't in
+         the curses library included with SunOS 5.7-5.9.  Also define
+         KEY_SUSPEND as -1 if it isn't defined, in case it isn't in
+         more than just Slang. (DLR)
+       - Define all potentially missing keys as different negative
+         values (ERR is -1, so use -2, -3, etc.) so as to avoid having
+         duplicate case values when keys are missing. (DLR)
+- move.c:
+       - Remove unneeded inclusion of stdio.h, make various cleanups,
+         and preserve the cursor's coordinates when paging up and down.
+         (David Benbennick)  DLR: Readd the ability to behave the old
+         way while paging, make it so the new behavior is only used in
+         smooth-scrolling mode, and modify page_down() to always go
+         down a full page (even when there's less than one page of text
+         left) for consistency.
+  page_up()
+       - Removed due to rewrite of movement functions. (David
+         Benbennick)
+- proto.h:
+       - Surround the do_prev_word() and do_next_word() prototypes with
+         NANO_SMALL #ifdefs, since the actual functions aren't included
+         in tiny mode. (DLR)
+- rcfile.c:
+  parse_colors()
+       - Generate an error if we try to use a bright background color
+         in a nanorc file. (DLR; found by Brand Huntsman)
+       - Make sure all rcfile error messages are capitalized, for
+         consistency. (DLR)
+- winio.c:
+  get_verbatim_kbinput()
+       - Fix a silly memory corruption bug that would occur when trying
+         to read a sequence of more than one key verbatim. (DLR)
+  get_accepted_kbinput()
+         Handle Ctrl-{ to Ctrl-~ correctly, and drop support for
+         converting Esc ` to Esc Space, since making Meta-[key]
+         correspond to Ctrl-[key] in all cases is inconsistent due to
+         the different natures of Contol and Meta key sequences. (DLR)
+  do_first_line()
+       - Call edit_update() with TOP instead of CENTER; both do the
+         same thing, but it works faster with TOP. (DLR)
+  nanogetstr()
+       - Don't let the user type in ASCII 127 at the statusbar prompt.
+         (DLR)
+  titlebar()
+       - Fix problem with the available space for a filename on the
+         titlebar's being short by one. (DLR)
+  edit_add()
+       - Fix problems with the marking highlight's being drawn
+         improperly in some cases. (DLR)
+  edit_update()
+       - Tweak for efficiency and remove the fix_editbot() call. (David
+         Benbennick)
+  do_credits()
+       - Update the copyright years to "1999-2003", to match those
+         given in the rest of the code. (DLR)
+- configure.ac:
+       - Change instances of "GNU Nano" to "GNU nano" for consistency.
+         (DLR)
+- nano.1, nanorc.5, nano.texi:
+       - Change all instances of $SYSCONFDIR to SYSCONFDIR, since
+         SYSCONFDIR is set at compile time and can't be overridden by
+         setting SYSCONFDIR in the environment. (David Benbennick)
+       - Remove -K/--keypad, and document -d/--rebinddelete. (DLR)
+       - Document the support for Esc Esc [character]'s being
+         interpreted as Ctrl-[character], and the support for Pico's
+         Esc Esc [three-digit decimal ASCII code] input method, if
+         applicable. (DLR)
+       - French translation by Jean-Philippe GuĂ©rard.
+- nano.1.html, nanorc.5.html:
+       - Regenerated. (DLR)
+- nanorc.sample:
+       - Remove duplicate "historylog" entry, remove "keypad" entry,
+         and add "rebinddelete" entry. (DLR)
+       - Update and add comments to the regexes for nanorc files.
+         (Brand Huntsman)
+       - Fix an attempt at a bright background color in the sample Java
+         source regexes. (DLR)
+       - Since tabs are shown as groups of spaces, they are interpreted
+         as such when parsed by color regexes.  Accordingly, simplify
+         regexes that handle both spaces and tabs to just handle
+         spaces, as the results are the same. (DLR)
+- AUTHORS:
+       - Updated to show 1.2/1.3 maintainers.
+
+- 1.3 tree forks here
+
+GNU nano 1.2.2 - 2003.08.11
+- General:
+       - Translation updates (see po/ChangeLog for details).
+       - Change uncast nrealloc()s assigned to char pointers/arrays to
+         charealloc()s, and cast all other nrealloc()s and all
+         nmalloc()s. (David Benbennick and DLR)
+       - Remove gettext marks from all debug messages. Good for developers,
+         better for translators. (Jordi)
+       - Add translator comments on strings that should be short, like in
+         status bar strings, etc. (Jordi)
+- utils.c:
+  align()
+       - Tweak to avoid a potential problem when strp is non-NULL but
+         *strp is NULL. (David Benbennick)
+  nstricmp(), nstrnicmp()
+       - Add these functions, equivalent to strcasecmp() and
+         strncasecmp(), and convert nano to use them when strcasecmp()
+         and/or strncasecmp() are unavailable. (DLR)
+- winio.c:
+  do_help()
+       - Get rid of keypad_on() call for bottomwin, which should not be
+         needed (DLR).
+  nanogetstr()
+       - Fix problem with search history where a temporary string
+         added at the bottom of the history (but which was not in the
+         history) would not be preserved after scrolling down to the
+         blank bottom entry and then scrolling back up. (DLR)
+       - Fix problem where pressing down,up,down does not blank the
+         search prompt but keeps the previous search (DLR).
+       - Handle Alt-[-F and H (DLR, fixed home and end not working with
+         -K in statusbar).
+- configure.ac:
+       - Change the program used to detect a broken regexec() function
+         so that it works properly, using information found at
+         http://sources.redhat.com/ml/libc-hacker/2001-06/msg00015.html.
+         (DLR)
+- nanorc.sample:
+       - Revised comment explaining the non-escaping of quotes to cover
+         non-escaping of all shell-interpreted characters. (DLR)
+       - Fixes to the descriptions and examples in the comments, and
+         changes to some default values. (David Benbennick and DLR)
+       - Add regexes for Perl syntax. (Richard Smith, tweaked for
+         greater efficiency by David Benbennick)
+       - Add regexes for Java source syntax. (David Benbennick)
+         Regex for C++-style comments (colored the same way as C-style
+         comments) added by DLR.
+- THANKS:
+       - Added Laurentiu Buzdugan, for Romanian.
+       - Added Geir Helland, for Norwegian BokmĂĄl.
+- TODO:
+       - Move the items for nano 1.2 to the "Old Requests" section,
+         and mark color syntax highlighting as done. (David Benbennick)
+- faq.html:
+       - Added question about nano's not showing color when it's
+         compiled with color support. (DLR; suggested by Jordi)
+- nano.1, nanorc.5:
+       - Formatting improvements by Jean-Philippe GuĂ©rard.
+       - Minor fixes by DLR.
+- nano.1.html, nanorc.5.html:
+       - Regenerated from nano.1 and nanorc.5. (DLR)
+
+GNU nano 1.2.1 - 2003.04.19
+- General:
+       - Translation updates (see po/ChangeLog for details).
+       - Work around broken regexec() on some systems that segfaults
+         when passed an empty string.  This is known to be in glibc
+         2.2.3.  New function regexec_safe(). (David Benbennick)
+       - Fix various bugs with search string history logging: don't
+         print a broken error message and freeze if ~/.nano_history is
+         unreadable, actually show an error message in save_history()
+         if ~/.nano_history is unwritable, and prevent ~/.nano_history
+         from being completely overwritten by save_history() if it's
+         unreadable but writable. (David Benbennick)
+       - Only unset KEEP_CUTBUFFER in main() when we do something other
+         than cut text in the main input loop, instead of unsetting it
+         all over the place (which, as written, didn't handle cases
+         like a cut followed by M-Space properly).  Also, instead of
+         checking for keyhandled's not being set inside the for loops,
+         do it in if blocks surrounding the for loops to increase
+         efficiency. (David Benbennick)  DLR: Also unset KEEP_CUTBUFFER
+         if we hit a shortcut key other than the one for cutting text.
+       - Make it so a marked cut immediately followed by an unmarked
+         cut tacks the latter's text onto the end of the former's text
+         instead of putting it on a new line, as Pico does. (DLR)
+       - Convert instances of "(char *)nrealloc()" to the macro
+         charealloc(), which does the same thing. (DLR)
+       - Change justify_mode from a boolean int to a flag (DLR).
+- cut.c:
+  do_cut_text()
+       - Tweak where KEEP_CUTBUFFER is set so that a marked cut
+         immediately followed by an unmarked cut preserves the
+         cutbuffer between the two. (David Benbennick)  DLR: Also
+         properly set KEEP_CUTBUFFER in tiny mode.
+  do_uncut_text()
+       - If we're about to uncut on the magicline, always make a new
+         magicline in advance, as Pico does. (DLR)
+- global.c:
+  shortcut_init()
+       - Simplify the #ifdef used to enable file insertion in view mode
+         if multibuffer support has been compiled in. (DLR)
+- nano.c:
+  justify_format()
+       - If we shave spaces off the end of the line, make sure totsize
+         is properly updated. (DLR; much simplified by David
+         Benbennick)
+- nano.h:
+       - Simplify #ifdefs relating to HAVE_STRCASECMP and
+         HAVE_STRNCASECMP. (David Benbennick)
+- search.c:
+  goto_abort()
+       - Removed, with all instances replaced with display_main_list(),
+         since with the removal of all the scattered calls to
+         SET(KEEP_CUTBUFFER), that function was all that was left of
+         it. (DLR)
+  do_find_bracket()
+       - If a matching bracket wasn't found, call update_line() after
+         setting current and current_x back to their original values,
+         in case current_x's original value is greater than the width
+         of the screen. (DLR)
+- winio.c:
+  nanogetstr()
+       - Remove a few unnecessary breaks occurring immediately after
+         gotos, and properly interpret the up and down arrow keys when
+         ALT_KEYPAD is set. (DLR)
+- configure.ac:
+       - Enable autodetection of broken regexec(). (DLR) Re-added
+         regex.h check to ensure compile under Debian w/autoconf 1.6.
+- README:
+       - Update obsolete 1.1.x information.
+- TODO:
+       - Fix typo. (David Benbennick)
+- faq.html:
+       - Update RPM links for nano 1.2.x. (DLR)
+
+GNU nano 1.2.0 - 2003.02.19
+- General:
+       - Translation updates (see po/ChangeLog for details).
+- files.c:
+  read_file()
+       - If the file we're loading has already been detected as a DOS
+         or Mac formatted file, don't turn on NOCONVERT if we find
+         binary chars in it.  This is because if it's detected as
+         DOS/Mac format, at least one line has already been converted,
+         so setting NOCONVERT (which is supposed to signal that none
+         of the file should be converted) makes no sense. (DLR)
+- nano.c:
+  justify_format()
+       - Fix ugly behavior when wrapping spaces at the end of long
+         words (David Benbennick).
+- nanorc.5:
+       - Fix formatting error and update copyright year (Jordi).
+       - Several enhancements (David Benbennick).
+
+GNU nano 1.1.99pre3 - 2003.02.13
+- General:
+       - Translation updates (see po/ChangeLog for details).
+       - Fix globals and externs such that nano will compile with
+         DISABLE_SPELLER (David Benbennick).
+       - Fix unreasonable fill values by wrapping at length 0 instead
+         of erroring out, and don't start up if the window size is too
+         small but fill is set reasonably.  Changes to
+         nano.c:global_init(), window_init(), and handle_sigwinch().
+         New macro MIN_EDITOR_COLS replaces MIN_FILL_LENGTH
+         (David Benbennick).
+       - Change ngettext macro to P_(), to avoid a clash with the
+         reserved C __ identifier (Jordi).
+       - Memory leak fixes for files.c:do_insertfile(),do_browser(),
+         nano.c:do_spell(), and search.c:do_replace() (David
+         Benbennick).
+       - Remove do_preserve_msg, as using -p still gives Pico-style
+         string behavior, so an annoying message every invocation is
+         probably unneeded (all cheer).
+       - Change resetpos function to be global (now called
+         resetstatuspos.  Fixes annoying but small odd problem with
+         cursor placement when inserting a file.  This needs to be done
+         better in 1.3 (originally by David Lawrence Ramsey).  Added
+         this issue to TODO.
+- files.c:
+  cwd_tab_completion()
+       - Memory leak fix (David Benbennick).
+  input_tab()
+       - Fix assumption that matches is null terminated (David
+         Benbennick).
+  load_history()
+       - Fix segfault on loading huge strings from history file
+         (David Benbennick).
+  load_history(), save_history()
+       - Changed to look at $HOME before getpwuid(geteuid()), see
+         details in comment for rcfile.c:do_rcfile().
+  real_dir_from_tilde()
+       - Change check for the running user's home dir to use
+         getpwuid(geteuid()) rather than a getpwent() loop
+         (suggested by Jordi).
+- nano.c:
+  breakable()
+       - Fix incorrect return value on short lines (David Benbennick).
+  do_help()
+       - Fix line lengths not being computed properly, causes display
+         glitches most noticeable with < 20 rows.  New function
+         nano.c:line_len(). (David Benbennick).
+  do_justify()
+       - Add regfree() to quote regex (David Benbennick).
+       - Only copy previous indent if AUTOINDENT is set (David
+         Benbennick).
+  do_suspend()
+       - Fix untranslated message (David Benbennick).
+  do_wrap()
+       - Fix isspace() call to operate on int.
+  help_init()
+       - Fix crashing in do_help when COLS < 23 (David Benbennick).
+  main()
+       - Fix nano not compiling with ENABLE_RCFILE and DISABLE_TABCOMP
+         (David Benbennick).
+       - Silence annoying compiler messages about clobbering and
+         uninitialized variables by moving variable inits to the top
+         of main() and re-initializing them after the sigsetjmp().
+- rcfile.c:
+  colortoint()
+       - Don't bomb after invalid color and print bad color name
+         (David Benbennick).
+  colortoint, parse_colors()
+       - Don't add strings with invalid fg colors at all.
+  do_rcfile()
+       - Revert (somewhat) previous behavior of looking at
+         $HOME, and only run getpw* if it is NULL.  Most *nix programs
+         seem to only care about $HOME, and at the user-level
+         getpw* may not be reliable (and its slower).
+- search.c:
+  do_gotoline()
+       - Only goto_abort() if we *didnt* abort the command, making
+         the function seem horribly misnamed ;-) (David Benbennick).
+- winio.c:
+  browser_init(), striponedir(), do_browse_from()
+       - Various memory leak fixes (David Benbennick).
+  do_yesno(), do_help()
+       - Add defined(NCURSES_MOUSE_VERSION) to macro so systems that
+         don't understand MEVENT will compile.
+  nanogetstr()
+       - Remove unnecessary reset of x since it is now handled
+         elsewhere (David Lawrence Ramsey).
+  statusq()
+       - Always blank the statusbar on exit (David Benbennick).
+- nano.1, nano.1.html:
+       - Add initialization file comments, change some options from
+         bracketed to underlined to emphasize that they are not
+         optional.
+       - Add SEE ALSO section (Jordi).
+       - Moved nano.1 color and syntax sections to nanorc, pointed
+         nano.1 to nanorc.5 for initialization file.  Changed
+         nanorc.5 variables to be italics to match nano.1.  Added
+         nanorc.5.html to CVS tree.
+- nanorc.5:
+       - Add nanorc manpage, with descriptions of all available commands
+         (Jordi).
+- nanorc.sample:
+       - Make nanorc entry less tolerant of invalid colors.
+- nano.spec.in:
+       - Change default flags to --enable-all.
+- THANKS:
+       - Add Kalle Kivimaa and Kalle Olavi Niemitalo, for Finnish (Jordi).
+- UPGRADE:
+       - Add upgrading information document for 1.0 users (Jordi).
+
+GNU nano 1.1.99pre2 - 2003.02.03
+- General:
+       - Changed some translatable debug messages to use %s
+         instead of the function name, and removed gettext from
+         two strings that had no actual words in them that
+         should be translated.  Suggested originally by
+         Christian Rose.
+       - Fix subexpression replacement to work consistently.
+         Affects search.c:replace_regexp() and
+         utils.c:strstrwrapper() (David Benbennick).
+       - Fix cursor position being saved when escaping out
+         of nanogetstr with keys like ^Y and ^V.  New arg
+         resetpos to nanogetstr(), added static int
+         resetpos in statusq() (bug found by DLR).
+       - Fix constant curos updates from obliterating other
+         system messages, and fix statusbar message length.
+         Affects files.c:load_open_file(), nano.c:main(),
+         search.c:findnextstr(), winio.c:statusbar() and
+         do_cursorpos() (David Benbennick).
+       - Fix nano crashing when searching/replacing an invalid
+         regex (try "^*").  Changed regexp_init() to return
+         1 or 0 based on regcomp()'s return value and search_init
+         to exit with an error message (sorry Jordi!).  Added
+         another check when using last_search instead of answer.
+       - Move regcomp into rcfile.c rather than each display refresh
+         of winio.c.  New function rcfile.c:nregcomp().
+         This fixes much of nano's resource hogging behavior
+         in syntax higlighting. (David Benbennick).
+       - Fix justify failing for certain lines, new function
+         nano.c:breakable() (David Benbennick).
+       - Fix screen getting trashed on signals nano can catch
+         (TERM and HUP).  New global variable curses_ended,
+         changes to winio.c:statusbar() and nano.c:die()
+         (David Benbennick).
+- cut.c:
+  do_cut_text()
+       - Fix incorrect cursor location when cutting long lines
+         (David Benbennick).
+- files.c:
+       - Set a default PATH_MAX for getcwd() etc calls (David
+         Benbennick).
+  do_browse_from()
+       - Fix path checking to fix bad paths, escaping
+         the operating directory, new function readable_dir() (David
+         Benbennick).
+  do_browser()
+       - Fix incorrect path check for check_operating_dir()
+         (David Benbennick).
+       - Fix goto directory operating dir check and tilde expansion
+         (David Benbennick).
+       - Even more checks and operating dir fixes (David Benbennick).
+  do_insertfile()
+       - Add some more checks and fix recursion when toggling
+         multibuffer (David Benbennick).
+  open_file()
+       - Fix FD leak with file load error (David Benbennick).
+  add_open_file()
+       - Revert the fix for the supposed minor logic error from before;
+         it was keeping some updates from happening when they should,
+         which was leading to segfaults with both multibuffer and view
+         mode on. (DLR; found by David Benbennick)
+  save_history()
+       - Fix nrealloc return value being ignored (David Benbennick).
+       - Fix off-by-one bug causing write to unallocated memory
+         (David Benbennick).
+- global.c:
+  thanks_for_all_the_fish()
+       - Fix compiling with DEBUG and multibuffer (David Benbennick).
+- nano.c:
+  do_char()
+       - Remove unneeded check_statblank() (David Benbennick).
+  do_int_spell_fix(), do_int_speller()
+       - Fix crashes with mark position, current_x position,
+         and edit_update args (David Benbennick).
+  do_justify()
+       - Unset KEEP_CUTBUFFER so nano won't crash with subsequent
+         ^K cuts and justifies (David Benbennick).
+  do_mouse()
+       - Fix the mouse code to work with lines longer than COLS and
+         with the proper positioning, including special characters
+         (David Benbennick).
+  do_preserve_msg():
+       - Unsplit error message into a single fprintf call (Jordi).
+  main()
+       - Call load_file with arg 0 for insert, as we aren't really
+         doing an insert, allows new_file() to run if we open a
+         non-file at startup.
+  usage()
+       - Remove gettext markings from -p/--preserve (Jordi).
+       - Revamp -H option message to fit in 80 column terminal.
+  window_init()
+       - Fix leaking *WINDOWs (no pun intended) (David Benbennick).
+- search.c:
+  do_search(), do_replace_loop()
+       - Fix edit_update call to use CENTER instead of current_x
+         (related to David Benbennick's fixes for spelling).
+  do_replace_loop()
+       - Fix various bugs having to do with replace string length
+         and positioning (David Benbennick).
+  edit_refresh()
+       - Fix cursor being above as well as below the current screen
+         (David Benbennick).
+- winio.c:
+  bottombars()
+       - Change strcpy of gettext() "Up" string to strncpy of max
+         width 8, to stop stupid strcpy crash.
+  do_yesno()
+       - Fix mouse interaction bugs with yes/no prompt (David Benbennick).
+- nanorc.sample:
+       - Change comment to say magenta instead of purple.
+
+GNU nano 1.1.99pre1 - 2003.01.17
+- General:
+       - New date format for NEWS and ChangeLog.
+       - Completely removed PICO_MODE, as with the search/replace
+         history patch we should have the extended functionality we can
+         without being incompatible with Pico.  Removed all code for
+         different search/replace string editing and alternate shortcut
+         list.  I'm sure I won't even have to ask for feedback on this
+         one :-)
+       - Add in Pico's -p flag, (-p, --preserve).  To preserve the XON
+         and XOFF keys (^Q and ^S).  Add warning if we invoke -p and
+         add checks for using --preserve (to skip warning) and --pico
+         (to force showing it).   New flag PRESERVE, function
+         do_preserve_msg(), changes to main(), signal_init().
+       - Search history and replace history up/down cursor arrows,
+         w/history tab completion, not available w/NANO_SMALL.  Changes
+         to statusq(), others (Ken Tyler).  Added shortcut to
+         search/replace shortcuts so people will know it's there,
+         forced KEY_UP and KEY_DOWN defs in nano.h (Chris, in case
+         blame needs to be placed later).  Minor fixes by DLR: allow ^P
+         and ^N as alternatives to the up and down arrows, make sure
+         the "Up" shortcut is displayed properly in the help menu,
+         remove a few bits of unneeded and/or warning-generating code,
+         and fix some missing statusq() prompts with --enable-tiny.
+       - Added search/replace history log.  Flag -H, --historylog.
+         Flags HISTORY_CHANGED and HISTORYLOG (only room for one more
+         flag!), added entries in nanorc.sample, new functions
+         log_history and save_history (Ken Tyler).
+       - Translation updates (see po/ChangeLog for details).
+       - Forward-ported Chris' --disable-wrapping-as-root option from
+         1.0.9.  Per Jordi's suggestions, have it override
+         $SYSCONFDIR/nanorc but not ~/.nanorc. (DLR)
+       - Change all references to /etc/nanorc in the documentation to
+         $SYSCONFDIR/nanorc. (DLR)
+       - Minor cosmetic tweaks to the ngettext() macro, and fix to
+         properly detect systems lacking ngettext() and correctly
+         compile on them; the previous fix didn't work. (DLR)
+       - Fix problems with some code sections' not being #ifdef'ed out
+         when they should be, or being #ifdef'ed out improperly. (David
+         Benbennick and DLR)
+       - Change FOLLOW_SYMLINKS to NOFOLLOW_SYMLINKS, and rework the
+         associated logic accordingly, throughout the code. (David
+         Benbennick)
+       - Rework #ifdefs to not include mouse_init() at all if
+         DISABLE_MOUSE is defined or NCURSES_MOUSE_VERSION isn't. (DLR)
+       - For consistency, change many references of (!x) to (x == NULL)
+         and (x) to (x != NULL). (DLR)
+       - Define KEY_IC properly (and KEY_DC more portably) when slang
+         support is enabled, and remove the hack to work around the
+         former's not being defined. (David Benbennick and DLR)
+       - Miscellaneous tweaks to update_color() calls, to make sure
+         they're called at the right times and that refreshes are done
+         afterwards only when needed. (David Benbennick)
+       - Renamed [have_]past_editbuff [have_]search_offscreen. (DLR)
+       - Add the "preserve" option to the nanorc file, to match
+         nanorc.sample. (DLR)
+       - Fixed awful scrolling in do_int_speller.  Problem was
+         findnextstr() calling edit_update(), though screen updating
+         is not its business.  Added checks in do_search() and
+         do_replace_loop() to do the checks.  It really should not be
+         done here, as some function in winio.c should handle this,
+         but I can't seem to find a good place to put this check.
+       - Updated all copyright notices to say 2003 rather than 2002, as
+         nearly all the source files have been worked on this year
+         (DLR).
+- configure.ac:
+       - Added tr and eu to ALL_LINGUAS (Jordi).
+       - Fix now inaccurate description of --enable-tiny's effects; it
+         no longer disables NLS support. (DLR)
+       - Fix typo. (David Benbennick)
+       - Check for strcasecmp() and strncasecmp(), since they are
+         apparently only standard under BSD. (DLR)
+       - Small cleanups. Add copyright header, add autopoint support and
+         define bug report address and full package name in AC_INIT. Move
+         ALL_LINGUAS to po/LINGUAS, recommended place for gettext 0.11.
+       - Added --enable-all option to compile in all the extra stuff
+         we'd normally need extra flags for.
+- color.c:
+  update_color():
+       - Remove an unneeded edit_refresh() call after do_colorinit().
+         (David Benbennick)
+- cut.c:
+  do_cut_text()
+       - Fix a memory corruption problem caused by accessing edittop
+         after it was freed but before it was reset to a sane value
+         from current. (David Benbennick)
+  do_uncut_text()
+       - If uncutting more than one line of unmarked text at editbot,
+         don't center the screen, since Pico doesn't. (DLR)
+       - If uncutting previously unmarked text, uncut to end if we're
+         not at the beginning of the line, and set placewewant to 0 if
+         we are.  This matches Pico's behavior. (DLR)
+- files.c:
+  load_file()
+       - Remove unneeded wmove() call. (David Benbennick)
+  read_line()
+       - Miscellaneous cleanups. (David Benbennick)
+  open_file()
+       - If we're in multibuffer mode and there's an error opening the
+         file in read-only mode, display the error message on the
+         statusbar regardless of the value of quiet. (DLR)
+  read_file()
+       - Miscellaneous cleanups. (David Benbennick)
+       - Fix len's being off by one when reading in Mac-format files,
+         exposed by one of David Benbennick's cleanups. (DLR)
+       - If NO_CONVERT isn't set when we first enter, and it gets set
+         while reading in the file, unset it again afterwards. (DLR)
+  do_insertfile()
+       - If we're in multibuffer mode and there's an error opening the
+         file that we're trying to insert, close the new buffer that we
+         made to hold it and reload the buffer we had open before.
+         (DLR)
+  add_open_file()
+       - Fix minor logic error when determining when to resave fileage
+         and filebot. (DLR)
+  load_open_file()
+       - If switching between files when CONSTUPDATE is set, only force
+         a cursor position display update if DISABLE_CURPOS isn't set.
+         This will ensure that the "Switching to [file]" messages are
+         shown. (DLR)
+  write_file()
+       - Change lineswritten from a long to an int, to match
+         filestruct->lineno. (DLR; mismatch found by David Benbennick)
+  real_dir_from_tilde()
+       - Since this is needed for proper interpretation of paths
+         containing tildes and not just for tab completion, include and
+         use it regardless of whether tab completion is disabled.
+         (David Benbennick and DLR)
+  input_tab()
+       - Variable name change: matchBuf -> matchbuf. (DLR)
+  diralphasort()
+       - Remove the HAVE_STRCASECMP #ifdef block; see the changes to
+         configure.ac and nano.h for why. (DLR)
+- global.c:
+  thanks_for_all_the_fish()
+       - Miscellaneous cleanups. (David Benbennick)
+- move.c:
+  do_page_down()
+       - If there's a page or less of text, do an edit_update() if the
+         mark is on; otherwise, the highlight won't be displayed. (DLR)
+- nano.c:
+       - Added free_history() list calls clean up, added init of list
+         headers, and modified statusq() calls (Ken Tyler).
+  do_prev_word()
+       - Make the assert match that in do_next_word(). (DLR)
+  do_enter()
+       - If smooth scrolling is on, and Enter is pressed on the
+         magicline, don't center the screen. (DLR)
+  do_justify()
+       - Fix memory corruption problem triggered when edittop and
+         current->next pointed to the same value and current->next was
+         destroyed during justification. (DLR)
+       - Center the screen when justification moves the cursor entirely
+         off the bottom of the screen, instead of when it moves the
+         cursor near the bottom of the screen, to more closely match
+         Pico's behavior. (DLR)
+  version()
+       - Remove obsolete reference to --enable-undo. (David Benbennick)
+       - Move up check for --disable-nls as it's independent of
+         --enable-tiny now (DLR).
+  do_int_speller()
+       - Make internal spell program use sort -f and uniq to create a
+         less redundant word list.  [The only reason this is going in
+         during feature freeze is because the int speller is useless as
+         is and should either be improved or removed.  I chose
+         improved].
+       - Change all child error checks to use one goto (gasp!) called
+         close_pipes_and_exit, so we don't leak FDs.
+       - Fix FD leaks which occur outside of errors (David Benbennick).
+  do_int_speller(), do_alt_speller()
+       - Programs now return char *, NULL for successful completion,
+         otherwise the error string to display.  This allows us to give
+         more useful feedback to the user when spell checking fails.
+  ABCD()
+       - Renamed abcd(). (DLR)
+  main()
+       - Remove an unneeded do_colorinit() call, do major cleanups, and
+         allow loading of multiple files on the command line when
+         multibuffers are used. (David Benbennick)
+- nano.h:
+       - Make sure NO_RCFILE and COLOR_SYNTAX aren't set to the same
+         value. (DLR; discovered by Ken Tyler)
+       - If strcasecmp() and/or strncasecmp() aren't available, use
+         strcmp() and/or strncmp() instead. (DLR)
+- proto.h:
+       - Fix the #ifdef block for DISABLE_TABCOMP's being undefined
+         so that functions only used with tab completion are properly
+         #ifdef'ed out. (DLR)
+- search.c:
+  do_gotoline()
+       - Don't call blank_statusbar_refresh() so if there's an error
+         returned in multibuffer mode, we can actually see it.
+  do_search()
+       - Remove erroneously introduced near-duplicate call to
+         update_history(). (DLR)
+  print_replaced()
+       - Remove and replace with an equivalent ngettext() call. (DLR)
+  do_replace_loop()
+       - Fix bug where if text on the magicline was replaced (which can
+         be done via a regexp replace of "^$" with something other than
+         ""), a new magicline wouldn't be created. (DLR)
+       - Remove check for answer being a blank string, presumed to be
+         a PICO_MODE holdover, but it stops us from doing a blank
+         spelling replacement.
+  do_replace()
+       - For greater Pico compatibility, when an attempt to replace a
+         string results in 0 replacements due to the string's not being
+         found, display "[string] not found" instead of "Replaced 0
+         occurrences". (DLR)
+- utils.c:
+  is_cntrl_char()
+       - Rework to fix a problem with displaying certain high-bit
+         characters. (David Benbennick; reported by Andrzej Marecki)
+  align()
+       - Don't just assert that the string passed in isn't NULL; check
+         that it isn't and only do the alignment when it isn't. (David
+         Benbennick)
+  nmalloc(), nrealloc()
+       - If the size passed to nmalloc() or nrealloc() is zero, don't
+         die with an erroneous out-of-memory error.  Also, change
+         their dying messages to "nano is out of memory!". (David
+         Benbennick)
+  charalloc()
+       - Removed and redefined as a macro that calls nmalloc(). (David
+         Benbennick)
+- winio.c:
+  nanogetstr()
+       - Tweak to make the cursor stay in the same place if we hit a
+         prompt-changing toggle while it's in the middle of the string.
+         Reset it to -1 (so next time we come here, it'll be set to the
+         end of the string) if we leave the prompt via Enter or Cancel.
+         Also fix minor problem with search history where the current
+         search item could be at the bottom of the history twice in a
+         row under certain conditions. (DLR)
+       - Remove parens in NANO_CONTROL_I check so nano won't complain if
+         just NANO_SMALL is defined (David Benbennick).
+  edit_refresh()
+       - Miscellaneous cleanups that fix a bug where the screen
+         isn't updated after uncutting chunks of upwardly marked cut
+         text that are over a page in length. (David Benbennick)
+  do_credits()
+       - Add David Benbennick to credits. (DLR)
+- nanorc.sample:
+       - Added comment to explain the non-escaping of quotes in
+         color regexes, based on info provided by David Benbennick.
+         (DLR)
+       - Added some examples for groff and the nanorc courtesy of
+         Robert D. Goulding.
+       - Added double hash marks to comment lines, so people who
+         uncomment the beginning of every line won't get syntax errors.
+- faq.html:
+       - Miscellaneous fixes and updates for typos, broken links, and
+         slashes at the end of directories.  It is now fully compliant
+         with HTML 4.01 Transitional. (DLR and David Benbennick)
+       - Added docs about the new unified search string interface and
+         search histories, and added --enable-all into configure docs.
+- nano.texi:
+       - Typo fixes and updates. (David Benbennick)
+       - Updates for the most recent and not so recent changes.
+- nano.1, nano.1.html
+       - Updated for the --preserve and --historylog options.
+- TODO
+       - Added some wishlist stuff.
+- THANKS:
+       - Added Doruk Fisek and Peio Ziarsolo (Jordi).
+
+GNU nano 1.1.12 - 10/24/2002
+- General:
+       - Translation updates (see po/ChangeLog for details).
+       - Remove malloc.h, as it's unneeded and just causes annoyances on
+         *BSD systems.  Added stdlib.h to global.c.
+       - Added Meta-Y toggle to disable/enable color syntax highlighting
+         completely.  This may eventually be per-buffer, but that's too
+         complicated for a feature freeze.
+       - Disable VSTOP keystroke.  Stops people accidentally locking up
+         nano (suggested by David Benbennick).
+       - Pluralize messages with ngettext() where needed. (David
+         Benbennick)  Tweaked to compile on systems lacking ngettext()
+         by DLR (problem found by Ken Tyler).
+       - Update nano.1 and nano.1.html to show that nano now does an
+         emergency save on receiving SIGHUP or SIGTERM. (DLR)
+       - Don't include "nowrap" in the long options if
+         DISABLE_WRAPPING is defined. (DLR)
+- files.c:
+  read_file()
+       - Minor efficiency fixes, some of which fit in with the change
+         to ngettext() usage mentioned above. (David Benbennick)
+  do_browser()
+       - Make sure the value of path is mallocstrcpy()ed into retval
+         and not just assigned to it, to avoid memory corruption
+         problems. (DLR)
+- nano.c:
+  version()
+       - If ENABLE_NLS isn't defined, display "--disable-nls"
+         (suggested by Ken Tyler). (DLR)
+  justify_format()
+       - Make sure the double space maintained after sentence-ending
+         punctuation is done when that punctuation is immediately
+         followed by a bracket-type character, so justifying e.g.
+         sentences in parentheses works properly. (David Benbennick)
+  handle_hup()
+       - Renamed handle_hupterm() to show that it now handles SIGTERM
+         as well as SIGHUP. (DLR)
+  signal_init()
+       - Do an emergency save on receiving either SIGHUP or SIGTERM,
+         not just SIGHUP. (David Benbennick)
+  main()
+       - Fix a problem where control key commands were printed
+         literally instead of interpreted after a failed search of a
+         one-line file. (David Benbennick)
+- proto.h:
+  handle_hup()
+       - Renamed handle_hupterm(); see above for why. (DLR)
+- winio.c:
+  edit_add()
+       - Fix a potential infinite loop occurring with certain
+         zero-length regexes. (David Benbennick)
+
+GNU nano 1.1.11 - 10/01/2002
+- General:
+       - Translation updates (see po/ChangeLog for details).
+       - Upgraded to gettext 0.11.5 (Jordi).
+       - Updated nano.1, nano.1.html, and nano.texi to fix an
+         inaccuracy in the description of -Q/--quotestr. (DLR)
+       - Set REG_EXTENDED in all regcomp() calls. (DLR)
+       - Minor cosmetic code cleanups. (DLR)
+       - Changed do_insertfile to (a) report multibuffer status at the
+         prompt and allowing it to be toggled, taking into account the
+         need to keep the translatable strings, and (b) added a
+         variable inspath to keep track of what the string was before
+         toggling.  I'm sure there's bugs, have at it.
+       - Make sure all functions have prototypes in proto.h, and swap
+         some functions around to put similar functions closer
+         together (for this, rename clear_bottombars() to
+         blank_bottombars()). (DLR; suggested by David Benbennick)
+       - More changes of char *'s to const char *'s when possible.
+         (David Benbennick)
+       - Fix various minor memory leaks in files.c. (David Benbennick)
+       - Fix minor problems with the operating directory code: set the
+         operating directory properly if it's specified only in a
+         nanorc file, and handle an operating directory of "/"
+         properly.  New function init_operating_dir() to handle
+         setting it both on the command line and in the nanorc file.
+         (David Benbennick)
+       - Major rewrite of color and screen update routines to fix
+         minor bugs and increase efficiency.  New function
+         set_colorpairs() for the former. (David Benbennick)
+- configure.ac:
+       - Added pt_BR to ALL_LINGUAS (Jordi).
+       - Changed --enable-color warning to be slightly less severe.
+       - Put the configure options in more or less alphabetical order,
+         and remove --enable-undo, since it doesn't do anything. (DLR)
+- files.c:
+  open_file()
+       - String change: "File "x" is a directory" -> ""x" is a
+         directory". (Jordi)
+  do_insertfile()
+       - Disallow multibuffer toggling at the "Insert File" prompt if
+         we're in both view and multibuffer mode, so as to keep proper
+         integration between the two, and make sure the toggle
+         actually works all the time otherwise.  Also, make sure
+         TOGGLE_LOAD_KEY isn't referenced when NANO_SMALL and
+         ENABLE_MULTIBUFFER are both defined. (DLR)
+  open_prevfile_void(), open_nextfile_void()
+       - Return the return values of open_prevfile() and
+         open_nextfile(), respectively, instead of (incorrectly)
+         calling them and returning 0. (DLR)
+  real_dir_from_tilde()
+       - Rework to use getpwent() exclusively and end reliance on
+         $HOME.  Adapted from equivalent code in do_rcfile(). (DLR)
+  input_tab()
+       - Most likely fixed the check marked with FIXME, so that tab
+         completion works properly when we're trying to tab-complete a
+         username and the string already contains data. (DLR)
+- global.c:
+  shortcut_init()
+       - Disable the new multibuffer toggle at the file insertion
+         prompt when NANO_SMALL and ENABLE_MULTIBUFFER are both
+         defined. (DLR)
+  thanks_for_all_the_fish()
+       - Make sure the reference to help_text is #ifdefed out when
+         --disable-help is used. (DLR)
+- move.c:
+  page_up()
+       - Fix bug where current is moved up two lines when the up arrow
+         is pressed on the top line of the edit window; this causes a
+         segfault if the top line in the edit window is the second
+         line of the file, as the line current ends up on doesn't
+         exist. (Jeff DeFouw)
+  do_down()
+       - Fix bug where, if the last line in the edit window is the
+         line before the magicline, and smooth scrolling is turned
+         off, pressing the down arrow on that last line centers the
+         cursor without updating the edit window. (Jeff DeFouw)
+- nano.c:
+  version()
+       - Put the listed configure options in more or less alphabetical
+         order. (DLR)
+  open_pipe()
+       - If we're in view mode here (in which case we're also in
+         multibuffer mode), don't set the modification flag. (DLR)
+  do_next_word(), do_prev_word()
+       - If we're on the last/first line of the file, don't center the
+         screen; Pico doesn't in the former case. (DLR)
+  do_backspace()
+       - Rework to call edit_refresh() regardless of the value of
+         current_x if ENABLE_COLOR is defined, so that multiple-line
+         color regexes are properly updated onscreen as they are in
+         do_delete(). (DLR)
+  do_delete()
+       - Rework to only call edit_refresh() unconditionally if
+         ENABLE_COLOR is defined; if it isn't, and we're not deleting
+         the end of the line, only call update_line(). (DLR)
+  do_wrap()
+       - Make sure wrapping is done properly when the number of
+         characters on the line is exactly one over the limit. (David
+         Benbennick)
+       - Restore the previous wrapping point behavior (pre 1.1.10)
+         (David Benbennick).  Minor fix by DLR to prevent spaces from
+         being added to the ends of lines ending in spaces or lines
+         ending in tabs (the latter case found by David Benbennick).
+  do_alt_speller()
+       - Readd DLR's fix to preserve marking when using the alternate
+         spell checker; it was accidentally dropped. (David
+         Benbennick)
+  do_justify()
+       - Fix cosmetic problems caused when justifying on the
+         magicline, and a minor problem where the cursor would
+         sometimes be moved to the wrong line after justification.
+         (David Benbennick)
+  main()
+       - When searching through the main shortcut list looking for a
+         shortcut key, stop searching after finding one; this avoids a
+         rare segfault. (DLR)
+- nano.h:
+       - Change search toggles for case sensitive searching and regexp
+         searching to M-C and M-R, respectively. (DLR; suggested by
+         Chris)
+       - Add support for HP-UX's curses, which doesn't seem to support
+         KEY_HOME and KEY_END.
+- nanorc.sample:
+       - Fix the c-file regex for all caps words to be extended regex
+         format ({} instead of \{\}) (found by DLR).
+       - Add a better string matching sequence that includes escaped
+         quotes (thanks to Carl E. Lindberg, who doesn't even know he
+         helped ;-).  Some unneeded \'s in that sequence removed, and
+         a new sequence to handle multi-line quotes added, by David
+         Benbennick.
+       - Add some examples for HTML and TeX files (David Benbennick).
+- rcfile.c:
+  parse_colors()
+       - Stop infinite loop when syntax doesn't begin with " char.
+- utils.c:
+  charalloc()
+       - Switch from using calloc() to using malloc(). (David
+         Benbennick)
+- faq.html:
+       - Typo fix. (DLR)
+- AUTHORS:
+       - Add David Benbennick. (Jordi and Chris)
+- TODO:
+       - Add entry in the 1.4 section for Pico's paragraph searching
+         ability (at the search prompt, ^W goes to the paragraph's
+         beginning, and ^O goes to the paragraph's end). (DLR)
+
+GNU nano 1.1.10 - 07/25/2002
+- General:
+       - Translation updates (see po/ChangeLog for details).
+       - Upgraded to gettext 0.11.2 (Jordi).
+         Removed intl/ entirely, and a few more tweaks by gettextize.
+       - i18nized a few strings used in DEBUG mode. (DLR)
+       - Some chars being assigned 0 are now assigned '\0'. (DLR)
+       - Put header file #includes in a more consistent order. (DLR)
+       - Remove some unneeded blank lines and spaces, and make some
+         spacing more consistent. (DLR)
+       - When possible, use iscntrl() to determine whether a character
+         is a control character or not. (DLR)
+       - Miscellaneous typo fixes. (DLR)
+       - Many fixes to the help browser and shortcut lists: efficiency
+         updates, consistency fixes, help text fixes and improvements,
+         and spacing improvements. (David Benbennick)
+       - Make some functions use const variables when possible, and
+         also make them static when necessary. (David Benbennick,
+         necessary redefined by Chris ;-)
+       - Add Carl Drinkwater's backup file option (-B or --backup on the
+         command line, M-B in nano's global shortcuts). If the original
+         file is unchanged from when it was loaded, it is backed up to
+         filename~; if the original file has been changed or deleted
+         since it was originally loaded, it isn't backed up.  The backup
+         file retains the permissions, owner/group, and
+         access/modification times of the original file.  This option is
+         disabled when --enable-tiny is used.  It will not back up
+         temporary files.  Minor fixes to it by David Benbennick and
+         DLR.  Changes to open_file(), add_open_file(),
+         load_open_file(), write_file(), and do_writeout().
+       - Add \n's to the ends of "filename is %s" debugging strings.
+         (Carl Drinkwater)
+       - Add the long option --quotestr as an alternative for -Q, and
+         --regexp as an alternative for -R; they were listed in nano's
+         usage information, but weren't actually in nano.  Also, display
+         "-?" as an alternative for "-h" in nano's usage information,
+         put the command line options in a more consistent (i.e. mostly
+         alphabetical) order in nano, put the long options in a more
+         consistent order in rcfile.c and nanorc.sample, don't include
+         rcfile options if their equivalent command line options are
+         disabled, and remove obsolete relative option from
+         nanorc.sample. (DLR)
+       - Change "File Name to Append/Prepend" to "File Name to
+         Append/Prepend to".  The original prompt could confusingly
+         imply that we are appending/prepending another file to the
+         current file, when we are actually appending/prepending the
+         current file to another file. (DLR)
+       - Put nano.1, nano.1.html, and nano.texi up to date, and fix a
+         few inconsistencies in them. (DLR)
+       - Typo fixes for the ChangeLog. (David Benbennick and DLR)
+       - Complete rewrite of justification code to fix some bugs and
+         improve its functionality. (David Benbennick)
+       - If a variable isn't going to be used in tiny mode, #define it
+         out when possible. (David Benbennick)
+       - Major reworking of the cutting/screen-updating code in cut.c,
+         some functions in utils.c, the cursor placement code in
+         winio.c, and many, many other areas to increase efficiency.
+         (David Benbennick)
+       - Rework handling of prompts when there's a list of partial
+         filename matches on the screen: remove kludgy case-by-case
+         handling (which didn't even handle every case), and have
+         statusq() handle it directly for all cases. (David Benbennick
+         and DLR)
+       - Fix some warnings and errors that show up when using gcc's
+         -pedantic option. (DLR)
+       - Add a comment to nanorc.sample warning that an out-of-range
+         negative value for fill can make nano die complaining that
+         the screen is too small (which may not be immediately
+         obvious). (DLR)
+       - There were some opendir() calls in files.c without
+         corresponding closedir() calls; add them. (DLR)
+       - Move align() and null_at() from nano.c to utils.c, and move
+         the openfilestruct handling functions from nano.c to files.c.
+         (DLR)
+       - In color.c, start the "#ifdef ENABLE_COLOR" block after
+         including all the header files, as rcfile.c does; this fixes
+         a warning about ANSI C'S inability to handle blank files.
+         (DLR)
+       - Add new function is_cntrl_char() as a wrapper for iscntrl();
+         this is needed to treat ASCII 0x80-0x9f as control characters
+         consistently.  (Without this, they will only be treated as
+         such when gettext is used; when it isn't used, they will be
+         printed as-is and be interpreted as commands by xterm, which
+         will corrupt the display.) (DLR)
+       - Add command line option -I/--ignorercfiles to ignore
+         $SYSCONFDIR/nanorc and ~/.nanorc. (Carl Drinkwater).   Fix to
+         parsing getopt args (DLR).
+       - Fix minor bugs with importing certain text files in Mac
+         format. (DLR)
+- files.c:
+  append_slash_if_dir(), input_tab()
+       - Changed variable names: lastWasTab -> lastwastab, matchBuf ->
+         matchbuf. (DLR)
+  check_operating_dir()
+       - Memory leak fix. (David Benbennick)
+  check_writable_directory()
+       - Optimizations (David Benbennick).
+  cwd_tab_completion()
+       - Changed a variable name: dirName -> dirname. (DLR)
+  do_browser()
+       - Optimizations and mouse selection fixes (David Benbennick).
+  do_writeout()
+       - Fix problem with formatstr's being defined as NULL when
+         --enable-tiny is used.  Since formatstr isn't ever used in tiny
+         mode, don't bother even creating the variable. (David
+         Benbennick and DLR)
+  do_insertfile()
+       - Memory leak fix (accidentally dropped 1st time).
+         (David Benbennick).
+  get_full_path()
+       - Memory leak fix.  Also, make it properly interpret ~/ notation
+         so, among other things, the option "--operatingdir ~" works.
+         (David Benbennick)
+       - More optimizations (David Benbennick).
+  new_file()
+       - Make sure current_x is zero; this fixes a problem where the
+         current cursor position wasn't reset when reading in a file in
+         multibuffer mode. (David Benbennick)
+       - Use make_new_node rather than setting up fileage by hand
+         (David Benbennick).
+  read_file(), read_line()
+       - Rework to properly handle nulls in the input file, fix
+         detection of binary files to properly mark a file as binary if
+         the only binary characters it contains are ASCII 127's, and
+         after reading the last line of a file that doesn't end in a
+         newline, increment totsize.  Remove previous kludge to set
+         totsize properly. (DLR)
+  write_file()
+       - Rework to properly handle nulls in the input file.  When
+         appending/prepending, don't change the current file's name to
+         the name of the file it's being appended/prepended to.  When
+         writing a marked selection to a file, save and restore totsize
+         so it isn't decreased by the size of the selection afterward.
+         (DLR)
+       - Optimizations (David Benbennick).
+- global.c:
+  free_toggles()
+       - Only include if we're not using tiny mode. (David Benbennick)
+  toggle_init()
+       - Remove global entries for search toggles, as they aren't really
+         global. (DLR)
+       - Don't reinititialize the toggles if they've already been
+         initialized; it's unnecessary and even causes a segfault in
+         do_toggle() if Pico emulation mode is the toggle in question.
+         Don't free the toggles here, either; it's unnecessary after the
+         above change. (David Benbennick)
+       - If wrapping is disabled, don't include the toggle for it.
+         (DLR)
+  shortcut_init()
+       - Rework IFHELP macro (David Benbennick).
+- move.c
+  page_down(), page_up()
+       - Put sanity checks for current_x back in, to avoid rare
+         segfaults (oops). Now, however, they are only called when
+         placewewant is zero instead of being called unconditionally;
+         see changes to winio.c:actual_x_from_start() below. (DLR)
+- nanorc.sample:
+       - Put in much less crappy example regex rules for c-file.
+- nano.c:
+  clear_filename()
+       - Remove this function, as it has unneeded functionality, is
+         short enough to be inlined, and is only called in two spots
+         anyway. (DLR)
+  die()
+       - Rework slightly to remove redundant printing of last message
+         and print all messages after resetting the terminal. (DLR)
+  do_backspace()
+       - Make sure placewewant is set properly, and that the mark is
+         moved backwards. (David Benbennick)
+  do_char()
+       - Fix a problem where, if ENABLE_COLOR wasn't used, typing
+         characters on a marked line before the beginning of the mark
+         would make the highlight short by one. (David Benbennick)
+  do_cont()
+       - Handle the case where the window was resized while we were
+         stopped. (David Benbennick)
+  do_delete()
+       - Make sure placewewant is set properly, to match Pico's
+         behavior. (DLR)
+  do_int_spell(), do_alt_spell()
+       - Rework to save the marked selection before doing spell checking
+         and restore it afterward. (DLR)
+  do_next_word(), do_prev_word()
+       - Fix a problem where highlighting isn't done properly after
+         calling either of these, and another problem where the cursor
+         would move back too far in certain cases with do_prev_word().
+         (David Benbennick)
+  do_toggle()
+       - Since the search mode toggles aren't global anymore, we don't
+         need to explicitly block them here anymore (which will end up
+         blocking the global backup mode toggle, which is the same as
+         the backwards search toggle). (DLR)
+  do_wrap()
+       - fill fixes and 'two short word wrap' bug (David Benbennick).
+  global_init()
+       - Call die_too_small() when fill is 0. (DLR)
+  handle_sigwinch()
+       - Make sure we adjust fill when the window is resized. (David
+         Benbennick)
+       - Call die_too_small() when fill is 0. (DLR)
+  help_init()
+       - Since the return value of snprintf() isn't well defined, use
+         sprintf() instead. (David Benbennick)
+  main()
+       - Rework to blank out filename manually before doing anything
+         with it, instead of calling clear_filename() in two places.
+         Make startline an int instead of a long, since it's supposed to
+         hold a line number. (DLR)
+       - Properly handle multiple -r settings on the command line. (Carl
+         Drinkwater)
+       - Fix a bug that prevented file insertion via the Insert key
+         from working at all when --enable-multibuffer wasn't used
+         (oops). (DLR)
+       - Adapt David Benbennick's fix to get fill to accept negative
+         numbers properly in parse_rcfile() (see below) to the
+         handlers for the -r and -T options as well, so that -r/-T 0
+         can be treated separately from -r/-T string. (DLR)
+       - Fix so that Esc-Esc-Space is properly treated as Ctrl-Space.
+         (DLR)
+  usage()
+       - List the options that are ignored for the purpose of Pico
+         compatibility, and make some minor consistency fixes. (DLR)
+- nano.h:
+       - Fix some space/tab formatting for flags (DLR).
+- proto.h:
+       - Remove external declaration of the global int fill, since
+         it's now static. (DLR)
+- rcfile.c:
+  parse_rcfile()
+       - Add David Benbennick's fix that allows fill to accept
+         negative numbers properly.  Specifically, use strtol() there
+         instead of atoi() so that errors can be detected.  Also
+         adapted for tabsize by DLR.
+  parse_next_regex(), colortoint()
+       - Only include if ENABLE_COLOR is defined. (DLR)
+- search.c:
+  search_init()
+       - Since the search mode toggles aren't global anymore, rework the
+         part of this function referencing them so that they still work.
+         (DLR)
+       - Remove unneeded toggles variable. (David Benbennick)
+       - Fix a problem where the first character of buf was overwritten
+         if the last search string was one third the number of columns
+         plus one. (David Benbennick)
+  findnextstr()
+       - Update the current line at current_x if we don't find a match.
+         Also, pass current_x_find to strstrwrapper() so we know whether
+         we're at the beginning of a string or not (see changes to
+         strstrwrapper() below), and reset it between lines. (DLR)
+  do_gotoline():
+       - Make sure placewewant is zero after we go to a line. (David
+         Benbennick)
+  do_gotopos()
+       - Simplify the sanity check to only put x within the range of the
+         current line; don't call actual_x() anymore. (DLR)
+- utils.c:
+       - Add sunder() and unsunder().  These functions convert nulls
+         other than the terminating null in strings to newlines and
+         back; they're used to handle null characters in files properly.
+         (DLR)
+  lowercase()
+       - Remove, since it isn't actually used anywhere. (David
+         Benbennick)
+  strstrwrapper()
+       - Set REG_NOTBOL when we're not at the beginning of a
+         string, to avoid false positives when searching for regular
+         expressions prefixed with ^. Make it take a new parameter,
+         line_pos, to determine where we are in the string. (DLR)
+  check_wildcard_match()
+       - Changed variable names: retryPat -> retrypat, retryText ->
+         retrytext. (DLR)
+- winio.c:
+  actual_x_from_start()
+       - Overhaul to make cursor placement more like that of Pico: add
+         sanity check for i, and then place i as close to the value of
+         xplus column as possible.  This change is most noticeable when
+         moving down through binary files. (DLR)
+  do_credits()
+       - Fix for the i18ned credits so it will compile with -pedantic
+         (DLR & Chris).
+  do_help()
+       - Add support for the handled keyboard escape sequences in the
+         help menu, as they are needed with some terminals (e.g. xterm
+         with TERM=ansi). (DLR)
+  edit_refresh()
+       - Turn on leaveok() so the cursor doesn't bounce around the
+         screen while we're updating it (most noticeable when using
+         color syntax over a very slow connection).
+  do_replace_highlight()
+       - When using regexps, make sure the highlight is the length of
+         the search result and not the regexp string. (DLR)
+  nanogetstr()
+       - After the user presses Enter at the prompt, refresh the edit
+         window in case there's a list of possible filename matches
+         (left over from attempted tab completion) on it. (DLR)
+  statusbar()
+       - Limit statusbar display to the number of columns less four, and
+         don't allow it to go over its original row. (David Benbennick)
+  titlebar()
+       - Tweak text spacing and printing so that the titlebar text looks
+         better on smaller terminals. (Carl Drinkwater)
+  update_line()
+       - When marking control characters, make sure the mark moves
+         forward by two characters instead of one.  Rework control
+         character display routine to display newlines within the line
+         (which should never occur under normal circumstances; they will
+         only be there if the line had nulls in it and was unsunder()ed
+         beforehand) as ^@'s. (DLR)
+       - Fix to properly treat ASCII 128-159 as control characters.
+         (DLR)
+- configure.ac:
+       - Added ms to ALL_LINGUAS (Jordi).
+       - Merged acconfig.h in (Jordi).
+       - Fixed so that --enable-debug defines DEBUG and undefines
+         NDEBUG. (Carl Drinkwater)
+- THANKS:
+       - Completed a bit (Jordi).
+       - Fixed David Benbennick's email address. (David Benbennick)
+       - Typo fix. (DLR)
+
+GNU nano 1.1.9 - 05/12/2002
+- General:
+       - Typos n misspellings all over the place (David Benbennick).
+       - Allow --tiny and --multibuffer to cooperate (who the heck
+         would want this is beyond me but ;-).  Changes to
+         configure.ac, global.c, ,  (David Benbennick).
+       - Change to openfilestruct for multibuffer mode by DLR.
+         New functions nano.c:make_new_opennode(), free_openfilestruct(),
+         delete_opennode(), unlink_opennode(), splice_opennode(),
+         new struct openfilestruct in nano.h.
+       - Preliminary prepend code.  This may be a bad idea, but I've
+         been wanting it for awhile now and we'll see how bad it messes
+         everything up.  Changes to files.c:do_writeout(), write_file().
+         Fixes for O_CREAT & append compatibility by David Benbennick.
+       - Change from read() and write() to file streams by Jay Carlson.
+         Allows OS to implement read and write ahead rather than making
+         us do it.  Hopefully merged properly.
+       - More cleanups with DISABLE flags, better free_shortcutage and
+         free_toggle, and get rid of unnecessary variable decls with
+         NANO_SMALL in shortcut_init() by David Benbennick.
+       - Added "syntax" command to .nanorc file, to allow multiple
+         syntaxes.  New function color.c:update_color(), calls in various
+         files.c places, syntaxtype struct, global variables syntaxes,
+         syntaxfile_regexp and synfilematches.  Global flag -Y ,--syntax
+         to specify the type on the command line, if there's no good
+         filename regex to use.  Global variable syntaxstr.
+       - Changed many strcmp()s and strcpy()s to their equivalent
+         '\0' counterparts (David Lawrence Ramsey).
+       - Many changes to allow marked cutting to work with multiple
+         file buffers: changes to openfilestruct type in nano.h and
+         files.c (David Lawrence Ramsey).
+       - Changed NANO_SMALL to ENABLE_NLS for gettext disabling
+         (David Benbennick).
+       - Move next_key and pev_key definitions out of main() and into
+         global.c where they belong (David Benbennick).
+- color.c:
+  update_color()
+       - Add regfree call here to avoid memory leaks.
+- configure.ac:
+       - Define NDEBUG to silence asserts (David Benbennick).
+- files.c:
+  get_next_filename()
+       - Optimizations (David Benbennick).
+- global.c:
+  shortcut_init()
+       - Add missing free_shortcutage()s (David Benbennick).
+  thanks_for_all_the_fish()
+       - Only defined when using DEBUG, makes sense (David Benbennick).
+- nano.c:
+  die_save_file()
+       - Add missing free (David Benbennick).
+  do_justify()
+       - Optimizations (David Benbennick).
+  do_wrap()
+       - Complete rewrite (David Benbennick).
+  help_init()
+       - A little less readable, a lot shorter :-) (David Benbennick).
+       - Fix Meta-A not getting capitalized, and convert the ASCII
+         #s to their character equivalent.
+  main()
+       - Changed charalloc(), strcpy()s to mallocstrcpy()s.
+- nano.h:
+       - NANO_ALT_COMMAND and NANO_ALT_PERIOD were reversed (lol)
+         (David Benbennick).
+- nano.spec.in:
+       - Don't put Chris' name as the Packager in the distribution
+         by default (Im an idiot).
+       - Fixed Source line (David Lawrence Ramsey).
+- nano.1:
+       - Changed references to Debian GNU/Linux to Debian GNU (Jordi).
+- nano.1.html:
+       - Updated for -Y option (David Lawrence Ramsey).
+- rcfile.c:
+       - Made some rc file errors less fatal.
+       - Added in my patch for getpwent instead of relying on $HOME
+         (David Lawrence Ramsey).
+- winio.c:
+  edit_add()
+       - Changed some syntax highlight computations for the sake of COLS.
+       - Add in the necessary regfree() calls to stop nano from leaking
+         memory like a sieve when using color syntax highlighting :-)
+  bottombars(), onekey()
+       - Cleanups (David Benbennick).
+- po/gl.po:
+       - Galician translation updates (Jacobo Tarrio).
+- po/de.po:
+       - German translation updates (Michael Piefel).
+- po/fr.po:
+       - French translation updates (Jean-Philippe GuĂ©rard).
+- po/ca.po, po/es.po:
+       - Catalan and Spanish translation updates (Jordi).
+- po/sv.po:
+       - Swedish translation updates (Christian Rose).
+- po/nl.po:
+       - Dutch translation updates (Guus Sliepen).
+- po/it.po:
+       - Italian translation updates (Marco Colombo).
+- po/ru.po, po/uk.po:
+       - Russian and Ukrainian translation updates (Sergey A. Ribalchenko).
+- po/id.po:
+       - Indonesian translation updates (Tedi Heriyanto).
+- po/sv.po:
+       - Swedish translation updates (Christian Rose).
+
+GNU nano 1.1.8 - 03/30/2002
+- General
+       - Type misalignments and mem leaks in renumber_all, do_justify
+         and do_spell (Rocco & Steven Kneizys).
+       - New "External Command" code, originally by Dwayne Rightler,
+         various fixes and changes by Chris, Rocco and David Benbennick.
+         New function nano.c:open_pipe() and signal handler cancel_fork(),
+         changes to do_insertfile(), new list extcmd_list, cmd is
+         ^X after ^R.
+       - Added separate regex variable (color_regex and colormatches)
+         so that color syntax and regex search/replace can coexist.
+       - Added new nano.spec file from Brett <brett@bad-sports.com>,
+         added because maintaining the spec file is getting to be a large
+         hassle ;)
+- files.c:
+  check_writable_directory()
+       - Stat full_path, not path (Steven Kneizys).
+  open_pipe()
+       - I18nize the pipe error (DLR).
+  do_insertfile()
+       - Handle cancel from ExtCmd properly (David Benbennick).
+  read_file()
+       - Abort if we read a file of 0 lines (num_lines == 0), fixes BUG #70.
+       - Reverse tests to stop segfault on editing a new file of 0
+         lines (David Benbennick)
+       - Change input var to one char instead of array (David Benbennick).
+       - Move NO_CONVERT check up so chars get read in properly (DLR).
+- nano.c:
+  do_justify()
+       - More fixes for indented justify (David Benbennick).
+  do_int_speller()
+       - Fix zombie processes and spelling buffer issues (Rocco Corsi).
+  help_init()
+       - Capitalize Meta altkeys.
+       - Various fixes and string changes.
+  main()
+       - Put NANO_SMALL defines around toggle pointer (noticed by Jordi);
+  usage()
+       - Rewritten to encompass systems with and without GETOPT_LONG.
+         New function print1opt does most of the dirty work, stops
+         duplication of effort and eases translator's jobs.  Also
+         breaks all the current translations ;-)
+- proto.h:
+       - Missing externs (Rocco).
+- rcfile.c:
+  do_rcfile()
+       - Reset lineno between system and local .nanorc file.
+       - Fix errno->strerror(errno) mismatch.
+  parse_rcfile()
+       - Don't use i for both for loop and atoi(), fixes lots of
+         potential crashes, 1st reported by Jean-Philippe GuĂ©rard.
+  rcfile_error()
+       - Don't print out the file name if we haven't opened the file
+        yet (lineno == 0).
+- search.c:
+  search_init()
+       - Fix a missing free (Rocco).
+  do_gotoline()
+       - Set placewewant if we actually move to a different line.
+- utils.c:
+  stristr()
+       - Defined regardless of NANO_SMALL (noticed by Jordi).
+  nperror()
+       - New wrapper for perror (David Benbennick).
+- winio.c:
+  do_credits()
+       - Add Thomas Dickey.
+  do_cursorpos()
+       - Make col numbering start from 1 (suggested by Andrew Ho).
+  update_line(), xpt()
+       - Add check for 127 (DLR).
+- po/sv.po:
+       - Swedish translation updates (Christian Rose).
+- po/de.po:
+       - German translation updates (Michael Piefel).
+- po/id.po:
+       - Indonesian translation updates (Tedi Heriyanto).
+- po/it.po:
+       - Serious typo.
+- po/ca.po, po/es.po:
+       - Catalan and Spanish translation updates (Jordi).
+       - Typo (DLR).
+- po/fr.po:
+       - French translation updates (Jean-Philippe GuĂ©rard).
+- po/gl.po:
+       - Galician translation updates (Jacobo Tarrio).
+- po/uk.po, po/ru.po:
+       - Russian and Ukrainian translation updates (Sergey A. Ribalchenko).
+- po/pl.po:
+       - Polish translation updates (Wojciech Kotwica).
+- po/fr.po:
+       - French translation updates (Jean-Philippe GuĂ©rard).
+- po/it.po:
+       - Italian translation updates (Marco Colombo).
+- po/da.po:
+       - Danish translation updates (Keld Simonsen).
+       
+GNU nano 1.1.7 - 03/05/2002
+- General
+       - malloc->calloc, etc cleanups (DLR).
+       - New option, noconvert (-N, --noconvert) to completely stop
+         the translation of files from DOS or Mac format (DLR).
+       - New functions check_writable_directory() and safe_tempnam()
+         to get around the tempnam warning. More improvements (DLR)
+         Still needs testing.
+       - Added DOS and Mac format options to write file routine.
+         Changes to shortcut_init() and do_writeout(). 
+       - Removed stupid static definitions of toggles and shortcut
+         lists.  Many changes to shortcut_init(), toggle_init(),
+         statusq(), nanogetstr(), main(), and many other places.
+       - Multibuffer mode now allows multiple empty filenames.
+         Changes to add_open_files(), removed open_file_dup_search(),
+         open_file_dup_fix(), etc (DLR).
+       - New code to handle multiple .save files.  Changes to
+         die_save_file(), new function files.c:get_next_filename()
+         and utils.c:num_of_digits(). (Dwayne Rightler, DLR & Chris)
+       - Many malloc() cleanups and files.c tweaks by Steven Kneizys,
+         new functions utils.c:free_shortcutage() (got to love that
+         name!) & free_toggles(), and big cleanup program
+         thanks_for_all_the_fish() (originally
+         thanks_for_the_memories()).  Mods to shortcut_init() by Chris.
+       - Preliminary quoting support for justify.  New arg -Q,
+         --quotestr, changes to do_justify(), global variable
+         quotestr().
+- Makefile.am:
+       - Add SYSCONFDIR to DEFS, so we can have a $SYSCONFDIR/nanorc.
+       - Change localedir line to 1.0's version.
+       - Moved m4/ stuff to its own m4/Makefile.am.
+- m4/aclocal_inc.m4:
+       - New macro AM_ACLOCAL_INCLUDE, tells configure.ac where to look
+         for macros (Gergely Nagy).
+- configure.in:
+       - Renamed to configure.ac.
+- configure.ac:
+       - Moved to autoconf 2.52 (Jeff Bailey).
+       - Added call to AM_ACLOCAL_INCLUDE.
+- files.c:
+  read_byte()
+       - Added check for control characters (indicative of a binary
+         file), set NO_CONVERT if found (fixes by DLR).
+ do_insertfile()
+       - Added support for -o in prompt (Steven Kneizys).
+- global.c:
+       - Move openprev and opennext functions to shortcuts, they really
+         aren't toggles (DLR).
+- rcfile.c:
+  parse_next_regex()
+       - Allow " symbol to be in regex without leading \ by checking
+         for *ptr+1 is not the end of the regex.
+  do_rcfile()
+       - Parse rcfile in $SYSCONFDIR as well (Dwayne Rightler).
+- nano.1:
+       - Added Noconvert option to man page (DLR).
+- nano.c:
+  justify_format(), do_justify()
+        - Various fixes for starting blank spaces, spaces after
+          punctuation, & segfault with quoting strings (David Benbennick).
+  do_justify()
+       - Don't continue to justify string if it's indented more
+         (quoting wise) than the beginning of the justification.
+  help_init()
+       - Added message re: having multiple blank buffers (DLR).
+  main()
+       - Add 407 as equiv of 26, this seems to be sent when using
+         ^Z in linux console with keypad() enabled.
+- rcfile.c:
+       - Get rid of unneeded relativechars from rcopts (DLR).
+- search.c
+  do_replace(), findnextstr()
+       - Fixes for various search issues (Ken Tyler)
+- winio.c:
+  do_cursorpos()
+       - Rewritten to show col place as well as character place, without
+         needing an entirely separate flag.
+  bottombars(), onekey()
+       - Make bottom list dynamic with screen size (Guus Sliepen & Chris).
+       - More cleanups w/width of shortcut.
+- utils.c:
+  strcasestr(),revstrcasestr()
+       - Renamed to stristr and revstristr since strcasestr has not
+         been confirmed to be detected properly on various Linux
+         systems.
+  strstrwrapper()
+       - NANO_SMALL test was backwards (Ken Tyler).
+- winio.c:
+  strlenpt()
+        - Changed main function to strnlenpt() for new justify changes,
+          original function now just a stub.
+- nanorc.sample
+       - Mention unset in the sample nanorc.
+- po/ca.po, po/es.po:
+       - Catalan and Spanish translation updates (Jordi).
+- po/sv.po:
+       - Swedish translation updates (Christian Rose).
+- po/fr.po:
+       - French translation updates (Jean-Philippe GuĂ©rard).
+- po/nn.po:
+       - Norwegian nynorsk translation updates (Kjetil Torgrim Homme).
+- po/de.po:
+       - German translation updates (Michael Piefel).
+- po/it.po:
+       - Italian translation updates (Marco Colombo).
+- po/cs.po:
+       - Partial Czech translation updates (Vaclav Haisman).
+- po/hu.po:
+       - Hungarian translation updates, or to be precise, rewrite
+         (Gergely Nagy).
+- po/uk.po, po/ru.po:
+       - Russian and Ukrainian translation updates (Sergey A. Ribalchenko).
+- po/da.po:
+       - Danish translation updates (Keld Simonsen).
+- po/nb.po:
+       - Norwegian bokmĂĄl translation updates (Stig E Sandoe).
+- po/nl.po:
+       - Dutch translation updates (Guus Sliepen).
+- po/pl.po:
+       - Polish translation updates (Wojciech Kotwica).
+
+nano-1.1.6 - 01/25/2002
+- General
+       - Add Meta-A as alternate keystroke for ^^ for people with
+         non-US keyboards.
+       - Add Alt-G (NANO_ALT_GOTO_KEY) as alternate for goto dir in
+         browser.
+       - Better partial word checking code. New function
+         search.c:is_whole_word(), changes to findnextstr(),
+         and nano.c:do_int_spell_fix() (Rocco Corsi).
+       - Added multiple-line regex support.  Format in .nanorc is
+         start="regex" end="regex".  Cleaned up nanorc:parse_colors(),
+         added parse_next_regex(), changes to edit_add in winio.c(),
+         changes to colortype, cleaning up some old cruft.
+       - Upgrade to gettext 0.10.40, probably broke everything again :)
+       - Upgraded to and then downgraded from automake 1.5, as there
+         are severe security implications.
+- color.c:
+  do_colorinit()
+       - Moved some comments and braces around so color can work
+         w/slang (DLR).
+- global.c:
+  shorcut_init()
+       - Replace hard coded ALT_G and ALT_H values in the replace
+         and goto shortcuts with their macro counterparts NANO_ALT_*_KEY.      
+- nano.c:
+  usage()
+       - Remove extra \n in --keypad description (Jordi).
+  main()
+       - Check that alt value is an alpha char before comparing to
+         val - 32, fixes Alt-R calling doprev instead of replace.
+  do_char()
+       - Run edit_refresh() if ENABLE_COLOR is defined so adding
+         multi-liners will update (e.g. /* in C).
+  do_int_spell_fix()
+       - Temporarily unset REVERSE_SEARCH if it's set (Rocco Corsi).
+  do_suspend()
+       - Call tcsetattr() to restore the old terminal settings, so
+         tcsh can use ^C after suspend for example (fixes BUG #68).
+  do_wrap()
+       - Move "right" increment to part where new line is created,
+         should change (fix?) some wrapping problems with autoindent.
+  version()
+       - Show --enable-multibuffer independently of --enable-extra being
+         compiled in (Jordi).
+- nano.h:
+       - Changed color struct slightly, because of previous issue with
+         applying color painting in order, the "str" portion was
+         useless.  Renamed "val" in colortype to "start", added "end"
+         for multi-line color strings.
+- rcfile.c:
+  General
+       - Took silly variables being passed everywhere like lineno and
+         filename and made them static variables.
+       - Re-indented.
+       - Added stdarg.h to includes.
+  rcfile_error()
+       - Now automatically prepends the "error in line blah at foo"
+         message to error messages.
+  parse_colors()
+       - Added section for computing "end" section.
+  parse_next_word()
+       - Added support for "\ ", in word parsing.
+- search.c:
+  do_search()
+       - Check position of cursor and return value of findnextstr and
+         tell user if search string only occurs once (Rocco & Chris).
+  findnextstr()
+       - Fix off by one in check for wrap around (Rocco Corsi).
+- winio.c:
+  edit_refresh()
+       - Rename lines to nlines to fix AIX breakage (reported by
+         Dennis Cranston, re-reported by arh14@cornell.edu).
+  edit_add()
+       - Refuse to honor regex matches of 0 characters when applying
+         color highlighting, and say so on the statusbar.  Otherwise
+         we go into an infinite loop, the error message should clue
+         users into the fact that their regex is doing something bad.
+- THANKS:
+       - Oops, correct Eivind's entry. His translation was Norwegian nynorsk,
+         not bokmĂĄl as we claimed (Jordi).
+- .cvsignore
+       - Added config.guess config.sub install-sh missing & mkinstalldirs
+- po/ca.po, po/es.po:
+       - Catalan and Spanish translation updates (Jordi).
+- po/sv.po:
+       - Swedish translation update (Christian Rose).
+- po/de.po:
+       - German translation update (Michael Piefel).
+- po/fr.po:
+       - French translation update (Jean-Philippe GuĂ©rard).
+- po/ru.po, po/uk.po:
+       - Russian and Ukrainian translation updates (Sergey A. Ribalchenko).
+- po/no.po:
+       - Moved to po/nn.po, which is the correct name for Norwegian nynorsk.
+- po/nn.po:
+       - Norwegian nynorsk translation updates (Kjetil Torgrim Homme).
+- po/nb.po:
+       - New Norwegian bokmĂĄl translation (Stig E Sandoe <stig@ii.uib.no>).
+- po/da.po:
+       - Danish translation update (Keld Simonsen).
+
+nano-1.1.5 - 01/05/2002
+- General
+       - Better integration of View mode (-v) and multibuffer.
+         Fixes to new_file(), do_insertfile_void(), shortcut_init()
+         (David Lawrence Ramsey).
+       - The keypad handling has changed (again).  We now use
+         the keypad() function by default.  New flag -K, --keypad
+         allows the old behavior for those using the keypad arrow keys
+         and rxvt-based terminals.
+       - Updated copyright notices to 2002 (Jordi).
+- nano.c:
+  die()
+       - Only save files that were modified (David Lawrence Ramsey).
+  do_cont()
+       - Run signal_init() after doupdate() so ^Y wont suddenly
+         start suspending after returning from ^Z suspend in Hurd.
+  signal_init()
+       - Unconditionally disable VDSUSP if it exists, stops ^Y
+         suspending nano on the Hurd.
+  help_init()
+       - Typo fixes in help strings (Jordi).
+       - New variable helplen needed cause currslen is not always
+         the length we want (bug found by David Lawrence Ramsey).
+       - Typo in file switch string (found by David Lawrence Ramsey).
+  main()
+       - Handle Alt prev/next file keys (,.), as well as normal ones (<>).
+       - Handle OS-specific insert keys by jump to do_insertkey (David
+         Lawrence Ramsey).
+- files.c:
+  read_file()
+       - Make conversion message less confusing (suggested by Jordi).
+- rcfile.c:
+  parse_next_word()
+       - Get rid of ptr == \n check to abort, screws up option
+         parsing (bug found by David Lawrence Ramsey)
+- winio.c:
+  update_line()
+       - set realdata check to >= 1 && <= 31, lack of > 0 check screwed
+         high ascii characters.
+  titlebar()
+       - gettextized a pair of strings.
+  bottombars()
+       - Get rid of that annoying reversed line when color is on! :)
+  edit_add()
+       - Little fixes to let color highlights not bleed onto the next line.
+  statusq()
+       - Initialize "list".
+- m4/gettext.m4:
+       - Back down to 1.1.3 version.
+- faq.html:
+       - Various link updates and other fixes (Aaron S. Hawley).
+       - Typo fixes (David Lawrence Ramsey).
+- AUTHORS
+       - Add DLR.
+- po/sv.po:
+       - Swedish translation update (Christian Rose).
+- po/ru.po, po/uk.po:
+       - Russian and Ukrainian translations updates (Sergey A. Ribalchenko).
+- po/ca.po, po/es.po:
+       - Catalan and Spanish translations updates (Jordi).
+- po/pl.po:
+       - New Polish, partial translation, by Cezary Sliwa <sliwa@cft.edu.pl>.
+       - Wojciech Kotwica <wkotwica@post.pl> completed it and is the new
+         official maintainer.
+- po/fr.po:
+       - French translation update (Michel Robitaille).
+- po/gl.po:
+       - Galician translation update (Jacobo TarrĂ­o).
+- po/it.po:
+       - Italian translation update (Marco Colombo).
+- po/de.po:
+       - German translation update (Michael Piefel).
+- po/fr.po:
+       - French translation update (Jean-Philippe GuĂ©rard).
+
+nano-1.1.4 - 12/11/2001
+- General
+       - Preliminary syntax highlighting support.  New functions
+         colortoint() and parse_color() in rcfile.c, new code in
+         edit_add() in winio.c to actually do the highlighting.  It's
+         not even close to pretty yet :P
+       - Many int/long alignments (David Lawrence Ramsey).
+- files.c:
+       - Fixes for tab completion and screen refresh (David Lawrence
+         Ramsey).
+  add_open_file()
+       - Get rid of unsetting MARK_ISSET because otherwise writing
+         marked text will automatically unset the marker with
+         multibuffer enabled.
+- global.c:
+       - Define currshortcut and currslen when either DISABLE_MOUSE
+         or DISABLE_HELP or DISABLE_BROWSER is not defined (Silvan
+         Minghetti).
+- nano.c:
+  main()
+       - Add Esc-[-[IGL] keys for FreeBSD Console (PgUp,PgDn,Insert).
+        - Added better Hurd support for function keys (Alt-V,U,9,@,F).
+  signal_init()
+        - do SIG_IGN for the SIGTSTP sigaction regardless of whether
+          we have _POSIX_VDISABLE or not (more Hurd fixes)
+  help_init()
+       - Typo fixes and additions to the new help texts.
+  do_curpos()
+       - Now takes arg for constant updating to always show the cursor
+         position (David Lawrence Ramsey).
+  do_wrap()
+       - Many fixes (David Lawrence Ramsey).
+  do_spell()
+       - Dont prompt for replace if we don't change the word in
+         question (Rocco Corsi).
+- po/de.po:
+       - German translation updates (Karl Eichwalder).
+- po/ru.po:
+       - Russian translation updates (Sergey A. Ribalchenko).
+- po/sv.po:
+       - Swedish translation updates (Christian Rose).
+- po/da.po:
+       - Danish translation updates (Keld Simonse).
+- po/es.po:
+       - Spanish translation updates (Jordi).
+- po/fr.po:
+       - French translation updates (Michel Robitaille).
+- m4/gettext.m4:
+       - diff against mutt 1.2.5's gettext.m4.
+
+nano-1.1.3 - 10/26/2001
+- General
+       - Finally wrote function-specific help mode.  Changes to
+         nano.c:help_init() and winio.c:do_help().  Changed
+         currshortcut and currslen #ifdefs to depend on both
+         DISABLE_HELP and DISABLE_MOUSE being defined to not
+         include.  Changed all the shortcuts and lengths.
+       - Fixed null_at to ACTUALLY DO SOMETHING with its arg.  Again,
+         this was causing nasty errors if the call to nrealloc moved
+         where the data was located.
+       - Changed header comments to say "version 2" instead of "version
+         1" as the COPYING file is actually version 2 of the GPL (bug
+         noticed by Jordi Mallach).
+- cut.c:
+  do_cut_text()
+       -  Check to see whether marked text is contained within edit
+          window and if so only do an edit_refresh (variable dontupdate
+          replaces cuttingpartialline).
+  do_uncut_text()
+       - Similar display fixes (David Lawrence Ramsey).
+- faq.html
+       - Removed nano-editor.org FTP site address [deprecated] and added
+       the GNU one.
+- files.c:
+       - Added status messages for converted DOS and Mac files.
+         People should know that their file wasnt normally formatted.  
+  load_file()
+       - Status message when trying to load an already loaded file with multiple
+         buffers (David Lawrence Ramsey).
+  read_file()
+       - Get rid of useless linetemp variable and name num_lines int
+         (David Lawrence Ramsey).
+- nano.c:
+       - New function do_prev_word, similar to do_next_word.  Hard coded as
+         Alt-space, as next word is hard coded as control-space. Fixed
+         goofy logic setting x pos to value of last line when hitting the
+         beginning of first line, prog should simply abort.  Added
+         the #ifdefs around the code in main().
+- nano.h:
+       - Additional #define, SMALL_TOO to determine how long
+         MAIN_LIST_LEN is.  We need this because of the find matching
+         bracket code.
+  main()
+       - Moved #ifndef NANO_SMALL down past the case 0: line so
+         control-space doesn't insert a \0 (ack!)
+- rcfile.c:
+       - Fix incorrect number of rc options (David Lawrence Ramsey).
+- po/sv.po:
+       - Updated Swedish translation (Christian Rose).
+- po/da.po:
+       - Updated Danish translation (Keld Simonsen).
+- po/es.po:
+       - Style updates to Spanish translation (Santiago Vila).
+- po/ru.po, po/uk.po:
+       - Updated Russian and Ukrainian translation (Sergey A. Ribalchenko).
+
+nano-1.1.2 - 10/03/2001
+- General
+       - Added BUGS #63 & 64.  Fixes in search_init() and nanogetstr(),
+         new flag CLEAR_BACKUPSTRING because there's no easy way to
+         clear the backupstring without making it global (messy), so we
+         use a flag instead (just as messy?)
+       - --enable-tiny now leaves out the Auto Indent code, do you really
+         need that on a bootdisk? =-)
+       - New flag -o, --operatingdir, similar to Pico's -o mode.  New
+         function check_operating_dir(), changes to load_file (arg),
+         open_file_dup_search (arg), new function do_gotopos for -F
+         (David Lawrence Ramsey).
+       - Code to read/write dos formatted files.  Massive amounts of
+         new code in read_line and write_file.  New cmdline flag
+         (-D --dos) to automatically write the file in DOS format,
+         regardless of the original format.
+       - Mac file writing supported too.  Flag -M, --mac.  Toggle
+         Meta-O (MacOS? OS-X? =-)
+       - New smooth scroll code by Ken Tyler.  New flag -S, --smooth,
+         changes to page_up() and page_down().  Many fixes to paging by
+         David Lawrence Ramsey.
+       - Bracket (brace, parens, etc) matching code by Ken Tyler.
+         New functions do_find_bracket(), changes to findnextstr(),
+         command is Meta-] (hope you dont mind since I already sold off
+         Meta-O to the MacOS file code Ken...) Fixes to bracket_msg
+         by DLR.
+       - Call do_gotopos from do_alt_spell() to keep position
+         consistent when invoking alt speller (DLR).
+       - Readded DISABLE_CURPOS because in certain instances (like
+         all the "Search Wrapped" lines) the cursor position will
+         be different yet we don't want the cursor position displayed.
+       - Take control-space out of -tiny build, unneeded.
+- cut.c:
+  cut_marked_segment()
+       - Add magic line when cutting a selection including filebot
+         (discovered by DLR, fixed by DLR & Chris, fixes BUG #66).
+  do_cut_text()
+       - Don't recenter the line when cutting one line (DLR) (Bug #65).
+- faq.html:
+       - Notes about the Free Translation Project.
+       - Debian additions.
+- files.c:
+  do_writeout()
+       - Expanded strings to not use %s and ?: to determine
+         write/append string to be nice to translators.
+  new_file()
+       - Initialize totsize (DLR).
+- nano.c:
+  main()
+       - Added var constcheck as a CRC-like check of whether cursor
+         pos has changed and if so update the pos with -c.
+       - Many tweaks and changes from numerics to char equivs
+         (David Lawrence Ramsey).
+       - Fix the KEY_IC being undefined when using slang.
+  do_mouse()
+       - Send 27 when the menu item clicked is an alt key seq... The
+         lines aren't lined up since the menu width changed though,
+         this breakage depends on whether the new widths will be kept
+         or not (FEEDBACK!!)
+       - Change k based on currslen to allow the new widths in
+         bottombars().
+  do_wrap()
+       - Fixes for Pico incompatibility in cases 2b and 2c.
+         (David Lawrence Ramsey).
+  global_init()
+       - New arg save_cutbuffer, allows cutbuffer to not be lost when
+         using multibuffer.
+- nano.1:
+       - Added new features, fixed some typos (Jordi).
+- nano.texi:
+       - Corrected the Mouse Toggle section, noticed by Daniel Bonniot.
+       - Added many command line options, toggles and other additions
+         (Jordi).
+- rcfile.c:
+       - NUM_RCOPTS fix (DLR).
+       - Add tabsize support to rc file (Nathan Heagy).
+       - Fix incorrect argument in fill and tabsize error message
+         (Nathan Heagy)
+- search.c:
+       - Changed search prompt to "Search" followed by a list of
+         bracketed, free-standing modifiers that do not imply a grammar,
+         and the (to replace) string separately.  Hopefully this resolves
+         the i18n problems that this provoked.
+  findnextstr()
+       - Various fixes that need testing (Ken Tyler).
+- winio.c:
+       - Add David Lawrence Ramsey to credits.
+  bottombars()
+       - Spread out the menu items, feedback definitely needed on this.
+  nanogetstr()
+       - More key fixes (David Lawrence Ramsey)
+       - Don't be clever and wasteful, just repaint every iteration.
+- po/nl.po:
+       - New Dutch translation, by Guus Sliepen <guus@nl.linux.org>.
+- po/ca.po, po/es.po:
+       - Updated Catalan and Spanish translation (Jordi).
+- po/gl.po:
+       - Updated Galician translation (Jacobo TarrĂ­o).
+- po/da.po:
+       - New Danish translation, by Keld Simonsen <keld@dkuug.dk>.
+- po/sv.po:
+       - Updated Swedish translation (Christian Rose).
+- po/it.po:
+       - Updated Italian translation (Marco Colombo).
+- po/fi.po:
+       - Updated Finnish translation (Pauli Virtanen).
+
+nano-1.1.1 - 07/28/2001
+- General
+       - Reverted included gettext from 0.10.38 to 0.10.35 in intl/ dir.
+       - Added m4/ directory to allow rebuilding using only the internal
+         version of gettext.m4 (Albert Chin).
+- nano.c:
+  main()
+       - Change the multibuffer getopt option to 'F' (David Lawrence
+         Ramsey)
+  do_mark()
+       - Temporarily disable cursorpos when enabled to be able to see
+         the mark (un)set message (Ken Tyler).
+- nanorc.sample
+       - Typo fixes and updates (David Lawrence Ramsey)
+- files.c:
+  new_file()
+       - Do add_open_files if there aren't any open yet (David Lawrence
+         Ramsey).
+  close_open_file()
+       - Try to open the next file first, then the previous one
+         (David Lawrence Ramsey).
+- global.c:
+  shortcut_init()
+       - Rewrote the whereis and replace lists to put CANCEL at the end
+         of the list, and not include the toggle functions when using
+         NANO_SMALL.
+- nano.h:
+       - Fix type in INSERTFILE_LIST_LEN.
+       - Rewrote all the macro definitions to be a little less messy,
+         for the #ifdefs anyway.
+- rcfile.c:
+       - Update for the multibuffer option (oops) (David Lawrence Ramsey).
+- search.c:
+       - Added #ifdef NANO_SMALLs around the REVERSE_SEARCH code.
+  search_init()
+       - add #ifdef NANO_SMALL around toggles code.
+- winio.c:
+  bottombars()
+       - Fixed an off by one that wasn't letting lines with odd #
+         shortcuts work in certain cases.
+
+nano-1.1.0 - 07/15/2001
+- General
+       - New global variables currshortcut and currslen to support using
+         the mouse with the shortcuts.  Also supports clicking on files
+         in browser.  Added #ifdef DISABLE_MOUSE around this code also.
+       - Changed mouse disabling code from depending on --enable-tiny
+         to its own flag, --disable-mouse.  The --tiny option defines
+         this automatically, but now just mouse support can be disabled
+         if desired.
+       - File Browser supports the "Goto Directory"
+       - Added rcfile.c source file.  Only includes much of anything when
+         --enable-nanorc is used.  Tons of new funcs, most notably
+         do_rcfile() called from nano.c:main().  Added much needed
+         function ncalloc(), will have to go through source code later
+         and change the appropriate calls which used nmalloc for lack of
+         an appropriate calloc function *** FIXME ***
+       - After "Alternate" spell checker is called, cursor is repositioned on
+         the same line as before ^T was pressed.
+       - Moved config.h up in all .c files #include list (Albert Chin).
+       - Added config.guess and config.sub to distribution because,
+         apparently, newer autoconf/automakes can't live without them.
+       - Various spelling updates by David Lawrence Ramsey.
+       - Changed all string allocations to charalloc(), new function
+         designed to take nmalloc argument but call calloc based on
+         (char *) size.
+       - New macro DISABLE_WRAPJUSTIFY to easily check for both wrapping
+         and justify being disabled.  This allows us to compile out the
+         -r flag if neither are set, and will also allow us to comment
+         out -W when it is written.
+       - Allow fill to take a negative value to signify a "from right side"
+         value.  This allows the value to vary with the screen size yet
+         still be correct.  New static value wrap_at to minimize code
+         impact.  Updated man page and info file.
+       - Allow file appending.  New shortcut list nano_insertfile_list (since
+         insert and write routines can't share shortcut lists anymore),
+         new args to do_writeout and write_file called append, and of source
+         code changes to those functions.
+       - Allow backwards searching.  Drastic rewrite of the search prompt
+         string by Chris.  All other code by Ken Tyler.  New globals
+         nano_reverse_msg, new functions revstrstr and revstrcasestr,
+         many changes to search functions.  Not too big a code size
+         increase!
+       - Moved extension functions (Case Sensitive, Regexp, and Backwards
+         Search, Append key in write file function) to Meta keys, as
+         people are complaining loudly about nano not being control-key
+         compatible with Pico, which is a Bad Thing (TM).  Changes to
+         shortcut_init, toggle_init, new toggles for backwards and regexp
+         (and you can now toggle all search options including regexp at
+         the Search: prompt!)  Changes to nanogetstr to enable Meta
+         keys to be grabbed, changes to onekey to print M-style shortcuts.
+       - New macro TOGGLE which just toggles, no more silly checking
+         ISSET and then using SET or UNSET when we want a simple toggle
+         for a flag.
+       - Added multiple buffer capability (God help us).  New configure
+         option --enable-multibuffer (-F), changes to do_insertfile(),
+         do_insertfile_void(), toggle_init(), do_gotoline(), edit_update(),
+         and write_file(), new functions add_open_file(),
+         open_file_change_name(), load_open_file(), open_file_dup_search(),
+         open_file_dup_fix(), open_prevfile(), open_nextfile(),
+         close_open_file(), get_full_path(), die_save_file(), etc.
+         (David Lawrence Ramsey).
+       - Using --enable-extra automatically defines --enable-multibuffer
+         changes to version() and configure.in.
+       - Moved to gettext 0.10.38 at the last second, sure to break
+         something, but at least I can run make distcheck!
+- Makefile.am:
+       - Include ABOUT-NLS and the new THANKS files to the distributed list.
+- THANKS:
+       - Initial, incomplete list of people to thank.
+       - Added some more people.
+- configure.in:
+       - New option, --enable-nanorc, which allows people to have a .nanorc
+         initialization file and set options normally used on the command
+         line, and color later on.
+       - Added --enable-color option to allow color and syntax highlighting
+         (stub as of now).
+- cut.c:
+  add_to_cutbuffer()
+       - Remove useless statements (Rocco).
+  cut_marked_segment()
+       - Add bizarre copy of bot node, else *BSD goes ballistic (fixes
+          BUG #60).
+       - Added 'destructive' argument.  Allows the selected text to be
+         added to the cutbuffer without changing the contents of the
+         file.  This allows writing selection to separate files.
+  do_cut_text()
+       - If the line is empty when using -k and wasn't already added,
+         create a dummy line and add it to the cutbuffer (fixes bug #61)
+       - Reset marked_cut if we blow away the cutbuffer.
+       - Moved the case of current == mark_beginbuf into cut_marked
+         segment, so do_writeout could call it when writing selection to
+         file.
+  do_uncut_text()
+       - Reset cutbuffer even if we're uncutting marked or cut to end text!
+- faq.html:
+       - Brought the FAQ up to date, many little changes (Jordi).
+       - Added sections 3.7 and 3.8 for the multibuffer and nanorc support.
+- files.c:
+  do_browser()
+       - Minor fixes to the processing of SELECT function (Rocco)
+       - Added the "Goto Directory" code (Rocco)
+       - Don't shift the size of the file is it's less than 1K. Fixed
+         files less than 1K being displayed as 0B (Rocco).
+       - More Picoish keystrokes for the browser, ^P, ^N, etc, for up,
+         down, etc, and add the consistent ^C to exit (Jim Knoble).
+  do_writeout()
+       - New code to allow writing selected text to a separate file.
+         When this is done, the current state is preserved.
+  write_file()
+       - New arg, nonamechange, means whether or not to update the
+         current filename after writing the file out.
+       - Increment lineswritten when the very last line isn't null.
+         Fixes off by one count when writing selection to file.
+- global.c:
+       - Updated some of the lists for the "Goto Directory" code (Rocco)
+- move.c:
+  page_up()
+       - Rewritten with a loop to make screen updates work when
+         mark is set (fixes bug #59).
+  do_home(), do_end()
+       - Don't keep cutbuffer.
+- nano.1:
+       - Added the missing -r flag (Jordi).
+- nano.c:
+  do_alt_speller()
+       - Reposition cursor on same line as before ^T was called (Rocco)
+  ABCD(), main()
+       - Add Alt-whatever-[a-d] support as well as Alt-whatever-[A-D].
+  main()
+       - Code to silently process "-g" and "-j" (Rocco)
+       - Added Alt-[-7,8 support for home/end keys (Jeff Teunissen).
+  signal_init()
+       - Reorder sigaction calls, use sigfillset() to stop SIGTSTP and
+         SIGCONT from being interrupted, allows suspending nano
+         to work more reliably, esp. with mutt, etc.
+  do_suspend()
+       - Don't try to play with the handler inside the handler.  Just
+         raise a SIGSTOP.  We also now write the "use "fg"" message to
+         stdout instead of stderr.
+       - Added _POSIX_VDISABLE macro to fully ignore suspend keystroke.
+         Eliminates the possibility that nano can be suspended when
+         it's not supposed to be.  Many many many thanks to Jordi and
+         Tom Lear for helping out finding and fixing this bug!
+  do_cont()
+       - Now just does a refresh call instead of playing with the SIGTSTP
+         handler.
+- nano.h:
+       - Updated the BROWSER_LIST_LEN for the "Goto Directory" code (Rocco)
+- proto.h:
+       - New shortcut list added: gotodir_list (Rocco).
+- search.c:
+  do_gotoline()
+       - Optimizations, remove "$" goes-to-last-line, less messages (Rocco)
+  do_replace()
+       - If we manage to make it in somehow with VIEW_MODE on, abort
+         nicely (fixes BUG #59).
+- utils.c
+  strcasestr()
+       - Replaced by mutt's mutt_stristr function, because the thought
+         of dynamically allocating memory and copying each line in a file
+         to do a search or replace was causing me to lose sleep.
+- winio.c:
+  actual_x()
+       - Remove inline from function decl (Albert Chin).
+- po/POTFILES.in:
+       - Added utils.c to the list.
+- po/es.po, po/ca.po:
+       - Updated (Jordi).
+- po/gl.po:
+       - Galician translation by Jacobo TarrĂ­o.
+- po/uk.po, po/ru.po:
+       - New Ukrainian and Russian translations by Sergey A. Ribalchenko
+         <fisher@obu.ck.ua>, thanks!
+- po/id.po:
+       - Updated Indonesian translation by Tedi Heriyanto.
+- po/it.po
+       - Updated Italian translation by Marco Colombo.
+- po/no.po:
+       - New Norwegian translation by Eivind Kjørstad <ekj@vestdata.no>.
+- po/sv.po:
+       - New Swedish translation by Christian Rose <menthos@menthos.com>.
+
+nano 1.1 tree forked here 04/07/2001
+
+nano 1.0.1 - 04/06/2001
+- General:
+       - added configure option --disable-wrapping.  Does what it says,
+         no wrapping or checks are done.  Separate from --enable-tiny,
+         some may want a bare-bones Pico clone that does wrap text.
+         Affects configure, nano.c:do_char() and check_wrap() obviously,
+         version(), and do_char().
+- aclocal.m4:
+       - Minor patch for intl check (really this time) (Albert Chin)
+- faq.html:
+       - Fixed typo in section 6.1 (discovered by Bob Farmer).
+- files.c:
+       - fix two typos in comments, one in ChangeLog (Matthias Andree)
+  diralphasort()
+       - Stop abort on symlinks (Matthias Andree)
+       - use strcasecmp to sort directory if available, pilot does that
+         as well (Matthias Andree)
+  filestat(), do_browse()
+       - Changed lstat calls to stat, which fixes the browser not
+         following links to directories.  We only use lstat() when
+         printing the details of the file, and if it is a link, then
+         check via lstat() for link to a directory.  If it is
+         a directory, display (dir), else use the normal "--".
+  do_browser()
+       - Fix broken size suffix off-by-one errors (Matthias Andree)
+  cwd_tab_completion(), do_browse_from()
+       - Use PATH_MAX instead of 0 arg to getcwd (Matthias Andree).
+       - Changed above to use PATH_MAX only when defined on the
+         system, as the HURD e.g. does not support it.
+- intl/Makefile.in:
+  distclean
+       - added intl/libintl.h to the rm -f rule, should fix the unresolved
+         gettext symbols problem (Jordi).
+
+nano-1.0.0 - 03/22/2001
+- General
+       - Added void to functions declared as () args, nano.c:do_mark()
+         and search.c:regexp_cleanup(). (Christian Weisgerber).
+       - Changed internal variables called "new" to "newnode" to avoid
+         the "new" C++ reserved word, even though there is likely no way
+         nano will EVER be compilable with a C++ compiler. (suggested by
+         Rocco Corsi).
+- ca.po, es.po:
+       - Final tweaks for Nano 1.0.
+- cs.po:
+       - Czech translation from Vaclav Haisman.
+- nano.info:
+       - Added dir entry (Albert Chin).
+- winio.c:
+  statusq()
+       - Added NANO_BACK_KEY and NANO_FORWARD_KEY cases for left and right.
+
+1.0-test prerelease - 03/17/2001
+- nano.c:
+  do_wrap()
+       - Added case for autoindenting text causing new line (Adam).
+       - Added SAMELINE case to above.  Added checks to cases 1b and
+         2b for placement of cursor.
+- move.c:
+  page_down()
+       - Check for totlines < editwinrows in check for superfluous
+         edit update (fixed BUG #57).
+- search.c:
+  print_replaced()
+       - s/occurence/occurrence typos (Jordi).
+  search_init()
+       - If using Pico mode and regex and same answer is entered, use
+         last_search string instead of answer (fixes BUG #56).
+- nano.texi:
+       - Meta-Z correction and grammar in --enable-tiny desc (Neil Parks).
+
+nano-0.9.99pre3 - 02/19/2001
+- General
+  GNU compliance issues:
+       - Reworked shortcut list, put "Get Help" into default list,
+         removed "Goto Line", aligned "Read File" with "Write Out" and
+         "Replace" with "Where is" for consistency.
+       - Added texinfo manual nano.texi.  Added texi options to
+         Makefile.am.  
+- configure.in:
+       - Autoconf compatibility fixes (Pavel Roskin)
+       - Added separate check for resizeterm().
+       - ALL_LINGUAS: added hu and ca.
+- cut.c:
+  do_cut_text()
+       - marked text cut fixes (Rocco) (Fixes bug #54).
+- nano.c:
+  do_delete()
+       - Added check for current->next == fileptr, as we have a magic
+         line code again, fixes silliness at the end of the last line
+         before the magic line (reported by J.A. Neitzel).
+  do_justify()
+       - If the keystroke after the justify is not the unjustify key,
+         blank the statusbar (bug reported by Neil Parks).
+  main()
+       - Added ENABLE_NLS check around gettext stuff.
+- winio.c:
+  do_yesno()
+       - Added localized yes, no and all strings to function and rewrote
+         handler for the new format.
+- de.po:
+       - Translation updates by Florian König.
+- fi.po:
+       - Translation updates by Pauli Virtanen.
+- hu.po:
+       - Hungarian translation by Horvath Szabolcs.
+- id.po:
+       - Translation updates by Tedi Heriyanto.
+- es.po:
+       - Translation updates and grammatical/typo fixes (Jordi).
+- ca.po:
+       - Catalan translation by Jordi Mallach :)
+       - Miquel Vidal <miquel@sindominio.net> went over it and corrected
+         many typos and completed bits that remained untranslated by error.
+
+nano-0.9.99pre2 - 01/31/2001
+General
+       - Removed center_x and center_y globals.  center_y was
+         completely unused and center_x was only used a few places,
+         easily replaced with COLS / 2 (oops, not current_x & y (Rob)).
+       - Deleted free_node, duplicate of delete_node, and changed all
+         free_node calls to delete_node.
+       - Fix for resizing the window in modes other than normal edit mode
+         Changes to handle_sigwinch(), main().  Fixes bug #52 (Rocco).
+- files.c:
+  write_file()
+       - Don't free() realname on error, if it needs to be free()d later
+         it will be (fixes crash on successful write after failed write,
+         discovered by David Sobon).
+  username_tab_completion()
+       - Optimization and removal of useless vars (Rocco).
+       - Rewritten using getpwent (suggested by Rocco).
+       - Removed redundant conditional (Rocco).
+  real_dir_from_tilde()
+       - Rewritten using getpwent (suggested by Adam, much optimized by
+         Rocco).
+- global.c:
+       - Don't define toggles global or toggle_init_one if using --tiny.
+- nano.c:
+  do_justify()
+       - Added restoration of totsize after unjustify command.
+  usage()
+       - Add arg to -T help (Rocco).
+  global_init(), handle_sigwinch()
+       - Messy loops replaced with memset calls (Rocco).
+  do_alt_speller()
+       - Added code to parse multi-word alt_speller strings.
+       - Fix initialization before fork()  (Rocco).
+- proto.h:
+       - Fix do_credits() proto (oops!)
+- winio.c:
+  nanogetstr()
+       - Sanity check for x overrunning the string buffer len.
+
+nano 0.9.99pre1 - 01/17/2001
+General
+       - Changed #ifdefs to check for both DISABLE_TABCOMP and
+         NANO_SMALL, makes tiny option leave out tab completion, which
+         should be left out in that circumstance.  Saves at least 5k.
+       - Previous change to #ifdefs DISABLE_TABCOMP and NANO_SMALL rolled
+         back. (Rocco)
+       - Various #ifdef & #ifndef cleanups. (Rocco)
+       - Added message for when keypad goes awry.  Added code in main and
+         function print_numlock_warning() to notify user, and added an
+         appropriate section in the faq to refer to this brokenness.
+       - Added macros in nano.h for magic values that might be unclear in
+         nano.c:global_init(). (Rocco)
+- configure.in:
+       - Fix for _use_keypad check breaking slang support (Christian
+         Weisgerber).
+       - Changed to automatically define the 5 DISABLE variables when
+         NANO_SMALL (enable-tiny) is requested at configure.
+- faq.html:
+       - Added some info on making the binary smaller with the configure
+         script.
+       - Added section on keypad bugginess.
+- files.c:
+  real_dir_from_tilde()
+       - Oops, fix case where buf ="~", silly crash (bug discovered by
+         Neil Parks).
+  do_browser()
+       - Added space and - keys to do page up and down.
+  cwd_tab_completion(), input_tab()
+       - Changed bare malloc/calloc calls to nmalloc (found by Rocco).
+       - Added memset() to matchBuf to ensure sanity (Rocco, Adam).
+- nano.c:
+  ABCD()
+       - New function, figures out what kbinput to return given
+         input common to several switch statements, allows us to
+         support the default Konsole key settings.
+  main()
+       - Alternate speller option no longer valid if DISABLE_SPELLER is
+         active. (Rocco)
+       - Removed direct calls to usage() (#else) for -k (cut) or -s (speller)
+         options when these have been disabled. (Rocco)
+       - Initialized kbinput to get around stupid compiler warning.
+  nano_small_msg()
+       - This function has been removed.  All references now call
+         nano_disabled_msg. (Rocco)
+  version()
+       - When NANO_SMALL (enable-tiny) is defined, the 5 main DISABLE
+         variables (SPELLER, HELP, JUSTIFY, BROWSER, TABCOMP) are not
+         reported as enabled when Nano is called with -V (--version)
+         command line option. (Rocco)
+  usage()
+       - Alternate speller option no longer valid if DISABLE_SPELLER is
+         active. (Rocco)
+  window_init(), handle_sigwinch()
+       - Added check for not having enough LINES to do anything useful,
+         if so die with an error. (Rocco)
+  die_too_small()
+       - Function to print the window too small error message, avoids
+         repeated string defs and globals.
+  do_justify()
+       - Small fix for totsize calculation (Rob)
+
+- fi.po:
+       - Update by Pauli Virtanen.
+
+nano 0.9.25 - 01/07/2001
+General -
+       - New file browser code.  New functions in files.c:do_browser(),
+         helper functions browser_init(), tail(), striponedir(),
+         filestat().  New shortcut list browser_list.  Some new
+         strings to translate.  Added function do_browse_from().
+       - Keypad code has been changed slightly.  Now checks for
+         _use_keypad flag in window to see whether or not to turn
+         the keypad() back off when finished (taken from aumix).  Moved
+         to winio.c where it should probably be anyway.  New configure
+         check for _use_keypad in window struct.  This will have to do
+         for now.
+       - Moved keypad() calls for PDCurses from main() to window_init()
+         so the keypad continues to work after a Meta-X, for example.
+         Fixed bug #51.
+- faq.html:
+       - Fix typos and small mistakes (Jordi).
+- files.c:
+  username_tab_completion()
+       - Added the (char *) sizeof when allocating memory for the filename
+         array (Rocco).
+  cwd_tab_completion()
+       - removed skipping . and .. when tabulating matches.
+       - Added the (char *) sizeof when allocating memory for the filename
+         array (Rocco).
+  do_writeout()
+       - Now takes an argument so the string typed in can be retained
+         when calling the browser.
+  do_browser()
+       - Don't decrement longest by the length of path.  Fixes crashes
+         on entering various dirs  (Rocco).
+       - Don't ungetch() the exit key, unneeded, fixes inserting a file
+         causes exit code.
+- move.c:
+  page_down()
+       - Don't do an edit_update when there is only one page of text
+         (fileage == edittop && filebot == editbot).  Fixes Bug #50.
+- nano.c:
+  main()
+       - Reorder the getopt options to be more or less alphabetical
+         (suggested by Sven Guckes).
+- winio.c:
+  do_cursorpos()
+       - Optimizations and cleanups by Rocco Corsi.
+  do_credits()
+       - Spell Erik Andersen's name right.
+  titlebar()
+       - Now takes an arg, needed for browser function.
+  do_help()
+       - Changed way of temporarily bringing up shortcuts at the
+         bottom in the help screen (actually works).
+- utils.c:
+  mallocstrcpy()
+       - Takes char pointers now instead of void (makes debugging a
+         helluva lot easier)
+       - Duh, don't do anything if src == dest!
+- es.po:
+       - Updates for file browser (Jordi).
+
+nano 0.9.24 - 12/18/2000
+General
+       - Added --disable-help option, affects acconfig.h, configure(.in),
+         winio.c:do_help, nano.c:help_init,help_text_init,version.
+       - Changed filename to no longer use PATH_MAX, so it can work on the
+         HURD.  Changes in files.c:write_file(), new function
+         nano.c:clear_filename(), many changed in main(), a few other
+         places.  Please test this!
+       - Added -b, -e, and -f flags, which we ignore as nano provides
+         their functionality already.
+- cut.c:
+  do_uncut_text()
+       - Fix renumbering bug when uncutting marked text at filebot.
+       - Fix screen not being displayed when we are uncutting marked
+         text at editbot (Bug discovered by Ken Tyler).
+       - Fix magic line not getting created when (you guessed it)
+         uncutting marked text at filebot (Ryan Krebs).
+- files.c:
+  read_file()
+       - If we encounter an error and insert is not set, run new_file().
+         (bug discovered by Ben Roberts).
+  write_file()
+       - Change open call flags, basically copy joe's way of doing it so
+         a more recent version will actually be included in (un)stable.
+       - Remove useless fstat call.
+  open_file()
+       - Added check for S_ISBLK and S_ISCHR, don't open device files!
+- nano.c:
+  renumber()
+       - Don't stupidly assign the value of prev->lineno if prev == NULL!
+  main()
+       - Added code to check for Alt-Alt (27-27) keystrokes and set the
+         next keystroke as a control sequence.  New variable
+         modify_control_key.  Removed #ifdef _POSIX_VDISABLE check
+         around Control-S,Q,Z handlers because we need it now for
+         the Alt-Alt-x code.
+       - Added --view option to getopt_long() call.  Bug discovered
+         by Rocco Corsi.
+  help_init()
+       - Fix off by one error that was making ^G help in normal mode and
+         ^_ in Pico mode not be displayed in the help (bug discovered by
+         Rocco Corsi).
+  do_toggle()
+       - Added fix_editbot() call to fix improper redisplay of edit
+         window when using nohelp toggle (bug discovered by Rocco Corsi).
+- nano.1, nano.1.html:
+       - Updated man page for -b, -e, -f and expanded explanation for -p.
+- winio.c
+  do_help()
+       - Force keypad on so F-keys and PageUp/Down will work properly.
+         Added check for NANO_EXIT_FKEY to loop.
+- utils.c:
+  new_magicline()
+       - Increment totsize!!  We decrement it when we've read a file,
+         everywhere else it should automatically be incremented
+
+nano 0.9.23 - 12/08/2000
+General
+       - Changed --disable-spell to --disable speller.  The term is
+         "speller" for -s, so it should be --disable-speller.
+- files.c:
+  write_file()
+       - Added tmp check to TMP_OPT section (how appropriate).
+       - Added new consistency checking code from securityfocus
+         article by Oliver Friedrichs, and use O_EXCL if tmp == 1.
+       - We now run check on result of lstat(), not stat(), to be
+         safer.  New variable anyexists, we use still use realexists
+         later in the program.
+       - OOPS, line up link/unlink/rename check if conditional with
+         top if conditional.  Option -l has been broken for 9 versions,
+         no one noticed?!
+       - Added saving perms at end of link so we can apply them to the
+         new file if --nofollow is used.
+- winio.c:
+  edit_add()
+       - Off by one display error (fix by Rocco Corsi).
+  do_replace_highlight()
+       - New code to handle being past COLS (Rocco Corsi).
+       - Moved from search.c, as it's definitely a winio function now =)
+  update_line()
+       - More '$' display fixes (Rocco Corsi).
+
+nano 0.9.22 - 12/02/2000
+- General
+       - Username tab completion code, and cleaned up existing tabcomp
+         code. New functions real_dir_from_tide(), append_slash_if_dir(),
+         username_tab_completion is more than a stub now =-).
+       - Ignore key sequence 543 & 545, right control and alt keys in
+         windows. Affects main() and winio.c:nanogetstr().
+       - Took out help from spell_list and changed SPELL_LIST_LEN to 1.
+         Is using a spell checker THAT difficult? =-)
+       - New function nano_disabled_msg(), to alert that certain
+         functions have been disabled, similar to nano_tiny feature.
+- New configure options:
+       - Added configure argument --disable-tabcomp.  Affects
+         bottom of files.c and write_file, utils.c:check_wildcard_match()
+         and winio.c:nanogetstr().
+       - New options --enable-extra.  New code in nano.c:version() to
+         print out various options from ./configure, function do_credits().
+       - Added --disable-spell option for those who want to just disable
+         the spell check feature.  Affects the spelling functions
+         do_spell, do_int_speller and do_alt_speller.
+       - Added --disable-justify to get rid of the justify function.
+         Affects do_justify() (not surprisingly).
+- files.c:
+  write_file()
+       - Unsetting modified on temp files bug fixed (Rocco Corsi).
+       - Okay, if tmp == 1 and the file exists, we abort.
+  do_insertfile()
+       - Added call to real_name_from tilde, oops.  Added check for
+         DISABLE_TABCOMP.
+  read_file()
+       - Added check for fileptr == NULL.
+- global.c:
+  shortcut_init()
+       - Now takes an argument as to whether to display the unjustify
+         shortcut or the normal uncut text one.  Needed to accommodate
+         the kludgey unjustify code.
+- nano.1, nano.1.html:
+       - Updated date on pages because of -p changes.
+       - Added "NOTES" section, where I explain what nano.save & friends
+         are.
+       - Added a copyright notice for the manpage, under the GPL.
+       - Other minor changes.
+- nano.c:
+  do_justify()
+       - Wrote unjustify code.  Borrows cutbuffer and stores the unjustified
+         text there, then grabs the next keystroke and, if the unjustify
+         key, gets rid of the justified text and calls do_uncut_text.
+         Added macro NANO_UNJUSTIFY_KEY.
+  do_int_spell*
+       - Various fixes (Rocco Corsi).
+       - Changed abort of program to aborting based on value of "edit a
+         replacement" question, and not caring about the replace loop
+         return value.  That way the user can get out of the replace loop
+         and continue spell checking (very important to me anyway).
+  version()
+       - Took out huge check for the various --disabled macros,
+         eventually there will be too many to reasonably check for.
+  nano_small_msg(), nano_disabled_msg()
+       - Added checks for disabled functions to see whether or not to
+         declare them.
+  do_next_word()
+       - Update the previous line as well as the current one in case we
+         have moved beyond COLS or back from COLS, patch submitted
+         by Ryan Krebs.
+  die()
+       - Now creates .save file using variable-length strings.  Also
+         calls write_file with tmp == 1, which happens to do exactly what
+         we want (abort on save file exists and use mode 0600).
+  handle_sighup()
+       - Now calls die instead of writing on its own and exiting normally.
+- search.c:
+  do_replace_highlight()
+       - New function, displays the currently selected word as highlighted
+         in the spell check.  Called from do_replace_loop (Rocco Corsi).
+       - Added calls to curs_set(0) and (1) to disable the cursor when
+         highlighting, looks much better.
+- es.po:
+       - Traditional Spanish strings updates.
+
+nano 0.9.21 - 11/23/2000
+- AUTHORS
+       - Added Rocco Corsi.
+- nano.c:
+  main()
+       - Changed check for argc == 1 to argv[optind] == NULL to decide
+         whether or not to display "New File" in the statusbar.
+- search.c:
+  findnextstr()
+       - Fix current_x increment bug by using another variable (Rocco Corsi).
+  search_init()
+       - Silly typo in our "one simple call" of statusq.  Stopped
+         previous search string from being displayed.
+  do_replace()
+       - Copy back the previous value of last_replace into answer if
+         using PICO_MODE and answer == ""
+- winio.c:
+  do_up()
+       - Deleted first update_line() call, screws up display when marker is
+         set.
+- nano.1, nano.1.html
+       - Updated man page for new -p definition.
+
+nano 0.9.20 - 11/18/2000
+- General
+       - Ran source through indent -kr again.  Make everything pretty.
+       - Changed behavior of "search" and "replace" prompts to make all
+         previous values editable.  This change was made so that you can
+         replace with the null string without needing a special key for it.
+         changed code in search_init(), do_replace(), nanogetstr (see
+         below).
+       - Added some missing gettext calls here and there (Jordi).
+       - Revamped nanogetstr() and calls to it to use variable length
+         strings.
+         MANY changes in nanogetstr(), many chances in search.c, new
+         function mallocstrcpy which is sure to be a programmatic
+         nightmare, changed last_search, last_replace, answer to
+         pointers.  New function not_found_msg in search.c for displaying
+         truncated strings in statusbar when the string is not found
+         (-pedantic fixes by Rocco Corsi). We disable this feature when
+         using PICO_MODE (-p).
+       - New spelling code by Rocco Corsi.  New functions
+         do_int_speller, do_alt_speller, changes to do_spell in nano.c,
+         New functions search_init_globals and do_replace_loop, changes
+         to search_init(), do_replace, findnextstr, moved last_search and
+         last_replace back to nano.c (*shrug*).
+       - New tab completion code.  Used check_wildcard_match, input_tab,
+         cwd_tab_completion, username_tab_completion from busybox,
+         hacked them a lot, changes to nanogetstr().  nanogetstr() and
+         statusq() now take an arg for whether or not to allow tab
+         completion.
+       - Fixed value being input in statusbar during a search or replace
+         and CASE_SENSITIVE or the other search is called and the
+         string being typed in is blown away.  Reported by Ken Tyler.
+       - Changed PICO_MSGS flag to PICO_MODE, changed help strings
+         accordingly.
+- files.c:
+  do_writeout()
+       - Change strcpy to answer to mallocstrcpy.
+- global.c
+       - New global replace_list_2, for 2nd half of the replace dialog
+         ("Replace with:"), has fewer options than first half because
+         they were inappropriate.
+  toggle_init()
+       - Added #ifdef around toggle_regex_msg to get rid of compiler
+         warning.
+
+- nano.c:
+  keypad_on()
+       - New function, toggles turning the keypad on and off in edit and
+         bottomwin().  Added call to this in finish(), fixes bug #45.
+- search.c
+  findnextstr()
+       - New arg for begin_x variable, basically a rewrite that
+         makes a little more sense and isn't quite as messy (Rocco Corsi).
+       - Update the line we're checking if not the whole screen, because
+         it's quite possible the search team could exist somewhere way
+         to the right on the same line, for example.
+  replace_abort()
+       - Add reset of placewewant, stops cursor from jumping when moving
+         cursor after a replace.
+  do_replace()
+       - Added code for Gotoline key after entering the search term.
+         Fixes bug #46.
+       - Removed redundant code involving processing replacement string.
+         Converted if statements to switch statements.
+       - Optimizations by Rocco Corsi.
+       - Removed code for deleted shortcuts from in replace_list_2.
+  do_search()
+       - Converted if statements to one switch statement.
+- winio.c
+  nanogetstr()
+       - Added check for 343 in while loop to get rid of getting "locked"
+         into statusbar" bug in odd $TERMs like iris-ansi.
+       - Changed check to return -2 on "enter" from answer == ""
+         to answer == def.
+       - Fixed fallthrough code because there was no break.  Make much
+         more sense now.
+       - Added check for ASCII 54[124] when using PDCurses, ignore them
+         if noticed.
+  nanoget_repaint()
+       - New function, removes about 30 lines of duplicate code in
+         nanogetstr().
+       - Black magic code to make $ appear in prompt if we're past
+         COLS.
+  blank_edit()
+       - Removed wrefresh() call, much less choppy now.  If there's a need
+         for a wrefresh after a specific call, let me know.
+- es.po:
+       - Updated translation for 0.9.20 (Jordi).
+
+nano 0.9.19 - 10/02/2000
+- General
+       - Added PDCurses support under cygwin, which allows building
+         a nice stand-alone nano.exe for those poor Windows users.
+         Extra check in configure.in for initscr() in -lcurses (as
+         PDcurses has no tgetent), some #ifdef PDCURSES statements
+         in main().
+       - Changed web site and email to new nano-editor.org domain.
+- nano.c
+       - Added (int) casts to remove compile warnings with -Wall.
+  main()
+       - Added check for _POSIX_VDISABLE around term variable definition.
+- search.c
+       - Added initializations for last_search and last_replace (Rocco Corsi)
+
+nano 0.9.18 - 09/18/2000
+- General
+       - Changed _POSIX_VERSION checks in regex code to HAVE_REGEX_H,
+         added check for regex.h in configure.in.
+- configure.in:
+       - Added default case for cross-compiling to get rid of annoying
+         AC_TRY_RUN warning.
+- cut.c:
+  do_cut_text()
+       - Don't immediately abort if we're on filebot and the marker is
+         set (fixes bug #42).
+- files.c:
+  open_file()
+       - Fix for bug #44 (Rocco Corsi).
+- global.c:
+  shortcut_init()
+       - Added in FKEYs that for some reason were left out.  *boggle*
+- nano.c:
+  main()
+       - Added check for _POSIX_VDISABLE and use raw mode if not
+         available, allows nano to work with cygwin.
+       - Added gettext calls to enable/disable strings (Jordi).
+       - Revamped a great deal of the F-key and keypad key handling,
+         because we not longer use keypad() (see below).
+       - Removed keypad() call because nano was not working with the
+         keypad in many terms, which is very bad.
+       - Made insert key call do_insertfile().
+  do_toggle()
+       - Rewrote function to allow NOHELP toggle to work on systems
+         without a working resizewin().  New function window_init().
+  mouse_init()
+       - Add keypad only if mouse support is on, otherwise mouse doesn't
+         work.  I guess you have to choose between having the mouse and
+         having a working keypad for the time being (thank god for Meta-M).
+- winio.c:
+  total_refresh()
+       - Added titlebar() call.
+  onekey()
+       - Off by one error fix fix ;-) (Rocco Corsi).
+
+- search.c:
+  findnextstr()
+       - Reset starting at current for search instead of begin.
+- es.po:
+       - Translated new strings and minor updates (Jordi).
+- de.po
+       - Revised translations by floki@bigfoot.com
+
+nano-0.9.17 - 09/04/2000
+- General
+       - New shortcuts to toggle certain options that are normally only
+         flags via Alt/Meta.  See Alt-C,E,I,K,M,P,X,Z.  New struct called
+         toggles in nano.h, toggle_init(), toggle_init_one() in global.c
+         called from shortcut_init(), and do_toggle in nano.c.  Also
+         moved the signal code into a separate function in nano.c called
+         signal_init().  Moved "struct sigaction act"into a static in
+         nano.c.
+       - Changed from Alt-key symbol (@) which is completely nonstandard
+         to the *nix "Meta" symbol (M-).  Changed help_init to show
+         the M-key usage and the help text to explain keys which generate
+         Meta.  Moved the toggle Meta keystrokes to the first column
+         instead of the third as they are the primary keystrokes for the
+         functions.  Thanks Mini editor team :->
+       - Changed last_search and last_replace vars to statically
+         allocated (hence nulled) and moved to search.c (Matt Kraai).
+- global.c:
+  toggle_init()
+       - Changed "No auto wrap" and "No help mode" to "Auto wrap" and
+         "Help mode". See the change to do_toggle() below.
+- nano.c:
+  do_mouse()
+       - Patch for handling lines w/tabs and mouse better (Ben Roberts).
+  do_wrap()
+       - Made wrapping code less ambitious.
+  do_toggle()
+       - Added checks for no help and no wrap mode, and print opposite
+         enable/disable message.
+  do_suspend(), do_cont():
+       - New functions, handle suspend signal in a Pico-like manner and
+         work with Meta-Z.
+- winio.c:
+  total_refresh()
+       - Added edit_refresh() call to actually update the screen if messy.
+  edit_refresh_clearok()
+       - New function, does a total update for edit refresh, needed to fix
+         lack of reversed text on searching with MARK_ISSET.
+  onekey()
+       - Off by one error fix (Rocco Corsi).
+
+  update_line()
+       - Added check for binary data >= 1 and <= 26, and use ^+letter
+         to display it.   Should fix editing text files with binary
+         data in them.  Placing of the cursor seems to be a bit screwed
+         though...
+- search.c:
+  search_abort()
+       - Now calls edit_refresh_clearok when MARK_ISSET to handle screen
+         ugliness bug (reported by Ken Tyler).
+  findnextstr():
+       - Added reset for placewewant (Ben Roberts).
+       - Fixed check for string that only occurs on the same line failing
+         (discovered by Ken Tyler).
+
+nano-0.9.16 - 08/09/2000
+- cut.c:
+  do_cut_text()
+       - Fixed getting locked into cutbuffer on cutting first line of file.
+       - Added check_statblank().
+       - Check for fileptr == filebot, if so return, we shouldn't bother
+         cutting the magic line.
+  do_uncut_text()
+       - Added check_statblank().
+- nano.c:
+  main()
+       - Changed tabsize long arg to actually accept an argument *sigh*.
+- po/Makefile.in.in:
+       - Patch to handle $DESTDIR (orig by Dan Harnett contributed by
+         Christian Weisgerber)
+- configure.in:
+       - New (and severally revised =) slang test code (Albert Chin-A-Young)
+
+nano-0.9.15 - 08/03/2000
+- Changed edit_update call to take arguments TOP, CENTER or BOTTOM.
+  Affects many many functions.  Removed functions edit_update_top and
+  edit_update_bot.
+- Added global variable tabsize, we no longer screw with the curses
+  library in order to implement -T (suggested by Christian Weisgerber).
+- configure.in:
+       - Finally fixed check for slang to report "no" if not called
+         with --with-slang or --without-slang
+- nano.c:
+  splice_node()
+       - New function, abstracts linking in nodes.   Fixes bug #36.
+  null_at()
+       - New function, nulls a string at a given index and realigns it.
+  delete_buffer()
+       - Removed, same as free_filestruct().
+  do_backspace()
+       - Now calls page_up_center instead of page_up (as it should?)
+  do_enter()
+       - Fixed typo (?) in check for inptr->next.  Caused lots of
+         grief for editing lines at filebot.
+  main()
+       - Removed now useless usertabsize variable (Christian Weisgerber).
+- search.c:
+  replace_abort()
+       - redundant, now just calls search abort until it does something
+         different.
+- winio.c:
+  edit_refresh()
+       - Added check for current line "running" off the screen.
+         Hopefully this will not cause any recursive lockups.
+         (Who am I kidding, of course it will!)
+       - Added check to stop infinite loop calling edit_update.
+  edit_update()
+       - Rewritten, hopefully this will remove a lot of the
+         scrolling the cursor back and forth needlessly.
+- move.c:
+  page_down()
+       - do an edit_update() at last case.  Made function more like
+         Pico's version, only move down to two lines before editbot.
+  page_up()
+       - Made function more like Pico's version, only move down to two
+         lines after edittop.
+
+nano-0.9.14 - 07/27/2000
+- nano.h:
+       - Set CUT_TO_END to a different bit than TEMP_OPT.  Fixes bug #32.
+- cut.c:
+  do_cut_text()
+       - Added check for MARK_ISSET when using CUT_TO_END.  Fixes bug #31.
+       - Simplified check for freeing cutbuffer.  Added checks for doing
+         multiple cuts with -k, now sets marked_cut to 2 for later
+         processing by do_uncut_text().
+  do_uncut_text()
+       - Added handler for uncutting with -k cuts.
+- files.c:
+  write_file()
+       - Removed (redundant) check for writing out files with -t.
+  do_writeout()
+       - Changed check for filename to filename[0].  Added some code,
+         overall fixes bug #30 =-)
+- nano.c:
+  do_justify() & do_wrap():
+       - totsize-related fixes (Rob)
+- de.po
+       - Revised translations by floki@bigfoot.com
+
+nano-0.9.13 - 07/23/2000
+- Implemented Pico's -k mode.  New flag CUT_TO_END, option (-k, --cut),
+  affects do_cut_text in cut.c.  Not available with SMALL_NANO because it
+  depends on the marker code which is not available with that setting.
+- Changed static temp_opt to flag TEMP_OPT.  Fixed bug #29 (using
+  -t with an unwritable file causes users to get locked into editor).
+- move.c
+  page_down()
+       - Don't edit_refresh() if the bottom of the file is in the edit
+         buffer. (Adam)
+- nano.c:
+  main():
+       - TABSIZE now set before first call to edit_refresh (Bill Soudan)
+       - Different ^C kill code (patch by Christian Weisgerber).
+  die():
+       - More intelligent emergency-save filename selection (Rob)
+  do_spell():
+       - Changed exit semantics a bit so that aspell wouldn't get
+         all screwy (bug discovered by Joshua Jensen.
+- files.c:
+  read_file():
+       - Added init of buf variable, hopefully this will stop the
+         "bleeding" of text seen with mutt and using i18n.
+  write_file():
+       - Added code to check to see if using -l and the file is not
+         in fact a link.  This should fix the behavior where a file
+         that does not have write permission but could be removed and
+         rewritten is saved without error.  Please test this feature
+         and give feedback.
+- search.c:
+  search_init():
+       - Added " (to replace)" statement to end of search string if
+         we are doing a replace.  Manually converted all the translations
+         from '%s' to '%s%s' to ensure they still work with the new code.
+         Also put in the translation for " (replace)" in the .po's.  Hope
+         I didn't step on your toes doing this Jordi. (Chris)
+  do_search(), do_replace():
+       - Removed call to search_abort()/replace_abort() before call to
+         the opposite function.
+       - Fixed bug #28.
+  findnextstr()
+       - do not center string found if it is currently visible. (Adam)
+- fr.po:
+       - French update by Clement Laforet <clem_laf@wanadoo.fr>.
+- es.po:
+       - Updated strings to 0.9.13 (Jordi).
+
+nano-0.9.12 - 07/07/2000
+- all:
+       - New regexp search feature by Bill Soudan.  New flags USE_REGEXP
+         and REGEXP_COMPILED, new functions regexp_init, regexp_cleanup
+         replace_line, replace_regexp in search.c, changes to
+         search_init() and do_replace() and strstrwrapper().
+       - Added _POSIX_VERSION check to regexp code.  Better than nothing
+         for non-POSIX systems...
+       - Made search functions & keys more like Pico.  Added goto line from
+         search and replace function, changed wording to "No Replace" instead
+         of "To Search", "To Replace" to simply "Replace", and changed to
+         Pico's keystroke by default, ^R. Affects search_init(),
+         do_search() in search.c, globals in nano.h and
+         shortcut_init() in global.c.
+       - changed 'sprintf' calls to safer 'snprintf' (Rob)
+- cut.c
+       - further totsize update corrections
+- files.c:
+       - changed do_insertfile to call fix_editbot (Rob)
+       - Magic Line code in read_file (Rob)
+- nano.c:
+       - Removed dual alt_speller variables, oops! (Rocco Corsi)
+       - Removed unnecessary do_oldspell function (Rocco Corsi).  Added
+         SMALL_NANO #ifdef around actual spell function.
+       - Moved page_up() to move.c where is belongs.
+       - Corrected FIXME in do_enter with explanation. (Rob)
+       - Fixed FIXME in do_justify, resulted in creation of
+         fix_editbot [also fixed in do_enter] (winio.c) (Rob)
+  help_init():
+       - Moved newline out of if statement (Rocco Corsi)
+  do_char():
+       - Magic Line related code in do_char (Rob)
+  do_backspace(), do_delete():
+       - Added magic line code here too.
+
+- de.po:
+       - Revised translations by floki@bigfoot.com.
+- fi.po:
+       - Finnish translation by pauli.virtanen@saunalahti.fi.
+- utils.c:
+       - Added new_magicline()
+- winio.c:
+       - Added stdlib.h to includes, found by OpenBSD gcc.
+       - lots of new commenting around display functions
+  do_yesno(), nanogetstr():
+       - Removed now unnecessary raw/cbreak combos.
+       - Removed gettext calls from "Y(es)", "N(o)", "A(ll)" and "^C", till
+         we decide if those keybindings should be translated. (Jordi)
+  clear_bottomwin():
+       - Removed wrefresh(edit) call.
+  edit_update_top():
+       - Fixed a bug that caused nano to not update when
+         current->next == NULL (e.g. paging down to the very bottom of
+         ABOUT NLS wouldn't work).
+  fix_editbot:
+       - Added (should rebuild editbot from a valid edittop) (Rob)
+  edit_add:
+       - removal of redundant call to mvwaddnstr
+
+nano-0.9.11 - 06/20/2000
+- New flag "-T" or "--tabsize" to specify how to display tab widths.
+  Affects main() in nano.c, strlenpt(), xpt() and actual_x() (et al) in
+  winio.c, and nano.h.  Many hardcoded "8"s have been changed to the
+  TABSIZE int.  Added changes to nano.1 and nano.1.html.
+- id.po:
+       - Indonesian translation by Tedi Heriyanto.
+- es.po:
+       - Updated translation (Jordi Mallach).
+- winio.c
+       - Rewrite of display functions to correct the display problems
+         we had been seeing. Affects: add_marked_sameline, edit_add,
+         and many others. (Rob Siemborski)
+       - totsize fixes (Rob Siemborski)
+  total_refresh():
+       - Cut display_main_list call, as this function is only supposed to
+         refresh what's already on the screen, not go through the process
+         of adding the text again.
+- cut.c:
+       - totsize fixes (Rob Siemborski)
+- nano.c:
+       - experimental do_wrap and check_wrap (Adam Rogoyski)
+       - Removed editwineob, as it was redundant for (editwinrows - 1).
+         Changed all calls to editwinrows - 1 in nano.c and move.c.
+       - Removed all functions that were split into other files.
+         Affects LOTS of funcs.
+  do_enter():
+       - Added reset of placewewant to end.
+  do_insertfile():
+       - Fix display problem when using ctrl-r to load a file
+         into the buffer (Rob Siemborski)
+  handle_sigwinch():
+       - Added titlebar(), edit_refresh() and display_main_list() calls
+         because a resize wasn't picking up on possible different width
+         correctly.
+- utils.c:
+       - Moved nmalloc() and nrealloc() here.
+- move.c:
+       - New file, contains movement functions (like do_home(), do_up(),
+         do_down(), page_up(), etc...).
+- files.c:
+       - Contains functions for files (read_file, insert_file,
+         do_writeout(), etc).
+- search.c:
+       - Contains all our searching and related functions, (do_search(),
+         findnextstr(), do_replace(), do_gotoline()).
+
+nano-0.9.10 - 06/04/2000
+- es.po:
+       - Translation updates (Jordi).
+- AUTHORS, nano.1.html, TODO, README:
+       - Documentation and email address updates (Jordi).
+- nano.c:
+  main():
+       - Moved Adam's termio code down to after getopt() and before initscr()
+         to stop people losing their SIGINT character when using args that
+         exit nano before it runs (--version, --help, etc).
+
+nano-0.9.9 - 05/31/2000
+- Makefile.am:
+       - Added proper lines for defining LOCALEDIR.
+- configure.in:
+       - Spelling fixes (Jordi Mallach)
+       - Removed CFLAGS changes for gcc, reduces portability according to
+         some, and it certainly doesn't seem to decrease exe size.
+- es.po:
+       - Spanish translation updates (Jordi Mallach)
+- POTFILES.in:
+       - Added global.c file, was screwing up translations (i.e. they
+         weren't getting done).
+- cut.c:
+  add_to_cutbuffer():
+       - Added totsize increment.
+       - Cut fixes and optimizations (Rob Siemborski).
+  do_uncut_text():
+       - Added totsize increment in several places.
+- nano.c:
+  headers:
+       - Removed LOCALEDIR define.
+  do_justify():
+       - Added edit_refresh() call (bug discovered by Adam).
+  page_down_center():
+       - Added call to edit_update(current) for last case.  Removed
+         increment of current_y since it's now just wasteful.
+  do_enter():
+       - Added totsize increment.
+  renumber(), renumber_all():
+       - Removed totsize-- and totsize init in renumber_all.
+  do_mouse():
+       - Added edit_refresh() call to show highlight updates.  Removed
+         unnecessary wrefresh(edit).
+  main():
+       - Moved up locale calls so that translated --help messages would
+         actually get translated.
+  do_backspace(), do_delete():
+       - Added decrement of totsize.
+  init_help_msg():
+       - New function, initializes help text if NANO_SMALL isn't set (fixes
+         broken i18n).
+  read_file():
+       - malloc call changed to nmalloc (Rob Siemborski).
+- winio.c:
+  total_refresh():
+       - Completely rewrote function, not quite so brain-damaged now.
+
+nano-0.9.8 - 05/18/2000
+- nano.c:
+  main():
+       - Added awesome code that disables the CINTR and CQUIT
+         character (Adam Rogoyski).  Removed raw()/noraw() calls so that
+         nano gets input in 'normal' mode, which is the Right Way(tm) to
+         do it. ^S, ^Z and ^Q now work properly as a result, as well as
+         ^C.  New variable term, global variable oldterm to save previous
+         term settings, and changes to finish() and die().
+       - Added extra #ifdefs in getopt code, so that above code and
+         flag init is run even if GETOPT_LONG is not #defined.
+       - Added memset line before sigactions. (Adam Rogoyski)
+  do_suspend():
+         Removed function, see above for why.
+- winio.c:
+  update_line(), center_cursor():
+       - Removed wrefresh(edit) from bottom of functions.  wrefresh
+         should now only be called once, at the bottom of the main()
+         loop.
+- global.c:
+   shortcut_init():
+       - Removed suspend sc_init call and suspend message because suspend
+         is no longer needed in the shortcut list to work properly.
+
+nano-0.9.7 - 05/14/2000
+- nano.c:
+  do_home(), do_end():
+       - Added calls to update_line for the current line, fixes
+         lack of update (bug discovered by Alberto GarcĂ­a).
+  main():
+       - Added SET(FOLLOW_SYMLINKS) before getopt call, fixes not
+         following symlinks even when -l isn't set, and "no changes"
+         error when nano is called from crontab -e (Adam Rogoyski).
+- cut.c:
+  do_cut_text():
+       - Added edit_update_top to cut when mark is set, fixes lack of
+         display update (bug discovered by Ken Tyler).
+
+nano-0.9.6 - 05/08/2000
+- New Italian translation (it.po), by Daniele Medri.
+- nano.c:
+  page_up(), page_down():
+       - Added reset of placewewant to 0, as it should be.
+  do_up(), do_down():
+       - Added call to update_line() for line we move from and line we
+         move to, in order to keep the highlighting correct.
+  do_wrap():
+       - Added var chop, new code to wrap lines more like Pico, mostly.
+         THIS STILL DEFINITELY NEEDS TO BE REWRITTEN!
+- winio.c:
+  do_help():
+       - Added edit_refresh() before exit.
+  update_cursor():
+       - Removed cursor updating which really wasn't needed anyway.
+  edit_update():
+       - Removed yucky code that didn't work, this function now just
+         computes edittop and editbot and calls edit_refresh() to do the
+         rest, which removes a lot of duplicate code...
+
+nano-0.9.5 - 05/01/2000
+- Removed bytes from file struct because it was computationally wasteful.
+- cut.c:
+  do_uncut_text():
+       - Added call to edit_refresh().
+- nano.c:
+  do_backspace():
+       - Added reset of editbot when deleting the last line of the file
+         (bug discovered by Adam).
+  do_char():
+       - Removed call to reset_cursor().
+  do_delete():
+       - Added similar check as to do_backspace().
+  do_enter():
+       - Added call to edit_refresh().
+  do_left(), right():
+       - Added call to update_line(), still redundant but better...
+  do_up(), do_down():
+       - Added refresh calls both for current line and line to which
+         we are moving.
+  main():
+       - Removed inefficient call to edit_refresh() after every keystroke.
+         It is now up each function to leave the screen in a good state.
+- winio.c:
+  do_cursorpos()
+       - Rewritten to not use bytes from filestruct by an incremental sum.
+  update_line(), reset_cursor():
+       - Optimized calls to xplustabs() through a single variable.
+       - update_line() now takes a new arg, an index into the string
+         for where to update the line from.  Needed for new update
+         code.
+- configure.in:
+       - Better checks for slang, allows argument to --with-slang.
+         (Albert Chin-A-Young)
+       - Removed -Iintl from CFLAGS in gcc check.
+- Makefile.am:
+       - Addition of -Iintl for gettext (Albert Chin-A-Young)
+
+nano-0.9.4 - 04/25/2000
+ - Fixed calls to no_help and changed them to the more consistent
+   ISSET(NO_HELP).  Fixed return val of no_help to be what it should (2,
+   not 1.  Code to temporarily disable NO_HELP when in the
+   help system. (Adam Rogoyski)
+- cut.c:
+  do_marked_cut(), do_cut(), do_uncut():
+       - Commented out unnecessary bits when NANO_SMALL is being used.
+- winio.c:
+  xpt(), strlenpt(), actual_x():
+       - Added check for value of data[i] & 0x80, if so do not make
+         character 2 chars wide (orig. by Chris, 0x80 check by Adam).
+  edit_refresh():
+       - New check for temp == NULL (bad thing), if so go back to the
+         previous line.  New filestruct var hold points to prev line.
+         Fixes segfault when paging down to the end of a file.
+- nano.c:
+  write_file():
+       - Added check for if file exists and is not equal to the current
+         filename, prompt for overwrite (Adam Rogoyski).
+  do_down():
+       - Removed check for current->next == NULL, now checks return value
+         of do_down before setting current_x = 0 (discovered by Adam).
+  do_justify():
+       - Fixed segfault when reaching the last line (tried to assign
+         current->next->data when current->next == NULL) (discovered
+         by Adam).
+- utils.c:
+       - Removed extra macro defs that are now in nano.h.
+- nano.h:
+       - Changed macro SET() to use |= instead of ^=.  Fixes bug in
+         cut code when cutting more than one line, and cutbuffer gets
+         blown away when it shouldn't.
+
+nano-0.9.3 - 04/29/2000
+- cut.c:
+  do_marked_cut():
+       - Fixed off by one error in cut code for marked text.
+  do_cut_text():
+       - Removed check for being on the last line, part of
+         magic line code.
+  add_to_cutbuffer():
+       - Moved tmp->prev = inptr line to part where cutbuffer != NULL.
+       - Added inptr->prev = NULL for case where cutbuffer == NULL.
+- nano.c:
+  do_backspace(), do_char():
+       - Removed "magic line" code.  It was basically causing more bugs
+         than it was helping for the sake of compatibility.  This fixes
+         at least one known segfault condition.
+  do_enter():
+       - Added setting editbot to new node if the new node is the last
+         node in the file.
+  write_file():
+       - Changed writing file behavior.  Now, if last line of the file
+         has any data on it, we write a newline on it, else we don't.
+- winio.c:
+  add_marked_sameline():
+       - New code that checks for whether the begin and end of the marker
+         are on different lines.  Missing previously.
+  edit_add():
+       - added some more checks for text length.  Cleaned up some
+         mvwaddnstrs that could be written more simply as waddnstrs.
+  edit_refresh():
+       - Removed check for temp == filebot, it is now treated like any other
+         line.  Fixes a bug where selected text on the last line shows
+         normally.
+  xpt():
+       - Removed an extra computation for tabs variable that was incorrect.
+  xplustabs():
+       - Since xpt now actually works, this func is now just a wrapper for
+         xpt(current, current_x)
+- nano.1, nano.1.html:
+       - Added -l option to man pages.
+- configure.in:
+       - New option --enable-tiny, #defines NANO_SMALL in config.h.
+         Disables call to gettext in functions and other i18n stuff in
+         nano.c, the detailed help mode, the resize functions, and the
+         justify code which no one ever uses.
+       - New option --with-slang.  Enables slang libraries instead of
+         ncurses, requires slcurses.h for wrapper functions. (Based
+         on patches for 0.8.7 by Glenn McGrath).
+
+nano-0.9.2 - 04/15/2000
+- This release just fixes the serious segfault problem if nano is
+  invoked any way other than using the absolute path.  The bug was
+  in the new code for checking whether nano is invoked as 'pico'.
+
+nano-0.9.1 - 04/14/2000
+- Added Pico compatibility for ^T when in search or switch to switch
+  to the opposite function.  Added one to REPLACE_LIST_LEN and
+  WHEREIS_LIST_LEN in nano.h, new args to sc_init_one in global.c and
+  new strings that will have to be gettext()ed.  New argument 'replacing'
+  to search_init().  Handlers in do_replace and do_search().
+- New write code, now follows symbolic links instead of replacing them
+  with the new file.  New option (-l, --nofollow) to enable the old
+  (incorrect, but secure) behavior (Adam Rogoyski).
+- nano.c:
+  do_wrap():   
+       - Fixed another bug relating to wrapping, and which would cause
+         a segfault *sigh*.
+  do_replace():
+       - Incremented current_x by the length of the replacement
+         text inside the main replace loop.  Fixes bug #15.
+  add_marked_sameline():
+       - New function, handles marked text when start & end of marker is
+         on one line, also supports most marked text when cursor > COLS.
+  main():
+       - Code to check if nano is invoked as 'pico', and if so
+         automatically set pico_msgs (Robert Jones).
+
+nano-0.9.0 - 04/07/2000
+- nano.1, nano.1.html:         Updated man page with my email address and homepage.
+- winio.c:
+  reset_cursor(), update_line():       
+       - Changed update algorithm for x value to (COLS - 7) multiple when x
+         value > (COLS - 2).
+- edit_refresh():
+       - Removed inner loop code, now calls update_line() for each line
+         in question, MUCH nicer.
+- xplustabs(), xpt():
+       - Removed redundant increment of tabs when column no % 8 == 0.
+       - Added check for data[i] < 32, most of such bits are 2 chars wide.
+- update_line():
+       - Fixed a stupid call to strlenpt with col when we should have
+         been using actual_col.  Ugh.
+
+nano-0.8.9 - 03/22/2000
+- nano.c:
+  empty_line(), no_spaces(), justify_format(), do_justify():
+               Actually added these (screwup applying patch).
+  do_justify():        Added call to set_modified().
+
+nano-0.8.8 - 03/12/2000
+- Preliminary internationalization support.  Many many functions modified
+  to use gettext (via _() macro).  es.po file included. (Jordi Mallach)
+  New dirs po/ and intl/, changes to configure.in and Automake.am to
+  support i18n.
+- nano.c:
+  includes:    Added sys/param.h and limits.h. (Adam Rogoyski).
+  statics:     Changed some things that were not necessarily static
+               (Adam Rogoyski).
+  nrealloc():  New function, similar to nmalloc().  Changed calls from
+               realloc() to nrealloc (Adam Rogoyski).
+  empty_line(), no_spaces(), justify_format(), do_justify():
+               New functions for justify function (Adam Rogoyski).
+- winio.c:
+  blank_edit():        Added wrefresh call to edit so that screen updates (like
+               on ^L) actually work.
+  xplustabs(), xpt(), strlenpt(): Fixed off-by-one buglets (Adam Rogoyski).
+
+nano-0.8.7 - 03/01/2000
+- main.c:
+  do_wrap():   Better fix for segfaults, and fix for lines being wrapped
+               to a single character on one line when no good place to
+               break the line exists, and for wrapping lines longer than
+               COLS.
+- nano.1.html:
+               Html version of man page, now included in dist.  For
+               the benefit of nano packages in Linux distributions.
+
+nano-0.8.6 - 02/24/2000
+- global.c:
+  shortcut_init():
+               Added shortcuts for goto_line and do_replace when using
+               pico_msgs.  Oops.
+- nano.c:
+  statics:     Changed fill back to 0 from 71 by default (Adam Rogoyski).
+  do_wrap():   Added check for backing up past tabs, which we shouldn't do.
+               Removed check for backing up past spaces first.
+  main():      Added for loop to check for alt keys instead of hard list.
+  do_enter():  Fix for bug #14, added call to reset_cursor and messed
+               up do_char quite a bit.
+  version():   Added time and date stamp for compile on version message.
+               Added mail and web page info.
+- README:      Updated mailing list info.
+
+nano-0.8.5 - 02/18/2000
+- nano.c:
+  main():      Finally fixed tilde being input on page up/down keys in
+               certain terminal types.  Fix was input 26->91->5[34] check
+               for 126, if so make the kbinput PAGE UP/DOWN, else unget
+               the keystroke and continue.  Added #include <ioctl.h> for
+               ioctl call.
+  handle_hup():
+               Handler for hangup signal.  Belated include of patch from
+               Tim Sherwood.
+- winio.c:
+  edit_refresh():
+               Temporary fix for selecting text when temp == current.
+               edit_refresh() is now unmanageably complex, and must be
+               revamped.
+  check_statblank():
+               Added check for constupdate, makes things less choppy
+               (Adam Rogoyski)
+
+nano-0.8.4 - 02/11/2000
+- Moved global variables that were only (or mostly) used in one file into
+  its proper file as a static.  Affects cut.c, nano.c, global.c (Andy Kahn).
+- global.c:    
+  shortcut_init():
+               Removed redundant NANO_CONTROL_H from backspace shortcut,
+               added char 127 which should have been there.
+- nano.c:
+  main():      Fix for loops looping until MAIN_LEN, added -1 to stop
+               segfaults (Adam Rogoyski).
+- Makefile.am: Added all source filenames (Adam Rogoyski).
+- nano.1:      Fixed mail addressed and added mailing list address.
+- README:      Updated my email address and the nano web page.
+
+nano-0.8.3 - 02/08/2000
+- New Pico mode (-p, --pico), toggles (more) compatibility with the
+  Pico messages displayed in the shortcut list.  Note that there are still
+  small differences in this mode.
+- nano.h:      New shortcut struct format, for the benefit of i18n and
+               our help menu.  Removed shortcut message macros, they are
+               now all in shortcut_init in global.c.
+- nano.c:
+  do_wrap():   Removed resetting of current_x when we are in fact
+               wrapping to the next line, fixes a bug in -i mode.
+  do_enter():
+               Rewrote the autoindent mode code to be a lot less pretty,
+               but a lot more magical.
+  main():
+               Removed case for ignoring char 126 (~).  That's kind of
+               important, we'll have to fix handling that sequence when
+               paging up/down on a terminal some other way... Revamped
+               main switch loop in much snazzier fashion based on the
+               shortcut list.
+- winio.c:
+               New function display_main_list.  Affects all functions
+               that used to call bottombars() with main_list.  Added
+               because we now only call bottombars with the macro
+               MAIN_VISIBLE instead of MAIN_LIST_LEN, because of the
+               changes to the main_list shortcut list (see global.c below).
+               New function do_help, our preliminary dynamic help system.
+- Many many funcs:
+               Changed from int to void to allow one uniform type to call
+               from the shortcut struct.  Also a few functions that do
+               not simple have void argument have new functions called
+               funcname_void(void) to be called from the shortcut list.
+               do_cut_text and do_uncut_text were changed to void
+               arguments because they were never called with a filestruct
+               other than *current anyway.
+- global.c:
+               Shortcut list main_list was expanded to cover all
+               shortcuts that could be caught in the main loop.
+               Consequently there is a new macro MAIN_VISIBLE which tells
+               how many items in the main list to actually show.
+
+nano-0.8.2 - 02/02/2000
+- Added initial mouse (-m, --mouse) support.  New global variable
+  use_mouse. (Adam Rogoyski)
+
+- nano.c:      Set initial value of fill to COLS - 8 rather than just 72
+               regardless. (Adam Rogoyski).
+  do_delete(): 
+               Deleted call to do_backspace() when on the end of a line,
+               because it won't update the line properly.
+  do_backspace():
+               Removed unnecessary pointer manipulation that was being
+               handled by unlink_node().
+  open_file():
+               Added check for trying to open a directory (currently we
+               segfault on this).  Bug pointed out by Chad Ziccardi.
+
+nano-0.8.1 - 01/28/2000
+- Implemented Pico's -r (fill) mode, command line flag -r or --fill.  New
+  global variable fill, affects check_wrap(), do_wrap(), main(), usage(),
+  global.c and proto.h.
+- nano.c:
+write_file():          Added (incredibly) necessary check for EPERM when
+                       link() fails.  This allows us to actually save
+                       files via rename() on filesystems that dont
+                       support hard links (AIEEEEEE).
+do_goto():
+                       Fixed a stupid mistake where we were calling
+                       bottombars() with replace_list instead of goto_list.
+- nano.h:
+                       New char *help in shortcut structure for help
+                       feature. Added NANO_*_MSG and NANO_*_HELP #defines
+                       for help function and i18n.
+- global.c:
+                       New functions shortcut_init (called in nano.c) and
+                       sc_init_one() to initialize the shortcuts without
+                       using {}s (for i18n).
+
+nano-0.8.0 - 01/25/2000
+- View flag (-v, --view) implemented.  Global variable view_mode, affects
+  main loop of nano.c and new_file(). (me)
+- nano.c:
+                       split checks for TERMIOS_H and TERMIO_H up so we
+                       can (theoretically) include them both, which is good.
+handle_sigwinch():
+                       Added check for ncurses.h.  (Andy Kahn)
+do_spell():
+                       We now only try ispell because we don't as of yet
+                       handle the 'spell' program the right way, now that
+                       I finally know what the right way is =-).  Added
+                       call to edit_update(fileage) to stop segfaults.
+global_init():
+                       Added initialization of edit* filestruct pointers
+                       to stop segfaults on spell check.
+usage():
+                       Check for getopt_long, and if no leave out the
+                       GNU options everyone seems to love so much (Andy Kahn)
+main():
+                       Added checks for getopt_long (Andy Kahn)
+                       We ignore character 126 because it gets put into
+                       the buffer when we page up/down on a vt terminal.
+write_file():
+                       Fixes for umask (Adam Rogoyski).  Renamed tmpfile
+                       variable to tmp.  Documented the tmp option
+                       better in the function comments.  Fixed my
+                       stupidly commented out check for tmp on setting
+                       umask which I really like =>
+- nano.h:
+                       Made desc variable in shortcut struct a pointer
+                       instead of a fixed-length string.
+- utils.c:
+                       Fixed check for config.h before nano.h.
+- configure.in:
+                       New checks for getopt_long, getopt.h, removed
+                       CFLAGS and LDFLAGS changes.  Gonna have to run
+                       strip manually now =-) (Andy Kahn)
+                       Added check for HAVE_WRESIZE, new file acconfig.h
+                       (me).
+
+nano-0.7.9 - 01/24/2000
+- New autoindent feature.  Command flag 'i' or '--autoindent'.  New
+  function do_char() to clean up character output, global
+  variable autoindent in global.c. (Graham Mainwaring)
+- New flag 't' or '--tempfile', like Pico's -t mode, automatically saves
+  files on exit without prompting.  Affects do_writeout().  Also
+  do_writeout() now takes a parameter for if exiting.
+  Global variable temp_opt in global.c (Graham Mainwaring)
+- Preliminary spell program support.  Added command flag '-s' or
+  '--speller' for alternative speller command.  Added function do_spell()
+  and exit_spell() to nano.c.  New global variable alt_speller.
+- nano.c:
+  main():      We now ignore input of decimal 410 because these get entered
+               when we resize the screen.  Sorted options in getopt()
+               switch statement.
+  usage():     Sorted options and changed tabs to make room for -s option.
+  write_file():        Now takes a second parameter 'tmpfile', uses mask 0600 and
+               doesn't print the number of lines written on the statusbar.
+  global_init():
+               Added more initializations to globals to support do_spell().
+
+nano-0.7.8 - 01/23/2000
+- Stubbed justify function.  Affects main() in nano.c and nano.h defines.
+- Added Fkey equivalents for Pico compatibility.  Affects nano.h defines
+  and main() in nano.c
+- Removed redundant reset_cursor() calls from the blank() routines.
+- nano.c:
+  main():      Fixed typo in main while loop for NANO_ALT_REPLACE_KEY.
+               Removed check for isprint() characters in main while loop
+               for people with odd character sets *shrug*.  Added some X
+               window F-key combos.
+  read_line(): New function, consolidates of most of the special
+               sections of the file reading code. (Rob Siemborski)
+  do_replace(): Many scattered fixes. (Rob Siemborski)
+  write_file():        Added check for empty filename.
+- winio.c:
+  nanogetstr():        Fixes for deleting at places other than the end of the
+               buffer, cut support. (Adam Rogoyski)
+  blank_edit():        New function, blanks edit buffer.  Added call to it in
+               total_refresh().
+- configure:   Checks for glib if snprintf or vsnprintf aren't available
+               (Andy Kahn). Changed warning message when no termcap lib
+               is found.
+
+nano-0.7.7 - 01/19/2000
+- Option '-v' for version moved to '-V', because -v is Pico's "read only"
+  mode (affects getopt() in main() and usage() function in nano.c
+- New flag -c, always show cursor position.  Affects main() in nano.c and
+  statusbar() in winio.c
+- Option '-x' doesn't show help window at the bottom of the editor.
+  New variable no_help in nano.h and proto.h, affects main(), usage(),
+  and global_init() in nano.c, blank_bottombars(), clear_bottomwin(),
+  bottombars(), and do_yesno()  in winio.c  (I had to apply this patch by
+  hand =P) (Adam Rogoyski)
+- nano.c:
+  handle_sigwinch():   New function (Adam Rogoyski), handles resizing.
+  page_up(), page_down():      
+       - New functions.  We now set the cursor at the top right corner,
+         not at the center line, and page up and down a full screen
+         rather than a half screen. Original functions renamed to
+         page_up_center() and page_down_center().
+  main():
+       - Added check for keystroke key sequence 407 or NANO_CONTROL_Z
+         in main while loop because suspend mode was broken.  This should
+         fix it, at least for now.
+       - Added long option support (By popular harassment ;-) - Added
+         #include for getopt.h, changed getopt() to getopt_long().
+         Options added so far: --version (-V), --nowrap (-w), --suspend
+         (-z), --help (-h), --nohelp (-x).
+       - Rewrote signal statements (Adam Rogoyski)
+
+nano 0.7.6 - 01/15/2000
+- New ChangeLog format
+- nano.c:
+  main():      Bound CONTROL_H to backspace (oops)
+               Added more Alt-[-key combinations, for page up & down.
+  read_bytes():        New function (Adam Rogoyski)
+  read_file(): Optimizations - malloc()s *buf a little at a time rather
+               than one huge buffer, and replaced the strcat at the end
+               with an index variable.  Added call to read_bytes().
+  do_next_word(): New function, binding is control-space (0) (me)
+
+- winio.c:
+  bottombars():        Fixed non-expanding shortcut keys at bottom of screen.
+               (formula is extra space needed = COLS / 6 - 13).
+  actual_x() & strlenpt():     
+               Added bug#9 fix - when tabs % 8 == 0, we should only
+               increment tabs by 1.
+  titlebar():  Fixed overrun in titlebar on very long filenames.
+
+0.7.5  Pico 'last line' feature added (Rob Siemborski & me).  Eliminated
+       writing a newline at EOF. do_cursorpos and do_replace are now not
+       directly bound to signals but picked up as their control sequences
+       in raw mode. Bug fix in do_backspace. Fixed bug #9 (woohoo!)
+0.7.4  Optimized (obfuscated?) edit_refresh. Malloc() calls checked for
+       available memory, align bug fixed (Big Gaute).
+
+--- As of version 0.7.4 TIP is renamed to nano.
+
+0.7.3  Fixed a double blank_statusbar() when jumping to first and last
+       lines.  Took out unnecessary updates in load_file. Bug fix in
+       do_left. Missing updates to totlines, fixed bug #7 (last line not
+       having a newline at the end doesn't get read, bugfix in do_replace
+       with replace all, more/better comments (Robert Siemborski)
+0.7.2  Our first patch accepted into the source! configure fixes
+       and optimizations (Erik Anderson).  Added missing stdarg.h to winio.c.
+       Bug fix in update_line for editing long lines. Fixed arguments
+       being put into the filename when none is specified. Preliminary
+       +line command argument function.
+0.7.1  configure tweak for better FreeBSD support. Removed refresh() from
+       edit_refresh to stop cursor "jumping" during screen updates.  This
+       will probably cause a bug or two. Replace is now Alt-R (@R) and
+       Goto line is Alt-G (@G), but they have control key aliases of ^\ and
+       ^_ respectively.  Made Control-F,B,N,P work like they do in Pico.
+       Control-G will become the Help key, but for now is stubbed out.
+0.7.0  Fixed missing stdlib.h from cut.c. Fixed a few message bugs in
+       findnextstr. Bound Control-D to Delete. Refixed segfault on zero
+       length file. Added Esc-[-A,B,C,D cursor key sequences.
+0.6.9  Preliminary cursor position function. Split up tip.c more, made
+       new files cut.c and winio.c. Fixed a bug in cut_marked_segment
+       that was leaving out a character.
+0.6.8  By request, optchr in main() is now an int.  Removed unneeded
+       globals. Bound functions for next/prev page, and wrote functions
+       do_home and do_end.
+0.6.7  Bugfix in do_uncut_text for totlines. Broke up open_file and
+       created read_file.  Implemented Insert File. Fixes in tipgetstr
+       for erroneous keystrokes. Added leave_cursor arg to do_yesno().
+0.6.6  Fixes in do_search(), do_replace(), do_writeout, and do_exit() for
+       aborted searches and more Pico-compatible messages. statusq() now
+       returns -2 on a blank entry instead of -1. Bug fix in actual_x().
+0.6.5  More BSD compatibility.  Fixed two bugs in do_uncut_text
+       regarding buffers with filebot in them.  Fixins in do_backspace
+       and do_enter. Removed unused variables. Removed strip_newline.
+0.6.4  Took out the awful newlines from each string buffers.  This will
+       certainly cause more bugs. Fixes in do_exit(). Better empty file
+       handling (I hope).
+0.6.3  Implemented ^E.  Removed now unneeded wrapline from filestruct.
+       do_enter() rewritten.
+0.6.2  Better default file permissions. Complete rewrite of do_wrap().
+       Better handling of editing with cursor near COLS - 1.
+0.6.1  Starting to implement wrapping toggle. Fix for unhandled control
+       codes being entered into the buffer. Bug fix in actual_x; more
+       > COLS - 1 functionality, especially on lines with TABs.  Fixed being
+       locked into cutbuffer when cutting more than one marked screen of
+       text.
+0.6.0  We have TABs!!!  To do this, placewewant is now set to the actual
+       width on the screen we want to be, not an index of current->data.
+       New functions xplustabs and actual_x convert the actual place
+       the cursor should be on the screen to and from the place in the
+       string.
+0.5.5  Changed do_right to test do_down before setting current_x to 0,
+       eliminating the "looping" on the last line when holding the right
+       arrow.  Preliminary support for longer than COLS - 1 lines.
+       Wrote do_delete.
+0.5.4  Fixed a bug in total_update that wasn't repainting the screen
+       properly.  tipgetstr is much more messy but text is now more
+       editable ;)  Fixed crash on entering a new file, hopefully.  Awful
+       stub for tab handling, only in do_right() to save me some sanity.
+0.5.3  Added check for malloc.h.  Implementing uncut from marker slowly.
+       Fixed a few bugs in do_uncut when not uncutting from marked text.
+       I would not trust your data with the mark code right now, but then
+       we're not at version 1.0 yet so dont trust anything ;)
+0.5.2  Added reset_cursor() before end of update_line so cursor doesn't
+       jump after each keystroke entered. Select text stubbed. Fixed
+       a bug in total_refresh().  Setting a mark will highlight properly,
+       but does not actually affect what gets put in the cutbuffer (yet).
+0.5.1  Writing a file out causes modified to be set back to 0.  Good.
+       Set_modified function written.  Cut and uncut text now set
+       modified when called.
+0.5.0  Half way there!  Implemented write out, save function seems
+       stable.  Changed statusbar blank routing to not refresh, a separate
+       program calls it and then refreshes.  Made the program not clear
+       the screen on exit, just the bottom two lines (like Pico).
+0.4.2  Implemented replace all in replace function.  Crude exit function
+       (asks yes or no if modified but does not write to file).
+0.4.1  Implementing search & replace.  Fixed crash on deleting at top of
+       edit buffer.  Implemented "timeout" of statusbar messages.
+       Implemented ^A and ^E (beginning and end of line).
+0.4.0  Split code into global.c and proto.h to allow for better multiple
+       file handling.  Added #defines for the majority of the shortcut
+       keys in tip.h for easy modification.
+0.3.1  Write edit_refresh which doesn't move the screen around, just
+       updates what's there already.  do_wrap() and do_enter() added.
+0.3.0  Preliminary cutbuffer (cut and uncut) support.
+0.2.7   Check for Modification added.  do_search() works.
+0.2.5  Rewrite of file data struct.
+0.2    Read in data to buffer, bound keystrokes to stub functions,
+       initial cursor movement on screen.  Initial autoconf support.
+0.1    Initial program setup w/ncurses
+
+$Id$