if( !FD && (errno == ENOSPC || errno == EDQUOT) ){
if( !FD && (errno == ENOSPC #ifndef CYG_MANGLING || errno == EDQUOT #endif ) ){
FILE *qfopen(const char *path, const char *mode){  FILE * FD = NULL;  int fd;	while( !FD ){		FD = fopen (path,mode);		if( !FD && (errno == ENOSPC || errno == EDQUOT) ){		  char msg[msg_len];		  	fprintf(stderr,"qfopen(): can't open \"%s\": %s\n", path,				       (errno==ENOSPC?"filesystem full":"quota exceeded"));		  	ADM_assert(snprintf(msg,msg_len,"can't open \"%s\": %s\n%s\n",						        path,							(errno==ENOSPC?"filesystem full":"quota exceeded"),							"Please free up some space and press RETRY to try again.")!=-1);			DIA_quota(msg);			/* same behaviour for IGNORE and RETRY */			continue;		}		if( !FD ){		  char msg[msg_len];			ADM_assert(snprintf(msg,msg_len,"can't open \"%s\": %u (%s)\n", path, errno, strerror(errno))!=-1);			fprintf(stderr,"qfopen(): %s",msg);			GUI_Alert(msg);			return NULL;		}	}	/* keep filename for messages and ignore status */	if( (fd=fileno(FD)) == -1 ){		fprintf(stderr,"\nqfprintf(): bad stream argument\n");		ADM_assert(0);	}	if( qfile[fd].filename )		ADM_dealloc(qfile[fd].filename);	qfile[fd].filename = ADM_strdup(path);	qfile[fd].ignore = 0;	return FD;}