nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit 1d696c0047ec2d0b1a4fde6861f9c35e413df3e3
parent a0ebc813f1764ae01720797cfca655d8b516a314
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date:   Sat,  9 Jul 2005 05:24:33 +0000

work around slang brokenness


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2841 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

Diffstat:
MChangeLog | 11+++++++----
Msrc/nano.h | 6++++++
Msrc/proto.h | 3+++
Msrc/winio.c | 23+++++++++++++++--------
4 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -23,10 +23,11 @@ CVS code - rename open_pipe() execute_command(), and remove execute_command(). (DLR) - Replace almost all mvwaddstr(hblank) calls with mvwhline(' ', - COLS) calls, which do the same thing. Changes to - do_browser(), blank_titlebar(), blank_topbar(), blank_edit(), - blank_statusbar(), blank_bottombars(), update_line(), and - edit_refresh(). (DLR) + COLS) calls, which do the same thing. New function + nmvwhline() (since slang doesn't define mvwhline()); changes + to do_browser(), blank_titlebar(), blank_topbar(), + blank_edit(), blank_statusbar(), blank_bottombars(), + update_line(), and edit_refresh(). (DLR) - files.c: open_file() - Assert that filename isn't NULL, and don't do anything special @@ -82,6 +83,8 @@ CVS code - display_string() - Display invalid multibyte sequences as Unicode 0xFFFD (Replacement Character). (DLR) + total_redraw() + - Rework to use functions that slang actually defines. (DLR) - configure.ac: - Since we only use vsnprintf() now, remove the tests for snprintf(). (DLR) diff --git a/src/nano.h b/src/nano.h @@ -127,6 +127,12 @@ #define getline ngetline #endif +/* Slang curses emulation brain damage, part 3: Slang doesn't define + * mvwhline(), so use the version we have. */ +#ifdef USE_SLANG +#define mvwhline nmvwhline +#endif + #define VERMSG "GNU nano " VERSION /* If we aren't using ncurses, turn the mouse support off, as it's diff --git a/src/proto.h b/src/proto.h @@ -567,6 +567,9 @@ void get_totals(const filestruct *begin, const filestruct *end, size_t *lines, size_t *size); /* Public functions in winio.c. */ +#ifdef USE_SLANG +int nmvwhline(WINDOW *win, int y, int x, char ch, int n); +#endif #ifndef NANO_SMALL void reset_kbinput(void); #endif diff --git a/src/winio.c b/src/winio.c @@ -52,6 +52,19 @@ static bool resetstatuspos = FALSE; /* Should we reset the cursor position * at the statusbar prompt? */ +#ifdef USE_SLANG +/* Slang curses emulation brain damage, part 4: Slang doesn't define + * mvwhline(). */ +int nmvwhline(WINDOW *win, int y, int x, char ch, int n) +{ + wmove(win, y, x); + for (; n > 0; n--) + waddch(win, ch); + + return 0; +} +#endif + /* Control character compatibility: * * - NANO_BACKSPACE_KEY is Ctrl-H, which is Backspace under ASCII, ANSI, @@ -3776,14 +3789,8 @@ int do_yesno(bool all, const char *msg) void total_redraw(void) { -#ifdef USE_SLANG - /* Slang curses emulation brain damage, part 3: Slang doesn't define - * curscr. */ - SLsmg_touch_screen(); - SLsmg_refresh(); -#else - wrefresh(curscr); -#endif + touchwin(stdscr); + wrefresh(stdscr); } void total_refresh(void)