Skip to content

Commit

Permalink
Pointers were updated during the resize of the array
Browse files Browse the repository at this point in the history
  • Loading branch information
nardinan committed Feb 21, 2023
1 parent 87fc2d0 commit b0c39bd
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions src/todonzo.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
#define OK 0
#define KO 1
#define SAVE_REQUIRED 2
typedef int (*t_todonzo_process)(int, char **, s_reminder *);
typedef int (*t_todonzo_process)(int, char **, s_reminder **);
static int p_todonzo_parse_time_offset(const char *delta_time, const char *fixed_time, time_t *reference_timestamp, time_t *final_timestamp) {
time_t current_timestamp = time(NULL);
struct tm *current_time_definition = localtime(&current_timestamp);
Expand Down Expand Up @@ -93,7 +93,7 @@ static int p_todonzo_parse_time_offset(const char *delta_time, const char *fixed
}
return result;
}
int f_todonzo_add(int argc, char *argv[], s_reminder *reminders) {
int f_todonzo_add(int argc, char *argv[], s_reminder **reminders) {
int result = OK;
char *title = NULL, *description = NULL, *delta_time = NULL, *fixed_time = NULL;
for (unsigned int index_argument = 0; (index_argument < argc) && (result == OK); ++index_argument)
Expand Down Expand Up @@ -130,15 +130,15 @@ int f_todonzo_add(int argc, char *argv[], s_reminder *reminders) {
char icon_file_path[PATH_MAX];
memset(icon_file_path, 0, PATH_MAX);
f_application_get_icon(icon_file_path, PATH_MAX);
f_reminder_add(reminders, m_reminder_UID, title, description, icon_file_path, expiration_timestamp, false);
*reminders = f_reminder_add(*reminders, m_reminder_UID, title, description, icon_file_path, expiration_timestamp, false);
result = SAVE_REQUIRED;
}
} else
result = KO;
}
return result;
}
int f_todonzo_delete(int argc, char *argv[], s_reminder *reminders) {
int f_todonzo_delete(int argc, char *argv[], s_reminder **reminders) {
int result = OK;
if (argc > 0) {
unsigned int UID = m_reminder_UID; /* m_reminder_UID keeps the next UID which has not yet been assigned */
Expand All @@ -149,29 +149,29 @@ int f_todonzo_delete(int argc, char *argv[], s_reminder *reminders) {
UID = 0;
UID = (UID * 10) + (*UID_list - '0');
} else if (UID != m_reminder_UID) {
if (f_reminder_delete(reminders, &UID) > 0)
if (f_reminder_delete(*reminders, &UID) > 0)
result = SAVE_REQUIRED;
UID = m_reminder_UID;
}
++UID_list;
}
if (UID != m_reminder_UID)
if (f_reminder_delete(reminders, &UID) > 0)
if (f_reminder_delete(*reminders, &UID) > 0)
result = SAVE_REQUIRED;
}
return result;
}
int f_todonzo_show(int argc, char *argv[], s_reminder *reminders) {
int f_todonzo_show(int argc, char *argv[], s_reminder **reminders) {
bool show_expired = false;
if ((argc > 0) && ((strcmp(argv[0], "-x") == 0) || (strcmp(argv[0], "--expired") == 0)))
show_expired = true;
f_reminder_human_readable_output(reminders, show_expired, stdout);
f_reminder_human_readable_output(*reminders, show_expired, stdout);
return OK;
}
int f_todonzo_run(int argc, char *argv[], s_reminder *reminders) {
return ((f_reminder_process(reminders) > 0) ? SAVE_REQUIRED : OK );
int f_todonzo_run(int argc, char *argv[], s_reminder **reminders) {
return ((f_reminder_process(*reminders) > 0) ? SAVE_REQUIRED : OK );
}
int f_todonzo_version(int argc, char *argv[], s_reminder *reminders) {
int f_todonzo_version(int argc, char *argv[], s_reminder **reminders) {
printf("%s %d.%d.%d\n", d_application_name, d_application_version_major, d_application_version_minor, d_application_version_patch);
return OK;
}
Expand All @@ -194,13 +194,13 @@ int main(int argc, char *argv[]) {
s_reminder *reminders = f_array_malloc(8, sizeof(s_reminder));
f_application_get_configuration(configuration_file_path, PATH_MAX);
if ((configuration_file_stream = fopen(configuration_file_path, "r"))) {
f_reminder_load(reminders, configuration_file_stream);
reminders = f_reminder_load(reminders, configuration_file_stream);
fclose(configuration_file_stream);
}
for (unsigned int index_functionalities = 0; (functionalities[index_functionalities].short_parameter); ++index_functionalities)
if ((strcmp(argv[1], functionalities[index_functionalities].short_parameter) == 0) ||
((functionalities[index_functionalities].extend_parameter) && (strcmp(argv[1], functionalities[index_functionalities].extend_parameter) == 0))) {
result = functionalities[index_functionalities].function((argc - 2), &(argv[2]), reminders);
result = functionalities[index_functionalities].function((argc - 2), &(argv[2]), &reminders);
break;
}
if (result == SAVE_REQUIRED)
Expand Down

0 comments on commit b0c39bd

Please sign in to comment.