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)
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 */
strcpy(NewName, FileName);
strcat(NewName, "~");
@ -57,11 +66,12 @@ char *MakeBackup(char *FileName, char *NewName) {
return NewName;
if (copyfile(FileName, NewName) == 0)
return NewName;
#if 0
//#if 0
if (errno == 2)
return NewName; /* file not found */
#endif
//#endif
}
#endif
/* try 2: 8.3 */
strcpy(NewName, FileName);