]> git.sur5r.net Git - i3/i3status/blobdiff - src/print_ddate.c
Fix Dragonfly BSD CPU temperature gauge
[i3/i3status] / src / print_ddate.c
index 6d39c51479aa0c237586677098fa5889f1ee0e1c..de9a7be468e71d4232bc560963e19d438671784f 100644 (file)
@@ -95,6 +95,11 @@ static int format_output(char *outwalk, char *format, struct disc_time *dt) {
                                 break;
                         case 'e':
                                 outwalk += sprintf(outwalk, "%d", dt->season_day + 1);
+                                if (dt->season_day > 9 && dt->season_day < 13) {
+                                        outwalk += sprintf(outwalk, "th");
+                                        break;
+                                }
+
                                 switch (dt->season_day % 10) {
                                         case 0:
                                                 outwalk += sprintf(outwalk, "st");
@@ -199,11 +204,14 @@ struct disc_time *get_ddate(struct tm *current_tm) {
         return &dt;
 }
 
-void print_ddate(yajl_gen json_gen, char *buffer, const char *format, struct tm *current_tm) {
+void print_ddate(yajl_gen json_gen, char *buffer, const char *format, time_t t) {
         char *outwalk = buffer;
         static char *form = NULL;
+        struct tm current_tm;
         struct disc_time *dt;
-        if ((dt = get_ddate(current_tm)) == NULL)
+        set_timezone(NULL);  /* Use local time. */
+        localtime_r(&t, &current_tm);
+        if ((dt = get_ddate(&current_tm)) == NULL)
                 return;
         if (form == NULL)
                 if ((form = malloc(strlen(format) + 1)) == NULL)