diff options
Diffstat (limited to 'trace.c')
-rw-r--r-- | trace.c | 56 |
1 files changed, 47 insertions, 9 deletions
@@ -1,9 +1,9 @@ /* - * $Id: trace.c,v 1.20 2011/10/18 10:47:26 tom Exp $ + * $Id: trace.c,v 1.26 2018/06/13 00:06:48 tom Exp $ * * trace.c -- implements screen-dump and keystroke-logging * - * Copyright 2007-2010,2011 Thomas E. Dickey + * Copyright 2007-2017,2018 Thomas E. Dickey * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License, version 2.1 @@ -53,6 +53,40 @@ dlg_trace_msg(const char *fmt,...) } void +dlg_trace_2s(const char *name, const char *value) +{ + bool first = TRUE; + const char *next; + int left, right = 0; + + if (value == 0) + value = "<NULL>"; + + while (value[right] != '\0') { + value += right; + if ((next = strchr(value, '\n')) != 0) { + left = (int) (next - value); + right = left + 1; + } else { + left = (int) strlen(value); + right = left; + } + if (first) { + first = FALSE; + dlg_trace_msg("#%14s=%.*s\n", name, left, value); + } else { + dlg_trace_msg("#+\t\t%.*s\n", left, value); + } + } +} + +void +dlg_trace_2n(const char *name, int value) +{ + dlg_trace_msg("#\t%7s=%d\n", name, value); +} + +void dlg_trace_win(WINDOW *win) { if (myFP != 0) { @@ -93,7 +127,7 @@ dlg_trace_win(WINDOW *win) wchar_t *uc; if (win_wch(win, &cch) == ERR - || (uc = wunctrl(&cch)) == 0 + || (uc = wunctrl((&cch))) == 0 || uc[1] != 0 || wcwidth(uc[0]) <= 0) { buffer[0] = '.'; @@ -185,6 +219,7 @@ dlg_trace_chr(int ch, int fkey) CASE(DLGK_SELECT); CASE(DLGK_HELPFILE); CASE(DLGK_TRACE); + CASE(DLGK_TOGGLE); } } } else if (ch == ERR) { @@ -195,9 +230,11 @@ dlg_trace_chr(int ch, int fkey) if (fkey_name == 0) fkey_name = "UNKNOWN"; } - fprintf(myFP, "chr %s (ch=%#x, fkey=%d)\n", - fkey_name, - ch, fkey); + if (ch >= 0) { + fprintf(myFP, "chr %s (ch=%#x, fkey=%d)\n", fkey_name, ch, fkey); + } else { + fprintf(myFP, "chr %s (ch=%d, fkey=%d)\n", fkey_name, ch, fkey); + } fflush(myFP); } } @@ -209,12 +246,13 @@ dlg_trace(const char *fname) if (myFP == 0) { myFP = fopen(fname, "a"); if (myFP != 0) { - dlg_trace_time("** opened at"); - dlg_trace_msg("** dialog %s\n", dialog_version()); + dlg_trace_time("## opened at"); + DLG_TRACE(("## dialog %s\n", dialog_version())); + DLG_TRACE(("## vile: confmode\n")); } } } else if (myFP != 0) { - dlg_trace_time("** closed at"); + dlg_trace_time("## closed at"); fclose(myFP); myFP = 0; } |