home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd2.bin / bbs / gnu / f2c-1993.04.28-src.lha / GNU / src / amiga / f2c-1993.04.28 / libI77 / iio.c < prev    next >
C/C++ Source or Header  |  1993-04-28  |  2KB  |  139 lines

  1. #include "f2c.h"
  2. #include "fio.h"
  3. #include "fmt.h"
  4. extern char *f__icptr;
  5. char *f__icend;
  6. extern icilist *f__svic;
  7. int f__icnum;
  8. extern int f__hiwater;
  9. z_getc(Void)
  10. {
  11.     if(f__recpos++ < f__svic->icirlen) {
  12.         if(f__icptr >= f__icend) err(f__svic->iciend,(EOF),"endfile");
  13.         return(*f__icptr++);
  14.         }
  15.     err(f__svic->icierr,110,"recend");
  16. #ifdef __cplusplus
  17.     return 0;
  18. #endif
  19. }
  20. #ifdef KR_headers
  21. z_putc(c)
  22. #else
  23. z_putc(int c)
  24. #endif
  25. {
  26.     if(f__icptr >= f__icend) err(f__svic->icierr,110,"inwrite");
  27.     if(f__recpos++ < f__svic->icirlen)
  28.         *f__icptr++ = c;
  29.     else    err(f__svic->icierr,110,"recend");
  30.     return 0;
  31. }
  32. z_rnew(Void)
  33. {
  34.     f__icptr = f__svic->iciunit + (++f__icnum)*f__svic->icirlen;
  35.     f__recpos = 0;
  36.     f__cursor = 0;
  37.     f__hiwater = 0;
  38.     return 1;
  39. }
  40.  
  41.  static int
  42. z_endp(Void)
  43. {
  44.     (*f__donewrec)();
  45.     return 0;
  46.     }
  47.  
  48. #ifdef KR_headers
  49. c_si(a) icilist *a;
  50. #else
  51. c_si(icilist *a)
  52. #endif
  53. {
  54.     f__elist = (cilist *)a;
  55.     f__fmtbuf=a->icifmt;
  56.     if(pars_f(f__fmtbuf)<0)
  57.         err(a->icierr,100,"startint");
  58.     fmt_bg();
  59.     f__sequential=f__formatted=1;
  60.     f__external=0;
  61.     f__cblank=f__cplus=f__scale=0;
  62.     f__svic=a;
  63.     f__icnum=f__recpos=0;
  64.     f__cursor = 0;
  65.     f__hiwater = 0;
  66.     f__icptr = a->iciunit;
  67.     f__icend = f__icptr + a->icirlen*a->icirnum;
  68.     f__curunit = 0;
  69.     f__cf = 0;
  70.     return(0);
  71. }
  72. y_ierr(Void)
  73. {
  74.     err(f__elist->cierr, 110, "iio");
  75. #ifdef __cplusplus
  76.     return 0;
  77. #endif
  78. }
  79. #ifdef KR_headers
  80. integer s_rsfi(a) icilist *a;
  81. #else
  82. integer s_rsfi(icilist *a)
  83. #endif
  84. {    int n;
  85.     if(n=c_si(a)) return(n);
  86.     f__reading=1;
  87.     f__doed=rd_ed;
  88.     f__doned=rd_ned;
  89.     f__getn=z_getc;
  90.     f__dorevert = y_ierr;
  91.     f__donewrec = z_rnew;
  92.     f__doend = z_endp;
  93.     return(0);
  94. }
  95.  
  96. z_wnew(Void)
  97. {
  98.     while(f__recpos++ < f__svic->icirlen)
  99.         *f__icptr++ = ' ';
  100.     f__recpos = 0;
  101.     f__cursor = 0;
  102.     f__hiwater = 0;
  103.     f__icnum++;
  104.     return 1;
  105. }
  106. #ifdef KR_headers
  107. integer s_wsfi(a) icilist *a;
  108. #else
  109. integer s_wsfi(icilist *a)
  110. #endif
  111. {    int n;
  112.     if(n=c_si(a)) return(n);
  113.     f__reading=0;
  114.     f__doed=w_ed;
  115.     f__doned=w_ned;
  116.     f__putn=z_putc;
  117.     f__dorevert = y_ierr;
  118.     f__donewrec = z_wnew;
  119.     f__doend = z_endp;
  120.     return(0);
  121. }
  122. integer e_rsfi(Void)
  123. {    int n;
  124.     n = en_fio();
  125.     f__fmtbuf = NULL;
  126.     return(n);
  127. }
  128. integer e_wsfi(Void)
  129. {
  130.     int n;
  131.     n = en_fio();
  132.     f__fmtbuf = NULL;
  133.     if(f__icnum >= f__svic->icirnum)
  134.         return(n);
  135.     while(f__recpos++ < f__svic->icirlen)
  136.         *f__icptr++ = ' ';
  137.     return(n);
  138. }
  139.