home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 309.lha / PBM_PLUS / pbm / libpbm4.c < prev    next >
C/C++ Source or Header  |  1980-12-04  |  2KB  |  82 lines

  1. /* libpbm4.c - pbm utility library part 4
  2. **
  3. ** Copyright (C) 1988 by Jef Poskanzer.
  4. **
  5. ** Permission to use, copy, modify, and distribute this software and its
  6. ** documentation for any purpose and without fee is hereby granted, provided
  7. ** that the above copyright notice appear in all copies and that both that
  8. ** copyright notice and this permission notice appear in supporting
  9. ** documentation.  This software is provided "as is" without express or
  10. ** implied warranty.
  11. */
  12.  
  13. #include <stdio.h>
  14. #include "pbm.h"
  15. #include "libpbm.h"
  16.  
  17. char
  18. pbm_getc( file )
  19. FILE *file;
  20.     {
  21.     register int ich;
  22.     register char ch;
  23.  
  24.     ich = getc( file );
  25.     if ( ich == EOF )
  26.     pm_error( "premature EOF", 0,0,0,0,0 );
  27.     ch = (char) ich;
  28.     
  29.     if ( ch == '#' )
  30.     {
  31.     do
  32.         {
  33.         ich = getc( file );
  34.         if ( ich == EOF )
  35.         pm_error( "premature EOF", 0,0,0,0,0 );
  36.         ch = (char) ich;
  37.         }
  38.     while ( ch != '\n' );
  39.     }
  40.  
  41.     return ch;
  42.     }
  43.  
  44. unsigned char
  45. pbm_getrawbyte( file )
  46. FILE *file;
  47.     {
  48.     register int iby;
  49.  
  50.     iby = getc( file );
  51.     if ( iby == EOF )
  52.     pm_error( "premature EOF", 0,0,0,0,0 );
  53.     return (unsigned char) iby;
  54.     }
  55.  
  56. int
  57. pbm_getint( file )
  58. FILE *file;
  59.     {
  60.     register char ch;
  61.     register int i;
  62.  
  63.     do
  64.     {
  65.     ch = pbm_getc( file );
  66.     }
  67.     while ( ch == ' ' || ch == '\t' || ch == '\n' );
  68.  
  69.     if ( ch < '0' || ch > '9' )
  70.     pm_error( "junk in file where an integer should be", 0,0,0,0,0 );
  71.  
  72.     i = 0;
  73.     do
  74.     {
  75.     i = i * 10 + ch - '0';
  76.     ch = pbm_getc( file );
  77.         }
  78.     while ( ch >= '0' && ch <= '9' );
  79.  
  80.     return i;
  81.     }
  82.