All pastes #737292 Raw Edit

Something

public text v1 · immutable
·published 2007-10-15 09:45 UTC
rendered paste body
===================================================================
--- funcs/func_strings.c        (revision 4176)
+++ funcs/func_strings.c        (working copy)
@@ -217,24 +217,27 @@

 static char *acf_strftime(struct opbx_channel *chan, int argc, char **argv, char *buf, size_t len)
 {
-       char *epoch;
+       char *epoch = NULL;
+       char *timezone = NULL;
+       char *format = "%c";
        long epochi;
        struct tm time;

+       if ( (argc>0) && (!opbx_strlen_zero(argv[0])) ) epoch=argv[0];
+       if ( (argc>1) && (!opbx_strlen_zero(argv[1])) ) timezone=argv[1];
+       if ( (argc>2) && (!opbx_strlen_zero(argv[2])) ) format=argv[2];
+
        if (argc < 1 || !argv[0][0] || !sscanf(epoch, "%ld", &epochi)) {
                struct timeval tv = opbx_tvnow();
                epochi = tv.tv_sec;
        }
-
        buf[0] = '\0';
+       opbx_localtime(&epochi, &time, timezone );

-       opbx_localtime(&epochi, &time, (argc > 1 && argv[1][0] ? argv[1] : NULL));
-
-       if (!strftime(buf, len, (argc > 2 && argv[2][0] ? argv[2] : "%c"), &time)) {
+       if (!strftime(buf, len, format, &time)) {
                opbx_log(LOG_WARNING, "C function strftime() output nothing?!!\n");
        }
        buf[len - 1] = '\0';
-
        return buf;
 }