rem: soap_outwstring(struct soap *soap, const char *tag, int id, wchar_t *const*p, const char *type, int n) { if (!*p) { if (soap_element_null(soap, tag, id, type)) return soap->error; } else { struct soap_plist *pp; int i = soap_pointer_lookup(soap, *p, n, &pp); if (id > 0) { if (i) { if (soap_element_begin_out(soap, tag, id, type) || soap_wstring_out(soap, *p, 0) || soap_element_end_out(soap, tag)) return soap->error; soap_set_embedded(soap, pp); } else { i = soap_pointer_enter(soap, *p, n, &pp); if (soap_element_begin_out(soap, tag, id, type) || soap_wstring_out(soap, *p, 0) || soap_element_end_out(soap, tag)) return soap->error; if (soap->mode & SOAP_IO_LENGTH) pp->mark1 = 0; else pp->mark2 = 0; } } else if (i) { if (soap_is_embedded(soap, pp)) { if (soap_element_ref(soap, tag, 0, i)) return soap->error; } else if (soap_is_single(soap, pp)) { if (soap_element_begin_out(soap, tag, 0, type) || soap_wstring_out(soap, *p, 0) || soap_element_end_out(soap, tag)) return soap->error; } else { if (soap_element_begin_out(soap, tag, i, type) || soap_wstring_out(soap, *p, 0) || soap_element_end_out(soap, tag)) return soap->error; soap_set_embedded(soap, pp); } } else { if (soap_element_begin_out(soap, tag, id, type) || soap_wstring_out(soap, *p, 0) || soap_element_end_out(soap, tag)) return soap->error; if (soap->mode & SOAP_IO_LENGTH) pp->mark1 = 0; else pp->mark2 = 0; } }
add: soap_outwstring(struct soap *soap, const char *tag, int id, wchar_t *const*p, const char *type, int n) { id = soap_element_id(soap, tag, id, *p, NULL, 0, type, n); if (id < 0 || soap_element_begin_out(soap, tag, id, type) || soap_wstring_out(soap, *p, 0) || soap_element_end_out(soap, tag)) return soap->error;
context: soap_outwstring(struct soap *soap, const char *tag, int id, wchar_t *const*p, const char *type, int n){ if (!*p)  { if (soap_element_null(soap, tag, id, type))      return soap->error;  }  else  { struct soap_plist *pp;    int i = soap_pointer_lookup(soap, *p, n, &pp);    if (id > 0)    { if (i)      { if (soap_element_begin_out(soap, tag, id, type) || soap_wstring_out(soap, *p, 0) || soap_element_end_out(soap, tag))          return soap->error;        soap_set_embedded(soap, pp);      }      else      { i = soap_pointer_enter(soap, *p, n, &pp);        if (soap_element_begin_out(soap, tag, id, type) || soap_wstring_out(soap, *p, 0) || soap_element_end_out(soap, tag))          return soap->error;        if (soap->mode & SOAP_IO_LENGTH)          pp->mark1 = 0;        else          pp->mark2 = 0;      }    }    else if (i)    { if (soap_is_embedded(soap, pp))      { if (soap_element_ref(soap, tag, 0, i))          return soap->error;      }      else if (soap_is_single(soap, pp))      { if (soap_element_begin_out(soap, tag, 0, type) || soap_wstring_out(soap, *p, 0) || soap_element_end_out(soap, tag))          return soap->error;      }      else      { if (soap_element_begin_out(soap, tag, i, type) || soap_wstring_out(soap, *p, 0) || soap_element_end_out(soap, tag))          return soap->error;        soap_set_embedded(soap, pp);      }    }    else    { if (soap_element_begin_out(soap, tag, id, type) || soap_wstring_out(soap, *p, 0) || soap_element_end_out(soap, tag))        return soap->error;      if (soap->mode & SOAP_IO_LENGTH)        pp->mark1 = 0;      else        pp->mark2 = 0;    }  }  return SOAP_OK;}