From e8a4248759f0ea61fbaed239655d0d7ee2975b28 Mon Sep 17 00:00:00 2001 From: giraffedata Date: Tue, 23 Sep 2008 16:33:47 +0000 Subject: cleanup git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@730 9d0c8265-081b-0410-96cb-a4ca84ce46f8 --- converter/pbm/pbmtodjvurle.c | 166 ++++++++++++++++++++++--------------------- 1 file changed, 86 insertions(+), 80 deletions(-) (limited to 'converter/pbm') diff --git a/converter/pbm/pbmtodjvurle.c b/converter/pbm/pbmtodjvurle.c index dbe96f31..83e99ec4 100644 --- a/converter/pbm/pbmtodjvurle.c +++ b/converter/pbm/pbmtodjvurle.c @@ -50,91 +50,97 @@ writebyte(FILE * const ofP, /* Write a run length to the RLE file. */ static void -write_rle (FILE *rlefile, uint32n tally) -{ - do { - /* Output a single run. */ - if (tally < 192) { - /* Single-byte runs */ - writebyte (rlefile, tally); - tally >>= 8; +write_rle(FILE * const rlefile, + uint32_t const tallyArg) { + + uint32_t remainingTally; + + remainingTally = tallyArg; /* initial value */ + + do { + /* Output a single run. */ + if (remainingTally < 192) { + /* Single-byte runs */ + writebyte (rlefile, remainingTally); + remainingTally >>= 8; + } + else { + /* Two-byte runs */ + writebyte (rlefile, ((remainingTally>>8) & 0x3F) + 0xC0); + writebyte (rlefile, remainingTally & 0xFF); + remainingTally >>= 14; + } + + /* Very large runs need to be split into smaller runs. We + therefore need to toggle back to the same color we had for the + previous smaller run. + */ + if (remainingTally > 0) + writebyte (rlefile, 0); } - else { - /* Two-byte runs */ - writebyte (rlefile, ((tally>>8)&0x3F) + 0xC0); - writebyte (rlefile, tally&0xFF); - tally >>= 14; - } - - /* Very large runs need to be split into smaller runs. We - * therefore need to toggle back to the same color we had for the - * previous smaller run. */ - if (tally > 0) - writebyte (rlefile, 0); - } - while (tally > 0); + while (remainingTally > 0); } int -main (int argc, char *argv[]) -{ - FILE * const rlefile = stdout; /* Generated Bitonal RLE file */ - - FILE *pbmfile; /* PBM file to convert */ - int numcols, numrows; /* Width and height in pixels of the PBM file */ - int format; /* Original image type before conversion to PBM */ - bit *pbmrow; /* One row of the PBM file */ - uint32n pixeltally = 0; /* Run length of the current color */ - int row, col; /* Row and column loop variables */ - const char * pbmfilename; /* Name of input file */ - - /* Parse the command line. */ - pbm_init (&argc, argv); - - if (argc-1 < 1) - pbmfilename = "-"; - else if (argc-1 == 1) - pbmfilename = argv[1]; - else - pm_error("Program takes at most 1 argument -- the input file name. " - "You specified %d", argc-1); - - pbmfile = pm_openr(pbmfilename); - - /* Write an RLE header. */ - pbm_readpbminit (pbmfile, &numcols, &numrows, &format); - fprintf (rlefile, "R4\n"); - fprintf (rlefile, "%d %d\n", numcols, numrows); - - /* Write the RLE data. */ - pbmrow = pbm_allocrow (numcols); - for (row=0; row