diff --git a/src/dvr/dvr.h b/src/dvr/dvr.h index 91bd2096..346d452d 100644 --- a/src/dvr/dvr.h +++ b/src/dvr/dvr.h @@ -64,6 +64,7 @@ typedef struct dvr_config { int dvr_subtitle_in_title; int dvr_episode_before_date; int dvr_episode_duplicate; + int dvr_clean_samba_unsafe; /* Series link support */ int dvr_sl_brand_lock; diff --git a/src/dvr/dvr_config.c b/src/dvr/dvr_config.c index d1d2ccf3..eb5199c1 100644 --- a/src/dvr/dvr_config.c +++ b/src/dvr/dvr_config.c @@ -727,6 +727,13 @@ const idclass_t dvr_config_class = { .off = offsetof(dvr_config_t, dvr_whitespace_in_title), .group = 5, }, + { + .type = PT_BOOL, + .id = "clean-samba-unsafe", + .name = "Replace Samba Unsafe Characters with '_'", + .off = offsetof(dvr_config_t, dvr_clean_samba_unsafe), + .group = 5, + }, {} }, }; diff --git a/src/dvr/dvr_rec.c b/src/dvr/dvr_rec.c index 7784e2c3..d028e77d 100644 --- a/src/dvr/dvr_rec.c +++ b/src/dvr/dvr_rec.c @@ -164,6 +164,9 @@ cleanup_filename(char *s, dvr_config_t *cfg) ((s[i] < 32) || (s[i] > 122) || (strchr("/:\\<>|*?'\"", s[i]) != NULL))) s[i] = '_'; + else if(cfg->dvr_clean_samba_unsafe && + (strchr("/:\\<>|*?'\"", s[i]) != NULL)) + s[i] = '_'; } return s;