Changes between v5.2 and v5.3: ------------------------------ Arturo Borrero González (1): syntax: nftables: include author and license lines Benno Schulenberg (92): browser: make M-W/M-Q functional right after startup, if there is history browser: sort names that differ only in case with uppercase first browser: wipe the status bar before searching again with M-W or M-Q build: abort the update script if a PO file contains a control character build: avoid two compiler warnings when gnulib has been ripped out build: do not accept --enable-libmagic when not having color support build: do not let Slang translate escape sequences to key codes build: exclude bunches of raw escape sequences from the tiny version build: exclude --emptyline, --jumpyscrolling, and --noread from tiny nano build: exclude excessive version information from the tiny version build: exclude option --tabsize (-T) from the tiny version build: exclude reading a file from standard input from the tiny version build: exclude the three --help column headers from the tiny version build: include some raw sequences for the graphical Debian installer build: stop using an obsolete macro, and use 'void' for signal handlers build: to verify wide curses, probe for a function that cannot be a macro bump version numbers and add a news item for the 5.3 release chars: reduce searching time with roughly 85 percent for plain ASCII display: do not unnecessarily wipe the status bar display: do not wipe the status bar when the terminal has just one row display: force the cursor to reappear after a message (when using Slang) display: force the cursor to reappear in a better way (when using Slang) display: skip a special-case refresh when a message was written docs: add a link to the website also to the info manual docs: add the customary (1) after the name of command-line programs docs: condense the desciptions of cutting and pasting docs: explain the purpose of -! / --magic / 'set magic' docs: explain the 'set scrollercolor' option, for coloring the indicator docs: explain what the options --stateflags (-%) and 'set stateflags' do docs: improve two wordings in the sample nanorc docs: mention that syntax definitions are available in /usr/share/nano/ feedback: don't give a hint for , and not after an Alt+key was used feedback: in the tiny version, let M-H show the helpful hint too feedback: make an "Unbound key" message disappear on the next keystroke feedback: show a helpful message for ^G even when there is no help feedback: show helpful message for the first ^H at the top of the file gnulib: update to its current upstream state help: do not leave the cursor on the status bar after a search help: do not show "^G Help" in the tiny version when there is no help help: ensure the help lines are always drawn, also when using Slang help: in the tiny version, show Prev/Next Word before Backward/Forward help: nicely pair menu items also when built with just --disable-help new feature: option --stateflags to show some states in top-right corner options: add -? as a synonym of -h (--help), but leave it undocumented options: move --stateflags (-%) and --magic (-!) to the end of the list options: require --magic or 'set magic' to enable the use of libmagic rcfile: add 'set scrollercolor', for changing the color of the indicator suspension: do not enter an invalid byte upon resume (when using Slang) suspension: properly resume from an external SIGSTOP suspension: resume properly from an external SIGSTOP (when using Slang) suspension: switch off flow control at the right moment (for Slang) syntaxes: add author and license lines to four of the files syntax: nanorc: stop coloring 'morespace' and 'smooth' as valid syntax: nanorc: stop coloring 'nopauses' and 'nowrap' as valid syntax: nanorc: stop coloring 'quiet' and 'backwards' and 'finalnewline' syntax: po: do not leave the occasional tab with a red background color syntax: po: highlight embedded control codes that shouldn't be there syntax: sh: recognize some shell scripts by their Emacs modeline tweaks: add a hint for translators tweaks: add some comments to the C syntax, and sort some keywords tweaks: adjust some whitespace in the docs, and improve a comment tweaks: avoid a compiler warning when compiling with more than -O1 tweaks: condense a bit of code tweaks: condense a bit of code after the previous change tweaks: drop the unneeded saving and restoring of a global variable tweaks: dummy commit, to add some info about the previous one tweaks: elide a one-line function, after reducing it to a single call tweaks: fold one function into another, to elide an unneeded return value tweaks: harmonize the spelling of a compound word, and rewrap a section tweaks: harmonize the style of error messages and warnings in ./configure tweaks: make two of the changes that 'autoupdate' suggests tweaks: move three functions, to before the ones that call them tweaks: move two more functions, to before the ones that call them tweaks: move two more functions, to before the one that calls them tweaks: normalize the indentation after the previous change tweaks: remove an inconsistent newline from the end of an error message tweaks: remove an usused element from 'funcstruct', saving 8 more bytes tweaks: remove mistaken escape sequences for function keys on xterm tweaks: remove two stray comments and two lines that were commented out tweaks: rename another variable, away from being misnamed tweaks: rename four variables, reshuffle them, and correct one type tweaks: rename two elements of history struct, away from abbreviations tweaks: rename two variables, to be more distinct tweaks: replace two more occurrences of 'AC_TRY_RUN' with 'AC_RUN_IFELSE' tweaks: reshuffle a condition, to elide a blank string tweaks: reshuffle some lines after the previous change tweaks: reshuffle some lines and adjust indentation after previous change tweaks: reshuffle two lines and a function name, for a consistent order tweaks: rewrap nine more old NEWS items, for balanced line lengths tweaks: rewrap three NEWS items, for more balanced line lengths tweaks: stop 'autoupdate' from failing with "end of file in string" version: remove URL and email address from the --version output Hussam al-Homsi (5): syntax: c: colorize also one-character constants, and the null directive syntax: c: colorize also the keywords that start with an underscore syntax: c: colorize also the 'restrict' keyword, and the #line directive tweaks: reorder a member of 'funcstruct', to save 8 bytes of padding tweaks: stop casting the return of malloc() and friends Ryan Westlund (1): syntax: markdown: add author and license line Changes between v5.1 and v5.2: ------------------------------ Benno Schulenberg (30): build: stop distributing the README.GIT file build: stop mentioning Slang in two ./configure messages bump version numbers and add a news item for the 5.2 release display: restore the ability to resize the screen while searching docs: add a cross-reference from 'findbracket' to 'set matchbrackets' docs: adjust description of ^T in cheatsheet, and mention M-Bsp docs: mention in the FAQ how to change the escape sequences of urxvt docs: reshuffle the section about the file browser to a better place gnulib: back away from a commit that causes trouble when using clang gnulib: update to its current upstream state history: do not interpret a failing stat() as an error input: allow also a Meta keystroke to abort a Search command input: dawdle after an ESC also when --rawsequences is used input: discard any multibyte character when is being held input: do not enter invalid bytes when holding down both Alt keys input: hold on to a shift-selected region when an unbound key is struck rcfile: make sure that "bright"/"light" are prefixes, not separate words replacing: do not try to wipe nonexistent multidata, to avoid crashing search: poll the input stream directly, not nano's own keystroke buffer search: retain the current answer when something is toggled tweaks: adjust a comment, and reshuffle the setting of a boolean tweaks: condense two declarations tweaks: condense two fragments of code, for compactness tweaks: elide an unneeded variable tweaks: improve three comments and an indentation tweaks: move the keyboard-checking code to the end of the search loop tweaks: remove a variable and two functions that have become redundant tweaks: rename a variable, to not seem to refer to the scrollbar tweaks: reshuffle four declarations, and rename two variables verbatim: reserve enough space for the result also in non-UTF-8 locales Changes between v5.0 and v5.1: ------------------------------ Benno Schulenberg (55): anchor: in a UTF-8 locale, show an anchor as a diamond, for visibility anchor: show an anchor also when the line is horizontally scrolled bindings: make delete a word backwards, like in Bash build: fix compilation for --enable-tiny --enable-nanorc --enable-color build: fix compilation when configured with --enable-tiny build: stop distributing the two old Changelogs bump version numbers and add a news item for the 5.1 release display: show the cursor position also right after the screen is resized docs: fix a closing tag in the FAQ [tidy] docs: mention that anchors are visible when line numbers are shown feedback: add the reason to the error message when forking fails feedback: use three dots to indicate processing, like everywhere else feedback: when creating a pipe fails, report also the reason files: do not try writing to the status bar while not in curses mode formatter: force the mark off, to not crash by accessing empty cutbuffer gnulib: update to its current upstream state help: list again the keystroke for toggling the help lines (M-X) input: understand M-Bsp also when terminfo does not match the terminal moving: make go to the top when above the cursor all is blank rcfile: allow to bind M-[ (even though it is an escape-sequence starter) softwrap: initialize the 'extrarows' value for the magic line correctly speller: give proper feedback when the user tries to check emptiness speller: give startup feedback (relevant when running on a Linux console) speller: re-enter curses mode before trying to report an error syntax: css: differentiate pseudo-classes (now cyan) from comments (blue) syntax: default: colorize also "GNU nano 5.x" tweaks: adjust the indentation after the previous change tweaks: adjust the indentation after the previous change tweaks: avoid a maybe-uninitialized-variable warning from gcc tweaks: elide an unneeded variable, by transforming the key code directly tweaks: elide two variables that are no longer needed, and update comment tweaks: exclude old and mistaken "Esc O" sequences from the tiny version tweaks: make a few more direct returns, and reshuffle another bit of code tweaks: make a misplaced call of statusline() more obvious by crashing tweaks: normalize the indentation after the previous change tweaks: normalize the indentation, and regroup two lines tweaks: optimize for byte-range characters, and shorten some comments tweaks: parse the escape-sequence bytes without copying them first tweaks: pass first byte of sequence directly to the decoding function tweaks: print error message directly instead of passing it to the caller tweaks: read keycodes from the keystroke buffer without copying them tweaks: remove an unneeded beep, and reshuffle the lines for compactness tweaks: reshuffle a few lines, to condense the code, and improve comment tweaks: reshuffle four lines, for esthetics tweaks: reshuffle some fragments, to make the next change easier tweaks: reshuffle the zeroing of a counter, to allow some direct returns tweaks: simplify two functions, as they now return always NULL tweaks: split a function into two, one for "Esc O" and one for "Esc [" tweaks: stop using a 'switch' when there are just three possibilities verbatim: discard entire keystroke when it's not valid for Unicode Input verbatim: do not report "Invalid code" when a Unicode character is typed verbatim: do not report "Invalid code" when the terminal is resized verbatim: insert the full code sequence when is pressed verbatim: pause a little after an ESC, to not miss a succeeding code verbatim: report and ignore an invalid keystroke for Unicode input Michalis Kokologiannakis (2): build: avoid compilation warnings by using memcpy() instead of strncpy() files: ignore only EPERM when fchmod() or fchown() fails Changes between v4.9 and v5.0: ------------------------------ Andreas K. Foerster (1): syntax: ada: new file -- coloring rules for Ada 2012 files Benno Schulenberg (374): anchor: do not let a full justification transfer an anchor to the top anchor: do not let piping and spelling transfer an anchor to the top anchor: during full justification preserve anchors as during single ones backup: do not understand ^C as "Yes" when asking whether to continue backup: when rereading the original file fails, ask the user what to do bindings: add mistakenly removed M-J (Full Justify) back to the main menu bindings: add ^Z (Suspend) to the "Execute Command" menu bindings: allow toggling the help lines at several prompts and in browser bindings: allow typing digits on the numeric keypad by holding Shift bindings: make ^L (Refresh) work at all the prompts too bindings: make ^T invoke the "Execute Command" menu, and ^T^T the Speller bindings: remove the Full-Justify function from the Search menu bindings: stop on the keypad from entering spurious letter bindings: stop supporting without NumLock build: allow compilation to succeed on curses without italic support build: do not let --disable-speller exclude also the formatter code build: fix compilation for --enable-tiny --enable-color --enable-nanorc build: fix compilation when configured with --disable-color build: fix compilation when configured with --disable-speller build: fix compilation when configured with --enable-tiny build: fix compilation when configured with --enable-tiny build: fix miscompilation for --enable-{tiny,color,nanorc} build: fix the Makefile after two header files were renamed build: make a deeper clone of gnulib (when building from git) build: make ./configure report which global nanorc file will be used build: replace the non-standard backslash escape "\e" with "\x1B" build: stop distributing a nano.spec file build: use a more dependable method for detecting a build from git bump version numbers and add a news item for the 5.0 release color: avoid allocating emptiness when there are no multiline regexes color: when syntax coloring is toggled back on, calculate multiline data colors: move purple one step away from magenta, and use a darker mauve copying: change the implementation, away from cutting plus copying back copying: do not forget to update the screen when M-6 is pressed copying: when using M-6, copy the final line in the buffer just once copying: with --nonewlines, don't add a final newline to the cutbuffer counting: count words and characters without partitioning the file counting: count words correctly also when --wordchars is used cutting: change the implementation of cutting to not use partitioning cutting: overhaul the pasting routine, to not make use of partitioning display: avoid an additional redrawing when redrawing the screen display: blank the status bar for a copy operation, like for cut & paste display: do not try to draw content when there is no open buffer yet display: reposition the cursor after an error message also in a help text docs: complete the renaming of 'tempfile' to 'saveonexit' docs: copy the 4.9.1 news item from the release branch docs: copy the 4.9.2 news item from the release branch docs: copy the 4.9.3 news item from the release branch docs: document the --indicator (-q) and 'set indicator' options docs: document the new -O/--bookstyle and 'set bookstyle' options docs: explain how anchors work, and document their bindable functions docs: improve some descriptions concerning the file browser docs: in the sample nanorc file, refer instead of duplicating docs: mention that doing a full-buffer operation wipes away all anchors docs: mention that M-X toggle is special, because available in most menus docs: mention that the dedicated cursor-moving keys are not rebindable docs: mention the nine new color names, and "bold" plus "italic" docs: note Marco as the original author of the bookmarking code docs: reduce the TODO file to a reference to the bug tracker on Savannah docs: stop mentioning that --wordchars overrides --wordbounds docs: use 'bold' and 'light' instead of 'bright' in the sample nanorc feedback: beep also at a prompt when receiving an unknown escape sequence feedback: do not list "." and ".." as possible completions feedback: indicate an anchor with a "+" in the line-number margin feedback: show a message also when trying to copy an empty region feedback: show the cursor position also at startup in an empty buffer feedback: skip wiping the prompt bar when the shortcut printed a message files: also when creating a backup fails, ask the user whether to proceed files: ask the user whether to proceed every time a backup fails files: before prompting, show also the reason why the backup failed files: disallow tabbing when in restricted mode files: do not append but truncate when allowing insecure backups files: do not let a stray CR in a DOS file trigger Mac format files: do not make a failsafe backup when in restricted mode files: give a more precise warning when deleting an existing backup fails files: ignore errors when calling chmod() on a backup file files: ignore errors when calling chown() on a backup file files: ignore errors when calling futimens() on a backup file files: list possible completions after just one instead of two files: make a backup only when requested, not an unrequested failsafe one files: make better use of the last row when there are many completions files: make filtering of the entire buffer into a new buffer work again files: never report a file as being of mixed format files: reinitialize the palette only when the syntax actually changed files: remove two superfluous calls for shielding temp files from others files: show a warning when writing a backup fails, before prompting files: show possible tab completions near the bottom of the edit window files: take into account that also closing a backup file can fail files: trigger the Easter egg only when "zzy" is typed at the prompt files: warn the root user when all the write bits are missing files: write out a marked region without partitioning the buffer general: make five tools accessible through the "Execute Command" menu general: rename "bookmark" to "anchor", to sound less permanent gnulib: update to its current upstream state help: describe what has been added to the "Execute Command" menu help: pair the items in the two bottom lines better in the tiny version help: put the two toggles first in the "Execute Command" menu history: don't send error messages to the screen; store them in the queue history: take into account that closing a file can fail history: take into account that statting a file can fail too indicator: recompute the extra rows also for cut/paste/split/join indicator: recompute the extra rows also when justifying and resizing indicator: rework how the "scrollbar" is computed when softwrapping input: interpret an escape sequence only when it starts with "[" or "O" input: reset the counters when a three-digit sequence is not completed input: stop recognizing the raw escape sequences for F13 to F16 locking: ignore the insecure-backup flag when creating a lock file locking: prevent a symlink attack by not opening an existing lock file memory: plug a leak, by freeing the cutbuffer after a bracketed paste menus: remove unneeded words and shortenings from key labels new feature: a position-plus-portion indicator on the righthand side oops -- restore an accidentally changed file options: add --indicator and -q for switching on the scroll-bar thing options: add -O/--bookstyle to make leading whitespace mean new paragraph options: let --afterends affect also the deleting of words (Ctrl+Delete) options: make -S the short synonym of --softwrap options: rename --tempfile to --saveonexit, to be far clearer options: stop recognizing the obsolete --morespace and --smooth prompt: at Yes-No, do not treat a screen resize as an invalid keystroke rcfile: accept prefix "light" to make a color brighter without bolding it rcfile: add bindable function 'execute', for access to "Execute Command" rcfile: allow specifying a bright background color (with prefix "light") rcfile: complain when an essential key binding is missing rcfile: do not complain when "bright" is used with a background color rcfile: introduce nine new named colors, from "pink" to "latte" rcfile: introduce the modifier "bold", for specifying bolding separately rcfile: introduce the modifier 'italic', for slanted text rcfile: rename bindable function 'curpos' to 'location' rcfile: rename 'extcmd' to 'execute', to be more readable and fitting rcfile: report the first bad color element, not a later one that is okay rcfile: restore terminal settings when exiting upon excessive unbindings replacing: recalculate the multiline coloring info when needed scrolling: add a function and a key binding to center the cursor line speller: take into account that statting a file can fail [coverity] startup: allow presetting case-sensitive search also in the tiny version startup: check stdout instead of stdin when probing for a Linux console startup: enter curses mode before reading the nanorc files startup: initialize colors only when the terminal is capable of colors syntax: css: color multiline comments correctly syntax: default: colorize embedded control codes syntax: email: rename file and syntax, away from the mistaken 'mutt' syntax: markdown: do not colorize text between two bold words as italic syntax: markdown: new file -- coloring rules for Markdown files syntax: mgp: drop the almost-empty MagicPoint file and syntax syntax: move distro-specific files down to a subdirectory, syntax/extra/ syntax: nanorc: colorize 'bright' anyway, so existing syntaxes look okay syntax: nanorc: colorize the new named colors too, from "mint" to "mauve" syntax: nanorc: stop colorizing 'bright', even though it's still accepted syntax: sql: condense some regexes, and reduce their number syntax: sql: rename the file to match the name of the syntax syntaxes: move the rules for Fortran and Povray files down to extra/ syntaxes: remove some stuff that has been commented out for a long time syntaxes: remove some superfluous outer parentheses from regexes syntaxes: remove unneeded backslash escapes before quotes syntaxes: uniformize the initial comment tabbing: beep at the first listing, and when there are zero possibilities tabbing: properly terminate the answer when the sole match is a folder text: retain a bookmark when two lines are joined or something is cut tweaks: add a condition, so that two ifs can be elided tweaks: add a helpful message for when pkg.m4 is missing during a build tweaks: add a helping variable, in order to unwrap three lines tweaks: add a helping variable, to slightly condense the code tweaks: add a symbol, in order to condense three function calls tweaks: add four early returns for read/write errors of history files tweaks: add four more translator hints tweaks: add two comments, and improve another tweaks: adjust comments and indentation after the previous change tweaks: adjust the conditional help-item pairing for absence of speller tweaks: adjust the file format indicator in a quicker way tweaks: adjust the indentation after the previous change tweask: adjust the indentation after the previous change tweaks: avoid a compiler warning tweaks: avoid a function call when a simple boolean will do tweaks: avoid an unnecessary refresh for zero or just one completion tweaks: avoid a warning about an unused variable in the tiny version tweaks: avoid checking a variable three times for each pass in the loop tweaks: avoid unneeded calls of free() by reallocating the full name tweaks: call init_pair() just once for each pair number tweaks: call the spotlighting routines only for the relevant line tweaks: call use_default_colors() just once for each run tweaks: cascade the ifs properly: without increasing the indentation tweaks: change a helping variable, to make two blocks still more similar tweaks: change a 'switch' to 'if', to elide a dummy 'return' tweaks: close opened files when something goes wrong [coverity] tweaks: condense a bit of code, by reusing an existing variable tweaks: condense a comment, and express a condition in a different way tweaks: condense a comment, and reshuffle a few lines tweaks: condense a comment, and reshuffle some conditions tweaks: condense and improve some comments tweaks: condense some cases to a single line, for more clarity tweaks: condense the code a little further, by grouping things better tweaks: correct a comment, and avoid third repetition of some conditions tweaks: correct a comment, and drop a redundant (because nested) #ifdef tweaks: correct some comments, as VT100 and such have smaller keypads tweaks: correct two spelling mistakes [codespell] tweaks: delete a ChangeLog that is no longer updated and is incomplete tweaks: delete another pointless ChangeLog tweaks: delete a now-unused function tweaks: delete some unneeded code, and rename the function accordingly tweaks: delete the now-unused partitioning and unpartitioning routines tweaks: delete two functions that are never executed tweaks: do not use 'switch' when there are just two possibilities tweaks: do not use the string "stat()" in any of the comments tweaks: don't bother overwriting a CR -- decreasing the length is enough tweaks: don't bother statting the lock file before unlinking it tweaks: don't bother using the exclusive flag when creating a lock file tweaks: don't check for escape sequences that start with a lowercase "o" tweaks: don't use a symbol for other purposes tweaks: do the conversion of -1 to a specific color just once tweaks: do the saving of histories in a single place tweaks: drop an unneeded assignment, and reshuffle a few lines tweaks: drop a superfluous check for a non-zero length tweaks: drop obsolete 'nano.spec' from .gitignore file, and reshuffle tweaks: drop two redundant conditions, and improve three comments tweaks: drop two unneeded assignments tweaks: drop two unneeded wnoutrefresh() calls in the spotlight routines tweaks: elide a function that is called just once tweaks: elide a function that is too sparse tweaks: elide another parameter, relevant in just three menus tweaks: elide a now-unused parameter -- it is always FALSE tweaks: elide an unneeded call of strlen(), and copy NUL byte with string tweaks: elide an unneeded global variable tweaks: elide an unneeded parameter, and rename the other tweaks: elide an unneeded variable, as there is nothing beyond '*place' tweaks: elide an unused parameter, and rename the other and a variable tweaks: elide a parameter, by calling the relevant function beforehand tweaks: elide a parameter that is relevant for only one menu (Goto Dir) tweaks: elide a redundant intermediate function tweaks: elide a variable and be more direct, and rename another tweaks: elide a variable, and shortcircuit a return tweaks: elide a variable, by returning the result directly tweaks: elide a wrapper function, by checking a precondition earlier tweaks: elide three functions that are called just once tweaks: elide three parameters, as they are the same for both calls tweaks: elide two ifs for the most likely case, when defaults are allowed tweaks: elide two redundant calls of strchr() tweaks: exclude a bit of bracketed-paste code from the tiny version tweaks: exclude an unneeded fragment of code from the tiny version tweaks: exit from the writing loop as soon as the last line is reached tweaks: fix twenty typos, in old Changelogs and in some comments tweaks: fold translation of all modified keypad keystrokes together tweaks: fold two blocks into each other, to elide three overlapping cases tweaks: for each version, mention the changes to the PO files last tweaks: get rid of a bunch of annoying casts, and thus condense the code tweaks: group the exiting routines together, and condense the comments tweaks: handle the double escapes directly, instead of going round again tweaks: handle two similar things in the same way tweaks: implement the anchor routines in a different way tweaks: improve a comment, rename a function, and elide a parameter tweaks: improve a comment, reshuffle a scroll command, elide a variable tweaks: improve four comments tweaks: improve several comments, and rewrap two lines tweaks: improve some comments, and reshuffle an assignment tweaks: improve some comments and whitespace, and reshuffle a few lines tweaks: improve three comments, drop one, and unwrap a line tweaks: improve two comments, and reshuffle some lines for conciseness tweaks: invert a condition, to have two clauses in a more logical order tweaks: invert a condition, to see the similarity between the two modes tweaks: make an early return for zero matches, and rename a variable tweaks: make an error message more accurate and reduce it to its essence tweaks: make three hard-bindings of special keys more efficiently tweaks: move a copyright notice to a better place, and improve it tweaks: move a fragment of code to the one branch that needs it tweaks: move a function to a more logical place tweaks: move a function to before the one that calls it tweaks: move a function to before the one that calls it tweaks: move a function, to be in the order in which they are called tweaks: move a function to the file where it is used the most tweaks: move an 'if', to not call leftedge_for() when not softwrapping tweaks: move an initialization function to before the one that calls it tweaks: move two functions, to have them in a more logical order tweaks: normalize the indentation after the previous change tweaks: normalize the indentation after the previous change tweaks: normalize the indentation after the previous change tweaks: normalize the indentation after the previous change tweaks: normalize the indentation after the previous change tweaks: order three menu names in the documentation slightly better tweaks: plug a leak, by always freeing the full filename [valgrind] tweaks: rake a common statement to the end of the case tweaks: recalculate the multiline info just once when doing "Replace All" tweaks: reduce the indentation after the previous change tweaks: remove an incorrect mention of umask() from a comment tweaks: remove an unneeded call of wnoutrefresh() tweaks: remove an unneeded cursor movement, and rename a variable tweaks: remove an unneeded element from the openfilestruct tweaks: remove a redundant cursor movement, remove a redundant condition tweaks: remove a superfluous check on the length of the key buffer tweaks: remove a superfluous global variable tweaks: remove some superfluous conditions tweaks: remove three unneeded while loops from two input routines tweaks: remove two calls of umask() by specifying permissions directly tweaks: remove two redundant conditions, and make a more direct return tweaks: remove two superfluous assignments tweaks: remove unneeded variables after the previous change tweaks: rename a function, and move it to before the one that calls it tweaks: rename a function, and move it to before the one that calls it tweaks: rename a function, to be more correct tweaks: rename a function, to be more general and clearer tweaks: rename a function, to be more precise, and reshuffle it tweaks: rename a function, to be more precise, and reshuffle some things tweaks: rename a function, to better describe what it does tweaks: rename a function, to leave the old names behind tweaks: rename a function, to match with the boolean that guards it tweaks: rename a function, to not shadow a variable, and elide parameter tweaks: rename a parameter and a variable, to be more meaningful tweaks: rename a struct element, to be shorter and preciser tweaks: rename a symbol, and actually use it where it is needed tweaks: rename a symbol, away from a double abbreviation tweaks: rename a symbol, from a phrase to a noun tweaks: rename a symbol, to be more accurate, and reshuffle two lines tweaks: rename a symbol, to better suit its purpose, and reduce its scope tweaks: rename a variable, and condense a comment tweaks: rename a variable, and normalize the indentation tweaks: rename a variable, and reduce the scope of two others tweaks: rename a variable, for more contrast with the function name tweaks: rename a variable, for shortness and contrast tweaks: rename a variable, improve a comment, and reshuffle a few things tweaks: rename a variable, to avoid overrepetition of 'backup' tweaks: rename a variable, to better describe what it holds tweaks: rename a variable, to better fit related ones tweaks: rename a variable, to make more sense tweaks: rename a variable, to not refer to a row as a "line" tweaks: rename one of the flag symbols, to be clearer tweaks: rename two functions and a variable, and improve two comments tweaks: rename two functions, and rename and reshuffle a parameter tweaks: rename two functions, to better indicate what they do tweaks: rename two header files, to be distinct and not an abbreviation tweaks: rename two labels, for brevity tweaks: rename two parameters, away from abbreviations tweaks: rename two parameters, away from an abbreviation tweaks: rename two parameters, to be more fitting tweaks: rename two variables, and reduce the scope of a third tweaks: rename two variables, away from abbreviations tweaks: rename two variables, to avoid a repetitive prefix tweaks: rename two variables, to be shorter and without abbreviations tweaks: reshuffle a bit of code, to elide an #ifndef tweaks: reshuffle a condition, for symmetry tweaks: reshuffle a condition, to avoid a repetition of code tweaks: reshuffle a condition, to make a little more sense tweaks: reshuffle a declaration and six calls of free(), to avoid a leak tweaks: reshuffle a few lines, and remove a few unneeded comments tweaks: reshuffle a few lines, for conciseness tweaks: reshuffle a few lines, to elide an 'if' from the most common path tweaks: reshuffle a fragment of code, to elide a 'goto' tweaks: reshuffle an assignment, for conciseness, and rename a variable tweaks: reshuffle and trim a comment, and remove unneeded pair of braces tweaks: reshuffle a statement, to have major initialization in nano.c tweaks: reshuffle some code, to avoid needlessly calling a function tweaks: reshuffle some conditions, to straighten the logic tweaks: reshuffle some lines, for esthetics tweaks: reshuffle some lines, to better separate the three cases tweaks: rewrap a few lines in old news items, for more balanced lines tweaks: separate a symbol from its definition by two spaces tweaks: shorten an error message, to be appropriate in all situations tweaks: shorten the name of a symbol, to match its bindable function tweaks: simplify an error message, by mentioning just the main point tweaks: simplify the counting of characters in a section tweaks: skip the conversion to multibyte for plain ASCII codes tweaks: slightly improve a comment and the ordering of some lines tweaks: slightly improve the grouping of shortcuts in some help texts tweaks: three escapes is the same as either zero escapes or one escape tweaks: trim an ASCII case, as the function is called only for UTF-8 tweaks: trim some oververbose comments -- they overshadow the code tweaks: uniformize some old translator credits tweaks: update a translator hint, and add another tweaks: update three translator hints, add two, and frob three strings tweaks: use a better symbol than 'ERR' to signify a valid hex digit tweaks: use knowledge of Unicode to skip the general multibyte conversion tweaks: use three switches instead of cascading ifs, for brevity undo: choose the proper x positions to place the cursor and rejoin lines undo: when undoing a line cut, place the cursor back where it was usage: unabbreviate option arguments where possible verbatim: show an error message when an invalid Unicode code is entered verbatim: turn bracketed-paste mode off while waiting for input Marco Diego Aurélio Mesquita (4): bindings: hard-bind the bookmark functions to M-Ins and M-PgUp/M-PgDn display: support the position indicator also when --softwrap is used files: make the M-F (New Buffer) toggle non-persistent new feature: bindable functions for toggling and jumping to "bookmarks" Michalis Kokologiannakis (3): files: improve the backup procedure to ensure no data is lost tweaks: adjust some indentation after the previous change tweaks: move the backup code to a separate function Pedro Victor de Brito Cordeiro (1): tweaks: make parameter names in prototypes match those in the definitions Ryan Westlund (2): syntax: go: highlight the chan keyword, and the special +build comment syntax: haskell: new file -- coloring rules for Haskell programs Changes between v4.8 and v4.9: ------------------------------ Benno Schulenberg (209): bindings: remove the translation of ^H to Backspace on the BSDs build: fix compilation for --enable-tiny --enable-justify build: restore non-UTF8 fallbacks, to allow compiling with --disable-utf8 build: update the conditional placement of the "Go To Line" menu item bump version numbers and add a news item for the 4.9 release chars: optimize a function for the most common blanks: space and tab copyright: update to the current year for significantly changed files cutting: let M-T cut a trailing empty line, but not nothing at all cutting: with --cutfromcursor, allow ^K to cut the penultimate empty line display: do not show a "[" double-width placeholder when softwrapping display: keep the help items aligned, by not writing too many characters docs: improve the descriptions of --softwrap and 'set softwrap' docs: mark bracketed pasting as done in the TODO list docs: mention that ^[ (Esc) is unbindable, and explain why docs: remove the note saying that nanorc files must be in Unix format docs: trim some TODO items, and condense several others docs: update the form of an option, --suspendable / 'set suspendable' docs: update the missed occurrences of --suspendable / 'set suspendable' feedback: give a clearer message when trying to justify an empty region feedback: make sure that a later message can overwrite a short warning files: be consistent in which code means "New File" files: don't check uninitialized memory when writing new file [valgrind] files: when piping, always pipe whatever was cut to the external command gnulib: update to its current upstream state help: do not break a line inside the 17-column keystrokes area help: increase the minimum help-text width from 32 to 40 columns input: accommodate silly emulators that have LF instead of CR in a paste input: after reallocating a string, do not write to its old address input: allocate sufficient bytes for entering a Unicode codepoint input: keep a multibyte character together during verbatim entry justify: do not copy too many bytes when trimming leading whitespace justify: do not crash when the user attempts to justify an empty region justify: do not take an empty line as template for first-line indentation justify: give the first line of a marked region its proper indentation justify: never break a line in leading whitespace justify: restore a region properly when it was marked backwards justify: skip over blanks after the region, to not skew the indentation justify: skip over in-line whitespace only, not over leading whitespace justify: trim prefixed whitespace when justifying a marked region justify: trim the leading blanks of a marked region at the right moment justify: when appropriate, move end point of marked region forward justify: when the cursor is at the left edge, keep it there locking: do not open an empty buffer when respecting the first lock file moving: do not put the cursor at end-of-line when in a help text options: rename --suspend to --suspendable, to make more sense prompt: insert a burst of bytes in one go instead of characterwise rcfile: allow alternate line endings in nanorc files rcfile: do not allow a regex for name, header, or magic to be empty rcfile: don't store a coloring rule before it is complete rcfile: rename bindable function 'suspendenable' to 'suspendable' rcfile: when a start= is not matched with an end=, abandon the whole rule rcfile: when finding a mistake, skip the rest of the line shutdown: don't refer to an open file when there aren't any softwrap: when typing goes beyond the bottom row, scroll just one row syntax: nanorc: colorize 'rawsequences', not the obsolete 'rebindkeypad' syntax: spec: add two missing % signs, and colorize also "%triggerprein" syntax: spec: colorize the date and author of changelog items differently syntax: spec: drop invalid parentheses after "Summary" tweaks: abort in three situations that should never occur tweaks: add a COUPLE_END undo item a bit later, instead of updating it tweaks: add a different helping variable tweaks: add a supporting variable, in order to condense some statements tweaks: add calls of die() for five theoretical programming mistakes tweaks: adjust some whitespace, reshuffle two ifs, and remove two braces tweaks: adjust the indentation after the previous change tweaks: always determine the second lead, to simplify the rewrap call tweaks: avoid a complaint about uninitialized memory [valgrind] tweaks: call add_undo() before the character is actually added tweaks: change a function to return the name of the lock file on success tweaks: change a function with two possible results to boolean tweaks: change an integer to a short, and reshuffle it for better packing tweaks: change another function with two possible results to boolean tweaks: check for a starting quote in one place instead of three tweaks: combine two ifs into one tweaks: condense a comment, reshuffle conditions, and remove unwanted one tweaks: condense a fragment of code tweaks: condense two fragments of code tweaks: convert integers to bytes in one place instead of two tweaks: copy and store a deleted character in a conciser manner tweaks: correct a typo, improve two indentations, and rewrap a line tweaks: correct two typos in a changelog, and drop a doubled word tweaks: create an undo item earlier, and discard it when needed tweaks: don't bother reallocating the line data when undoing a line join tweaks: do some text alignments properly: with spaces, not tabs tweaks: drop a check for something that will not occur tweaks: drop two comments that contain variable names tweaks: elide a function call, by copying a byte directly tweaks: elide an intermediate copy of a character during injection, twice tweaks: elide an intermediate copy of an added character tweaks: elide a parameter, and rename a variable tweaks: elide a supporting variable, to make four loops slightly faster tweaks: elide a variable and an unneeded iteration tweaks: elide one variable and three gotos tweaks: elide three unneeded #defines tweaks: elide two variables and their two assignments tweaks: exclude a function when compiled without spell-checking support tweaks: extend the undo data for deleting and backspacing more directly tweaks: factor out a three-line condition into a separate function tweaks: frob a statement, rewrap two lines, and remove a pair of braces tweaks: frob two statements, condense another, and add a comment tweaks: highlight keystrokes in the documentation more consistently tweaks: improve four comments, and condense two fragments of code tweaks: improve three comments, and reshuffle two declarations tweaks: improve two comments tweaks: improve two comments, and remove an unneeded one tweaks: inject the entire burst of bytes at once into the edit buffer tweaks: instead of swapping the end points later, assign them correctly tweaks: invert the logic of a symbol, to make more sense tweaks: make prompt-bar input more similar to edit-buffer input tweaks: make two conditions more direct, and thus elide two functions tweaks: mesh two bits of code together tweaks: move a function to after the one that it calls tweaks: move a function to before the one that calls it tweaks: move a function to before the one that calls it tweaks: move a function to its proper place in the order of things tweaks: move a function to where it is used tweaks: move another function to where it is used tweaks: move some definitions closer to where they are used tweaks: move two functions to before the ones that call them tweaks: normalize a translator hint, update one, and add another tweaks: normalize the indentation after the previous change tweaks: normalize the indentation after the previous change tweaks: normalize the indentation after the previous two changes tweaks: pull the NUL-terminating of a string into a function tweaks: rearrange a case item, so that PASTE is always after CUT tweaks: rearrange some conditions, for compactness tweaks: relocate a function to before its callers tweaks: relocate eleven functions to before they are called tweaks: remove a now-unused helper function tweaks: remove an unneeded indirection tweaks: remove a redundant assignment tweaks: remove a redundant statement, a spurious reference to 'cutbottom' tweaks: remove a superfluous assignment, and reshuffle a call tweaks: remove non-UTF-8 code from three more functions tweaks: remove some redundant filtering, and thus elide a parameter tweaks: remove some unneeded braces, not used elsewhere either tweaks: remove two redundant case labels tweaks: remove two superfluous checks tweaks: remove two superfluous conditions tweaks: rename a constant, and rename and relocate a function tweaks: rename a function, and condense a few comments tweaks: rename a function, and split a variable into two separate ones tweaks: rename a function, to be more fitting, and improve some comments tweaks: rename a function, to remove an obscuring abbreviation tweaks: rename another function, to remove the obscuring abbreviation tweaks: rename a parameter and a variable, and reword two comments tweaks: rename a symbol, to match the corresponding renamed option tweaks: rename a variable, and add a helping one tweaks: rename a variable, and reshuffle a declaration tweaks: rename a variable, away from a single letter tweaks: rename a variable, away from a single letter tweaks: rename a variable, for aptness tweaks: rename a variable, reshuffle an assignment, and change a code tweaks: rename a variable, to be a bit clearer tweaks: rename a variable, to get out of the way of a later rename tweaks: rename a variable, to not be a substring of a function name tweaks: rename four more functions, to get rid of an abbreviation tweaks: rename four parameters, to be more distinct and telling tweaks: rename four variables, to be a bit more telling tweaks: rename to the same name two variables that have the same role tweaks: rename two elements of an undo record, to be more telling tweaks: rename two functions, for shortness tweaks: rename two functions, to match the style of others tweaks: rename two more elements of an undo record, for symmetry tweaks: rename two more functions, to match the style of others tweaks: rename two more variables, to harmonize with two others tweaks: rename two parameters, to not overlap with other names tweaks: rename two symbols, to be more precise tweaks: rename two variables, and frob four comments tweaks: rename two variables, and reshuffle a few things tweaks: rename two variables, for distinctiveness tweaks: rename two variables, to be different or for more contrast tweaks: rename two variables, to harmonize with two others tweaks: rename two variables, to suit both the marked and unmarked case tweaks: reorder a case item, to have SPLIT_BEGIN always before SPLIT_END tweaks: reshuffle a condition, for compacter code tweaks: reshuffle a condition, for compactness tweaks: reshuffle a few declarations and assignments tweaks: reshuffle an assignment and a free() tweaks: reshuffle some code, in preparation for improving it tweaks: reshuffle some stuff, to have related things together tweaks: reshuffle the setting of the starting point of a cut tweaks: reshuffle the trimming of leading whitespace, for compactness tweaks: reshuffle two declarations plus a fragment of code tweaks: simplify the undoing and redoing of an tweaks: strip a parameter that is equivalent to 'openfile' for both calls tweaks: strip a parameter that is TRUE for both calls tweaks: swap the use of 'head' and 'tail' for CUT and PASTE undo items tweaks: trim an unnecessary detail from an error message tweaks: unabbreviate the name of a variable tweaks: unwrap four lines, and use explicit codes where possible tweaks: update several comments after the previous changes tweaks: update some comments after the previous changes tweaks: use a symbol instead of a number, and drop two unneeded casts tweaks: use spaces when aligning things, not tabs tweaks: use the variable that suits 'END' better tweaks: weld two fragments together, twice, by eliding an unneeded 'if' tweaks: when appropriate, move starting point of justified region back tweaks: when extending the marked region, include also exotic blanks tweaks: when undoing an addition or redoing a deletion, do not reallocate undo: do not mark the buffer as modified when pasting back nothing undo: do not try to copy a cutbuffer that is NULL undo: do not try to paste back an empty cutbuffer undo: for an automatic hard-wrap, store the correct previous buffer size undo: store the cursor row, for redoing filtering & justification better undo: treat a cut-until-end-of-buffer like a backward marked region undo: use the correct original fusion point when unjoining two lines undo: when undoing a paste or an insertion, remove an added magic line usage: improve the description of --softwrap Neal Gompa (1): syntax: spec: add some keywords that were added in RPM 4.15 and 4.13 Saagar Jha (1): rcfile: fix an out-of-bounds read on empty lines Changes between v4.7 and v4.8: ------------------------------ Benno Schulenberg (166): bindings: allow to bind shifted Meta+letter combinations with Sh-M-X bindings: allow to rebind also ^`, although it is synonymous with ^Space bindings: do not show the Full-Justify keystroke when in View mode bindings: force the first letter in a key name to uppercase build: exclude bracketed pasting from the tiny version build: exclude option '-g' when configured without browser and help build: exclude the escape sequences for F13...F16 from the tiny version build: fix compilation for --enable-{tiny,help,multibuffer} build: restrict the use of --with-slang to together with --enable-tiny bump version numbers and add a news item for the 4.8 release copyright: update the years for significantly changed files copyright: update the years for the FSF display: adjust line and column count upon a resize also when using Slang display: clear the help lines before a briefly shown warning display: don't let a message write over the second help line display: ensure the guiding stripe can be shown when not softwrapping display: exclude a bit of feedback from the tiny version display: show the cursor during suspension also when built with Slang display: skip zero-width characters on a Linux console, to avoid a mess docs: add a FAQ item about a self-compiled nano not reading /etc/nanorc docs: document the new -f/--rcfile option docs: document the new Sh-M-X format for binding docs: for the alternative bindings, rebind ^C only in the main menu docs: improve the description of which rc-files are read during startup docs: mention in the FAQ that auto-indentation is suppressed when pasting docs: mention that -D/--boldtext gets overridden by some nanorc options docs: put the three new behaviors in a bulleted list, to catch the eye docs: stop saying that 'set fill' enables hard-wrapping -- it does not docs: use more generally available arrows in the cheatsheet feedback: ask a clearer question when a valid lock file is encountered feedback: report Ctrl+Alt keystrokes as unbindable feedback: restore a message that can occur in help viewer or file browser files: alert the user afterward when an overwritten file is being edited files: revert the previous commit, as the extra warning is annoying files: warn doubly when the user is about to overwrite an existing file files: write a lock file also for a new file and when the name changed gnulib: update to its current upstream state help: don't waste the last column in the help viewer on narrow terminals help: increase the minimum help-text width from 24 to 32 columns help: prevent double spaces from protruding across the right edge help: when a key description wraps, indent its wrapped part input: consume and ignore the raw escape sequences for F17 to F24 input: correct the escape sequence for PageUp/PageDown on Eterm/Urxvt input: Ctrl+arrow is "Esc O x" on Eterm, as on rxvt -- not "Esc o x" input: discard partial sequences that Slang produces for F17 to F24 input: do not auto-indent when something is pasted into nano from outside input: don't discard the first keystroke after a resize when using Slang input: filter out Ctrl+Meta keystrokes, as they can never be shortcuts input: ignore bracketed pastes in help viewer and file browser input: ignore modifiers on a VT while executing a macro or a string bind input: prevent unintentional marking of text for shifted Meta keystrokes input: read in an external paste in one go, to allow undoing with one M-U input: recognize the raw escape sequences for F13 to F16 on xterm too locking: accept a minimal amount of data, enough for PID plus username locking: avoid crashing when there is a problem writing the lock file locking: check two magic bytes, to verify that it is a lock file locking: do not write a lock file when in view mode locking: when a lock file is unreadable, open the file itself anyway locking: when finding a lock file at startup, quit when user cancels new feature: allow specifying a custom nanorc file on the command line pasting: retain the mark's position when it was set at the cursor prompt: for a Yes-No-All, accept the first character of an external paste rcfile: do set the meta flag for plain combinations rcfile: require "bright", "start=", and "end=" to be in lowercase too rcfile: unbind keys by their key code instead of by their key string softwrap: suppress the guiding stripe on unaffected chunks speller: avoid messing up the screen when an unknown locale is used suspension: put in an extra terminal-initialization call for Slang syntax: nanohelp, nanorc: colorize the Sh-M-X format as a valid key name syntax: nanorc: colorize all-lowercase Meta key binds as valid too tweaks: add a little change that was overlooked in the previous commit tweaks: add an error message for something that should never occur tweaks: adjust or reword a few items in the FAQ tweaks: adjust the indentation after the previous change tweaks: allocate the lock data only when ready to write them tweaks: avoid analyzing the key string when the target key code is known tweaks: avoid determining the key code from the key string twice tweaks: avoid fiddling with the keybuffer when it's not needed tweaks: comment fully, so that all handled escape sequences are findable tweaks: condense a fragment of code tweaks: condense five more fragments of repetitious code tweaks: condense three comments to one, and do the masking more directly tweaks: condense three fragments of repetitious code tweaks: condense two comments, and reshuffle an #endif tweaks: correct a comment tweaks: correct a couple of comments about escape sequences tweaks: correct the description of what nano writes into the lock file tweaks: delete some fragments of code that have become irrelevant tweaks: do not leak a file descriptor when fdopen() fails tweaks: don't bother including Haiku escape sequences in the tiny version tweaks: don't enable bracketed pasting when not handling such pastes tweaks: drop a message that will never be seen tweaks: drop an unneeded call of keypad() -- we never read from topwin tweaks: drop a pointless suffix from two function names tweaks: elide a function that has become too small for its two calls tweaks: elide a helper function, in preparation for an improvement tweaks: elide an 'if', by moving the relevant code to a better place tweaks: elide a small function, as it's in fact needed just once tweaks: elide a somewhat costly call by remembering some state tweaks: elide a variable, and rename its sister tweaks: elide three checks of a shortcut's meta flag tweaks: ensure that editor name and user name are NUL terminated tweaks: exclude an unneeded fragment of code from the tiny version tweaks: exclude two unneeded fragments of code from the tiny version tweaks: free two strings as soon as they are no longer needed tweaks: frob a couple of indentations and white lines tweaks: fuse two nearly identical functions into a single one tweaks: gather four calls that are always done together into a function tweaks: harmonize the amount of lock data that we read and write tweaks: improve a comment by indirectly referring to the ncurses docs tweaks: in comments, reword "titlebar" and "statusbar" to two words each tweaks: initialize three booleans straightaway, when they are declared tweaks: initialize three more booleans straightaway, at declaration tweaks: judge from the key code itself whether it is a Meta keystroke tweaks: make a couple of comments more precise tweaks: move a function to after the one that it calls tweaks: move a function to be before the ones that call it tweaks: move a function to before the one that calls it tweaks: move a function to related ones, and after one that it calls tweaks: move a function to right before the one that calls it tweaks: move another function to after the one that it calls tweaks: move another function to before the one that calls it tweaks: move another function, to group the deleting ones together tweaks: move three functions to the file where they are mainly used tweaks: rearrange a few global variables, to group things better tweaks: recompute the wrapping point just once tweaks: reduce the scope of a variable, and reshuffle a declaration tweaks: reduce the scope of two constants and of four variables tweaks: reformat a comment, and resuffle a line to match byte order tweaks: remove a feedback message that is never shown tweaks: remove a redundant call, as there is nothing to free there tweaks: remove a superfluous check tweaks: remove some superfluous conditions for rewriting a lock file tweaks: remove the now-unneeded code related to bracketed pasting tweaks: remove the now-unused meta flag from 'keystruct' tweaks: remove two superfluous assignments, and rename a variable tweaks: rename a function and its parameter, to be more fitting tweaks: rename a function, to be a bit more expressive tweaks: rename a function, to make it not contain the name of another tweaks: rename a parameter and invert its logic, and correct a comment tweaks: rename five variables, away from a single letter tweaks: rename two functions, to make more sense tweaks: rename two parameters, to be more general and to sound shorter tweaks: rename two variables, to make more sense tweaks: renumber some FAQ items in preparation for adding another tweaks: reorder two symbols tweaks: reshuffle some assignments for a return value tweaks: reshuffle some declarations tweaks: reshuffle some declarations, and expand a few variable names tweaks: reshuffle some lines, to avoid tallying the menus when not needed tweaks: reshuffle some lines, to group all ignored keystrokes together tweaks: reshuffle three lines, to make the grouping tighther tweaks: reshuffle two lines, to do the linking first, then the content tweaks: reword two comments, and rewrap another tweaks: rewrap a comment and a line, and reshuffle a fragment of code tweaks: rewrap two lines, for consistency with similar lines tweaks: rewrite the same file name into the lock file as the first time tweaks: slightly condense a function by conflating case tweaks: stop recognizing escape sequences for a key without meaning tweaks: suggest a few more alternative key bindings and unbindings tweaks: take just one shot at reading the lock file, and correct a type tweaks: trim some excessive error checking and key-name frobbing tweaks: tumble three conditions, for consistency in comparisons tweaks: unabbreviate "argument" in the documentation tweaks: use a simple subtraction instead of a function call usage: improve the description of --restricted and --quickblank Brand Huntsman (2): input: beep when invalid key is pressed at yesno prompt or in linter menu input: recognize the start and stop sequences of a bracketed paste Changes between v4.6 and v4.7: ------------------------------ Benno Schulenberg (39): build: add the uploading of PDF and cheatsheet to the release script build: avoid three compiler warnings when using gcc-9.2 or newer build: fix compilation for --enable-tiny --enable-wrapping build: fix compilation on macOS, where 'st_mtim' is unknown build: fix compilation when configured with --disable-justify bump version numbers and add a news item for the 4.7 release display: don't color the space that separates line numbers from text docs: add or improve the 'description' meta tag in the two HTML pages docs: add the 'lang' attribute in the right place to the two HTML pages docs: mention that all keywords in a nanorc file should be in lowercase docs: mention that a negative number after "+" counts from the end gnulib: update to its current upstream state input: make indent only when mark and cursor are on different lines justify: distinguish between tabs and spaces when comparing indentation justify: treat consecutive indentations that look the same as the same linter: beep when trying to go beyond first or last message rcfile: accept also function names and menu names only in lowercase rcfile: accept only keywords in all lowercase, for speed of comparison rcfile: demand that function 'exit' is bound in the file browser syntax: nanohelp: colorize also ^/ as a possible keystroke syntax: sh: recognize shell rc files also in dedicated directories tweaks: avoid using strlen() where it is not needed tweaks: drop M-Space and ^Space from the browser's key list tweaks: improve two comments and the ordering of some operands tweaks: move three functions to the file where they are used tweaks: optimize the trimming of trailing whitespace tweaks: remove a stray space tweaks: rename a function, to get out of the way for another rename tweaks: rename a function, to get rid of a useless suffix tweaks: reshuffle a few lines, for brevity or speed or consistency tweaks: reshuffle a few lines, for symmetry with the preceding function tweaks: reshuffle a fragment of code, for efficiency tweaks: reshuffle and rename a few things, to elide duplication tweaks: reshuffle an item, to avoid a lone 'else' tweaks: reshuffle two declarations, for compactness tweaks: slightly streamline the search for a possible wrapping point tweaks: trim or adjust some whitespace in HTML, and add two keywords tweaks: unwrap a few lines, and move some strings to among their peers wrapping: never break in the quoting part nor in the indentation part Changes between v4.5 and v4.6: ------------------------------ Benno Schulenberg (128): bindings: allow to rebind ^/, even though it is synonymous with ^_ bindings: don't hard-bind ^H in the help viewer or the file browser bindings: the 'all' keyword should encompass the browser menu too bindings: the 'all' keyword should include the browser menu always build: fix compilation for --enable-tiny --enable-histories build: fix compilation when configured with --disable-color build: slightly speed up the compilation of the tiny version bump version numbers and add a news item for the 4.6 release chars: add a faster version of the character-parsing function commands: rename 'fixer' to 'formatter', to be less misleading cutting: do nothing when trying to chop a word leftward at start of file display: do refresh the edit window when exiting from the help viewer docs: add a note saying that rebinding ^M or ^I is not advisable docs: add the M-F and M-N keystrokes to the cheatsheet docs: adjust the compilation instructions to two-digit version numbers docs: correct the description of the 'spell' menu docs: document the 'fixer' command, a per-syntax content arranger docs: mention that color rules are applied in the order they are listed docs: mention that 'hunspell' is now the first default spelling program docs: mention that the 'nopauses' option is obsolete docs: remove some excessive detail from the sample nanorc file docs: remove the note about the formatter having been removed feedback: say it when spell check or manipulation did not change anything files: distinguish between read error and write error when prepending files: don't mention the name of the temp file when reading goes wrong files: when opening a file for copying, it should NOT be created formatter: accept the formatted result also upon a nonzero exit status formatter: don't let output from the program pollute the screen gnulib: update to its current upstream state history: don't wait when there is something wrong with the history files linter: report it as an error when running the linting program fails rcfile: allow binding also F17...F24 rcfile: process extensions to file-matching commands straightaway restored feature: a per-syntax 'fixer' command that processes the buffer softwrap: when switching to another buffer, re-align the starting column speller: prefer 'hunspell' over 'spell', because it can handle UTF-8 speller: when 'spell' is not found, try running 'hunspell -l' instead statusbar: show only the first error message, with dots to indicate more syntax: c: recognize some C++ header files by their Emacs modeline syntax: default: don't colorize stuff between two pairs of brackets syntax: html: add a formatter command, making use of 'tidy' syntax: html: colorize only full attributes, and colorize strings later syntax: javascript: colorize also special values 'null' and 'undefined' syntax: javascript: colorize the boolean values 'true' and 'false' too syntax: nanorc: colorize all arguments of 'fixer' and 'linter' as valid syntax: nanorc: colorize in bright red everything that is invalid syntax: nanorc: colorize only lowercase keywords as valid syntax: nanorc: colorize the 'fixer' command as valid syntax: ruby: colorize also lowercase global/instance variables syntaxes: put the 'linter' and 'formatter' commands on a separate line tweaks: add a helper function without the ubiquitous NULL argument tweaks: add a local variable, for clarity, to not preuse another one tweaks: add some "fall-through" comments, and reshuffle some breaks tweaks: add two translator hints tweaks: adjust the indentation after the previous change tweaks: adjust the indentation after the previous change tweaks: adjust the indentation after the previous change, and another tweaks: adjust two comments, to better fit the actual functions tweaks: avoid setting and resetting a variable when there is no need tweaks: avoid three unneeded calls of umask() in the normal case tweaks: be explicit about which program complained tweaks: check the return value of copy_file() also after its other uses tweaks: close the unused reading ends of two more output pipes tweaks: condense a fragment of code by making use of a helper function tweaks: condense or improve some comments tweaks: condense two comments, and rename two parameters tweaks: condense two comments, and rewrap a line tweaks: correct a comment, and retype a variable tweaks: die on an impossible condition -- to be removed later tweaks: don't do in the parent something that only the child needs tweaks: don't wrap calls of statusline() that slightly overshoot 80 cols tweaks: drop the unneeded closing of descriptors when exiting anyway tweaks: elide a duplicate opening of the existing file when prepending tweaks: elide a function call for the plain ASCII case tweaks: elide another two calls of umask(), and rename two variables tweaks: elide an unneeded and leaky function tweaks: elide an unneeded check when making a backup tweaks: elide a variable, and add a condition to elide an assignment tweaks: elide a variable that is the same as another tweaks: exclude two fragments of code from the tiny version tweaks: fuse two regexes into one tweaks: group the closing of descriptors together, for compactness tweaks: group the closing of two descriptors, and reword two comments tweaks: harmonize a message with another tweaks: improve some comments, and trim some repetitive ones tweaks: make a function do a check so its calls don't need to tweaks: mark two strings for translation tweaks: move a call of umask() closer to where it is relevant tweaks: move two functions to after the one that they make use of tweaks: normalize the indentation after the previous change tweaks: order two functions more sensibly tweaks: pass an empty string as an answer instead of a NULL pointer tweaks: pass an empty string for copying instead of a non-existent one tweaks: pass any special undo/redo messages to the add_undo() function tweaks: remove a pointless updating of the title bar tweaks: remove a redundant check for an existing emergency file tweaks: remove the superfluous closing of a file descriptor tweaks: remove two pointless re-inclusion guards tweaks: remove two superfluous conditions when prepending tweaks: rename a function and add a parameter, so it becomes more general tweaks: rename a function, and elide a parameter that is always NULL tweaks: rename a function and elide its first parameter tweaks: rename a local variable, to not shadow another tweaks: rename a variable, to be a bit more fitting tweaks: rename a variable, to be distinct and visible tweaks: rename three variables, and reshuffle some lines tweaks: rename three variables, to be consistent with other linestructs tweaks: rename three variables, to be more descriptive tweaks: rename three variables, to match others elsewhere tweaks: rename two parameters, for contrast and to match others tweaks: rename two parameters plus a variable, to match others tweaks: rename two variables, and add a third, for more contrast tweaks: reshuffle a few declarations, and reduce the scope of one tweaks: reshuffle a fragment of code into two alternatives tweaks: reshuffle an 'if' to avoid a negation, and improve a comment tweaks: reshuffle some declarations, and rename a variable tweaks: reword an undo/redo string that was overlooked during the rename tweaks: silence a warning when configured with --enable-tiny tweaks: simplify the opening of files when prepending tweaks: slightly reword some fragments in the manual's rebinding section tweaks: use a better variable name for the argument of an option tweaks: use a literal NULL instead of a variable that is NULL tweaks: use a simpler positive/negative check for after copy_file() tweaks: use a string-copy function that checks for out-of-memory tweaks: use the given string instead of the found match, for clarity undo: don't try to copy a string that doesn't exist undo: put the cursor back on the original row for a full-buffer operation utils: don't accept NULL for the string to be copied Jeroen Roovers (1): syntax: gentoo: highlight the BDEPEND variable as well Changes between v4.4 and v4.5: ------------------------------ Benno Schulenberg (60): bindings: add a dedicated keycode for for when a region is marked bump version numbers and add a news item for the 4.5 release color: don't concatenate an absolute path with the working directory docs: add two examples of the 'tabgives' command to the sample nanorc docs: describe the new syntax-specific 'tabgives' command docs: mark the undoing of justifications as done in the TODO list docs: mention that gcc must be at least version 5.0 gnulib: update to its current upstream state mouse: make the clickable width of menu items more consistent new feature: a 'tabgives' command to define what the Tab key produces search: after search-at-startup, store the column (for vertical movement) tweaks: add a translator hint, and correct two others tweaks: add some translator hints, be more precise on permissible length tweaks: add two hints for translators, to try and help avoid mistakes tweaks: adjust indentation after previous change, reshuffle declarations tweaks: avoid a comparison between signed and unsigned [coverity] tweaks: avoid leaking memory when finding an invalid string [coverity] tweaks: avoid recomputing a maximum value every time round the loop tweaks: don't burden all menus with something meant for the WriteOut menu tweaks: elide a function from a non-UTF8 build tweaks: elide two multiplications with something that is always 1 tweaks: frob a few comments tweaks: improve a bunch of comments, and reshuffle some declarations tweaks: improve a handful of comments, and reduce the needed padding tweaks: mark as 'const' a parameter that takes fixed strings [coverity] tweaks: meld two calls of free() into a single one, to elide an 'else' tweaks: move a fragment of common code into the appropriate function tweaks: move a function to a better file, to be amongst its kind tweaks: move a function to before its callers and next to its kind tweaks: move two functions to after the ones that they call tweaks: remove some timing code that has served its purpose tweaks: remove two superfluous macros, as sizeof(char) is always 1 tweaks: rename a function, to be a bit more fitting tweaks: rename another type, again to better fit the general pattern tweaks: rename another type, to also better fit the general pattern tweaks: rename another variable, for a better fit tweaks: rename a type, to better fit the general pattern tweaks: rename a variable, normalize a comment, and reshuffle a free() tweaks: rename a variable, to be more compact tweaks: rename three variables, for contrast and more sense tweaks: rename three variables, for more contrast tweaks: rename three variables, to better indicate what they hold tweaks: rename two variables, away from single letters tweaks: rename two variables, to better describe what they contain tweaks: reshuffle a fragment, to group some toggles together tweaks: reshuffle a line, to group things better tweaks: reshuffle some lines, to elide an unneeded assignment tweaks: reshuffle some lines, to have the same order as elsewhere tweaks: reshuffle two fragments, to group things better tweaks: rewrap a line, reshuffle a declaration, and improve some comments tweaks: simplify a calculation, as done elsewhere tweaks: simplify the determination of a canonical path tweaks: sort two keywords strictly alphabetically tweaks: speed up determining the width of plain ASCII characters tweaks: speed up the counting of the menu entries to be shown tweaks: use a more efficient way to skip storing an empty file name tweaks: use an early return when there is no tilde tweaks: use 'void' in prototypes of parameterless functions [coverity] usage: mark the -J/--guidestripe option plus argument as translatable usage: properly align --help output also when it has accented characters Brand Huntsman (1): search: accept a match at start of file when searching from command line Dirkjan Ochtman (1): syntax: rust: add the words reserved in 2018, and remove unreserved ones Changes between v4.3 and v4.4: ------------------------------ Benno Schulenberg (53): browser: draw a bar of spaces only where needed -- for the selected item build: exclude the search-at-startup feature from the tiny version bump version numbers and add a news item for the 4.4 release copying: do not prevent M-6 from copying emptiness into the cutbuffer display: blank the status bar on a successful cut or paste display: clear the remainder of a row only when there actually is some display: don't clear a row beforehand -- just clear the remainder display: use a somewhat faster method to clear a row display: when linenumbering, correctly spotlight text that spans two rows display: where needed, use slow blanking, but elsewhere do it much faster docs: change a few URLs over to https, and rewrap a couple of NEWS items docs: document the search-at-startup feature (+/string or +?string) docs: make the synopsis of --speller and 'set speller' more accurate docs: mention the M-N toggle instead of the obsolete M-# one docs: slightly reword some of the descriptions around syntax highlighting docs: slightly reword the descriptions of most configure options docs: stop mentioning the 'unjustify' function, as it no longer exists gnulib: update to its current upstream state new document: a condensed overview of nano's shortcut keystrokes new feature: allow specifying a search string to "jump to" at startup rcfile: properly handle an empty syntax before an 'include' statement scrolling: don't overscroll when the edit window has just one row search: don't wipe the status bar at startup when there was an error search: wipe the status bar before searching again (M-W / M-Q) syntax: c: allow an underscore in lowercase type names syntax: default: colorize bracketed section headers in some config files syntaxes: change some unneeded 'icolor' commands to 'color' commands syntaxes: recognize .ctp extension as a PHP file, and .cu as a C/C++ file syntax: perl: avoid recognizing embedded hash signs as a comment starter syntax: perl: avoid upsetting older glibcs with crafty range expression syntax: perl: don't color the character after a variable name syntax: po: colorize numbers only when they form a self-contained word text: copy leading quote characters when automatic hard-wrapping occurs tweaks: add a translator hint, to clarify four short words tweaks: call the correct lighting function directly when softwrapping tweaks: condense some comments, and drop two unneeded initializations tweaks: drop two parameters that are no longer needed tweaks: improve a comment, and drop a superfluous one tweaks: improve a handful of comments tweaks: make a function name unique, to not overlap with others tweaks: move a call from two different places to a single place tweaks: move a function to before the first one that calls it tweaks: move a general function to a better place tweaks: remove a saving and restoring that has become superfluous tweaks: rename a function, to suit better, and reshuffle its parameters tweaks: rename a parameter in three functions, to say what it points to tweaks: reshuffle an assignment, and trim some excessive blank lines tweaks: reshuffle an 'if' out of a function, and rename the function tweaks: reword and condense two comments, and correct another tweaks: rewrap two lines, and reshuffle some logic to make more sense tweaks: shorten two messages that translators tend to make too long tweaks: try the allocation of a multidata cache just once per line tweaks: when precalculating, allocate all the cache space upfront Brand Huntsman (3): rcfile: for an empty syntax, show the line number of the 'syntax' command rcfile: report the correct command location for an invalid 'include' search: accept toggles for case and regex when searching at startup Changes between v4.2 and v4.3: ------------------------------ Benno Schulenberg (235): bindings: at a Yes-No prompt, accept also ^N and ^Q for "No" bindings: at a Yes-No prompt, accept also ^Y for "Yes" bindings: bind the Alt+arrow keystrokes also in non-UTF-8 locales browser: don't show a mistaken message when exiting from help viewer build: avoid a warning on FreeBSD, OpenBSD, and Alpine build: avoid a warning when using --disable-utf8 build: exclude the ability to open a FIFO from the tiny version build: fix compilation on another system build: fix compilation when configured with --disable-color build: fix compilation when configured with --enable-tiny build: move an #include to where it is needed build: remove two #includes that don't seem to be needed bump version numbers and add a news item for the 4.3 release chars: create a dedicated function for getting the length of a character chars: redo the speedup for plain ASCII from three commits ago chars: speed up case-insensitive searching by roughly one percent chars: speed up the determination of length and width for plain ASCII copying: let a copy command break a chain of cut or zap commands copying: make M-6 do nothing when at end of buffer copying: scroll just one line when M-6 is pressed on the bottom row cutting: clear the cutbuffer when the previous operation was copying cutting: ignore the mark when a word is deleted display: properly show all characters in a non-UTF-8 build docs: add a light warning to the explanation of --nonewlines docs: adjust the wording of the README to be factually correct docs: clarify that in nano regexes are extended regular expressions docs: mention the default value for 'errorcolor' docs: note Brand as the author of the delayed syntax parsing docs: note David as author of undoable indenting and undoable justifying docs: remove "--" from the default value of 'quotestr' docs: say thanks to the Korean translator, and trim a double space docs: show double quotes where they are needed docs: slightly reword the notice about the changed defaults since 4.0 feedback: don't clear off possible error messages after a spell check feedback: don't try to represent keys outside of the seven-bit range feedback: make an error check work also when curses hasn't started yet feedback: print helpful message only when data comes from keyboard feedback: show a more fitting message when opening a FIFO is interrupted feedback: show an appropriate message when reading a file was cut short feedback: treat statusline() being called outside of curses mode as a bug feedback: when the last line is empty, don't include it in the count files: allow a given file to be a special file but not a directory files: allow to abort the reading of slow files with Ctrl+C files: allow to interrupt the opening of a FIFO for writing with Ctrl+C files: allow to interrupt the opening of a FIFO with Ctrl+C files: check for writability by the access bits, not by trying to append files: don't close a newly-created buffer when it is the only one files: don't save the state of the terminal a second time files: don't say "Error...: Success" when aborting after resizing files: give feedback while waiting for a FIFO to open up files: suppress feedback when writing an emergency or temporary file files: try matching a syntax after scooping data from standard input files: when needed, reconnect the keyboard and reenter curses mode gnulib: update to its current upstream state help: don't check for confinement when opening a temporary help-text file help: don't cycle through the buffers for every resizing step help: don't show Alt+Left and Alt+Right when running on a Linux console help: make the column for the first keystroke a little wider help: write the text directly into a new buffer, without using a tempfile justify: remove "--" from the quoting regex, to avoid false paragraphs oops: apparently the line numbers in the cutbuffer do matter rcfile: at terminating points, verify that a defined syntax is not empty rcfile: check for missing color commands only when a syntax is still open rcfile: close off a syntax when a non-syntax command is encountered rcfile: disallow extending a syntax that is defined in a main nanorc rcfile: fully read each included file, so all its syntaxes are seen search: stay in the Search menu when trying to Replace in view mode softwrap: use smooth scrolling when softwrapping is toggled on speller: be more concise and to the point when something goes wrong speller: don't crash when the spell-checked tempfile cannot be opened speller: ensure that a Shift-selected region is retained speller: when something goes wrong with 'sort', do not blame 'spell' startup: remove the now-unneeded workaround for a SIGWINCH during input startup: resave the terminal's state only when there were no signals syntax: po: colorize also escaped hex and octal codes syntax: python: avoid miscoloring stuff between two empty strings tweaks: add a missing forward declaration of make_new_buffer() tweaks: add a pair of braces, to silence a compiler warning tweaks: add a warning for something that shouldn't occur tweaks: adjust a comment and drop two others, and reshuffle two lines tweaks: adjust some indentation after the previous change tweaks: adjust some whitespace and rewrap a few lines tweaks: adjust the indentation after the previous change tweaks: adjust the indentation after the previous change tweaks: avoid an unneeded, extra stat() for temporary files tweaks: avoid parsing a character twice tweaks: be more sparing in redrawing things when exiting from help viewer tweaks: change a function to void, to make things more direct tweaks: check in a single place for files that should not be opened tweaks: close a buffer differently and elide a parameter tweaks: condense a comment and reshuffle a couple of lines tweaks: condense a couple of comments, and reshuffle a line tweaks: condense the setup of the two signal handlers for Ctrl+C tweaks: condense two comments, and normalize the whitespace of a label tweaks: consistently report failures to fork (and the like) as errors tweaks: delete a leftover tweaks: delete a now-unused function tweaks: delete a now-unused function tweaks: don't bother calling mblen() in a non-UTF-8 build tweaks: don't bother checking the return value of wait() tweaks: don't bother keeping track of whether a squeezed line has shrunk tweaks: don't bother renumbering the lines in the cutbuffer tweaks: don't bother saving and restoring 'cutbottom' all the time tweaks: don't bother to free the content of 'extendsyntax' commands tweaks: don't check the user's nanorc file for accessibility twice tweaks: drop an unneeded parameter from open_file() tweaks: drop a useless tidying-up call, as spelling does not use regexes tweaks: drop most of the remaining debugging code, and some timing code tweaks: drop some checks that were made redundant by the previous commit tweaks: drop two checks that were made redundant by the previous commit tweaks: elide a function that is an amalgam of three others tweaks: elide a function that is called in just one place tweaks: elide a function that is used just once tweaks: elide another parameter, and rename the function to match tweaks: elide an unneeded, duplicate stat() for the FIFO check tweaks: elide an unneeded 'if' and 'break' tweaks: elide an unneeded variable tweaks: elide a parameter and a return value tweaks: elide a pre-processor #else clause, by using braces instead tweaks: elide a variable, drop a comment, and remove unneeded braces tweaks: elide two unneeded variables tweaks: enforce the miminum amount of scrolling in a simpler way tweaks: exclude a bug check from the tiny version tweaks: exclude another bug check from the tiny version tweaks: factor out a fragment of code that is repeated three times tweaks: factor out the installing and restoring of the ^C signal handler tweaks: improve a couple of comments tweaks: improve a handful of comments tweaks: improve some comments, reshuffle a line, and rename a variable tweaks: include the enabling of SIGINT into the tiny version tweaks: invert a condition, in order to return earlier tweaks: invert two conditions, in order to elide an extra variable tweaks: just mark four rcfile errors for translation, like the others tweaks: make better use of two variables, and reshuffle two comments tweaks: merge two functions, as the first is called just once tweaks: merge two functions, as the one is used only by the other tweaks: merge two very similar functions into a single one tweaks: move a bit of timing code to where it will be needed tweaks: move a function to the file where it is used tweaks: move an assignment that is useful only when searching forward tweaks: move a syntax check to a better place, to reduce duplication tweaks: move the tyding-up-after-a-search to a single exit point tweaks: normalize the indentation after the previous two changes tweaks: place a function better, and reduce some comments to a single one tweaks: put some timing code back into the search function tweaks: really don't bother renumbering the lines in the cutbuffer tweaks: reduce a bit of mark-adjusting code to its essence tweaks: reduce the scope of a variable, and let the compiler zero it tweaks: remove a bit of redundant code tweaks: remove a check that is no longer relevant tweaks: remove a condition that has become superfluous tweaks: remove an unneeded "closing" of a syntax after extending it tweaks: remove an unneeded setting and unsetting of a flag tweaks: remove a superfluous and ineffective assignment tweaks: remove a superfluous condition, in three places tweaks: remove four unneeded pre-processor directives tweaks: remove some unneeded braces, and reshuffle for more symmetry tweaks: remove the two remaining handfuls of asserts tweaks: remove two more unneeded assignments tweaks: remove two unneeded assignments, and improve a comment tweaks: remove two unneeded checks for NULL tweaks: rename a bunch of variables, to become identical to others tweaks: rename a function and a variable, for contrast and variety tweaks: rename a function and its parameters, to be more fitting tweaks: rename a function, to be clearer and to stop using an old abbrev tweaks: rename a function, to be more fitting tweaks: rename a function, to better indicate what it does tweaks: rename a function, to better suit what it does tweaks: rename a parameter and a variable, to be more distinct tweaks: rename a struct element, to be distinct tweaks: rename a type, for more contrast tweaks: rename a type, to make more sense tweaks: rename a variable, reduce its scope, and use it consistently tweaks: rename a variable, reshuffle declarations, and drop an assert tweaks: rename a variable, to be shorter tweaks: rename a variable, to better indicate it contains two characters tweaks: rename a variable, to better suit its counterpart tweaks: rename a variable, to fit a bit better tweaks: rename a variable, to fit a little better tweaks: rename a variable, to get out of the way of the next commit tweaks: rename a variable, to match another with the same meaning tweaks: rename a variable, to match the style of its brothers tweaks: rename four elements of the holder struct, for more contrast tweaks: rename some single-letter variables to the same significant word tweaks: rename three variables, to get rid of a suffix or an underscore tweaks: rename three variables, to use full words instead of abbrevs tweaks: rename two functions, to be simpler tweaks: rename two functions, to better describe what they do tweaks: rename two functions, to get rid of the "mb" abbreviation tweaks: rename two more functions, to be simpler too tweaks: rename two parameters, away from single letters tweaks: rename two parameters, for more contrast, and elide another tweaks: rename two parameters, to differentiate them from function names tweaks: rename two variables, and frob some comments tweaks: rename two variables, and reshuffle their declarations tweaks: rename two variables, away from a single letter tweaks: rename two variables, for more contrast tweaks: rename two variables, for more contrast with the partition stuff tweaks: rename two variables, to be less cryptic tweaks: rename two variables, to be unique tweaks: rename two variables, to not be abbreviations tweaks: reorder some code, to further optimize display_string() for ASCII tweaks: reshuffle a bit of code, to be less intertwined tweaks: reshuffle a couple of lines and adjust a few comments tweaks: reshuffle a few lines, to be more straightforward tweaks: reshuffle a few things, partly to make two chunks more alike tweaks: reshuffle an assignment, to be able to return earlier tweaks: reshuffle some closing and switching to a better place tweaks: reshuffle some code to the one place that needs it tweaks: reshuffle some lines and frob some comments tweaks: reshuffle some lines, to group things more sensibly tweaks: reshuffle some lines, to put the most likely candidate first tweaks: reshuffle some lines, to reduce duplication tweaks: reshuffle two #ifdefs, to avoid an unpaired brace tweaks: reuse the install and restore functions for a signal handler tweaks: set a boolean directly, instead of using a function call tweaks: set a boolean directly, instead of using a function call tweaks: sort three translator names better tweaks: specifically refer to the manual of GNU grep for more regex info tweaks: speed up the counting of characters in mbstrlen() tweaks: squeeze excess spaces out of a line in situ tweaks: step away one character from the current bracket, not one byte tweaks: stop allocating and freeing a holder struct for every cut/paste tweaks: stop checking for a NULL result from line_from_number() tweaks: stop passing 'cutbuffer' and 'cutbottom' back and forth tweaks: switch to the preceding buffer in a cheaper way (when in help) tweaks: use a cheaper way to switch between buffers where possible tweaks: use a more direct call when a single linestruct is deleted tweaks: use a slightly faster function where appropriate tweaks: use a symbol instead of zero to refer to standard input tweaks: use FALSE for booleans instead of zero tweaks: when OR'ing, put the most likely condition first usage: make the --help output independent from the terminal's tab size zapping: disjoin a zap command from earlier ones when the mark is set zapping: use the 'keep_cutbuffer' logic to keep undo items apart Brand Huntsman (6): files: block SIGWINCH while opening a FIFO for reading or writing rcfile: compile the color regexes just once rcfile: fully parse a syntax file only when needed rcfile: store errors and display them when nano terminates startup: prevent a crash when no applicable syntax is found tweaks: remove an unneeded pre-processor '#else' clause Changes between v4.1 and v4.2: ------------------------------ Benno Schulenberg (23): build: be more specific and avoid committing accidentally changed files bump version numbers and add a news item for the 4.2 release docs: put the 'set guidestripe' option into its alphabetical position options: make --breaklonglines work also when --ignorercfiles is used speller: do not crash by trying to free something that cannot be freed tweaks: adjust a few comments and some indentation tweaks: condense and improve a handful of comments tweaks: declare a function as const and let its allocated string leak tweaks: drop an unneeded saving and restoring of a variable tweaks: elide an unneeded intermediate variable tweaks: elide an unneeded parameter, as the function already assumes it tweaks: elide an unneeded variable tweaks: exclude a bit more code from a single-buffer build tweaks: remove an unneeded condition tweaks: remove a redundant, enclosed #ifdef tweaks: rename a function, to be distinct and fitting tweaks: rename another function, to be distinct and fitting tweaks: rename a variable, for a little more meaning tweaks: rename a variable, to distinguish it from a browser function wrapping: add a missing space only when the remainder will be prepended wrapping: compute the width of a succeeding line in the correct manner wrapping: improve the persistence of the prepending behavior wrapping: trim any trailing blanks when cursor goes to next line Changes between v4.0 and v4.1: ------------------------------ Benno Schulenberg (85): bindings: add easier keystrokes for the linenumber and softwrap toggles bindings: disallow executing an external command when in view mode bindings: recognize the ^W^Y and ^W^V legacy keystrokes again bindings: remove the jumpy-scrolling toggle entirely build: add gnulib modules to the list of files with translatable strings build: add src/cut.c to the list of files with translatable strings build: don't do fuzzy matching when merging PO files against the POT file build: remove obsolete translations from the PO files after merging bump version numbers and add a news item for the 4.1 release display: report and catch a bad state, to prevent a possible hang docs: for two of the toggles, mention the new instead of the old option docs: give the FILES section in the man page its canonical title docs: mention that -b is the opposite of -w also in the latter's item docs: mention that M-S now toggles softwrap and M-N line numbers docs: put paths and filenames in italics, per 'man man-pages' docs: remove all mention of --finalnewline, and undefault --nonewlines docs: remove the AUTHOR section, per advice from 'man man-pages' docs: re-title the temporary section about the changed defaults feedback: replace an assert with a check plus error message at startup feedback: show a message while executing an external command feedback: spare the user a superfluous scaring when trying to exit gnulib: update to its current upstream state help: don't doubly list toggles that have two keys assigned to them indenting, commenting: ensure a partial line stays displayed properly justify: correctly compute the number of lines to take, to avoid a crash options: make --nowrap override again a contrary nanorc setting options: remove -f (--finalnewline); go back to auto-adding this newline rcfile: don't break a chain of 'else if' [scan-build] rcfile: read the syntax files in alphabetical order when globbing speller: block the resizing signal again during an external spell check speller: block the resizing signal also during an integrated spell check speller: resizing can happen also when configured with --enable-tiny syntax: c: color as a type any lowercase word that ends with "_t" syntax: default: color in red also versions 4.x of nano syntax: man: add comments, and color all the safe lowercase macros syntax: man: anchor macros at start of line, as only then they are valid syntax: man: require the dot to be at start of line, not the comment syntax: nanorc: colorize also strings preceded by 'start=' or 'end=' syntax: nanorc: require whitespace both before and after a quoted string tweaks: adjust the indentation after the previous change tweaks: condense a bit of copying code tweaks: consistently use .sp instead of .PP to insert a blank line tweaks: do a check up front instead of every time round the loop tweaks: don't bother copying the NUL byte -- it is set nine lines down tweaks: don't bother reallocating the data when a line gets hard-wrapped tweaks: don't bother reallocating the squeezed string, just terminate it tweaks: don't bother special-casing non-UTF8 when seeking a character tweaks: drop an assignment whose value is never used [scan-build] tweaks: drop two 'const' qualifiers, to silence the compiler tweaks: free some memory before a possible error exit [coverity] tweaks: free the copy of a linter message in all cases [valgrind] tweaks: free the result string from an invocation error [coverity] tweaks: initialize a boolean before it is referenced [valgrind] tweaks: put the unblocking of SIGWINCHes in a better place tweaks: remove a function that is now unused tweaks: remove an unneeded check for NULL and its associated message tweaks: remove an unneeded check for NULL [coverity] tweaks: remove an unpaired closing parenthesis from the NEWS file tweaks: remove a superfluous check for NULL plus the associated message tweaks: remove several unneeded bad-state checks and their messages tweaks: rename a cryptic type to something that makes a little sense tweaks: rename a function plus parameter, to stay closer to what it does tweaks: rename another variable, to be more descriptive tweaks: rename another variable, to be more fitting tweaks: rename an overshort type to something that makes some sense tweaks: rename a variable, to be more distinct and more apt tweaks: rename a variable, to be more distinct and more descriptive tweaks: rename a variable, to get out of the way for another rename tweaks: rename some variables, for more contrast and to match others tweaks: rename some variables, to be less repititious tweaks: rename two variables, for more contrast tweaks: rename two variables, to be more distinct and more fitting tweaks: rename two variables, to make more sense tweaks: rename two variables, to match others tweaks: reshuffle some lines, condense a comment and drop another tweaks: reshuffle some lines, to elide an 'if' tweaks: reshuffle two lines, and reword a comment tweaks: reword a comment, and drop an unneeded assert tweaks: shorten a comment to its essence tweaks: shorten and improve some comments, and reshuffle a few lines tweaks: simplify a message, and normalize the spelling of another one tweaks: stop doing tandem assignments (one passing through the other) tweaks: switch back from checking FINAL_NEWLINE to checking NO_NEWLINES tweaks: use a signed type for a result that could be negative [coverity] unindent: ensure that a partial line gets displayed properly afterwards Brand Huntsman (1): files: block the resizing signal while reading from an external command Devin Hussey (1): files: initialize a variable before referencing it Liu Hao (1): syntax: c: change the highlighting of preprocessor directives Changes between v3.2 and v4.0: ------------------------------ Benno Schulenberg (190): bindings: change the action of / to 'scroll linewise' bindings: hard-bind ASCII code 0x08 (BS) to the backspace function bindings: make the normal scrolling keystrokes work also in help viewer bindings: provide usable shortcuts for prevword/nextword in tiny version bindings: rename 'cutwordleft' to 'chopwordleft', and similar for right browser, help: make page up also when terminfo mismatches terminal browser: say "Close" instead of "Exit" for the ^X shortcut browser: show the ^G item again in the help lines build: eradicate the --disable-wrapping-as-root configure option build: fix compilation when configured with --disable-utf8 build: use wget over https (instead of plain rsync) to fetch PO files build: verify that 'pkg.m4' is available when building from git bump version numbers and add a news item for the 4.0 release copyright: update the years for significantly changed files copyright: update the years for the FSF copyright: update the years for the FSF in the documentation too cutting: cover the corner cases where cut commands do not cut anything cutting: give feedback when otherwise nothing happens cutting: when ^K does not actually cut anything, do not add an undo item display: account for horizontal scrolling when drawing the guide stripe display: account for zero-width characters when reserving space for '>' display: change the "$" continuation character to ">" and "<" display: dot the stripe when it's in the last column, to defeat a VTE bug display: ensure that spotlighted text is not treated as a prompt answer display: highlight the ">"/"<" continuation characters in reverse video display: represent half of a double-width character with "[" and "]" display: scroll horizontally one column earlier display: show "[" for half of two-column character also when softwrapping display: show it in title bar when starting up in restricted mode display: use non-breaking space instead of dot for VTE-bug workaround docs: add notes to draw attention to the changed defaults docs: adjust and extend the Pico-compatibility section in the manual docs: adjust for the enhancement of the default quoting regex docs: correct the descriptions of 'speller' and 'linter' functions docs: deprecate the use of morespace, smooth, nonewlines, and nowrap docs: describe breaklonglines, emptyline, finalnewline, jumpyscrolling docs: describe the four new options (-b, -f, -j, -e) docs: describe the new options -J, --guidestripe, and 'set stripecolor' docs: harmonize the style of bindable-function descriptions docs: mention nano's major features directly instead of referring docs: mention that 'cutwordleft' is bound to docs: mention that --morespace and --smooth are obsolete and ignored docs: mention that 'quotestr' enables the rewrapping of comment blocks docs: mention three features in their proper place docs: remove from the FAQ some items that are no longer relevant docs: remove the mentioning of --disable-wrapping-as-root from the FAQ docs: reword and reshuffle the description of --rawsequences docs: say that --rebinddelete can correct both and docs: stop implying that nano wants to be fully compatible with Pico docs: stop saying that --fill switches on automatic hard-wrapping docs: suggest a setting for 'stripecolor' in the sample nanorc docs: update the links in the FAQ to the mailing-list info pages feedback: complete the removal of some superfluous words feedback: make two error messages better match the option feedback: remove some superfluous words from Undid/Redid messages files: retain a Shift-selected region when switching between buffers gnulib: update to its current upstream state help, docs: say "Delete" when things don't go into the cutbuffer help: don't advertise ^S and ^Q when --preserve is used help: don't list the obsoleted -O and -S options in the --help output help: don't list the unbound and in the tiny version help: in the tiny version, don't list an option that is the default help: reword the description of ^U to avoid the impression of "Undo" help: reword the tags for deleting a word left and right justify: correctly detect when we've reached end of buffer justify: extend the quoting regex, to cover more types of comments justify: move the check for a bad quoting regex to a better place menus: don't show ^S and ^Q in the help lines in the tiny version menus: move the paragraph-jumping functions from Search to Goto-Line menus: put the ^T toggle in Search in the same position as in Goto-Line menus: remove the ^Y and ^V shortcuts from the Search menus new feature: option --guidestripe that shows a vertical guiding bar options: actually rename --rebindkeypad to --rawsequences (-K) options: add -b, --breaklonglines, the counterpart of --nowrap options: add -e, --emptyline, the counterpart of --morespace options: add -f, --finalnewline, the counterpart of --nonewlines options: add -j, --jumpyscrolling, the counterpart of --smooth options: disable hard-wrapping and automatic newlines by default options: let --fill no longer imply automatic hard-wrapping options: make -d (--rebinddelete) work without -K (--rebindkeypad) options: make --rawsequences disable --mouse, to prevent entering junk options: rename long version of -K from --rebindkeypad to --rawsequences options: stop recognizing and ignoring -b, -e, -f, -j, and -q options: stop recognizing and mentioning --quiet and 'set quiet' options: warn when option -O or -S is given, and ignore them prompt: trim a double-width character at the screen's edge rcfile: add 'stripecolor' for changing the color of the guiding stripe rcfile: add the options that correspond to -b, -f, -j, and -e rcfile, docs: remove deprecated forms of two options and five bindables rcfile: don't report an error when the globbing pattern matches nothing rcfile: reject an attempt to bind ^[ rcfile: when a keystroke is rebound, don't bother unbinding it rcfile: when an old flag is unset, set the corresponding new flag rcfile: when rebound, DO unbind a keystroke from its earlier function startup: check again for a Linux console after reading all files startup: check that a backup directory is valid also when backups are off startup: improve two error messages by mentioning the invalid operand syntax: nanorc: stop coloring 'unset fill ...' as if it were valid syntax: tcl: colorize comments normally, not with a background hue text: turn the mark off when justifying, to not confuse an undo tweaks: add a consistency check plus a corresponding warning tweaks: add an alias for a string variable, so the code makes more sense tweaks: add deprecation comments to the four superseded options tweaks: add two comments, and reduce the scope of another variable tweaks: adjust indentation after previous change, and rename a parameter tweaks: adjust the indentation after the previous change tweaks: avoid parsing the same character twice tweaks: calculate the length of a completion word in a more direct way tweaks: change do_para_end() to not step beyond end of paragraph tweaks: condense a comment, and drop two others tweaks: condense a couple of comments and rewrap a few lines tweaks: condense a handful of comments tweaks: condense and correct a comment tweaks: condense and improve a couple of comments tweaks: condense and improve a handful of comments, and rewrap two lines tweaks: condense the logic of find_paragraph() tweaks: condense two regexes in the Tcl syntax, and add a comment tweaks: correct a comment typo, and trim a few other comments tweaks: don't bother executing two functions that are empty tweaks: don't bother special-casing non-UTF8 when checking for a blank tweaks: don't bother trying to draw characters beyond the screen's edge tweaks: don't bother zeroing the x position when doing a full justify tweaks: don't pass a pointer when a boolean is expected tweaks: elide a function that is called just once tweaks: elide an unneeded intermediate variable tweaks: elide a one-line function that is used just twice tweaks: elide a parameter -- do the NULL checks in the caller tweaks: elide a parameter that is always TRUE tweaks: elide a tiny function by making a variable global tweaks: elide a variable that is a copy of another tweaks: elide two unneeded intermediate variables tweaks: escape hyphens that must be hard hyphens in the man pages tweaks: exclude the guide-stripe code from the tiny version tweaks: hard-bind ASCII DEL in a slightly more economical way tweaks: improve a comment, and add an intermediate variable for clarity tweaks: improve a comment, to better match the changed code tweaks: improve and condense some comments, and remove an unneeded one tweaks: make an assignment only when the option is valid, like elsewhere tweaks: move declaration of variable that does not need to be global tweaks: move the character/word-deletion functions to a better location tweaks: move the check for beginning-of-paragraph to a better place tweaks: move the checks for git and gettext to a far earlier point tweaks: reduce a bunch of repetitious comments to their essence tweaks: reduce the scope of a variable, and rename it tweaks: reduce the scope of two variables, and rename one of them tweaks: reduce two parameters to a single one by summing them tweaks: refer to the magic line as "magic line", not as "magicline" tweaks: remove a superfluous check for a special case tweaks: remove a superfluous incrementing and decrementing of a variable tweaks: remove a variable that is no longer used tweaks: remove two tag definitions that are no longer needed tweaks: rename a function for aptness, and two variables for shortness tweaks: rename a function, to be simpler and more accurate tweaks: rename and invert a function, to avoid double negatives tweaks: rename an overlooked variable from a single letter to a word tweaks: rename a parameter plus a variable, and reshuffle an assignment tweaks: rename a struct element, to make sense tweaks: rename a symbol, to match its corresponding option tweaks: rename a type, to make more sense tweaks: rename a variable, because it also serves as "last line" tweaks: rename a variable, elide another, and adjust two comments tweaks: rename a variable, to be more distinct tweaks: rename four functions, to make more sense tweaks: rename some variables from a single letter to meaningful word tweaks: rename some variables, to match others that have the same task tweaks: rename three functions and two symbols, to match the new wording tweaks: rename three variables, and reshuffle two declarations tweaks: rename two parameters to be more descriptive tweaks: rename two variables, to be less confusing tweaks: rename two variables, to be more descriptive tweaks: rename two variables, to indicate better what they mean tweaks: renumber some FAQ items, to compensate for the deleted ones tweaks: reorder some ifs, to reduce the average number of comparisons tweaks: reshuffle a bit of code, to have the exit point near the end tweaks: reshuffle a few lines, and condense some comments tweaks: reshuffle and frob a couple of comments, and reindent two lines tweaks: reshuffle some code, to require two fewer ifs tweaks: reword the description of the disadvantages of Pico tweaks: rewrap a line and improve a few comments tweaks: schedule a call of edit_refresh() instead calling it directly tweaks: slightly indent warnings and errors during the configure phase tweaks: slightly reword, for esthetics of the resulting Info document tweaks: split a variable into two, as they have different roles tweaks: switch from checking MORE_SPACE to checking EMPTY_LINE tweaks: switch from checking SMOOTH_SCROLL to checking JUMPY_SCROLLING tweaks: switch from referencing NO_NEWLINES to referencing FINAL_NEWLINE tweaks: switch from referencing NO_WRAP to referencing BREAK_LONG_LINES tweaks: word some comments more concisely undo: set the correct file size for a redo of a character deletion utils: retire the fixbounds() function -- it is no longer needed Brand Huntsman (1): history: use an unfreed 'position_history' to avoid a possible crash David Lawrence Ramsey (34): display: correctly trim an overshooting character from a prompt answer display: correct the logic for making room for the ">" character display: properly handle double-width characters when spotlighting display: properly trim double-width characters at the edit window's edge display: show the guide stripe for double-width/multi-byte characters docs: remove references to not being able to undo justifications input: properly handle s followed by a shifted Meta+letter justify: handle the leading part when justifying a marked region justify: initialize a variable before making use of its value justify: put a mid-line marked region onto separate lines justify: when justifying a marked region, strip whitespace after the lead moving: make the generic paragraph movement functions work on any buffer new feature: marked text gets justified into a single, new paragraph options: exit on a bad quoting regex, instead of crashing later text: hook the new justify mechanism up to the undo system text: make do_justify() use the cutbuffer text: make find_paragraph() work on any buffer text: make justify_format() work on any buffer text: make justify_paragraph() work on any buffer text: prepare to make find_paragraph() work on any buffer text: properly check again for no paragraphs after the current line text: remove the old unjustify mechanism, to prepare for the new justify tweaks: adapt find_paragraph()/justify_paragraph() for multiple quotes tweaks: adjust indentation after the previous commit tweaks: adjust some indentation after the previous change tweaks: normalize the indentation, and remove unneeded braces tweaks: remove unnecessary variable initializations tweaks: rename a variable, to prepare for its new role tweaks: split justify_paragraph() into three separate functions tweaks: swap the names of the variables 'wrap_at' and 'fill' tweaks: use proper variable types in the word-completion functions undo: after undoing a cut, don't remove the magicline if we're on it undo: set and check 'xflags' in a bitwise manner undo: when undoing a cut, remove also the magicline if it added one Changes between v3.1 and v3.2: ------------------------------ Benjamin Mintz (1): syntax: python: do not highlight 'print' and 'exec' in Python 3 Benno Schulenberg (87): bindings: allow using to exit from the linter bindings: allow using ^X to exit from the linter bindings: drop M-| as a keystroke for 'cutwordleft' -- set it free again bindings: in tiny version with help, don't show unfunctional M-◀ and M-▶ bindings: make and work also on a Linux console bindings: make the linter separately accessible, through M-B by default bindings: make the Shift+arrow keys work by default on more terminals bindings: no longer bind F13 and F14 and F15 bindings: recognize ASCII DEL as backspace also in viewer and browser bindings: recognize also on a Linux console bindings: rename 'prevhistory' to 'older' and 'nexthistory' to 'newer' bindings: stop binding to do_backspace() in the browser menu bindings: when implanting a string, make sure to use positive values build: exclude scrolling functions only from tiny version without help build: fix compilation again when configured with --enable-tiny build: fix compilation when configured with --disable-multibuffer build: verify that --enable-tiny compiles before allowing a release bump version numbers and add a news item for the 3.1 release debug: report for which modified editing keys ncurses has no keycode display: correct a mistaken label in the help lines of the browser display: ensure that the help lines are shown when in linting mode display: let the title bar show when nano is in linting mode display: show the cursor also in a help text (when --showcursor is used) display: use a different color when showing a linting message docs: document the slightly changed workings of the --view option docs: give suggestions for alternative key bindings in the sample nanorc docs: remove a no-longer-needed suggestion from the sample nanorc docs: update the description of -R/--restricted, as it now reads nanorc docs, usage: mention that --showcursor now covers help texts too feedback: give proper message for ^R when combining --view & --restricted gnulib: update to its current upstream state help: add a relevant explanatory text for the linter help: move the linter to the end, to restore pairing in the help lines help: pull "Older" and "Newer" into view on an 80-column terminal help: restore the blank line between manipulation and position stuff help: show and instead of F7 and F8 for pagewise scrolling help: show the keystroke as "Sh-^Del" linter: allow using and to jump to other message linter: do not pause when there are no messages for unopened files linter: for "first"/"last", reshow actual message after a short pause options: --ignorercfiles is now available in restricted mode options: let view mode activate "multibuffer" to allow viewing more files speller: remove a pointless message -- it is never seen startup: allow reading nanorc in restricted mode, to permit customization syntaxes: remove several redundant end-of-line anchors from regexes tweaks: add a comment, and correct an indentation tweaks: add two more translator hints tweaks: capitalize the word "nano" when at the start of a sentence tweaks: change a bunch of URLs to use 'https' instead of 'http' tweaks: condense a handful of comments, and drop an assert tweaks: condense another bit of code tweaks: define a symbol to make the code itself a little simpler tweaks: don't bother asking ncurses for keycodes for shifted Left/Right tweaks: drop a check for the needle (the search string) being empty tweaks: drop the checking of two flags that can no longer be toggled tweaks: elide a function that is used just once and is a oneliner tweaks: elide a wrapper function that is no longer useful tweaks: exclude word-deletion keystrokes from the tiny version tweaks: fold a few pairs of regexes into each other tweaks: group a series of related variables together tweaks: improve two comments, and reshuffle a line for consistency tweaks: include an extra function call only where it is needed tweaks: move all the function keys to the end of the shortcuts list tweaks: move some calls of edit_redraw() to where they are needed tweaks: redefine MMOST to exclude MBROWSER, to simplify the bindings tweaks: reduce some repetitious and superfluous comments to just one tweaks: remove a check that was made redundant by the previous commit tweaks: remove a now-unused parameter from four functions tweaks: remove an unneeded check for NULL, and rename a parameter tweaks: remove a stray file that was accidentally committed tweaks: remove some old debugging code tweaks: rename a bunch of variables, to make it clearer what they contain tweaks: rename a flag, to match the name of the option tweaks: rename a variable, to be a bit more fitting tweaks: renumber a couple of symbols, and reshuffle a bit of code tweaks: reorder some code to put backward motion before the forward one tweaks: reshuffle a couple of conditions, to group things better tweaks: reshuffle some conditions, putting the least likely one first tweaks: reshuffle some lines to get standard order (first up, then down) tweaks: reshuffle some lines, to put things in order of option name tweaks: snip trailing whitespace that ended with a non-breaking space tweaks: stop setting and requiring the Meta flag for special keycodes tweaks: swap and reword two bullet points in the rnano manpage tweaks: there is no reason to block SIGWINCHes while waiting for speller undo: move another piece of checking to the two places that need it undo: move some special checking code to the one place that needs it wrapping: make the --fill option override 'set fill' again Brand Huntsman (5): bindings: hard-bind the zap function to M-Del (Alt+Delete) display: make all dying messages end in a newline linter: throttle "first"/"last" message on repeated key presses new feature: a bindable 'zap', to erase text without changing cutbuffer options: add --zap, that makes and erase a marked region David Lawrence Ramsey (16): display: do spotlighting as part of drawing the screen docs: update rnano manpage, as -R/--restricted now reads nanorc input: don't detect on Linux console in tiny version input: properly consume a modified Delete key also in the tiny version input: properly recognize Alt+Delete when using -K/--rebindkeypad input: recognize some escape sequences for speller: restore the mark coordinates slightly later syntax: nanohelp: properly color the keystroke "Sh-^Del" tweaks: don't define controldelete or controlshiftdelete in tiny version tweaks: join two lines, and add a clarifying comment tweaks: move the justifying of a single paragraph into its own function tweaks: normalize the indentation of the shuffled code tweaks: reshuffle some code to avoid several checks for having justified tweaks: simplify by using a 'do/while' loop instead of 'while (TRUE)' weeding: remove the 'active' parameter from spotlight() wrapping: make relative fill values work again also for screen resizes Changes between v3.0 and v3.1: ------------------------------ Benno Schulenberg (13): bindings: bind ASCII DEL during startup instead of repeatedly at runtime bindings: make ^H rebindable also on NetBSD, FreeBSD and macOS bindings: when Ctrl+Shift+Delete has no keycode, don't use KEY_BSP bump version numbers and add a news item for the 3.1 release input: keep the cursor in edit window after message, also on NetBSD input: recognize the sequences for Ctrl+Shift+Delete on xterm and urxvt main: allow toggling all editor features when in view mode suspension: don't try to show the cursor position when going to sleep syntax: sh: let the header regex match also busybox shell scripts tweaks: condense a bit of code tweaks: remove a superfluous comment and a redundant assignment tweaks: rename a variable to be special and distinct tweaks: sharpen an optimization, to allow DEL to be a shortcut Liu Hao (1): search: disallow switching to the Replace prompt when in view mode Changes between v2.9.8 and v3.0: -------------------------------- Benno Schulenberg (113): bindings: bind M-Q to 'findprevious' by default, and M-W to 'findnext' bindings: hard-bind to 'cutwordleft' bindings: make ^Q and M-Q available also in the help viewer bindings: move the noconvert toggle from the main to the insert menu bindings: reassign the M-| keystroke to 'cutwordleft' by default bindings: remove backup and new-buffer toggles (M-B, M-F) from main menu bindings: remove the More-Space toggle entirely bindings: remove the 'searchagain' function entirely bindings: rename two bindable functions: copytext to copy, uncut to paste bindings: unassign the M-? keystroke, to free it up for future use build: add the release script to the repository build: fix compilation again when configured with --enable-tiny build: fix compilation when configured with --enable-tiny build: verify that 'msgfmt' is available when building from git bump version numbers and add a news item for the 3.0 release chars: make the UTF-8 case ever so slightly faster by eliding an 'if' chars: speed up the counting of string length for the plain ASCII case chars: speed up the parsing of a character for the plain ASCII case completion: when the cursor is not after a word fragment, say so cut: concentrate the logic for clearing the cutbuffer mostly in one place cutting: when deleting whole words, don't join lines unexpectedly debug: add some code to time the performance of get_totsize() docs: improve a comment about rebinding docs: mention that also Ctrl increases the stride when selecting text docs: mention that "normal" can be used to give things the default color docs: mention that the 'formatter' command has been superseded docs: reshuffle a bindable function to a slightly better position docs: say that 'cutwordright' is now bound to by default docs: slightly reword the description of four bindable functions docs: the 'noconvert' bindable function was renamed to 'flipconvert' dropping a feature: remove the ability to use the 'formatter' command easter: show the crawl only when there is room enough for the lines files: add the file format on the status bar when switching buffers filtering: wait for the data-sending process to terminate too gnulib: update to its current upstream state help: for ^R^X, mention that the buffer can be piped to the command help: move "Search Again" away from "Find Next" and "Find Previous" input: consume the whole escape sequence for modified PgUp and PgDn keys input: fully consume modified PgUp and PgDn keys also in the tiny version input: ignore any s before a valid command keystroke input: stop from entering "3~" into the buffer input: stop a modified Delete key from entering stuff into the buffer mouse: put the row/column arguments in the proper order [coverity scan] prompt: concentrate manipulations of 'statusbar_x' into a single file prompt: remove redundant redrawings of the prompt bar rcfile: allow to rebind the Cancel function in the yesno menu rcfile, docs: no longer recognize nor mention 'set backwards' rcfile: do not accept rebinding F0 nor function keys above F16 rcfile: ensure that in the yesno menu Cancel is bound to some keystroke rcfile: explicitly check for disallowed keywords in included files rcfile: reject things like "M-Del" and "^{" as invalid key names rcfile: when a vital function is not mapped, mention in which menu search: include 'findprevious' and 'findnext' in the tiny version signals: don't call a print routine in a signal handler speller: do not replace the text when the temporary file did not change startup: don't overwrite rcfile error messages on a Linux console startup: show the correct number of lines when opening multiple files syntax: awk: recognize any {g,m,n,}awk script also by its shebang line syntax: default: colorize also two-digit and capitalized nano versions syntaxes: remove all traces of the 'formatter' command syntax: nanorc: recognize 'yesno' as a valid menu to bind/unbind keys in syntax: nanorc: show ^@ as validly rebindable, but not any ^digit syntax: python: avoid coloring the three special values inside strings text: add auto-whitespace to the file size after creating the undo item tweaks: adjust indentation after the previous change tweaks: adjust one more translator hint, for removed toggles tweaks: adjust some translator hints for past changes, and add two more tweaks: adjust two comments, to be more accurate and general tweaks: avoid dereferencing a pointer when it is NULL [coverity scan] tweaks: close a temp file only when descriptor is valid [coverity scan] tweaks: correct a comment, rewrap a line, and drop some debugging stuff tweaks: delete some old debugging code that no longer seems useful tweaks: don't bother having debug code that deallocates all memory tweaks: don't call va_start() without calling va_end() [coverity scan] tweaks: drop a condition that has been made redundant two commits ago tweaks: drop some old debugging code tweaks: elide a bunch of unneeded constant strings tweaks: elide a function that is used just once tweaks: elide another function that is used just once tweaks: elide an unneeded/duplicate variable tweaks: elide a one-line function -- no, a half-line function tweaks: elide a subfunction that is used just once tweaks: exclude a global flagging variable when it is not needed tweaks: exclude the file-prepending code from the tiny version tweaks: fix a pasting error from a month ago tweaks: implement the name-to-menu function in another manner tweaks: improve a couple of comments in the sample nanorc tweaks: improve a translator hint and some other comments tweaks: move a call to where it will be executed [coverity scan] tweaks: normalize the indentation after the previous change tweaks: properly escape "\" in a man page and "@" in a texi document tweaks: recognize escape sequences of modified Ins/Del more precisely tweaks: reduce the counting of characters to just the needed function tweaks: remove a redundant "struct" word, and replace it in comments tweaks: remove a superfluous condition and a redundant refresh tweaks: remove redundant braces and conditions after the previous change tweaks: remove some braces that are now superfluous tweaks: remove some ineffectual parts from header-line regexes tweaks: remove the superfluous calls that reset the mbtowc() state tweaks: remove two needless words, and split up a changed text further tweaks: remove two superfluous assignments tweaks: rename a constant, to match what it actually means tweaks: rename a function and place its call better tweaks: rename a function to better match its counterpart tweaks: rename a function, to better state what it does tweaks: rename a variable and a function, for more clarity tweaks: rename a variable, to better match its task tweaks: reshuffle some lines, in order to elide one tweaks: reshuffle the order of the bindings, for help-line esthetics tweaks: show "Space" and "Bsp" in the help text of the browser tweaks: slightly improve error message when vital function is unmapped tweaks: use a shorter message, because when the screen is small... undo: differentiate between general filtering and spell checking Brand Huntsman (4): input: give feedback for all unbound keys also in the help viewer statusbar: elevate three messages to an ALERT, to make them more visible tweaks: correct four spaces of indentation to a tab, in two places tweaks: remove the 'bright' field from the colortype struct David Lawrence Ramsey (13): bindings: make "n" work again in file browser and help viewer bindings: make ^Q start a backward search also in the file browser docs: mention that "Ins" and "Del" are valid rebindable keys justify: verify being in a paragraph before trying to find its beginning speller: hook up a full alternative spellcheck to the undo system speller: hook up a marked-text alternative spellcheck to the undo system speller: make replace_buffer() use the cutting functions directly speller: make replace_marked_buffer() use the cutting functions directly undo: actually enable undoing/redoing an alternative spellcheck undo: always initialize the 'newsize' element in the undo struct undo: position the cursor properly when undoing/redoing magicline cuts undo: restore the cursor position when a cut and paste are paired undo: store the correct cursor position after a paired cut+insert Devin Hussey (2): files: speed up reading by using getc_unlocked() instead of getc() syntax: sh: recognize more file extensions and header lines Marco Diego Aurélio Mesquita (1): input: erase the next word when Ctrl is held while pressing Delete Mark-Weston (2): build: fix compilation when CC=tcc syntax: lua: do not color strings inside comments, and add a linter Changes between v2.9.7 and v2.9.8: ---------------------------------- Benno Schulenberg (64): build: fix compilation failure when configured with --enable-tiny build: fix compilation when configured with --disable-justify build: fix compilation when configured with --disable-multibuffer build: fix compilation with --enable-{tiny,help,multibuffer} bump version numbers and add a news item for the 2.9.8 release copyright: update the years for significantly changed files credits: sort the names roughly according to amount of influence docs: add a missing double quote in the default brackets string docs: describe what constitutes a paragraph docs: improve description of 'speller' and related bindable functions docs: improve the description of --nonewlines, and properly sort it docs: improve the description of the --autoindent option docs: make quotes around regexes bold, as they are part of the command docs: mark the filtering of text through an external command as done docs: register Marco as the author of the filtering feature docs: remove mention of the quotestr for when regex support is lacking docs: remove quotes around the name of a syntax -- they are not needed docs: thank Kamil for his bug fixes, and update an email address docs, usage: make it clear that the argument of --quotestr is a regex files: give feedback during writeout also when prepending or appending filtering: pair the cut and the insert, so they can be undone together gnulib: update to its current upstream state justification: find the beginning of a paragraph in a better way justification: limit the amount of recursion to prevent a stack overflow justification: recognize indented paragraphs also without --autoindent justification: when leading whitespace exceeds fill width, wrap anyway linter: don't try to access absent stat info, as that gives a crash linter: make sure that the margin is updated before displaying a buffer linter: make sure the shortcuts bar will redrawn when exiting early main: add "/" to the quoting regex, to allow justifying //-comments main: interpret only a double slash (//) as quoting, not a single one rcfile: don't crash when a bind to a string lacks the closing quote startup: provide a hint for people unfamiliar with the ^char convention syntaxes: condense and/or correct some extension regexes syntax: makefile: color all keywords that GNU make recognizes tweaks: adjust a translator hint tweaks: avoid an unused-variable warning with --enable-tiny tweaks: avoid a warning with --enable-{tiny,help,multibuffer} tweaks: condense a comment, and elide an unneeded 'if' tweaks: condense some repetitious comments, and check before assigning tweaks: condense two statements into one, and elide a 'break' tweaks: elide a function that is called just once tweaks: elide another function that is called just once tweaks: exclude an unneeded 'if' from the single-buffer version tweaks: frob a couple of comments tweaks: frob some comments, and rename two parameters to make sense tweaks: give some continuation lines a more obvious indentation tweaks: improve a couple of comments, and reshuffle a group of lines tweaks: make better use of an existing variable tweaks: make better use of an intermediate variable tweaks: reduce the abundance of the word 'toggle' in the Info manual tweaks: remove a superfluous assignment -- the lead length never changes tweaks: remove two superfluous checks, after making one of them so tweaks: rename a function, for more aptness and extra contrast tweaks: rename a variable, for contrast, and improve two comments tweaks: rename a variable, to give it some meaning tweaks: rename two variables, to better fit their tasks tweaks: reshuffle a condition, and adjust a comment and some indentation tweaks: reshuffle a couple of assignments tweaks: simplify the determining of the prefix for justified lines tweaks: stop decreasing both the iterator and the limit of a loop tweaks: use a more meaningful variable name, and avoid a distant 'else' wrapping: use "smart" autoindenting only when hard-wrapping is enabled wrapping: when autoindenting, use indentation of next line as example Brand Huntsman (1): tweaks: avoid two unused variable warnings when NLS is disabled Cristian Caloghera (1): syntax: makefile: recognize also an all-lowercase makefile name David Lawrence Ramsey (3): bindings: add the "flippipe" bindable function tweaks: avoid an unused variable warning with --enable-tiny tweaks: fix some grammar plus a typo in the comments Marco Diego Aurélio Mesquita (2): linter: check all open buffers, instead of just the next one new feature: allow piping (selected) text to an external command Changes between v2.9.6 and v2.9.7: ---------------------------------- Benno Schulenberg (21): bindings: add the 'linenumbers' bindable function bindings: rename constupdate to constantshow, cuttoend to cutfromcursor bump version numbers and add a news item for the 2.9.7 release docs: add notes about deprecated options and function names docs: break down some old improvements further per version docs: note a small difference with Pico in the default hard-wrapping docs: say thanks to three recent translators, and re-sort two others docs: slightly improve the description of the file browser in the manual main: clear a spurious error number, to avoid irrelevant messages later prompt: when asking for Yes/No/All, recognize also UTF-8 letters scrolling: only do a scroll when the edit window has more than one row signals: don't trap segfault/abort when envvar NANO_NOCATCH is defined signals: exclude the crash handler from the tiny version startup: suggest using ^D to finish reading from standard input tweaks: improve a couple of comments tweaks: normalize indentation and whitespace after previous changes tweaks: put check for -h and -l options in their alphabetical positions tweaks: put Yes/No/All in a consistent order (for the translators) tweaks: rename two variables, to be more descriptive tweaks: sort an option better, and reschedule a removal tweaks: use symbolic names instead of puzzling TRUE and FALSE Devin Hussey (1): signals: upon a crash, save changed buffers and reset terminal state Mark-Weston (1): new feature: an option to make the 'nextword' function stop at word ends Changes between v2.9.5 and v2.9.6: ---------------------------------- Benno Schulenberg (39): build: do not prefix an alternative rcfilename with a dot build: fix compilation when configured with --disable-help bump version numbers and add a news item for the 2.9.6 release command-execution: do not crash when opening the pipe would fail completion: correctly do a signed comparison, to avoid a segfault files: prevent a hang when a call to sigaction() would fail formatting, linting: redetermine the argument list for every run gnulib: update to its current upstream state memory: use a reallocation to reduce the amount of leakage prompt: recognize Yes/No/All in English when the locale gives no match rcfile: skip color commands where some color name is invalid scrolling: don't redraw entire edit window when cursor goes offscreen search: always go forward by default, also when coming from Goto-Line search: use a better value to mean "nothing was typed" speller: don't add an extra newline when saving the text to a tempfile syntax: po: highlight also other escaped characters, not just \n syntax: sh: colorize options only when they are preceded by whitespace tweaks: adjust the translator hint about Yes/No/All tweaks: correct or improve a couple of comments tweaks: elide a function that is called just once tweaks: fix a typo, remove a blank line, and improve some comments tweaks: frob a couple of comments tweaks: group some more of the empty functions together tweaks: improve some comments, and exit with nonzero status upon error tweaks: improve the ordering of a couple of functions tweaks: invert two conditions and reshuffle, to reduce duplication tweaks: move a function to its proper location tweaks: move a function to its proper location tweaks: rearrange a few if statements more symmetrically tweaks: remove the group handling for undoing/redoing (un)indents tweaks: rename a function, to be more distinct from its caller tweaks: rename a function, to be more fitting and descriptive tweaks: rename a variable, for clarity tweaks: rename a variable, to be a bit more fitting tweaks: rename a variable, to be more clear and to match another tweaks: rename a variable, to match another and to be more visible tweaks: reshuffle two declarations tweaks: set the correct flags just once for each spell-fixing session tweaks: use meaningful names instead of puzzling values Liu Hao (1): replacing: always clear the backwards flag for ^\, just like for ^W Changes between v2.9.4 and v2.9.5: ---------------------------------- Benno Schulenberg (45): build: exclude more things when configured with --disable-multibuffer build: fix compilation again when configured with --enable-tiny build: fix compilation when configured with --disable-multibuffer build: fix compilation with --enable-{tiny,help,multibuffer} bump version numbers and add a news item for the 2.9.5 release cut: avoid calling renumber() on what might be NULL docs: clarify how the Linux console is deficient: in the arrow keys docs: clarify what the scrollup and scrolldown bindable functions do docs: document the newly added color name "normal" docs: mention in the FAQ that pastes from the clipboard files: prevent an infinite loop when reading from standard input fails files: prevent the undo of reading a file into a new buffer help: describe the Scroll-Up and Scroll-Down commands more precisely help: do not reserve space for line numbers, as they are absent linting: drop messages for other files when configured for one buffer memory: plug a leak, by actually freeing a discarded undo struct scrolling: first move the cursor before pushing current chunk offscreen scrolling: let Scroll-Up/Down keep the cursor in the same text position selecting: don't cancel a softmark when just scrolling the screen small addition: understand color name "normal" to mean the default color syntax: sh: color also the 'cut', 'head', 'tail', and 'sort' commands syntax: sh: color options distinctively, and color also long options syntax: sh: uncolor "tar" when it's part of a filename tweaks: adjust a couple of types, to reduce the number of warnings tweaks: adjust or correct some comments, and rename a function tweaks: adjust the indentation after the previous changes tweaks: bundle some settings for a new buffer tweaks: change a parameter of open_buffer() and invert its logic tweaks: condense some code, to remove a bit of duplication tweaks: drop a handful of unhelpful asserts tweaks: elide an unneeded and shadowing variable tweaks: elide a parameter, as it's always the inverse of another tweaks: elide a parameter that is always 1 tweaks: elide two parameters and thus a pair of wrapper functions tweaks: factor out the check for 'viewok' into its own function tweaks: fix a typo and adjust some wording and formatting in the FAQ tweaks: frob some comments plus miscellaneous other stuff tweaks: fuse two ifs into one tweaks: move an 'if' and then remove an unneeded label tweaks: reduce the font size of the questions in the FAQ tweaks: remove an inconsistent space from two pointer declarations tweaks: remove unneeded settings and unsettings of MULTIBUFFER tweaks: reshuffle some movement code, to reduce the number of conditions tweaks: revert commit c88a2fd9 -- the extra variable is needed tweaks: rewrap and amend some lines in the NEWS file David Lawrence Ramsey (1): tweaks: correct several parameter types Kamil Dudka (1): input: do not crash if sctofunc() returns NULL Liu Hao (1): build: fix compilation error when configured with --disable-justify Changes between v2.9.3 and v2.9.4: ---------------------------------- Benno Schulenberg (65): bindings: make a key defined as string work also in browser and viewer bindings: rename the bindable function 'gototext' to 'flipgoto' bindings: revert the ^/ changes, as ^/ is not always Go-To-Line bindings: show ^/ instead of ^_ for Go-To-Line build: fix compilation when configured with --enable-tiny bump version numbers and add a news item for the 2.9.4 release docs: mention that a key can be bound to a string docs: note also in the Info manual that text can be selected with Shift editing: when --smooth is used, make -at-bottom scroll one row general: detect in a better way whether we're running on a Linux console gnulib: update to its current upstream state goto: avoid a segfault, by initializing 'answer' when it is NULL help: mention that some keys work on a region when the mark is on help: tweak the descriptions of ^X and ^R input: handle the implant() function separately also for the prompt input: handle the implant() function separately, as it is special memory: avoid a leak when toggling from Search to Goto memory: squeal when there is something wrong, instead of stumbling on new feature: allow binding a key to a string (in a nanorc file) prompt: disallow pasting when in restricted mode rcfile: allow a syntax name to be unquoted search: clear the existing answer when starting a new search search: get rid of some unneeded recursion when just toggling things selecting: cancel the softmark upon any attempt to move the cursor small addition: allow customizing the color of an error message syntax: color also ^/ in nano's help texts and in nanorc files syntaxes: remove quotes from each syntax name, and color it differently syntax: nanorc: color also bindings to a string as valid tweaks: adjust comments and indentation after the previous change tweaks: adjust two comments, move two declarations, rewrap three lines tweaks: appease valgrind concerning syscalls with uninitialized values tweaks: condense a comment and elide an 'if' tweaks: correct a typo in NEWS tweaks: correct a typo that broke binding a key to a string tweaks: do not needlessly renumber the lines in the buffer tweaks: don't call strcmp() to determine whether a string is empty tweaks: drop an assert, add a warning, and change a 'for' to a 'while' tweaks: drop some debugging stuff, and adjust what remains of it tweaks: elide another variable, to call a function less often tweaks: elide an unneeded variable tweaks: elide an unneeded variable tweaks: elide an unneeded variable tweaks: elide an unused variable and parameter tweaks: elide two unneeded booleans tweaks: exclude an unlikely error message from the tiny version tweaks: exclude an unlikely warning from the tiny version tweaks: fix a copy-and-paste error tweaks: make the fsfromline() call only for the undo types that need it tweaks: plug a memory leak when using Verbatim Input at a prompt tweaks: refactor the implanting of a key expansion tweaks: remove another superfluous check tweaks: remove a superfluous check tweaks: remove two deprecated options and six rebindable function names tweaks: remove two superfluous checks, and restrict two others tweaks: rename a parameter and a variable, to be more fitting tweaks: rename a variable to be more distinct and greppable tweaks: rename two variables, to be more meaningful tweaks: reshuffle some code, to be slightly less ugly tweaks: reshuffle some of the search-and-replace cleanup calls tweaks: reshuffle the undo types into mostly the same order everywhere tweaks: shorten the name of two record elements tweaks: slightly rewrap the FAQ's table of contents tweaks: transform a 'do' to a 'while', and reshuffle a comment tweaks: unabbreviate two variable names undo: when redoing, don't try to find a line number that might not exist Brand Huntsman (1): color: remove unneeded bright comparison to prevent duplicate pairs David Lawrence Ramsey (3): docs: mention that errorcolor does have default colors input: don't stop prepending when the user adds text via a shortcut tweaks: fix typo in rebindable function name Tom Levy (1): syntax: go: highlight also floats with leading zeroes as valid Changes between v2.9.2 and v2.9.3: ---------------------------------- Benno Schulenberg (65): build: fix compilation when configured with --enable(tiny,color,nanorc} build: fix compilation with --enable-tiny --enable-justify build: let ./configure fail (not just warn) when curses.h is missing bump version numbers and add a news item for the 2.9.3 release copyright: update the years for the FSF display: wipe the status bar when doing a total refresh docs: remove the note about needing a recent ncurses for macros to work docs: update the FAQ for the changed default location of history files docs: update the TODO file to the current state of affairs gnulib: update to its current upstream state help: don't get stuck when there is an unwrappable piece of text input: consume only the actual length of an escape sequence input: fully reset state when a three-digit character code is cut short input: make do an unindent also on a Manjaro console input: recognize escape sequences for and input: recognize more escape sequences for and input: recognize the deviant keycode for in urxvt options: recognize -M and --trimblanks on the command line painting: look for an end match only after a start match, if any prompt: show whitespace only in the filename, not in the whole line replacing: don't skip the first character of a backwards-marked region search: suppress the occurrence at the cursor only when replacing startup: allow a named pipe as file argument when --noread is used startup: make an error message succinct and to the point startup: move the initialization of colors, so any error gets printed syntax: go: colorize only valid octal numbers syntax: lua: do not color debug.setinfo as it doesn't exist syntax: nanohelp: color also the Sh-Tab key combo tweaks: change a 'do' to a 'while', and return early to elide an 'if' tweaks: check for the type of terminal far earlier tweaks: condense a condition and a comment, and reshuffle a line tweaks: condense and rewrap some comments, and reindent two lines tweaks: condense the conditional compilation of shortcut reassignments tweaks: don't bother freeing the key buffer, just reallocate it tweaks: don't bother to reallocate when the keybuffer size decreases tweaks: drop a superfluous parameter, as it is always 1 tweaks: drop a useless assert, and don't abort over an unhandled option tweaks: drop two unneeded initializations, and trim a comment tweaks: elide a tiny intermediate buffer, and rename two variables tweaks: exclude --trimblanks when no wrapping or justifying is configured tweaks: fully include Savefile and Wherewas in the tiny version tweaks: indenting text files with tabs is not a good idea tweaks: mark the two blocks that have a deviant indentation tweaks: move a bunch of comments to the lines that they refer to tweaks: move two functions to their proper place, orderingwise tweaks: remove a fragment of dead code tweaks: remove a handful of redundant (because always true) asserts tweaks: remove a superfluous case -- there can never be four digits tweaks: remove a superfluous check, as we insert always one code tweaks: rename a function, for aptness, and drop a superfluous check tweaks: rename a function, to be more distinct tweaks: rename a variable, and further condense some comments tweaks: rename a variable, for more contrast tweaks: rename a variable, to better fit its usage tweaks: rename two variables, and swap their declaration order tweaks: rename two variables, for preciseness and shortness tweaks: reshuffle a couple of lines tweaks: reshuffle a couple of lines, to make a bit more sense tweaks: reshuffle some stuff, and avoid a memory leak tweaks: reshuffle two condition series, to look better tweaks: rewrap a bunch of lines in the NEWS file tweaks: set a modifier in a single place, for conciseness tweaks: swap the row and col parameters to a more consistent order tweaks: transform a parameter, from a pointer to the value itself wrapping: don't trim a blank character that the user just typed Brand Huntsman (1): startup: parse interface colors when they are read, not when initialized Changes between v2.9.1 and v2.9.2: ---------------------------------- Benjamin Mintz (1): syntax: python: add 'async', 'await', and 'nonlocal' as keywords Benno Schulenberg (62): bump version numbers and add a news item for the 2.9.2 release display: ensure that cursor is visible when compiled with --with-slang docs: mention that the source code is best viewed with a tab size of 4 docs: say thanks to some fairly recent translators, and rename one gnulib: pull in the fix for the missing stat include gnulib: update to its current upstream state help: show that "Tab" will indent, just like "Sh-Tab" will unindent help: swap the order of the Complete and Comment functions indenting: don't exclude last line of region when region is empty indenting: keep affecting last line of marked region if it was at first input: allow using and to (un)indent selected region input: make work also when using --rebindkeypad input: optimize a bit for non-shortcut keys, as they are most frequent options: rename 'justifytrim' to 'trimblanks', because it has morphed prompt: blank the bar when a "continue?" is answered with No or ^C syntaxes: remove redundant word-boundary markers syntax: javascript: add some comments, and color explicit numbers too syntax: javascript: add some keywords, and sort them more logically syntax: javascript: color strings differently from major keywords syntax: javascript: require that a comment is preceded by whitespace syntax: lua: condense some regexes, tweak comments, reorder things syntax: nanorc: don't color parts of valid strings as if invalid syntax: python: color also the special values 'False', 'None', 'True' text: allow unindenting when not all lines are indented text: keep cursor at left edge when it IS there when indenting/commenting text: let a Shift-selection persist when indenting and commenting text: let indenting/commenting skip the last line if its x is zero text: set and reset the Modified state correctly when undoing/redoing tweaks: add a separate function that actually wipes the status bar tweaks: avoid incrementing a variable that won't be used again later tweaks: condense or rewrap a bunch of repetitious comments tweaks: condense, reword, and rewrap a bunch of comments tweaks: condense some debugging code, and rewrap a line tweaks: convert the indentation of the NEWS file too tweaks: convert the indentation to use only tabs tweaks: drop some old debugging code plus a superfluous comment tweaks: elide two parameters from the get_region() function tweaks: elide two variables that are used just once tweaks: factor out a piece of common code tweaks: fix some whitespace errors, and convert alignment tabs to spaces tweaks: fold some regexes into one another, for conciseness tweaks: frob four comments, and rewrap two lines tweaks: invert the logic of a variable, and rename it tweaks: limit the resetting of "Modified" to writing a full buffer tweaks: move some frequently-used keystrokes to the top of the list tweaks: remove a redundant call of renumber() tweaks: remove a superfluous condition tweaks: remove a superfluous placing of a terminating nul byte tweaks: remove some unneeded parentheses, and shorten two function calls tweaks: remove two irrelevant conditions tweaks: rename three variables, for more contrast and variety tweaks: reshuffle a bit of common code, moving it to an existing function tweaks: reshuffle another bit of code, for conciseness tweaks: rewrap some lines and some comments, and trim two others tweaks: slightly rename four functions, for aptness and variety tweaks: strip some debugging stuff, and condense a bit of code tweaks: trim another placing of a terminating nul byte tweaks: use for git the more faithful "less -x1,5" suggested by Brand tweaks: use spaces for alignment also in the THANKS file wrapping: delete trailing blanks upon hardwrapping, when requested wrapping: keep prepending to the same next line as long as possible wrapping: we're still on the same line if the next line has not changed David Lawrence Ramsey (3): input: support backtab when Slang and/or --rebindkeypad is used tweaks: use printf's z modifier for (s)size_t, instead of casting undo: when adding text adds a magicline, an undo should remove both Liu Hao (1): syntax: c: increase the color contrast of reminders like FIXME Michael Francis (1): syntax: php: function and variable names can contain uppercase and digits Mike Frysinger (1): syntax: javascript: add newer keywords and string syntax Tom Levy (6): syntax: go: fix word boundary before dot in number literal syntax: go: sign of exponent in number literal is optional syntax: lua: add new and missing standard library functions syntax: lua: correct the word boundaries on standard library functions syntax: lua: require at least one digit for hexadecimal numbers syntax: lua: support fractional part and exponent for decimal and hex Changes between v2.9.0 and v2.9.1: ---------------------------------- Benno Schulenberg (20): build: fix compilation with --disable-browser --disable-tabcomp bump version numbers and add a news item for the 2.9.1 release files: always update the stat info when the entire file is written files: save the marked region only when we've prompted for a file name gnulib: update to its current upstream state history: create the path '~/.local/share/' when it is needed history: make nano's state directory accessible for the user only history: save the positions file also when a record was deleted input: make the macro key discoverable by giving feedback when undefined linting: switch the mark off when the linter starts selecting: do not cancel the softmark when the cursor is not moved selecting: let a justification cancel a softmark syntax: adjust the magic strings for the changes since file-5.10 tweaks: adjust indentation after previous change tweaks: elide the 'mark_set' boolean -- the 'mark' pointer is enough tweaks: rename, rewrap, and reshuffle some stuff, and frob some comments tweaks: reshuffle a couple of lines, and frob a comment or two tweaks: reshuffle a couple of lines, to put similar things together undo: clear the Modified state when the very first edit is undone undo: discarding the stack does not always lose information Changes between v2.8.7 and v2.9.0: ---------------------------------- Benno Schulenberg (103): bindings: don't allow calling help when searching in the help viewer bindings: make ^Q and ^S do something useful by default bindings: make the search function rebindable again in help and browser bindings: make ^W start always a forward search (as there is ^Q now) browser: place the cursor properly on the selected file when -g is used build: let git ignore also the generated PDF file bump version numbers and add a news item for the 2.9.0 release copyright: update some years, and standardize on the dashed format display: keep the cursor switched on when resizing the screen display: rework the switching on and off of the cursor display: stop the help viewer from turning on the multibuffer indicator display: switch off the cursor early on during startup docs: make it clearer that a Signed-off-by is wanted on patches docs: mention that macros work correctly only on terminal emulators docs: remove another remark about indenting lacking undo capability docs: update references to the nanorc files for the XDG changes files: avoid an abortion when executing a command in a new buffer gnulib: update to its current upstream state help: don't fall back to other syntaxes if there is no nanohelp one history: after loading the lists, mark them as unchanged history: remove the migration service for the old searches file input: recognize Option+Arrow keys on iTerm2 in "xterm mode" moving: don't slither and slide over tabs when they are overlong moving: prevent the cursor sticking on or skipping over overwide tabs new feature: a bindable function that starts always a backward search options: remove '--quiet' and 'set quiet', because they hide problems options: retire 'set backwards' -- it's still recognized but a no-op organization: move all history-related stuff to its own file ouch: set the positions-file name also when using the legacy state dir painting: evade an ncurses bug by adding the A_PROTECT attribute search: suppress the "not found" message when replacements were made search: suppress the "Search Wrapped" message when doing replacements search: wipe reassuring feedback as soon as searching has finished startup: don't ask the user to press Enter upon an rcfile error startup: don't produce more than three consecutive beeps startup: when an rcfile contains errors, report this on the status bar syntax: default: use colors that are readable also on dark backgrounds titlebar: don't reshow version when dropping back to a single buffer titlebar: don't show nano's name and version when in the file browser titlebar: drop the prefix "File: " from before the filename tweaks: add a translator hint, and adjust two others tweaks: adjust a comment, and condense a fragment of code tweaks: adjust indentation and comments after the previous change tweaks: adjust two comments, and correct and a few cosmetic mistakes tweaks: avoid an unused-variable warning with --disable-nanorc tweaks: change some mayday messages, to urge the user to report a bug tweaks: change the arrows to triangles also for searching in file browser tweaks: change the help-text arrows to triangles, to be more visible tweaks: chuck a bunch of asserts -- they have lost their usefulness tweaks: chuck an assert, and then condense the code and a comment tweaks: constify the result strings of getenv(), as a reminder tweaks: correct two minor things in the documentation tweaks: discard another set of useless asserts tweaks: discard some obsolete debugging stuff tweaks: don't construct the positions-history filename time and again tweaks: drop a bunch of outdated asserts tweaks: drop the ineffective cgitrc -- sorting by "age" does not work tweaks: elide a comment, and improve a couple of others tweaks: elide an unneeded check tweaks: elide an unneeded function now that stuff is grouped together tweaks: elide a superfluous allocation tweaks: elide two variables by using a pointer instead of an index tweaks: fix compilation when configured with --disable-histories tweaks: fix compilation when configured with --enable-tiny tweaks: fix compilation with --enable-tiny --enable-histories tweaks: frob a couple of comments tweaks: frob some comments and rename a few variables and a function tweaks: get rid of some cluttering conditional compilation tweaks: improve some comments, and rename a variable for symmetry tweaks: make the switching on and off of the cursor a bit more compact tweaks: move a general function to the utils.c file tweaks: reduce a bit of code duplication tweaks: remove a comment from the docs that is no longer accurate tweaks: remove another bit of conditional compilation tweaks: remove a superfluous no-op function call tweaks: remove a useless prefix from a hundred constants tweaks: rename a function and swap its two parameters tweaks: rename a function plus two parameters, to be more fitting tweaks: rename a macro, to make a little more sense tweaks: rename a variable, to avoid a possible confusion tweaks: rename a variable, to make more sense tweaks: rename one variable once more tweaks: rename some constants, to follow the same underscoreless scheme tweaks: rename three functions, to be shorter or clearer tweaks: rename three variables, for more contrast tweaks: rename two variables, for contrast, and frob some comments tweaks: rename two variables, to be more indicative of what they do tweaks: rename two variables, to make a little more sense tweaks: reshuffle a bit of code and elide an unneeded variable tweaks: reshuffle a couple of lines, and trim some comments tweaks: reshuffle some code, and rename a variable tweaks: reshuffle some code in order to elide a variable tweaks: reshuffle some regexes, for order and compactness tweaks: strip four unneeded checks tweaks: transform the token DISABLE_COLOR to ENABLE_COLOR tweaks: transform the token DISABLE_EXTRA to ENABLE_EXTRA tweaks: transform the token DISABLE_HISTORIES to ENABLE_HISTORIES tweaks: transform the token DISABLE_JUSTIFY to ENABLE_JUSTIFY tweaks: transform the token DISABLE_OPERATINGDIR to ENABLE_OPERATINGDIR tweaks: transform the token DISABLE_SPELLER to ENABLE_SPELLER tweaks: transform the token DISABLE_WRAPJUSTIFY to ENABLED_WRAPORJUSTIFY tweaks: transform the token DISABLE_WRAPPING to ENABLE_WRAPPING tweaks: use mnemonic constants instead of TRUE and FALSE Brand Huntsman (3): bindings: allow exiting from the help viewer with F1, like with ^G history: prevent overwriting of positions between multiple instances syntax: nanohelp: colorize Up, Down, Left and Right (when not in UTF-8) David Lawrence Ramsey (18): build: add history.c to the list of files with translatable strings display: don't cut off zero-width characters at the end of a chunk docs: describe the bindable functions 'recordmacro' and 'runmacro' docs: document the more everyday names of three bindable functions docs: remove man page reference to indent/unindent lacking undo/redo files: don't change file format when inserting into an existing buffer help: allow firstline and lastline to work at the search prompt history: fix the check for an existing $HOME/.nano/ directory moving: set the preferred column properly when doing a smart home search: don't bother saving and restoring the search direction search: trim a failed search string for width instead of length softwrap: break before multi-column Unicode blanks when they overshoot syntax: nanorc: properly color valid arguments of 'selectedcolor' text: hook up indenting and unindenting to the undo/redo code text: move the indenting of a single line into its own function text: move the unindenting of a single line into its own function tweaks: use printf's z modifier for most of the size_t/ssize_t types undo: generalize update_comment_undo() into update_multiline_undo() Lion Yang (1): input: ensure that standard input uses blocking mode Marco Diego Aurélio Mesquita (5): general: do not free strings gotten from getenv(), to avoid a crash history: remember the commands that were executed during this session history: remember the list of executed commands across sessions new feature: show current and total number of open buffers in title bar new feature: the ability to record and play back a series of keystrokes Simon Ochsenreither (1): startup: look for nanorc and history files also in the XDG directories Viorel Bota (1): files: check for a changed disk file also for 'savefile' and --tempfile Changes between v2.8.6 and v2.8.7: ---------------------------------- Benno Schulenberg (54): bindings: hard-bind Alt+Up and Alt+Down to findprevious and findnext browser: correct the inverted search behavior for Alt+Up/Alt+Down bump version numbers and add a news item for the 2.8.7 release display: catch all cases where the cursor can be pushed offscreen display: don't doubly show tabs that cross a chunk boundary files: do not silently ignore an invalid backup directory, but die files: don't close a file descriptor when opening failed [coverity scan] files: don't try to open a negative file descriptor [coverity scan] gnulib: update to its current upstream state linting: don't try to put the cursor at a negative x position linting: skip the introductory message produced by 'gcc -fshow-column' mouse: one click of the wheel should move three lines, not three pages moving: don't push x forward when backward movement lands on a split tab moving: get unstuck when trying to pass over a sprawling tab moving: improve retention of the target column somewhat moving: the current chunk is always 0 when not in softwrap mode moving: use the correct formula for pushing the index forward rcfile: don't leak a shortcut when something goes wrong [coverity scan] softwrap: properly move up and down over tabs that are split over rows syntax: c: give labels some color too syntax: html: don't bother coloring tags that cross line boundaries syntax: python: don't require a character after an opening triple quote text: properly unindent lines that consist of only whitespace tweaks: a comma does not end a sentence, and is not part of a variable tweaks: adjust the indentation after the previous change tweaks: adjust the indentation after the previous change tweaks: adjust the indentation after the previous change tweaks: allow enough space for the Y/N/A characters [coverity scan] tweaks: avoid trying to stat a file that might be NULL [coverity scan] tweaks: close a file also in the error path [coverity scan] tweaks: condense or improve some comments tweaks: condense some logic, to elide a variable and a comment tweaks: do not leak the indentation when all lines are empty tweaks: don't close a descriptor when its stream has already been closed tweaks: drop some debugging stuff tweaks: drop some debugging stuff, and frob two comments tweaks: elide an unneeded pointer tweaks: elide the global variable 'full_operating_dir' tweaks: fix compilation with --enable-{tiny,help,multibuffer} tweaks: group all movement routines in corresponding pairs tweaks: keep the const qualifier of the syntax name [coverity scan] tweaks: remove includes that appear to be superfluous tweaks: rename a function, to let it make more sense tweaks: rename a label, to better match its task tweaks: renumber the special key codes, to be in sequence and grouped tweaks: reshuffle code and frob comments, to reduce the number of lines tweaks: reshuffle some code to harmonize two related functions tweaks: reshuffle some declarations and trim a few comments tweaks: restore an include that is necessary on some platforms tweaks: show "where is next" in the help lines of the file browser tweaks: simply set the proper scrolling mode, instead of imitating it tweaks: snip a superfluous clearing of the bottom bars after help tweaks: sort the includes, so it's a little easier to see what is there tweaks: specify more directly in what manner to move the viewport David Lawrence Ramsey (23): browser: allow backward/forward re-searches with Alt+Up/Alt+Down display: constrain line numbers on softwrapped lines with sprawling tabs display: do show the visible character for a tab when it starts a row display: revamp how screen updates are done in the movement code moving: redraw not just the new current line but also the prior one small addition: allow customizing the color of selected text softwrap: correctly move vertically through overwide tabs softwrap: don't push a straddling tab to the next chunk softwrap: improve left/right navigation across line boundaries softwrap: make sure char_len is set when a tab is wider than a chunk softwrap: properly update the viewport when adding text at firstcolumn text: make indenting add to the beginning of the line text: make unindenting remove from the beginning of the line tweaks: adjust spacing and wording in sample.nanorc tweaks: correct a comment typo and an indentation error tweaks: harmonize some prototypes with their functions tweaks: remove unneeded parentheses and blank line and braces tweaks: replace a misplaced tab with a space tweaks: set the target row for smooth scrolling more directly tweaks: use charalloc() instead of (char *)nmalloc() * sizeof(char) weeding: drop the forreal parameter from place_the_cursor() weeding: remove redundant casts of nmalloc() weeding: remove the unused be_clever parameter from do_home()/do_end() Rishabh Dave (1): new feature: allow pasting at all input prompts Urja Rannikko (1): bindings: hard-bind Alt+Left and Alt+Right to buffer switching Changes between v2.8.5 and v2.8.6: ---------------------------------- Benno Schulenberg (58): build: for Solaris, tell the linker to use a threading lib bump version numbers and add a news item for the 2.8.6 release display: avoid a jumpy cursor by redrawing bottom bars only when needed display: when back in the main loop, always redraw the help lines display: wipe stale messages from the status bar straightaway docs: add some more mark-up to the Info document docs: be more precise about when a dash is given instead of a filename docs: drop the cluttering Info-style links from the HTML manual docs: improve cross references and mark-up in the Info document docs: improve some spacing, especially of the synopsis in the PDF docs: make the guillemot and the middle dot appear correctly in HTML docs: move the descriptions of 'header' and 'magic' next to 'syntax' docs: remove the mention of backslashes for the argument of 'comment' docs: reword the explanation of the 'syntax' command docs: use real cross references in the Info document docs: use the @command and @option mark-up more consistently files: don't bother counting rows when opening a fresh buffer files: warn more conspicuously when the file on disk has changed gnulib: update to its current state input: recognize the Ctrl+Arrow key sequences from Haiku's Terminal options: recognize -a and --atblanks on the command line options: rename --cut to --cutfromcursor, to be clearer pasting: restore the cap on the number of chunks to move backward rcfile: don't require backslashing in the argument of 'comment' screen: defeat a VTE/Konsole bug also for the case of --constantshow screen: retain the same help-line tags when the window is resized softwrap: when possible, go back a whole bunch of chunks at a time startup: don't try parsing color names that were not specified startup: in default mode, display the tail of the file as Pico does suspension: prevent entering an invalid byte upon resume (with S-Lang) syntax: gentoo: make it clearer that the file contains two syntaxes syntax: man, groff: fix the string that introduces a comment syntax: nanorc: don't color numeric arguments specially syntax: nanorc: don't color the argument of 'linter' as if invalid syntax: texinfo: cover also some special cases like @U, @OE and @TeX tweaks: adjust an error message so it fits all possible cases tweaks: avoid a clang warning about an expression being treated as NULL tweaks: avoid a failure with black diamonds in a PDF tweaks: avoid an unused-variable warning for the tiny version tweaks: chuck some debugging stuff tweaks: chuck two useless asserts, and elide a call to strncasecmp() tweaks: correct two conditions for conditional compilation tweaks: drop a bunch of useless asserts tweaks: elide unneeded calls of get_last_chunk_leftedge() tweaks: fix compilation with --enable-tiny tweaks: move an include to the file that actually makes use of it tweaks: put declarations always first, so it will compile on Haiku tweaks: recognize the empty string as comment inhibitor, instead of NULL tweaks: remove two superfluous includes tweaks: rename a constant, to match the corresponding option tweaks: rename another constant, to be more precise tweaks: rename a variable, to have more contrast tweaks: rename four functions, to be more distinct tweaks: rename two variables, to make a little sense tweaks: reshuffle some things to condense the code tweaks: simplify the parsing of color combinations tweaks: spell an option correctly in NEWS tweaks: swap ^X and ^L in the help lines of the help viewer David Lawrence Ramsey (29): display: when converting tabs, don't go beyond the screen width docs: consistently describe the -U/-c and -r/-w overrides docs: mention that boldtext can be overridden also for function tags docs: mention the default values for comment and whitespace directives moving: fix the cursor jumping back and forth with non-smooth paging moving: make vertical movement account for varying chunk width new feature: allow lines to be softwrapped at whitespace replacing: make spotlight() account for varying chunk width softwrap: add new functions for chunks of varying width softwrap: don't flag EOL too early, nor break continuous text too early softwrap: in do_mouse(), keep the cursor before a softwrap breakpoint softwrap: make the changes to actually allow the chunk width to vary softwrap: prepare for allowing the chunk width to vary softwrap: remove unneeded caps on the number of chunks to move syntax: nanorc: properly color a "fill" option with a negative value text: adjust the comments in do_indent() and do_unindent() text: make do_unindent() an exact copy of do_indent() text: make sure commenting is disabled when comment "" was specified text: normalize the indentation in do_indent() and do_unindent() text: remove indent-related code from do_unindent() text: remove the last usage of cols in do_indent() and do_unindent() text: remove unindent-related code from do_indent() text: remove unneeded references to cols from the indentation routines text: update placewewant properly when indenting/unindenting tweaks: correct a parameter type, and correct two empty initializations tweaks: fix a typo in NEWS tweaks: only compensate for a partially-offscreen line in softwrap mode tweaks: remove unneeded braces, and mark empty parameter list as void usage: a dash doesn't have to come first among the filenames Changes between v2.8.4 and v2.8.5: ---------------------------------- Benno Schulenberg (35): bindings: in the tiny version exclude word jumping from the prompts bump version numbers and add a news item for the 2.8.5 release display: don't let a SIGCONT write anything to the screen display: don't show the cursor while we are busy calculating its position display: redraw title bar and edit window only when needed display: show the cursor position also when searching took a while docs: avoid a double "see" for cross references in the HTML manual docs: spell "title bar" and "status bar" correctly gnulib: update to its current state input: give an appropriate message when there are too many errors startup: allow negative line and column numbers on the command line startup: allow positioning the cursor also when reading standard input startup: always open with the file that was mentioned first startup: don't crash when opening standard input would fail startup: don't mark the buffer as modified when in view mode startup: don't mark the buffer as modified when nothing was read startup: don't try placing the cursor when reading standard input failed startup: don't use position history when reading from standard input suspension: fake a SIGWINCH when coming back out of the background suspension: remove a duplicate setting of the HUP and TERM handler syntax: default: allow leading whitespace before a hash comment tweaks: adjust indentation after preceding changes tweaks: avoid compiler warning about implicit type tweaks: be consistent in the spelling of title bar and status bar tweaks: don't bother calculating the position when we won't show it tweaks: elide a function that should not be a separate one tweaks: elide a variable tweaks: frob a few comments, and elide and #ifndef tweaks: reduce the scope of three variables, and rename them besides tweaks: reduce the scope of two variables, and rename them too tweaks: rename a function and a variable, to better match what they do tweaks: rename a variable, and frob a couple of comments tweaks: rename two functions and a variable, and invert its logic tweaks: reshuffle some stuff, to put related things closer together tweaks: unglobalize the nodelay_mode variable Changes between v2.8.3 and v2.8.4: ---------------------------------- Benno Schulenberg (11): build: correct the inverted logic for the nanorc man page bump version numbers and add a news item for the 2.8.4 release gnulib: update to its current state syntax: default: color also hash comments and email addresses syntax: php: color "static" again as "function", like it used to be tweaks: adjust the indentation after the preceding change tweaks: avoid an unused-variable warning when using --disable-comment tweaks: do actual screen refreshes in a single call, when possible tweaks: remove the no-op x$disable tests tweaks: reorder three items in the Info document tweaks: reshuffle a few things to reduce duplication Changes between v2.8.2 and v2.8.3: ---------------------------------- Benno Schulenberg (34): bindings: allow toggling a new buffer when multiple buffers are enabled build: don't use a dummy dependency, as it breaks non-GNU makes build: for Solaris, tell the linker where to find clock_gettime() build: use backticks to avoid a warning during autoreconf build: use the "force" mechanism to always run the revision rule bump version numbers and add a news item for the 2.8.3 release chars: optimize moving a character left in the non-UTF-8 case chars: probe for a valid UTF-8 starter byte, instead of overstepping chars: valid UTF-8 codes are at most 4 bytes long, so look only that far display: keep the cursor put, also when toggling nohelp or morespace files: don't ask "save anyway" when user orders to discard the buffer history: don't save the cursor position for temporary help files moving: limit the target column when it is beyond the last chunk replacing: don't let placewewant influence the placement of the cursor startup: don't call delwin() with NULL, to avoid crashing on Solaris syntax: makefile: color comments only at start of line or after whitespace syntax: nanohelp: color also ^6 as a shortcut keystroke syntax: php: color also variable names, and color more reserved words syntax: php: recognize also the .phtml and .php7 extensions syntax: xml: recognize an XML file also by its first line tweaks: add another warning for an impossible condition tweaks: adjust whitespace and comments after the preceding change tweaks: avoid an empty function call in tiny version with line numbers tweaks: exclude from the tiny version five error-betraying messages tweaks: exclude from the tiny version two messages that will never occur tweaks: fix compilation with --enable-tiny ...-help and ...-multibuffer tweaks: remove an old fault-catching message tweaks: remove five dummy function definitions from the tiny version tweaks: rename three empty functions, and reshuffle some others tweaks: rewrap a couple of old items in NEWS, and fix an article tweaks: swap a comparison, to be clearer tweaks: transform the token DISABLE_BROWSER to ENABLE_BROWSER tweaks: transform the token DISABLE_NANORC to ENABLE_NANORC tweaks: transform the token DISABLE_TABCOMP to ENABLE_TABCOMP David Lawrence Ramsey (2): display: ensure smooth scrolling when the edit window is resized tweaks: fix several whitespace irregularities Changes between v2.8.1 and v2.8.2: ---------------------------------- Benno Schulenberg (64): bindings: allow using to scroll back up in the help viewer bindings: allow using '/' to start a search in the help viewer bindings: show Home and End in browser help text, instead of M-| and M-? browser: make ^End work properly by fixing a paste error build: make --enable-help properly depend on --enable-multibuffer bump version numbers and add a news item for the 2.8.2 release display: initialize the colors only when starting to draw the content display: push the titlebar to the screen as soon as it has been drawn docs: add an item to the FAQ, about pasting from Windows to a remote nano docs: harmonize the nanorc man page and Info document a bit docs: in the FAQ, extend the answer to the pasting problem docs: reword the main paragraph of the man page docs: update the list of who authored what gnulib: update to its current state in git help: after a search, show the cursor only when something was found help: allocate enough space for the descriptions, so we don't crash help: don't crash when nano was started with --noread help: don't cycle forward in the buffers when exiting from help help: keep the same position also after M-\ or M-/ has been used help: keep the text at the same position when the screen is resized help: remove the final blank line, so does the same as all help: set tabsize to the default width while showing a help text help: suppress nano's name and number to make it clearer this is help help: use a dedicated syntax to color shortcuts in a help text help: when searching, do it forward, without case, and without regexes input: avoid crashing when resizing the window during verbatim input options: allow -U (--quickblank) to be used in the tiny version scrolling: don't bother to limit the number of lines to step back startup: warn about a strange character size only in the UTF-8 case syntax: nanohelp: change the hue of the keystrokes to match sample.nanorc tweaks: add a warning for a condition that should never occur tweaks: add three warnings for conditions that should never occur tweaks: avoid an unused-variable warning tweaks: be more precise about what --disable-extra does tweaks: check for an empty needle in a central place tweaks: complete the exclusion of backups and such from the tiny version tweaks: condense two bits of code, and drop two asserts tweaks: distinguish (in the comments) between buffers and linestructs tweaks: drop a bunch of asserts tweaks: elide a function that is used just once tweaks: fix compilation with --enable-tiny --enable-color --enable-speller tweaks: fix two typos tweaks: remove a superfluous check tweaks: remove a superfluous strlen() call from the reverse searches tweaks: remove some superfluous placements of the cursor tweaks: remove two superfluous calls of wnoutrefresh() tweaks: rename a constant, to match the corresponding option tweaks: rename a function, to be more accurate tweaks: rename a function, to better suit what it does tweaks: rename another function, to better describe what it does tweaks: rename a parameter, to be more imperative tweaks: rename a variable, use a faster comparison, and reshuffle a bit tweaks: rename one variable again tweaks: rename some more of these 'rev_start' variables tweaks: rename three variables, elide another, and reshuffle some stuff tweaks: rename two variables, because this 'rev_start' is irksome tweaks: reshuffle a couple of lines to avoid a duplicate call tweaks: reshuffle help-text initialization, to elide a save-and-restore tweaks: reshuffle some more stuff, and rename two more variables tweaks: swap the names of two variables, to make more sense tweaks: transform the token DISABLE_MOUSE to ENABLE_MOUSE tweaks: transform the token DISABLE_MULTIBUFFER to ENABLE_MULTIBUFFER tweaks: use the logic from revstrstr() also in mbrevstrcasestr() tweaks: use the logic from revstrstr() also in revstrcasestr() David Lawrence Ramsey (1): docs: mention that also numbercolor overrides boldtext Rishabh Dave (1): new feature: add a search facility to the help viewer Changes between v2.8.0 and v2.8.1: ---------------------------------- Benno Schulenberg (33): bindings: make ^Home and ^End go to top and tail of buffer bindings: make ^Up/^Down go to first/last row in the file browser bindings: use arrows instead of words to designate the cursor keys bump version numbers and add a news item for the 2.8.1 release copyright: update the year in --version, and use the standard hyphen copyright: update the years, use ranges, and explain this usage display: check the correct character for being double-width display: with softwrap, show the cursor where the eye expects it docs: correct an answer to a question in the FAQ docs: mention another difference with Pico in the Info document docs: remove the self-referencing stuff and the changelog from the FAQ docs: trim the TODO file a bit, and put the more important items first editing: avoid creating blank lines when using autoindent files: check also for write errors when prepending, not just read errors gnulib: update to current state linting: treat a tab as one "column", not eight linting: when no is said to a file, remove all corresponding entries moving: when determining where we are on the screen, use placewewant tweaks: adjust a couple of comments tweaks: again use memory on the stack instead of malloc() and free() tweaks: close the backup file also when we skip making a backup tweaks: delete a function that hasn't been used since 2005 tweaks: delete unnecessary function prototypes tweaks: elide a variable and a pair of braces tweaks: fix some inconsistencies in an old Changelog tweaks: fix two typos in the NEWS file tweaks: group ^D and ^H together in the help lines tweaks: keep the help text aligned, also with the narrow arrows tweaks: put M-A before ^6, to look better above M-6 in the help lines tweaks: put unshifted shortcuts ^6 and M-6 first, instead of ^^ and M-^ tweaks: reduce the number of additions that actual_x() performs tweaks: replace a function call or a macro with a hard number tweaks: use memory on the stack instead of calling malloc() and free() David Lawrence Ramsey (5): bindings: use arrows instead of words for search history too display: show '<' and '>' placeholders for characters that get split input: support escape sequences for ^Home and ^End scrolling: properly compensate for the onscreen chunks tweaks: avoid a compilation warning Kamil Dudka (1): backup: prevent a symlink attack by operating on the file descriptor Mike Frysinger (2): configure: fix up word boundary regex logic now that we have gnulib configure: ignore the REG_ENHANCED test when we use gnulib Changes between v2.7.5 and v2.8.0: ---------------------------------- Benno Schulenberg (56): bindings: accept "q" and "x" to exit from help viewer and file browser bindings: group the three search-again shortcuts together bump version numbers and add a news item for the 2.8.0 release docs: mention some more differences with Pico in the Info document files: drop the pointless "[from ./]" from the insert-file prompt files: on second thought... keep the "[from ./]" input: count a manually entered unicode as one character moving: don't try to redraw lines that have gone outside the viewport moving: /do/ redraw the prior line when the viewport hasn't changed moving: the current chunk cannot be beyond the last chunk of a line oops -- that's what you get when you don't test things before pushing painting: don't try to start highlighting before column zero screen: don't push the longer-line indicator ($) to the next row spelling: keep the cursor at end-of-line if it was there startup: add option 'nopauses' to disable pausing after a warning tweaks: add a warning for a condition that should never occur tweaks: avoid a few needless reallocations tweaks: chuck some debugging stuff and some useless asserts tweaks: condense some declarations by reshuffling tweaks: correct some formatting irregularities in the FAQ tweaks: don't loop over an initializer tweaks: don't optimize for the wrong case tweaks: don't turn the mark off before it's needed tweaks: ehm... the warning is more important for the softwrap case tweaks: elide an intermediate variable tweaks: elide a small intermediate buffer tweaks: elide a variable tweaks: elide two variables, and condense some statements tweaks: factor out a bit of common code tweaks: fix compilation with --enable-tiny --enable-help tweaks: frob a couple of comments tweaks: frob some parentheses and other things, to be more consistent tweaks: gettextize a forgotten error message tweaks: make WhereIsNext available in browser in tiny version tweaks: mark a message for translation tweaks: optimize determining the number of columns that a text spans tweaks: reduce the scope of five variables, and frob some comments tweaks: remove a disabled warning, and adjust a translator hint tweaks: rename and shorten a small helper function tweaks: rename a variable and invert its logic tweaks: rename a variable, drop a false assert, and reshuffle a bit tweaks: rename three variables, to better distinguish bytes from columns tweaks: rename two variables, to be more distinctive tweaks: reshuffle some lines and adjust some comments tweaks: reshuffle some more lines and improve four comments tweaks: reshuffle some statements, to avoid double assignments tweaks: reshuffle the bindings to group things more logically tweaks: reshuffle three statements, and shorten a comment tweaks: reshuffle two declarations for a more consistent order tweaks: shorten a bit of logic tweaks: simplify and correct a computation tweaks: suggest a separate color scheme for root tweaks: trim a displayable string in a more efficient manner tweaks: use two extra variables to make it clearer what is being done usage: don't mention +LINE,COLUMN as an option, because it isn't wrapping: add the correct char length when skipping consecutive blanks David Lawrence Ramsey (52): configure: don't check for the existence of iswspace() anymore display: don't compensate for chunks before firstcolumn display: don't draw more chunks than the screen can hold display: limit an optimization to non-softwrap mode display: make PageUp/PageDown use the correct beginning of the viewport docs: update README.GIT for gnulib-related changes files: revamp the insertion of a file, to be more like pasting text moving: determine the correct leftedge when paging up/down too replacing: fix spotlight() to highlight words properly in softwrap mode softwrap: account for firstcolumn in reset_cursor() softwrap: account for firstcolumn when checking for offscreen current softwrap: account for firstcolumn when scrolling up a line softwrap: account for softwrap in get_page_start() softwrap: account for softwrapped chunks when adding text softwrap: account for softwrap when checking whether current is offscreen softwrap: add two chunk-iterator functions softwrap: adjust firstcolumn when the window width changes softwrap: count softwrapped chunks properly in do_gotolinecolumn() softwrap: count softwrapped chunks properly in do_uncut_text() softwrap: count softwrapped chunks properly in read_file() softwrap: improve End's behavior with softwrapped chunks softwrap: improve Home's behavior with softwrapped lines softwrap: improve Left and Right's behavior with softwrapped chunks softwrap: improve PageUp and PageDown's behavior with softwrapped chunks softwrap: improve Up and Down's behavior with softwrapped chunks softwrap: iterate through softwrapped chunks better in do_mouse() softwrap: iterate through softwrapped chunks in adjust_viewport() softwrap: iterate through softwrapped chunks in edit_scroll() softwrap: move the updating of a softwrapped line to a new function softwrap: prepare for a more flexible viewport softwrap: remove and replace workarounds for firstcolumn softwrap: save and restore firstcolumn when copying text softwrap: save and restore firstcolumn when internally spell-fixing text softwrap: save and restore firstcolumn when replacing text softwrap: save firstcolumn when justifying, restore it when unjustifying speller: fix replacing marked text in the alternate spell checker syntax: nanorc: color also the option "linenumbers" as being valid tweaks: add a parameter to do_home() and do_end() tweaks: fix a comment typo tweaks: mention nano's ability to read from standard input in usage() tweaks: move comments outside of if blocks in break_line() tweaks: prepare for improvements to do_home() and do_end() tweaks: remove cluttering #ifdefs from break_line() tweaks: rename need_horizontal_scroll() to line_needs_update() tweaks: slightly optimize an allocation in display_string() tweaks: stop converting text once we overshoot span columns undo: fix undoing/redoing insertions, since they no longer do partitioning usage: mention the -g/--showcursor option weeding: remove ensure_line_is_visible() weeding: remove maxlines and related code weeding: remove partitioning and related stuff from do_insertfile() weeding: remove partitioning and related stuff from do_justify() Hans-Bernhard Broeker (1): tweaks: make sure calls to functions/macros use "unsigned char" Mike Frysinger (19): add an explicit test for set_escdelay() add support for gnulib assume getopt_long support is always available assume regex.h support is always available configure: require autoconf-2.69/automake-1.14 configure: require gettext-0.18.3, and drop our bundled m4 files drop the getdelim/getline fallback functions drop the glib fallback for snprintf/vsnprintf drop the isblank/iswblank fallback functions drop the wchar.h/wctype.h/stdarg.h checks drop various str fallback functions fix build on systems without pwd.h handle builds on systems without termios.h handle deficient signal systems pull in the glob module from gnulib pull in the lstat module from gnulib pull in the nl_langinfo & wcwidth modules from gnulib pull in the sys_wait module from gnulib tweaks: disable gnulib's workaround for the globbing of broken symlinks Changes between v2.7.4 and v2.7.5: ---------------------------------- Benno Schulenberg (65): bump version numbers and add a news item for the 2.7.5 release files: leave out the confusing "[from ./]" when prompting for a command general: stop the spell checker from crashing after the changes in search justify: reduce the character count when trimming trailing spaces painting: account for index maybe being zero after the preceding change painting: advance only when both start /and/ end match are zero-length painting: do not bluntly ignore zero-length start matches -- handle them painting: do not let a match for 'end' overlap a match for 'start' painting: don't look at the current multidata when coloring a line painting: make use of the multidata of the preceding line painting: mark an unpaired start match as CWOULDBE painting: properly detect a change in start/end matches painting: properly look for a new start match only after the end match painting: stay within the line when skipping zero-length matches painting: when skipping a zero-length match, skip a character, not a byte rcfile: don't accept empty regexes for syntax coloring replacing: compensate cursor position only for replacements /before/ it replacing: detect when the whole region has already been covered replacing: don't go outside of the selected region replacing: ignore the first match when the user said no replacing: start at the region's edge instead of one step before it replacing: stop searching in a region when edge of buffer is reached screen: don't compare a character index with a column position screen: ehm... no, that was wrong: page_start /is/ a column position search: begin from where we are, to be able to find the first \B search: make the \b and \B anchors work correctly in both directions spelling: correctly adjust the length of a single-line region spelling: don't unnecessarily fiddle with the viewport startup: report an error when the given line or column number is invalid statusbar: display at most three consecutive alert messages tweaks: adjust some comments, reshuffle a line, and use a while loop tweaks: adjust two comments, to be more accurate tweaks: adjust whitespace after preceding changes tweaks: and rename another variable, to keep in style tweaks: chuck some obscuring debugging stuff tweaks: condense a comment, rename a variable, and use a while loop tweaks: differentiate single-regex matches from paired-regex matches tweaks: discard the now unused multidata-resetting routine tweaks: elide a variable plus its corresponding dark logic tweaks: fiddle with some wordings in the texinfo document tweaks: free an option string also when it was invalid tweaks: move a comment and rewrap a line tweaks: normalize some paragraph formatting in the FAQ tweaks: rearrange some code to separate softwrap and normal mode more tweaks: rename a function, and drop an unneeded parameter tweaks: rename a function, to show it refers to screen rows tweaks: rename another variable, to be shorter tweaks: rename a variable and condense an if tweaks: rename a variable -- lines refers to buffer, rows to screen tweaks: rename a variable, to be more general tweaks: rename a variable, to be more general and match one elsewhere tweaks: rename some variables, to better distinguish rows from lines tweaks: rename some variables, to show they refer to screen rows tweaks: rename two variables, and always pass a valid result back tweaks: rename two variables, to avoid double negatives tweaks: reshuffle an assignment and trim some comments tweaks: reshuffle a test to a better place tweaks: reshuffle three variables tweaks: scrap a bunch of debugging lines -- they obscure the logic tweaks: scrap some debugging stuff tweaks: slightly speed up the change detection for multiline matches tweaks: swap two blocks of code to reduce the number of #ifdefs tweaks: update some copyright years tweaks: use a cheaper way to detect an end-of-line tweaks: use a subtraction instead of a counter David Lawrence Ramsey (16): docs: mention the ability to read from stdin screen: don't hide two-column characters at left edge in softwrap mode tweaks: adjust and correct some comments tweaks: always directly do a refresh when the margin changes tweaks: do a comparison a bit differently in do_output() and do_deletion() tweaks: fix compilation when configured with --enable-tiny tweaks: improve comments and formatting in update_line() tweaks: let update_line() return the correct value on error tweaks: reduce duplicate code in new_magicline() and move_to_filestruct() tweaks: rename a variable and adjust some types in edit_scroll() tweaks: rename a variable in edit_redraw(), to make sense tweaks: rename a variable in edit_scroll(), to make sense tweaks: rename mouse_x & mouse_y to mouse_col & mouse_row in do_mouse() tweaks: rename the functions for moving to and copying from a buffer tweaks: rewrap two lines and fix two typos tweaks: split the grafting code off from copy_from_buffer() Mike Frysinger (3): syntax: c++: add override keyword syntax: gentoo: flag mixed whitespace syntax: gentoo: match .eblit files too Changes between v2.7.3 and v2.7.4: ---------------------------------- Benno Schulenberg (48): build: check for GNU-style word-boundary support also in the tiny version build: include the old Changelogs in the tarball build: install the Info and Html manuals even when 'makeinfo' is missing build: move all documentation into a single directory build: move the syntax files out of the doc/ directory build: rename the sample config file, so it will be colored like a nanorc bump version numbers and add a news item for the 2.7.4 release copy: properly set preferred x position when region was marked backwards cut: indicate a buffer as modified only if actually something was deleted docs: add a new Changelog -- a list of the short commit messages docs: bring some air into the FAQ, so that become useful docs: fix some spellos and trim some trailing tabs in the old Changelog docs: rename the Changelogs to indicate which periods they cover docs: snip some obsolete items from the FAQ, and normalize its dates docs: standardize the dates in the old Changelog inserting: adjust the desired x position (don't restore the old one) screen: examine the whole line when painting, to set the correct info search: make a regex with a beginning-of-word anchor work correctly softwrap: don't scroll half a page when just a few lines will do softwrap: when pasting an overlong line, ensure it is fully visible softwrap: when typing M-/, ensure the last line is fully visible syntax: html: be more precise with tags, and paint attribute names tweaks: adjust whitespace after the previous change tweaks: chuck a couple of useless asserts tweaks: condense two ifs to a single one tweaks: discard some conditional compilation tweaks: don't compare a character offset with a column position tweaks: don't use a variable for two different purposes tweaks: fix compilation when configured with --disable-wrapping tweaks: frob some comments, and transform one variable tweaks: frob some comments, elide a variable, and use 'while' loops tweaks: if there is no end match, there is nothing to paint tweaks: miscellaneous frobbings tweaks: rearrange and reindent some lines in the painting routines tweaks: remove the cluttering conditional compilation of a parameter tweaks: rename another variable, to show it refers to columns not chars tweaks: rename a variable, chuck an assert, and frob a comment tweaks: rename three painting variables, to be more distinct tweaks: rename two variables, for distinguishing characters from columns tweaks: rename two variables to be just one as they play the same role tweaks: rename two variables, to be more telling tweaks: reshuffle a statement to a better place and condense some comments tweaks: set the length of a search match in a clearer manner tweaks: slightly condense a function and its comment tweaks: terminate lots of sentences with a period in the old Changelog tweaks: the starting point for painting /cannot/ be offscreen tweaks: when allow_tabs is FALSE, allow_files is irrelevant undo: properly create separate items for deletes at different positions David Lawrence Ramsey (7): screen: properly place the cursor after inserting a file softwrap: ensure the current line is fully visible after inserting a file tweaks: avoid an unnecessary fiddling with current_y in do_mouse() tweaks: line numbers are ssize_t, not int tweaks: move a setting, fix a type, and rearrange a line in do_mouse() weeding: remove another unnecessary setting of openfile->current_y weeding: remove unnecessary settings of openfile->current_y Felix Janda (1): speller: fix build when tiny build is enabled Changes between v2.7.2 and v2.7.3: ---------------------------------- Arturo Borrero González (1): syntax: nftables: add two new families, and add set references Benno Schulenberg (62): binding: use plain codes instead of function calls for the jumping keys binding: use the code for the Enter directly instead of a function call bump version numbers and add a news item for the 2.7.3 release chars: optimize for the most common case chars: use memory on the stack instead of calling malloc() and free() docs: clarify the difference between "Esc Esc ddd" and "M-V xxxxxx" files: don't change embedded newlines into nulls in filenames files: show newlines in filenames as ^J also in error messages general: simplify the detection of a SIGWINCH history: avoid crashing when the positionlog file is malformed history: don't bother encoding search items -- they cannot contain newlines history: encode newlines in filenames as nulls history: search for the two position numbers from EOL instead of BOL history: search items *can* contain newlines -- encoded NUL bytes input: detect again when both Shift and Ctrl are being held on a VT input: discard a verbatim 0x0A or 0x00 byte, depending on the mode input: don't crash when receiving a KEY_CANCEL locking: disable an annoying warning memory: don't bother making a snug fit for things that will be freed soon oops: forgot to add and amend this to the previous commit po: update translations and regenerate POT file and PO files prompt: do not treat a leading newline in a filename specially prompt: represent newlines as ^J instead of breaking the bar screen: display byte value 0x0A in the right places as ^@ or as ^J screen: draw new content immediately, to prevent color flashes screen: show an embedded newline in filenames as ^J instead of ^@ text: avoid a crash when a spell-checked line has gotten shorter text: discard the undo stack after formatting and after spell checking titlebar: always pass a pathname through display_string() tweaks: adjust some comments and indentation and ordering tweaks: chuck a special case, and reduce the scope of two variables tweaks: condense the setting of three flags tweaks: conditionalize a function that is not used in the tiny version tweaks: delete a bunch of unneeded asserts tweaks: don't bother making the next line of an end point NULL tweaks: don't bother reallocating a string of which there is only one tweaks: don't bother trimming the final newline from a position item tweaks: drive closer to the edge tweaks: elide a counter and a comparison tweaks: elide a function that is called just once tweaks: move a setting to a better place -- it needs setting just once tweaks: put some prototypes in the proper order, and move a bit of code tweaks: remove pointless or obscuring asserts tweaks: rename a function to describe what it does tweaks: rename a function to something less abbrevy tweaks: rename a variable and rewrap two lines tweaks: rename a variable to be shorter and clearer tweaks: rename five variables, for uniformity with a few others tweaks: rename four variables, for density and aptness tweaks: rename three variables, for visibility tweaks: rename three variables, to be more fitting tweaks: rename two variables, for self-documentation tweaks: retype, rename, and reshuffle a function tweaks: start searching at a better place tweaks: use a faster comparison tweaks: use a slightly faster comparison tweaks: use memory on the stack instead of calling malloc() and free() tweaks: write two pieces of conditionalized code like all others undo: there are just two forms of deletion: backspacing and deleting utils: go on to parse the line number even if the column number is bad utils: slightly speed up the calculation of the size of a buffer version: properly mention --disable-wordcomp if it was used David Lawrence Ramsey (2): tweaks: adjust the type of two arguments tweaks: elide two unneeded variables from line numbering mode Changes between v2.7.1 and v2.7.2: ---------------------------------- Benno Schulenberg (53): binding: allow to rebind the word-completion function, and document it binding: always initialize some keycode variables to a standard value build: add configure option --disable-wordcomp to disable word completion build: clean out the revision.h file, to make 'make distcheck' pass bump version numbers and add a news item for 2.7.2 docs: correct and improve the description of --disable-wrapping docs: harmonize the indentation of the README, and tweak some wordings docs: mention that a foreground color can be bright docs: mention that libncursesw5-dev is needed for building from git docs: note Sumedh as the author of the word-completion feature docs: tweak some lines in the NEWS file files: trying to open a non-existent file will never succeed input: add the shifted PageUp and PageDown keycodes produced by VTE input: distinguish from on an rxvt terminal input: distinguish from on an rxvt terminal mouse: use the correct screen width for calculating the cursor position oops: the yesno prompt for replacing does not want a visible cursor po: update translations and regenerate POT file and PO files prompt: remove two fragments of dead code rcfile: actually avoid opening directories and devices rcfile: actually don't try to open things that cannot be syntax files rcfile: check the vital shortcuts just once, not for every included file rcfile: let a 'set fill' reenable hardwrapping screen: do a refresh before changing the value of 'focusing' screen: don't hide the cursor when --constantshow is used screen: don't request an update of the edit window for every yesno prompt screen: don't restore the previous menu after a yesno prompt screen: remove an unneeded blanking of the statusbar screen: switch the cursor back on only in the main loop screen: use the correct width to determine whether a softwrap occurred spelling: correctly restore the selected region startup: activate restricted mode earlier, so --help will reflect it syntax: don't leave the number after 'fill' and 'tabsize' in red syntax: give the statistics part of a git patch a different color tweaks: add a few translator hints tweaks: correct the wording of a string tweaks: delete some obscuring debugging stuff tweaks: factor out a small function tweaks: fix compilation when configured with --enable-tiny tweaks: get rid of some spurious textual references to edit_refresh() tweaks: miscellaneous frobbings and rewrappings tweaks: move a cursor-on switch to a more logical place (again) tweaks: move a switching on of the cursor to a more logical place tweaks: remove a bit of obscuring conditional compilation tweaks: remove an annoying conditional compilation of an argument tweaks: remove a superfluous cleanup call tweaks: remove some cluttering conditional compilation tweaks: remove some more annoying conditional compilation tweaks: rename two variables to make more sense tweaks: replace some unneeded direct calls of edit_refresh() tweaks: reshuffle some things in a more linear manner tweaks: reshuffle three initializations and trim some comments tweaks: use a while loop when the end point is not known in advance David Lawrence Ramsey (8): docs: add info about Slang to README.GIT, and improve info about glib2 files: give feedback when restricted mode prevents overwriting a file general: gettextize three overlooked statusbar messages input: make Shift+Alt+Arrow work properly on rxvt and Eterm terminals input: properly check the full escape sequences for all keys moving: always account for the margin when in line numbering mode tweaks: adjust the type of four lockfile variables tweaks: conditionalize a bit of softwrap code Mike Frysinger (3): configure: fix ncurses lib symbol checking syntax: avoid using black colors syntax: gentoo: various updates Sumedh Pendurkar (1): new feature: complete a fragment to a longer word found in the buffer Changes between v2.7.0 and v2.7.1: ---------------------------------- Benno Schulenberg (71): binding: fix some duplicated carets and too restrictive menus binding: properly conditionalize the UTF-8 parts binding: supply the keycode for most special keys directly binding: use arrows instead of words to designate the cursor keys browser: add the option showcursor, to place the cursor on the highlight build: avoid an annoying warning at configure time build: avoid updated PO files being remerged upon every make bump version numbers and add a news item for 2.7.1 docs: add 'linenumbers' and 'numbercolor' to the sample nanorc docs: add 'set linenumbers' and '--linenumbers' to the texinfo document docs: brush up the TODO list docs: mark some rebindable function names as deprecated docs: mention the existence of the toggles in the man page docs: refresh some info in the FAQ docs: remove a reference that was only valid on Debian systems files: alert about an unwritable file also in the tiny version files: mark a new buffer as modified after inserting command output general: add the option -g/--showcursor, to match Pico general: include word-jumping and block-jumping into the tiny version history: slate the search-history migration for removal input: don't return zero when some function is completely unbound input: handle the "resize key" in a better way input: keep the Ctrl+Arrow keys working when their synonyms are unbound moving: adjust the Y position to correspond with the changed X position po: update translations and regenerate POT file and PO files rcfile: add an option to customize the color of line numbers screen: defeat a VTE bug by doing an extra cursor move and update screen: keep the help items aligned in more configurations screen: keep the help items nicely lined up also in the tiny version screen: move the margin determination to the main loop screen: refresh when a new magicline is added in line-numbering mode screen: repaint the edit window in a single place -- the main loop screen: suppress line numbers when the terminal is very narrow scrolling: don't put the last line at the bottom when softwrap in on scrolling: use a comparison that will work also in softwrap mode softwrap: ensure the current line is fully visible when moving in it softwrap: initialize 'editwincols' early, for computing the number of wraps softwrap: scroll 'enough' whenever it surpasses 'amount' softwrap: scroll the current line fully into view when jumping words softwrap: scroll when searching lands on an overlong bottom line startup: allow to rebind the RegExp toggle also in the tiny version startup: always initialize 'margin' and 'editwincols' syntax: make the contents of the X-Bugs field in a PO file stand out syntax: show another deprecated keyword (replace2) in red syntax: show deprecated keywords in red, and 'wordchars' in green tweaks: adjust some comments and reduce the scope of some variables tweaks: adjust some indentation tweaks: adjust some whitespace and a comment tweaks: compile two parameters unconditionally tweaks: don't bother redrawing some lines when whole screen will be redrawn tweaks: don't spread a statement over multiple lines unnecessarily tweaks: elide an unneeded variable tweaks: elide a parameter that is always FALSE tweaks: fix compilation when configured with --enable-tiny tweaks: frob a few comments tweaks: make several small adjustments to the documentation tweaks: make tiny nano a teeny bit smaller tweaks: move a variable that doesn't need to be global tweaks: preen some comments, and reshuffle a few ifdefs tweaks: remove a band-aid condition that is no longer needed tweaks: remove a bit of duplication tweaks: remove a superfluous blanking of the statusbar tweaks: remove a superfluous setting, and add a comment tweaks: remove a useless cursor movement tweaks: rename a function to better describe what it does tweaks: rename a variable, for consistency tweaks: reshuffle a couple of items tweaks: reshuffle an if statement tweaks: reshuffle some ifdefs, for less fragmentation tweaks: stop compiling the whole_word_only parameter conditionally tweaks: use hard-baked keycodes where possible Faissal Bensefia (1): new feature: the ability to show line numbers before the text Rishabh Dave (2): rcfile: reject key names that are wrong or too long rcfile: reject rebindings that have no effect or have side effects Changes between v2.6.3 and v2.7.0: ---------------------------------- Benno Schulenberg (47): AUTHORS: add Mahyar Abbaspour and Mike Scalora for their contributions bottombar: only count help items that have a shortcut bound to them bump version numbers and add a news item for 2.7.0 docs: explain how to contribute code files: close a lockfile after reading it input: ignore the resize "key", to prevent reporting an unbound key input: look at the modifier keys only when compiled on Linux input: unset a softmark whenever a character is typed moving: make PgUp and PgDown functional also in very flat terminals new feature: allow text selection by holding Shift with the cursor keys po: update translations and regenerate POT file and PO files prompt: don't crash when the terminal is less than four columns wide prompt: leave always at least the last character of the answer visible prompt: mouse clicks that moved the cursor need no further processing prompt: recompose the statusbar text whenever the window size changes prompt: set up the prepared answer before allowing to change it prompt: show a trailing $ when the tail of the answer is offscreen prompt: use angular brackets as continuation mark, as Pico does prompt: work around a VTE bug by outdancing an ncurses optimization restore the GNU marker in nano's name screen: continue to function also in a terminal with very few lines screen: don't die when the window is narrower than four columns screen: retain the placewewant also when using an alternate speller startup: don't crash when dying early statusbar: leave out the brackets when the message is very long tweaks: adjust indentation after previous change tweaks: adjust indentation after previous change tweaks: adjust some braces and indentations tweaks: adjust some comments and remove needless asserts tweaks: don't bother avoiding unneeded rewrites of the promptbar tweaks: don't bother trimming the prompt again tweaks: elide a variable and rename some others tweaks: fix compilation when configured with --with-slang tweaks: fix compilation with --disable-histories tweaks: fix compilation with --enable-tiny again tweaks: improve some indentation and reshuffle a few lines tweaks: make a call in one place instead of in four different ones tweaks: remove an unneeded check, reshuffle some things, add a comment tweaks: rename a function and adjust indentation tweaks: rename three variables tweaks: rename two variables, to make some sense tweaks: reshuffle some stuff in a more logical order tweaks: reshuffle some things, and remove a misplaced comment tweaks: simplify the determination of the number of shown help items tweaks: use a separate function to ask ncurses for keycodes update the copyright notices update the license text to the preferred version Changes between v2.6.2 and v2.6.3: ---------------------------------- Benno Schulenberg (53): bump version numbers and add a news item for 2.6.3 chars: don't persist when only one of the compared sequences is invalid chars: make searching case-insensitively some ten percent faster chars: properly compare strings of different lengths chars: remove a special case that never occurs chars: remove superfluous afterchecks chars: straighten out the flow of a loop, so it is easier to follow debug: add a timing instrument to the main search routine docs: tweak some spacing and spelling files: avoid a warning about not being able to write a lockfile files: make allowances for 32-bit PIDs input: after an Esc, don't discard starter byte of a multibyte sequence input: be more strict in recognizing certain escape sequences input: don't bother putting a keycode into byte range input: don't use a function call when a literal value will do input: fix a pasto from eight years ago, from commit e347efb input: ingest as verbatim just one control code or one or two escapes input: make the Ctrl+Arrow keys work on a Linux console locking: remove any lock files when dying po: update translations and regenerate POT file and PO files screen: don't look at placewewant but at where we actually were and are screen: remove redundant redrawings of the entire edit window shortcuts: group the setting of key string and keycode into one function shortcuts: remove any unnecessary classifying of keys spelling: don't abort when a misspelled word isn't found, just note it spelling: don't consider digits as word parts, because GNU spell doesn't tweaks: add a variable, in preparation for making returning easier tweaks: adjust indentation after previous changes tweaks: adjust indentation after the previous changes tweaks: check earlier on for sufficient length of the sequence tweaks: compile a parameter unconditionally tweaks: condense three asserts into a single one tweaks: consistently use a parameter instead of a struct element tweaks: correct one comment, and adjust another tweaks: don't bother setting meta_key to false when a key is invalid tweaks: don't optimize for a special case -- it is far too seldom tweaks: don't use a function call when reference to the variable will do tweaks: elide the global variable 'func_key' tweaks: move some debugging stuff, and move modified editing keys too tweaks: move the modified editing keys again tweaks: normalize some indentation tweaks: normalize some whitespace and adjust several comments tweaks: reduce two comparisons to a single one tweaks: remove some unnecessary keycodes from a switch statement tweaks: rename a function, and adjust some comments tweaks: rename a struct element, to be more fitting tweaks: rename three constants, for clarity, and hardcode two others tweaks: replace a three-case switch with an if and an else tweaks: reshuffle two ifs for a little more speed tweaks: restore earlier conditions to prevent superfluous redrawings tweaks: return quicker from the key parsing routine tweaks: unconditionally compile a couple of parameters usage: show that the option --wordchars needs an argument Rishabh Dave (1): shortcuts: zero the value of 'toggle' for keys that are not toggles Changes between v2.6.1 and v2.6.2: ---------------------------------- Benno Schulenberg (81): browser: elide another call of opendir() browser: trim all trailing slashes (just in case there are more) build: refresh the git description whenever something is recompiled build-sys: ignore the revision header file bump version numbers and add a news item for 2.6.2 chars: delete a now-unused function chars: don't try to see a character in an empty line chars: invalid sequences are not blank, nor text, nor punctuation chars: look at bytes in their context, so only valid sequences are accepted chars: measure invalid sequences and unassigned codepoints more quickly chars: plug a gushing memory leak chars: represent the high-bit controls more intelligibly chars: speed up the determination whether something is a control character chars: speed up two reverse-searching routines a bit chars: the representation of a control character is always two bytes color: forget about aborting the precalculation for multiline regexes color: integrate the hilite attribute into the pair number color: push the resets further when start and end match are equal color: refresh the screen whenever the active syntax changes credits: don't bother blanking the second line nor the help lines debug: remove duplicate information files: beep whenever writing out a file fails input: accept only the four iTerm sequences that actually get handled input: add some missing keycodes to the parsing routine input: consider only O, o and [ as starters of multi-character sequences input: don't crash when the window is resized during verbatim input input: don't drop a keystroke on the floor when the terminal resizes input: don't drop the first byte when user starts typing during loading input: elide an extra buffer for inserting stuff into the text input: plug a memory leak input: report keystroke M-[ as being unbindable instead of just unbound input: treat Ctrl+Alt+key different from Esc followed by Ctrl+key moving: don't do an automatic smart home with Ctrl+Up and Ctrl+Down new feature: add the option --wordchars, to set extra word characters new feature: functions to jump to previous or following block of text po: update translations and regenerate POT file and PO files screen: again, look at the bytes in their context screen: avoid converting each character twice from multibyte to wide screen: avoid looking up the width of whitespace and control codes screen: don't check for every character whether there is still enough space screen: don't simulate a sigwinch but directly reinitialize the screen screen: elide another intermediate buffer for every visible character screen: elide the intermediate buffer for every single character screen: include a workaround only when compiling against older ncurses search: match a beginning-of-line anchor just once per line tweaks: adjust a comment for removed definitions tweaks: adjust a couple of comments tweaks: adjust indentation after the previous change, and edit comments tweaks: avoid a runtime error when compiled with -fsanitize=undefined tweaks: avoid two compiler warnings tweaks: compute the sizes of the subwindows in a more direct manner tweaks: correct a comment tweaks: delete an element that is always FALSE and never used tweaks: don't bother resetting the Unicode code holder tweaks: don't call a thing malloc... when it doesn't call malloc() tweaks: elide a bit of code duplication tweaks: elide a typedef, as it now has just one element tweaks: elide two unneeded variables tweaks: factor out a common condition tweaks: fix compilation with --enable-tiny tweaks: fuse two handlings of a delete key, and fix a comment tweaks: improve a few comments tweaks: improve two comments tweaks: move a debug statement to its proper place, and improve aspect tweaks: put all the movement functions together tweaks: put similar things together tweaks: put some case labels closer to their statements tweaks: put the case labels (the keycodes) in a more sensible order tweaks: rearrange a function in my style, and rename a variable tweaks: reduce the scope of two variables tweaks: rename another variable, for aptness tweaks: rename a variable and a type, to be less confusing tweaks: rename a variable to be more accurate tweaks: rename a variable, to clarify it refers to columns, not to bytes tweaks: rename a variable -- to match others and to be more concise tweaks: rename two variables, to match others tweaks: shuffle the resetting of a counter to the tail of the routine tweaks: straighten out the flow of a loop tweaks: trim some comments, and simplify a condition tweaks: use mallocstrcpy() instead of strdup(), for a graceful death utils: don't bother to check line and column for NULL David Lawrence Ramsey (1): input: provide feedback on the Unicode digits typed so far Dirkjan Ochtman (1): syntax: allow capital letters in Rust struct/trait names Rishabh Dave (4): browser: elide a variable by fusing the uses of 'newpath' and 'path' browser: select an inaccessible directory also when tabbed tweaks: reduce the number of wattron/wattrof calls utils: accept mistypings and common separators between line and column Changes between v2.6.0 and v2.6.1: ---------------------------------- Benno Schulenberg (20): browser: don't use a term that is not explained in the documentation bump version numbers and add a news item for 2.6.1 docs: adjust the description of the verbatim function linter: refresh the edit window in order to actually place the cursor main: let the main loop restore the main menu, if needed moving: allow specifying negative numbers in "Go To Line" moving: ignore any number when ^Y or ^V is given po: make the linguas script regenerate the POT file po: update translations and regenerate POT file and PO files tabs: compute the number of required spaces without iterating tweaks: add a reporter's name tweaks: add a translator hint tweaks: elide an impossible case tweaks: elide an intermediate copy of some line data tweaks: elide an unneeded variable tweaks: fix a date and an email address tweaks: normalize a type, and rewrap a line tweaks: reshuffle two lines and improve two comments tweaks: rewrap a bunch of lines and some comments tweaks: try to distinguish between keystrokes and characters Jordi Mallach (2): docs: bump pointers to the newest version available docs: use https for nano-editor.org, and drop the www Luke Francl (1): syntaxes: add highlighting rules for Rust Rishabh Dave (1): browser: don't seem to enter a directory when it is inaccessible Changes between v2.5.3 and v2.6.0 since 2016 April 1: ----------------------------------------------------- Benno Schulenberg (192): all: eradicate SVN's $Id$ tags backups: take an unlikely condition into account browser: add a binding for the refresh function browser: after getting a mouse click, don't try any further interpretation browser, files: use full path in error message when in confined mode browser: fix a memory leak browser: keep the highlight in the same spot or column, when possible browser: make Ctrl+Left and Ctrl+Right jump to left and right column browser: make the calculation of files-per-line a straightforward one browser: provide tab completion also outside of the working directory browser: rearrange the search loop to elide two unneeded variables browser: show a message when getcwd() fails, instead of just beeping browser: show an error message when selecting an inaccessible directory browser: use the reselection mechanism also after resizing and after help browser: when nothing was found, restore the global search flags build-sys: detect a build from git and show its short commit hash build-sys: identify a build from git not as one from svn build-sys: ignore .patch, .orig and .swp files chars: a control character can never be an invalid multibyte sequence chars: ensure that files are sorted also when strncasecmp() is strange chars: make comparing multibyte strings twice as fast chars: the representation of control characters is always two columns wide docs: add a list of the important changes since version 2.2.6 docs: mention that pkg-config is needed when building from git docs: rename a file, to be less confusing docs: update the version number for the upcoming release files: allocate enough space for the prompt when finding a lock file files: do not call free on the result of dirname files: do not use two variables for two different purposes each files: don't reuse a variable that may have been modified by dirname() files: fix a memory leak files: free all the multidata when a file is saved, then recompute it files: handle systems that disallow NULL as first parameter of getcwd files: it is fine to "change" the name of a nameless buffer files: limit the number of attempts at climbing up the directory tree files: make an 'if' more transparent and snip an unneeded condition files: miscellaneous tweaks of braces, comments, and variable names files: prevent dereferencing a possible (although very unlikely) NULL files: prune a message to be less than 76 characters files: recompute the multidata only when the applicable syntax changed files: remove a redundant condition files: remove a superfluous condition, and do not ignore a "No" files: remove the special 'quiet' mechanism for not overwriting messages files: report an unwritable file in a separate message files: rewrap en reindent some lines files: tweak the function tail() and rename two variables files: upgrade the locking errors, so they will not be overwritten files: when opening a buffer, make sure to expand a tilde in its name files: when the requested operating directory cannot be set, fail files: when writing a lockfile fails, continue loading the file help: add an extra blank line to the lists of searching shortcuts help: bring some air into the lists of shortcuts, giving the eye a hold help: only speak of Control and Meta sequences i18n: advise the translators about the maximum length of some strings i18n: gather three more translatable strings into the POT file input: after an unknown sequence, reenable cursor only when in main menu input: distinguish an unknown escape sequence from an unbound key input: don't allocate too much, and don't move too many input: don't take multiple keystrokes to be a single sequence input: give more detailed feedback when an unbound key is struck input: properly restore waiting mode, or retain non-waiting mode input: simplify a bit of code, reducing a four-case switch to a single if input: trim some oververbose comments input: write a few ifs more compactly inserting: differentiate not finding a file from not finding a string inserting: don't bother zero-terminating every single character inserting: prune a duplicate variable inserting: prune some superfluous settings, and do one differently inserting: reshuffle some conditions for a teeny bit more speed inserting: strip a carriage return before copying the line inserting: treat also the final \r of a Mac file as a newline justify: enable cursor display also for the first keystroke afterward keyboard: reshuffle some lines to avoid an empty while locking: don't try to read more bytes than the buffer can hold po: correctly advertise whether new PO files have arrived po: delete an obsolete script po: regenerated POT file, and updated PO files from TP prompt: properly save and restore the x position in the statusbar rcfile: disallow 'bind' and 'unbind' in an included file rcfile: make an error message equal to another, and more informative README.GIT: reformat the text a bit remove the GNU marker from nano's name replacing: properly detect when we've rereached the starting position screen: a full refresh is only needed when softwrap is on screen: avoid redrawing a line twice screen: catch a window resize also when the keyboard is in nodelay mode screen: check for the most frequent character first: a space screen: concentrate the setting of placewewant screen: displaying the cursor position should not suppress it next time screen: don't always set 'edit_refresh_needed' when adjusting edittop screen: don't redraw some lines when doing a full refresh anyway screen: don't redraw the current line unnecessarily screen: elide a variable and serialize some logic for clarity screen: fix compilation when configured with --enable-tiny screen: improve the conditional placement of a help-line item screen: make better use of the available space in the titlebar screen: rename a variable, because 'disable' sounds too permanent screen: rename 'edit_refresh_needed' to 'refresh_needed' screen: when using positionlog, show as much of the file as possible scrolling: catch the special case of reading a file from standard input scrolling: center the cursor when inserted stuff does not fit on screen scrolling: don't scroll too much when having to bridge blank lines scrolling: elide a variable, to make clearer that edittop is being moved search: avoid saving and restoring placewewant when bracket matching search: don't set placewewant when we are just iterating search: elide an unneeded function search: find, and thus delete, only exact matches from history search: fix compilation when configured with --enable-tiny searching: don't keep track of current_y, but calculate it at the end search: modify a function to take a length as parameter instead of a word search: rename a variable and a function, for clarity and contrast search: terminate the loop a tiny bit earlier when spell checking search: untangle two lines and tweak two comments search: when looking for whole words, examine the entire line search: when polling the keyboard, consume all waiting keystrokes softwrap: adjust for current_x when computing the amount to scroll speller: don't proceed when the user aborts the searching speller: simplify the calculation of the width of the misspelled word spelling: don't partition the file for replacements in a marked region spelling: gettextize the next-word message spelling: if rereading the file fails, don't destroy the current buffer spelling: pass the correct position of the cursor spelling: retreat one x position, to not miss the first word spelling: separate the fixing of different words with a short pause startup: show an error message when argument of --operatingdir is invalid statusbar: add a non-beeping message type that does not get overwritten statusbar: prevent error messages from overwriting each other syntax: don't call getcwd() with a NULL pointer tabbing: avoid recalculating the length of the first match every time tabbing: don't null-terminate a directory name on the slash but after it tabbing: don't refresh the edit window when nothing was printed on it tabbing: fix erroneous use of strnlenpt() tabbing: make sure to refresh the edit window when returning to it tabbing: refresh the edit window in case a previous tab listed names tabbing: refresh the window also when Goto-Dir in browser was cancelled tabbing: rename four variables, snipping a redundant part text: add an undo item before starting to comment or uncomment lines text: after undoing or redoing something, unset the mark text: remove a pointless setting of an undo element; it is never used text: remove a redundant undo element text: store the new file size in the undo item also when joining lines titlebar: snip two superfluous tests for having enough space TODO: tidy up the punctuation tweaks: add come comments and rename a variable tweaks: adjust a couple of comments tweaks: a few last tiny adjustments before release tweaks: avoid a warning when configured with --disable-wrapping tweaks: do an assignment in a more transparent way tweaks: elide an unneeded variable tweaks: elide four #ifdefs, improve one comment and unwrap some others tweaks: elide unneeded intermediate assignments tweaks: fix compilation when configured with --enable-tiny tweaks: fix compilation when configured with --enable-tiny --enable-browser tweaks: harmonize some indentations, elide an #ifdef, and rewrap a line tweaks: harmonize the routine for tabs with the one for spaces tweaks: improve a couple of comments tweaks: improve a few comments tweaks: improve a few comments tweaks: make advancing and retreating more symmetrical tweaks: make the conditions for statusbar blanking more transparent tweaks: more consistently use * instead of [0] when checking for '\0' tweaks: normalize some whitespace tweaks: normalize some whitespace tweaks: put some conditions in a better order: the main one first tweaks: rearrange some key reading stuff in a clearer way tweaks: reindent and rewrap a few lines, and shorten a comment tweaks: remove an unnecessary intermediate assignment tweaks: remove a redundant assignment tweaks: remove a superfluous call of 'wnoutrefresh' tweaks: remove a superfluous condition tweaks: remove a superfluous setting of 'refresh_needed' tweaks: remove the fiddling with an unrelated setting tweaks: remove two redundant assignments tweaks: rename a function, and move the sorting there too tweaks: rename a variable, because nothing is returned there tweaks: rename a variable, for aptness tweaks: rename a variable, to indicate better what it contains tweaks: rename a variable, to indicate what it contains tweaks: rename some variables for contrast tweaks: rename some variables to be more readable tweaks: rename two more variables tweaks: rename two variables, and elide a third tweaks: rename two variables, to avoid using a name for different purposes tweaks: reshuffle a few things tweaks: trim or improve some comments, and rewrap two lines tweaks: use an available macro to silence a compiler warning undo: start renumbering from the head of the paste, not from its tail utils: distinguish between width (columns) and length (bytes) utils: provide a failure message for all uses of 'fsfromline' utils: rename some variables, to match those in strnlenpt() utils: snip a superfluous check for NULL version: cover the copyrights that are not assigned to the FSF Chris Allegretta (2): add /intl to gitignore rename README.SVN -> README.GIT and take out the branch details Mike Frysinger (3): more svn->git updates README.GIT: update a few more points to match current tree syntax: changelog: support more bug/issue styles Mike Scalora (3): keyboard: recognize four escape sequences produced by iTerm2 new feature: comment/uncomment current line or selected lines text: keep the file size correct when undoing/redoing a comment/uncomment Rishabh Dave (2): browser: keep the same file selected when the directory contents change browser: move all openings and closings of a directory to the same function ====================================================================== For older changes, see in https://ftp.gnu.org/gnu/nano/nano-5.0.tar.xz ======================================================================