rem: { size = soap->dime_size;
add: { size = soap->dime.size;
context: soap_getdime(struct soap *soap){ if (soap_getdimehdr(soap))    return soap->error;  if (soap->fdimewriteopen && ((soap->dime_ptr = (char*)soap->fdimewriteopen(soap, soap->dime_id, soap->dime_type, soap->dime_options)) || soap->error))  { char *id, *type, *options;    size_t size, n;    if (!soap->dime_ptr)      return soap->error;    id = soap->dime_id;    type = soap->dime_type;    options = soap->dime_options;    for (;;)    { size = soap->dime_size;      for (;;)      { n = soap->buflen - soap->bufidx;        if (size < n)          n = size;        if ((soap->error = soap->fdimewrite(soap, (void*)soap->dime_ptr, soap->buf + soap->bufidx, n)))          break;	size -= n;	if (!size)	{ soap->bufidx += n;	  break;	}	if (soap_recv(soap))        { soap->error = SOAP_EOF;	  goto end;        }      }      if (soap_move(soap, -(long)soap->dime_size&3))      { soap->error = SOAP_EOF;	break;      }      if (!(soap->dime_flags & SOAP_DIME_CF))        break;      if (soap_getdimehdr(soap))        break;    }end:    if (soap->fdimewriteclose)      soap->fdimewriteclose(soap, (void*)soap->dime_ptr);    soap->dime_size = 0;    soap->dime_id = id;    soap->dime_type = type;    soap->dime_options = options;  }  else if (soap->dime_flags & SOAP_DIME_CF)  { char *id, *type, *options;    register wchar c;    register char *s;    register int i;    id = soap->dime_id;    type = soap->dime_type;    options = soap->dime_options;    if (soap_new_block(soap))      return SOAP_EOM;    for (;;)    { s = (char*)soap_push_block(soap, soap->dime_size);      if (!s)        return soap->error = SOAP_EOM;      for (i = soap->dime_size; i > 0; i--)      { if ((int)(c = soap_get1(soap)) == EOF)          return soap->error = SOAP_EOF;        *s++ = (char)c;      }      if (soap_move(soap, -(long)soap->dime_size&3))        return soap->error = SOAP_EOF;      if (!(soap->dime_flags & SOAP_DIME_CF))        break;      if (soap_getdimehdr(soap))        return soap->error;    }    soap->dime_size = soap->blist->size++; /* allocate one more for '\0' */    if (!(soap->dime_ptr = soap_save_block(soap, NULL)))      return soap->error;    soap->dime_ptr[soap->dime_size] = '\0'; /* make 0-terminated to enable string-based attachments */    soap->dime_id = id;    soap->dime_type = type;    soap->dime_options = options;  }  else    soap->dime_ptr = soap_getdimefield(soap, soap->dime_size);  return soap->error;}