aboutsummaryrefslogtreecommitdiff
path: root/src/sanity.c
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2025-12-12 17:15:22 -0500
committerB. Watson <urchlay@slackware.uk>2025-12-12 17:15:22 -0500
commitc0bc883bcfca5791ea64d488caf359a2c8de4360 (patch)
treebc72765712fd1616b68f3e72654df9ee2a289714 /src/sanity.c
parent1fa2b732b7b6c1539995fa40605d9bcf807ac357 (diff)
downloadalftools-c0bc883bcfca5791ea64d488caf359a2c8de4360.tar.gz
Do not print unprintable characters in filenames.
Diffstat (limited to 'src/sanity.c')
-rw-r--r--src/sanity.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/sanity.c b/src/sanity.c
index c542aec..dbcf57a 100644
--- a/src/sanity.c
+++ b/src/sanity.c
@@ -5,7 +5,7 @@
extern const char *self;
-void bad_atari_filename(const char *fname, const char *msg) {
+int safe_print_filename(const char *fname, FILE *fh) {
char fn[50] = "";
char xbuf[5];
int i;
@@ -21,7 +21,14 @@ void bad_atari_filename(const char *fname, const char *msg) {
}
}
- fprintf(stderr, "%s: warning: bad Atari filename \"%s\": %s\n", self, fn, msg);
+ fputs(fn, fh);
+ return strlen(fn);
+}
+
+void bad_atari_filename(const char *fname, const char *msg) {
+ fprintf(stderr, "%s: warning: bad Atari filename \"", self);
+ safe_print_filename(fname, stderr);
+ fprintf(stderr, "\": %s\n", msg);
}
/* note to self: it's tempting to use isalpha(), isprint(), etc