Now encoding '.' at the end of a directory name in case of VFAT=1

This commit is contained in:
Klaus Schmidinger 2002-04-21 14:10:31 +02:00
parent fb38680302
commit 2e3030a963
3 changed files with 9 additions and 3 deletions

View File

@ -305,3 +305,7 @@ Steffen Koch <Steffen.Koch@koch-enterprises.de>
Matthias Hilbig <hilbig@upb.de>
for fixing some missing ',' in i18n.c
Simon Dean <linux-dvb@sickhack.com>
for reporting a problem with '.' at the end of a directory name in case of VFAT=1
(Windows can't handle these)

View File

@ -1216,3 +1216,5 @@ Video Disk Recorder Revision History
Schächner).
- No longer setting PIDs 0x1FFF, which apparently fixes problems with CAMs and
AC3 sound only working the first time (thanks to Stefan Huelswitt).
- Now encoding '.' at the end of a directory name in case of VFAT=1, since Windows
can't handle these (thanks to Simon Dean for reporting this one).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: recording.c 1.60 2002/04/01 10:51:23 kls Exp $
* $Id: recording.c 1.61 2002/04/21 14:02:55 kls Exp $
*/
#include "recording.h"
@ -222,7 +222,6 @@ static char *ExchangeChars(char *s, bool ToFileSystem)
case '+':
case ',':
case '-':
case '.':
case ';':
case '=':
case '0' ... '9':
@ -237,7 +236,8 @@ static char *ExchangeChars(char *s, bool ToFileSystem)
case ' ': *p = '_'; break;
case '~': *p = '/'; break;
// characters that have to be encoded:
default: {
default:
if (*p != '.' || !*(p + 1) || *(p + 1) == '~') { // Windows can't handle '.' at the end of directory names
int l = p - s;
s = (char *)realloc(s, strlen(s) + 10);
p = s + l;