home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / utils / squsq / squprt33.ark / SQIO.C < prev    next >
C/C++ Source or Header  |  1986-11-08  |  955b  |  55 lines

  1. #include <stdio.h>
  2. #include "sqcom.h"
  3. #include "sq.h"
  4. #define ERROR -1
  5.  
  6. /* Get next byte from file and update checksum */
  7.  
  8. int
  9. getc_crc(ib)
  10. FILE *ib;
  11. {
  12.     int c;
  13.  
  14.     c = getc(ib);
  15.     if (c != EOF)
  16.         crc += c;        /* checksum */
  17.     return (c);
  18. }
  19.  
  20. /* Output functions with error reporting */
  21.  
  22. static char obuf[128];
  23. static int oblen = 0;
  24.  
  25. putce(c,  iob)
  26. int c;
  27. FILE *iob;
  28. {
  29. /*    obuf[oblen++] = c;    */
  30.     obuf[oblen++] = (c & 0xff);    /*rev 3.3*/
  31.     if (oblen >= sizeof(obuf)) oflush(iob);
  32. }
  33.  
  34. putwe(w,  iob)
  35. int w;
  36. FILE *iob;
  37. {
  38. /*    obuf[oblen++] = w;    */
  39.     obuf[oblen++] = (w & 0xff);    /*rev 3.3*/
  40.     if (oblen >= sizeof(obuf)) oflush(iob);
  41. /*    obuf[oblen++] = w >> 8;    */
  42.     obuf[oblen++] = (w >> 8) & 0xff;/*rev 3.3*/
  43.     if (oblen >= sizeof(obuf)) oflush(iob);
  44. }
  45.  
  46. oflush(iob)                /* flush output buffer */
  47. FILE *iob;
  48. {
  49.     if (oblen && !fwrite(obuf, oblen, 1, iob)) {
  50.         printf("Error writing output file\n");
  51.         exit(1);
  52.     }
  53.     oblen = 0;
  54. }
  55.