strip non-alphanumeric chars from backup name

This commit is contained in:
tildearrow 2023-04-06 14:48:13 -05:00
parent e599248614
commit 8cd49eaa5a

View file

@ -5476,19 +5476,27 @@ bool FurnaceGUI::loop() {
if (w!=NULL) { if (w!=NULL) {
size_t sepPos=curFileName.rfind(DIR_SEPARATOR); size_t sepPos=curFileName.rfind(DIR_SEPARATOR);
String backupPreBaseName;
String backupBaseName; String backupBaseName;
String backupFileName; String backupFileName;
if (sepPos==String::npos) { if (sepPos==String::npos) {
backupBaseName=curFileName; backupPreBaseName=curFileName;
} else { } else {
backupBaseName=curFileName.substr(sepPos+1); backupPreBaseName=curFileName.substr(sepPos+1);
} }
size_t dotPos=backupBaseName.rfind('.'); size_t dotPos=backupPreBaseName.rfind('.');
if (dotPos!=String::npos) { if (dotPos!=String::npos) {
backupBaseName=backupBaseName.substr(0,dotPos); backupPreBaseName=backupPreBaseName.substr(0,dotPos);
} }
for (char i: backupPreBaseName) {
if (backupBaseName.size()>=48) break;
if ((i>='0' && i<='9') || (i>='A' && i<='Z') || (i>='a' && i<='z') || i=='_' || i=='-' || i==' ') backupBaseName+=i;
}
if (backupBaseName.empty()) backupBaseName="untitled";
backupFileName=backupBaseName; backupFileName=backupBaseName;
time_t curTime=time(NULL); time_t curTime=time(NULL);