Compare commits

...

2 commits

Author SHA1 Message Date
Gered 972be491c3 clear screen before running user shell command 2020-07-18 17:05:42 -04:00
Gered c1e76aef82 fix 'KeepBackups' option deleting original files on DOS 8.3 filesystem
only if the 'KeepBackups' option was disabled
2020-07-18 17:04:06 -04:00
2 changed files with 14 additions and 3 deletions

View file

@ -1116,6 +1116,7 @@ int GUI::RunProgram(int mode, char *Command) {
ConQuerySize(&W, &H);
ConHideMouse();
ConSuspend();
::ConClear();
if (*Command == 0) // empty string = shell
Command = getenv(

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);