/* * Generate the XML for an argument. */ static void xmlArgument(sipSpec *pt, moduleDef *mod, argDef *ad, int out, KwArgs kwargs, int res_xfer, int indent, FILE *fp) { if (isArraySize(ad)) return; xmlIndent(indent, fp); fprintf(fp, "<%s", (out ? "Return" : "Argument")); xmlType(pt, mod, ad, out, kwargs, fp); if (!out) { if (isAllowNone(ad)) fprintf(fp, " allownone=\"1\""); if (isDisallowNone(ad)) fprintf(fp, " disallownone=\"1\""); if (isTransferred(ad)) fprintf(fp, " transfer=\"to\""); else if (isThisTransferred(ad)) fprintf(fp, " transfer=\"this\""); } if (res_xfer || isTransferredBack(ad)) fprintf(fp, " transfer=\"back\""); fprintf(fp, "/>\n"); }
/* * Generate the XML for an argument. */ static void xmlArgument(sipSpec *pt, argDef *ad, const char *dir, int res_xfer, int sec, int indent, FILE *fp) { if (isArraySize(ad)) return; if (sec && (ad->atype == slotcon_type || ad->atype == slotdis_type)) return; xmlIndent(indent, fp); fprintf(fp, "<Argument"); xmlType(pt, ad, sec, fp); if (dir != NULL) fprintf(fp, " dir=\"%s\"", dir); if (isAllowNone(ad)) fprintf(fp, " allownone=\"1\""); if (isDisallowNone(ad)) fprintf(fp, " disallownone=\"1\""); if (isTransferred(ad)) fprintf(fp, " transfer=\"to\""); else if (isThisTransferred(ad)) fprintf(fp, " transfer=\"this\""); else if (res_xfer || isTransferredBack(ad)) fprintf(fp, " transfer=\"back\""); /* * Handle the default value, but ignore it if it is an output only * argument. */ if (ad->defval && (dir == NULL || strcmp(dir, "out") != 0)) { prcode(fp, " default=\"%M"); exportDefaultValue(ad, FALSE, fp); prcode(fp, "%M\""); } fprintf(fp, "/>\n"); }