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;
}