Fork 0

4011 lines
201 KiB
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[Development moved to git on April 1. The Changelog was discontinued.]
2016-03-31 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_int_spell_fix): Replace a fake 'while', delete a
redundant 'if', rename a variable, and adjust whitespace.
2016-03-30 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_replace_loop, go_looking, findnextstr): Report
"Cancelled" instead of "Not found" when the user aborts a replace
that is taking too long. This fixes Savannah bug #47439.
* src/winio.c (do_replace_highlight): Rename this to 'spotlight',
for clarity, and for contrast with 'do_replace/do_replace_loop'.
* src/winio.c (spotlight): Rename a variable for clarity.
* src/files.c (input_tab), src/prompt.c (get_prompt_string):
Rename a variable to better indicate booleanness.
* src/text.c (do_int_speller): Unwrap a few lines.
2016-03-29 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main), src/text.c (do_justify, do_verbatim_input),
src/winio.c (parse_escape_sequence): Place the cursor in the edit
window also when --constantshow is in effect, after a ^J Justify or
an invalid escape sequence, and when entering a verbatim keystroke.
Leave the cursor off during Unicode input, for extra feedback.
* src/browser.c (do_browser): Improve the wording of a message.
* src/chars.c (is_valid_unicode): Speed up Unicode validation.
* src/text.c (do_int_spell_fix): Allow to stop replacing a word
without aborting the entire spell-fixing session.
* src/search.c (do_replace_loop): Chop a now-unused parameter.
2016-03-28 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (statusbar): Don't bother putting back the cursor in
the edit window, as it is off anyway, and will be placed back in the
main loop. This prevents a segfault when trying to open a directory.
* src/search.c (findnextstr): Provide feedback when searching takes
longer than roughly half a second (on average).
* src/*.c: Remove the 'last_replace' variable that is never used.
* src/winio.c (parse_kbinput): Delete a no-op.
2016-03-23 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (findnextstr): Prevent the internal spell checker from
finding the first occurrence twice. And delete the piece of dead code
that was meant to do this. This fixes Savannah bug #47188.
* src/search.c (findnextstr): Clean up and rename a variable.
* src/search.c (findnextstr): Poll the keyboard once per second.
* src/winio.c (reset_cursor): Remove a pointless condition, and make
use of an existing intermediary variable.
* src/winio.c (reset_cursor): Tidy up and rename a variable.
* src/winio.c (onekey): Elide an unneeded 'if' and unneeded variable.
2016-03-22 Thomas Rosenau <thomasr@fantasymail.de>
* configure.ac, src/*.c: Check for the existence of the REG_ENHANCED
regex flag, and use it when it's available (on OS X systems). This
completes the fix for Savannah bug #47325.
2016-03-21 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (findnextfile): Trim a duplicate variable.
* src/browser.c (browser_refresh, findnextfile): Rename four vars.
2016-03-20 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (do_writeout), src/nano.c (do_exit): Normalize the
punctuation in some prompts: no space before a question mark, and
a semicolon instead of a comma between phrases.
* src/text.c (do_cutword): Don't put cut words into the cutbuffer --
that is: treat the deletion of words like pressing Backspace/Delete.
* src/search.c (get_history_completion, find_history): Cycle through
the items from newest to oldest. This fixes Savannah bug #47205.
* src/files.c (do_writeout): When the name of the file was changed,
always ask whether this is okay. This fixes Savannah bug #46894.
* src/search.c (do_research): Use 'return' instead of 'else'.
* src/search.c (do_search): Don't bother setting 'answer'; just use
'last_search', which has been set to 'answer' in search_init().
* src/search.c (go_looking): Factor out the common part of
do_search() and do_research() into this new function.
2016-03-19 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (search_init): Always remember the last typed string,
also when it's an invalid regex. This fixes Savannah bug #47440.
* src/search.c (search_init, do_replace): Don't bother setting the
current answer to the empty string, as do_prompt() can handle a NULL.
* src/browser.c (do_browser): Delete a snippet of dead code.
* src/browser.c (do_browser): Delete an unneeded variable.
* src/search.c (do_gotolinecolumn): Delete another unneeded variable.
* src/search.c (search_init): Snip an always-FALSE condition.
* src/search.c (search_init): Reshuffle stuff to reduce indentation.
* src/search.c (do_replace): Snip a useless setting of answer.
2016-03-17 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_research): Use the Search key bindings also during
a Re-search, to enable cancelling. This fixes Savannah bug #47159.
* src/search.c (do_replace): Remove two redundant returns.
* src/search.c (findnextstr): Prune two #ifdefs.
* src/search.c: Adjust some indentation.
2016-03-14 Benno Schulenberg <bensberg@justemail.net>
* src/color.c (color_update): Don't dereference a possible NULL.
* src/rcfile.c (parse_colors): Make error message equal to others.
* src/rcfile.c (parse_rcfile): Rearrange some things to reduce the
indentation level by four steps, so we can unwrap a dozen lines.
2016-03-13 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (regexp_init): Allow using the word boundary markers
\< and \> in search strings on non-GNU systems. This is a partial
fix for Savannah bug #47325 reported by Thomas Rosenau.
* src/rcfile.c (parse_rcfile, parse_colors, nregcomp): Combine the
regular-expression flags at compile time instead of at run time.
* src/rcfile.c (parse_syntax, parse_colors): Rename a variable.
* src/winio.c (edit_draw): Give a central variable a ringing name.
2016-03-13 Thomas Rosenau <thomasr@fantasymail.de> (tiny change)
* autogen.sh, README.SVN: Mention SVN instead of CVS.
2016-03-12 Benno Schulenberg <bensberg@justemail.net>
* src/color.c (color_update): Set the syntax and regex pointers
just once, in a single place. And unnest two 'if's.
* src/rcfile.c (parse_one_include, parse_includes): New names for
these functions, to be more distinguishable.
* src/rcfile.c (parse_colors): Reduce the indentation.
* src/rcfile.c (parse_colors): Rename a variable.
* src/rcfile.c (parse_colors, parse_rcfile): Refind the tail of
the colors list only when extending, not for every added color.
2016-03-11 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (do_browser): Fix compilation when configured with
--enable-tiny plus --enable-browser.
* src/rcfile.c: Tweak some comments and reshuffle some lines.
* src/rcfile.c (color_to_short): Elide a variable.
* src/rcfile.c (grab_and_store): First check that there is an
open syntax before checking that it is named "default".
* src/rcfile.c (parse_rcfile): Fix compilation when configured with
--enable-tiny plus --enable-nanorc.
2016-03-10 Benno Schulenberg <bensberg@justemail.net>
* src/rcfile.c (grab_and_store): Do not accept 'header' and 'magic'
commands for the default syntax. This fixes Savannah bug #47323.
* src/rcfile.c (pick_up_name): Fold the parsing of a linter and
formatter command into a single routine.
* src/rcfile.c (parse_header_exp, parse_magic_exp, grab_and_store):
Elide the first two functions, and reshuffle parameters in the last.
* src/rcfile.c (parse_syntax, parse_rcfile), src/color.c
(color_update): Turn the linked list of syntaxes upside-down, so that
the last-defined one comes first, so that searching can stop at the
first match instead of always having to run through the entire list.
* src/rcfile.c: Rename a variable to better fit its new role.
2016-03-09 Benno Schulenberg <bensberg@justemail.net>
* src/rcfile.c (parse_syntax): Produce an adequate error message
when the syntax name is unquoted. This fixes Savannah bug #47324.
* src/rcfile.c (parse_syntax): Use the grab_and_store() function
also for gathering up extension regexes.
2016-03-04 Benno Schulenberg <bensberg@justemail.net>
* src/color.c (found_in_list): Don't bother keeping the compiled
regular expression when it matched -- drop this tiny optimization
for when opening multiple files. Instead stop calling malloc().
* src/nano.h: Delete a now-unused struct member.
* src/global.c (free_list_item): Elide this now too tiny function.
* scr/global.c (thanks_for_all_the_fish): Rename three variables.
* src/rcfile.c (parse_colors): Tweak a few things.
* src/color.c (color_update): Rename a variable.
2016-03-01 Benno Schulenberg <bensberg@justemail.net>
* src/rcfile.c (parse_syntax), src/color.c (color_update): Don't
bother discarding a duplicate syntax (it's too rare, saves little
memory, and freeing it properly would cost even more code), just
select the last-defined one. This addresses Savannah bug #47303.
* src/color.c (color_update): Allow to select an empty syntax.
2016-02-29 Benno Schulenberg <bensberg@justemail.net>
* src/nano.h, src/rcfile.c, src/color.c: Rename a struct member.
* src/rcfile.c (parse_rcfile): Don't allocate a struct for the
"none" syntax (and thus prevent it from being extended).
* src/nano.h, src/rcfile.c: Arrange some things more orderly.
* src/rcfile.c (parse_rcfile): Close an extended syntax again.
* src/rcfile.c (parse_rcfile): Rename a variable.
* src/rcfile.c (grab_and_store): Fix breakage of r5695.
* src/color.c (color_update): Do not dereference symlinks, so that
the syntax will be derived from the name given on the command line,
not from that of the target file. This fixes Savannah bug #47307.
2016-02-28 Benno Schulenberg <bensberg@justemail.net>
* src/rcfile.c (parse_header_exp): Don't continue when something is
wrong -- skip the rest of the line. This fixes Savannah bug #47289.
* src/rcfile.c (parse_header_exp, parse_magic_exp, grab_and_store):
Use the now correct parsing of header regexes also for parsing magic
regexes. This fixes Savannah bug #47292 and saves 50 lines of code.
* src/rcfile.c (grab_and_store): Rename a variable and densify.
* src/rcfile.c (grab_and_store): Do not drop regexes that were
gathered earlier. This fixes Savannah bug #47285.
* src/rcfile.c (grab_and_store): Rearrange things in my style.
* src/rcfile.c (parse_syntax, parse_rcfile): Disallow adding any
further things to a syntax when an rcfile ends or when an invalid
syntax command is found. This fixes Savannah bug #47207.
2016-02-26 Benno Schulenberg <bensberg@justemail.net>
* doc/man/nanorc.5, doc/texinfo/nano.texi, doc/syntax/nanorc.nanorc,
doc/nanorc.sample.in: Correct the description of 'justifytrim', add
it to the Info document, sort it, and tweak a wording.
* src/color.c (color_update): Look for a default syntax only when
all else failed -- forego the small, complicating optimization.
* src/color.c (color_update): Strip things bare to see the sameness.
* src/color.c (found_in_list): Factor out this triple repetition.
* src/color.c (color_update): Rename a variable for conciseness.
* src/color.c (nfreeregex): Elide this function, now used just once.
* src/nano.h: Rename a struct element for aptness and contrast.
* src/nano.h: Rename another element, because it refers not just
to file extensions, but also to header lines and magic strings.
GNU nano 2.5.3 - 2016.02.25
2016-02-25 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (do_browser): Plug a memory leak by not copying
a string twice. This fixes Savannah bug #47206.
* src/browser.c (do_browser): Now put things in the proper order.
* src/files.c (make_new_buffer), src/nano.c (splice_opennode): Elide
the latter function, by handling the two cases (the creation of the
first element, and the insertion of a new element) directly.
2016-02-23 Benno Schulenberg <bensberg@justemail.net>
* src/prompt.c (do_statusbar_output, do_statusbar_delete):
Rename a variable, for contrast and correctness.
* src/cut.c (do_copy_text): Don't move the cursor when copying a
backwardly marked region. This fixes Savannah bug #46980.
* src/text.c (do_undo, do_redo): Center the cursor when the
thing being undone or redone is currently off the screen.
* src/{files,nano,winio}.c: Rewrap and reshuffle some lines.
2016-02-22 Chris Allegretta <chrisa@asty.org>
* Add the ability to kill the trailing spaces when justifying text,
by adding a new nanorc option 'justifytrim' -- we'll see whether
this warrants a command-line flag or not. Now with slightly
better logic for multi-spaced lines.
2016-02-22 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (free_openfilestruct): Elide this function.
* scr/global.c (thanks_for_all_the_fish, free_list_item): Condense.
* src/winio.c (edit_scroll): The amount to scroll is never zero.
* src/prompt.c (do_statusbar_prev_word, do_statusbar_next_word),
src/move.c (do_prev_word, do_next_word): Sort these in standard way.
* src/prompt.c (do_statusbar_output): Don't move too many bytes.
This fixes Savannah bug #47219 (uncovered by r5655).
* src/prompt.c (do_statusbar_output): Elide a variable.
* src/prompt.c (do_statusbar_delete): There is no need for nulling:
the charmove() already copies the terminating null byte.
* src/text.c (do_justify), src/winio.c (parse_escape_sequence):
Show the cursor after a justification and after an unrecognized
escape sequence, and in the edit window when linting.
* src/text.c (do_linter): Use the correct column number, also when
messages are skipped. And don't mind zero or negative numbers.
This is a partial fix for Savannah bug #47131.
2016-02-21 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (input_tab): If the first Tab added the part that all
matches have in common, don't require a third Tab to show the list.
* scr/global.c (thanks_for_all_the_fish): Remove unneeded checks.
2016-02-20 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (get_history_completion): Avoid leaking memory
when tabbing on a string that does not occur in the history.
This fixes Savannah bug #47124 reported by Mike Frysinger.
* src/files.c (input_tab): Parse a character in the correct
buffer. This fixes Savannah bug #47199.
* src/prompt.c (do_statusbar_output): Reduce an allocation to what
is actually needed. This undoes the papering-over of above bug.
2016-02-18 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_replace_loop), src/text.c (do_int_spell_fix),
src/winio.c (edit_refresh): Fix Savannah bug #47127 the proper way.
* src/nano.c (free_filestruct): Allow the parameter to be NULL.
* src/search.c (search_init): Delete a debugging leftover.
2016-02-16 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (initialize_buffer_text): Delete redundant assignment.
2016-02-15 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (read_file): Free not just the struct but also the
data it contains, and also when it is the first and only line.
This fixes Savannah bug #47153 reported by Mike Frysinger.
* src/files.c (get_full_path): Avoid losing a buffer when getcwd()
fails. This fixes Savannah bug #47129 reported by Mike Frysinger.
2016-02-14 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_replace_loop): Make iterating through replacement
matches behave again like iterating through search matches: showing
them centered when found offscreen. This fixes Savannah bug #47127.
* src/text.c (do_int_spell_fix): Restore the above behavior also for
the internal spell fixer.
* src/prompt.c (do_statusbar_input, do_statusbar_verbatim_input,
do_statusbar_output): Do the copying from input to output just once.
* src/prompt.c (do_statusbar_output): Rename and condense some stuff,
and correct the main comment: filtering means allow_cntrls==FALSE.
* README, TODO, doc/man/{nano.1,rnano.1,nanorc.5}: Say that 2.5.x
is a "rolling" release, lock files are done, and prepare for 2.5.3.
2016-02-13 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (do_browser, browser_refresh): Rebuild the file list
only when necessary, not for each and every cursor movement. This
fixes Savannah bug #47133.
* src/files.c (save_poshistory): Allocate enough space for printing
out the line and column numbers. This fixes Savannah bug #47135.
* src/*.c: Switch the cursor on and off at the appropriate moments,
so that it no longer shows in the help screen nor in the file list.
This fixes Savannah bug #47126.
GNU nano 2.5.2 - 2016.02.12
2016-02-11 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_linter): Go to the next item in the list before
freeing the current one. This fixes Savannah bug #46796.
* src/text.c (do_formatter): Don't leave curses mode, as that would
hide any error messages upon reentry. And if there are any messages,
allow the user a little time to read them.
* src/text.c (do_linter, do_formatter): Condense some declarations,
rewrap some lines, and improve a few comments.
* doc/syntax/go.nanorc: Make the formatter command more visible.
2016-02-10 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (discard_until): Prevent a chain of editing actions from
continuing after a discard. This fixes Savannah bug #47104.
* src/files.c (get_full_path): Plug a sneaky memory leak. This fixes
Savannah bug #47003 reported and solved by Mike Frysinger.
* src/rcfile.c (parse_binding): Allow only control sequences in the
proper range to be rebound. This fixes Savannah bug #47025.
* THANKS: Add a Spanish, a Catalan, and a Croat translator.
* AUTHORS, THANKS: Remove SVN Id tags and a duplication.
* src/winio.c (get_kbinput), src/nano.c (main): Switch the cursor on
in the right place: in the central input routine.
* src/files.c (load_poshistory): Free any records that are dropped.
This fixes Savannah bug #47111 reported by Mike Frysinger.
2016-02-09 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (stat_with_alloc, open_buffer, write_file): Check the
result of a stat() to avoid referencing uninitialized data. Original
patch was by Kamil Dudka.
* doc/man/{nano.1,rnano.1,nanorc.5}: Adjust version for release.
2016-02-07 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (update_poshistory): Don't put files in the history list
when they have the default cursor position (line 1, column 1).
* src/files.c (write_file): Avoid a pointless lstat() when not writing
to a temp file, and in the bargain elide two variables.
* src/files.c (write_file): Elide an unneeded 'if'.
* doc/syntax/c.nanorc: Use a character class instead of a literal tab
and space. The change was inspired by David Niklas.
* src/prompt.c (do_yesno_prompt): Normalize the indentation.
* src/prompt.c (do_yesno_prompt): Rename a variable.
2016-02-06 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (write_file): Remove the --nofollow option that hasn't
been working for a dozen years.
* src/winio.c (statusbar): Update the screen immediately whenever a
message has been posted on the status bar.
* src/winio.c (statusbar), src/nano.c (do_input): Turn the cursor off
when writing in the status bar, and on when waiting for input.
* src/prompt.c (update_the_statusbar): Chop two parameters that are
always the same, and that are global variables anyway.
* src/prompt.c (update_bar_if_needed): Rename this for more contrast.
* src/prompt.c (do_statusbar_backspace): Avoid updating the bar twice.
* src/cut.c, src/files.c, src/prompt.c: Rewrap some lines and remove
some useless comments.
2016-02-05 Benno Schulenberg <bensberg@justemail.net>
* doc/texinfo/nano.texi: Condense the descriptions of command-key
sequences and of the screen layout, mention how to enter Unicode,
and mention that regular expressions are line oriented.
* src/global.c (shortcut_init): Put four strings in standard order.
* src/text.c (do_undo), src/global.c (shortcut_init): Guide the
translators a little bit.
2016-01-31 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (has_valid_path): Be more specific in how a given path
is invalid. The change was improved by Rishabh Dave.
* doc/syntax/nanorc.nanorc: Show ^^ and M-^ as valid key names.
* src/prompt.c (do_statusbar_home): Make Home go always fully home.
2016-01-29 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (do_insertfile): Do display the buffer when configured
with only --disable-histories. This fixes Savannah bug #47011.
* src/nano.c (main): Check position history only when 'positionlog'
is set. This fixes a bug unconsciously reported by Mike Frysinger.
* src/files.c (do_lockfile): Plug a couple of memory leaks.
* src/files.c (update_poshistory): Plug another memory leak.
* src/files.c (close_buffer): Update position history only when
the option 'positionlog' is set.
2016-01-26 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (update_poshistory): Do not add directories to the
list of file positions. This fixes Savannah bug #46971.
* src/*.c: Adjust some indentation and some line wrapping.
* src/prompt.c (do_statusbar_prev_word): When in the middle of a
word, jump to the start of the current word, not to the start of
the preceding one. This fixes Savannah bug #46970.
* src/prompt.c (do_statusbar_next_word): Use simpler algorithm.
2016-01-25 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (update_poshistory): Handle an update of the first
element correctly.
* doc/texinfo/nano.texi: Document the --enable-altrcname option.
The lack of this was pointed out by Frank.
* doc/man/nano.1, doc/man/nanorc.5, doc/texinfo/nano.texi: Mention
that the position history is limited to the 200 most recent files.
2016-01-24 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (update_poshistory): Move an updated item to the end
of the list, so that it won't be dropped any time soon. The problem
was pointed out by David Niklas.
* src/winio.c (edit_redraw): Condense by removing a triplication.
* src/prompt.c (do_statusbar_prev_word, do_statusbar_next_word):
Chop an always-FALSE parameter and delete an unused return value.
* src/prompt.c (do_prompt): Remove a superfluous free.
* src/prompt.c (update_the_bar): Bundle some statements.
* src/prompt.c (need_statusbar_update): Elide this function.
* src/prompt.c (total_statusbar_refresh): Elide this function too.
2016-01-22 Benno Schulenberg <bensberg@justemail.net>
* src/utils.c (get_homedir): Don't use $HOME when we're root, because
some sudos don't filter it out of the environment (which can lead to
a root-owned .nano/ directory in the invoking user's home directory).
It fixes https://bugs.launchpad.net/ubuntu/+source/nano/+bug/1471459.
* src/files.c (read_line): Rename a variable for clarity and contrast.
2016-01-21 Benno Schulenberg <bensberg@justemail.net>
* src/prompt.c (get_prompt_string): Preserve the cursor position on
the statusbar when just toggling a setting or making an excursion to
the file browser. This fixes Savannah bug #46945.
* src/prompt.c (do_prompt_abort): Remove this unneeded function, as
nothing can break out of do_prompt(), not a SIGWINCH either.
* src/prompt.c (get_prompt_string): Delete code that is dead now.
* src/prompt.c (get_prompt_string): Elide an unneeded variable.
* src/browser.c (do_browser): Delete unneeded blanking of a variable.
2016-01-20 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (open_buffer): Readjust the indentation and a comment.
* src/files.c (has_valid_path): Get rid of a global variable.
2016-01-20 Rishabh Dave <rishabhddave@gmail.com>
* src/files.c (verify_path, open_buffer): When opening a new buffer,
verify that the containing directory of the given filename exists.
This fixes Savannah bug #44950.
* src/files.c (do_lockfile): Remove the existence check on the
directory, as this is now covered by verify_path().
2016-01-17 Benno Schulenberg <bensberg@justemail.net>
* src/global.c: Fix typo in #ifndef symbol. Reported by Frank.
* doc/syntax/nanorc.nanorc: Remove '+' as only one menu is allowed.
* src/files.c (load_poshistory): Limit the number of loaded items.
2016-01-17 Mike Frysinger <vapier@gentoo.org>
* doc/syntax/nanorc.nanorc: Allow inline comments with key bindings.
2016-01-15 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (set_modified): Plug another memory leak.
* src/files.c (set_modified): Move this function to its habitat.
* src/files.c (open_file): Return the fantastic file descriptor
when the opening of a non-existent file for reading succeeds.
* src/nano.c (delete_opennode), src/text.c (discard_until):
Free the items on the undo stack when a buffer is closed.
This fixes Savannah bug #46904 reported by Mike Frysinger.
2016-01-15 Mike Frysinger <vapier@gentoo.org>
* src/files.c (open_file): Free the full filename in all cases.
2016-01-14 Benno Schulenberg <bensberg@justemail.net>
* doc/nanorc.sample.in: Remove a reference to an obsolete file.
Reported by Mike Frysinger.
* src/winio.c (edit_redraw): Delete an 'if' that is always FALSE.
* src/winio.c (edit_redraw): Elide an unneeded variable and adjust
some wrappings and whitespace.
* src/proto.h: Delete two duplicate declarations.
* src/rcfile.c (check_bad_binding): Elide this unneeded function.
* src/rcfile.c (parse_binding): Show key only when it was rebound.
2016-01-13 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (save_poshistory): Reduce the indentation.
* src/*.c: Adjust a few comments and rewrap some lines.
2016-01-12 Benno Schulenberg <bensberg@justemail.net>
* NEWS: Fix some typos and whitespace, and normalize the dates.
* src/files.c (load_poshistory): Rename a variable.
* src/files.c (load_poshistory): Remove some code duplication.
* src/files.c (save_poshistory, update_poshistory, check_poshistory,
load_poshistory): Differentiate variable name from function names.
* src/files.c (load_poshistory): Remove a senseless iteration.
* src/files.c (load_poshistory): Condense the reading of a line.
* src/files.c (load_poshistory): Reduce the indentation.
GNU nano 2.5.1 - 2016.01.11
2016-01-10 Benno Schulenberg <bensberg@justemail.net>
* NEWS: Add item for upcoming 2.5.1.
* src/nano.c (version), src/winio.c (do_credits), doc/man/rnano.1,
doc/man/nano.1, doc/man/nanorc.5: Adjust dates and version number.
2016-01-09 Benno Schulenberg <bensberg@justemail.net>
* src/color.c (precalc_multicolorinfo), src/winio.c (edit_draw):
Make sure to keep advancing also when matches are zero-length.
This fixes Savannah bug #26977 reported by Tigrmesh.
* src/winio.c (update_line): For softwrap, don't go beyond the number
of available rows in the edit window. This fixes Savannah bug #42188.
* ChangeLog: Snip inconsistent blank lines.
2016-01-07 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (assign_keyinfo): Delete two unneeded #ifdefs: if
they /could/ be false, the H and E keys would stop working.
* src/global.c (assign_keyinfo): Add a comment and use a symbol.
2016-01-04 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init): Nowadays the functions are defined
only once, so there is no longer any need to free existing ones.
* src/global.c (sctofunc): Rewrite the loop, and constify the input.
* src/text.c (do_linter): Condense the exit code.
* src/nano.c (allow_sigwinch): Improve its name and its comments.
* src/global.c (shortcut_init): Add "Tab" as key description.
* src/text.c (do_linter): Gettextize a forgotten string.
* src/global.c (assign_keyinfo): Make "Tab" produce the appropriate
keycode. This fixes Savannah bug #46812 reported by Cody A. Taylor.
2016-01-04 Mike Frysinger <vapier@gentoo.org>
* src/global.c (strtosc, strtomenu): Constify the input parameter.
2016-01-03 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_deletion), src/nano.c (do_input): Let reset_multis()
figure out whether after a deletion a full refresh is needed, before
doing a redraw of the current line. This fixes Savannah bug #46794.
* src/nano.c (do_output): Let reset_multis() figure out whether after
an addition a full refresh is needed (for multiline-regexes' sake),
instead of doing it always.
* src/color.c (reset_multis): Abort when having no multiline regexes.
* src/nano.c (do_input): A functionless shortcut should be impossible.
* src/nano.c (do_input): Adjust indentation.
2016-01-02 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_spell, do_formatter): Plug three tiny memory leaks.
* src/text.c (do_alt_speller, do_formatter): There is no need here to
reinitialize the windows; it will be done when polling the keybuffer.
* src/winio.c (do_credits): Correctly restore the settings of NO_HELP
2015-12-31 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_formatter): Restore the cursor position differently.
* src/search.c (do_gotopos): Delete this now unused function.
* src/search.c (do_gotolinecolumn): Chop an always-FALSE parameter.
* src/search.c (do_gotolinecolumn): Chop a duplicate parameter --
'allow_update' always has the same value as 'interactive'.
2015-12-30 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main), src/files.c (open_buffer): Don't try to position
the cursor when opening a buffer failed (because the user specified a
directory, for example). This fixes Savannah bug #46778.
* doc/syntax/ocaml.nanorc: Normalize the comments.
2015-12-29 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/{c,objc,asm}.nanorc: Disable the regex for multiline
strings as it colours some things wrong and is a glutton on time.
2015-12-23 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (do_writeout, do_writeout_void), src/global.c
(shortcut_init, strtosc), src/nano.c (do_exit, close_and_go),
doc/man/nanorc.5, doc/texinfo/nano.texi: In the writeout menu,
offer ^Q to close and discard the buffer without saving it. By
default, the key is bound only when --tempfile is in effect.
* doc/man/nanorc.5: Improve ordering of bindable functions.
* src/files.c (read_file): Don't open an extra blank buffer when
an empty file is read. Bug was exposed by r5498, December 18.
* src/files.c (do_writeout): When the user decides to save the
buffer after all, go back to the filename prompt because the
buffer may not have a name yet. This fixes Savannah bug #46752.
2015-12-23 Mike Frysinger <vapier@gentoo.org>
* doc/syntax/autoconf.nanorc: Handle .m4 files too, add the "elif"
keyword, handle dnl comments better, and mark trailing whitespace.
* src/files.c (save_history, save_poshistory): Don't make the user
hit Enter when there's an error saving history state at exit; it is
pointless and annoying. Just notify the user and move on.
* src/nano.c (main): On most 64-bit systems, casting a pointer to
an integer can cause valid pointers to be truncated and rejected.
Rework the code to test for the two invalid values directly.
2015-12-23 Christian Weisgerber <naddy@mips.inka.de>
* configure.ac: AC_CHECK_HEADERS_ONCE() is very special and cannot be
conditionalized. Use plain AC_CHECK_HEADERS() instead, to not check
for magic.h and zlib.h when configuring with --disable-libmagic.
2015-12-22 Benno Schulenberg <bensberg@justemail.net>
* src/color.c (precalc_multicolorinfo, alloc_multidata_if_needed):
Move these two functions to the file where they belong. And make
the checking for an impatient user into a separate routine.
* src/proto.h, src/winio.c (parse_escape_sequence, convert_sequence,
arrow_from_abcd): Better names for these three functions.
* src/winio.c (convert_sequence): Use return instead of a variable.
2015-12-20 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (display_buffer), src/nano.c (main): Precalculate the
multiline-regex cache data for each buffer, not just for the first.
This fixes Savannah bug #46511.
2015-12-18 Benno Schulenberg <bensberg@justemail.net>
* src/color.c (color_init): Use less #ifdefs, and adjust indentation.
* src/color.c (set_colorpairs): Improve comments and rename vars.
* src/files.c (read_line): Chop a superfluous bool -- 'prevnode' being
NULL is enough indication that the first line is being read.
* src/files.c (switch_to_prevnext_buffer): Tweak comment and var name.
2015-12-11 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/Makefile.am: Add missing autoconf and nftables syntaxes.
* ChangeLog: Correct a bug number, plus a few other tweaks.
2015-12-08 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (splice_node, unlink_node): Let these functions update
'filebot', instead of doing it in four different places each.
* src/search.c (goto_line_posx), src/move.c (do_down): It should not
be necessary to doubly check for being at the end of file.
* src/text.c (do_justify): Rewrap and reorder a few lines.
2015-12-07 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (edit_draw): Quit the loop when there is no end match.
* src/files.c (do_writeout): When --tempfile is given, make ^O not
write out the file rightaway, as otherwise there is no way to discard
the edits. This undoes the core part of r5378 of September 29. See
GNU nano 2.5.0 - 2015.12.05
2015-12-05 Chris Allegretta <chrisa@asty.org>
* src/nano.c (main): key_defined() is an ncurses-ism. Add better
checks for this.
2015-12-05 Benno Schulenberg <bensberg@justemail.net>
* src/text.c: Fix compilation with --enable-tiny --enable-justify.
* doc/man/{nano.1,rnano.1,nanorc.5}, doc/texinfo/nano.texi:
Update date and version number to match the upcoming release.
* src/files.c, src/winio.c: Avoid two compilation warnings.
2015-12-04 Benno Schulenberg <bensberg@justemail.net>
* src/proto.h: Avoid a compilation warning.
* src/color.c (reset_multis_for_id, reset_multis_before/after):
Fuse these three functions into a single one.
* src/*.c: Rewrap some lines and tweak some comments.
2015-12-03 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (discard_until): Move the trimming of the undo stack
into a separate function, so it can be used elsewhere.
* src/text.c (do_justify): Discard the entire undo stack, to prevent
nano from dying (or making mistakes) when trying to undo edits after
a justification. This works around Savannah bug #45531.
* src/text.c (do_indent): Also here discard the entire undo stack, to
prevent nano from making mistakes when trying to undo edits after an
indentation change. This works around Savannah bug #46591.
* doc/man/nano.1, doc/texinfo/nano.texi: Add a note about undo not
working after a justification or reindentation.
2015-12-02 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/python.nanorc: Don't colour triple quotes by themselves.
* doc/syntax/python.nanorc: Treat backslashed quotes properly, and
don't colour triple-quoted strings in two manners.
* src/text.c (do_justify): Accept not just the Uncut keystroke but
also the Undo keystroke for undoing a justification.
2015-12-02 Arturo Borrero González <arturo.borrero.glez@gmail.com>
* doc/syntax/nftables.nanorc: New file; syntax colouring for nftables.
This addresses Debian bug #805288.
2015-12-01 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (do_insertfile): Mark the buffer as modified only when
actually something was inserted. This fixes Savannah bug #45409.
* src/files.c (do_insertfile): Rename two variables for clarity.
* src/text.c (redo_cut): Delete two redundant assignments.
* src/winio.c (edit_draw): Move a check to a better place.
* src/winio.c (edit_draw): Rename a label and elide an 'else'.
* src/winio.c (edit_draw): Unindent after previous change.
* src/color.c (reset_multis_before, reset_multis_after): Delete four
superfluous checks.
2015-11-30 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (redo_cut, update_undo): When cutting reaches the EOF,
and NONEWLINES is set, there is no next line at which to put the
cutting point for a redo. So put it at the very end of the cut.
This fixes Savannah bug #46541.
* src/text.c (add_undo, update_undo, do_undo, do_redo), src/nano.h:
Store and retrieve the correct file size before and after an action.
This fixes Savannah bug #45523.
* src/files.c (free_chararray): Allow the parameter to be NULL.
This fixes Savannah bug #46420.
2015-11-29 Benno Schulenberg <bensberg@justemail.net>
* src/color.c (reset_multis): Evaluate correctly whether to reset
the multidata cache. This fixes Savannah bug #46543.
* src/color.c (reset_multis): Reset the multidata a bit less often.
* src/color.c (reset_multis): Adjust whitespace and comments.
* src/winio.c (edit_draw): When an end is found but nothing is painted
(because the coloured part is horizontally scrolled off), nevertheless
set the multidata to CBEGINBEFORE. This fixes Savannah bug #46545.
* src/winio.c (edit_draw): Use the main cache-allocation routine.
* src/winio.c (edit_draw): Delete two redundant conditions, and move
the least frequent case to the end.
* src/winio.c (edit_draw): Elide a variable, tweak some comments.
2015-11-28 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main): Allow the user full control over the values of
MALLOC_CHECK_ and MALLOC_PERTURB_; nano shouldn't override these.
This reverts r5344 from August 6.
* src/nano.c (alloc_multidata_if_needed): When allocating a new
multidata array, initialize the array. Problem was betrayed by
using MALLOC_PERTURB_, and was located with valgrind.
2015-11-26 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_redo): Not just the undoing, also the redoing of a
Backspace at EOF is a special case. This fixes Savannah bug #46532.
* src/text.c (do_redo): Warn about an impossible condition, instead
of blithely continuing. And elide an unneeded variable.
2015-11-25 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (do_output): Refreshing the whole edit window (instead
of just the current line) is not needed for any kind of syntax, but
only when there are multiline regexes. And check for this not on
every keystroke in a burst, but just once.
* src/text.c (do_undo): Warn about a condition that should never
occur, instead of silently continuing.
* src/text.c (do_undo): Elide an unneeded variable, and don't skip
the end of this function when things went wrong.
* src/text.c (do_undo, do_redo, add_undo, update_undo): Handle more
possible internal errors, and do it correctly.
* AUTHORS: Add Mark and myself.
2015-11-24 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/makefile.nanorc: Also recognize the extensions .make and
.mk as Makefiles. Suggested by Emmanuel Bourg in Debian bug #804845.
* src/color.c (color_update): Tell the user when a syntax name given
on the command line does not exist. This fixes Savannah bug #46503.
* src/nano.c (splice_node): Inserting a new node into a linked list
requires just two parameters: the insertion point and the new node.
* src/nano.c (splice_node): Rename a variable for clarity.
2015-11-23 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main), src/winio.c (parse_kbinput): Make Ctrl+Left and
Ctrl+Right work on more terminals by asking ncurses for the keycodes.
This addresses Debian bug #800681 reported by Arturo Borrero González.
2015-11-22 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (add_undo): Delete a condition that will never occur --
this function is only ever called with PASTE when cutbuffer != NULL.
* src/text.c: Rewrap, rewrite, rename, and reorder some things.
* src/text.c (do_undo, do_redo): Elide an unneeded variable.
* src/nano.c (unlink_node): After unlinking, also delete the node.
2015-11-21 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main): Let the value of a --fill option on the
command line override the value of a "set fill" in an rcfile.
This fixes Savannah bug #46492.
* ChangeLog, NEWS: Add the release marker and copy the news item.
2015-11-21 David Lawrence Ramsey <pooka109@gmail.com>
* ChangeLog, NEWS: Fix a typo and adjust some spacing.
GNU nano 2.4.3 - 2015.11.18
2015-11-12 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_undo, update_undo): Store the correct end position of
an inserted file, and use it when undoing. Fixes Savannah bug #46414.
* src/text.c (add_undo, update_undo): Delete an unneeded alias -- it
wasn't being used consistently anyway.
2015-11-11 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_redo, update_undo): Redo an Enter from the stored
undo data, instead of running do_enter() again, because the latter
will behave differently depending on the setting of autoindent.
This addresses Debian bug #793053 reported by Clancy.
* src/text.c (do_enter): Chop the now unused parameter 'undoing'.
* src/text.c (do_enter_void): Discard this now useless function.
2015-11-10 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (edit_draw): Skip a zero-length match only when there
/is/ a match. Found with valgrind. This fixes Savannah bug #41908.
* src/files.c (do_lockfile, update_poshistory): Plug memory leaks.
2015-11-08 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init): Allow exiting from the file browser
with the same key (^T) as it was entered (as ^G for the help viewer).
* doc/syntax/changelog.nanorc: Accept longer bug and patch numbers.
2015-11-07 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_replace_loop): Correct the logic for adjusting the
x position of the mark -- it happened to work because 'mark_begin' is
NULL when 'old_mark_set' is FALSE. Also improve the comments.
2015-11-06 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (write_lockfile): Don't bail out when the hostname is
overlong, but instead truncate it properly and continue. This fixes
Ubuntu bug #1509081 reported by Sam Reed.
* src/global.c (length_of_list), src/winio.c(get_mouseinput): Don't
check whether a function has a help line, since all of them have.
(And even if some didn't, they would still be valid functions.)
* src/cut.c (cut_line): There is no need to set 'openfile->mark_begin'
just like that; it will be set when 'openfile->mark_set' becomes TRUE.
* src/text.c (do_redo): Delete a redundant assignment.
2015-11-02 Benno Schulenberg <bensberg@justemail.net>
* src/nano.h: Delete an unused type definition.
* src/nano.h: Improve several comments.
* src/text.c (do_wrap): Elide two variables.
* src/cut.c (do_cut_text): Chop the 'undoing' parameter, so that the
calls of this function become more symmetrical.
2015-10-31 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (copy_from_filestruct): When pasting while the mark is
on, the mark's pointer needs to be refreshed only when it is on the
same line as the cursor, and the mark's x coordinate only when the
mark is located after the cursor. This fixes Savannah bug #46347.
* src/nano.c (copy_from_filestruct): Improve comments and combine
two conditions.
* ChangeLog: Correct the description of an old change.
2015-10-29 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (add_undo): Only skip adding an undo when the current
action equals the last action. This condition is needed for when
typing text is broken by an undo+redo. Fixes Savannah bug #46323.
* src/text.c (do_redo): Check for "nothing to redo" earlier, so we
can restore the possible warning about an internal error.
* src/text.c (add_undo): Remove an 'if' that will never be true,
and remove some assignments that have already been done.
2015-10-29 David Lawrence Ramsey <pooka109@gmail.com>
* src/files.c (do_writeout), src/nano.c (no_current_file_name_warning,
do_exit): When option -t is given, make ^O work the same way as under
Pico, writing out the file without prompting. And make it work even
better than Pico when the current file doesn't have a name yet. This
fixes Savannah bug #45415. [Reverted in r5489 on December 7.]
2015-10-28 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_redo): For an INSERT, 'u->mark_begin_lineno' is not
an actual line number, so spoof it. It can be spoofed, because 'f'
is not used for the INSERT case. This fixes Savannah bug #45524.
* src/text.c (do_redo): Remove a condition that can never occur.
Also rewrite a loop to become somewhat clearer.
2015-10-27 Benno Schulenberg <bensberg@justemail.net>
* src/move.c (do_next_word): Rewrite this function to use the same
logic as do_prev_word(), reducing its number of lines to half.
* src/move.c (do_down): Don't calculate the line length twice. And
in the bargain avoid a warning about comparison of signed/unsigned.
2015-09-05 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (display_string, edit_draw): Force a redraw of a line
only when it contains a multicolumn character, to spare all regular
text this significant slowdown. This fixes Savannah bug #45684
reported by Wyatt Ward.
* src/move.c (do_prev_word): Drop a return value that is never used.
* src/move.c (do_prev_word): When in the middle of a word, jump to
its beginning instead of to the beginning of the preceding word.
Nano now matches the behaviour of Pico and of most other editors.
This fixes Savannah bug #45413.
2015-09-04 Benno Schulenberg <bensberg@justemail.net>
* src/chars.c: Reverting r5354 from August 12. This fixes Savannah
bug #45874. Apparently there is /some/ state somewhere after all.
2015-08-29 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/autoconf.nanorc: New file; syntax colouring for Autoconf.
* src/files.c: Rewrap some lines and tweak two comments.
2015-08-16 Benno Schulenberg <bensberg@justemail.net>
* src/help.c (help_init, help_line_len): Avoid wide paragraphs of text
in the help screens: wrap them at 74 columns if the screen is wider.
* src/help.c (help_init): Reduce the scope of a variable.
* src/help.c: Adjust some comments and whitespace.
* src/help.c (do_help, do_help_void): Don't bother passing a function
when it's used only once.
* src/help.c (help_line_len): The wrap location can be beyond the EOL,
so for determining the length of the current line, don't start at that
location but at the beginning. This fixes Savannah bug #45770.
* src/help.c (help_line_len): Rename and reorder most of it.
* src/nano.c (make_new_opennode), src/files.c (initialize_buffer):
Remove some duplication in the initialization of a new openfile node.
* src/nano.c (make_new_opennode): Don't bother setting things to NULL
when they will be initialized right away.
* src/files.c (make_new_buffer): Don't bother with a separate function
when it's used only once, right there.
* src/help.c (help_init): Since the new SIGWINCH handling, a resizing
of the window will no longer break out of the help viewer, so there is
no need any more for an extra freeing of the help text.
2015-08-13 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_find_bracket): Remove mistaken comparison between
pointer and literal character. Found with cppcheck.
* src/browser.c (browser_init): Speed up the finding of the longest
filename: don't limit the value to that of COLS all the time, as this
is done later anyway, and don't bother skipping the dot entry.
* src/global.c (shortcut_init): In restricted mode, allow changing
the file format, but actually disable Appending, Prepending, making
Backups, and opening the File Browser.
2015-08-12 Benno Schulenberg <bensberg@justemail.net>
* src/chars.c: UTF-8 is a stateless encoding, so there is no need to
reset any state. [Reverted in r5369 on September 4.]
2015-08-11 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (write_file): Avoid calling copy_file() with a null
pointer. Found with cppcheck.
* src/files.c (write_file): A failure to delete the temporary file
does not mean that it wasn't copied properly.
2015-08-09 Benno Schulenberg <bensberg@justemail.net>
* src/global.c, src/help.c (help_init), src/nano.c (do_toggle, main),
src/winio.c (display_string, statusbar): Allow toggling the display
of whitespace also when support for nanorc files was not built in,
because the default values are quite usable.
* src/files.c (read_file), src/rcfile.c, src/nano.c (main, usage):
Fix compilation with --enable-tiny; file formats are not available
then, so option --unix has no place; also add its description.
* src/nano.c (finish): Remove an unneeded and mistaken condition.
* src/nano.c (say_there_is_no_help): Make it sound more definitive.
2015-08-08 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (display_string): For some reason the reallocation done
by null_at() messes things up. So put in the null byte "manually".
This is a fix -- or workaround -- for Savannah bug #45718.
2015-08-06 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main): For --enable-debug builds, let malloc() help
to find initialization failures and uses-after-free. Suggested by
Mike Frysinger. [Reverted in r5446 on November 28.]
* doc/texinfo/nano.texi: Improve the formatting, using @t to mark
double-quoted literal strings, @: to mark periods that do not end
sentences, and @. to mark a finishing period after a capital.
2015-08-04 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main), src/files.c (read_file), src/rcfile.c,
doc/man/nano.1, doc/man/nanorc.5, doc/texinfo/nano.texi: Add
the option --unix, to save a file by default in Unix format.
* doc/nanorc.sample.in: Advertise the five new bindable functions.
* doc/man/nano.1, doc/man/nanorc.5, doc/texinfo/nano.texi: Tweaks.
2015-08-03 Benno Schulenberg <bensberg@justemail.net>
* src/rcfile.c (parse_binding): Check the value of shortcut->toggle
only if it actually is a toggle. Found with valgrind.
* src/files.c (write_lockfile): Plug a leak. Found with valgrind.
* src/rcfile.c (parse_binding): Plug a tiny leak.
2015-08-02 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (initialize_buffer): Initialize also openfile->syntax.
This addresses Debian bug #787914 reported by Paul Wise.
2015-08-01 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (precalc_multicolorinfo): Set each multiline-color
value instead of OR-ing it. This fixes Savannah bug #45640.
* src/help.c (help_init): Show also the dedicated keys in the
^G help text. This helps to clarify some keys, and helps to
see which ones could easily be rebound.
* src/nano.c (usage): Add "and exit" to the description of --help,
to match --version, and to distinguish it more from ^G.
2015-07-31 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_cutword, do_cut_prev_word, do_cut_next_word),
src/global.c (shortcut_init, strtosc), doc/texinfo/nano.texi,
doc/man/nanorc.5: Add two new bindable functions, 'cutwordleft'
and 'cutwordright', which delete all characters from the cursor
to the preceding or succeeding word start. Fixes bug #32803.
2015-07-30 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init): Don't show ^R and ^T in the help
lines in restricted mode (if possible), to give visual feedback.
* src/*.c: Normalize the whitespace after the preceding changes.
* src/nano.c (show_restricted_warning, say_there_is_no_help):
Differentiate between something being disabled/restricted (because
of the way of invocation) and help texts being unavailable (which
is a compile-time decision).
* src/global.c (shortcut_init): Change "Justify" to a tag and regroup.
* src/nano.c (do_suspend_void, do_suspend): Provide feedback when
suspension is not enabled; and it cannot be enabled in restricted
mode any longer, so there is no need to check for that any more.
2015-07-29 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_linter): When the linter is called in restricted mode
(possible when nano was built with --disable-speller), it is better to
say that this function is disabled than that no linter was defined.
* src/nano.c (usage): When asking for --help in restricted mode, don't
show options that don't have any effect.
* src/nano.c (do_toggle): Make the four toggles that don't have any
effect in restricted mode say that they're disabled.
2015-07-28 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_formatter), src/nano.c (allow_pending_sigwinch):
Reenable SIGWINCH-es also when invoking the formatter fails, and
correct some comments.
* src/text.c (do_linter, do_formatter): In restricted mode, no nanorc
files are read, so no linter or formatter will be defined, so these
routines will never be called. Also, the formatter will only ever
be called when a syntax applies to the current file and this syntax
defines a formatter, so there is no need to check this again.
2015-07-26 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_replace_loop): When doing regex replacements, find
each zero-length match only once. This fixes Savannah bug #45626.
* src/global.c (shortcut_init, strtosc), src/search.c (do_findnext,
do_findprevious), doc/man/nanorc.5, doc/texinfo/nano.texi: Add two
new bindable functions, 'findnext' and 'findprevious', which repeat
the last search command in a fixed direction without prompting.
* src/global.c (shortcut_init): Tweak a string.
* src/search.c, src/move.c: Improve a few of the comments.
* src/search.c (replace_regexp, replace_line): Rename two variables,
and make the calculation of the new line size more symmetrical.
2015-07-25 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init, strtosc), src/files.c (savefile),
doc/man/nanorc.5, doc/texinfo/nano.texi: Add a new bindable function,
'savefile', which writes a file to disk without first asking for its
name. This implements Savannah patch #8208 submitted by Seiya Nuta.
2015-07-23 Benno Schulenberg <bensberg@justemail.net>
* doc/man/{nano.1,nanorc.5}, doc/texinfo/nano.texi: Add deprecation
notices for the options 'set const', 'set poslog' and '--poslog'.
Suggested by Eitan Adler.
* doc/faq.html: Mention --disable-histories and --disable-libmagic.
* src/chars.c (mbstrcasestr, mbrevstrcasestr): When searching, find
only valid UTF-8 byte sequences. This fixes Savannah bug #45579,
first reported in 2009 by Mike Frysinger.
2015-07-22 Mike Frysinger <vapier@gentoo.org>
* src/files.c (check_dotnano), src/global.c (thanks_for_all_the_fish),
src/rcfile.c (parse_binding): Plug a few memory leaks.
2015-07-19 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main): Accept again a +LINE argument for each file
given on the command line. This fixes Savannah bug #45576.
* src/nano.c (main): Adjust some comments and rewrap some lines.
2015-07-18 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (edit_draw): When looking for multiline-regex matches,
look for a new start only after an end, instead of right after the
last start. This fixes bug #45525 and bug #41313 on Savannah.
* src/nano.c, src/text.c, src/winio.c: Adjust some comments.
* doc/faq.html: Fix a few typos and make some updates for 2.4.*.
* ChangeLog: Make the release markers stand out more.
2015-07-17 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (open_buffer): Verify that a named and existing file
is a normal file, to avoid opening an empty buffer when the name of
a directory is specified. This fixes Savannah bug #45383 reported
by Mike Frysinger, and also Savannah bug #27839 (which is an echo
from Debian bug #551717 reported by Paul Wise).
* src/files.c (load_history): Remove an earlier attempt to make M-W
work at startup. It no longer worked because the assigned value gets
overwritten by a later initialization of 'last_search' to the empty
string. Found through the use of valgrind.
* src/text.c (do_alt_speller): Avoid an unfounded warning about a
possibly uninitialized variable.
2015-07-17 Mike Frysinger <vapier@gentoo.org>
* src/browser.c (browser_refresh): Use the proper type (off_t) for
the size of a file, and avoid warnings about too large bit shifts.
2015-07-15 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c, src/rcfile.c, doc/nanorc.sample.in, doc/man/nano.1,
doc/man/nanorc.5, doc/texinfo/nano.texi, doc/syntax/nanorc.nanorc:
Unabbreviate the long option --const to --constantshow, and --poslog
to --positionlog, to be more understandable.
* src/nano.h, src/global.c (add_to_sclist), src/help.c (help_init),
src/rcfile.c (parse_binding), src/winio.c (get_shortcut): Rename
the 'menu' item in the sc (shortcut) struct to 'menus', as it can
refer to more than one menu.
2015-07-13 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_int_spell_fix, do_alt_speller): Remove an unneeded
condition; 'added_magicline' can only be true when NO_NEWLINES isn't.
* src/files.c (replace_buffer): Prevent a segfault when spellchecking
a marked region and nonewlines isn't set.
2015-07-12 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_alt_speller): Rename the variable 'totsize_save'
to 'size_of_surrounding', to better describe what it contains.
* src/files.c (read_file): Remove a stray space from a message.
2015-07-10 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (delete_opennode): Plug a small memory leak.
* src/files.c (do_lockfile): Rename a variable; it does not contain
the size of the file but the size of the name.
* src/nano.c (do_toggle): Elide an unneeded variable.
* src/files.c: Unwrap some lines and rewrap some others in a more
congenial manner; tweak some comments and whitespace and braces.
* src/files.c (read_line): Remove two lines of dead code.
* src/files.c (read_line): Rearrange a few lines and some whitespace.
2015-07-06 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (add_to_sclist), src/help.c (help_init), src/nano.h,
src/rcfile.c (parse_binding): When defining the toggles, give each
of them a sequence number, so that, when they are rebound, they can
still be listed in the original order in the help text. This fixes
Savannah bug #45417.
* src/text.c (do_undo): Make it clearer what WAS_FINAL_BACKSPACE does.
* src/text.c (add_undo, do_deletion): Move the check for a Delete at
the end-of-file to a less frequently travelled path.
* src/text.c (do_deletion): If a Backspace happens at the end-of-file,
don't remove and then re-add the magic line; just add an undo item.
* src/help.c (help_init), src/text.c (do_undo): Adjust whitespace and
bracing after the previous changes.
GNU nano 2.4.2 - 2015.07.05
2015-06-28 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (browser_refresh): Limit the selected file to the
available ones in the list -- after a refresh the number may have
decreased. This fixes Savannah bug #45424.
* src/text.c (do_deletion): There is no need to check again for the
line ending -- it was done already in the encompassing 'if'.
* src/text.c: Unwrap some lines, rewrap some others more logically,
plus several other esthetic tweaks.
* doc/syntax/xml.nanorc: Recognize many more kinds of XML files.
This addresses Debian bug #790017 reported by Emmanuel Bourg.
Also colour the strings in tags differently, and add some comments.
2015-06-27 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_undo, add_undo): Skip undoing a backspace *only* when
it really tried to delete the final, magic newline.
* src/nano.h, src/text.c: Rename three flags for clarity.
* src/files.c (replace_buffer): This function is only ever called with
a temporary file as parameter, so forget the case of an empty filename.
Also, don't bother putting the pointer at the top of the buffer, as the
first action after this function is to restore the cursor position.
* src/files.c: Normalize whitespace and comments.
* src/nano.h: Remove obsolete execute flag from the shortcut struct.
* src/global.c (shortcut_init): Remove a duplicate binding of ^T, to
prevent it being shown twice in the ^G help text. It will be rebound
dynamically when for the current syntax another function is available.
2015-06-23 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (edit_draw): Verify that there exists multidata for the
found starting line before trying to use it. When a file is inserted
(^R), it will not have any precalculated multidata associated with it.
This fixes Savannah bug #45377 reported by Cody A. Taylor.
2015-06-20 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_research): If nothing was searched for yet during
this run of nano, take the most recent item from the search history.
This makes M-W work also right after startup, like <n> in vim/less.
* src/utils.c (get_homedir): Keep homedir NULL when no home directory
could be determined, so that nano will show a message about it. This
is a fix for Savannah bug #45343.
* doc/syntax/nanorc.nanorc: Colour key-binding lines affirmatively
only when the specified menu name is an existing one.
* doc/syntax/changelog.nanorc: Stop the changed-files colour from
spilling beyond a blank line. Also highlight releases.
* src/nano.c (main), src/rcfile.c: Remove the obsolete long option
--undo. And sort --help and the softwrap option more consistently.
2015-06-18 Benno Schulenberg <bensberg@justemail.net>
* src/rcfile.c: Allow a tiny nano's ~/.nanorc to enable search and
position histories. Also sort the options more strictly.
* src/nano.h: Delete two unused things, and add two comments.
2015-06-17 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_undo, add_undo): When undoing a Backspace at the tail
of the file and nonewlines is not set, then don't add another newline
but just reposition the cursor. Also, when doing a Delete at the tail
of the file, don't add a superfluous undo structure. This prevents
the appearance of an extra newline when undoing the Backspace/Delete.
Patch partially by Mark Majeres. The problem was first reported in
* src/text.c (do_undo): Adjust whitespace after the previous change.
* src/text.c (add_undo): Elide an unneeded variable and correct two
comments. And try to put the more frequent condition first.
* src/text.c (add_undo): Rename the parameter 'current_action' to
'action', to match the other functions.
* src/text.c (do_undo, add_undo, update_undo): Improve the visibility
of the undo-related debugging messages.
2015-06-14 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (edit_draw): Add some debugging code to track which
multidata codes (for multiline regexes) get assigned to which lines.
* src/winio.c (edit_draw): Start and end regexes can be very similar;
so if a found start has been qualified as an end earlier, believe it
and skip to the next step. This helps with Python's docstrings.
* src/winio.c (edit_draw): When the whole line has been coloured,
don't bother looking for any more starts. This prevents some lines
from being erroneously marked as CENDAFTER instead of CWHOLELINE.
* src/*.c: Don't check for non-NULL before freeing; it's unneeded.
2015-06-11 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (get_key_buffer): Add some debugging code to make it
easy to see what codes a keystroke produces.
2015-06-07 Benno Schulenberg <bensberg@justemail.net>
* doc/texinfo/nano.texi: Show the node with the command-line options
in the main menu, to make it easy to find.
* doc/texinfo/nano.texi: Improve some formatting, hyphenation, wording
and dashes. And remove some confusing, historical things.
* doc/man/nano.1, doc/man/nanorc.5, doc/texinfo/nano.texi: Clarify the
meaning of --backupdir: it doesn't just specify a directory for saving
backup files, it mainly causes uniquely numbered backups to be made.
* doc/man/nano.1: Add a section on the non-obvious functioning of the
cutbuffer and the mark.
2015-06-04 Benno Schulenberg <bensberg@justemail.net>
* src/nano.h: Fix compilation with --enable-tiny.
* nano.spec.in: Add the post-install and pre-uninstall rules for the
Info document, plus some tweaks. (Patch was tested by Kamil Dudka.)
2015-06-02 Benno Schulenberg <bensberg@justemail.net>
* doc/man/nanorc.5, doc/texinfo/nano.texi: Tweak some wordings, and
add some missing formatting to the Info document, and fix an mdash.
* doc/syntax/debian.nanorc: Colour also an optional option.
This addresses Debian bug #664456 reported by Shawn Landden.
Also shorten the name of the syntax to "sources.list".
* doc/syntax/python.nanorc: Require again that the triple quote that
starts a docstring is followed by some character -- it is better to
*not* colour some strings than far too often colour far too much.
This addresses Debian bug #785508 reported by Alexandre Detiste.
2015-05-31 Mahyar Abbaspour <mahyar.abaspour@gmail.com>
* src/prompt.c (get_statusbar_page_start): Prevent a floating-point
exception when the available length for an answer becomes zero.
2015-05-28 Benno Schulenberg <bensberg@justemail.net>
* src/help.c (do_help), src/prompt.c (do_yesno_prompt): Normalize
the whitespace after the recent changes in logic.
* src/prompt.c (do_yesno_prompt): Use 'width' instead of hardcoded
16. Also always first set the string and then position the cursor.
* TODO: Mark window resizes and better file-type detection as done.
* doc/syntax/debian.nanorc: Allow a CD name to contain any character.
This addresses Debian bug #688892 reported by Dani Möller Montull.
2015-05-28 Mahyar Abbaspour <mahyar.abaspour@gmail.com>
* src/nano.c (handle_sigwinch, regenerate_screen), src/global.c,
src/prompt.c (do_statusbar_input, get_prompt_string, do_yesno_prompt),
src/browser.c (do_browser, browser_refresh), src/help.c (do_help),
src/winio.c (get_key_buffer, unget_input, get_input, parse_kbinput),
src/text.c (do_justify, do_linter), src/nano.h, src/proto.h:
Handle a SIGWINCH (signalling a change in window size) not when it
happens but only when checking for input. Report the SIGWINCH via
a special key value to the calling routine, to allow not only the
main editor but also the help viewer and the file browser to adapt
their display to the new size. (Patch edited by Benno.)
2015-05-20 Devrim Gündüz <devrim@gunduz.org>
* doc/syntax/postgresql.nanorc: New file -- syntax highlighting for
PostgreSQL, first posted as Savannah patch #8601. Trimmed by Benno.
2015-05-08 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (browser_refresh): Take the distant possibility of
terabyte files into account, and in the bargain get rid of the need
to calculate the number of digits in UINT_MAX.
* src/files.c (get_next_filename): Limit the number of backup files
to one hundred thousand -- which should be far more than enough --
before finding an unused filename takes an annoying amount of time.
* src/utils.c (digits): Delete this now unneeded function.
2015-05-03 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (browser_refresh): Display an ellipsis only when the
filename is longer than the available space, not when it still fits.
* src/browser.c, src/nano.c: Adjust a few comments and line wrappings.
* doc/syntax/groff.nanorc: Use character classes correctly.
2015-04-28 Benno Schulenberg <bensberg@justemail.net>
* src/color.c (color_update): Match the file regex of a syntax against
the absolute, canonical path instead of against the path the user gave.
This fixes Savannah bug #44288, reported by Mike Frysinger.
* doc/syntax/po.nanorc: Improve the colouring of message tags.
* src/winio.c (get_escape_seq_kbinput): Unwrap a bunch of comments.
2015-04-25 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_replace_loop): Remove the unintended special
case for replacing multiple occurrences of a literal ^ or $; see
* src/search.c (findnextstr): Delete an always-FALSE parameter.
* src/search.c (findnextstr): Rename the parameter 'whole_word'
to 'whole_word_only', for clarity.
2015-04-21 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (findnextfile): Save the settings of the global
case-sens, direction, and regexp flags, and restore them on exit.
And do this not in do_filesearch() but in findnextfile(), so that
it will also work for do_fileresearch().
* src/text.c (do_int_spell_fix): Save and restore the global flags
in the same short and quick way as above.
* src/nano.c (main): Initialize the search and replace strings in
a central place, to get rid of a bunch of ifs.
* src/search.c (search_init_globals): Elide this tiny function.
2015-04-20 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (need_horizontal_update, need_vertical_update): Fuse
two identical functions into one: need_screen_update().
* src/prompt.c (need_statusbar_horizontal_update): Rename function
to need_statusbar_update() as there is no vertical counterpart.
* src/search.c (do_search, do_research): Delete redundant reprises
of a regex search: finding an occurrence only at the very starting
point of the search necessarily means it is the only occurrence.
2015-04-18 Benno Schulenberg <bensberg@justemail.net>
* src/global.c, src/nano.c, doc/man/nanorc.5, doc/texinfo/nano.texi:
Make the descriptions of the multibuffer feature more accurate.
* src/winio.c (display_string): Make sure an invalid starting byte
of a multibyte sequence is properly terminated, so that it doesn't
pick up lingering bytes of any previous content. This prevents the
displaying of ghosts -- characters that aren't really there -- when a
file contains valid ánd invalid UTF-8 sequences. For an example see:
Also make two comments more accurate: an invalid multibyte sequence
will never be categorized as a control character or anything else.
2015-04-18 Mark Oteiza <mvoteiza@udel.edu>
* doc/syntax/{python,ruby,sh,tex}.nanorc: Add a linter definition.
* doc/syntax/elisp.nanorc: New file; syntax highlighting for Elisp.
* doc/syntax/guile.nanorc: New file; syntax highlighting for Guile.
2015-04-17 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_alt_speller, do_linter, do_formatter): Distinguish
a failure to launch the linter from receiving zero parsable lines;
add a new function to glue together the invocation-error string.
* src/global.c (shortcut_init): In the Help Viewer and File Browser,
bind the unbound Home and End keys to goto_top and goto_bottom, to
mimic the behaviour of these keys in file viewers and web browsers.
Also show ^Y and ^V in the WhereisFile menu instead of M-\ and M-/,
for similarity with the WhereIs menu.
* src/global.c (shortcut_init): Arrange the movement keys in the File
Browser in the order of ascending stride, as in the Help Viewer.
GNU nano 2.4.1 - 2015.04.14
2015-04-13 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_replace_loop): Fix compilation with --enable-tiny.
* README: Mention also the Savannah page for reporting bugs.
2015-04-12 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (filesearch_init): Stop M-\ and M-/ in WhereisFile
menu (reached via ^R ^T ^W) from doing also an unrequested search
after having performed their function. Fixes Savannah bug #44790.
* src/global.c (shortcut_init): Rebind ^Y and ^V in the WhereisFile
menu from the pointless page_up() and page_down() to the effective
first_file() and last_file(). Also unbind some other useless keys.
* src/browser.c (filesearch_init): Remove an unused variable, and
adjust the introductory comment for the recently tweaked logic.
* src/rcfile.c (parse_linter, parse_formatter): Use mallocstrcpy()
in a correct manner; don't let it free an unrelated string.
2015-04-11 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (do_replace_loop): Do not split off the marked region
into a separate partition, but do the replacings in the current one,
taking good care to stay within the boundaries of the region. This
fixes an undo bug where the first part of a line would disappear if
the region started in the middle of a line. Bug was reported here:
Original idea and patch were by Mark Majeres.
2015-04-08 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (browser_select_dirname, findnextfile): Rename
'currselected' to 'looking_at', for more contrast with 'selected',
and rename browser_select_filename() to browser_select_dirname().
* src/text.c: Correct and adjust some comments.
2015-04-07 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (do_fileresearch): Don't search for the empty string
when nothing was sought yet (when historylog is set).
* src/browser.c (filesearch_init): Remove an unfitting comment
(there are no toggles here) and tweak some others.
* src/search.c (do_search, do_research): Use the same variable as
in the surrounding code, for consistency.
* src/browser.c (findnextfile_wrap_reset): Elide this function,
and rename 'search_last_file' to 'came_full_circle'.
* src/browser.c (filesearch_init, do_fileresearch): Avoid setting
'focusing' when searching only for filenames.
* src/browser.c (findnextfile, do_filesearch, do_fileresearch):
Greatly simplify the searching for the next matching filename.
* src/{browser,files,help,prompt,text,winio}.c: Let the function
bottombars() set the global variable 'currmenu' -- the displayed
menu must necessarily be the active one.
* src/browser.c (filesearch_abort): Elide this tiny function.
* THANKS: Add the names of recent translators, and sort the list.
* THANKS: A neater layout, plus two table headers.
2015-04-05 Benno Schulenberg <bensberg@justemail.net>
* doc/texinfo/nano.texi: Expand on nano's features, condense the
synopsis, and "online" means something else to most people.
2015-04-03 Benno Schulenberg <bensberg@justemail.net>
* README: Update text to the fifth milestone, 2.4.x, plus tweaks.
* src/rcfile.c: Remove two superfluous (because nested) #ifndefs.
* src/rcfile.c (parse_rcfile): Ignore any magic when libmagic was
disabled, and ignore a formatter when spell checking was disabled.
2015-03-28 Benno Schulenberg <bensberg@justemail.net>
* src/search.c (search_init_globals, search_replace_abort),
src/winio.c (edit_redraw), src/proto.h, src/global.c: When finding
an off-screen string, put it on the center line of the screen and
not on the bottom or top line. This restores the old behaviour
that was unintentionally changed in r5149 six days ago.
* src/winio.c (edit_refresh): When pasting lines on the bottom line,
only scroll the required number of lines and not half a screen --
that is, when smooth scrolling is enabled.
* doc/syntax/changelog.nanorc: Also colour a series of changed files
that spans more than one line.
2015-03-27 Mark Majeres <mark@engine12.com>
* src/text.c (do_alt_speller): Adjust the end point of the marked
region for any change in length of the region's last line.
2015-03-27 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/patch.nanorc: Recognize also Debian package diffs.
Fixes https://bugs.launchpad.net/ubuntu/+source/nano/+bug/1300565
requested by Rolf Leggewie.
* src/search.c (do_replace_loop): Adjust some whitespace and wrapping.
* src/search.c (do_replace_loop): Place a call to edit_refresh better,
and remove two unneeded ones. This greatly speeds up nano when doing
a Replace All with *lots* of occurrences.
* src/{color,global,nano,text,utils}.c: Normalize some whitespace.
* src/global.c (strtosc): The linter is only available when colour is.
* src/global.c, src/text.c: Treat the formatter like a speller, to fix
compilation with --disable-speller. Fixes Savannah bug #44607.
2015-03-25 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/debian.nanorc: Slightly widen and relax the header regex.
* doc/syntax/python.nanorc: Hashes inside triple-quoted strings should
not cause comment colouring. (Inside single-qouted strings neither,
but then quotes in comments will be coloured like strings.) This
solves https://bugs.launchpad.net/ubuntu/+source/nano/+bug/481363.
* src/global.c (strtomenu): Remove mistaken menu name -- as the
formatter allows no interaction it needs no associated menu.
* src/text.c (do_formatter): Remove unneeded statement -- nothing
has changed the value of 'currmenu'.
* src/global.c (strtosc), doc/man/nanorc.5: Allow rebinding the
linter when nano was configured with --disable-speller.
2015-03-23 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_alt_speller): Avoid the spell checker reporting
an error when the marked region is zero bytes long. The message
is not needed -- it gets printed by the caller. This generalizes
the fix for Savannah bug #29393.
* src/text.c (do_alt_speller): Do not unset the mark before the
possible bailout because of a zero-sized region.
* NEWS: Option --noread allows writing, not reading, to named pipes.
2015-03-22 Chris Allegretta <chrisa@asty.org>
* src/text.c (do_alt_speller): timestamp can just be a time_t.
Fixes compilation on win32 and macOS.
GNU nano 2.4.0 - 2015.03.22
2015-03-22 Benno Schulenberg <bensberg@justemail.net>
* src/chars.c (move_mbleft): Start looking for a multibyte char
not at the start of the string, but only as far back as such a
char can possibly be. Change suggested by Mark Majeres.
* src/search.c (findnextstr): Step backward or forward not simply
one byte but one character (possibly multibyte). Fixes Savannah
bug #42175, reported by myself, and the finding of ghosts seen in
* src/winio.c (edit_redraw): Do not center the current line when
smooth scrolling is used. This fixes Savannah bug #42654.
2015-03-21 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_alt_speller): Remove some leftovers.
* src/search.c: Place some comments better and unwrap some lines.
2015-03-21 Mark Majeres <mark@engine12.com>
* src/text.c (do_alt_speller): Restore the positions of the mark
and the cursor in a better way: to the columns where they were.
This fixes Savannah bug #44542, reported by Benno Schulenberg.
2015-03-20 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (finish_stdin_pager, cancel_stdin_pager, stdin_pager):
Normalize the whitespace, remove an old comment, and place another
one better.
* src/text.c (do_undo): Make a message equal to another one. It
was mistakenly changed in r4950. (This is translation-neutral.)
* src/global.c (shortcut_init): Keep related items together in the
^G help screen.
2015-03-17 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_alt_speller): Do not set the modified flag when
an external spell checker didn't make any changes. This fixes
Savannah bug #44320, reported by Cody A. Taylor.
2015-03-14 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_formatter): Fix a message plus a few comments.
2015-03-14 Mark Majeres <mark@engine12.com>
* src/nano.c (renumber): Get out if there is nothing to renumber,
to prevent do_undo() from falling over trying to renumber emptiness.
This fixes Savannah bug #44488, reported by Dennis Decker Jensen.
2015-03-08 Benno Schulenberg <bensberg@justemail.net>
* src/proto.h, src/nano.c: Fix compilation with --enable-tiny plus
* src/rcfile.c (parse_binding): Fix the rebinding of toggles.
* doc/man/{nano.1,rnano.1,nanorc.5}, doc/texinfo/nano.texi: Update
years and version numbers in the docs in anticipation of a release.
* src/nano.c (version): Drop compile time from version information
to enable a reproducible build. Proposed by Jérémy Bobbio and Jordi
Mallach (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=774388).
2015-03-07 Benno Schulenberg <bensberg@justemail.net>
* doc/man/nanorc.5, doc/texinfo/nano.texi: Add a note about the
inherent imperfection of using regular expressions for syntax
highlighting, as suggested by Mike Frysinger in bug #30962.
* doc/man/nanorc.5: Improve the indentation of some lists.
* doc/man/nanorc.5, doc/texinfo/nano.texi: Remove the mistaken
square brackets around the arguments of "header" and "magic" --
those arguments are not optional. Also add "formatter" to the
texinfo document, and slightly improve its punctuation.
GNU nano 2.3.99pre3 - 2015.02.27
2015-02-25 Chris Allegretta <chrisa@asty.org>
* src/rcfile.c (parse_binding): Add an exception for do_toggle() as
rebinding toggles broke with r5022. (Fixed in r5134.)
2015-02-21 Benno Schulenberg <bensberg@justemail.net>
* README: Fix the explanation of how to subscribe to a mailing list.
* doc/syntax/{java,lua,python,ruby}.nanorc: Wrap some overlong lines.
2015-02-18 Mike Frysinger <vapier@gentoo.org>
* doc/syntax/sh.nanorc: Recognize also dash, openrc and runscript.
2015-02-16 Mike Frysinger <vapier@gentoo.org>
* .gitignore: Ignore the autotools 'compile' file.
2015-02-15 Benno Schulenberg <bensberg@justemail.net>
* src/file.c (do_lockfile): Also show the name of the affected file
when finding a lock file, for when many files are opened at once.
* src/file.c (do_lockfile): The user does the editing, not the editor.
2015-02-09 Chris Allegretta <chrisa@asty.org>
* nano.spec.in: Add dependency on texinfo, docdir files for
RPM file creation.
GNU nano 2.3.99pre2 - 2015.02.06
2015-02-03 Alex Henrie <alexhenrie24@gmail.com>
* src/cut.c (do_cut_text): Make sure to set modified even when
using --enable-tiny.
2015-02-01 Kamil Dudka <kdudka@redhat.com>
* src/files.c (write_lockfile): Avoid writing uninitialized bytes to
the lock file -- a simple null_at() would not initialize the buffer.
* src/files.c (do_lockfile): Make sure that 'lockprog' and 'lockuser'
are terminated -- strncpy() does not guarantee that on its own.
* src/files.c (do_lockfile): Avoid printing a wrong PID on the status
bar due to treating serialized PID bytes as signed integers. This
addresses https://bugzilla.redhat.com/1186384 reported by Don Swaner.
* src/files.c (write_lockfile): Do not trim the nano version number
-- snprintf() counts the trailing zero into the size limit.
2015-02-01 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (do_credits): Add a general entry for all translators.
* src/nano.c (version), src/winio.c (do_credits): Update the copyright
years to include 2015.
2015-01-13 Chris Allegretta <chrisa@asty.org>
* src/files.c (open_buffer): Check here for locking and properly
handle choosing to not open a file when locked instead of in
open_file(). Fixes Savannah bug #42373 reported by Benno Schulenberg.
GNU nano 2.3.99pre1 - 2015.01.06
2015-01-03 Chris Allegretta <chrisa@asty.org>
* New formatter code to support syntaxes like Go that have tools to
automatically lint and reformat the text (gofmt), which is lovely.
Added rcfile option formatter, a function do_formatter() in text.c
and some other calls.
2014-12-28 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (do_lockfile): Gettextize the "File being edited"
prompt, and improve its wording.
* src/winio.c (do_credits): Remove the names of past translators
from the Easter-egg scroll.
* THANKS: Add a missing historical translator name.
* src/winio.c (do_credits): Add Mark to the scroll, for all his
undo work, colouring nano's interface, and other patches.
2014-11-30 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/spec.nanorc: Colorize %pretrans and %posttrans fully.
Original patch from Savannah patch #8573 by Daniel Vrátil.
2014-09-21 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/{perl,python,ruby,sh}.nanorc: Recognize also header
lines of the form "#!/usr/bin/env thing" besides "#!/bin/thing".
This fixes Savannah bug #43270 reported by Kitty.
2014-08-29 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_justify): Replace the old get_shortcut() wrapper
with the new func_from_key().
2014-08-10 Benno Schulenberg <bensberg@justemail.net>
* doc/texinfo/nano.texi: Improve some wordings and formatting.
2014-08-07 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/nanorc.nanorc: Remove a mistaken OR which causes a
'Bad regex, empty (sub)expression' error on some systems. This
fixes Savannah bug #42929 reported by Misty De Meo.
2014-08-03 Benno Schulenberg <bensberg@justemail.net>
* doc/man/nano.1, doc/man/rnano.1: Tweak the formatting a bit so that
po4a will create a nicer POT file.
* doc/man/nanorc.5: Improve some of the wordings and formatting.
2014-08-02 Benno Schulenberg <bensberg@justemail.net>
* doc/texinfo/nano.texi: Standardize the formatting of command-line
options -- each one separately. Also add some more markup.
2014-08-01 Benno Schulenberg <bensberg@justemail.net>
* doc/man/nano.1, doc/man/rnano.1: Separate short and long option
by a comma instead of putting the long one between parentheses.
And showing the required quotes around the argument of -Q.
2014-07-31 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (do_insertfile): Adjust some indentation.
* src/prompt.c (do_statusbar_input), src/browser.c (do_browser):
Reorder a few things, and adjust some whitespace.
2014-07-27 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (add_to_sclist): Remove the now unused and unneeded
addition ability from this builder function of the shortcut list.
* src/global.c (strtokeytype): Move this to a better place.
* src/global.c (first_sc_for): Move this too to a better place.
* src/prompt.c (do_yesno_prompt): Use the new and more direct
func_from_key() wrapper instead of get_shortcut().
* src/text.c (do_linter): Likewise.
* src/files.c (do_insertfile, do_writeout): Likewise.
2014-07-24 Jordi Mallach <jordi@gnu.org>
* doc/texinfo/nano.texi, doc/man/nanorc.5: Typo fix.
2014-07-22 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/nanorc.nanorc: Remove 'undo' from the valid options.
2014-07-21 Jordi Mallach <jordi@gnu.org>
* doc/nanorc.sample.in: Remove undo section which is now obsolete.
GNU nano 2.3.6 - 2014.07.17
2014-07-16 Jordi Mallach <jordi@gnu.org>
* doc/man/rnano.1: Additional printing formatting improvement from
Bjarni Ingi Gislason.
2014-07-16 Jordi Mallach <jordi@gnu.org>
* doc/man/fr/nano.1, doc/man/fr/rnano.1: Apply similar escaping fixes
to French manpages.
* doc/man/fr/nano.1, doc/man/fr/rnano.1, doc/man/fr/nanorc.5: Recode
as UTF-8.
2014-07-16 Jordi Mallach <jordi@gnu.org>
* doc/syntax/debian.nanorc: Add https, tor and spacewalk to supported
APT methods.
* doc/syntax/debian.nanorc: Apply the syntax to apt/sources.list.d/
entries as well, as reported by Rodolphe Pelloux-Prayer.
2014-07-16 Jordi Mallach <jordi@gnu.org>
* doc/man/nano.1, doc/man/rnano.1: Add some escaping and formatting
fixes as suggested Bjarni Ingi Gislason <bjarniig@rhi.hi.is> in
Debian bugs #662842 and #726956.
2014-07-16 Benno Schulenberg <bensberg@justemail.net>
* src/text.c: Normalize the tabbing.
2014-07-16 Mark Majeres <mark@engine12.com>
* src/text.c (do_undo): Make sure renumbering starts far enough back
after undoing a cut or paste. This fixes a segmentation fault when
undoing a repeated cutting and pasting of the first line of a file.
* src/nano.c (move_to_filestruct, copy_from_filestruct): Fix two leaks.
2014-07-13 David Lawrence Ramsey <pooka109@gmail.com>
* ChangeLog: Typo fix.
2014-07-12 Benno Schulenberg <bensberg@justemail.net>
* configure.ac: The warning about datarootdir being ignored is
not merely a warning, it also activates a workaround.
2014-07-11 Mark Majeres <mark@engine12.com>
* src/text.c (do_undo, do_redo): Do not speak of "line wrap"
but instead of "text add" when undoing/redoing text additions
that caused automatic line breaks.
2014-07-11 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (write_lockfile): Refix typo in error message.
GNU nano 2.3.5 - 2014.07.11
2014-07-11 Chris Allegretta <chrisa@asty.org>
* src/files.c (do_lockfile, open_file): If locking fails,
allow the lock failure message to be preserved AND
preserve the filename passed on the cmdline. Fixes
Savannah bug #42668.
2014-07-02 Chris Allegretta <chrisa@asty.org>
* src/files.c (do_lockfile): Check whether the directory
of the file we're trying to lock exists, and make the
resulting error message more intuitive. Fixes
Savannah bug #42639 reported by Benno Schulenberg.
2014-07-02 Mark Majeres <mark@engine12.com>
* src/text.c (undo_cut, redo_cut, update_undo): Handle the
cases of cutting-from-cursor-to-end-of-line correctly.
* src/nano.c (do_input): Don't preserve the cutbuffer when
CUT_TO_END is toggled -- it would intermix two cut types.
* src/text.c (redo_cut, do_undo, do_redo): Don't forget to
free the cutbuffer after use.
2014-07-02 Benno Schulenberg <bensberg@justemail.net>
* src/proto.h: Add a typedef for a pointer to a function.
* src/global.c (func_from_key): New wrapper.
* src/prompt.c (get_prompt_string, do_prompt): Use the new
wrapper to make the code a bit cleaner.
* src/help.c (do_help, parse_help_input): Use the wrapper.
* src/browser.c (do_browser, parse_browser_input): Likewise.
* src/search.c (search_init, do_gotolinecolumn): Likewise.
* src/search.c (findnextstr): Replace a call of old wrapper
'getfuncfromkey()' with a call of new 'func_from_key()'.
* src/winio.c (getfuncfromkey): Delete now unneeded wrapper.
* src/nano.c (usage, main), doc/texinfo/nano.texi: Properly
exclude the --quiet option when --disable-nanorc was given.
2014-07-01 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (do_browser), src/help.c (do_help): Make sure
to always set 'currmenu', so that we can rely on it.
* src/*.c (get_shortcut): Now that 'currmenu' is really global,
stop passing it around.
* src/help.c (help_init), src/winio.c (bottombars): There are
no tagless functions, so there is no need to check.
* src/prompt.c (do_prompt, get_prompt_string): Don't pass the
menu, just set it earlier.
* src/prompt.c (get_prompt_string): Group the arguments better.
* src/global.c (shortcut_init), src/browser.c (do_filesearch):
Show that it is possible to have backwards, regular-expressive
and case-sensitive searching in the file browser.
* src/browser.c (filesearch_init, do_filesearch): Now delete
these abilities again and all provisions for them.
* src/global.c (shortcut_init): Add two defines to make the
functions list clearer.
2014-06-30 Mark Majeres <mark@engine12.com>
* src/cut.c, src/global.c, src/nano.c: Rename 'cut_till_end' to
'cut_till_eof', and 'do_cut_till_end' to 'do_cut_till_eof', to
reduce confusion with CUT_TO_END, which is about end-of-line.
2014-06-30 Benno Schulenberg <bensberg@justemail.net>
* src/color.c (color_update): When there are no syntaxes, for example
with --ignorercfiles, do not try to find one, because that would lead
to the magic database being searched, which slows down startup a lot.
* src/color.c (color_update): Move some variables to a better place.
* src/*: Make 'meta_key' and 'func_key' into global variables, instead
of having them declared everywhere and passing them around endlessly.
* src/global.c (sc_seq_or): Now fix a bug introduced somewhere after
2.3.2 where binding a movement function to a Meta key would make the
corresponding Arrow key stop working (producing a character instead).
2014-06-29 Benno Schulenberg <bensberg@justemail.net>
* src/rcfile.c: Fix compilation with --enable-tiny --enable-nanorc.
* src/winio.c (parse_kbinput, get_escape_seq_kbinput): Make Ctrl-Left
and Ctrl-Right produce special codes, and map these codes to Prevword
and Nextword instead of reducing them to a plain Left and Right. The
codes 539 and 554 were so chosen because some terminals produce these.
2014-06-29 Mark Majeres <mark@engine12.com>
* src/text.c (do_undo): Update the pointer to the bottom of the file
when undoing line deletions at file's end.
2014-06-28 Benno Schulenberg <bensberg@justemail.net>
* src/prompt.c (do_statusbar_input): Remove the useless parameters
'have_shortcut and 'allow_funcs'; the latter is only ever TRUE.
* src/global.c (shortcut_init), src/prompt.c (do_statusbar_input):
Eradicate the execute flag -- it is only FALSE for functions that are
empty placeholders (so executing them will not do anything anyway) or
for functions ('total_refresh', 'do_suspend_void') that do not exist
in menus with a prompt. The only two exceptions are 'do_cancel' and
'do_gotolinecolumn_void'. The first is handled specially, so do that
too for the second and then get to drop 140 parameters.
* src/global.c (strtosc): Move recognition of the toggles to the end,
use a single assignment of do_toggle_void, trim the unneeded braces.
2014-06-27 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init): Add default keybindings for Cut,
PrevWord and NextWord in the prompt input lines; the code for those
special operations already exists, just the shortcuts were missing.
* src/rcfile.c (parse_binding): When binding keys, only allow those
menus where the bound function is actually present. This reduces
the meaning of 'all' to "all menus where the function exists".
* src/rcfile.c (is_universal): New function, returning TRUE for the
functions that are present in most menus but only listed in MMAIN.
* doc/man/nanorc.5, doc/texinfo/nano.texi: Update the docs for this.
* prompt.c (find_statusbar_bracket_match, do_statusbar_find_bracket):
Remove these functions and thus the ability to search for a matching
bracket in a prompt input line. The find_bracket function never had
a default keybinding outside MMAIN, so is unlikely to have been used.
* src/prompt.c (do_statusbar_input): Normalize the indentation.
* src/winio.c: Normalize some whitespace.
* Makefile.am, nano.spec.in: Stop distributing the BUGS file.
* BUGS: Remove obsolete file, as all the bugs in it have been fixed
long ago. Nowadays bugs are tracked on Savannah.
* configure.ac: Silence a useless warning about ignoring datarootdir.
2014-06-25 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (do_browser): Allow 'firstfile' and 'lastfile' to be
rebound to Ctrl keys -- checking meta_key is wrong, the function has
already been determined, that is all that matters.
* src/help.c (do_help): Same thing for 'firstline'/'lastline'.
2014-06-23 Benno Schulenberg <bensberg@justemail.net>
* src/nano.h, src/move.c (do_up, do_down), src/winio.c (edit_scroll):
Rename UP_DIR and DOWN_DIR to UPWARD and DOWNWARD, for clarity.
* src/proto.h, src/global.c, src/search.c: Rename 'no_replace_void()'
to 'flip_replace_void()', to show what it actually does.
* doc/man/nanorc.5, doc/texinfo/nano.texi: Update the docs for that.
* src/global.c (strtosc): Add the bindable function 'gotodir'.
* doc/man/nanorc.5, doc/texinfo/nano.texi: Document the bindable
functions 'tofiles','gotodir' and 'flipnewbuffer', and correct
the description of 'gototext' (not being about the file browser).
* doc/syntax/nanorc.nanorc: Show Ins and Del as valid rebindable keys.
* src/help.c (do_help): Normalize the indentation.
* src/files.c (do_insertfile): Give audible feedback when flipping
the new buffer to off is not allowed in view mode.
2014-06-22 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c (parse_browser_input), src/help.c (parse_help_input):
Remove two pointless calls of get_shortcut(), and adjust the comments.
* src/nano.c (do_toggle): When toggling softwrap, only the edit window
needs to be refreshed, not the entire screen.
* src/browser.c (do_browser): Remove superfluous abortion variable,
and place two comments better.
* src/text.c (do_redo): Rename 'undidmsg' to 'redidmsg', to be apt.
2014-06-22 Mark Majeres <mark@engine12.com>
* src/text.c (do_redo): When redoing a line join at the tail
of the file, make sure openfile->filebot is updated.
* src/text.c (undo_cut, redo_cut, do_undo, add_undo, update_undo):
Fix three leaks of the cutbuffer, shorten and regroup some stuff,
and remove an unneeded iteration of cutbottom.
2014-06-21 Mark Majeres <mark@engine12.com>
* src/text.c (undo_cut, add_undo): When undoing a cut-till-eof,
put the cursor back where the cut started, and not at the end.
* src/text.c (do_undo): When undoing a line break at the tail
of the file, make sure openfile->filebot is updated.
2014-06-21 David Lawrence Ramsey <pooka109@gmail.com>
* src/move.c, src/nano.c: Miscellaneous whitespace fixes, one
type fix, and one more #ifdef NANO_TINY.
2014-06-20 Benno Schulenberg <bensberg@justemail.net>
* src/proto.h, src/global.c: Remove two obsolete variables and an
unneeded extern, and regroup some stuff.
* src/files.c (check_dotnano): Wrap long lines and actually report
the name that is not a directory.
* src/*: Miscellaneous whitespace adjustments and comment tweaks.
* src/files.c: Fix compilation with --enable-tiny --enable-browser.
* doc/man/nano.1, doc/texinfo/nano.texi: History logging no longer
depends upon nanorc support, plus many other tweaks.
* src/global.c (strtosc): Fix compilation with --enable-tiny
--enable-histories --enable-nanorc.
* src/text.c: Fix compilation with --enable-tiny --enable-wrapping.
* src/files.c (do_insertfile): Fix compilation with --enable-tiny
--enable-histories --enable-multibuffer.
* src/nano.c: Fix compilation with --enable-tiny --enable-mouse.
* doc/man/nanorc.5, doc/texinfo/nano.texi: Explain better what "all"
means when rebinding keys. This is a fix for Savannah bug #42552.
* src/nano.c (main): Make +1 and +,1 start on line one column one,
overriding a historical position. This fixes Savannah bug #42538.
2014-06-19 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (window_init): Rename 'no_more_space()' to 'more_space()'
for consistency, and tweak the related comments.
* src/files.c: Update some comments to match the current status.
* src/nano (finish, main): Allow -H/--historylog and -P/--poslog to
function also when -I/--ignorercfiles is given.
* configure.ac: Add a --disable-histories flag, to disable the code
for the histories of search/replace strings and cursor positions.
* doc/texinfo/nano.texi: Document the new configure flag.
* src/*: Transform many DISABLE_NANORC to the new DISABLE_HISTORIES.
This completes the fix for Savannah bug #42539.
2014-06-18 Benno Schulenberg <bensberg@justemail.net>
* src/text.c: Rename 'to_end' to 'to_eof', to lessen confusion
with CUT_TO_END (which is about cutting to end-of-line).
* src/text.c: Upon better thought, elide the unneeded 'to_eof'.
* src/text.c: And elide a totally unused 'strdata2'.
* src/text.c: Rename the undo type UNSPLIT to JOIN, for clarity.
* src/global.c, src/rcfile.c: Rename function_type to key_type.
* src/text.c (break_line): Remove a condition and a break that
cancel each other.
2014-06-18 Mark Majeres <mark@engine12.com>
* src/text.c (add_undo): Don't start a new undo for CUT when the
cutbuffer is being preserved, because then the cuts are contiguous
and will form a single undo item. And make sure the cutbuffer will
be cleared when a new undo item for CUT is created.
* src/cut.c (keeping_cutbuffer): New function, to access the status
of 'keep_cutbuffer' from the undo/redo code in src/text.c.
* src/cut.c (do_copy_text): Blow away the contents of the cutbuffer
if the mark is set or the cursor has moved between two copy commands.
2014-06-17 Mark Majeres <mark@engine12.com>
* src/text.c (do_undo, do_redo): After an undo or redo, update the
'placewewant' (the desired horizontal position of the cursor).
2014-06-17 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_undo, do_redo): Remove obsolete boolean variable.
* doc/man/nano.1, doc/man/nanorc.5, doc/texinfo/nano.texi: Replace
SYSCONFDIR with an absolute path or a circumlocution, as suggested
by Mike Frysinger, plus some other tweaks.
2014-06-16 David Lawrence Ramsey <pooka109@gmail.com>
* src/nano.c (do_exit): Display the message "No file name" on the
statusbar for two seconds when --tempfile was given and the current
buffer has no name. This fixes Savannah bug #41750.
2014-06-16 Benno Schulenberg <bensberg@justemail.net>
* configure.ac: For the sake of statically linked systems, make sure
the compiler also links against libz, which is used by libmagic.
This fixes Savannah bug #38378, reported by Alan Hourihane.
* src/nano.c (do_mouse, do_input): Don't bother returning zero when
the cursor moved, just reset the cutbuffer directly. This avoids an
"Unknown Command" message on every cursor-positioning mouse click.
* src/nano.c (do_mouse): Put a common statement outside of then/else.
* src/Makefile.am: Remove -I m4; it is needed only at the top level.
* Makefile.am: Trim the contents of EXTRA_DIST to what is required.
* doc/man/nano.1, doc/man/nanorc.5, doc/texinfo/nano.texi: Update
the docs for the changed location of nano's search history.
* doc/man/nano.1, doc/man/nanorc.5, doc/texinfo/nano.texi: Change
some wordings, triggered by Savannah bug #42539.
2014-06-14 Mark Majeres <mark@engine12.com>
* src/nano.h, src/text.c (undo_cut, update_undo): When undoing a
backwards cut, put the cursor back in front of it, where it was.
2014-06-13 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (do_input): Repositioning the cursor with the mouse
(result == 0) should break a series of ^Ks.
* src/nano.c (do_mouse): Clicking on the titlebar or the statusbar
should not break a series of ^Ks, thus result must not be zero.
* src/nano.c (do_input): A toggle should not break a series of ^Ks.
* src/winio.c (get_shortcut): Do not treat holding both Control and
Meta the same as holding only Control.
* src/global.c, src/rcfile.c, src/nano.h, src/nano.c, src/text.c:
Remove the --undo option, having the undo functions always enabled.
If wished, the user can unbind them. This fixes Savannah bug #42456.
* doc/man/{nano.1,nanorc.5}, doc/texinfo/nano.texi: Update the docs.
* nano.spec.in: Remove useless info dir file from the build directory,
don't clean this directory first, it's unnecessary, add a suggestion
for a pico symlink, and update the license and the source URL.
2014-06-11 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (get_mouseinput): Produce the correct return value for
when a mouse event reinserted something into the keyboard buffer.
* src/nano.c (do_input): Do not continue when there is a spurious
mouse event (a touch of the touchpad, for example) but get out.
Continuing would result in the cutbuffer being cleared upon the
next cut. These two changes together fix Savannah bug #42326.
* src/nano.c (do_input): Always accept mouse events, also when
just looking for Unjustify. This fixes Savannah bug #42322.
* src/nano.c (do_input): Remove a superfluous switch statement.
* src/winio.c (get_mouseinput): Set the type of a reinserted key,
also when it is a function key. This fixes Savannah bug #42092.
2014-06-10 Benno Schulenberg <bensberg@justemail.net>
* src/browser.c, src/files.c, src/nano.c src/prompt.c, src/winio.c:
A few minimalistic whitespace adjustments.
* src/rcfile.c (check_bad_binding): Avoid a compiler warning.
2014-06-10 David Lawrence Ramsey <pooka109@gmail.com>
* src/winio.c: One more type fix and two tiny message tweaks.
2014-06-09 David Lawrence Ramsey <pooka109@gmail.com>
* src/*.c: Cosmetic tweaks of comments and whitespace.
* src/help.c, src/rcfile.c, src/winio.c: Elide a function call by
not comparing with an empty string but checking for the final \0.
* src/files.c, src/nano.c, src/text.c, src/winio.c: Type fixes in
debugging stuff -- line numbers are long, x positions unsigned long.
* src/files.c, src/move.c, src/nano.c, src/text.c, src/winio.c:
Make tiny nano a bit tinier by preening out some soft-wrap stuff.
* src/global.c, src/nano.c, src/winio.c: A few more cosmetic tweaks
(whitespace, order, braces, parentheses, and a typo) and type fixes.
2014-06-09 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (do_input): Remove two superfluous false conditions.
* src/nano.h, src/text.c (add_undo): Avoid a compiler warning with
2014-06-09 Mark Majeres <mark@engine12.com>
* src/text.c (do_undo, do_redo, add_undo, update_undo, do-wrap):
Rewrite the line-wrapping code to make use of the existing line-break
code. And undo line wraps together with their causal text additions,
and not as separate actions because the user did not make them.
2014-06-08 Mark Majeres <mark@engine12.com>
* src/text.c (do_delete, do_deletion, do_undo, do_redo, update_undo):
Differentiate between undoing a Delete and undoing a Backspace -- the
cursor should be in a slightly but significantly different position.
2014-06-04 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init), src/files.c (do_insertfile): Rename
'ext_cmd_void' to 'flip_execute_void' to better match what it does.
* src/global.c (strtosc), doc/man/nanorc.5, doc/texinfo/nano.texi:
Add function name 'flipexecute' to enable rebinding ^X in the menus
Read File and Execute Command.
2014-06-04 David Lawrence Ramsey <pooka109@gmail.com>
* src/*.c: Adjustments of whitespace and comments.
* doc/nanorc.sample.in: Interpunction tweaks.
* src/global.c (add_to_funcs): Add cast to subnfunc* for nmalloc().
* src/files.c (do_lockfile): Properly make the variable 'lockfilesize'
a size_t instead of a ssize_t, since it holds the result of strlen().
And use charalloc() instead of (char *)nmalloc().
* src/text.c (do_undo): Use charealloc() and not (char *)nrealloc().
* src/text.c (add_undo): Make use of null_at() to both null-terminate
the multibyte character and align it to use only the amount of memory
GNU nano 2.3.4 - 2014.06.02
2014-06-02 Chris Allegretta <chrisa@asty.org>
* doc/syntax/default.nanorc: Can't do trailing spaces in the
default syntax or it will highlight the spaces as you type them
into a new file, which for non-programming is infuriating.
2014-05-29 Mark Majeres <mark@engine12.com>
* src/text.c (do_delete): For the undo structure, differentiate
between deleting a newline and any other character.
2014-05-29 Chris Allegretta <chrisa@asty.org>
* src/chars.c (addstrings): This function needs to be available even
on non-utf-8 systems.
* nano-regress: Added --disable-utf8 to regression check.
GNU nano 2.3.3 - 2014.05.29
2014-05-28 Chris Allegretta <chrisa@asty.org>
* doc/syntax/mutt.nanorc: Include Benno's awesome signature
matcher, modified slightly to also work for quoted sigs.
* doc/syntax/default.nanorc: Be far more gentle with something
which affects every file which doesn't match another syntax, and
the user may not be able to override if their distro turns on
highlighting by default.
2014-05-28 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (do_input): Remove the three unused parameters 's_or_t',
'ran_func', and 'finished'. They are only ever set and never used.
* src/text.c (do_justify): Adjust a call of do_input().
* src/browser (do_browser): Actually translate the go-to-dir prompt.
* src/browser, src/search.c: There is no need to repeat translator
comments for the same string -- once is enough to get them included.
Add instead some translator comments for the prompts.
* src/global.c (shortcut_init): Make ^X in the Read-File menu toggle
between executing a command and inserting a file. The mechanism in
do_insertfile() in files.c is already present -- in the past just
the wrong function was used in the relevant function-list item:
'do_insertfile_void' instead of the unintuitive 'ext_cmd_void'.
* src/browser (filesearch_init): Remove an unneeded format specifier.
* src/nano.c (usage): Add a translator comment for the --help output.
* src/global.c (shortcut_init): Elide four unneeded tags.
* src/global.c (shortcut_init): Make tiny nano just a bit tinier.
* src/global.c (shortcut_init): Standardize the add_to_funcs() calls,
breaking always between the menus and the tag.
2014-05-27 Chris Allegretta <chrisa@asty.org>
* src/winio.c (edit_refresh): wredrawln() is not supported under
2014-05-27 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init): Improve the arrangement of help items
under certain compilation conditions.
* src/global.c (strtosc): Make tiny nano a bit tinier.
* src/global.c (strtosc): Allow rebinding 'suspend' in tiny nano.
* src/winio.c (set_modified): Adjust translator comment to make it
show up in the POT file, and make it take the "[ ]" into account.
2014-05-26 Benno Schulenberg <bensberg@justemail.net>
* src/cut.c (cut_line): Fix compilation with --enable-tiny.
* src/text.c (do_linter): Avoid a warning with --enable-tiny.
* src/global.c (shortcut_init): Unwrap some lines, and reorder two.
2014-05-25 Benno Schulenberg <bensberg@justemail.net>
* src/global.c: Cut down on the size of tiny nano, by not compiling
the function strtosc() when --disable-nanorc is given or implied.
2014-05-25 Mark Majeres <mark@engine12.com>
* src/chars.c (addstrings): New function, concatenates two allocated
strings, tacking the second onto the first and freeing the second.
* src/cut.c (do_uncut_text): Update the undo structure for a paste.
* src/text.c (undo_cut, redo_cut, add_undo, update_undo): Place the
cursor after an undo there where it was before the do, and handle
multibyte characters correctly.
2014-05-23 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (edit_draw): Finally, the proper fix for bug #31743;
telling ncurses to really redraw the line, without optimization, so
it will not mistakenly assume that a wide character at the start of
a line takes up just one column. This deletes the workaround that
had the side effect of creating pastes full of trailing whitespace.
2014-05-19 Mark Majeres <mark@engine12.com>
* src/winio.c (edit_draw): Paint the current line *after* tickling the
terminal, so that the character in the final column will be displayed
properly. Bug was introduced five days ago.
2014-05-18 Benno Schulenberg <bensberg@justemail.net>
* src/nano (precalc_multicolorinfo): Do not match the ^ anchor when
looking further on in a line. This prevents an end="^$" from being
sometimes mistakenly matched. Fix inspired by Savannah bug #27708.
* doc/syntax/default.nanorc: New file, example for a default syntax.
2014-05-17 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/json.nanorc: New file, originally from Aapo Rantalainen,
but edited, extended, and improved. See Savannah patch #7410.
* src/winio.c (edit_draw): Do not skip the colour-off commands at the
end of the loop. Based on Savannah patch #7550 by Ryan Lothian.
This fixes bug #26111 reported by Dave Geering <dreamlax@Savannah>.
2014-05-16 Benno Schulenberg <bensberg@justemail.net>
* src/text.c, src/winio.c: Remove some more double spaces.
* doc/syntax/patch.nanorc: Show trailing whitespace on added lines.
* doc/syntax/debian.nanorc: Make the component colouring simpler,
and the URI colouring completer, and improve the comments.
* doc/syntax/*.nanorc: Harmonize (partially) the syntax files.
2014-05-16 David Lawrence Ramsey <pooka109@gmail.com>
* src/color.c, src/cut.c, src/text.c: Tweak some whitespace.
* src/global.c, src/move.c: Use TRUE and FALSE instead of 1 and 0.
* src/winio.c (edit_draw): Mention the name of the tickling character.
* src/search.c (goto_line_posx): Remove unneeded call of edit_refresh.
* src/text.c (do_undo, do_redo): Use size_t for line lengths.
2014-05-15 Mark Majeres <mark@engine12.com>
* src/*, but mainly src/text.c (undo_cut, redo_cut, do_undo, do_redo):
Go to the correct positions for undoing/redoing the cuts and pastes.
This fixes several undo problems and Savannah bug #25585.
2014-05-15 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/c.nanorc: Improve the magic regex, plus tweaks.
* src/color.c (color_update): Adjust a comment, and be clearer.
* src/nano.h: Improve two comments, and elide one macro.
* doc/syntax/Makefile.am: Add texinfo.nanorc to the packing list.
2014-05-14 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (edit_draw): Poke a non-breaking space into the last
column of every line, to startle the terminal into handling wide,
two-column characters properly. This fixes Savannah bug #31743.
* src/nano.c (precalc_multicolorinfo): Improve debugging messages,
and remove superfluous assignment (fileptr already equals endptr).
* src/color.c (color_update): Move magic check to after headerline.
* src/color.c (color_update): Open the magic database only when
actually going to use it, and close it afterward.
* doc/syntax/{perl.nanorc,xml.nanorc}: Improve two magic regexes.
* src/color.c (color_update): Stop seeking when a magic matched.
* doc/nanorc.sample.in: Add an example of colouring nano's interface
elements, and tweak some of the other descriptions.
2014-05-13 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_linter): Make an error message somewhat clearer.
* src/rcfile.c (parse_binding): Improve another error message.
* doc/syntax/nanorc.nanorc: Show key names like M-6 and M-/ as valid.
* src/global.c (thanks_for_all_the_fish): Upon exit also free the
lists with functions and shortcuts.
* src/*.c: Several random whitespace and comment tweaks.
* src/global.c (replace_scs_for): Condense the function a bit.
* src/help.c (help_init): No need to keep looping when two are found.
* src/global.c: Improve compilation with --disable-browser.
* src/nano.h, src/*.c: A few more comment tweaks.
2014-05-12 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_spell): Provide startup feedback, as for the linter.
* doc/syntax/nanorc.nanorc: Show bright foreground colours as valid.
* src/rcfile.c: Improve some comments, and remove some others that
are mispasted or superfluous.
* doc/texinfo/nano.texi: Add missing parenthesis, remove blank line.
* src/rcfile.c (parse_magictype, parse_headers): Handle the libmagic
and headerline regexes in the same manner, eliding a static variable
while renaming some others.
* src/*.h, src/rcfile.c (parse_magictype, parse_headers): Rename them
to parse_magic_exp() and parse_header_exp() to be more fitting, further
symmetrify them, and improve some comments.
* src/nano.h, src/color.c, src/global.c, src/rcfile.c: Rename struct
type 'exttype' to 'regexlisttype', to better match its functions, and
upon exit also free the regexes for libmagic results and headerlines.
* doc/syntax/python.nanorc: Improve the multiline regexes, make the
one with single quotes work again, and add some comments.
* doc/syntax/{man,python,fortran}.nanorc: Add regexes for comments,
trailing whitespace and reminders, and trim some trailing spaces.
* src/rcfile.c: Move parse_magic_exp() next to its sister.
* src/color.c (color_update): Rename a variable, and elide another.
2014-05-10 Chris Allegretta <chrisa@asty.org>
* src/rcfile.c (parse_color_names): Redefine false and true to
their appropriate macro names so --with-slang works (slangv2 anyway).
* src/text.c (do_linter): Care about whether user cancelled the file
save (cancel the operation) versus just said no (continue but don't
save the file). Also doupdate() after statusbar message that
linter is being invoked and blank the shortcuts to draw the eye.
Also allow user to cancel at the "open in a new buffer" prompt.
New function lint_cleanup(). Fixes Savannah bug #42203.
2014-05-10 Benno Schulenberg <bensberg@justemail.net>
* doc/texinfo/nano.texi: Make syntax highlighting into a separate
section, and add the still missing section on rebinding keys.
2014-05-10 Mark Majeres <mark@engine12.com>
* src/*.h, src/*.c: Make it possible for the foreground colour of
interface elements to be bright.
2014-05-09 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (get_mouseinput): Count only shortcuts that are actually
shown, so that clicking on the ones after ^T (Speller/Linter) will work
again correctly. This fixes the second part of Savannah bug #42093.
* src/global.c (shortcut_init, strtosc): Do not define nor accept
shortcuts for functions that are disabled.
* src/global.c (shortcut_init, strtosc): Define shortcut for the linter
when speller is disabled, and fix compilation with --disable-speller.
* src/global.c (shortcut_init, strtosc), doc/man/nanorc.5: Put softwrap
back among the "Appearance" toggles.
* doc/man/nanorc.5: Describe bindable functions in the third person.
2014-05-06 Benno Schulenberg <bensberg@justemail.net>
* doc/texinfo/nano.texi: Let makeinfo figure out the node pointers.
* doc/syntax/texinfo.nanorc: New file, colouring for Texinfo files.
* doc/texinfo/nano.texi: Add sections on the Cutbuffer and the Mark,
remove option '-?', and make some other tweaks.
* doc/man/{nano.1,nanorc.5}, doc/texinfo/nano.texi: Synchronize the
documentation, and tweak some wording here and there.
* doc/syntax/texinfo.nanorc: Stop the brace content from spilling.
2014-05-05 Benno Schulenberg <bensberg@justemail.net>
* doc/man/nanorc.5: Give syntax highlighting its own section,
add the "header" command, tweak some wording and formatting,
and trim some duplicate introductory information.
* src/global.c (strtosc), doc/man/nanorc.5: Allow the function
do_cut_till_end (naming it "cutrestoffile") to be rebound.
* doc/syntax/nanorc.nanorc: Add the four new *color options.
* doc/syntax/nanorc.nanorc: Differentiate between options that
take an argument and those that don't.
2014-05-04 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (statusbar): Elide a variable.
* src/*: Rename the variable 'reverse_attr' to 'hilite_attribute',
and remove an unneeded call of wattroff().
* doc/man/nanorc.5, doc/texinfo/nano.tex: Document the settings
of titlecolor, statuscolor, keycolor and functioncolor.
* doc/man/nanorc.5, doc/texinfo/nano.tex: Show quotes where quotes
are needed, remove some unneeded spaces, and do other tweaks.
* src/global.c (strtosc), doc/man/nanorc.5: Allow the Backwards
toggle to be rebound, document it, and document Backspace too.
2014-05-03 Benno Schulenberg <bensberg@justemail.net>
* src/*.h, src/*.c: Add the ability to colour four elements of
nano's interface differently: title bar, status bar, key combo,
and function tag. Idea and original patch #8421 by Mark Majeres.
* src/global.c (shortcut_init): Unfold long lines consistently.
* src/global.c (shortcut_init): Order the shortcuts in roughly
the same manner as in the help lines, and group them per menu.
* src/global.c (shortcut_init): Remove the search-mode toggles
from the inappropriate WHEREISFILE and REPLACEWITH menus.
* src/global.c (shortcut_init): Paragraph jumping only makes
sense in the main editing menu; remove it from all others.
2014-04-30 Benno Schulenberg <bensberg@justemail.net>
* src/*, doc/*: Update the years in the copyright notices -- there
were releases in 2010, 2011, and 2013, and there will be in 2014.
2014-04-27 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (usage, main): Don't blurt out the full help text
but just a hint when the command line contains some mistake, to
avoid drowning out the error message.
* src/nano.c (usage): Mention only those options that actually do
something. For the no-op compat flags the man page is the place.
* src/global.c (shortcut_init): In the help lines of Search/Replace
show the important toggles early on, and group them better.
* src/global.c (shortcut_init): Improve order and grouping in the
main help text and help lines.
* src/global.c (strtosc): Fix compilation with --enable-tiny.
* src/global.c (shortcut_init): Improve the order of the help items
still further, and make them also group nicely in the tiny version.
2014-04-27 Mark Majeres <mark@engine12.com>
* src/rcfile.c (parse_include): Plug two tiny memory leaks.
2014-04-26 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (add_to_funcs): Add a pointer to the tail of the
functions list, to simplify and speed up adding new items. And
make use of it to remember the location of the Uncut item.
* src/global.c, src/files.c (make_new_buffer, close_buffer): Make
help lines show "Close" again when more than one buffer is open.
* src/global.c (strtosc), doc/man/nanorc.5: Allow the do_spell
(and thus do_lint) function to be bound to other key combos.
* src/global.c (strtosc), doc/man/nanorc.5: Group related functions
together, remove duplicate up/down, add missing prevpage/nextpage.
2014-04-24 Benno Schulenberg <bensberg@justemail.net>
* doc/faq.html: Update a few URLs, delete some obsolete ones, update
the section on configuration flags and on translating nano, plus a
whole series of other small fixes and adjustments.
2014-04-23 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c, src/help.c, src/text.c, src/browser.c: Remove
several unneeded double semicolons, and two relic comments.
* src/help.c (parse_help_input), src/browser.c (parse_browser_input):
Make the Minus and Space keys work in the help viewer and file browser
also when the PrevPage and NextPage functions are bound to meta-key
sequences -- searching for these will not find them. So, instead put
in the standard key code. This fixes Savannah bug #42140.
* src/global.c (first_sc_for): Stop the whole charade of preferring
control keys over meta keys over function keys, but return the first
one in the list -- just like the function name implies. This will
make a user-defined shortcut appear in the two bottomlines without
having to unbind the existing one first -- better feedback.
* src/global.c (shortcut_init, flagtostr, strtosc): Put the two
wrapping toggles together and increase their contrast a bit.
* src/nano.c (usage), doc/man/nano{.1,rc.5}, doc/texinfo/nano.texi:
Increase the contrast between hard-wrapping and soft-wrapping.
2014-04-22 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init): Put the movement keys in the
help viewer in the order of increasing stride.
* src/global.c (shortcut_init): Rename many constants from
'*_msg' to '*_tag' to reduce confusion with 'nano_*_msg'.
* src/global.c (shortcut_init): Elide several pointless constants.
* src/global.c (shortcut_init): Elide more unneeded constants, and
update some translator comments and shorten a few tags.
* src/global.c (shortcut_init): Delete unneeded empty funcs; being
in the list of shortcuts is enough.
* src/global.c (shortcut_init): Put left/right in normal order.
* src/global.c (shortcut_init): List function key after meta key.
* src/help.c (help_init): Show just two shortcuts per function --
only three functions showed three, but who has an F13, F14, F15?
This also fixes Savannah bug #41889: misalignment of help text.
* src/help.c (help_init): Split the toggles into three groups,
and do not show toggle keys that have been rebound.
2014-04-21 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/nanorc.nanorc: There is no F0 key.
* src/global.c (first_sc_for): Adjust two comments -- the help
viewer no longer sorts keys to be control first, meta second.
* src/global.c (first_sc_for): Put meta first, for clarity.
* src/global.c (strtokeytype): No need to check for lowercase
'm' or 'f', the source doesn't use them and rc-file processing
uppercases them. Also put control first, for clarity.
* src/global.c (strtosc, strtomenu): Sort functions slightly
better, and allow things to be rebound in the linter menu.
* src/nano.h: Delete a large bunch of unused defines.
* src/nano.h, src/proto.h: Delete some more unused stuff.
* src/rcfile.c (parse_binding), src/winio.c (get_mouseinput):
Avoid three compiler warnings with --enable-debug.
* src/global.c (assign_keyinfo): Decombine repetitive condition.
* src/global.c (assign_keyinfo, shortcut_init): Give nicer names
to the dedicated keys, for when they show up in the help lines.
* src/rcfile.c (parse_binding): K-keys no longer exist.
* src/global.c, src/rcfile.c, doc/nanorc.sample.in: Allow the
codes from the Ins and Del keys to be rebound.
* src/rcfile.c (parse_binding): Improve two error messages, and
complain about wrong menu names after wrong function names.
2014-04-16 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (get_mouseinput): Properly find also the zeroeth
item from a certain menu in the list of functions. Until now
this accidentally worked, because "Get Help" was the very first
item in almost all menus. Partly fixes Savannah bug #42093.
* src/nano.h: MHELP should not be part of MALL, as ^B and ^F and
Enter and Backspace and so on don't make any sense there.
* src/nano.h, src/global.c (shortcut_init): Rename MALL to MMOST,
to be more accurate.
* src/nano.h, src/global.c, src/help.c, src/search.c: Rename
* src/nano.h: Adjust some tabbing and spacing.
* src/global.c (shortcut_init): Make better use of MMOST.
2014-04-15 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (precalc_multicolorinfo): Actually set the intended
non-blocking mode for keyboard input.
* src/winio.c: Relocate and correct a few comments.
* README.SVN: To build nano from svn, ssh is not required.
* src/*.c: Normalize whitespace around '==' comparison.
* configure.ac: Check for the availability of snprintf(),
fixes Savannah bug #42070 reported by David Lawrence Ramsey.
* src/global.c (shortcut_init), src/help.c (do_help): Add the
shortcuts M-\ and M-/ for First Line and Last Line to the help
viewer, instead of ^Y and ^V, which are already taken for Page
Up and Page Down. Also, stop them from aborting the viewer.
* src/help.c (do_help): Remove superfluous abortion variable.
* src/global.c (shortcut_init), src/help.c (do_help): Add the
shortcut ^L for Refresh to the help viewer and stop it aborting;
a changed version of patch #7013 from David Lawrence Ramsey.
2014-04-14 Benno Schulenberg <bensberg@justemail.net>
* src/{proto.h,cut.c,nano.c,text.c}: Remove the unused parameter
'file_bot' from copy_from_filestruct(), and rename the other.
* src/*: Remove the unused parameter 'func_key' from get_shortcut(),
and subsequently from parse_browser_input() and parse_help_input().
* src/*: Adjust some whitespace and tweak a few comments.
* src/winio.c (getfuncfromkey): Elide variable and condense comment.
* src/text.c (break_line): Initialize a variable to avoid a compiler
warning, rename it to be more apt, add a comment, tweak some others,
and remove an unneeded 'if'.
* src/char.c (move_mbleft): Avoid a compiler warning (int → size_t),
rename the variable, and another, and straighten out the logic.
2014-04-13 Benno Schulenberg <bensberg@justemail.net>
* proto.h, global.c, rcfile.c: Remove the unused parameter 'menu'
from strtosc().
* global.c (shortcut_init): Remove mistaken browser item from the
Go-To-Line menu.
* global.c (shortcut_init): Delete a misplaced setting of 'currmenu'.
* global.c (shortcut_init, strtomenu): Cosmetic tweaks.
* doc/syntax/{changelog,c,po}.nanorc: Some small extra colourings.
* configure.ac, doc/texinfo/nano.texi: Make --enable-tiny disable
the use of libmagic, and document the --disable-libmagic flag.
* src/nano.c (version): Print the correct --enable/--disable option.
* configure.ac, src/*, doc/texinfo/nano.texi: Convert all occurrences
of #ifdef ENABLE_NANORC to #ifndef DISABLE_NANORC, and adapt for it.
* configure.ac: Complain about --enable-color without --enable-nanorc.
2014-04-10 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/Makefile.am: Add four recent syntaxes to the packlist.
2014-04-08 Benno Schulenberg <bensberg@justemail.net>
* doc: Add the documentation for the new --noread option.
* doc: Add missing --poslog option to the texinfo file, plus tweaks.
2014-04-08 Hans Alves <fonsvandeachterburen@gmail.com>
* nano.h, files.c, nano.c: Adding the command-line option --noread
to treat any name on the command line as a new file. This allows
nano to write to named pipes -- it will start with a blank buffer,
and will write to the pipe when the user saves the file. This way
nano can be used as an editor in combination with for instance gpg
without having to write sensitive data to disk first.
2014-04-08 David Lawrence Ramsey <pooka109@gmail.com>
* src/*.c: More editing of comment blocks and trimming of blank lines.
2014-04-08 Benno Schulenberg <bensberg@justemail.net>
* src/rcfile.c: Correct two comments, and tweak two others.
* src/color.c (color_update): Correct one comment, tweak some others,
remove two superfluous ones, and remove an unneeded 'if'.
2014-04-08 David Lawrence Ramsey <pooka109@gmail.com>
* src/nano.c (main): Convert the literal UTF-8 whitespace string into
its corresponding byte sequence, and add a comment for it.
* src/{files.c,global.c,help.c,winio.c}: Reformat some comment blocks,
fix a few typos, and remove a few unneeded blank lines.
2014-04-08 Benno Schulenberg <bensberg@justemail.net>
* src/rcfile.c (parse_binding): Melt the binding and unbinding code,
which are very similar, into a single function.
* src/rcfile.c (parse_binding): Uppercase only the first two or three
characters of the key name, in order to preserve ^Space and M-Space,
so they can be unbound. Fixes Savannah bug #41940.
* doc/syntax/go.nanorc: Extend the syntax highlighting for Go lang,
from the submission by Robert Clausecker <fuzxxl@Savannah>.
2014-04-07 Benno Schulenberg <bensberg@justemail.net>
* src/{proto.h,global.c,text.c}: Keep a pointer to the Uncut item in
the functions list, to be able to change its description to Unjustify
at the appropriate moment. This avoids having to fully repopulate
the functions and shortcuts lists before and after every Justify.
Also, look for ^U only in the main menu, to which ^W M-J factually
returns and which shortcut_init() "sneakily" sets.
* src/{proto.h,files.c,global.c,nano.c,rcfile.c}: Drop the obsolete
argument of shortcut_init(), and remove two unneeded calls of it.
* src/global.c (shortcut_init): Allow M-J after an --enable-justify.
* src/rcfile.c (parse_rcfile): The user documentation only speaks
of options, not of flags. Make the error messages conform.
* src/rcfile.c (check_vitals_mapped): Improve layout of message.
2014-04-06 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init): Limit M-T (cut-till-end-of-file) to
the main menu, and M-J (full-justify) to the main and search menus.
* src/proto.h: There is no need for the helpline tags to be external,
they are only ever used in src/global.c.
* src/global.c: Do not set any helpline tags to empty strings;
compilation should fail if they are needed and not defined.
2014-04-05 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (version): Print the correct configuration options.
* src/{chars.c,nano.c,text.c}: Cosmetic tweaks.
* doc/texinfo/nano.texi: Adjust for new disabling config options.
2014-04-05 Mike Frysinger <vapier@gentoo.org>
* src/nano.c (do_input): Reload possibly freed function pointer.
2014-04-04 Benno Schulenberg <bensberg@justemail.net>
* src/{files.c,nano.c}: Avoid two more compilation warnings.
* configure.ac: Allow --enable-extra and --enable-multibuffer
to override --enable-tiny.
* src/rcfile.c (check_vitals_mapped): Do not allow 'set quiet'
to suppress a fatal-error message, make sure the user sees it.
* src/color.c: Comment tweaks.
* src/{*.h,*.c}, configure.ac: Convert all occurrences of
* src/nano.h: Comment tweaks.
* configure.ac: Move the enabling stuff to after the disablers.
* configure.ac: Add submissive colour disabling to --enable-tiny.
* configure.ac: Allow other enablers to override --enable-tiny too.
* src/{proto.h,search.c}: Fix compilation with --enable-browser.
* src/global.c (shortcut_init): Fix warnings with --enable-help.
* src/text.c (do_justify): Fix compilation with --enable-justify.
* src/nano.c (do_mouse): Fix warning with --enable-mouse.
* src/prompt.c (get_prompt_string): Fix compilation for the
combination of --enable-tiny with --enable-tabcomp.
* src/prompt.c (get_prompt_string): Normalize the indentation.
* src/text.c: Comment tweaks.
2014-04-03 Benno Schulenberg <bensberg@justemail.net>
* configure.ac: Remove unused '*_support' variables.
* doc/syntax/po.nanorc: New file, syntax colouring for PO files.
* configure.ac: Stop --with-slang from duplicating --enable-tiny.
* configure.ac: Sort all the disabling options alphabetically.
* src/{proto.h,files.c,global.c,nano.c,rcfile.c}, configure.ac:
* src/{proto.h,files.c,,nano.c,winio.c}, configure.ac:
Convert #ifdef NANO_EXTRA to #ifndef DISABLE_EXTRA.
* src/{global.c,text.c}: Fix two compilation warnings for tiny.
2014-04-02 Benno Schulenberg <bensberg@justemail.net>
* configure.ac, doc/Makefile.am: Try to build the info documentation
only when 'makeinfo' is available. Patch partly by Mike Frysinger.
* configure.ac: Upping the required version of Autoconf, to ensure the
ONCE macros are defined. Suggested by Kamil Dudka and Mike Frysinger.
2014-04-02 Mike Frysinger <vapier@gentoo.org>
* doc/man/{,fr}/Makefile.am: Simplify the man rules still further.
* .gitignore: Add 'config.cache', created by './configure -C'.
* src/nano.c (die_save_file): Newer gcc warns about set-but-unused
variables, so add a dummy if() check to kill that off.
* src/search.c (search_init): Silence a compiler warning about a
variable possibly being used uninitialized.
2014-03-31 Chris Allegretta <chrisa@asty.org>
* doc/syntax/go.nanorc: New file, basic go syntax highlighting.
2014-03-30 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/changelog.nanorc: New file, first attempt at colouring
Changelog files.
* ChangeLog: Consistently use a colon after names of changed files.
2014-03-30 Mike Frysinger <vapier@gentoo.org>
* doc/Makefile.am, doc/man/Makefile.am, doc/man/fr/Makefile.am:
The build already provides a standard htmldir for installing html
files. Use that instead of creating our own.
* doc/man/Makefile.am, doc/man/fr/Makefile.am: Use dist_ prefixes
and += appending supported by automake to produce simpler files.
* doc/Makefile.am: Drop redundant localedir, as autoconf/automake
already creates this for us.
* src/rcfile.c, doc/nanorc.sample.in: Hard-listing all the wanted
syntax files is a PITA. Support globs in include paths, so people
can easily drop in new files and have it "just work".
2014-03-27 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main): Fix compilation with --disable-utf8.
* src/global.c (shortcut_init): Place a help string among
its kin, adjust some indentation, group function pairs more
tightly, bundle restricted stuff, and delete an unused item.
2014-03-27 Mike Frysinger <vapier@gentoo.org>
* configure.ac: Make --disable-nanorc with --enable-color barf.
* configure.ac: Allow --disable-utf8 and --enable-utf8 to work.
2014-03-26 Benno Schulenberg <bensberg@justemail.net>
* configure.ac: Word, tab, and comment tweaks.
* src/global.c: Some comment tweaks, and whitespace trimmings.
* src/global.c (print_sclist): Also print last shortcut in list.
* doc/texinfo/nano.texi: Explain how to select and paste with
the mouse when mouse support is enabled: by holding down Shift.
* nano.spec.in, doc/faq.html, doc/texinfo/nano.texi: Remove
vestiges of the obsolete '--enable-all' configure flag.
* src/rcfile.c: Fix compilation with --disable-color.
* src/rcfile.c: Allow (un)binding keys when colour is disabled.
* src/help.c: Fix compilation with --disable-browser.
* src/{proto.h,browser.c,help.c}: Remove a superfluous function.
2014-03-26 Mike Frysinger <vapier@gentoo.org>
* configure.ac: Clean up most of the --with/--enable flags:
- use AS_HELP_STRING instead of writing the text ourselves;
- use the normal enable_xxx var AC_ARG_ENABLE creates for us;
- delete duplicate checks in a few places (due to previous cleanup);
- unwrap some macros/var assignments;
- delete trailing whitespace;
- delete old --enable-all flag;
- fix quoting on a lot of vars that come from the user;
- use AC_MSG_* helpers instead of raw `echo`.
2014-03-24 Benno Schulenberg <bensberg@justemail.net>
* src/{nano,move,winio}.c: Fix a few compiler warnings.
* src/{global,rcfile,winio}.c: Print menu numbers for debugging
in hex, and tweak a few of those debugging messages.
* src/nano.c: Harmonize comments, and trim some blank lines.
2014-03-24 Mike Frysinger <vapier@gentoo.org>
* doc/syntax/gentoo.nanorc: Match more files, add a trailing
whitespace check, and EAPI=5 updates.
* doc/syntax/javascript.nanorc: New file, based on C syntax.
* doc/syntax/{nanorc,python}.nanorc: Highlight trailing whitespace.
* configure.ac, m4/ax_check_compile_flag.m4: Start building with
warnings enabled, to help prevent issues from silently creeping in.
* configure.ac: Newer ncurses include pkg-config files which tell
us the right -I/-L paths we need, so default to that before trying
the legacy ways.
* configure.ac: Add a configure flag to disable the use of the
fattening libmagic.
2014-03-23 Benno Schulenberg <bensberg@justemail.net>
* src/rcfile.c (parse_keybinding, parse_unbinding): Improve a
debugging message, fix a translator comment, and tweak others.
2014-03-22 Benno Schulenberg <bensberg@justemail.net>
* THANKS: Add some missing translator names, and tweak others.
2014-03-21 Benno Schulenberg <bensberg@justemail.net>
* src/chars.c (is_punct_mbchar, mbstrchr): Elide a variable,
thus making two ifs identical to six others.
* doc/syntax/nanorc.nanorc: Add the 'extendsyntax' directive,
and change two colours to be legible on a light background.
2014-03-19 Benno Schulenberg <bensberg@justemail.net>
* doc/nanorc.sample.in: Document the changed whitespace defaults.
* src/global.c, doc/man/nanorc.5: Allow softwrap to be rebound.
* doc/nanorc.sample.in: Sort the includes alphabetically, and
add the ones for Lua, Magicpoint, and Spec files.
* doc/nanorc.sample.in: Add "poslog", plus tiny textual tweaks.
* src/global.c, doc/man/nanorc.5: Group softwrap with the toggles
that affect how things look -- it does not belong in the group of
general program functions, nor in the group of editing behaviour.
* doc/man/nanorc.5: Add the descriptions of six missing bindable
functions, and tweak those of a few others.
2014-03-18 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init): In the file browser one cannot
search for a regular expression, so do not mention it.
2014-03-17 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init): Show ^F and ^B instead of kright
and kleft in the help lines of the tiny version.
* src/global.c (shortcut_init): Remove some inconsistent spaces
and newlines, condense three statements into one, place an #endif
better, melt two #ifndefs into one, and add a comment.
* src/winio.c (edit_scroll): Remove the old softwrap scrolling code.
* src/{nano.h,proto.h,color.c,cut.c,files.c,global.c,help.c,nano.c,
search.c,text.c,utils.c}: Add, fix, and remove some #endif comments,
remove an obsolete comment, and remove some superfluous #ifndefs.
* src/global.c (shortcut_init): Put ^B and ^F in the same order as
all other command keys: first the backward then the forward motion.
* src/{nano.h,*.c}: Remove stray spaces before tabs.
2014-03-16 Benno Schulenberg <bensberg@justemail.net>
* src/nano.h: Display more help items when the terminal is wider.
2014-03-14 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main): When in a UTF-8 locale, use prettier characters
(»·) for indicating whitespace, and for similarity use ">." instead of
":." when not in a UTF-8 locale. Changes suggested by Mike Frysinger.
2014-03-05 Benno Schulenberg <bensberg@justemail.net>
* src/move.c (do_down): Initialize the correct variable to zero.
Solves jumpy scrolling behaviour reported by Chris Allegretta.
2014-03-04 Chris Allegretta <chrisa@asty.org>
* global.c (first_sc_for): Return raw keystrokes last, so
they will not be displayed if there are F-keys or Meta keys
mapped for an item in the shortcut list.
2014-03-04 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/nanorc.nanorc: Add keyword 'quiet', sort 'locking',
and concatenate the two separate strings into one.
* src/nano.c (main), doc/nanorc.sample.in: Make the M-P toggle
actually do something by default, by using visible characters.
* src/global.c (shortcut_init): Normalize the writing of three
help-line items: "Write Out", "Uncut Text", and "Unjustify", to
better stress the O and U -- the big C and J were distracting.
* doc/{syntax/nanorc.nanorc,man/nanorc.5,texinfo/nano.texi}:
Remove erroneous 'suspendenable' -- it is not a settable option
but a bindable function.
2014-03-03 Chris Allegretta <chrisa@asty.org>
* global.c (shortcut_init): Don't actually free the shortcut
list, since the next pass via justifying will then remove all
custom shortcuts. Fixes bug discovered by Benno Schulenberg.
* text.c (do_linter): Remove some unused variables to quiet
-pedantic -Wall.
2014-03-03 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (add_to_funcs): Add a newline, for clarity.
* src/global.c (shortcut_init): Mark, don't translate yet.
* src/move.c (do_down): Correctly compute the minimum amount
to scroll when softwrap is on and there are overlong lines.
* src/winio.c (edit_scroll): Disable amount computation here.
* src/move.c (do_down): Trim some redundant code, and correct
the scrolling behaviour when softwrap is off -- the construct
(amount ? amount : 1) wasn't doing what I intended.
* doc/man/nano{.1,rc.5}: Slightly improve formatting and wording.
* doc/{texinfo/nano.texi,man/nanorc.5}: Add some missing options
to the texinfo documentation, and improve alphabetization a bit.
* src/nano.c (usage): Don't mention --softwrap in tiny version.
2014-03-01 Chris Allegretta <chrisa@asty.org>
* global.c (shortcut_init): Fix an issue with the split
do_research() setup when using --enable-tiny.
* rcfile.c (parse_linter): Allow linter to be unset using "".
* rcfile.c: Allow syntaxes to be extended via "extendsyntax"
directive. Color, header, magic and linter should all be
able to be extended. Man page updates for nanorc(5).
* doc/nanorc.sample.in: Document 'set quiet'.
2014-03-01 Mike Frysinger <vapier@gentoo.org>
* src/color.c (color_update): Do not write to stderr on magic
errors. If the magic db has errors such that magic_load() fails,
the current code dumps to stderr which messes up the terminal.
The error message is also vague to the point where it's confusing
-- I thought nano had problems writing to the file I was editing.
Instead, use statusbar() and clarify the messages.
(Patch tweaked by Benno.)
2014-02-28 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (execute_command): Equalize pipe error messages.
* src/global.c (thanks_for_all_the_fish): Remove a redundant
'#ifdef DEBUG', it is contained within a wider one.
* src/global.c (strtosc): Correct a misspelled keyword.
* src/rcfile.c (check_vitals_mapped): Actually translate a
helpful message, and reword it somewhat for clarity.
* src/global.c: Remove unused function 'free_shortcutage'.
* src/global.c (strtosc): Indent conditions consistently.
2014-02-28 Eitan Adler <lists@eitanadler.com>
* src/nano.c (do_toggle): Constify a char pointer, to fix
a warning when compiling with clang (and -Wall).
2014-02-27 Mike Frysinger <vapier@gentoo.org>
* doc/man/nanorc.5: Relocate the misplaced unbind section,
and improve formatting. (Patch tweaked by Benno.)
* doc/syntax/nanorc.nanorc: Add the bind/unbind commands,
so they will look supported when using syntax highlighting.
2014-02-27 Benno Schulenberg <bensberg@justemail.net>
* src/help.c (parse_help_input): Make 'Space' again an alias
for PageDown and 'Minus' for PageUp -- they were mistakenly
swapped during code conversion in r4223.
2014-02-26 Mike Frysinger <vapier@gentoo.org>
* doc/syntax/sh.nanorc: Highlight more shell builtins and
common commands, and rewrite the variable highlighting to be
more exact and handle cases where string operations are used.
* doc/syntax/gentoo.nanorc: Update to newer EAPIs, and fold
in updated shell changes too. Much of this is based on work
by Davide Pesavento <pesa@gentoo.org>.
* doc/syntax/makefile.nanorc: Highlight trailing whitespace.
2014-02-26 Benno Schulenberg <bensberg@justemail.net>
* src/global.c (shortcut_init): Put PageUp and PageDown
and also WhereIs and WhereIsNext together in the help lines
of the file browser, and WriteOut and Readfile in the help
lines of the main window -- related stuff in one column.
* doc/syntax/man.nanorc: Better colouring of manpage files.
2014-02-26 Konstantin Abakumov <abakumov@Savannah> (tiny change)
* doc/syntax/python.nanorc: Slightly improve the regexes for
multiline strings in Python, reducing spillage.
2014-02-26 Benno Schulenberg <bensberg@justemail.net>
* src/move.c (do_down), src/winio.c (edit_scroll): Scroll an
extra amount when softwrap is on and the current line would
otherwise run off the screen, and recalculate maxrows after
each scroll. Solves bug #27550 reported by Hannes Schueller.
2014-02-25 Benno Schulenberg <bensberg@justemail.net>
* NEWS: Fix some typos and wordings, and rewrap a few lines.
* src/global.c: Correcting some translator comments, removal
of a few superfluous blank lines, and some pedantic comment
tweaks (mainly adding missing periods and stars).
* src/global.c: Ordering "Prev Word" and "Next Word" better.
* src/global.c: Make ^G not only call help but also exit from
it, and make ^C also exit from help and from the file browser.
Also remove two redundant shortcut definitions.
2014-02-25 Mike Frysinger <vapier@gentoo.org>
* src/Makefile.am: Rename 'INCLUDES' to 'AM_CPPFLAGS', since
Automake changed the naming of these a while ago, and at least
version 1.13 now starts warning about it.
* .gitignore: Ignore generated files (and bak files).
2014-02-25 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (write_lockfile, do_lockfile): Fix a typo reported
by Jean-Philippe Guérard and inconsistent spelling of "lock file"
reported by myself on nano-devel in March 2013.
2014-02-25 Benno Schulenberg <bensberg@justemail.net>
* src/help.c (do_help_void): Call the help browser with the correct
refresher for afterwards. This solves a bug reported by myself on
nano-devel in August 2010: after typing ^R ^T ^W ^G ^X, the file
being edited would get displayed instead of the list of files.
2014-02-24 Chris Allegretta <chrisa@asty.org>
* New linter functionality, rcfile option "linter".
* src/global.c (shortcut_init): Actually free the sclist
if it was allocated before.
* src/winio.c (do_credits): Add Benno, my children,
update copyright info.
2014-02-23 Benno Schulenberg <bensberg@justemail.net>
* doc/syntax/*.nanorc: Comment and punctuation tweaks.
* doc/syntax/sh.nanorc: Colour $VAR within a "" string
but not within a '' string, and do not colour strings
within comments. Fixes bug #29943.
2014-02-23 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (do_undo, do_redo, add_undo): Make warning
sentences in the status bar consistently end in a period.
2014-02-22 Benno Schulenberg <bensberg@justemail.net>
* src/files.c (write_file): Add a missing malloc.
Reported by an anonymous cross compiler, bug #30671.
2014-02-22 Benno Schulenberg <bensberg@justemail.net>
* src/winio.c (get_mouseinput): Correct an oversight,
use the proper 'do_up_void' and 'do_down_void' names.
Reported by Zhou Z.J. <zzj666@Savannah>, bug #38268.
2014-02-22 Lauri Kasanen <laxy@Savannah> (tiny change)
* doc/syntax/html.nanorc: Also recognize htm as extension,
use cyan for tags (more visible on dark background), correct
the expression for ampersand codes, and colour strings too.
2014-02-22 Dennis Jenkins <dennisjenkins@Savannah> (tiny change)
* doc/syntax/c.nanorc: Also recognize c++ as extension.
2014-02-22 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (move_to_filestruct): Update the data in 'mark_begin'
when mark and cursor are on the same line. This avoids a segfault
after M-A, right, M-T, left, ^K, or a hang when the left is left out.
2014-02-22 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (main): Add two conditions on ENABLE_NANORC.
* src/files.c (close_buffer, do_insertfile): Likewise.
This avoids compilation failure when nano is configured
with both --disable-color and --disable-nanorc.
2014-02-22 Felipe Bugno <capent@Savannah> (tiny change)
* doc/nanorc.sample.in: Add an include for CMake files.
2014-02-22 David Lawrence Ramsey <pooka109@gmail.com>
* src/nano.c (allow_pending_sigwinch): A (char *) cast for pedantic purposes.
* src/cut.c (do_cut_text): Wrap a reference to 'copy_text' in NANO_TINY.
2014-02-22 David Lawrence Ramsey <pooka109@gmail.com>
* ChangeLog, NEWS, doc/faq.html: Fix typos, wording, and spacing.
2014-01-25 Chris Allegretta <chrisa@asty.org>
* src/winio.c (set_modified): Check for a filename before trying to lock.
2014-01-24 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (copy_from_filestruct): Refresh the mark's pointer when
stuff was pasted into the line where the mark is. This applies
Savannah patch #8180 and fixes the segfault reported on the list:
2014-01-01 Chris Allegretta <chrisa@asty.org>
* doc/texinfo/nano.texi: Change '@sp4' since makeinfo 5.1 hates the
lack of spacing. Fixes bug #40103 reported by flapane@Savannah.
Also change SVN status to non-binary so diffs work.
2014-01-01 Chris Allegretta <chrisa@asty.org>
* src/global.c (strtokeytype): Check for lower-case 'f' for defining F-key
sequences for consistency (previously was two checks for upper case 'F').
Fixes bug #40815 reported by David Binderman <dcb314@Savannah>.
2013-06-13 Matthew Fischer <mfisch@Savannah>
* doc/syntax/c.nanorc: Add the 'auto' keyword.
2013-06-13 David Lawrence Ramsey <pooka109@gmail.com>
* src/global.c (first_sc_for): Try to more consistently display keystrokes,
useful when the user has rebound a bunch of them.
2013-06-13 Kamil Dudka <kdudka@redhat.com>
* doc/man/nano.1: Actually document the -P (--poslog) option.
2013-04-12 Chris Allegretta <chrisa@asty.org>
* src/files.c (do_insertfile): Check for saved cursor position when inserting a
file as well. Fixes Savannah bug #38600 reported by Craig Barnes.
* src/files.c (write_file): Don't re-stat() the file if we're writing out
a marked portion (especially because it would give the wrong stat info).
Part two of issue reported by Benno Schulenberg.
2013-04-07 Michael Berg <mike@berg-net.us>
* do_cut_text: Fix copying (not cutting) text setting Modified state.
Partly fixes an issue reported by Benno Schulenberg.
GNU nano 2.3.2 - 2013.03.23
2013-03-17 Chris Allegretta <chrisa@asty.org>
* Revert r4547 as we should have a new release and the overlap code is not yet
ready for public consumption.
2013-01-20 Chris Allegretta <chrisa@asty.org>
* src/text.c (do_histify): Don't allow sigwinch to be received while justifying
as that puts us into a wacky state. Fixes crash on justify by Joshua Rogers.
* configure.ac: Added --with-wordbounds option to let cross compilers force
whether their target system support GNU-style word boundaries or not.
Originally reported by Dave Festing.
* doc/man/nanorc.5: Fix typo in softwrap description, reported by
2013-01-19 Chris Allegretta <chrisa@asty.org>
* configure.ac: Make ncurses checking to set $LIBS and check the ncursesw lib
actually works before defaulting to it over ncurses! Shock!
2013-01-13 Chris Allegretta <chrisa@asty.org>
* src/utils.c (parse_num): Initialize errno before calling strtol(). Fixes issue
where trying to go to a line number too long will break legitimate goto-lines
for the remainder of the editing session, reported by Joshua Rogers.
2013-01-09 Mike Frysinger <vapier@gentoo.org>
* configure.ac: Check for ncursesw5-config and base $CPPFLAGS on it.
2013-01-09 Fabian Groffen <grobian@Savannah>
* configure.ac, src/nano.h: Make the search for ncursesw more generalized.
2013-01-02 David Benjamin <davidben@Savannah>
* src/search.c (parse_syntax): Fix blatantly and dangerously incorrect code
for deleting old syntaxes.
2013-01-02 Mike Frysinger <vapier@gentoo.org>
* src/files.c (cwd_tab_completion): Remove unnecessary variables.
* src/search.c (search_init): Fix gcc complaints on certain versions.
2013-01-02 Eitan Adler <lists@eitanadler.com>
* configure.ac: Remove unnecessary checks.
* src/nano.h, NEWS: Fix redundant wording.
2012-12-31 Chris Allegretta <chrisa@asty.org>
* src/*: Introduce (basic) vim-style file locks. Does not allow vim to recover
our changes, and just lets a vim user know we're editing a file. Command-line
option "-G" or "--locking", nanorc option "locking". New functions in
src/files.c: do_lockfile(), write_lockfile(), and delete_lockfile().
2012-02-05 Chris Allegretta <chrisa@asty.org>
* src/*: Fix overlapping strings highlighting each other. New variables in edit_draw
(slmatcharray, pbegin, paintok), new logic (with repeated setting of values in the
array but it's BFI after all). FIXME: Need to create a new 'overlap'.
* src/*: Fix a silly issue with the argument to nregcomp, as it's confusing to the caller.
* src/nano.h: Change the color types to a compiler macro (COLORWIDTH), may not actually
even be worth doing, but someday who knows how wide a color curses implementation might
be, and maybe we'll even start checking for it in autoconf!
GNU nano 2.3.1 - 2011.05.10
2011-05-10 Chris Allegretta <chrisa@asty.org>
* text.c (do_enter): Only increment totsize by the auto-indented amount, since the previous
line's size was already counted. Fixes bug reported by Robert Spanjaard.
2011-05-08 Chris Allegretta <chrisa@asty.org>
* doc/syntax/Makefile.am: Finally get around to sorting the syntax file list.
2011-05-08 Matthew Wild <mattj100@Savannah>
* doc/syntax/spec.nanorc: New lua syntax highlighting config.
2011-03-28 Asterios Dramis <asterios.dramis@gmail.com>
* doc/syntax/spec.nanorc: New RPM spec file highlighting config.
2011-03-12 Chris Allegretta <chrisa@asty.org>
* po/*: Sync latest translation fixes, add an update_linguas.sh script. Rename
existing update.pl to update_sources.pl to make it more specific.
2011-03-04 Chris Allegretta <chrisa@asty.org>
* color.c (color_update): Add check for whether the file even exists
before we try to run the magic check on it. Fixes error messages to stderr
when reading in files that don't exist, reported by Mike Frysinger.
2011-03-03 Chris Allegretta <chrisa@asty.org>
* color.c (color_update): Remove unneeded debugging message from libmagic commit.
Fixed extra messages going to stderr, reported by Mike Frysinger.
GNU nano 2.3.0 - 2011.02.26
2011-02-26 Chris Allegretta <chrisa@asty.org>
* Change RAW in function_type enum to RAWINPUT, to fix compilation on AIX,
reported by Richard G Daniel <skunk@iskunk.org>.
2011-02-23 Chris Allegretta <chrisa@asty.org>
* Fix some more severe warnings from 'g++ -pedantic', from patch originally
by Eitan Adler <lists@eitanadler.com>.
2011-02-23 Kamil Dudka <kdudka@redhat.com>
* doc/man/nanorc.5: Fix small typo. Report and original patch by John Bradshaw.
2011-02-22 Chris Allegretta <chrisa@asty.org>
* color.c (nfreeregex): Fix that we were trying to set the pointer passed by value
to NULL. Fixes crashes on file save reported by Ken Tyler and Matthieu Lejeune.
2011-02-18 Chris Allegretta <chrisa@asty.org>
* New saved cursor position history option. Command line option -P or --poslog, rc file
entry "poslog". Search history changes to ~/.nano/search_history, cursor position log
is ~/.nano/filepos_history. Added checks to move the legacy .nano_history file to the
new location. Several new functions to files.c: load_poshistory(), save_poshistory(),
check_poshistory(), update_poshistory(), and reworking of histfilename(). New FAQ entry
4.15 discussing the change and offering an interoperability workaround.
* files.c (load_history): Set last_search to the last search value we loaded from history,
so do_research will succeed without needing to manually load the last search in. Fixes
bug reported by Matthieu Lejeune.
2011-02-12 Chris Allegretta <chrisa@asty.org>
* Initial libmagic implementation, adapted from Eitan Adler <eitanadlerlist@gmail.com>.
New nanorc entry "magic" to enable this functionality, nanorc file and man page updates.
2011-02-06 Chris Allegretta <chrisa@asty.org>
* src/*: Retire iso_me_harder_funcmap based on suggestion by <bernd.spaeth@gmx.net>.
This does add 20KB to nano's executable size but it gets rid of a lot of indirection
that makes people's stomach turn. There are several new stub functions and a need of
more tidying as a result of this.
* files.c (write_file): Fix problems with writing the backup file (albeit interactively)
with new function prompt_failed_backupwrite(), allows more secure handling of problems
with failing to write the backup file compared to 'allow_insecure_backup'.
* winio.c (edit_redraw): Remove unused variable.
GNU nano 2.2.6 - 2010.11.22
2010-11-15 Chris Allegretta <chrisa@asty.org>
* Add a section to the FAQ about using nanorc on Win32 systems.
2010-11-12 Chris Allegretta <chrisa@asty.org>
* Add check for RESTRICTED mode back to speller, suspend and insert file routines,
since adding key bindings broke the fact that they should be disabled in restricted\
mode. Fixes Savannah bug #31625 reported by Charlie Somerville.
GNU nano 2.2.5 - 2010.08.05
2010-08-04 Lauri Kasanen <curaga@operamail.com>
* doc/syntax/mgp.nanorc: New Magicpoint syntax highlighting definition.
2010-08-04 Peter <exodus@savannah>
* doc/syntax/tex.nanorc: No longer highlight escaped comments
2010-06-20 Chris Allegretta <chrisa@asty.org>
* New rc file option allow_insecure_backup, allows the previous security
fixes for backup files to be overridden if you're really positive
you want to. Fixes Savannah bug #29732 by Brian Szymanski <skibrianski>.
2010-05-23 Chris Allegretta <chrisa@asty.org>
* files.c (write_file): Don't even try to chown() the backup
file unless we're root, since it's probably going to fail if
we're editing a file we don't own. Fixes Savannah bug
#29514: [nano 2.2.2] backup should ignore chown errors.
GNU nano 2.2.4 - 2010.04.15
2010-04-14 Chris Allegretta <chrisa@asty.org>
* doc/man/nano.1,nanorc.5: Remove the backup file warnings now
that a sufficient security fix exists for the backup file code.
2010-04-14 Chris Allegretta <chrisa@asty.org>
* text.c (do_alt_speller): Skip invoking the alt speller if the file size
is 0 bytes. Fixes Savannah bug #29393 reported by Mike Frysinger.
* files.c (write_file): Don't set current_stat when tmp == TRUE, check
whether current_stat is set when trying to use it, and don't do the
modification check if the filename changed, since we have no way
of knowing about it in that case. Fixes Savannah bug #29392, reported
by Mike Frysinger. [CVE-2010-1160]
2010-04-13 Felipe Bugno <necron@bol.com.br>
* doc/syntax/cmake.nanorc: Added cmake syntax highlighting file.
2010-04-09 Chris Allegretta <chrisa@asty.org>
* files.c (do_writeout): Better security fixes for backup file writing,
mangled from submission by Dan Rosenberg <dan.j.rosenberg at gmail>.
2010-04-08 Chris Allegretta <chrisa@asty.org>
* files.c (do_writeout): Previous fixes should not cause a crash
when saving a new file. Discovered by Mike Frysinger <vapier@gentoo.org>.
2010-04-07 Chris Allegretta <chrisa@asty.org>
* doc/man/nano.1,nanorc.5: Add warnings about using backup
mode as root due to the Dan Rosenberg security analysis.
2010-04-02 Chris Allegretta <chrisa@asty.org>
* files.c (do_writeout): Expand modification check to include both the
original file's device ID and inode number as reasons to warn the
user that the file has been modified. Also abort on writing a backup
file when its owner doesn't match the edited file. Based on security
analysis on nano by Dan Rosenberg. [CVE-2010-1160]
2010-03-21 Chris Allegretta <chrisa@asty.org>
* nano.c (page_stdin et al): Don't attempt to reset/reopen the terminal
settings when reading stdin if it was aborted with SIGINT. May fix
Savannah bug #29114 reported by Mike Frysinger.
2010-03-21 Mike Frysinger <vapier@gentoo.org>
* doc/syntax/c.nanorc: Add additional support for #include_next and #pragma.
2010-03-21 Chris Allegretta <chrisa@asty.org>
* move.c (do_page_up, do_page_down()): Explicitly set current_y to 0 when
paging up when not in smooth scroll mode, as previous fixes would otherwise
cause the cursor to not really be moved to the top of the screen.
2010-03-07 Chris Allegretta <chrisa@asty.org>
* configure.ac, nano.c (handle_sigwinch): Create check for whether LINES and
COLS can safely be redefined. Fixes compilation issues with Cygwin, and likely
with newer versions of ncurses. Fixes Savannah bug #28984 reported by Andy Koppe
and by Eric Oliver via mailing list.
* winio.c (get_mouseinput): Fix stray semicolon in code, also reported in
bug #28984.
GNU nano 2.2.3 - 2010.02.11
2010-01-28 Chris Allegretta <chrisa@asty.org>
* move.c (do_page_up, do_page_down): Fix for smooth mode not preserving cursor
position. Part one of fix for Savannah bug #21178 by Mike Frysinger.
GNU nano 2.2.2 - 2010.01.17
2010-01-17 Chris Allegretta <chrisa@asty.org>
* nano.c (main), prompt.c (do_statusbar_input): Handle problems with an unmapped
function due to key rebinding, fixes crashes on FreeBSD reported by Eitan
Adler <eitanadlerlist@gmail.com>.
2010-01-14 Chris Allegretta <chrisa@asty.org>
* files.c (do_writeout): Fix for crash / incorrect external modification warning
due to earlier fix in r4467.
2010-01-12 Chris Allegretta <chrisa@asty.org>
* move.c (do_page_up, do_page_down): Fix issues with not enough scrolling down/up
and cursor centering.
* winio.c (edit_scroll): Remove lots of needless checking of line length for
soft wrapping code.
* winio.c (edit_update): Remove extra code for when updating with old_current outside
of the new buffer boundary and centering issues.
2010-01-05 Tito <farmatito@tiscali.it>
* search.c (update_history): Fix bad length check causing search crash on armel platform.
2010-01-04 Chris Allegretta <chrisa@asty.org>
* winio.c: edit_update, edit_redraw: Fix search not scrolling to the middle of the screen
(reported by alpha@qzx.com) and places where we rely on maxrows but should not.
2009-12-26 Jordi Mallach <jordi@gnu.org>
* doc/man/nano.1: Avoid a groff warning by prepending a zero-width
space to a line starting with '.
2009-12-22 Chris Allegretta <chrisa@asty.org>
* files.c (write_file): Fix compatibility with previous stat fix and tiny mode.
2009-12-22 David Lawrence Ramsey <pooka109@gmail.com>
* global.c: Add new strings for forward/back in the file browser. New variables
nano_forwardfile_msg and nano_backfile_msg.
2009-12-20 Chris Allegretta <chrisa@asty.org>
* files.c (is_file_writable): remove assert check for f, since it's not
initialized at the time. Fixes Savannah bug #28309, reported by Zoltan Kovacs.
2009-12-20 Brian Szymanski <skibrianski via Savannah>
* src/files.c (write_file): Check whether stat struct exists, and if not, use the
just obtained stat data. Fixes Ubuntu bug 471568, "reproducible crash in nano on
trying to save to a file different than the one specified on the command line".
2009-12-15 Chris Allegretta <chrisa@asty.org>
* doc/nanorc.sample.in: Remove erroneous 'set suspendenable' as it's actually a
key binding (e.g. 'bind M-Z suspendenable all') and not a settable flag. Fixes
Savannah bug #28299 reported by Mike Frysinger.
GNU nano 2.2.1 - 2009.12.12
2009-12-12 Chris Allegretta <chrisa@asty.org>
* text.c (do_delete), nano.c (do_output): Add check for length of current line
before and after adding/deleting text, and do full refresh if it is now
a different multiple of COLS. Also get rid of superfluous do_refresh
vars now that we have edit_refresh_needed.
2009-12-09 David Lawrence Ramsey <pooka109@gmail.com>