diff options
Diffstat (limited to 'lib/libpbm3.c')
-rw-r--r-- | lib/libpbm3.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/lib/libpbm3.c b/lib/libpbm3.c index 456d3986..b566202f 100644 --- a/lib/libpbm3.c +++ b/lib/libpbm3.c @@ -14,6 +14,7 @@ #include "netpbm/pm_c_util.h" +#include "libpbm.h" #include "pbm.h" #ifndef PACKBITS_SSE @@ -45,6 +46,12 @@ pbm_writepbminit(FILE * const fileP, int const rows, int const forceplain) { + /* For Caller's convenience, we include validating computability of the + image dimensions, since Caller may be using them in arithmetic after + our return. + */ + pbm_validateComputableSize(cols, rows); + if (!forceplain && !pm_plain_output) { fprintf(fileP, "%c%c\n%d %d\n", PBM_MAGIC1, RPBM_MAGIC2, cols, rows); } else @@ -317,7 +324,15 @@ pbm_writepbmrow_packed(FILE * const fileP, const unsigned char * const packedBits, int const cols, int const forceplain) { +/*---------------------------------------------------------------------------- + Write to file *fileP the PBM row 'cols' columns wide in packed bit buffer + 'packedBits'. + + Write it in PBM plain format iff 'forceplain' is nonzero. + In raw format, the don't-care bits at the end of the row are the same as + in the input buffer. +-----------------------------------------------------------------------------*/ if (!forceplain && !pm_plain_output) writePackedRawRow(fileP, packedBits, cols); else { @@ -378,10 +393,14 @@ pbm_writepbmrow_bitoffset(FILE * const fileP, int const format, unsigned int const offset) { /*---------------------------------------------------------------------------- - Write PBM row from a packed bit buffer 'packedBits, starting at the - specified offset 'offset' in the buffer. + Write to file *fileP the tail of the PBM row 'cols' columns wide in packed + bit buffer 'packedBits'. Start at column 'offset' of the row. + + Write it in PBM raw format. + + Make any don't-care bits at the end of the row written zero. - We destroy the buffer. + We destroy the contents of the buffer. -----------------------------------------------------------------------------*/ unsigned int const rsh = offset % 8; unsigned int const lsh = (8 - rsh) % 8; |