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 comparision 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 excuting 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: decribe 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