From b4afd23c308ed2ef7df894cfb8be532fee521ad5 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Mon, 26 Jul 2004 16:34:36 +0000 Subject: [PATCH] Allow safe_fname() to tweak up to two name at a time. --- util.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/util.c b/util.c index e7be7d7c..13987b9b 100644 --- a/util.c +++ b/util.c @@ -902,17 +902,20 @@ int pop_dir(char *dir) /** * Return the filename, turning any newlines into '?'s. This ensures that - * outputting it on a line of its own cannot generate an empty line. + * outputting it on a line of its own cannot generate an empty line. This + * function can handle only 2 names at a time! **/ const char *safe_fname(const char *fname) { - static char fbuf[MAXPATHLEN]; + static char fbuf1[MAXPATHLEN], fbuf2[MAXPATHLEN]; + static char *fbuf = fbuf2; char *nl = strchr(fname, '\n'); if (!nl) return fname; - strlcpy(fbuf, fname, sizeof fbuf); + fbuf = fbuf == fbuf1 ? fbuf2 : fbuf1; + strlcpy(fbuf, fname, MAXPATHLEN); nl = fbuf + (nl - (char *)fname); do { *nl = '?'; -- 2.34.1