diff --git a/ChangeLog b/ChangeLog index 1dd7391c..128d5893 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8376 +1,8 @@ -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 ) - 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 - ) - - 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 in proto.h. (David Benbennick) DLR: - Remove some redundant inclusions of 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 , - 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 ). -- 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 . - - Wojciech Kotwica 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 . -- 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 . -- 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 - , 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 . -- po/sv.po: - - New Swedish translation by Christian Rose . - -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 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 . -- 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 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 + + * ChangeLog: Rework the 2.1 branch's changelog to be more + readable, per Jordi Mallach's suggestion. + * ChangeLog.pre-2.1: Move the 2.0 branch's changelog here, per + Jordi Mallach's suggestion. + * src/help.c (help_init): Add a missing space to the "Execute + Command" help text. diff --git a/ChangeLog.pre-2.1 b/ChangeLog.pre-2.1 new file mode 100644 index 00000000..72d59571 --- /dev/null +++ b/ChangeLog.pre-2.1 @@ -0,0 +1,8369 @@ +GNU nano 2.0.3 - 2007.01.29 +- General: + - Miscellaneous comment fixes. (DLR) + - More int -> bool conversions. (DLR) + - Don't install the nanorc manpages or generate their HTML + versions if nano is built without nanorc support. Changes to + configure.ac, doc/man/Makefile.am, and doc/man/fr/Makefile.am. + (DLR) + - Simplify the commands that generate HTML documentation in + order to remove unnecessary usage of cat. Changes to + doc/man/Makefile.am, doc/man/fr/Makefile.am, and + doc/texinfo/Makefile.am. (DLR) +- files.c: + do_writeout() + - When setting retval to the return value of + write_(marked_)?file(), use the "?" operator instead of an + if/else clause. (DLR) + is_dir() + - Don't assign dirptr's value using buf until we've asserted + that buf isn't NULL. (DLR) + - Remove unneeded assert. (DLR) +- proto.h: + - Add missing is_dir() prototype. (DLR) +- search.c: + regexp_init() + - Don't assign rc's value via regcomp() until we've asserted + that regexp_compiled is FALSE. (DLR) +- text.c: + do_alt_speller() + - Rename variable altspell_error to alt_spell_error, for + consistency. (DLR) + do_spell() + - Rename variable i to status, for clarity. (DLR) +- winio.c: + do_credits() + - Update the last copyright notice to include 2007. (DLR) +- Makefile.am: + - Add README.CVS to EXTRA_DIST, so that nano's CVS checkout + instructions aren't only available in its CVS snapshots. (DLR) +- README: + - Add more miscellaneous cosmetic fixes. (DLR) +- README.CVS: + - Update for the 2.0 branch of nano. (DLR) +- NEWS: + - Formatting fix. (DLR) +- m4/glib-2.0.m4: + - Import the latest version of this file from glib 2.10.3. (DLR) +- doc/faq.html: + - Update section 4.1 to describe how to open files with names + beginning with '+' at specified columns as well as lines. + (DLR) +- doc/man/fr/Makefile.am: + - Set mandir before setting man_MANS, to more closely match + doc/man/Makefile.am. (DLR) +- doc/syntax/python.nanorc: + - Improve string highlighting regexes. (Mike Frysinger) + +GNU nano 2.0.2 - 2006.12.20 +- General: + - Miscellaneous comment fixes. (DLR) +- browser.c: + do_browser() + - Properly handle directories that contain nulls. (DLR) +- files.c: + do_insertfile() + - Properly handle filenames and executable commands that contain + nulls. (DLR) + write_file() + - Properly handle filenames that contain nulls. (DLR) + do_writeout() + - Fix a segfault when we can't get the full path of either the + filename we want to save under or the original filename. (DLR, + found by Mike Frysinger) +- nano.h: + - Rename NANO_ALT_REPLACE_KEY to NANO_REPLACE_ALTKEY, for + consistency. (DLR) + - Rename NANO_ALT_.* and NANO_.*ALTKEY to NANO_META_.* and + NANO_.*METAKEY, for consistency. (DLR) +- search.c: + update_history() + - Fix minor memory leak. (DLR) +- text.c: + do_spell() + - When setting i to the return value of write_(marked_)?file(), + use the "?" operator instead of an if/else clause. (DLR) + do_verbatim_input() + - Fix minor memory leak. (DLR) +- winio.c: + parse_kbinput() + - Add missing break. (DLR) + - Fix minor memory leak. (Itay Perl) + parse_verbatim_kbinput() + - Fix minor memory leak. (DLR) + edit_draw() + - Fix potential warnings when assigning -1 to paintlen by using + if/else clauses instead of "?" operators. (DLR) +- configure.ac: + - Reword several option descriptions, for clarity. (DLR) +- doc/faq.html: + - Add miscellaneous wording and capitalization fixes. (DLR) +- BUGS: + - Add miscellaneous cosmetic fixes. (DLR) +- README: + - Update for the 2.0 branch of nano. (DLR) + +GNU nano 2.0.1 - 2006.11.20 +- General: + - Miscellaneous comment fixes. (DLR) + - Fix copyright notices to not abbreviate the year list using a + range. Changes to do_credits() and all source files. (DLR) +- files.c: + get_full_path() + - Remove unneeded assert. (DLR) + - Fix problem where only paths would be returned when both paths + and filenames should have been. (DLR) + do_writeout() + - For consistency, when saving a file with no name, don't allow + overwriting an existing file when in restricted mode. (DLR) + - Fix problem where a file could sometimes be overwritten + without a warning prompt. (DLR) +- winio.c: + do_replace_highlight() + - Include the code to display zero-length matches even when + regex.h isn't found, as it can also be used to display + zero-length Unicode characters. (DLR) +- doc/rnano.1, doc/fr/rnano.1: + - Add missing "(C)" to the copyright notice in the comments. + (DLR) +- doc/nano.texi: + - Remove unneeded "." from the copyright notice in the comments. + (DLR) +- NEWS: + - Add missing entries for nano 1.0.2 and 1.0.3, since 1.1.0 + includes their changes. (DLR) + +GNU nano 2.0.0 - 2006.11.06 +- General: + - Miscellaneous comment fixes. (DLR) + - Add syntax for POV-Ray files. New file doc/syntax/pov.nanorc; + changes to doc/nanorc.sample.in and doc/syntax/Makefile.am. + (Donnie Berkholz, minor tweaks by DLR) +- AUTHORS: + - Update for the 2.0 branch of nano. (DLR) +- nano.spec.in: + - Update links for the 2.0 branch of nano. (DLR) + - Update for newer RPM-based distributions. (DLR, adapted from + the nano 1.3.12-1.1.spec file in Fedora Rawhide) + - Delete the changelog section, as it hasn't been kept up to + date, and all its changes are documented here in any case. + (DLR) +- doc/faq.html: + - Update links for the 2.0 branch of nano. (DLR) +- doc/nano.1, doc/nanorc.5, doc/rnano.1: + - Add minor wording fixes. (DLR) +- doc/man/fr/nano.1, doc/man/fr/nanorc.5, doc/man/fr/rnano.1: + - Updated manpage translations by Jean-Philippe Guérard. +- doc/nano.texi: + - Add minor wording and punctuation fixes. (DLR) + +GNU nano 1.9.99pre3 - 2006.10.25 +- chars.c: + nstrncasecmp() + - When returning, use the "?" operator instead of an if/else + clause. (DLR) +- cut.c: + do_cut_text() + - When uncutting text in the process of copying it, always set + placewewant, as do_uncut_text() does, so that the current line + is always updated properly. (DLR) +- files.c: + input_tab() + - Since the field precision operator used in the sprintf() uses + ints and not size_t's, replace it with two strncpy()s, which + use size_t's, and a null termination. (DLR) +- help.c: + parse_help_input() + - Add 'E' and 'e' as aliases for Exit, for consistency with the + file browser. (DLR) +- m4/ac_define_dir.m4: + - Import the latest version of this file from + http://autoconf-archive.cryp.to/ac_define_dir.m4. (DLR) +- doc/faq.html: + - Update the question in section 4.13 to match the version of it + in the answer section. (DLR) +- doc/syntax/c.nanorc: + - Simplify "undef", "ifn?def", "elif", and "else" in the + preprocessor regexes. (DLR) + +GNU nano 1.9.99pre2 - 2006.10.02 +- General: + - Miscellaneous comment fixes. (DLR) + - Make sure that the statusbar cursor position is always + properly reset when we get out of all statusbar prompts. + Changes to do_insertfile(), do_writeout(), + handle_sigwinch(), main(), and do_prompt_abort(). (DLR) +- prompt.c: + do_statusbar_input() + - If we get a verbatim input sequence ending with Ctrl-J, remove + the Ctrl-J from the buffer before interpreting it as Enter, so + that it doesn't erroneously fall through to the edit window + and get interpreted as Justify. (DLR) +- winio.c: + get_input() + - Simplify to avoid an unnecessary key_buffer_len check. (DLR) +- doc/syntax/c.nanorc: + - Add "size_t" and "ssize_t" to the types regexes. (DLR, + suggested by Mike Frysinger) + - Simplify "signed" and "unsigned" in the types regexes. (DLR) + +GNU nano 1.9.99pre1 - 2006.08.29 +- General: + - Miscellaneous comment fixes. (DLR) + - Fix option descriptions. At least one of the two parts of + +LINE,COLUMN must be specified at all times; COLUMN is not the + only optional value. Also, fix wording problems in + -O/--morespace and -W/--wordbounds. Changes to usage(), + UPGRADE, nano.1, nanorc.5, rnano.1, nano.texi, and + nanorc.sample.in. (DLR) + - Fix mouse support so that it truly ignores everything except + releases and clicks of button 1. Changes to + enable_mouse_support() and get_mouseinput(). (DLR) + - In certain places, call wnoutrefresh(bottomwin) after calling + blank_statusbar(), in order to ensure that the statusbar is + actually blanked. Changes to do_help(), do_continue(), + handle_sigwinch(), and update_statusbar_line(). (DLR) + - If the mark isn't on, allow Meta-} and Meta-{ to indent and + unindent only the current line, just as it would if the mark + covered only the current line, instead of displaying a + statusbar message and quitting. Changes to shortcut_init(), + do_indent_marked() (renamed do_indent()), + do_indent_marked_void() (renamed do_indent_void()), + do_unindent_marked_void() (renamed do_unindent()), and + UPGRADE. (DLR, suggested by John M. Gabriele) + - Consolidate do_scroll_(up|down)() into do_(up|down)(), as + they have a lot of duplicate code. New functions do_up_void() + and do_down_void(); changes to shortcut_init(), do_up(), + do_scroll_up(), do_down(), do_scroll_down(), do_left(), and + do_right(). (DLR) + - Make Jordi's email address, and the description of what the + manual pages were written for, consistent in the + documentation. Changes to AUTHORS, nano.1, nanorc.5, and + rnano.1. (DLR, based on suggestions by Jordi) + - Don't include sys/ioctl.h in nano.c when NANO_TINY is defined, + as ioctl() is never used then. (DLR) + - Improve the display of bools in debugging statements. Changes + to parse_kbinput(), get_escape_seq_kbinput(), + parse_escape_seq_kbinput(), get_shortcut(), and get_toggle(). + (DLR) + - Rename the values of the scroll_dir enum to UP_DIR and + DOWN_DIR, since UP is defined as a termcap value in Tru64's + and NetBSD 3.0's curses.h, which breaks compilation on those + systems. Changes to do_page_up(), do_page_down(), do_up(), + do_down(), nano.h, and edit_scroll(). (DLR; found by Daniel + Richard G. and Adam Wysocki, repectively) + - Rename the DISABLE_ROOTWRAP #define to DISABLE_ROOTWRAPPING. + (DLR) + - When using slang 2.x, call SLutf8_enable() with an argument of + 1 instead of TRUE, as that's the proper way to enable its + UTF-8 support. Changes to main() and configure.ac. (DLR) + - Fix punctuation relating to "i.e." in various comments and + documentation. (Benno Schulenberg and DLR) + - Make bad_mbchar a static const char* const in chars.c, as its + value doesn't change. (DLR) + - Add various clarifications to translated strings. Changes to + do_insertfile_void(), shortcut_init(), toggle_init(), + help_init(), print_view_warning(), usage(), and do_mark(). + (Benno Schulenberg, minor tweaks by DLR) + - Properly preserve the cursor position when going from the + "Read File" or "Save File As" prompt to the file browser to + the "Go To Directory" prompt, and then canceling back to the + "Read File" or "Save File As" prompt. Changes to + get_prompt_string() and do_prompt(). (DLR) + - Rename the parameter old_pww to pww_save in + need_statusbar_horizontal_update(), need_horizontal_update(), + need_vertical_update(), and edit_redraw(); and rename the + variable old_pww to pww_save in do_search() and do_research(); + for consistency. (DLR) +- browser.c: + do_browser() + - Refactor the mouse support, modeling it after do_mouse() for + consistency. (DLR) + - Remove unneeded call to blank_edit(). (DLR) + - After entering "..", select the directory we were in before + instead of the first filename in the list, as Pico does. (DLR) + - Simplify screen update handling and exiting. (DLR) + - Fix potential segfault when going to a directory that doesn't + begin with '/'. (DLR) + do_browse_from() + - During the operating directory check, if path isn't NULL, + don't bother freeing it before mallocstrcpy()ing operating_dir + into it, as the latter operation will free it. (DLR) + - Don't bother freeing path if it's NULL. (DLR) + browser_init() + - Fix off-by-one error when calculating longest that kept the + rightmost column of the screen from being used. (DLR) + - Calculate width here instead of in browser_refresh(), as it's + more consistent. (DLR) + - If filelist is initialized, free it here instead of in several + places in do_browser(). (DLR) + browser_refresh() + - Simplify. (DLR) + - Fix problems where translated versions of "(dir)" could be + truncated, and where file sizes could be too long. (DLR) + - For the ".." entry, display "(parent dir)" instead of "(dir)", + as Pico does. (DLR) + - If a filename is too long, truncate it and display an ellipsis + before it, as titlebar() does. (DLR) + - Add translator comments explaining the maximum intended + lengths of "(dir)" and "(parent dir)". (DLR) + - Fix problem where width wouldn't be properly initialized if + the file list took up one line or less. (DLR) + - Don't display overly long filenames with ellipses if the + number of columns is extremely small. (DLR) + browser_select_filename() + - New function, used to select a specific filename in the list. + (DLR) + findnextfile() + - Simplify the uses of tail(). (DLR) + striponedir() + - Since all the strings passed to this are dynamically + allocated, use null_at() to strip the directory from the + string. Also, return the stripped path instead of modifying + path. (DLR) +- chars.c: + mbstrncasecmp(), mbstrcasestr(), mbrevstrcasestr() + - Don't allocate space for multibyte characters until we've + asserted that the parameters we're using aren't NULL. (DLR) +- files.c: + do_insertfile() + - If we execute a command in a new buffer, move back to the + beginning of the first line of the buffer afterwards, for + consistency. (DLR) + - If we don't insert a file into a new buffer, properly update + the x-coordinate to account for the number of characters + inserted on the current line. (DLR) + get_full_path() + - Don't return NULL when the current directory doesn't exist, as + we can still recover from that. (DLR, found by Mike Frysinger) + - Add various cleanups. (DLR) +- global.c: + sc_init_one(), shortcut_init() + - Don't include blank_after when DISABLE_HELP is defined, as + it's never used then. (DLR) + shortcut_init() + - Remove the ^X shortcut for CutTillEnd at the search prompt, as + official Pico doesn't include it, and it can be confused with + Exit. (DLR, suggested by Benno Schulenberg) + - Make the help shortcut for the "Go to Directory" prompt call + do_browser_help() instead of do_help_void(), as this prompt is + only accessible inside the file browser. (DLR, found by Benno + Schulenberg) + toggle_init() + - Don't include desc or blank_after when DISABLE_HELP is + defined, as neither are ever used then. (DLR) + - Make sure that a blank line is not displayed after the Meta-Q + toggle when mouse support is disabled and we're in restricted + mode, and that it is displayed all other times. (DLR) + toggle_init_one() + - Don't include desc or blank_after when DISABLE_HELP is + defined, as neither are ever used then. (DLR) +- help.c: + do_help() + - Simplify screen update handling and exiting. (DLR) + - Don't allow moving down a page when the last line of the help + text is onscreen. (DLR) + help_init() + - Adjust the first two chunks of the main help text so that + they're no more than 509 characters again. (DLR) +- move.c: + do_scroll_up(), do_scroll_down() + - Fix problems where, after scrolling, the previous and current + lines would not be updated properly if the current line was + not the first or last line of the edit window. (DLR, found by + Mike Frysinger) +- nano.c: + handle_sigwinch() + - Just in case we're in the statusbar prompt, reset the + statusbar cursor position when resizing the window. (DLR) +- nano.h: + - Remove the manual disabling of color support if regex.h isn't + found, as configure.ac now handles that. (DLR) +- rcfile.c: + parse_rcfile() + - Add missing ENABLE_COLOR #ifdef around the second check for a + syntax with no color commands, to fix compilation with rcfile + support and without color support. (Daniel Richard G.) +- search.c: + replace_regexp() + - Remove unnecessary casting of c to int. (DLR) +- text.c: + execute_command() + - Remove the marking of the file as modified, as do_insertfile() + now handles that. (DLR) +- utils.c: + digits() + - Tweak to remove the assumption that n is always positive, + although it always is in this particular case. (DLR) +- winio.c: + parse_kbinput() + - Properly handle combined meta and escape sequences, so that + e.g. Meta-/ will work properly when the / is on the numeric + keypad and NumLock is off. Also, properly handle combined + control character and escape sequences, so that e.g. Esc Esc / + will work properly when the / is on the numeric keypad and + NumLock is off. (DLR) + - Translate extended keypad keys to their ASCII equivalents even + when we hit Escape once or twice before typing them, for + consistency. (DLR) + - If they're defined, translate KEY_SUP into NANO_PREVLINE_KEY + and KEY_SDOWN into NANO_NEXTLINE_KEY, since they are sometimes + generated by Shift-Up and Shift-Down. (DLR) + parse_escape_seq_kbinput() + - Handle unknown and unignored escape sequences once here + instead of twice in parse_kbinput(). (DLR) + - Don't ignore escape sequences anymore. Instead, return the + corresponding key so that parse_kbinput() can translate it. + (DLR) + display_string() + - Properly handle buf[start_index]'s being a null terminator. + (DLR) + edit_draw() + - Simplify the setting of paintlen. (DLR) + titlebar() + - Don't display overly long filenames with ellipses if the + number of columns is extremely small. (DLR) + - Don't display any blank space for the state if we're in the + file browser, as Pico doesn't. (DLR) +- configure.ac: + - If regex.h isn't found, display an error message if we try to + enable color support. (DLR) + - Fix the spacing of the error message displayed when slcurses.h + isn't found. (DLR) + - If we use the --disable-wrapping option, ignore the + --disable-wrapping-as-root option. (DLR) + - Add minor cosmetic tweaks. (DLR) +- doc/Makefile.am: + - Don't include nanorc.sample in EXTRA_DIST, as it's only useful + when we're building from source, as opposed to building a + distribution. (DLR) + - Tweak to remove usage of the += operator again. (DLR) +- doc/man/Makefile.am: + - Tweak to remove usage of the += operator again. (DLR) +- doc/man/fr/nano.1, doc/man/fr/nanorc.5, doc/man/fr/rnano.1: + - Updated manpage translations by Jean-Philippe Guérard. +- doc/faq.html: + - Update section 5.3 again to not state "the latest development + version" before 1.3.12, as it's no longer accurate. (DLR) + - Add some minor spacing fixes. (DLR) +- doc/nano.texi: + - Add missing description of the -O/--morespace command line + option. (DLR) +- doc/syntax/c.nanorc: + - Since .i and .ii are preprocessed C and C++ output, colorize + them here. (Mike Frysinger) + - Remove redundancy from the file extension regexes. (DLR) +- doc/syntax/ruby.nanorc: + - Add missing blank line after the first comment, for + consistency. (DLR) + - Improve highlighting of constants. (John M. Gabriele, minor + tweaks by DLR) + +GNU nano 1.3.12 - 2006.06.26 +- General: + - Miscellaneous comment fixes. (DLR) + - Implement filename searches in the file browser. New + functions filesearch_init(), findnextfile(), + findnextfile_wrap_reset(), filesearch_abort(), + do_filesearch(), do_fileresearch(), do_first_file(), + do_last_file(), do_help_void(), and do_browser_help(); changes + to do_browser(), parse_browser_input(), shortcut_init(), + do_help(), and help_init(). (DLR) + - Open all files in binary mode for consistency and robustness. + Changes to load_history() and do_rcfile(). (DLR) + - Change translator-specific comments in global.c and prompt.c + so that they show up in nano.pot, and make them all + consistent. (Benno Schulenberg and DLR) + - Reduce USE_UTF8 to a static bool in chars.c, allow nano.c to + set it via a function, and allow winio.c to read its value + when needed. New functions utf8_init() and using_utf8(); + changes to is_alnum_mbchar(), is_blank_mbchar(), + is_cntrl_mbchar(), is_punct_mbchar(), control_mbrep(), + mbrep(), mbwidth(), mb_cur_max(), make_mbchar(), + parse_mbchar(), mbstrncasecmp(), mbstrcasestr(), + mbrevstrcasestr(), mbstrnlen(), mbstrchr(), mbstrpbrk(), + mbrevstrpbrk(), has_blank_mbchars(), is_valid_mbstring(), + main(), display_string(), and do_credits(). (DLR) + - Add the ability to use bold text instead of reverse video + text, via the -D/--boldtext command line option and the + "boldtext" rcfile option. Changes to browser_refresh(), + do_help(), usage(), main(), update_statusbar_prompt(), + do_yesno_prompt(), titlebar(), statusbar(), onekey(), + edit_draw(), do_replace_highlight(), nano.1, nanorc.5, + nano.texi, and nanorc.sample. (DLR, suggested by Benno + Schulenberg) + - Add the ability to use self-contained color syntaxes from + separate files, accessible in the nanorc via the "include" + command. New function parse_include(); changes to + parse_rcfile(), do_nanorc(), nanorc.5, and nanorc.sample. + (Victor Ananievsky, Brand Huntsman and DLR) + - Change references to the "help menu" to the "help text + display" refer to display, for clarity. Changes to + shortcut_init(), configure.ac, and faq.html. (DLR, suggested + by Benno Schulenberg) + - Adjust the shortcut list display and related mouse support to + not waste the last few characters of bottomwin when the screen + width isn't a clean multiple of the column width. Changes to + do_mouseinput() and bottombars(). (Benno Schulenberg, minor + tweaks by DLR) + - Add several blank entries to the main shortcut list and the + global toggle list, in order to make the help text easier to + read. Changes to sc_init_one(), toggle_init(), + toggle_init_one(), shortcut_init(), get_toggle(), and + help_init(). (DLR, suggested by Benno Schulenberg) + - Reduce NO_RCFILE to a static bool in nano.c, since it's only + used there. Changes to finish() and main(). (DLR) + - Readd the Cancel -> Exit aliases for the file browser and help + browser. New function parse_help_input(); changes to + parse_browser_input() and do_help(). (DLR, suggested by Benno + Schulenberg) + - Add the ability to copy text into the cutbuffer without + cutting it, via Meta-^ (Meta-6). Note that this is disabled + when NANO_TINY is defined. New functions do_cut_text_void() + and do_copy_text(); changes to do_cut_text(), shortcut_init(), + and do_input(). (DLR, suggested by Ken Tyler) + - Add the ability to indent and unindent all marked lines of + text, via Meta-} (Meta-]) and Meta-{ (Meta-[). New functions + do_indent_marked(), do_indent_marked_void(), and + do_unindent_marked_void(); changes to shortcut_init(). (Chris + and DLR) + - Change the shortcut to find the matching bracket to Ctrl-]. + Changes to shortcut_init() and do_statusbar_input(). (DLR) + - Drop the Meta-] and Meta-[ aliases for Meta-} and Meta-{, and + change the shortcut to find the matching bracket from Ctrl-] + back to Meta-], since Ctrl-] is used as the telnet escape key. + Changes to shortcut_init() and do_statusbar_input(). (DLR, + found by Chris) + - Add the ability to move to the first and last line of the help + text and the first and last file in the file browser via + Meta-\ (Meta-|) and Meta-/ (Meta-?). Changes to do_browser(), + shortcut_init(), and do_help(). (DLR) + - Allow unjustifying if we resize the window immediately after + justifying, as Pico does, and make input handling across + resizes more consistent. Changes to handle_sigwinch(), + main(), get_kbinput(), parse_kbinput(), get_byte_kbinput(), + and get_unicode_kbinput(); removal of reset_kbinput(). (DLR) + - Handle statusbar blanking in two places instead of many, so + that it always works consistently. Changes to do_browser(), + do_cut_text(), do_uncut_text(), do_first_line(), + do_last_line(), do_page_up(), do_page_down(), do_para_begin(), + do_para_end(), do_para_end(), do_next_word(), do_prev_word(), + do_home(), do_end(), do_up(), do_scroll_up(), do_down(), + do_scroll_down(), do_left(), do_right(), do_indent_marked(), + do_verbatim_input(), and get_kbinput(). (Benno Schulenberg, + minor tweaks by DLR) + - Handle prepending of wrapped text in one place instead of + many, so that it always works consistently. Changes to + do_uncut_text(), do_insertfile(), do_page_up(), + do_page_down(), do_up(), do_scroll_up(), do_down(), + do_scroll_down(), do_input(), do_search(), do_research(), and + do_delete(). (DLR) + - Ignore unhandled meta key sequences, function keys, and escape + sequences, indicate it on the statusbar, and beep when we get + an unhandled shortcut or toggle, as Pico does. To get this to + work properly, add a shortcut for moving to the next + search/replace string. New function is_ascii_cntrl_char(); + changes to shortcut_init(), do_input(), do_statusbar_input(), + get_prompt_string(), and parse_kbinput(). (DLR, suggested by + Nick Warne and Benno Schulenberg) + - Explain the mouse support in more detail, and sync the text of + its description across all documentation. Changes to nano.1, + nanorc.5, nanorc.sample, and nano.texi. (Benno Schulenberg and + DLR) + - If we're using verbatim input to enter a Unicode sequence, + indicate it on the statusbar, and add a translator comment + explaining the message. Also, refactor get_unicode_kbinput() + to remove redundant code. New function add_unicode_digit(); + changes to get_unicode_kbinput() and parse_verbatim_kbinput(). + (Benno Schulenberg, minor tweaks by DLR) + - Allow normal typing of high-bit control characters, as Pico + does. Changes to do_output() and do_statusbar_output(). (DLR) + - Move color regexes into separate files, make nanorc.sample + reference them, and make them install properly. In the + process, rename nanorc.sample to nanorc.sample.in, put + @PKGDATADIR@ at the beginning of all nanorc file paths, add + needed AC_DEFINE_DIR macro from the Autoconf Macro Archive at + http://autoconf-archive.cryp.to/ac_define_dir.m4, and make + configure.ac do the substitution, so that the proper paths + will always be used in nanorc.sample. New files + m4/ac_define_dir.m4, doc/syntax/Makefile.am, + doc/syntax/asm.nanorc, doc/syntax/c.nanorc, + doc/syntax/groff.nanorc, doc/syntax/html.nanorc, + doc/syntax/java.nanorc, doc/syntax/man.nanorc, + doc/syntax/mutt.nanorc, doc/syntax/nanorc.nanorc, + doc/syntax/patch.nanorc, doc/syntax/perl.nanorc, + doc/syntax/python.nanorc, doc/syntax/ruby.nanorc, + doc/syntax/sh.nanorc, and doc/syntax/tex.nanorc; changes to + configure.ac, nano.spec.in, doc/Makefile.am, and + m4/Makefile.am; removal of doc/nanorc.sample. (DLR) + - Replace usage of the bool curses_ended with the isendwin() + function, and remove curses_ended. Changes to do_suspend(). + (DLR) + - Remove the workaround for glibc 2.2.3's broken regexec(), and + replace it with a FAQ entry explaining the problem, since it + could break anything using extended regular expressions, and + glibc 2.2.3 is old. Changes to configure.ac, faq.html, + nano.h, proto.h, and UPGRADE; removal of safe_regexec(). (DLR) + - Minor wording fixes to various messages. Changes to + load_history(), shortcut_init(), toggle_init(), usage(), + do_suspend(), do_input(), rcfile_error(), parse_argument(), + parse_rcfile(), nano.1, nano.texi, and nanorc.sample.in. + (Benno Schulenberg, minor tweaks by DLR and Nick Warne) + - Make suspension clear the screen and put the cursor on the + last line before displaying anything, as Pico does. New + functions disable_mouse_support() and enable_mouse_support(); + changes to do_mouse(), do_suspend(), do_continue(), and + terminal_init(). (DLR) +- browser.c: + do_browser() + - Reference NANO_GOTODIR_(ALT|F)?KEY instead of + NANO_GOTOLINE_(ALT|F)?KEY for the "Go to Directory" shortcut. + (DLR) + parse_browser_input() + - Remove redundant key checks. (DLR) + browser_refresh() + - Rename variable editline to line, for consistency. (DLR) + - Change variable i from an int to a size_t in order to match + selected, which it's compared against. (DLR) +- color.c: + color_update() + - Fix incorrect setting of defcolor, which prevented the + reserved "default" syntax from being handled correctly. (DLR) +- cut.c: + cut_to_eof() + - New function, containing the main functionality of + do_cut_till_end(). (DLR) + do_cut_text() + - Add parameter cut_till_end, to indicate when we're cutting + from the current cursor position to the end of the file, and + call cut_to_eof() when it's TRUE. (DLR) + do_cut_till_end() + - Convert to a wrapper for do_cut_text(). (DLR) +- files.c: + open_file() + - Remove redundant wording in the error message when we try to + open a device file. (DLR) + do_insertfile() + - Use actual gettext calls instead of no-ops, for consistency. + (DLR) + safe_tempfile() + - Don't ignore $TMPDIR if it's set but blank, for consistency. + (DLR) + write_file() + - Don't free backupname before displaying it in a statusbar error + message. (DLR, found by Bill Marcum) + - If we can't save the backup file for some reason, at least + save the original file, if possible, since that's better than + saving nothing. (DLR, problem found by Bill Marcum, solution + suggested by Jordi) + - Clarify the error messages when creating a temporary file or + writing one for prepending fails. (DLR) + - Simplify the routine for closing the file just before we + indicate success on the statusbar. (DLR) + do_writeout() + - Fix problem where the modifiers at the "Write File" prompt + were marked for translation via gettext no-ops but never + actually translated. (Benno Schulenberg) + free_chararray() + - Assert that array isn't NULL, for consistency with the other + free_.*() functions. (DLR) +- global.c: + shortcut_init() + - Change the cursor position display help text to use "display" + instead of "show", for consistency. (DLR) + - In the main shortcut list, move the "Refresh" shortcut down to + after the "Enter" shortcut, for consistency. (DLR) + - Add the ability to move to the first and last line of the + current file from the main list via Meta-\ (Meta-|) and Meta-/ + (Meta-?). Also, make sure all the equivalent shortcuts in the + search, replace, and "Go To Line" lists accept both the meta + keys and the equivalent function keys. (DLR) + - Reorganize the main shortcut list to make it easier for new + users. It now lists the twelve Pico-compatible default + operations, followed by search and replace shortcuts, followed + by cut and paste shortcuts, followed by marking shortcuts, + followed by back and forth movement shortcuts, followed by + start and end movement shortcuts, followed by buffer-switching + shortcuts, followed by insertion and deletion shortcuts, + followed by special movement shortcuts, followed by advanced + word and paragraph shortcuts, followed by display shortcuts. + (DLR and Benno Schulenberg, suggested by Benno Schulenberg) + - Tweak the descriptions of some shortcut keys to make them more + uniform. (Benno Schulenberg, minor tweaks by DLR) + - Shorten the "Where is Next" shortcut name to fit on the screen + after adding Meta-\ (Meta-|) and Meta-/ (Meta-?). (DLR) + - Lengthen the "UnCut Txt" shortcut name to "UnCut Text", as + there's enough room to display it unabbreviated. (DLR) + - Clarify the descriptions of the "Search" and "Replace" + shortcuts, and add spaces to the "Exit" shortcut's description + in multibuffer mode. (Benno Schulenberg) + - Remove the "Go To Line" shortcut in the replace shortcut list, + for compatibility with Pico. (DLR) + toggle_init() + - In the global toggle list, move the "Constant cursor position + display" toggle up to after the "Use more space for editing" + toggle, for consistency. (DLR) + - Reorganize the global toggle list to make it easier for new + users. It now lists toggles that affect the way things are + displayed, followed by toggles that affect editing, followed + by toggles that have to do with peripheral things. (DLR, + suggested by Benno Schulenberg) +- help.c: + do_help() + - Call get_shortcut() after getting input, so that we only have + to check for a main shortcut key instead of both it and all of + its equivalents. (DLR) + - Clean up the handling of NANO_REFRESH_KEY. (DLR) + - Remove redundant key checks. (DLR) + help_init() + - If we have at least two entries' worth of blank space, use it + to display more of "^Space" and "M-Space". (DLR, suggested by + Benno Schulenberg) + - Add various wording fixes. (DLR and Benno Schulenberg) + - If one of the help strings ends in newlines followed by a + space, move the space to the next help string to make it + easier for translators to see. (Benno Schulenberg) + - Make sure we have enough memory in all cases when displaying + the shortcut and toggle lists. (DLR) + - Wrap the shortcut list help text, and display it even when we + have fewer than 24 columns, for consistency with the toggle + help text. (DLR, suggested by Benno Schulenberg) + parse_help_input() + - Add Space and '-' as aliases for PageDown and PageUp, for + consistency with the file browser. (DLR, suggested by Benno + Schulenberg) + - Remove redundant key checks. (DLR) + help_line_len() + - Properly handle the case where we can't break the line of help + text. (DLR) + - Wrap the line of help text at (COLS - 1) instead of + (COLS - 8), for consistency. (DLR, suggested by Benno + Schulenberg) +- nano.c: + print1opt_full() + - Rename to print_opt_full(), for consistency. (DLR) + usage() + - Fix inaccuracies in the usage example. (DLR) + - Put command line arguments in <>'s instead of []'s, as the + latter imply that the arguments are optional when they aren't. + (DLR, found by Benno Schulenberg) + renumber() + - Remove invalid assert. (DLR, found by Filipe Moreira) + do_input() + - Remove redundant check for allow_funcs' being TRUE when we get + KEY_MOUSE. (DLR) + - Don't blow away the cutbuffer when we get a shortcut and the + function associated with it is do_cut_till_end(). (DLR) + - Simplify the routine to preserve the cutbuffer when we call a + cutting or copying function associated with a shortcut. (DLR) +- nano.h: + - Reorder the toggle #defines to match their corresponding order + in toggle_init(). (DLR) + - Move the #include for sys/param.h here from nano.c, and add an + #ifdef around it. (DLR) +- prompt.c: + get_prompt_string() + - Include the handling of the help key even when help is + disabled, so that we aren't erroneously kicked out of the + statusbar prompt under any circumstances. (DLR, found by Benno + Schulenberg) + do_statusbar_input() + - Remove redundant check for allow_funcs' being TRUE when we get + KEY_MOUSE. (DLR) + - Improve the handling of NANO_REFRESH_KEY. (DLR) + total_statusbar_refresh() + - New function, called when we get NANO_REFRESH_KEY in + do_statusbar_input(). (DLR) + do_yesno_prompt() + - Handle the keys in a switch statement instead of a long if + block, for simplicity. (DLR) +- rcfile.c: + parse_argument() + - Rename variable ptr_bak to ptr_save, for consistency. (DLR) + - Add double quotes around invalid string arguments in error + messages, for consistency. (DLR) + - Add single quotes around the invalid string argument in the + error message about unterminated strings, to avoid confusion. + (Benno Schulenberg) + parse_syntax() + - Don't generate an error if we find a duplicate syntax name, + since we might be trying to override a syntax in the global + nanorc with one in our local nanorc. Instead, free any + duplicate syntaxes we find, so that we always use the last + syntax with a given name. (DLR) + color_to_short() + - Add quotes around invalid string arguments in error messages, + for consistency. (DLR) + parse_colors() + - Check for a color command's not following a syntax line before + anything else. (DLR) + - Add quotes around invalid string arguments in error messages, + for consistency. (DLR) + parse_rcfile() + - Properly generate an error if we've read in a syntax without + any associated color commands. (DLR) + - Change variable i from an int to a size_t, for consistency. + (DLR) + - Properly handle rcfiles that don't end in newlines. (DLR) + - Add quotes around invalid string arguments in error messages, + for consistency. (DLR) + do_rcfile() + - Check for the rcfile's being a directory or device file and + reject it if it is, for consistency with file handling + elsewhere. (DLR) + - Remove SYSCONFDIR #ifdef, as SYSCONFDIR should always be set. + (DLR) + - Change all rcfile error messages to refer to commands instead + of directives, for consistency with nanorc.5. (DLR) +- text.c: + break_line() + - Fix problem where tab widths in columns would always be + calculated as tabsize. (DLR, found by Alexey Toptygin) + - Handle newlines consistently when searching for the last blank + in the first group of blanks in the range of (goal - 1). (DLR, + found by Benno Schulenberg) + do_justify() + - Remove redundant key checks. (DLR) + do_spell() + - Clarify the error message when creating a temporary file + fails. (DLR) + - Set currshortcut to main_list before calling total_refresh() + near the end of the function, so that we don't display the + wrong shortcut list. (DLR) + do_verbatim_input() + - Add a translator comment explaining the "Verbatim Input" + statusbar message. (Benno Schulenberg) + - Unconditionally blank the statusbar as soon as we're finished + getting input. (DLR, suggested by Benno Schulenberg) +- utils.c: + digits() + - Return the proper number of digits when n is exactly 10. (DLR) + - Simplify to use a for loop instead of a while loop. (DLR) + ngetdelim() + - Set errno to EINVAL if stream is not a valid file stream. + This matches the manual page. (DLR) + nperror() + - Simplify. (DLR) + check_linenumbers() + - Removed, as it's no longer used, and since there's no way to + tell if its return value will be in int or ssize_t range. + (DLR) +- winio.c: + parse_kbinput() + - If we get NANO_CONTROL_8, properly handle it in all cases. + (DLR) + parse_escape_seq_kbinput() + - New function used to interpret escape sequences, formerly part + of parse_kbinput(). (DLR) + get_byte_kbinput() + - Fix typo preventing Esc Esc 3 through Esc Esc 6 from being + interpreted as control key sequences. (DLR) + - Tweak to more closely match get_unicode_kbinput(). (DLR) + get_control_kbinput() + - Add Ctrl-/ as an alias for Ctrl-_. (DLR, found by Benno + Schulenberg) + - Simplify the if blocks wherever possible. (DLR) + parse_verbatim_kbinput() + - Don't include the ability to enter a Unicode sequence via + verbatim input mode if ENABLE_UTF8 isn't defined or we're not + in a UTF-8 locale. (DLR) + check_statusblank() + - Avoid redundant updates when statusblank is 0. (DLR) + display_string() + - Properly display double-column characters if they're past the + first virtual page and their first column is covered by the + "$" displayed at the beginning of the line. (DLR) + statusbar() + - Blank the statusbar after 26 keystrokes instead of 25, for + conpatibility with Pico. (DLR) + edit_draw() + - Properly ignore zero-length regexes in multi-line regexes as + well as single-line ones. This avoids a segfault when trying + to color e.g. "start="$" end="$"". (DLR, found by Trevor + Caira) + - Don't display any statusbar message when we get a zero-length + regex, as we can get one under legitimate circumstances. (DLR, + found by Mike Frysinger) + update_line() + - Remove unneeded assert. (DLR) + edit_redraw() + - Fix problem where not all lines would be updated properly if + we'd scrolled off the screen and the mark was on. (DLR) + do_credits() + - Update the last copyright notice to include 2006. (DLR) +- configure.ac: + - Remove old warnings about color support. (DLR) + - Remove conditional header checks for fcntl.h and termios.h, as + nano won't build without them, and add conditional header + check for sys/param.h, as some systems need only limits.h. + (DLR) +- doc/faq.html: + - Add a new section 4.4, and move all section 4 entries after it + down one number, to explain how to deal with problems typing + Meta-[. (DLR) + - Add a new section 4.5, and move all section 4 entries after it + down one number, to explain a problem that can occur when + holding down keys to generate Meta sequences. (Benno + Schulenberg, minor tweaks by DLR) + - Add a few capitalization and wording fixes. (DLR) + - Remove section 4.4, and move all section 4 entries after it up + one number, since it no longer applies. Meta-] and Meta-[ are + no longer used to indent and unindent marked text, since they + require that the bracket matching key change to Ctrl-], which + is used as the telnet escape key. (DLR, found by Chris) + - Make the link to the nano CVS page a bit more readable. (DLR) + - Update section 3.8 to mention the new "Unicode Input" prompt, + and how Unicode input only works when Unicode support is + enabled. (DLR) + - Add minor punctuation, wording, and typo fixes. (DLR) + - Update section 5.3, due to the display fix for two-column + Unicode characters. (DLR) +- doc/nano.1: + - Update the copyright years to include 2006. (DLR) + - Explicitly mention that all regexes should be extended regular + expressions. (DLR, suggested by John M. Gabriele) + - Miscellaneous minor fixes. (DLR) + - Add various wording fixes. (Benno Schulenberg and DLR) + - Put command line arguments in <>'s instead of []'s, as the + latter imply that the arguments are optional when they aren't. + (Benno Schulenberg) +- doc/nanorc.5: + - Update the copyright years to include 2006. (DLR) + - Explicitly mention that all regexes should be extended regular + expressions. (DLR, suggested by John M. Gabriele) + - Miscellaneous minor fixes. (DLR) + - Add various wording fixes. (Benno Schulenberg and DLR) + - Mention that the nanorc file should not be in DOS or Mac + format. (DLR) +- doc/rnano.1: + - Update the copyright years to include 2006. (DLR) + - Explicitly mention that all regexes should be extended regular + expressions. (DLR, suggested by John M. Gabriele) + - Miscellaneous minor fixes. (DLR) + - Add various wording fixes. (Benno Schulenberg and DLR) + - Add description of the +LINE[,COLUMN] option. (DLR) +- doc/nano.texi: + - Update the copyright years to include 2006. (DLR) + - Explicitly mention that all regexes should be extended regular + expressions. (DLR, suggested by John M. Gabriele) + - Miscellaneous minor fixes. (DLR) + - Add various wording fixes. (Benno Schulenberg and DLR) + - Change license to GPL, in order to match the rest of the + documentation, and because the current license is incompatible + with everything else in any case. (DLR) + - Mention that backup files and spell checking are disabled in + restricted mode, as rnano.1 does. (DLR) + - Add minor updates to put some text back in sync with nano's + help text, and with nano's current feature set. (DLR) + - Add a "Nanorc Files" section to explain the nanorc file format + in detail, using text from nanorc.5. (DLR) + - Put command line arguments in <>'s instead of []'s, as the + latter imply that the arguments are optional when they aren't. + (Benno Schulenberg) + - Add missing description of -H/--historylog, and move + -x/--nohelp down so that all the command line options are in + alphabetical order. (Benno Schulenberg) + - Change all occurrences of "file name" to "filename". (Benno + Schulenberg) +- doc/man/Makefile.am: + - Simplify the setting of SUBDIRS. (DLR) +- doc/man/fr/nano.1, doc/man/fr/nanorc.5, doc/man/fr/rnano.1: + - Updated manpage translations by Jean-Philippe Guérard. +- doc/nanorc.sample: + - Miscellaneous minor fixes. (DLR and Benno Schulenberg) + - Tweak the "c-file" regex for characters to accept '"' again, + as it's apparently valid, and simplify it. (DLR) + - Simplify the "shellscript" regex for command line options. + (DLR) + - Replace instances of \" with ", since quotes inside string + parameters don't need to be escaped with backslashes. (DLR) + - Mention in the comments that more than one start/end regex can + be included per line. Also, change the comment for the + "whitespace" option so that the hexadecimal character values + are six digits long, and state which character values work + with which encodings. (DLR) + - Add sample regexes for Python. (singular on the Gentoo forums, + http://forums.gentoo.org/viewtopic.php?t=86562; minor tweaks + by DLR, suggested by John M. Gabriele) + - Explicitly mention that all regexes should be extended regular + expressions. (DLR, suggested by John M. Gabriele) + - Simplify the "nanorc" regex for commands. (DLR) + - Mention that the nanorc file should not be in DOS or Mac + format. (DLR) + - Add various wording fixes. (Benno Schulenberg and DLR) + - Replace instances of "\w" with its equivalent "[0-9A-Z_a-z]", + and instances of "\W" with its equivalent "[^0-9A-Z_a-z]", for + greater readability. (DLR) + - Remove unneeded foreground color for the Java source regex + used to highlight trailing whitespace, since we now support + background colors without foreground colors. (DLR) + - Further simplify the "groff" regexes. (DLR) + - Tweak the "shellscript" regexes to properly color all special + variables, such as $? and $@. (Benno Schulenberg) + - Tweak the "nanorc" regexes to color keywords bright green + instead of cyan, and comments bright blue instead of blue. + (John M. Gabriele) + - Simplify the extensions associated with the "nanorc" regexes. + (DLR) + - Add regexes for Ruby. (John M. Gabriele, minor tweaks by DLR) +- doc/nanorc.sample.in: + - Add comments describing the relationships between syntax file + names and the names used as their short descriptions. (John M. + Gabriele) +- doc/java.nanorc: + - Simplify a comment. (DLR) +- doc/man.nanorc: + - Change the name of the "manpage" regexes to "man", for + consistency. (John M. Gabriele) +- doc/nanorc.nanorc: + - Tweak the "nanorc" regexes to color comments starting with a + double ## cyan instead of bright blue. (John M. Gabriele) +- doc/ruby.nanorc: + - Add regex for "here" docs. (John M. Gabriele) +- doc/sh.nanorc: + - Tweak the regex for special variables, moving "-" to the end, + to avoid excessive coloring or an "Invalid range end" error. + (Benno Schulenberg) + - Tweak the "sh" regexes to color comments cyan instead of + yellow. (John M. Gabriele) +- src/Makefile.am: + - If we're uninstalling, remove the "rnano" symlink. (DLR, found + by Benno Schulenberg) + - Remove "-Iintl" from INCLUDES, as we don't use an intl + directory inside the source directory anymore. (DLR) +- README, README.CVS: + - Add various cosmetic and wording improvements. (John M. + Gabriele, minor tweaks by DLR) +- TODO: + - Update for nano 2.0, since we're now in a feature freeze. + (DLR) +- UPGRADE: + - Miscellaneous minor fixes. (DLR) + - Update for nano 2.0, since we're now in a feature freeze. + (DLR) + +GNU nano 1.3.11 - 2006.03.30 +- General: + - Miscellaneous comment fixes. (DLR) + - Remove unnecessary #ifdef around termios.h #include in nano.c. + (DLR) + - Sort the default strings for brackets and punct, and the "or" + atom in the default regex string for quotestr, according to + ASCII. Changes to main(), nano.1, nanorc.5, and + nanorc.sample. (DLR) + - Rework the bracket searching code to handle multibyte bracket + characters, and allow specifying matching bracket characters + other than the default via the "matchbrackets" rcfile option. + New functions mbstrpbrk() and mbrevstrpbrk(); changes to + find_statusbar_bracket_match(), do_statusbar_find_bracket(), + find_bracket_match(), do_find_bracket(), main(), + parse_rcfile(), nanorc.5, and nanorc.sample. (DLR) + - Rework input parsing in the file browser to be more flexible. + New function parse_browser_input(); changes to do_browser(). + (DLR) + - Allow tab completion of directories at the "Go To Directory" + prompt. Also, move the browser drawing routines to a separate + function, and make sure it's used when refreshing or doing tab + completion at the prompt in the file browser. New function + browser_refresh(); changes to do_browser(), browser_init(), + do_insertfile(), do_writeout(), cwd_tab_completion(), + input_tab(), do_statusbar_input(), get_prompt_string(), + do_prompt(), search_init(), do_replace(), do_gotolinecolumn(), + and do_int_spell_fix(). (DLR) +- browser.c: + do_browser() + - Properly set currshortcut back to the file browser shortcut + list after a "Go To Directory" prompt, and properly restore + the file list display after returning from the help browser at + the "Go To Directory" prompt. (DLR) + - Rename variable j to i, for consistency. (DLR) + - Make fileline, old_selected, and the static selected size_t's, + since the first and second can hold the value of the third, + and the first can be that large. (DLR) +- chars.c: + mbstrchr() + - Make parameter c const. (DLR) +- files.c: + do_writeout() + - Remove unneeded setting of currshortcut. (DLR) + is_dir() + - Rename parameter ret to retval, for consistency. (DLR) +- global.c: + shortcut_init() + - Remove erroneous handling of the "Get Help" shortcut in the + file browser shortcut list. (DLR) +- nano.h: + - Remove now-unneeded VERMSG #define. (DLR) +- prompt.c: + get_prompt_string() + - Redraw the prompt and set finished to FALSE when NANO_HELP_KEY + is pressed, so that we don't leave the prompt, enter the help + browser, and restart the prompt after leaving it. This will + properly preserve the cursor position after doing the last of + these. (DLR) +- utils.c: + ngetdelim() + - Do sanity checks manually again instead of in an assert, and + set errno to EINVAL as well as return -1 if they fail. This + matches the manual page. (DLR) +- winio.c: + get_key_buffer() + - If we fail to get a character MAX_BUF_SIZE times in a row, + hang up regardless of the value of errno. This fixes a + problem where nano doesn't terminate properly under xterm if + the user su's to root, runs nano, and then closes the terminal + window. errno isn't set properly to EIO then. (DLR, found by + John ) + 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 + ) + - 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 in proto.h. (David Benbennick) DLR: + Remove some redundant inclusions of 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 , + 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 ). +- 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 . + - Wojciech Kotwica 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 . +- 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 . +- 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 + , 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 . +- po/sv.po: + - New Swedish translation by Christian Rose . + +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 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 . +- 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 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$