[gimp] plug-ins: formatting and untabify in file-faxg3



commit 809521557a38a06ff03f050e0f4314deded738a2
Author: Michael Natterer <mitch gimp org>
Date:   Mon Sep 17 22:27:15 2012 +0200

    plug-ins: formatting and untabify in file-faxg3

 plug-ins/file-faxg3/faxg3.c |  560 ++++++++++++++++++++++++-------------------
 1 files changed, 310 insertions(+), 250 deletions(-)
---
diff --git a/plug-ins/file-faxg3/faxg3.c b/plug-ins/file-faxg3/faxg3.c
index c1d7282..43e2a43 100644
--- a/plug-ins/file-faxg3/faxg3.c
+++ b/plug-ins/file-faxg3/faxg3.c
@@ -17,6 +17,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
+
 #include "config.h"
 
 #include <errno.h>
@@ -29,7 +30,7 @@
 #include <sys/types.h>
 #include <fcntl.h>
 
-#include <glib.h>		/* For G_OS_WIN32 */
+#include <glib.h> /* For G_OS_WIN32 */
 #include <glib/gstdio.h>
 
 #ifdef G_OS_WIN32
@@ -55,10 +56,10 @@
 
 static void   query      (void);
 static void   run        (const gchar      *name,
-			  gint              nparams,
-			  const GimpParam  *param,
-			  gint             *nreturn_vals,
-			  GimpParam       **return_vals);
+                          gint              nparams,
+                          const GimpParam  *param,
+                          gint             *nreturn_vals,
+                          GimpParam       **return_vals);
 
 static gint32 load_image (const gchar      *filename,
                           GError          **error);
@@ -80,7 +81,8 @@ const GimpPlugInInfo PLUG_IN_INFO =
 
 MAIN ()
 
