diff rvinterf/lowlevel/format.c @ 927:4e243402f453

rvinterf/lowlevel: use libprint for backslash-escape output
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 23 May 2023 03:59:42 +0000
parents 85d144f9fe56
children 65953c172f24
line wrap: on
line diff
--- a/rvinterf/lowlevel/format.c	Tue May 23 03:47:46 2023 +0000
+++ b/rvinterf/lowlevel/format.c	Tue May 23 03:59:42 2023 +0000
@@ -19,7 +19,7 @@
 void
 print_rv_trace()
 {
-	int i, c;
+	int i;
 	char *dp;
 
 	dp = fmtbuf;
@@ -33,33 +33,7 @@
 	/* severity level */
 	sprintf(dp, " %d ", rxpkt[5]);
 	dp = index(dp, '\0');
-	for (i = 6; i < rxpkt_len; i++) {
-		c = rxpkt[i];
-		switch (c) {
-		case '\\':
-			*dp++ = '\\';
-			*dp++ = '\\';
-			continue;
-		case '\r':
-			*dp++ = '\\';
-			*dp++ = 'r';
-			continue;
-		case '\n':
-			*dp++ = '\\';
-			*dp++ = 'n';
-			continue;
-		}
-		if (c >= ' ' && c <= '~')
-			*dp++ = c;
-		else if (c <= 7 && (i+1 == rxpkt_len || !isdigit(rxpkt[i+1]))) {
-			sprintf(dp, "\\%d", c);
-			dp += 2;
-		} else {
-			sprintf(dp, "\\x%02X", c);
-			dp += 4;
-		}
-	}
-	*dp = '\0';
+	safe_print_trace(rxpkt + 6, rxpkt_len - 6, dp);
 	output_line(fmtbuf);
 }