return (XpmOpenFailed); } mdata->type = XPMPIPE; } else { sprintf(compressfile, "%s.gz", filename); if (!stat(compressfile, &status)) { sprintf(buf, "gunzip -c \"%s\"", compressfile); if (!(mdata->stream.file = popen(buf, "r"))) { XpmFree(compressfile); return (XpmOpenFailed); } mdata->type = XPMPIPE; } else { # endif #endif if (!(mdata->stream.file = fopen(filename, "r"))) { #if !defined(NO_ZPIPE) && defined(STAT_ZFILE) XpmFree(compressfile); #endif return (XpmOpenFailed); } mdata->type = XPMFILE; #ifndef NO_ZPIPE # ifdef STAT_ZFILE
return XpmOpenFailed;
OpenReadFile(filename, mdata)    char *filename;    xpmData *mdata;{#ifndef NO_ZPIPE    char buf[BUFSIZ];# ifdef STAT_ZFILE    char *compressfile;    struct stat status;# endif#endif    if (!filename) {	mdata->stream.file = (stdin);	mdata->type = XPMFILE;    } else {#ifndef NO_ZPIPE	int len = strlen(filename);	if ((len > 2) && !strcmp(".Z", filename + (len - 2))) {	    mdata->type = XPMPIPE;	    sprintf(buf, "uncompress -c \"%s\"", filename);	    if (!(mdata->stream.file = popen(buf, "r")))		return (XpmOpenFailed);	} else if ((len > 3) && !strcmp(".gz", filename + (len - 3))) {	    mdata->type = XPMPIPE;	    sprintf(buf, "gunzip -qc \"%s\"", filename);	    if (!(mdata->stream.file = popen(buf, "r")))		return (XpmOpenFailed);	} else {# ifdef STAT_ZFILE	    if (!(compressfile = (char *) XpmMalloc(len + 4)))		return (XpmNoMemory);	    sprintf(compressfile, "%s.Z", filename);	    if (!stat(compressfile, &status)) {		sprintf(buf, "uncompress -c \"%s\"", compressfile);		if (!(mdata->stream.file = popen(buf, "r"))) {		    XpmFree(compressfile);		    return (XpmOpenFailed);		}		mdata->type = XPMPIPE;	    } else {		sprintf(compressfile, "%s.gz", filename);		if (!stat(compressfile, &status)) {		    sprintf(buf, "gunzip -c \"%s\"", compressfile);		    if (!(mdata->stream.file = popen(buf, "r"))) {			XpmFree(compressfile);			return (XpmOpenFailed);		    }		    mdata->type = XPMPIPE;		} else {# endif#endif		    if (!(mdata->stream.file = fopen(filename, "r"))) {#if !defined(NO_ZPIPE) && defined(STAT_ZFILE)			XpmFree(compressfile);#endif			return (XpmOpenFailed);		    }		    mdata->type = XPMFILE;#ifndef NO_ZPIPE# ifdef STAT_ZFILE		}	    }	    XpmFree(compressfile);# endif	}#endif    }    mdata->CommentLength = 0;#ifdef CXPMPROG    mdata->lineNum = 0;    mdata->charNum = 0;#endif    return (XpmSuccess);}