changeset 79:5709d0beb394

Avoid using a global variable here.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 01 Jan 2016 06:15:43 +0200
parents 9fb70b7b34ff
children 5fea8f4e70e5
files sidinfo.c
diffstat 1 files changed, 10 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/sidinfo.c	Fri Jan 01 06:14:00 2016 +0200
+++ b/sidinfo.c	Fri Jan 01 06:15:43 2016 +0200
@@ -246,13 +246,16 @@
 }
 
 
-BOOL argParsePSFormatStr(const char *fmt)
+//
+// Parse a format string into a PSFStack structure
+//
+BOOL argParsePSFormatStr(PSFStack *stack, const char *fmt)
 {
     PSFStackItem item;
     const char *start;
     int mode = 0;
 
-    siClearStack(&optFormat);
+    siClearStack(stack);
 
     while (mode != -1)
     switch (mode)
@@ -279,7 +282,7 @@
                     item.cmd = -2;
                     item.str = NULL;
                     item.chr = '@';
-                    if (!siStackAddItem(&optFormat, &item))
+                    if (!siStackAddItem(stack, &item))
                         return FALSE;
                 }
                 else
@@ -290,7 +293,7 @@
                     {
                         item.cmd = ret;
                         item.str = NULL;
-                        if (!siStackAddItem(&optFormat, &item))
+                        if (!siStackAddItem(stack, &item))
                         {
                             th_free(field);
                             return FALSE;
@@ -311,8 +314,9 @@
             {
                 item.cmd = -1;
                 item.str = th_strndup(start, fmt - start);
-                if (!siStackAddItem(&optFormat, &item))
+                if (!siStackAddItem(stack, &item))
                     return FALSE;
+
                 mode = (*fmt == 0) ? -1 : 0;
             }
             else
@@ -375,7 +379,7 @@
         break;
 
     case 7:
-        if (!argParsePSFormatStr(optArg))
+        if (!argParsePSFormatStr(&optFormat, optArg))
             return FALSE;
         break;