commit - 418661ca4e44e316ca1eddd06015405049dfb88c
commit + 81645336ed7f8a9ba984bf518f01ec18cc025aa9
blob - ad2afe4369b00759cad30ca159bb2c8c4c0a22bf
blob + d10639063ad53773c3eabab7938a39c6d9e66eb4
--- rover.c
+++ rover.c
Marks marks;
Edit edit;
int edit_scroll;
+ volatile sig_atomic_t pending_usr1;
volatile sig_atomic_t pending_winch;
Prog prog;
Tab tabs[10];
}
static void
+handle_usr1(int sig)
+{
+ rover.pending_usr1 = 1;
+}
+
+static void
handle_winch(int sig)
{
rover.pending_winch = 1;
struct sigaction sa;
memset(&sa, 0, sizeof (struct sigaction));
+ sa.sa_handler = handle_usr1;
+ sigaction(SIGUSR1, &sa, NULL);
sa.sa_handler = handle_winch;
sigaction(SIGWINCH, &sa, NULL);
}
memset(&sa, 0, sizeof (struct sigaction));
sa.sa_handler = SIG_DFL;
+ sigaction(SIGUSR1, &sa, NULL);
sigaction(SIGWINCH, &sa, NULL);
}
+static void reload();
static void update_view();
/* Handle any signals received since last call. */
static void
sync_signals()
{
+ if (rover.pending_usr1) {
+ /* SIGUSR1 received: refresh directory listing. */
+ reload();
+ rover.pending_usr1 = 0;
+ }
if (rover.pending_winch) {
/* SIGWINCH received: resize application accordingly. */
delwin(rover.window);