]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
DVR: autorec directory name, fixes #3037
authorJan Dorazil <deu439@gmail.com>
Sat, 8 Aug 2015 14:40:50 +0000 (16:40 +0200)
committerJaroslav Kysela <perex@perex.cz>
Mon, 14 Sep 2015 18:48:14 +0000 (20:48 +0200)
src/dvr/dvr_rec.c

index 719b2db2d62e1196440a9eeb2a18ba7fe812643d..f9711041acb15615a0bb101ae98ce2b07b082bf2 100644 (file)
@@ -172,9 +172,10 @@ dvr_rec_unsubscribe(dvr_entry_t *de)
 
 /**
  * Replace various chars with a dash
+ * - dosubs specifies if user demanded substitutions are performed
  */
 static char *
-cleanup_filename(dvr_config_t *cfg, char *s)
+cleanup_filename(dvr_config_t *cfg, char *s, int dosubs)
 {
   int len = strlen(s);
   char *s1, *p;
@@ -206,16 +207,19 @@ cleanup_filename(dvr_config_t *cfg, char *s)
       *s = '-';
 
     else if (cfg->dvr_whitespace_in_title &&
-             (*s == ' ' || *s == '\t'))
+             (*s == ' ' || *s == '\t') &&
+             dosubs)
       *s = '-';        
 
     else if (cfg->dvr_clean_title &&
              ((*s < 32) || (*s > 122) ||
-             (strchr("/:\\<>|*?\"", *s) != NULL)))
+             (strchr("/:\\<>|*?\"", *s) != NULL)) &&
+             dosubs)
       *s = '_';
 
     else if (cfg->dvr_windows_compatible_filenames &&
-             (strchr("/:\\<>|*?\"", *s) != NULL))
+             (strchr("/:\\<>|*?\"", *s) != NULL) &&
+             dosubs)
       *s = '_';
   }
 
@@ -609,7 +613,7 @@ pvr_generate_filename(dvr_entry_t *de, const streaming_start_t *ss)
       break;
     *(dirsep - 1) = '\0';
     if (*x) {
-      s = cleanup_filename(cfg, x);
+      s = cleanup_filename(cfg, x, de->de_directory == NULL);
       tvh_strlcatf(filename, sizeof(filename), j, "%s/", s);
       free(s);
     }
@@ -661,7 +665,7 @@ pvr_generate_filename(dvr_entry_t *de, const streaming_start_t *ss)
     }
 
     htsstr_substitute(filename + j, ptmp, sizeof(ptmp), '$', dvr_subs_tally, number);
-    s = cleanup_filename(cfg, ptmp);
+    s = cleanup_filename(cfg, ptmp, 1);
     if (s == NULL) {
       free(lastpath);
       return -1;