-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.
--- /dev/null
+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$