btmux/autom4te.cache/
btmux/doc/.svn/
btmux/event/.svn/
btmux/game/.svn/
btmux/game/bin/.svn/
btmux/game/data/.svn/
btmux/game/logs/.svn/
btmux/game/maps/
btmux/game/maps/.svn/
btmux/game/maps/.svn/prop-base/
btmux/game/maps/.svn/props/
btmux/game/maps/.svn/text-base/
btmux/game/maps/.svn/wcprops/
btmux/game/mechs/
btmux/game/mechs/.svn/
btmux/game/mechs/.svn/prop-base/
btmux/game/mechs/.svn/props/
btmux/game/mechs/.svn/text-base/
btmux/game/mechs/.svn/wcprops/
btmux/game/text/.svn/
btmux/include/.svn/
btmux/misc/
btmux/misc/.svn/
btmux/misc/.svn/prop-base/
btmux/misc/.svn/props/
btmux/misc/.svn/text-base/
btmux/misc/.svn/wcprops/
btmux/python/
btmux/python/.svn/
btmux/python/.svn/prop-base/
btmux/python/.svn/props/
btmux/python/.svn/text-base/
btmux/python/.svn/wcprops/
btmux/src/.svn/prop-base/
btmux/src/.svn/props/
btmux/src/.svn/text-base/
btmux/src/.svn/wcprops/
btmux/src/hcode/.svn/
btmux/src/hcode/btech/
btmux/src/hcode/btech/.svn/
btmux/src/hcode/btech/.svn/prop-base/
btmux/src/hcode/btech/.svn/props/
btmux/src/hcode/btech/.svn/text-base/
btmux/src/hcode/btech/.svn/wcprops/
btmux/src/hcode/include/.svn/
/*
 * $Id: mechfile.c,v 1.1 2005/06/13 20:50:49 murrayma Exp $
 *
 * Author: Markus Stenberg <fingon@iki.fi>
 *
 *  Copyright (c) 1996 Markus Stenberg
 *       All rights reserved
 *
 * Created: Tue Oct 29 23:09:59 1996 fingon
 * Last modified: Fri Feb  7 19:37:02 1997 fingon
 *
 */

#include <stdio.h>
#include <string.h>

#undef FILES_COMPRESSED_BY_DEFAULT

FILE *my_open_file(char *name, char *mode, int *openway)
{
    FILE *f;
    char buf[512];
    char buf2[512];

    if (!strcmp(mode, "w")) {
#ifdef FILES_COMPRESSED_BY_DEFAULT

/*       dup2(2, 1); */
	sprintf(buf, "nice gzip -c > %s.gz", name);
	if (!(f = popen(buf, mode)))
	    return NULL;
	*openway = 1;
	return f;
#else
	if (!(f = fopen(name, mode)))
	    return NULL;
	*openway = 0;
	return f;
#endif
    }
    if ((f = fopen(name, mode))) {
	*openway = 0;
	return f;
    }
    sprintf(buf, "%s.gz", name);
    if ((f = fopen(buf, mode)))
	fclose(f);
    else
	return NULL;
    sprintf(buf2, "nice gzip -dc < %s", buf);

/*   dup2(2, 1); */
    if ((f = popen(buf2, mode))) {
	*openway = 1;
	return f;
    }
    return NULL;
}

void my_close_file(FILE * f, int *openway)
{
    if (!f)
	return;
    if (*openway) {
	pclose(f);

/*       close(1); */
    } else
	fclose(f);
}