# 2.11BSD#431 - /usr/src/usr.lib/libI77/backspace.c

##### Functions

    f_back            X

       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:  *	@(#)backspace.c	5.2	7/30/85
       7:  */
       8:
       9: /*
      10:  * Backspace records
      11:  */
      12:
      13: #include "fio.h"
      14:
      15: static char bksp[]  = "backspace";
      16: char    last_char();
      17:
      18: f_back(a)
      19: alist   *a;
      20: {   unit *b;
      21:     int n,i;
      22:     long x,y;
      23:
      24:     lfname = NULL;
      25:     elist = NO;
      26:     external = YES;
      27:     errflag = a->aerr;
      28:     lunit = a->aunit;
      29:     if (not_legal(lunit))
      30:         err(errflag, F_ERUNIT, bksp)
      31:     b= &units[lunit];
      32:     if(!b->ufd) return(OK);
      33:     lfname = b->ufnm;
      34:     if(b->uend)
      35:     {   b->uend = NO;
      36:         clearerr(b->ufd);
      37:         return(OK);
      38:     }
      39:     if((x = ftell(b->ufd)) == 0)
      40:         return(OK);
      41:     if(!b->useek)
      42:         err(errflag, F_ERNOBKSP, bksp)
      43:     if(b->uwrt && (n = t_runc(b, errflag, bksp)))   /* sets 'reading' */
      44:         return(n);
      45:     if(b->url)      /* direct access, purely academic */
      46:     {   y = x%(long)b->url;
      47:         x -= y?y:b->url;
      48:         fseek(b->ufd,x,0);
      49:         return(OK);
      50:     }
      51:     if(!b->ufmt)        /* unformatted sequential */
      52:     {   fseek(b->ufd,-(long)sizeof(int),1);
      53:         fread((char *)&n,sizeof(int),1,b->ufd);
      54:         fseek(b->ufd,-(long)n-2*sizeof(int),1);
      55:         return(OK);
      56:     }
      57:     if(x == 1)          /* formatted sequential */
      58:     {   rewind(b->ufd);
      59:         return(OK);
      60:     }
      61:     while (last_char(b->ufd) != '\n')   /* slow but simple */
      62:         ;
      63:     return(OK);
      64: }

#### Defined functions

f_back defined in line 18; never used

#### Defined variables

bksp defined in line 15; used 3 times

- in line 30, 42-43(2)

Last modified: 1987-02-18 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 558 |