/* $Id: inifile.c,v 1.1 1996/05/04 19:08:18 yoneyama Exp yoneyama $ */ /************************************************************************ * SameGame for X Window (sxsame) * * Copyleft (c) 1994-1996 Software Research Academy * ************************************************************************/ #include #include #include #include "sxsame.h" static char *init_file = NULL; int ReadInitFile(width, height, same_pic) int *width; int *height; int *same_pic; { FILE *fp; char *p; char tmpbuf[256]; int x, y; int pic; *width = 20; *height = 10; *same_pic = 1; p = (char *)getenv("HOME"); if(p == NULL) return(-1); if(init_file == NULL) init_file = (char *)malloc(strlen(p) + 11); if(init_file == NULL) return(-1); strcpy(init_file, p); strcat(init_file, "/.SameGame"); fp = fopen(init_file, "r"); if(fp == NULL) return(0); while(fgets(tmpbuf,256,fp)!=NULL) { for(p = tmpbuf;*p != 0 && *p == ' '; p++); if(strchr(p,'#')!=NULL) *(char *)strchr(p,'#') = '\0'; if(strncmp(p, "Width", 5)==NULL) { sscanf(p+5,"%d",&x); if(x < MIN_WIDTH) x = MIN_WIDTH; if(x > MAX_WIDTH) x = MAX_WIDTH; *width = x; } else if(strncmp(p, "Height", 6)==NULL) { sscanf(p+6,"%d",&y); *height = y; if(y < MIN_HEIGHT) y = MIN_HEIGHT; if(y > MAX_HEIGHT) y = MAX_HEIGHT; } else if(strncmp(p, "Pictures", 8) == NULL) { sscanf(p+8,"%d",&pic); if(pic < 0) pic = 1; *same_pic = pic; } } fclose(fp); return(0); } int SaveInitFile(width, height, same_pic) int width; int height; int same_pic; { FILE *fp; if(init_file == NULL) return(0); fp = fopen(init_file, "w"); if(fp == NULL) return(-1); fprintf(fp,"# SameGame\n"); fprintf(fp,"Width %3d\n", width); fprintf(fp,"Height %3d\n", height); if(same_pic < 0) same_pic = 1; fprintf(fp,"Pictures %d\n", same_pic); fclose(fp); return(0); }