[Top][All Lists]

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

[Nano-devel] updates, etc.

From: David L. Ramsey
Subject: [Nano-devel] updates, etc.
Date: Mon, 31 May 2004 14:51:03 -0400

In the interest of getting this into testing mode soon, since (a) it's 
been exactly 2 months since the release of 1.3.2, and (b) I haven't 
heard much on this list lately in terms of feedback, I've gone ahead and 
emptied my patch queue and added a few other things.  Specifically:

* nanoinputstate.patch is applied; the input should work the same way as 
before except that the ignored keys are now properly always ignored 
instead of only being ignored when not prefixed with escapes; the main 
functions get_kbinput() and get_verbatim_kbinput() are now the only 
input functions that call the curses input routines, and all the other 
low-level input functions (get_ascii_kbinput(), get_control_kbinput(), 
get_escape_seq_kbinput(), and get_(un)?translated_kbinput()) just 
interpret the input from them

* nanomover2.patch is applied; the movement routines use 
need_(horizontal|vertical)_update(), the vertical movement routines now 
use the new routine edit_scroll() to move the window down, and other 
movement routines that don't change the text such as searching, 
replacing after updating the line, and paragraph searching, use the new 
routine edit_redraw(); edit_redraw() only updates the starting and 
current lines (and all lines between the two if the mark is on), and 
calls edit_refresh() only if one of the two lines is offscreen; all this 
does add ~2K, but the performance is much better; try e.g. scrolling 
down and back up through a file with a lot of multiline color syntaxes 
in it; fixed a bug in this later where not all updates were done 
properly, after which edit_redraw() takes the old value of current and 
the old value of placewewant instead of just the former

* nanomfspacers.patch is applied; maybe the error message displayed if 
you try to use control characters for whitespace characters could be 
worded better?

* nanomiscbugs3a.patch is applied; maybe the error message displayed if 
you try to use whitespace for closing punctuation or closing brackets 
could be worded better?

* Pico can read the SPELL environment variable to determine the 
alternate spell checker; we do this now too if no alternate spell 
checker is specified in the rcfile(s) or on the command line

* added DB's changes to titlebar(), with a few changes of mine, to make 
it use display_string() to display the filename and to handle shorter 
screen widths better; this required strnlen(), which is a GNU extension, 
so I've added an equivalent function nstrnlen() for non-GNU systems

* added DB's changes to do_help() to allow scrolling through the help 
text with the arrow keys as well as the paging keys; Pico 4.7 can do 
this with ^P and ^N, but not with their arrow key equivalents

* added DB's changes to do_wrap() to make things a bit more efficient 
and to make the binary a bit smaller, since most of the new code has 
just made it bigger

* fixed a bug caused by my cutting and pasting of the "search for end of 
paragraph" shortcut to turn it into a "full justify" shortcut; it now 
properly displays its own description

* fixed a bug where full justify wasn't properly disabled in view mode

* fixed a bug where saving a selection would change the current filename 
(and, in a similar vein, tweaked die_save_file() to not change the 
current filename either, since it doesn't need to), and added spaces to 
the ends of the "Overwrite" and "Different Name" prompts for consistency 
and to match Pico 4.7

Some of the things I *really* need to get to soon (sorry I didn't get to 
them by now):

1. Convert high-level input to use the low-level input routines.

2. Work on TODO items involving toggle options such as ^R^X and ^W^T and 
the existence of the global resetstatuspos in the course of #1.

3. Implement verbatim input at the statusbar prompt in the course of #1.

4. Convert nano to use UTF-8 once #1 is done.

5. Deal with the inability to build nano CVS if glib isn't installed 
even if we don't need to use glib's v?snprintf().  When v?snprintf() 
isn't available, glib 2.4.x has moved to using v?asnprintf() from gnulib 
CVS and providing its own wrappers around those functions to implement 
all the printf functions.  We could do the same with the files from 
gnulib and borrow just the wrappers for v?snprintf() (and possibly the 
tests for C99-compliant v?snprintf()) from glib, so that all of glib 
doesn't have to be installed to get the v?snprintf() functions on 
systems that lack them.  Thoughts?
6. mkstemp() is only available under BSD 4.3 and POSIX 1003.1-2001.  
There should be an included version of it for systems that don't have 

7. Add Brand Huntsman's color updates once they're closer to being 
finished.  (Note: They're severely out of sync with CVS by now and I 
haven't had time to update them yet, and in any case, if I did, they'd 
be out of sync with any work done on them since then.)

8. Implement searching in the file browser.

9. Figure out how to properly handle mouse clicks on the search history 
shortcuts.  Currently, the sentinel key values are ungetch()ed instead 
of the corresponding actual key values.  Note that some of the weirdness 
is caused by having to use one shortcut (up) for two values (up and 
down), so that should probably be dealt with somehow.

10. Deal with Andrew Ho's flashing bracket patch.  (Note: I've tried the 
version for 1.2.3 and I can't get it to show anything different from the 


Attachment: signature.asc
Description: Text document

reply via email to

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