Mercurial > hg > sidinfo
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;