2020.02.07 - GNU nano 4.8 "Jaška" • When something is pasted into nano, auto-indentation is suppressed, and the paste can be undone as a whole with a single M-U. • When a lock file is encountered during startup, pressing ^C/Cancel quits nano. (Pressing 'No' just skips the file and continues.) • Shift+Meta+letter key combos can be bound with 'bind Sh-M-letter'. Making any such binding dismisses the default behavior of ignoring Shift for all Meta+letter keystrokes. • The configuration option --with-slang (to be avoided when possible) can now be used only together with --enable-tiny. • A custom nanorc file can be specified on the command line, with -f filename or --rcfile=filename.
GNU nano is a simple and easy-to-use editor for on the terminal. https://nano-editor.org/ https://nano-editor.org/manual.html A concise overview of nano's shortcut keystrokes: https://nano-editor.org/cheatsheet.html The tarball and its signature are here: https://nano-editor.org/dist/latest/nano-4.8.tar.xz https://nano-editor.org/dist/latest/nano-4.8.tar.xz.asc Specific bugs that were addressed in this release: https://savannah.gnu.org/bugs/?40060 (no auto-indent during paste [request]) https://savannah.gnu.org/bugs/?47975 (saved new buffer had no lock file) https://savannah.gnu.org/bugs/?52954 (line could overflow on console) https://savannah.gnu.org/bugs/?53883 (lock file was not renamed) https://savannah.gnu.org/bugs/?54659 (bindable modified Alt+X keys [request]) https://savannah.gnu.org/bugs/?54950 (undo a paste as a whole [request]) https://savannah.gnu.org/bugs/?57397 (unbinding ^/ was ineffective) https://savannah.gnu.org/bugs/?57451 (wrapping descriptions made help ugly) https://savannah.gnu.org/bugs/?57477 (untrue description of 'set fill') https://savannah.gnu.org/bugs/?57482 (Shift+Fx was unknown with --raw) https://savannah.gnu.org/bugs/?57483 (Shift+Fx inserted ";2~" with --raw) https://savannah.gnu.org/bugs/?57503 (Shift+Fx inserted ";" with Slang) https://savannah.gnu.org/bugs/?57507 (first byte after suspend was eaten) https://savannah.gnu.org/bugs/?57517 (no cursor when suspending with Slang) https://savannah.gnu.org/bugs/?57547 (read nanorc from custom path [request]) https://savannah.gnu.org/bugs/?57574 (M-J was shown in Search in View mode) https://savannah.gnu.org/bugs/?57598 (shifted Meta key could select text) https://savannah.gnu.org/bugs/?57623 (help and browser accepted a paste) https://savannah.gnu.org/bugs/?57624 (invalid key did not beep in linter) https://savannah.gnu.org/bugs/?57631 (nano could paste before the mark) https://savannah.gnu.org/bugs/?57654 (guiding stripe could be doubled) https://savannah.gnu.org/bugs/?57656 (^C failed after suspend with Slang) https://savannah.gnu.org/bugs/?57660 (Shift affected macro on a console) https://savannah.gnu.org/bugs/?57694 (unneeded warning with --view + --lock) https://savannah.gnu.org/bugs/?57698 (messy message for invalid lock file) https://savannah.gnu.org/bugs/?57700 (unreadable lock file prevented edit) https://savannah.gnu.org/bugs/?57724 (theoretical error could crash nano) https://savannah.gnu.org/bugs/?57728 (bad locale could mess up screen) Changes between v4.7 and v4.8: ------------------------------ Brand Huntsman (2): input: recognize the start and stop sequences of a bracketed paste input: beep when invalid key is pressed at yesno prompt or in linter menu Benno Schulenberg (167): bindings: allow to bind shifted Meta+letter combinations with Sh-M-X bindings: allow to rebind also ^`, although it is synonymous with ^Space bindings: do not show the Full-Justify keystroke when in View mode bindings: force the first letter in a key name to uppercase build: exclude bracketed pasting from the tiny version build: exclude option '-g' when configured without browser and help build: exclude the escape sequences for F13...F16 from the tiny version build: fix compilation for --enable-{tiny,help,multibuffer} build: restrict the use of --with-slang to together with --enable-tiny bump version numbers and add a news item for the 4.8 release copyright: update the years for significantly changed files copyright: update the years for the FSF display: adjust line and column count upon a resize also when using Slang display: clear the help lines before a briefly shown warning display: don't let a message write over the second help line display: ensure the guiding stripe can be shown when not softwrapping display: exclude a bit of feedback from the tiny version display: show the cursor during suspension also when built with Slang display: skip zero-width characters on a Linux console, to avoid a mess docs: add a FAQ item about a self-compiled nano not reading /etc/nanorc docs: document the new -f/--rcfile option docs: document the new Sh-M-X format for binding <Shift+Meta+letter> docs: for the alternative bindings, rebind ^C only in the main menu docs: improve the description of which rc-files are read during startup docs: mention in the FAQ that auto-indentation is suppressed when pasting docs: mention that -D/--boldtext gets overridden by some nanorc options docs: put the three new behaviors in a bulletted list, to catch the eye docs: stop saying that 'set fill' enables hard-wrapping -- it does not docs: use more generally available arrows in the cheatsheet feedback: ask a clearer question when a valid lock file is encountered feedback: report Ctrl+Alt keystrokes as unbindable feedback: restore a message that can occur in help viewer or file browser files: alert the user afterward when an overwritten file is being edited files: revert the previous commit, as the extra warning is annoying files: warn doubly when the user is about to overwrite an existing file files: write a lock file also for a new file and when the name changed gnulib: update to its current upstream state help: don't waste the last column in the help viewer on narrow terminals help: increase the minimum help-text width from 24 to 32 columns help: prevent double spaces from protruding across the right edge help: when a key description wraps, indent its wrapped part input: consume and ignore the raw escape sequences for F17 to F24 input: correct the escape sequence for PageUp/PageDown on Eterm/Urxvt input: Ctrl+arrow is "Esc O x" on Eterm, as on rxvt -- not "Esc o x" input: discard partial sequences that Slang produces for F17 to F24 input: do not auto-indent when something is pasted into nano from outside input: don't discard the first keystroke after a resize when using Slang input: filter out Ctrl+Meta keystrokes, as they can never be shortcuts input: ignore bracketed pastes in help viewer and file browser input: ignore modifiers on a VT while executing a macro or a string bind input: prevent unintentional marking of text for shifted Meta keystrokes input: read in an external paste in one go, to allow undoing with one M-U input: recognize the raw escape sequences for F13 to F16 on xterm too locking: accept a minimal amount of data, enough for PID plus username locking: avoid crashing when there is a problem writing the lock file locking: check two magic bytes, to verify that it is a lock file locking: do not write a lock file when in view mode locking: when a lock file is unreadable, open the file itself anyway locking: when finding a lock file at startup, quit when user cancels new feature: allow specifying a custom nanorc file on the command line pasting: retain the mark's position when it was set at the cursor po: update translations and regenerate POT file and PO files prompt: for a Yes-No-All, accept the first character of an external paste rcfile: do set the meta flag for plain <Meta+ASCII> combinations rcfile: require "bright", "start=", and "end=" to be in lowercase too rcfile: unbind keys by their key code instead of by their key string softwrap: suppress the guiding stripe on unaffected chunks speller: avoid messing up the screen when an unknown locale is used suspension: put in an extra terminal-initialization call for Slang syntax: nanohelp, nanorc: colorize the Sh-M-X format as a valid key name syntax: nanorc: colorize all-lowercase Meta key binds as valid too tweaks: add a little change that was overlooked in the previous commit tweaks: add an error message for something that should never occur tweaks: adjust or reword a few items in the FAQ tweaks: adjust the indentation after the previous change tweaks: allocate the lock data only when ready to write them tweaks: avoid analyzing the key string when the target key code is known tweaks: avoid determining the key code from the key string twice tweaks: avoid fiddling with the keybuffer when it's not needed tweaks: comment fully, so that all handled escape sequences are findable tweaks: condense a fragment of code tweaks: condense five more fragments of repetitious code tweaks: condense three comments to one, and do the masking more directly tweaks: condense three fragments of repetitious code tweaks: condense two comments, and reshuffle an #endif tweaks: correct a comment tweaks: correct a couple of comments about escape sequences tweaks: correct the description of what nano writes into the lock file tweaks: delete some fragments of code that have become irrelevant tweaks: do not leak a file descriptor when fdopen() fails tweaks: don't bother including Haiku escape sequences in the tiny version tweaks: don't enable bracketed pasting when not handling such pastes tweaks: drop a message that will never be seen tweaks: drop an unneeded call of keypad() -- we never read from topwin tweaks: drop a pointless suffix from two function names tweaks: elide a function that has become too small for its two calls tweaks: elide a helper function, in preparation for an improvement tweaks: elide an 'if', by moving the relevant code to a better place tweaks: elide a small function, as it's in fact needed just once tweaks: elide a somewhat costly call by remembering some state tweaks: elide a variable, and rename its sister tweaks: elide three checks of a shortcut's meta flag tweaks: ensure that editor name and user name are NUL terminated tweaks: exclude an unneeded fragment of code from the tiny version tweaks: exclude two unneeded fragments of code from the tiny version tweaks: free two strings as soon as they are no longer needed tweaks: frob a couple of indentations and white lines tweaks: fuse two nearly identical functions into a single one tweaks: gather four calls that are always done together into a function tweaks: harmonize the amount of lock data that we read and write tweaks: improve a comment by indirectly referring to the ncurses docs tweaks: in comments, reword "titlebar" and "statusbar" to two words each tweaks: initialize three booleans straightaway, when they are declared tweaks: initialize three more booleans straightaway, at declaration tweaks: judge from the key code itself whether it is a Meta keystroke tweaks: make a couple of comments more precise tweaks: move a function to after the one that it calls tweaks: move a function to be before the ones that call it tweaks: move a function to before the one that calls it tweaks: move a function to related ones, and after one that it calls tweaks: move a function to right before the one that calls it tweaks: move another function to after the one that it calls tweaks: move another function to before the one that calls it tweaks: move another function, to group the deleting ones together tweaks: move three functions to the file where they are mainly used tweaks: rearrange a few global variables, to group things better tweaks: recompute the wrapping point just once tweaks: reduce the scope of a variable, and reshuffle a declaration tweaks: reduce the scope of two constants and of four variables tweaks: reformat a comment, and resuffle a line to match byte order tweaks: remove a feedback message that is never shown tweaks: remove a redundant call, as there is nothing to free there tweaks: remove a superfluous check tweaks: remove some superfluous conditions for rewriting a lock file tweaks: remove the now-unneeded code related to bracketed pasting tweaks: remove the now-unused meta flag from 'keystruct' tweaks: remove two superfluous assignments, and rename a variable tweaks: rename a function and its parameter, to be more fitting tweaks: rename a function, to be a bit more expressive tweaks: rename a function, to make it not contain the name of another tweaks: rename a parameter and invert its logic, and correct a comment tweaks: rename five variables, away from a single letter tweaks: rename two functions, to make more sense tweaks: rename two parameters, to be more general and to sound shorter tweaks: rename two variables, to make more sense tweaks: renumber some FAQ items in preparation for adding another tweaks: reorder two symbols tweaks: reshuffle some assignments for a return value tweaks: reshuffle some declarations tweaks: reshuffle some declarations, and expand a few variable names tweaks: reshuffle some lines, to avoid tallying the menus when not needed tweaks: reshuffle some lines, to group all ignored keystrokes together tweaks: reshuffle three lines, to make the grouping tighther tweaks: reshuffle two lines, to do the linking first, then the content tweaks: reword two comments, and rewrap another tweaks: rewrap a comment and a line, and reshuffle a fragment of code tweaks: rewrap two lines, for consistency with similar lines tweaks: rewrite the same file name into the lock file as the first time tweaks: slightly condense a function by conflating case tweaks: stop recognizing escape sequences for a key without meaning tweaks: suggest a few more alternative key bindings and unbindings tweaks: take just one shot at reading the lock file, and correct a type tweaks: trim some excessive error checking and key-name frobbing tweaks: tumble three conditions, for consistency in comparisons tweaks: unabbreviate "argument" in the documentation tweaks: use a simple subtraction instead of a function call usage: improve the description of --restricted and --quickblank -- Benno
signature.asc
Description: OpenPGP digital signature
-- 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.