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