-void query (void)
+void
+query (void)
 {
   static const GimpParamDef load_args[] =
   {
@@ -95,12 +97,12 @@ void query (void)
 
   gimp_install_procedure (LOAD_PROC,
                           "loads g3 fax files",
-			  "This plug-in loads Fax G3 Image files.",
+                          "This plug-in loads Fax G3 Image files.",
                           "Jochen Friedrich",
                           "Jochen Friedrich, Gert Doering, Spencer Kimball & Peter Mattis",
                           VERSION,
-			  N_("G3 fax image"),
-			  NULL,
+                          N_("G3 fax image"),
+                          NULL,
                           GIMP_PLUGIN,
                           G_N_ELEMENTS (load_args),
                           G_N_ELEMENTS (load_return_vals),
@@ -108,9 +110,9 @@ void query (void)
 
   gimp_register_file_handler_mime (LOAD_PROC, "image/g3-fax");
   gimp_register_magic_load_handler (LOAD_PROC,
-				    "g3",
-				    "",
-				    "4,string,Research");
+                                    "g3",
+                                    "",
+                                    "4,string,Research");
 }
 
 static void
@@ -125,32 +127,33 @@ run (const gchar      *name,
   GError           *error = NULL;
 
   *nreturn_vals = 1;
-  *return_vals = values;
+  *return_vals  = values;
 
-  values[0].type = GIMP_PDB_STATUS;
+  values[0].type          = GIMP_PDB_STATUS;
   values[0].data.d_status = GIMP_PDB_CALLING_ERROR;
 
   if (strcmp (name, LOAD_PROC) == 0)
     {
-      INIT_I18N();
+      INIT_I18N ();
 
       image_ID = load_image (param[1].data.d_string, &error);
 
       if (image_ID != -1)
-	{
+        {
           *nreturn_vals = 2;
 
-	  values[0].data.d_status = GIMP_PDB_SUCCESS;
-          values[1].type = GIMP_PDB_IMAGE;
-          values[1].data.d_image = image_ID;
-	}
+          values[0].data.d_status = GIMP_PDB_SUCCESS;
+          values[1].type          = GIMP_PDB_IMAGE;
+          values[1].data.d_image  = image_ID;
+        }
       else
-	{
-	  values[0].data.d_status = GIMP_PDB_EXECUTION_ERROR;
+        {
+          values[0].data.d_status = GIMP_PDB_EXECUTION_ERROR;
 
           if (error)
             {
               *nreturn_vals = 2;
+
               values[1].type          = GIMP_PDB_STRING;
               values[1].data.d_string = error->message;
             }
@@ -159,67 +162,68 @@ run (const gchar      *name,
 }
 
 #ifdef DEBUG
-void putbin (unsigned long d )
+void
+putbin (unsigned long d)
 {
-unsigned long i = 0x80000000;
+  unsigned long i = 0x80000000;
 
-    while ( i!=0 )
+  while (i != 0)
     {
-	putc( ( d & i ) ? '1' : '0', stderr );
-	i >>= 1;
+      putc((d & i) ? '1' : '0', stderr);
+      i >>= 1;
     }
-    putc( '\n', stderr );
+  putc('\n', stderr);
 }
 #endif
 
-static int byte_tab[ 256 ];
-/* static int o_stretch; */		/* -stretch: double each line */
-/* static int o_stretch_force=-1; */	/* -1: guess from filename */
-/* static int o_lj; */			/* -l: LJ output */
-/* static int o_turn; */		/* -t: turn 90 degrees right */
+static int byte_tab[256];
+/* static int o_stretch; */             /* -stretch: double each line */
+/* static int o_stretch_force=-1; */    /* -1: guess from filename */
+/* static int o_lj; */                  /* -l: LJ output */
+/* static int o_turn; */                /* -t: turn 90 degrees right */
 
 struct g3_tree * black, * white;
 
 #define CHUNK 2048;
-static	char rbuf[2048];	/* read buffer */
-static	int  rp;		/* read pointer */
-static	int  rs;		/* read buffer size */
+static  char rbuf[2048];        /* read buffer */
+static  int  rp;                /* read pointer */
+static  int  rs;                /* read buffer size */
 
 #define MAX_ROWS 4300
-#define MAX_COLS 1728		/* !! FIXME - command line parameter */
+#define MAX_COLS 1728           /* !! FIXME - command line parameter */
 
 
 static gint32
 load_image (const gchar  *filename,
             GError      **error)
 {
-  int data;
-  int hibit;
-  struct g3_tree * p;
-  int nr_pels;
-  int fd;
-  int color;
-  int i, rr, rsize;
-  int cons_eol;
-
-  gint32 image_id;
-  gint   bperrow = MAX_COLS/8;	/* bytes per bit row */
-  gchar *bitmap;		/* MAX_ROWS by (bperrow) bytes */
-  gchar *bp;			/* bitmap pointer */
-  gint	 row;
-  gint	 max_rows;		/* max. rows allocated */
-  gint 	 col, hcol;		/* column, highest column ever used */
+  int             data;
+  int             hibit;
+  struct g3_tree *p;
+  int             nr_pels;
+  int             fd;
+  int             color;
+  int             i, rr, rsize;
+  int             cons_eol;
+
+  gint32          image_id;
+  gint            bperrow = MAX_COLS/8;  /* bytes per bit row */
+  gchar          *bitmap;                /* MAX_ROWS by (bperrow) bytes */
+  gchar          *bp;                    /* bitmap pointer */
+  gint            row;
+  gint            max_rows;              /* max. rows allocated */
+  gint            col, hcol;             /* column, highest column ever used */
 
   gimp_progress_init_printf (_("Opening '%s'"),
                              gimp_filename_to_utf8 (filename));
 
   /* initialize lookup trees */
-  build_tree( &white, t_white );
-  build_tree( &white, m_white );
-  build_tree( &black, t_black );
-  build_tree( &black, m_black );
+  build_tree (&white, t_white);
+  build_tree (&white, m_white);
+  build_tree (&black, t_black);
+  build_tree (&black, m_black);
 
-  init_byte_tab( 0, byte_tab );
+  init_byte_tab (0, byte_tab);
 
   fd = g_open (filename, O_RDONLY | _O_BINARY, 0);
 
@@ -234,209 +238,254 @@ load_image (const gchar  *filename,
   hibit = 0;
   data = 0;
 
-  cons_eol = 0;	/* consecutive EOLs read - zero yet */
+  cons_eol = 0; /* consecutive EOLs read - zero yet */
 
-  color = 0;		/* start with white */
+  color = 0; /* start with white */
   rr = 0;
 
-  rsize = lseek(fd, 0L, SEEK_END);
-  lseek(fd, 0L, 0);
+  rsize = lseek (fd, 0L, SEEK_END);
+  lseek (fd, 0L, 0);
+
+  rs = read (fd, rbuf, sizeof (rbuf));
+  if (rs < 0)
+    {
+      perror ("read");
+      close (rs);
+      gimp_quit ();
+    }
 
-  rs = read( fd, rbuf, sizeof(rbuf) );
-  if ( rs < 0 ) { perror( "read" ); close( rs ); gimp_quit (); }
   rr += rs;
-  gimp_progress_update ((float)rr/rsize/2.0);
+  gimp_progress_update ((float) rr / rsize / 2.0);
 
-			/* skip GhostScript header */
-  rp = ( rs >= 64 && strcmp( rbuf+1, "PC Research, Inc" ) == 0 ) ? 64 : 0;
+                        /* skip GhostScript header */
+  rp = (rs >= 64 && strcmp (rbuf + 1, "PC Research, Inc") == 0) ? 64 : 0;
 
   /* initialize bitmap */
 
   row = col = hcol = 0;
 
-  bitmap = g_new0 (gchar, ( max_rows = MAX_ROWS ) * MAX_COLS / 8 );
+  bitmap = g_new0 (gchar, (max_rows = MAX_ROWS) * MAX_COLS / 8);
 
-  bp = &bitmap[ row * MAX_COLS/8 ];
+  bp = &bitmap[row * MAX_COLS / 8];
 
-  while ( rs > 0 && cons_eol < 4 )	/* i.e., while (!EOF) */
-  {
+  while (rs > 0 && cons_eol < 4)        /* i.e., while (!EOF) */
+    {
 #ifdef DEBUG
-    g_printerr ("hibit=%2d, data=", hibit );
-    putbin( data );
+      g_printerr ("hibit=%2d, data=", hibit);
+      putbin (data);
 #endif
-    while ( hibit < 20 )
-    {
-      data |= ( byte_tab[ (int) (unsigned char) rbuf[ rp++] ] << hibit );
-      hibit += 8;
-
-      if ( rp >= rs )
-      {
-        rs = read( fd, rbuf, sizeof( rbuf ) );
-        if ( rs < 0 ) { perror( "read2"); break; }
-        rr += rs;
-        gimp_progress_update ((float)rr/rsize/2.0);
-        rp = 0;
-        if ( rs == 0 ) { goto do_write; }
-      }
+
+      while (hibit < 20)
+        {
+          data |= (byte_tab[(int) (unsigned char) rbuf[rp++]] << hibit);
+          hibit += 8;
+
+          if (rp >= rs)
+            {
+              rs = read (fd, rbuf, sizeof (rbuf));
+              if (rs < 0)
+                { perror ("read2");
+                  break;
+                }
+              rr += rs;
+              gimp_progress_update ((float) rr / rsize / 2.0);
+              rp = 0;
+              if (rs == 0)
+                goto do_write;
+            }
+
 #ifdef DEBUG
-      g_printerr ("hibit=%2d, data=", hibit );
-      putbin( data );
+          g_printerr ("hibit=%2d, data=", hibit);
+          putbin (data);
 #endif
-    }
+        }
 
-    if ( color == 0 )		/* white */
-      p = white->nextb[ data & BITM ];
-    else			/* black */
-      p = black->nextb[ data & BITM ];
+      if (color == 0) /* white */
+        p = white->nextb[data & BITM];
+      else /* black */
+        p = black->nextb[data & BITM];
 
-    while ( p != NULL && ! ( p->nr_bits ) )
-    {
-	    data >>= FBITS;
-	    hibit -= FBITS;
-	    p = p->nextb[ data & BITM ];
-	}
-
-	if ( p == NULL )	/* invalid code */
-	{
-	    g_printerr ("invalid code, row=%d, col=%d, file offset=%lx, skip to eol\n",
-                        row, col, (unsigned long) lseek( fd, 0, 1 ) - rs + rp );
-	    while ( ( data & 0x03f ) != 0 )
-	    {
-		data >>= 1; hibit--;
-		if ( hibit < 20 )
-		{
-		    data |= ( byte_tab[ (int) (unsigned char) rbuf[ rp++] ] << hibit );
-		    hibit += 8;
-
-		    if ( rp >= rs )	/* buffer underrun */
-		    {   rs = read( fd, rbuf, sizeof( rbuf ) );
-			if ( rs < 0 ) { perror( "read4"); break; }
-        		rr += rs;
-      			gimp_progress_update ((float)rr/rsize/2.0);
-			rp = 0;
-			if ( rs == 0 ) goto do_write;
-		    }
-		}
-	    }
-	    nr_pels = -1;		/* handle as if eol */
-	}
-	else				/* p != NULL <-> valid code */
-	{
-	    data >>= p->nr_bits;
-	    hibit -= p->nr_bits;
-
-	    nr_pels = ( (struct g3_leaf *) p ) ->nr_pels;
+      while (p != NULL && ! (p->nr_bits))
+        {
+          data >>= FBITS;
+          hibit -= FBITS;
+          p = p->nextb[data & BITM];
+        }
+
+      if (p == NULL) /* invalid code */
+        {
+          g_printerr ("invalid code, row=%d, col=%d, file offset=%lx, skip to eol\n",
+                      row, col, (unsigned long) lseek (fd, 0, 1) - rs + rp);
+
+          while ((data & 0x03f) != 0)
+            {
+              data >>= 1; hibit--;
+
+              if ( hibit < 20 )
+                {
+                  data |= (byte_tab[(int) (unsigned char) rbuf[rp++]] << hibit);
+                  hibit += 8;
+
+                  if (rp >= rs) /* buffer underrun */
+                    {
+                      rs = read (fd, rbuf, sizeof (rbuf));
+
+                      if (rs < 0)
+                        { perror ("read4");
+                          break;
+                        }
+
+                      rr += rs;
+                      gimp_progress_update ((float) rr / rsize / 2.0);
+                      rp = 0;
+                      if (rs == 0)
+                        goto do_write;
+                    }
+                }
+            }
+          nr_pels = -1;         /* handle as if eol */
+        }
+      else /* p != NULL <-> valid code */
+        {
+          data >>= p->nr_bits;
+          hibit -= p->nr_bits;
+
+          nr_pels = ((struct g3_leaf *) p)->nr_pels;
 #ifdef DEBUG
-	    g_printerr ("PELs: %d (%c)\n", nr_pels, '0'+color );
+          g_printerr ("PELs: %d (%c)\n", nr_pels, '0' + color);
 #endif
-	}
+        }
 
-	/* handle EOL (including fill bits) */
-	if ( nr_pels == -1 )
-	{
+        /* handle EOL (including fill bits) */
+      if (nr_pels == -1)
+        {
 #ifdef DEBUG
-	    g_printerr ("hibit=%2d, data=", hibit );
-	    putbin( data );
+          g_printerr ("hibit=%2d, data=", hibit);
+          putbin (data);
 #endif
-	    /* skip filler 0bits -> seek for "1"-bit */
-	    while ( ( data & 0x01 ) != 1 )
-	    {
-		if ( ( data & 0xf ) == 0 )	/* nibble optimization */
-		{
-		    hibit-= 4; data >>= 4;
-		}
-		else
-		{
-		    hibit--; data >>= 1;
-		}
-		/* fill higher bits */
-		if ( hibit < 20 )
-		{
-		    data |= ( byte_tab[ (int) (unsigned char) rbuf[ rp++] ] << hibit );
-		    hibit += 8;
-
-		    if ( rp >= rs )	/* buffer underrun */
-		    {   rs = read( fd, rbuf, sizeof( rbuf ) );
-			if ( rs < 0 ) { perror( "read3"); break; }
-        		rr += rs;
-      			gimp_progress_update ((float)rr/rsize/2.0);
-			rp = 0;
-			if ( rs == 0 ) goto do_write;
-		    }
-		}
+          /* skip filler 0bits -> seek for "1"-bit */
+          while ((data & 0x01) != 1)
+            {
+              if ((data & 0xf) == 0) /* nibble optimization */
+                {
+                  hibit-= 4;
+                  data >>= 4;
+                }
+              else
+                {
+                  hibit--;
+                  data >>= 1;
+                }
+
+              /* fill higher bits */
+              if (hibit < 20)
+                {
+                  data |= ( byte_tab[(int) (unsigned char) rbuf[ rp++]] << hibit);
+                  hibit += 8;
+
+                  if (rp >= rs) /* buffer underrun */
+                    {
+                      rs = read (fd, rbuf, sizeof (rbuf));
+                      if ( rs < 0 )
+                        {
+                          perror ("read3");
+                          break;
+                        }
+                      rr += rs;
+                      gimp_progress_update ((float) rr / rsize / 2.0);
+                      rp = 0;
+                      if (rs == 0)
+                        goto do_write;
+                    }
+                }
 #ifdef DEBUG
-	    g_printerr ("hibit=%2d, data=", hibit );
-	    putbin( data );
+              g_printerr ("hibit=%2d, data=", hibit );
+              putbin(data);
 #endif
-	    }				/* end skip 0bits */
-	    hibit--; data >>=1;
-
-	    color=0;
-
-	    if ( col == 0 )
-		cons_eol++;		/* consecutive EOLs */
-	    else
-	    {
-	        if ( col > hcol && col <= MAX_COLS ) hcol = col;
-		row++;
-
-		/* bitmap memory full? make it larger! */
-		if ( row >= max_rows )
-                  {
-                    gchar *p = g_try_realloc( bitmap,
-                                              ( max_rows += 500 ) * MAX_COLS/8 );
-		    if ( p == NULL )
-                      {
-			perror( "realloc() failed, page truncated" );
-			rs = 0;
-                      }
-		    else
-                      {
-			bitmap = p;
-			memset( &bitmap[ row * MAX_COLS/8 ], 0,
-			       ( max_rows - row ) * MAX_COLS/8 );
-                      }
-                  }
-
-		col=0; bp = &bitmap[ row * MAX_COLS/8 ];
-		cons_eol = 0;
-	    }
-	}
-	else		/* not eol */
-	{
-	    if ( col+nr_pels > MAX_COLS ) nr_pels = MAX_COLS - col;
-
-	    if ( color == 0 )                  /* white */
-		col += nr_pels;
-	    else                               /* black */
-	    {
-            register int bit = ( 0x80 >> ( col & 07 ) );
-	    register char *w = & bp[ col>>3 ];
-
-		for ( i=nr_pels; i > 0; i-- )
-		{
-		    *w |= bit;
-		    bit >>=1; if ( bit == 0 ) { bit = 0x80; w++; }
-		    col++;
-		}
-	    }
-	    if ( nr_pels < 64 ) color = !color;		/* terminating code */
-	}
-    }		/* end main loop */
-
-do_write:      	/* write pbm (or whatever) file */
-
-    if( fd != 0 ) close(fd);	/* close input file */
+            } /* end skip 0bits */
+          hibit--;
+          data >>=1;
+
+          color = 0;
+
+          if (col == 0)
+            {
+              cons_eol++; /* consecutive EOLs */
+            }
+          else
+            {
+              if (col > hcol && col <= MAX_COLS)
+                hcol = col;
+              row++;
+
+              /* bitmap memory full? make it larger! */
+              if (row >= max_rows)
+                {
+                  gchar *p = g_try_realloc (bitmap,
+                                            (max_rows += 500) * MAX_COLS / 8);
+                  if (p == NULL)
+                    {
+                      perror ("realloc() failed, page truncated");
+                      rs = 0;
+                    }
+                  else
+                    {
+                      bitmap = p;
+                      memset (&bitmap[ row * MAX_COLS / 8 ], 0,
+                              (max_rows - row) * MAX_COLS / 8);
+                    }
+                }
+
+              col=0; bp = &bitmap[row * MAX_COLS / 8];
+              cons_eol = 0;
+            }
+        }
+      else /* not eol */
+        {
+          if (col + nr_pels > MAX_COLS)
+            nr_pels = MAX_COLS - col;
+
+          if (color == 0) /* white */
+            {
+              col += nr_pels;
+            }
+          else /* black */
+            {
+              register int bit = (0x80 >> (col & 07));
+              register char *w = & bp[col >> 3];
+
+              for (i = nr_pels; i > 0; i--)
+                {
+                  *w |= bit;
+                  bit >>=1;
+                  if (bit == 0)
+                    {
+                      bit = 0x80;
+                      w++;
+                    }
+                  col++;
+                }
+            }
+
+          if (nr_pels < 64)
+            color = !color; /* terminating code */
+        }
+    } /* end main loop */
+
+ do_write: /* write pbm (or whatever) file */
+
+  if (fd != 0)
+    close (fd); /* close input file */
 
 #ifdef DEBUG
-    g_printerr ("consecutive EOLs: %d, max columns: %d\n", cons_eol, hcol );
+  g_printerr ("consecutive EOLs: %d, max columns: %d\n", cons_eol, hcol);
 #endif
 
-    image_id = emitgimp (hcol, row, bitmap, bperrow, filename);
+  image_id = emitgimp (hcol, row, bitmap, bperrow, filename);
 
-    g_free (bitmap);
+  g_free (bitmap);
 
-    return image_id;
+  return image_id;
 }
 
 /* hcol is the number of columns, row the number of rows
@@ -472,9 +521,9 @@ emitgimp (gint         hcol,
   gimp_image_set_filename (image_ID, filename);
 
   layer_ID = gimp_layer_new (image_ID, _("Background"),
-			     hcol,
-			     row,
-			     GIMP_GRAY_IMAGE, 100, GIMP_NORMAL_MODE);
+                             hcol,
+                             row,
+                             GIMP_GRAY_IMAGE, 100, GIMP_NORMAL_MODE);
   gimp_image_insert_layer (image_ID, layer_ID, -1, 0);
 
   drawable = gimp_drawable_get (layer_ID);
@@ -486,29 +535,40 @@ emitgimp (gint         hcol,
 #endif
 
   buf = g_new (guchar, hcol*tile_height);
-  xx=0;
-  yy=0;
-  for (y=0; y<row; y++) {
-    for (x=0; x<hcol; x++) {
-      if ((x&7)==0) tmp = bitmap[y*bperrow+(x>>3)];
-      buf[xx++]=tmp&(128>>(x&7))?0:255;
-    }
-    if ((y-yy) == tile_height-1) {
+
+  xx = 0;
+  yy = 0;
+
+  for (y = 0; y < row; y++)
+    {
+      for (x = 0; x < hcol; x++)
+        {
+          if ((x & 7) == 0)
+            tmp = bitmap[y * bperrow + (x >> 3)];
+
+          buf[xx++] = tmp&(128 >> (x & 7)) ? 0 : 255;
+        }
+
+      if ((y - yy) == tile_height - 1)
+        {
 #ifdef DEBUG
-      g_printerr ("update tile height: %d\n", tile_height);
+          g_printerr ("update tile height: %d\n", tile_height);
 #endif
-      gimp_pixel_rgn_set_rect (&pixel_rgn, buf, 0, yy, hcol, tile_height);
-      gimp_progress_update (0.5+(float)y/row/2.0);
-      xx=0;
-      yy += tile_height;
+          gimp_pixel_rgn_set_rect (&pixel_rgn, buf, 0, yy, hcol, tile_height);
+          gimp_progress_update (0.5 + (float) y / row / 2.0);
+          xx = 0;
+          yy += tile_height;
+        }
     }
-  }
-  if (row-yy) {
+
+  if (row - yy)
+    {
 #ifdef DEBUG
-    g_printerr ("update rest: %d\n", row-yy);
+      g_printerr ("update rest: %d\n", row-yy);
 #endif
-    gimp_pixel_rgn_set_rect (&pixel_rgn, buf, 0, yy, hcol, row-yy);
-  }
+      gimp_pixel_rgn_set_rect (&pixel_rgn, buf, 0, yy, hcol, row - yy);
+    }
+
   gimp_progress_update (1.0);
 
   g_free (buf);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]