diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2025-08-25 14:32:38 +0300 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2025-08-26 21:33:40 +0300 |
commit | d1c20b8388105fd1027ea2aaf65dad772f9fe16f (patch) | |
tree | 2de220dd1c20fcbf11d4781d76380b55d66fdc2a /src/interface-curses/interface.c | |
parent | f525d8f09ec0e60effe70623a19c700a3a202db0 (diff) | |
download | sciteco-d1c20b8388105fd1027ea2aaf65dad772f9fe16f.tar.gz |
WIPlibxcurses
This is mostly for XDG/4 compatibility.
Diffstat (limited to 'src/interface-curses/interface.c')
-rw-r--r-- | src/interface-curses/interface.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/interface-curses/interface.c b/src/interface-curses/interface.c index 62a6e64..dfada8c 100644 --- a/src/interface-curses/interface.c +++ b/src/interface-curses/interface.c @@ -99,7 +99,7 @@ #endif #endif -#if defined(NCURSES_UNIX) || defined(NETBSD_CURSES) +#if defined(NCURSES_UNIX) || defined(NETBSD_CURSES) || defined(MKS_CURSES) /** * Whether Curses works on a real or pseudo TTY * (i.e. classic use with terminal emulators on Unix) @@ -316,7 +316,7 @@ teco_view_noutrefresh(teco_view_t *ctx) scintilla_noutrefresh(ctx); } -static inline WINDOW * +static inline WINDOW * G_GNUC_UNUSED teco_view_get_window(teco_view_t *ctx) { return scintilla_get_window(ctx); @@ -398,8 +398,6 @@ static void teco_interface_restore_batch(void); static void teco_interface_init_clipboard(void); -static void teco_interface_resize_all_windows(void); - static void teco_interface_set_window_title(const gchar *title); static void teco_interface_draw_info(void); static void teco_interface_draw_cmdline(void); @@ -732,7 +730,7 @@ teco_interface_init_interactive(GError **error) * * NOTE: The delay is overwritten by initscr() on netbsd-curses. */ -#ifdef CURSES_TTY +#if defined(CURSES_TTY) && !defined(MKS_CURSES) if (!g_getenv("ESCDELAY")) set_escdelay(25); #endif @@ -867,6 +865,8 @@ teco_interface_restore_batch(void) } } +#ifdef KEY_RESIZE + static void teco_interface_resize_all_windows(void) { @@ -888,6 +888,8 @@ teco_interface_resize_all_windows(void) teco_interface_draw_cmdline(); } +#endif /* KEY_RESIZE */ + void teco_interface_msg_literal(teco_msg_t type, const gchar *str, gsize len) { @@ -994,6 +996,7 @@ teco_interface_show_view(teco_view_t *view) { teco_interface_current_view = view; +#ifdef KEY_RESIZE if (!teco_interface.cmdline_window) /* batch mode */ return; @@ -1008,6 +1011,7 @@ teco_interface_show_view(teco_view_t *view) wresize(current_view_win, lines - 3, cols); /* Set up window position: never changes */ mvwin(current_view_win, 1, 0); +#endif } #if PDCURSES @@ -1127,6 +1131,8 @@ teco_interface_draw_info(void) waddstr(teco_interface.info_window, PACKAGE_NAME " "); + G_GNUC_UNUSED gint cur_x, cur_y, max_x, max_y; + switch (teco_interface.info_type) { case TECO_INFO_TYPE_QREG: info_type_str = PACKAGE_NAME " - <QRegister> "; @@ -1145,10 +1151,11 @@ teco_interface_draw_info(void) teco_curses_add_wc(teco_interface.info_window, teco_ed & TECO_ED_ICONS ? teco_curses_icons_lookup_file(teco_interface.info_current.data) : '-'); waddstr(teco_interface.info_window, " <Buffer> "); + getyx(teco_interface.info_window, cur_y, cur_x); + getmaxyx(teco_interface.info_window, max_y, max_x); teco_curses_format_filename(teco_interface.info_window, teco_interface.info_current.data, - getmaxx(teco_interface.info_window) - - getcurx(teco_interface.info_window) - 1); + max_x - cur_x - 1); waddch(teco_interface.info_window, teco_interface.info_dirty ? '*' : ' '); break; @@ -1274,8 +1281,11 @@ teco_interface_cmdline_update(const teco_cmdline_t *cmdline) static void teco_interface_draw_cmdline(void) { + G_GNUC_UNUSED gint max_x, max_y; + getmaxyx(teco_interface.cmdline_window, max_y, max_x); + /* total width available for command line */ - guint total_width = getmaxx(teco_interface.cmdline_window) - 1; + guint total_width = max_x - 1; /* beginning of command line to show */ guint disp_offset = teco_interface.cmdline_len - |