]> git.sur5r.net Git - i3/i3status/blobdiff - src/print_ddate.c
s/while [ 1 ]/while :/ (Thanks cls)
[i3/i3status] / src / print_ddate.c
index 6f971471ae354b238bc7704f65d295f7fdf61188..453e5a270efebfe52f74e056ce1972e37df7e2c4 100644 (file)
@@ -143,12 +143,12 @@ int format_output(char *format, struct disc_time *dt) {
                                         printf("St. Tib's Day");
                                 } else {
                                         /* ...or parse the substring between %{ and %} ... */
-                                        *i = '\0';
+                                        *tibs_end = '\0';
                                         if (!format_output(i + 2, dt)) return 0;
-                                        *i = '%';
+                                        *tibs_end = '%';
                                 }
                                 /* ...and continue with the rest */
-                                i = tibs_end + 2;
+                                i = tibs_end;
                                 break;
                         case '}':
                                 i++;
@@ -164,15 +164,10 @@ int format_output(char *format, struct disc_time *dt) {
 }
 
 /* Get the current date and convert it to discordian */
-struct disc_time *get_ddate() {
-        time_t current_time;
-        struct tm *current_tm;
+struct disc_time *get_ddate(struct tm *current_tm) {
         static struct disc_time dt;
 
-        if ((current_time = time(NULL)) == (time_t)-1)
-                return NULL;
-
-        if ((current_tm = localtime(&current_time)) == NULL)
+        if (current_tm == NULL)
                 return NULL;
 
         /* We have to know, whether we have to insert St. Tib's Day, so whether it's a leap
@@ -197,10 +192,10 @@ struct disc_time *get_ddate() {
         return &dt;
 }
 
-void print_ddate(const char *format) {
+void print_ddate(const char *format, struct tm *current_tm) {
         static char *form = NULL;
         struct disc_time *dt;
-        if ((dt = get_ddate()) == NULL)
+        if ((dt = get_ddate(current_tm)) == NULL)
                 return;
         if (form == NULL)
                 if ((form = malloc(strlen(format) + 1)) == NULL)