From 874f2564db91c7a7cf9815e810f7d34cdb17c9bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96man?= Date: Mon, 1 Feb 2010 20:45:09 +0000 Subject: [PATCH] dvr: Get rid of a few other ugly characters in filenames --- src/dvr/dvr_rec.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/dvr/dvr_rec.c b/src/dvr/dvr_rec.c index f8470d79..708a8eaf 100644 --- a/src/dvr/dvr_rec.c +++ b/src/dvr/dvr_rec.c @@ -139,14 +139,15 @@ makedirs(const char *path) /** - * Replace any slash chars in a string with dash + * Replace various chars with a dash */ static void -deslashify(char *s) +cleanupfilename(char *s) { int i, len = strlen(s); for(i = 0; i < len; i++) - if(s[i] == '/' || s[i] == ':') + if(s[i] == '/' || s[i] == ':' || s[i] == '\\' || s[i] == '<' || + s[i] == '>' || s[i] == '|' || s[i] == '*' || s[i] == '?') s[i] = '-'; } @@ -169,7 +170,7 @@ pvr_generate_filename(dvr_entry_t *de) struct tm tm; filename = strdup(de->de_ititle); - deslashify(filename); + cleanupfilename(filename); av_strlcpy(path, dvr_storage, sizeof(path)); @@ -178,7 +179,7 @@ pvr_generate_filename(dvr_entry_t *de) if(dvr_flags & DVR_DIR_PER_DAY) { localtime_r(&de->de_start, &tm); strftime(fullname, sizeof(fullname), "%F", &tm); - deslashify(fullname); + cleanupfilename(fullname); snprintf(path + strlen(path), sizeof(path) - strlen(path), "/%s", fullname); } @@ -188,7 +189,7 @@ pvr_generate_filename(dvr_entry_t *de) if(dvr_flags & DVR_DIR_PER_CHANNEL) { chname = strdup(de->de_channel->ch_name); - deslashify(chname); + cleanupfilename(chname); snprintf(path + strlen(path), sizeof(path) - strlen(path), "/%s", chname); free(chname);