From 078e95bba4fa0ce2aaf3e17502bba05b8551a93d Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Wed, 1 Mar 2023 20:34:34 +0000 Subject: [PATCH] log: fix stdin handling. Make log (which is what Android uses) match logger. --- toys/android/log.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/toys/android/log.c b/toys/android/log.c index 0f7b387e..005f7146 100644 --- a/toys/android/log.c +++ b/toys/android/log.c @@ -23,18 +23,26 @@ config LOG GLOBALS( char *t, *p; + + int pri; ) +static void log_line(char **pline, long len) +{ + if (!pline) return; + __android_log_write(TT.pri, TT.t, *pline); +} + void log_main(void) { - android_LogPriority pri = ANDROID_LOG_INFO; char *s = toybuf; int i; + TT.pri = ANDROID_LOG_INFO; if (TT.p) { i = stridx("defisvw", tolower(*TT.p)); if (i==-1 || strlen(TT.p)!=1) error_exit("bad -p '%s'", TT.p); - pri = (android_LogPriority []){ANDROID_LOG_DEBUG, ANDROID_LOG_ERROR, + TT.pri = (int[]) {ANDROID_LOG_DEBUG, ANDROID_LOG_ERROR, ANDROID_LOG_FATAL, ANDROID_LOG_INFO, ANDROID_LOG_SILENT, ANDROID_LOG_VERBOSE, ANDROID_LOG_WARN}[i]; } @@ -51,7 +59,7 @@ void log_main(void) } s = stpcpy(s, toys.optargs[i]); } - } else toybuf[readall(0, toybuf, 1024-1)] = 0; + } else do_lines(0, '\n', log_line); - __android_log_write(pri, TT.t, toybuf); + __android_log_write(TT.pri, TT.t, toybuf); } -- 2.39.2