nano-devel
[Top][All Lists]
Advanced

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

[Nano-devel] Patch for !ncurses


From: David Ramsey
Subject: [Nano-devel] Patch for !ncurses
Date: Thu, 20 Dec 2007 12:32:50 -0600

On Dec 17, 2007 9:15 PM, David Ramsey <address@hidden> wrote:

<snip>

> Update: I've put out a prerelease of what should be 2.0.7, and it's
> now using raw mode instead of cbreak mode, in case that affects
> anything.  (The problems with raw mode under slang aren't an issue
> anymore, because the slang curses emulation support has been removed,
> after I found a seemingly impossible-to-fix bug in it.)  It still uses
> termios after the initscr() call, though.  It's here, if you want to
> test it:
>
> http://www.nano-editor.org/dist/test/nano-2.0.7pre2.tar.gz
>
> Note that it also contains your cursor placement fixes, as well as
> other various bug fixes.

After some more research (and looking at nvi, which, as it turns out,
seems to just implement things like raw() with termios functions), I've
figured out one more thing: Putting the call to raw() after all the
termios-related parts isn't quite going to fix everything, because there
are some termios-related things that have to change after going into raw
mode.  For example, if you use Ctrl-R Ctrl-X to execute a command in a
new buffer, interpretation of the special keys has to be turned back on
(via termios) while the command is running, so that Ctrl-C can be used
to interrupt it.

I don't know what else to do here, short of rewriting nano to use
termios instead of curses, and that's inappropriate for the 2.0 branch,
which is supposed to be a stable branch.  Besides, given what you've
told me about the flow control issues, I don't know whether the real
problem is in nano or NetBSD curses.  Finally, there are several
potential crash fixes in the 2.0.7 prereleases, and I don't want to hold
up 2.0.7 any longer.

Thanks for looking into this anyway.  If the underlying problem is ever
discovered, please let me know.




reply via email to

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