From: Bastian Dehn Date: Sun, 7 Dec 2025 15:59:15 +0000 (+0100) Subject: change get short weekday with strdup X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=7469eb99d09e8146b5947cf4f28e10b247d1bf74;p=feierabend.git change get short weekday with strdup --- diff --git a/src/time_format.c b/src/time_format.c index 7ec13dc..d526127 100644 --- a/src/time_format.c +++ b/src/time_format.c @@ -6,7 +6,6 @@ #define ONE_HOUR 3600 #define MINUTE 60 -#define SHORT_WEEKDAY_STR_LEN 3 #define MAX_TIME_STR_LENGTH 7 void get_time_str(time_t timediff, char* timestr) @@ -93,33 +92,25 @@ char* get_weekday_str(int wday) } } -void get_short_weekday(int wday, char* weekday) +char* get_short_weekday(int wday) { switch(wday) { case 0: - strncpy(weekday, "So", SHORT_WEEKDAY_STR_LEN); - break; + return strdup("So"); case 1: - strncpy(weekday, "Mo", SHORT_WEEKDAY_STR_LEN); - break; + return strdup("Mo"); case 2: - strncpy(weekday, "Di", SHORT_WEEKDAY_STR_LEN); - break; + return strdup("Di"); case 3: - strncpy(weekday, "Mi", SHORT_WEEKDAY_STR_LEN); - break; + return strdup("Mi"); case 4: - strncpy(weekday, "Do", SHORT_WEEKDAY_STR_LEN); - break; + return strdup("Do"); case 5: - strncpy(weekday, "Fr", SHORT_WEEKDAY_STR_LEN); - break; + return strdup("Fr"); case 6: - strncpy(weekday, "Sa", SHORT_WEEKDAY_STR_LEN); - break; + return strdup("Sa"); default: - strncpy(weekday, "--", SHORT_WEEKDAY_STR_LEN); - break; + return strdup("--"); } } diff --git a/src/time_format.h b/src/time_format.h index 498e708..eceb2aa 100644 --- a/src/time_format.h +++ b/src/time_format.h @@ -7,7 +7,7 @@ void get_time_str(time_t timediff, char* timestr); void get_time_str_overtime(time_t timediff, char* timestr); void get_seconds_from_string(const char* timestr, time_t* seconds); char* get_weekday_str(int wday); -void get_short_weekday(int wday, char* weekday); +char* get_short_weekday(int wday); int get_year_from_str(const char* date); int get_month_from_str(const char* date); int get_day_from_str(const char* date); diff --git a/src/xml.c b/src/xml.c index 25efe7f..4ecfd43 100644 --- a/src/xml.c +++ b/src/xml.c @@ -134,7 +134,6 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, feierabend* fabend = feierabend_init(); xmlChar* xmlElemName = NULL; xmlChar* xmlElemContent = NULL; - char* value = malloc(sizeof(char) * MAX_STRING_LENGTH); xmlElemName = xmlCharStrdup("eintrag"); xmlTextWriterStartElement(xmlWriter, xmlElemName); @@ -151,7 +150,7 @@ void writeEntryNode(xmlTextWriterPtr xmlWriter, fabend->now_tm->tm_hour = end_hour; fabend->now_tm->tm_min = end_min; *fabend->now = mktime(fabend->now_tm); - get_short_weekday(fabend->now_tm->tm_wday, value); + char* value = get_short_weekday(fabend->now_tm->tm_wday); xmlElemName = xmlCharStrdup("wochentag"); xmlElemContent = xmlCharStrdup(value); xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent); diff --git a/tests/time_format_tests.c b/tests/time_format_tests.c index 1b1d731..66cbc53 100644 --- a/tests/time_format_tests.c +++ b/tests/time_format_tests.c @@ -205,9 +205,7 @@ void get_wednesday() void get_short_sunday() { - char* weekday = malloc(sizeof(char) * 3); - - get_short_weekday(0, weekday); + char* weekday = get_short_weekday(0); assert_string_equal(weekday, "So"); @@ -217,9 +215,7 @@ void get_short_sunday() void get_short_monday() { - char* weekday = malloc(sizeof(char) * 3); - - get_short_weekday(1, weekday); + char* weekday = get_short_weekday(1); assert_string_equal(weekday, "Mo"); @@ -229,9 +225,7 @@ void get_short_monday() void get_short_thuesday() { - char* weekday = malloc(sizeof(char) * 3); - - get_short_weekday(2, weekday); + char* weekday = get_short_weekday(2); assert_string_equal(weekday, "Di"); @@ -241,9 +235,7 @@ void get_short_thuesday() void get_short_wednesday() { - char* weekday = malloc(sizeof(char) * 3); - - get_short_weekday(3, weekday); + char* weekday = get_short_weekday(3); assert_string_equal(weekday, "Mi"); @@ -253,9 +245,7 @@ void get_short_wednesday() void get_short_thursday() { - char* weekday = malloc(sizeof(char) * 3); - - get_short_weekday(4, weekday); + char* weekday = get_short_weekday(4); assert_string_equal(weekday, "Do"); @@ -265,9 +255,7 @@ void get_short_thursday() void get_short_friday() { - char* weekday = malloc(sizeof(char) * 3); - - get_short_weekday(5, weekday); + char* weekday = get_short_weekday(5); assert_string_equal(weekday, "Fr"); @@ -277,9 +265,7 @@ void get_short_friday() void get_short_saturday() { - char* weekday = malloc(sizeof(char) * 3); - - get_short_weekday(6, weekday); + char* weekday = get_short_weekday(6); assert_string_equal(weekday, "Sa"); @@ -287,6 +273,16 @@ void get_short_saturday() weekday = NULL; } +void get_short_unknown() +{ + char* weekday = get_short_weekday(7); + + assert_string_equal(weekday, "--"); + + free(weekday); + weekday = NULL; +} + void get_seconds_from_str() { const char* timestr = "04:15"; @@ -352,6 +348,7 @@ int main() cmocka_unit_test(get_short_thursday), cmocka_unit_test(get_short_friday), cmocka_unit_test(get_short_saturday), + cmocka_unit_test(get_short_unknown), cmocka_unit_test(get_seconds_from_str), cmocka_unit_test(get_seconds_from_str_minus), cmocka_unit_test(get_year_from_date),