openbmc/build/tmp/deploy/sdk/witherspoon-2019-08-08/sysroots/armv6-openbmc-linux-gnueabi/usr/src/debug/systemd/1_242+AUTOINC+db2e367bfc-r0/git/src/libsystemd/sd-bus/bus-introspect.c
static int introspect_write_arguments(struct introspect* i,
                                      const char* signature, const char** names,
                                      const char* direction)
{
    int r;

    for (;;)
    {
        size_t l;

        if (!*signature)
            return 0;

        r = signature_element_length(signature, &l);
        if (r < 0)
            return r;

        fprintf(i->f, "   <arg type=\"%.*s\"", (int)l, signature);

        if (**names != '\0')
        {
            fprintf(i->f, " name=\"%s\"", *names);
            *names += strlen(*names) + 1;
        }

        if (direction)
            fprintf(i->f, " direction=\"%s\"/>\n", direction);
        else
            fputs("/>\n", i->f);

        signature += l;
    }
}
/* Note that "names" is both an input and an output parameter. It initially
   points to the first argument name in a
   NULL-separated list of strings, and is then advanced with each argument, and
   the resulting pointer is returned. */
Note that "names" is both an input and an output parameter. It initially
points to the first argument name in a
NULL-separated list of strings, and is then advanced with each argument, and
the resulting pointer is returned.
Note that " names " is both an input and an output parameter . It initially points to the first argument name in a NULL - separated list of strings and is then advanced with each argument and the resulting pointer is returned .
static int introspect_write_arguments(struct introspect* i,
                                      const char* signature, const char** names,
                                      const char* direction)
{
    int r;
    for (;;)
    {
        size_t l;
        if (!*signature)
            return 0;
        r = signature_element_length(signature, &l);
        if (r < 0)
            return r;
        fprintf(i->f, "   <arg type=\"%.*s\"", (int)l, signature);
        if (**names != '\0')
        {
            fprintf(i->f, " name=\"%s\"", *names);
            *names += strlen(*names) + 1;
        }
        if (direction)
            fprintf(i->f, " direction=\"%s\"/>\n", direction);
        else
            fputs("/>\n", i->f);
        signature += l;
    }
}
static int introspect_write_arguments ( struct introspect * i , const char * signature , const char * * names , const char * direction ) { int r ; for ( ; ; ) { size_t l ; if ( ! * signature ) return 0 ; r = signature_element_length ( signature , & l ) ; if ( r < 0 ) return r ; fprintf ( i -> f , " \" \" " , ( int ) l , signature ) ; if ( * * names != ' \0 ' ) { fprintf ( i -> f , " \" \" " , * names ) ; * names += strlen ( * names ) + 1 ; } if ( direction ) fprintf ( i -> f , " \" \" \n " , direction ) ; else fputs ( " \n " , i -> f ) ; signature += l ; } }
Note that "names" is both an input and an output parameter.
Note that " names " is both an input and an output parameter .