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) {
size_t sepPos=curFileName.rfind(DIR_SEPARATOR);
String backupPreBaseName;
String backupBaseName;
String backupFileName;
if (sepPos==String::npos) {
backupBaseName=curFileName;
backupPreBaseName=curFileName;
} 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) {
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;
time_t curTime=time(NULL);