nano-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Nano-devel] massive updates...


From: David Lawrence Ramsey
Subject: [Nano-devel] massive updates...
Date: Thu, 11 Aug 2005 03:20:19 -0400
User-agent: Mozilla Thunderbird 1.0.6 (X11/20050716)

Sorry I didn't get to this before, but I just recently got current CVS
to a state approximating "stable".  Here are the (massive) changes in
it:

* at long last, merged Mike Frysinger's old sample regexes for Bourne
shell scripts

* overhauled buffer and multibuffer support to remove longstanding
design problems; instead of periodically setting the globals to match
the current openfilestruct and dealing separately with cases that left
them out of sync, every buffer now gets its own openfilestruct and
changes its values directly; the openfilestruct structure now contains
all data set on an individual-file basis, including the modification
flag, the marking flag and position, and the current color strings

* other buffer/multibuffer changes: totlines no longer exists in either
global or openfilestruct form, as filebot->lineno is now used in its
place due to its being equivalent when the file's lines are properly
numbered; there are now functions that work on a per-buffer basis in
files.c; the hblank global has been removed, and its functionality
replaced with the function blank_line(); global_init() no longer exists,
and the tiny bit of resizing logic left in it has been moved into
window_init(); renumber_all() has also been removed, since it was
unnecessarily coupled to the main filestruct, and replaced with
renumber(); various functions have also been renamed

* fixed a few minor kinks in the previously overhauled history code: the
current position in the history list is now properly set to the bottom
if we cancel out of the prompt, and magichistory is now properly updated
when we change it and then move up

* moved advanced text-based operations out of nano.c, since they didn't
really belong there, and into their own source file text.c; this
includes justification, spell checking, tab insertion, carriage return
insertion, deletion, backspacing, etc.

* resizing the window while the alternate spell checker is running no
longer causes problems when nano intercepts it and tries to act on it,
as nano now handles pending resizes only after spell checking is
finished and the spell-checked file has been read back in

* at long last, merged most of Brand Huntsman's old color syntax
changes, with a few tweaks of mine: color regexes are now compiled on an
as-needed basis; the -Y/--syntax option applies to all syntaxes instead
of just those that don't match any filename regexes; the reserved
"default" syntax now applies to all files that don't match any filename
regexes, and hence doesn't take any filename regexes itself; and the
reserved "none" syntax can be specified on the command line to
effectively turn color syntaxes off

* other color changes: syntax names are now case sensitive; duplicate
syntax names are discarded with appropriate error messages; unspecified
foreground colors are now handled properly in all cases; and the color
updating and initialization functions have been decoupled, since the
screen is no longer always updated after the colors are updated

* fixed translation bugs: in print1opt(), the line displayed when
getopt_long() wasn't available still referred only to +LINE instead of
+LINE,COLUMN; and in usage(), the "--quickblank" option was translated
unnecessarily, since it didn't take any parameters

* more redundant screen updates have been removed; edit_scroll() now
updates the screen on its own without help from edit_redraw(), and only
calls edit_refresh() if it needs to scroll LINES lines or more;
edit_redraw() calls edit_scroll() when possible if either of its two
positions are offscreen; whenever possible, wrefresh()es have been
replaced with wnoutrefresh()es, and doupdate() is now called just before
getting blocking input, since most time in nano is spent in blocking
input; similarly, constant cursor position display is now only done if
no keys are waiting in the buffer; all of this also makes pasting text
from the clipboard much faster, since screen updates only slow it down
and make it use 100% CPU for a longer period of time

* invalid UTF-8 characters are now displayed as Unicode FFFD
(Replacement Character), since that's what most of the other
UTF-8-supporting editors do with them; the Unicode input mode available
while getting verbatim input now handles the full Unicode range of
000000 to 10FFFF, and rejects the invalid characters 00D800-00DFFF and
00FFFE-00FFFF

* the paragraph movement and word movement functions are now in move.c

* the word count function now also counts lines and characters, as wc
does; hence, it can now be used to get the line and character count of a
selection, which wasn't possible before inside nano

* per DB's old patch, the error message associated with errno is not
displayed when the spell checker fails if errno is 0 (in which case the
message is the misleading "Success")

* various header files included in every source file have been moved to
nano.h so that they're only included once

* titlebar() now displays only one space after the version number
instead of two, so that there's a bit more room for actual information

* decouple edit_update() and edit_refresh(), as opening multiple files
on the command line will use the former without the latter if the file
being opened is not the first file; the TOP parameter for edit_update()
no longer exists either

* the append parameter in various file operations is now an enum instead
of an int

* the NANO_WIDE #define is now the much clearer ENABLE_UTF8

* at long last, the -K option has been restored, albeit with the long
option and rcfile options changed from "keypad" to "rebindkeypad", for
those people with numeric keypad problems, and a FAQ entry has been
added explaining it

* per Mike Frysinger's suggestion, there is now an option to control
whether the word movement functions treat punctuation as part of a word:
-W/--wordbounds and a "wordbounds" rcfile option

* the manual and info pages have been updated to describe the new
options available

Comments?





reply via email to

[Prev in Thread] Current Thread [Next in Thread]