XPT_MD_IS_VARARGS(md->flags) ? 'V' : ' ',
XPT_MD_IS_NOTXPCOM(md->flags) ? 'N' : ' ',
XPT_DumpMethodDescriptor(XPTHeader *header, XPTMethodDescriptor *md,                         const int indent, PRBool verbose_mode){    int i;    int new_indent = indent + BASE_INDENT;    int more_indent = new_indent + BASE_INDENT;    if (verbose_mode) {        fprintf(stdout, "%*sName:             %s\n", indent, " ", md->name);        fprintf(stdout, "%*sIs Getter?        ", indent, " ");        if (XPT_MD_IS_GETTER(md->flags))            fprintf(stdout, "TRUE\n");        else             fprintf(stdout, "FALSE\n");                fprintf(stdout, "%*sIs Setter?        ", indent, " ");        if (XPT_MD_IS_SETTER(md->flags))            fprintf(stdout, "TRUE\n");        else             fprintf(stdout, "FALSE\n");                fprintf(stdout, "%*sIs Varargs?       ", indent, " ");        if (XPT_MD_IS_VARARGS(md->flags))            fprintf(stdout, "TRUE\n");        else             fprintf(stdout, "FALSE\n");                fprintf(stdout, "%*sIs Constructor?   ", indent, " ");        if (XPT_MD_IS_CTOR(md->flags))            fprintf(stdout, "TRUE\n");        else             fprintf(stdout, "FALSE\n");                fprintf(stdout, "%*sIs Hidden?        ", indent, " ");        if (XPT_MD_IS_HIDDEN(md->flags))            fprintf(stdout, "TRUE\n");        else             fprintf(stdout, "FALSE\n");                fprintf(stdout, "%*s# of arguments:   %d\n", indent, " ", md->num_args);        fprintf(stdout, "%*sParameter Descriptors:\n", indent, " ");                for (i=0; i<md->num_args; i++) {            fprintf(stdout, "%*sParameter #%d:\n", new_indent, " ", i);                        if (!XPT_DumpParamDescriptor(header, &md->params[i], more_indent,                                          verbose_mode, PR_FALSE))                return PR_FALSE;        }           fprintf(stdout, "%*sResult:\n", indent, " ");        if (!XPT_DumpParamDescriptor(header, md->result, new_indent,                                     verbose_mode, PR_TRUE)) {            return PR_FALSE;        }    } else {        char *param_type;        XPTParamDescriptor *pd;        if (!XPT_GetStringForType(header, &md->result->type, &param_type)) {            return PR_FALSE;        }        fprintf(stdout, "%*s%c%c%c%c%c %s %s(", indent - 6, " ",                XPT_MD_IS_GETTER(md->flags) ? 'G' : ' ',                XPT_MD_IS_SETTER(md->flags) ? 'S' : ' ',                XPT_MD_IS_HIDDEN(md->flags) ? 'H' : ' ',                XPT_MD_IS_VARARGS(md->flags) ? 'V' : ' ',                XPT_MD_IS_CTOR(md->flags) ? 'C' : ' ',                param_type, md->name);        for (i=0; i<md->num_args; i++) {            if (i!=0) {                fprintf(stdout, ", ");            }            pd = &md->params[i];            if (XPT_PD_IS_IN(pd->flags)) {                fprintf(stdout, "in");                if (XPT_PD_IS_OUT(pd->flags)) {                    fprintf(stdout, "/out ");                    if (XPT_PD_IS_RETVAL(pd->flags)) {                        fprintf(stdout, "retval ");                    }                    if (XPT_PD_IS_SHARED(pd->flags)) {                        fprintf(stdout, "shared ");                    }                } else {                    fprintf(stdout, " ");                }            } else {                if (XPT_PD_IS_OUT(pd->flags)) {                    fprintf(stdout, "out ");                    if (XPT_PD_IS_RETVAL(pd->flags)) {                        fprintf(stdout, "retval ");                    }                    if (XPT_PD_IS_SHARED(pd->flags)) {                        fprintf(stdout, "shared ");                    }                } else {                    param_problems = PR_TRUE;                    fprintf(stdout, "XXX ");                }            }            if (!XPT_GetStringForType(header, &pd->type, &param_type)) {                return PR_FALSE;            }            fprintf(stdout, "%s", param_type);        }        fprintf(stdout, ");\n");       }    return PR_TRUE;}