Fixed unstable string concatenation
This commit is contained in:
parent
736277bc76
commit
c7eb4b1ea3
1 changed files with 22 additions and 37 deletions
|
@ -35,23 +35,6 @@ char** split_string(const char* str, char delimiter, int* count) {
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
void string_append(char* first, const char* second) {
|
|
||||||
// Store first index
|
|
||||||
char* i_first = first;
|
|
||||||
|
|
||||||
// Get to the end of string 1
|
|
||||||
while (*first) {
|
|
||||||
++first;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Copying Strings
|
|
||||||
while (*second) {
|
|
||||||
*first++ = *second++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Reset index
|
|
||||||
first = i_first;
|
|
||||||
}
|
|
||||||
void manager_loadnames(Manager* manager){
|
void manager_loadnames(Manager* manager){
|
||||||
// Loading the names of all passwords
|
// Loading the names of all passwords
|
||||||
char* data = store_load("Data");
|
char* data = store_load("Data");
|
||||||
|
@ -132,45 +115,47 @@ void manager_savepass(Manager* manager, Password* pass) {
|
||||||
|
|
||||||
// Is the result empty?
|
// Is the result empty?
|
||||||
if(!result) {
|
if(!result) {
|
||||||
|
// Free prior result
|
||||||
|
free(result);
|
||||||
|
|
||||||
// Allocating result
|
// Allocating result
|
||||||
result = malloc(sizeof(char*));
|
FuriString* n_result = furi_string_alloc();
|
||||||
|
|
||||||
// Setting stuff
|
// Setting stuff
|
||||||
string_append(result, pass->name);
|
furi_string_printf(n_result, "%s|%s|%s|0", pass->name, pass->user, pass->phrase);
|
||||||
string_append(result, "|");
|
|
||||||
string_append(result, pass->user);
|
|
||||||
string_append(result, "|");
|
|
||||||
string_append(result, pass->phrase);
|
|
||||||
string_append(result, "|0");
|
|
||||||
|
|
||||||
// Saving the data
|
// Saving the data
|
||||||
store_save("Data", result);
|
char* data = malloc(sizeof(char));
|
||||||
|
strcpy(data, furi_string_get_cstr(n_result));
|
||||||
|
store_save("Data", data);
|
||||||
|
|
||||||
// Cleanup
|
// Cleanup
|
||||||
free(result);
|
furi_string_free(n_result);
|
||||||
|
free(data);
|
||||||
free(pass);
|
free(pass);
|
||||||
} else {
|
} else {
|
||||||
// Our new stuff
|
// Our new stuff
|
||||||
char* new_addon = malloc(sizeof(char*));
|
FuriString* new_addon = furi_string_alloc();
|
||||||
|
|
||||||
// Adding the Name
|
// Adding the Name
|
||||||
string_append(new_addon, "|");
|
furi_string_printf(new_addon, "|%s|%s|%s|0", pass->name, pass->user, pass->phrase);
|
||||||
string_append(new_addon, pass->name);
|
|
||||||
string_append(new_addon, "|");
|
// New result
|
||||||
string_append(new_addon, pass->user);
|
FuriString* new_result = furi_string_alloc();
|
||||||
string_append(new_addon, "|");
|
|
||||||
string_append(new_addon, pass->phrase);
|
|
||||||
string_append(new_addon, "|0");
|
|
||||||
|
|
||||||
// Appending addon to result
|
// Appending addon to result
|
||||||
string_append(result, new_addon);
|
furi_string_printf(new_result, "%s%s", result, furi_string_get_cstr(new_addon));
|
||||||
|
|
||||||
// Saving the data
|
// Saving the data
|
||||||
store_save("Data", result);
|
char* data = malloc(sizeof(char));
|
||||||
|
strcpy(data, furi_string_get_cstr(new_result));
|
||||||
|
store_save("Data", data);
|
||||||
|
|
||||||
// Cleanup
|
// Cleanup
|
||||||
free(new_addon);
|
furi_string_free(new_addon);
|
||||||
|
furi_string_free(new_result);
|
||||||
free(result);
|
free(result);
|
||||||
|
free(data);
|
||||||
free(pass);
|
free(pass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue