diff options
author | Přemysl Eric Janouch <p@janouch.name> | 2021-10-15 12:08:44 +0200 |
---|---|---|
committer | Přemysl Eric Janouch <p@janouch.name> | 2021-10-15 12:09:37 +0200 |
commit | 573554b9decf74f3b57ab6d26252700132255525 (patch) | |
tree | 849a1472bb630e2bbebb880108df463aef905f37 /src | |
parent | 9d7bc2a839b5f5200489a64c348acc02ee6ceb8f (diff) | |
download | tdv-573554b9decf74f3b57ab6d26252700132255525.tar.gz tdv-573554b9decf74f3b57ab6d26252700132255525.tar.xz tdv-573554b9decf74f3b57ab6d26252700132255525.zip |
sdgtk -> sdgui, improve build, mention in README
It's finally not horrible.
Diffstat (limited to 'src')
-rw-r--r-- | src/sdgui.c (renamed from src/sdgtk.c) | 0 | ||||
-rw-r--r-- | src/sdtui.c | 29 | ||||
-rw-r--r-- | src/utils.c | 28 | ||||
-rw-r--r-- | src/utils.h | 1 |
4 files changed, 27 insertions, 31 deletions
diff --git a/src/sdgtk.c b/src/sdgui.c index 3565bc6..3565bc6 100644 --- a/src/sdgtk.c +++ b/src/sdgui.c diff --git a/src/sdtui.c b/src/sdtui.c index 3be34f4..1158d05 100644 --- a/src/sdtui.c +++ b/src/sdtui.c @@ -36,8 +36,12 @@ #include <signal.h> #include <pwd.h> -#include <termo.h> // input -#include <ncurses.h> // output +#include <termo.h> // input +#include <ncurses.h> // output +#include <termios.h> +#ifndef TIOCGWINSZ +#include <sys/ioctl.h> +#endif // ! TIOCGWINSZ #include "config.h" #include "stardict.h" @@ -62,6 +66,27 @@ unichar_width (gunichar ch) return 1 + g_unichar_iswide (ch); } +void +update_curses_terminal_size (void) +{ +#if defined (HAVE_RESIZETERM) && defined (TIOCGWINSZ) + struct winsize size; + if (!ioctl (STDOUT_FILENO, TIOCGWINSZ, (char *) &size)) + { + char *row = getenv ("LINES"); + char *col = getenv ("COLUMNS"); + unsigned long tmp; + resizeterm ( + (row && xstrtoul (&tmp, row, 10)) ? tmp : size.ws_row, + (col && xstrtoul (&tmp, col, 10)) ? tmp : size.ws_col); + } +#else // HAVE_RESIZETERM && TIOCGWINSZ + // The standard endwin/refresh sequence makes the terminal flicker. + endwin (); + refresh (); +#endif // HAVE_RESIZETERM && TIOCGWINSZ +} + static guint add_read_watch (int fd, GIOFunc func, gpointer user_data) { diff --git a/src/utils.c b/src/utils.c index 275e4e1..3bba022 100644 --- a/src/utils.c +++ b/src/utils.c @@ -23,12 +23,6 @@ #include <errno.h> #include <stdarg.h> -#include <curses.h> -#include <termios.h> -#ifndef TIOCGWINSZ -#include <sys/ioctl.h> -#endif // ! TIOCGWINSZ - #include "config.h" #include "utils.h" @@ -101,28 +95,6 @@ xstrtoul (unsigned long *out, const char *s, int base) return errno == 0 && !*end && end != s; } -// Didn't want to have this ugly piece of code in the main source file; -// the standard endwin/refresh sequence makes the terminal flicker. -void -update_curses_terminal_size (void) -{ -#if defined (HAVE_RESIZETERM) && defined (TIOCGWINSZ) - struct winsize size; - if (!ioctl (STDOUT_FILENO, TIOCGWINSZ, (char *) &size)) - { - char *row = getenv ("LINES"); - char *col = getenv ("COLUMNS"); - unsigned long tmp; - resizeterm ( - (row && xstrtoul (&tmp, row, 10)) ? tmp : size.ws_row, - (col && xstrtoul (&tmp, col, 10)) ? tmp : size.ws_col); - } -#else // HAVE_RESIZETERM && TIOCGWINSZ - endwin (); - refresh (); -#endif // HAVE_RESIZETERM && TIOCGWINSZ -} - /// Print a fatal error message and terminate the process immediately. void fatal (const gchar *format, ...) diff --git a/src/utils.h b/src/utils.h index 99ad19a..b47daa9 100644 --- a/src/utils.h +++ b/src/utils.h @@ -41,7 +41,6 @@ gchar *xdxf_to_pango_markup_with_reduced_effort (const gchar *xml); gboolean stream_read_all (GByteArray *ba, GInputStream *is, GError **error); gchar *stream_read_string (GDataInputStream *dis, GError **error); gboolean xstrtoul (unsigned long *out, const char *s, int base); -void update_curses_terminal_size (void); void fatal (const gchar *format, ...) G_GNUC_PRINTF (1, 2) G_GNUC_NORETURN; #endif // ! UTILS_H |