2018.01.02 - GNU nano 2.9.2 "Pussy Riot" correctly displays the Modified state when undoing/redoing (also when the file was saved somewhere midway), improves the undoing of an automatic linefeed at EOF, fixes a build issue on the BSDs, shows the cursor again when compiled with --withslang, renames the option 'justifytrim' to 'trimblanks' because it will now snip trailing whitespace also while you are typing (and hard-wrapping is enabled), continues pushing words to the next line much longer (when hard-wrapping), makes <Tab> and <Shift+Tab> indent and unindent a marked region, allows unindenting when not all lines are indented, lets a region marked with Shift persist when indenting/unindenting or commenting/uncommenting it, and in those cases excludes the last line of the region when it is not visibly marked (which makes for a more intuitive behavior).
GNU nano is a simple and easy-to-use editor for on the terminal. https://nano-editor.org/ The tarball and its signature are here: https://nano-editor.org/dist/latest/nano-2.9.2.tar.xz https://nano-editor.org/dist/latest/nano-2.9.2.tar.xz.asc Specific bugs that were fixed in this release: https://savannah.gnu.org/bugs/?52198 (trimming of tail spaces [request]) https://savannah.gnu.org/bugs/?52523 (undoing added magic lines) https://savannah.gnu.org/bugs/?52546 (build failure on macOS Sierra) https://savannah.gnu.org/bugs/?52576 (too quickly created a new wrapline) https://savannah.gnu.org/bugs/?52651 (missing cursor when using Slang) https://savannah.gnu.org/bugs/?52682 (arrow keys failed with --rebindkeypad) https://savannah.gnu.org/bugs/?52689 (Modified state not shown correctly) https://savannah.gnu.org/bugs/?52755 (prompt bar not getting wiped) Nano has complete translations for the following thirteen languages (the language name is followed by the name of the last translator): Croat -- Božidar Putanec Dutch -- Benno Schulenberg Esperanto -- Benno Schulenberg French -- Jean-Philippe Guérard German -- Mario Blättermann Irish -- Kevin Scannell Japanese -- Takeshi Hamasaki Portuguese -- Rafael Fontenelle (Brazil) Romanian -- Mihai Cristescu Spanish -- Antonio Ceballos Turkish -- Mehmet Kececi Ukrainian -- Yuri Chornoivan Vietnamese -- Trần Ngọc Quân Changes between v2.9.1 and v2.9.2: ---------------------------------- Benjamin Mintz (1): syntax: python: add 'async', 'await', and 'nonlocal' as keywords 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 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 Benno Schulenberg (63): 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 <Tab> and <Shift+Tab> to (un)indent selected region input: make <Ctrl+Shift+Arrow> 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 po: update translations and regenerate POT file and PO files 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 -- Benno -- If you have a working or partly working program that you'd like to offer to the GNU project as a GNU package, see https://www.gnu.org/help/evaluation.html.