#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "imgview.h"


static void parse(FILE *f, char *s)
{
   char tmp[50];

   if (! strncmp(s, "geom", 4)) {
       sscanf(s, "%s %d %d %d %d", tmp, &v.win_x, &v.win_y, &v.win_w,
               &v.win_h);
       return;
   }

   if (! strncmp(s, "bgcolor", 7)) {
       sscanf(s, "%s %s %s", tmp, v.bgcolor_s, v.tbgcolor_s);
       return;
   }

   if (! strncmp(s, "bwcolor", 7)) {
       sscanf(s, "%s %s %s", tmp, v.bwbgcolor_s, v.bwfgcolor_s);
       return;
   }

   if (! strncmp(s, "xymove", 6)) {
       sscanf(s, "%s %d", tmp, &v.xymove);
       return;
   }

   if (! strncmp(s, "delay", 5)) {
       sscanf(s, "%s %d", tmp, &v.delay);
       return;
   }

   if (! strncmp(s, "jbigw", 5)) {
       sscanf(s, "%s %d", tmp, &v.jbigw);
       return;
   }

   if (! strncmp(s, "jbigh", 5)) {
       sscanf(s, "%s %d", tmp, &v.jbigh);
       return;
   }
}

void readconfig(FILE *f)
{
   char s[80];

   while (fgets(s, 80, f)) {
       s[strlen(s) - 1] = '\0';
       parse(f, s);
   }
   fclose(f);
}

void writeconfig(void)
{
   char rcname[512];
   FILE *f;

   sprintf(rcname, "%s/.imgviewrc", getenv("HOME"));

   f = fopen(rcname, "w");
   fprintf(f, "geom %d %d %d %d\n", v.win_x - xv.bwidth, v.win_y - xv.twidth,
           v.win_w, v.win_h);
   fprintf(f, "bgcolor %s %s\n", v.bgcolor_s, v.tbgcolor_s);
   fprintf(f, "bwcolor %s %s\n", v.bwbgcolor_s, v.bwfgcolor_s);
   fprintf(f, "xymove %d\n", v.xymove);
   fprintf(f, "delay %d\n", v.delay);
   fprintf(f, "jbigw %d\n", v.jbigw);
   fprintf(f, "jbigh %d\n", v.jbigh);
   fclose(f);
}