rem: if (soap->fprepare) return soap->fprepare(soap, s, n);
add: if (soap->fpreparesend && (soap->mode & SOAP_IO) != SOAP_IO_STORE) return soap->fpreparesend(soap, s, n);
context: soap_send_raw(struct soap *soap, const char *s, size_t n){ if (!n)    return SOAP_OK;  if (soap->mode & SOAP_IO_LENGTH)  { soap->count += n;    if (soap->fprepare)      return soap->fprepare(soap, s, n);    return SOAP_OK;  }  if (soap->mode & SOAP_IO)  { register size_t i = SOAP_BUFLEN - soap->bufidx;    while (n >= i)    { memcpy(soap->buf + soap->bufidx, s, i);      soap->bufidx = SOAP_BUFLEN;      if (soap_flush(soap))        return soap->error;      s += i;      n -= i;      i = SOAP_BUFLEN;    }    memcpy(soap->buf + soap->bufidx, s, n);    soap->bufidx += n;    return SOAP_OK;  }  return soap_flush_raw(soap, s, n);}