fix 'KeepBackups' option deleting original files on DOS 8.3 filesystem

only if the 'KeepBackups' option was disabled
This commit is contained in:
Gered 2020-07-18 17:04:06 -04:00
parent 332b1a598d
commit c1e76aef82

View file

@ -47,6 +47,15 @@ char *MakeBackup(char *FileName, char *NewName) {
if (l <= 0) if (l <= 0)
return NULL; return NULL;
// disabling this! it works great on any filesystem not restricted
// to 8.3 filenames, but on DOS, it results in a backup filename being
// creating that is not legal if the file extension is already 3 characters
// long. this causes the checks here to work incorrectly. the end result of
// all of that is that file saving with the 'KeepBackups' option DISABLED
// results in your ORIGINAL file being deleted every time you save! ouch!
// since i am building this fork specifically for use on DOS, it only makes
// sense for me to keep the 8.3 DOS compatibility enabled anyway.
#if 0
/* try 1 */ /* try 1 */
strcpy(NewName, FileName); strcpy(NewName, FileName);
strcat(NewName, "~"); strcat(NewName, "~");
@ -57,12 +66,13 @@ char *MakeBackup(char *FileName, char *NewName) {
return NewName; return NewName;
if (copyfile(FileName, NewName) == 0) if (copyfile(FileName, NewName) == 0)
return NewName; return NewName;
#if 0 //#if 0
if (errno == 2) if (errno == 2)
return NewName; /* file not found */ return NewName; /* file not found */
#endif //#endif
} }
#endif
/* try 2: 8.3 */ /* try 2: 8.3 */
strcpy(NewName, FileName); strcpy(NewName, FileName);
NewName[l-1] = '~'; NewName[l-1] = '~';