if (pos >= _IO_blen(fp) + flush_only)
if (pos >= (_IO_size_t) (_IO_blen(fp) + flush_only))
DEFUN(_IO_str_overflow, (fp, c),      register _IO_FILE* fp AND int c){  int flush_only = c == EOF;  _IO_size_t pos;  if (fp->_flags & _IO_NO_WRITES)      return flush_only ? 0 : EOF;  if ((fp->_flags & _IO_TIED_PUT_GET) && !(fp->_flags & _IO_CURRENTLY_PUTTING))    {      fp->_flags |= _IO_CURRENTLY_PUTTING;      fp->_IO_write_ptr = fp->_IO_read_ptr;      fp->_IO_read_ptr = fp->_IO_read_end;    }  pos =  fp->_IO_write_ptr - fp->_IO_write_base;  if (pos >= _IO_blen(fp) + flush_only)    {      if (fp->_flags & _IO_USER_BUF) /* not allowed to enlarge */	return EOF;      else	{	  char *new_buf;	  char *old_buf = fp->_IO_buf_base;	  _IO_size_t new_size = 2 * _IO_blen(fp) + 100;	  new_buf	    = (char*)(*((_IO_strfile*)fp)->_s._allocate_buffer)(new_size);	  if (new_buf == NULL)	    {	      /*	  __ferror(fp) = 1; */	      return EOF;	    }	  if (fp->_IO_buf_base)	    {	      memcpy(new_buf, old_buf, _IO_blen(fp));	      (*((_IO_strfile*)fp)->_s._free_buffer)(fp->_IO_buf_base);	      /* Make sure _IO_setb won't try to delete _IO_buf_base. */	      fp->_IO_buf_base = NULL;	    }#if 0	  if (lenp == &LEN(fp)) /* use '\0'-filling */	      memset(new_buf + pos, 0, blen() - pos);#endif	  _IO_setb(fp, new_buf, new_buf + new_size, 1);	  fp->_IO_read_base = new_buf + (fp->_IO_read_base - old_buf);	  fp->_IO_read_ptr = new_buf + (fp->_IO_read_ptr - old_buf);	  fp->_IO_read_end = new_buf + (fp->_IO_read_end - old_buf);	  fp->_IO_write_ptr = new_buf + (fp->_IO_write_ptr - old_buf);	  fp->_IO_write_base = new_buf;	  fp->_IO_write_end = fp->_IO_buf_end;	}    }  if (!flush_only)    *fp->_IO_write_ptr++ = (unsigned char) c;  if (fp->_IO_write_ptr > fp->_IO_read_end)    fp->_IO_read_end = fp->_IO_write_ptr;  return c;}