if( rc == -1 && (errno == ENOSPC || errno == EDQUOT) ){
if( rc == -1 && (errno == ENOSPC #ifndef CYG_MANGLING || errno == EDQUOT #endif ) ){
ssize_t qwrite(int fd, const void *buf, size_t numbytes){  const char *p=(const char *)buf;  char msg[msg_len];  ssize_t ret = 0;	while(1){	 int rc = write(fd,p,numbytes);		if( rc == numbytes ){			ret+=rc;			return ret;		}		if( rc > 0 ){			p+=rc;			numbytes-=rc;			ret+=rc;			continue;		}		if( rc == -1 && (errno == ENOSPC || errno == EDQUOT) ){		  uint8_t rc;			if( qfile[fd].ignore )				return -1;			fprintf(stderr,"qwrite(): can't write to file \"%s\": %s\n",				       (qfile[fd].filename?qfile[fd].filename:"__unknown__"),			               (errno==ENOSPC?"filesystem full":"quota exceeded"));			ADM_assert(snprintf(msg,msg_len,"can't write to file \"%s\": %s\n%s\n",			                                (qfile[fd].filename?qfile[fd].filename:"__unknown__"),			                                (errno==ENOSPC?"filesystem full":"quota exceeded"),			                                "Please free up some space and press RETRY to try again.")!=-1);			rc = DIA_quota(msg);			if( rc == 0 /* ignore */ ){				qfile[fd].ignore = 1;				return -1;			}			continue;		}		ADM_assert(snprintf(msg,msg_len,"can't write to file \"%s\": %u (%s)\n",					        (qfile[fd].filename?qfile[fd].filename:"__unknown__"),						errno, strerror(errno))!=-1);		fprintf(stderr,"qwrite(): %s",msg);		GUI_Alert(msg);		return -1;	}}