if (!Field_Grown(field, (int)(1 + (vlen-len)/((field->rows+field->nrow)*field->cols)))) RETURN(E_SYSTEM_ERROR);
unsigned int vlen = strlen(value); if (vlen > len) { if (!Field_Grown(field, (int)(1 + (vlen-len)/((field->rows+field->nrow)*field->cols)))) RETURN(E_SYSTEM_ERROR);   if (buffer==0) { unsigned int i;  for(i=len; i<vlen; i++) if (!isprint(value[i])) RETURN(E_BAD_ARGUMENT); } len = vlen; }
int set_field_buffer(FIELD * field, int buffer, const char * value){  char *s, *p;  int res = E_OK;  unsigned int len;  unsigned int vlen;  if ( !field || !value || ((buffer < 0)||(buffer > field->nbuf)) )    RETURN(E_BAD_ARGUMENT);  if (buffer==0)    {      const char *v;      for(v=value;*v;v++)	{	  if (!isprint((unsigned char)*v))	    RETURN(E_BAD_ARGUMENT);	}    }  len  = Buffer_Length(field);  vlen = strlen(value);  if ((vlen>len) && Growable(field))    {      if (!Field_Grown(field,	      (int)(1 + (vlen-len)/((field->rows+field->nrow)*field->cols))))	RETURN(E_SYSTEM_ERROR);    }  p   = Address_Of_Nth_Buffer(field,buffer);#if HAVE_MEMCCPY  s = memccpy(p,value,0,len);#else  for(s=(char *)value;*s && (s<value+len);s++) p[s-value]=*s;  if (s<value+len) p[s-value]=*s++; else s=0;#endif  if (s)     {      assert(len >= (unsigned int)(s-p));      memset(s,C_BLANK,len-(unsigned int)(s-p));    }  if (buffer==0)    {      int syncres;      if (((syncres=Synchronize_Field( field ))!=E_OK) && 	  (res==E_OK))	res = syncres;      if (((syncres=Synchronize_Linked_Fields(field ))!=E_OK) &&	  (res==E_OK))	res = syncres;    }  RETURN(res);}		