AmendHub

Download (as of this amendment):

jcs

/

subtext

/

amendments

/

599

logger: This window can be closed, no big deal


jcs made amendment 599 about 1 year ago
--- logger.c Tue Feb 13 08:48:34 2024 +++ logger.c Wed Oct 22 17:31:54 2025 @@ -41,6 +41,7 @@ bool logger_menu(struct focusable *focusable, short me void logger_resize(struct focusable *focusable, EventRecord *event); void logger_update(struct focusable *focusable, EventRecord *event); void logger_resume(struct focusable *focusable, EventRecord *event); +void logger_close(struct focusable *focusable, EventRecord *event); bool logger_quit(struct focusable *focusable); void logger_flush_buffer(bool force); @@ -69,7 +70,7 @@ logger_init(void) bounds.bottom = screenBits.bounds.bottom - padding - 1; logger->win = NewWindow(0L, &bounds, "\p", false, - documentProc, (WindowPtr)-1L, false, 0); + documentProc, (WindowPtr)-1L, true, 0); if (!logger->win) panic("Can't create logger window"); logger_update_title(); @@ -93,6 +94,7 @@ logger_init(void) focusable->menu = logger_menu; focusable->resize = logger_resize; focusable->update = logger_update; + focusable->close = logger_close; focusable->quit = logger_quit; focusable->resume = logger_resume; if (!add_focusable(focusable)) @@ -162,12 +164,19 @@ logger_resume(struct focusable *focusable, EventRecord InvalRect(logger->win->visRgn); } -bool -logger_quit(struct focusable *focusable) +void +logger_close(struct focusable *focusable, EventRecord *event) { destroy_focusable(focusable); xfree(&logger->buffered_logs); xfree(&logger); +} + +bool +logger_quit(struct focusable *focusable) +{ + if (logger) + logger_close(focusable, NULL); return true; } @@ -219,6 +228,9 @@ logger_update_title(void) static char logger_title[64]; short n, uprinted = 0; + if (!logger) + return; + snprintf(logger_title, sizeof(logger_title), "%s | %luKB Free | %lu Call%s | ", db->config.name, (FreeMem() / 1024), @@ -338,13 +350,12 @@ logger_printf(const char *format, ...) va_list va; size_t len; - if (!logger) - return 0; + if (logger) { + va_start(va, format); + len = logger_vprintf(format, va); + va_end(va); + } - va_start(va, format); - len = logger_vprintf(format, va); - va_end(va); - if (db->config.syslog_ip) { va_start(va, format); syslog_vprintf(format, va); @@ -514,7 +525,7 @@ void syslog_deinit(void) { if (syslog_stream) { - _UDPRelease(&syslog_pb, syslog_stream, NULL, NULL, false); + _UDPRelease(&syslog_pb, syslog_stream, NULL, false); syslog_stream = 0; }