This commit is contained in:
iceman1001 2020-06-13 17:49:33 +02:00
commit a9bfcb015c

View file

@ -228,17 +228,20 @@ static char *filenamemcopy(const char *preferredName, const char *suffix) {
char *newfilenamemcopy(const char *preferredName, const char *suffix) { char *newfilenamemcopy(const char *preferredName, const char *suffix) {
if (preferredName == NULL) return NULL; if (preferredName == NULL) return NULL;
if (suffix == NULL) return NULL; if (suffix == NULL) return NULL;
uint16_t preferredNameLen = strlen(preferredName);
uint16_t p_namelen = strlen(preferredName);
if (str_endswith(preferredName, suffix)) if (str_endswith(preferredName, suffix))
preferredNameLen -= strlen(suffix); p_namelen -= strlen(suffix);
char *fileName = (char *) calloc(preferredNameLen + strlen(suffix) + 1 + 10, sizeof(uint8_t)); // 10: room for filenum to ensure new filename
char *fileName = (char *) calloc(p_namelen + strlen(suffix) + 1 + 10, sizeof(uint8_t)); // 10: room for filenum to ensure new filename
if (fileName == NULL) { if (fileName == NULL) {
return NULL; return NULL;
} }
int num = 1; int num = 1;
sprintf(fileName, "%.*s%s", preferredNameLen, preferredName, suffix); sprintf(fileName, "%.*s%s", p_namelen, preferredName, suffix);
while (fileExists(fileName)) { while (fileExists(fileName)) {
sprintf(fileName, "%.*s-%d%s", preferredNameLen, preferredName, num, suffix); sprintf(fileName, "%.*s-%d%s", p_namelen, preferredName, num, suffix);
num++; num++;
} }
return fileName; return fileName;
@ -475,7 +478,7 @@ int saveFileJSONex(const char *preferredName, JSONFileType ftype, uint8_t *data,
} }
break; break;
} }
case jsfMfPlusKeys: case jsfMfPlusKeys: {
JsonSaveStr(root, "FileType", "mfp"); JsonSaveStr(root, "FileType", "mfp");
JsonSaveBufAsHexCompact(root, "$.Card.UID", &data[0], 7); JsonSaveBufAsHexCompact(root, "$.Card.UID", &data[0], 7);
JsonSaveBufAsHexCompact(root, "$.Card.SAK", &data[10], 1); JsonSaveBufAsHexCompact(root, "$.Card.SAK", &data[10], 1);
@ -503,7 +506,8 @@ int saveFileJSONex(const char *preferredName, JSONFileType ftype, uint8_t *data,
} }
} }
break; break;
case jsfMfDesfireKeys: }
case jsfMfDesfireKeys: {
JsonSaveStr(root, "FileType", "mfdes"); JsonSaveStr(root, "FileType", "mfdes");
JsonSaveBufAsHexCompact(root, "$.Card.UID", &data[0], 7); JsonSaveBufAsHexCompact(root, "$.Card.UID", &data[0], 7);
JsonSaveBufAsHexCompact(root, "$.Card.SAK", &data[10], 1); JsonSaveBufAsHexCompact(root, "$.Card.SAK", &data[10], 1);
@ -541,9 +545,11 @@ int saveFileJSONex(const char *preferredName, JSONFileType ftype, uint8_t *data,
} }
} }
break; break;
case jsfCustom: }
case jsfCustom: {
(*callback)(root); (*callback)(root);
break; break;
}
default: default:
break; break;
} }