Rendered the grid in player and also fixed bug in save/load
[wordblah.git] / wordblox.h
index 04adfa0..9a5c27c 100644 (file)
@@ -142,7 +142,7 @@ void export_grid_image  (Puzzle *p, const char *filename, bool answerkey)
        }
        
        gdImagePtr img = gdImageCreate (img_size, img_size);
-       int white = gdImageColorAllocate (img, 255,255,255);
+       gdImageColorAllocate (img, 255,255,255);
        int black = gdImageColorAllocate (img, 0, 0, 0);
        int blue = gdImageColorAllocate (img, 0, 0, 216);
        gdFontPtr sm_fnt = gdFontGetMediumBold ();
@@ -236,7 +236,7 @@ bool next_col_blank (Puzzle *p, int r, int c)
        return false;
 }
 
-/* unfreeze the grid - mak editing possible to change words */
+/* unfreeze the grid - make editing possible to change words */
 void unfreeze_puzzle (Puzzle *p)
 {
        for (int i = 0; i < p->grid_size; i ++)
@@ -320,7 +320,7 @@ void init_puzzle (Puzzle *p, int grid_size)
 /* save the puzzle to a file */
 void save_puzzle (Puzzle *puzzle, const char* file) {
        FILE *outfile;
-       /* First output the uncompressed contents to temp file */
+       /* First output the uncompressed contents to temp file */
        outfile = tmpfile ();
        if (outfile == NULL)
        {
@@ -389,7 +389,7 @@ void save_puzzle (Puzzle *puzzle, const char* file) {
        gzip compressed file */
        fflush (outfile);
        fseek (outfile, 0, 0);
-               
+                       
        /* now compress the file and save it to destination file */
        gzFile outdestfile = gzopen (file, "wb");
        if (outdestfile == NULL)
@@ -398,16 +398,18 @@ void save_puzzle (Puzzle *puzzle, const char* file) {
                fclose (outfile);
                exit (1);
        }
-       char buf[4096];
-       while (fread (buf, sizeof(char), 4096, outfile))
+       char buf[128];
+       int num = fread (buf, sizeof(char), sizeof(char)*128, outfile);
+       while (num > 0)
        {
-               int res = gzwrite (outdestfile, buf, strlen (buf) );
+               int res = gzwrite (outdestfile, buf, num*sizeof(char) );
                if (res == 0)
                {
                        fprintf (stderr, "%s %s\n", ERROR_WRITING_FILE, COMPRESSED);
                        fclose (outfile);
                        exit (1);
                }
+               num = fread (buf, sizeof(char), sizeof(char)*128, outfile);
        }
        gzclose (outdestfile);
        fclose (outfile);
@@ -431,10 +433,12 @@ Puzzle load_puzzle (const char* file) {
                exit (1);       
        }
        /* Put the uncompressed content to the temp file */
-       char buf[4096];
-       while (gzread (insourcefile, buf, 4096))
+       char buf[128];
+       int num = 0;
+       num = gzread (insourcefile, buf, 128);
+       while (num > 0)
        {
-               int res = fwrite (buf, sizeof(char), strlen (buf), infile);
+               int res = fwrite (buf, 1, num, infile);
                if (res == 0)
                {
                        fprintf (stderr, "%s\n", ERROR_READING_FILE);
@@ -442,6 +446,7 @@ Puzzle load_puzzle (const char* file) {
                        gzclose (insourcefile);
                        exit (1);
                }
+               num = gzread (insourcefile, buf, 128);
        }
        /* Close the gzip file */
        gzclose (insourcefile);