AmendHub

Download:

jcs

/

subtext

/

amendments

/

352

main: Hook up binkp thread, handle malloc failure, allow blanker disabling


jcs made amendment 352 about 1 year ago
--- main.c Sun Feb 5 11:13:11 2023 +++ main.c Thu Mar 2 07:59:17 2023 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020-2022 joshua stein <jcs@jcs.org> + * Copyright (c) 2020-2023 joshua stein <jcs@jcs.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -18,6 +18,7 @@ #include <string.h> #include "subtext.h" +#include "binkp.h" #include "console.h" #include "db.h" #include "focusable.h" @@ -37,6 +38,7 @@ struct db *db = NULL; bool blanker_on = false; unsigned long blanker_last_blank = 0; WindowPtr blanker_win = NULL; +struct binkp_connection *binkpc = NULL; bool handle_menu(long menu_id); void handle_exit(void); @@ -117,7 +119,9 @@ main(void) telnet_init(); if (db->config.modem_port) serial_init(); - + if (db->config.binkp_hostname[0]) + uthread_add(binkp_process, NULL); + blanker_last_blank = Time; while (!quitting) { @@ -143,7 +147,6 @@ main(void) strlcpy(last_daily_job, today, sizeof(last_daily_job)); } } - continue; } @@ -268,6 +271,8 @@ handle_exit(void) focusables[n]->atexit(focusables[n]); } + binkp_atexit(); + if (db->config.telnet_port) telnet_atexit(); if (db->config.modem_port) @@ -314,8 +319,10 @@ handle_menu(long menu_id) * nfocusables and focusables array will probably be * modified as each focusable quits */ - tfocusables = xcalloc(sizeof(Ptr), tnfocusables, - "focusables quit"); + tfocusables = xcalloc(sizeof(Ptr), tnfocusables); + if (tfocusables == NULL) + ExitToShell(); + memcpy(tfocusables, focusables, sizeof(Ptr) * tnfocusables); @@ -386,6 +393,9 @@ handle_menu(long menu_id) void blanker_idle(void) { + if (db->config.blanker_idle_seconds == 0) + return; + if (!blanker_on && !nsessions && (Time - blanker_last_blank > db->config.blanker_idle_seconds)) { HideMenuBar();