1: /*
   2:  * Copyright (c) 1980 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  *
   6:  *	@(#)util.c	5.1	6/7/85
   7:  */
   8: 
   9: /*
  10:  * utility routines
  11:  */
  12: 
  13: #include "fio.h"
  14: 
  15: extern short    ccntrl_, blzero_;
  16: 
  17: nowreading(x) unit *x;
  18: {
  19:     return(now_acc(x,"r"));
  20: }
  21: 
  22: nowwriting(x) unit *x;
  23: {
  24:     return(now_acc(x,"a"));
  25: }
  26: 
  27: LOCAL now_acc(x,mode)
  28: unit *x; char *mode;
  29: {
  30:     long loc;
  31: 
  32:     if (!x->ufnm)
  33:     {
  34:         errno = EBADF;
  35:         return(NO);
  36:     }
  37:     if (x->useek)
  38:         loc=ftell(x->ufd);
  39:     if (freopen(x->ufnm,mode,x->ufd))
  40:     {
  41:         if (x->useek)
  42:             fseek(x->ufd,loc,0);
  43:         x->uwrt = (*mode=='a');
  44:         return(YES);
  45:     }
  46:     if (x->ufd = fopen(x->ufnm, (*mode=='a')? "r":"a"))
  47:         if (x->useek)
  48:             fseek(x->ufd,loc,0);
  49:     return(NO);
  50: }
  51: 
  52: g_char(a,alen,b) char *a,*b; ftnlen alen;
  53: {   char *x=a+alen-1, *y=b+alen-1;
  54:     while (x >= a  &&  *x == ' ') {x--; y--;}
  55:     *(y+1) = '\0';
  56:     while (x >= a) *y-- = *x--;
  57: }
  58: 
  59: b_char(from, to, tolen) char *from, *to; ftnlen tolen;
  60: {   int i=0;
  61:     while (*from && i < tolen) {
  62:         *to++ = *from++;
  63:         i++;
  64:     }
  65:     while (i++ < tolen)
  66:         *to++ = ' ';
  67: }
  68: 
  69: char
  70: last_char(f) FILE *f;
  71: {
  72:     fseek(f,-2L,1);
  73:     if(ftell(f)) return(getc(f));
  74:     else return('\n');
  75: }

Defined functions

now_acc defined in line 27; used 2 times
Last modified: 1987-02-18
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2607
Valid CSS Valid XHTML 1.0 Strict