File: pmacroargs.c

package info (click to toggle)
yodl 4.05.02-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,724 kB
  • sloc: ansic: 7,803; perl: 683; cpp: 570; sh: 411; xml: 190; makefile: 163
file content (23 lines) | stat: -rw-r--r-- 685 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "parser.ih"

static char argPostfixChar[] =  "123456789"
                                "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
                                "abcdefghijklmnopqrstuvwxyz";
static char argx[] = "ARG.";

void p_macro_args(register Parser *pp, String *definition, size_t argc)
{
    register size_t idx;

    for (idx = 0; idx < argc; idx++)        /* handle all arguments */
    {
        char *argument = parser_parlist(pp, COLLECT_SET);

        argx[3] = argPostfixChar[idx];
        string_replace(definition, argx, argument);
        free(argument);

        if (idx < argc - 1)                 /* skip blanks in between   */
            parser_skipws(pp);
    }
}