The parameters PATH and NAME to the --dirnames command line option may now be left empty to use the default values if only ENC shall be set

This commit is contained in:
Klaus Schmidinger 2013-03-12 09:44:46 +01:00
parent ccbe1905a1
commit 7100e4c209
3 changed files with 38 additions and 29 deletions

View File

@ -7730,7 +7730,7 @@ Video Disk Recorder Revision History
to avoid problems with SD-FF cards in case the user switches to the "ST:TNG" or
"Classic" skin.
2013-03-11: Version 1.7.41
2013-03-12: Version 1.7.41
- Updated the Hungarian OSD texts (thanks to István Füley).
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
@ -7740,3 +7740,5 @@ Video Disk Recorder Revision History
- The 'plugins' target of the VDR Makefile now also copies files matching the wildcard
"lib$$i-*.so" (previously only "libvdr-*.so") and also descends into subdirectories
of the plugin source.
- The parameters PATH and NAME to the --dirnames command line option may now be left
empty to use the default values if only ENC shall be set.

5
vdr.1
View File

@ -8,7 +8,7 @@
.\" License as specified in the file COPYING that comes with the
.\" vdr distribution.
.\"
.\" $Id: vdr.1 2.14 2013/03/11 13:16:50 kls Exp $
.\" $Id: vdr.1 2.15 2013/03/12 09:42:25 kls Exp $
.\"
.TH vdr 1 "31 Mar 2013" "2.0" "Video Disk Recorder"
.SH NAME
@ -57,12 +57,13 @@ Run in daemon mode (implies \-\-no\-kbd).
Use only the given DVB device (\fInum\fR = 0, 1, 2...).
There may be several \fB\-D\fR options (by default all DVB devices will be used).
.TP
.BI \-\-dirnames= path[,name[,enc]]
.BI \-\-dirnames= path [, name [, enc ]]
Set the maximum directory path length to \fIpath\fR (default is the maximum value
allowed on the system). If \fIname\fR is also given, it defines the maximum directory
name length (default is the maximum value allowed on the system). The optional
\fIenc\fR can be 0 or 1, and controls whether special characters in directory names
are encoded as hex values (default: 0).
If \fIpath\fR or \fIname\fR are left empty (as in ",,1" to only set \fIenc\fR), the defaults apply.
The length of the video directory name and that of the actual recording directory is
subtracted from \fIpath\fR, to make sure the directory path will never become too long.
.TP

58
vdr.c
View File

@ -22,7 +22,7 @@
*
* The project's page is at http://www.tvdr.de
*
* $Id: vdr.c 2.53 2013/03/11 11:51:27 kls Exp $
* $Id: vdr.c 2.54 2013/03/12 09:23:33 kls Exp $
*/
#include <getopt.h>
@ -280,31 +280,35 @@ int main(int argc, char *argv[])
return 2;
case 'd' | 0x100: {
char *s = optarg;
if (*s != ',') {
int n = strtol(s, &s, 10);
if (n <= 0 || n >= PATH_MAX) { // PATH_MAX includes the terminating 0
fprintf(stderr, "vdr: invalid directory path length: %s\n", optarg);
return 2;
}
DirectoryPathMax = n;
}
if (!*s)
break;
if (*s++ != ',') {
fprintf(stderr, "vdr: invalid delimiter: %s\n", optarg);
return 2;
}
if (*s != ',') {
int n = strtol(s, &s, 10);
if (n <= 0 || n > NAME_MAX) { // NAME_MAX excludes the terminating 0
fprintf(stderr, "vdr: invalid directory name length: %s\n", optarg);
return 2;
}
DirectoryNameMax = n;
}
if (!*s)
break;
if (*s++ != ',') {
fprintf(stderr, "vdr: invalid delimiter: %s\n", optarg);
return 2;
}
int n = strtol(s, &s, 10);
if (n <= 0 || n >= PATH_MAX) { // PATH_MAX includes the terminating 0
fprintf(stderr, "vdr: invalid directory path length: %s\n", optarg);
return 2;
}
DirectoryPathMax = n;
if (!*s)
break;
if (*s++ != ',') {
fprintf(stderr, "vdr: invalid delimiter: %s\n", optarg);
return 2;
}
n = strtol(s, &s, 10);
if (n <= 0 || n > NAME_MAX) { // NAME_MAX excludes the terminating 0
fprintf(stderr, "vdr: invalid directory name length: %s\n", optarg);
return 2;
}
DirectoryNameMax = n;
if (!*s)
break;
if (*s++ != ',') {
fprintf(stderr, "vdr: invalid delimiter: %s\n", optarg);
return 2;
}
n = strtol(s, &s, 10);
if (n != 0 && n != 1) {
fprintf(stderr, "vdr: invalid directory encoding: %s\n", optarg);
return 2;
@ -480,7 +484,9 @@ int main(int argc, char *argv[])
" the maximum directory name length (default: %d);\n"
" the optional ENC can be 0 or 1, and controls whether\n"
" special characters in directory names are encoded as\n"
" hex values (default: 0)\n"
" hex values (default: 0); if PATH or NAME are left\n"
" empty (as in \",,1\" to only set ENC), the defaults\n"
" apply\n"
" --edit=REC cut recording REC and exit\n"
" -E FILE, --epgfile=FILE write the EPG data into the given FILE (default is\n"
" '%s' in the video directory)\n"