Quellcode durchsuchen

Cache the timezone inside the snac struct.

default vor 1 Jahr
Ursprung
Commit
848bd3e865
3 geänderte Dateien mit 5 neuen und 4 gelöschten Zeilen
  1. 2 0
      data.c
  2. 2 4
      html.c
  3. 1 0
      snac.h

+ 2 - 0
data.c

@@ -282,6 +282,8 @@ int user_open(snac *user, const char *uid)
             }
             else
                 srv_log(xs_fmt("error parsing '%s'", cfg_file));
+
+            user->tz = xs_dict_get_def(user->config, "tz", "UTC");
         }
         else
             srv_debug(2, xs_fmt("error opening '%s' %d", cfg_file, errno));

+ 2 - 4
html.c

@@ -455,7 +455,7 @@ xs_html *html_note(snac *user, const char *summary,
     }
 
     if (edit_id == NULL || is_draft || is_scheduled(user, edit_id)) {
-        xs *pdat = xs_fmt(L("Post date and time (timezone: %s):"), xs_dict_get_def(user->config, "tz", "UTC"));
+        xs *pdat = xs_fmt(L("Post date and time (timezone: %s):"), user->tz);
 
         xs_html_add(form,
             xs_html_tag("p",
@@ -4367,9 +4367,7 @@ int html_post_handler(const xs_dict *req, const char *q_path,
                 time_t t = xs_parse_iso_date(post_pubdate, 0);
 
                 if (t != 0) {
-                    const char *tz = xs_dict_get_def(snac.config, "tz", "UTC");
-
-                    t -= xs_tz_offset(tz);
+                    t -= xs_tz_offset(snac.tz);
 
                     xs *iso_date = xs_str_iso_date(t);
                     msg = xs_dict_set(msg, "published", iso_date);

+ 1 - 0
snac.h

@@ -61,6 +61,7 @@ typedef struct {
     xs_str *actor;      /* actor url */
     xs_str *md5;        /* actor url md5 */
     const xs_dict *lang;/* string translation dict */
+    const char *tz;     /* configured timezone */
 } snac;
 
 typedef struct {