Annotation of 43BSDReno/contrib/jove/fp.h, revision 1.1.1.1

1.1       root        1: /***************************************************************************
                      2:  * This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne.  JOVE *
                      3:  * is provided to you without charge, and with no warranty.  You may give  *
                      4:  * away copies of JOVE, including sources, provided that this notice is    *
                      5:  * included in all the files.                                              *
                      6:  ***************************************************************************/
                      7: 
                      8: extern void    jputchar proto((int c));        /* hidden by macro */
                      9: 
                     10: #define jputchar(c)    jputc((c), stdout)
                     11: #define jputc(c, fp)   (--(fp)->f_cnt >= 0 ? (*(fp)->f_ptr++ = (c)) : _flush((c), fp))
                     12: #define jgetc(fp)      (((--(fp)->f_cnt < 0) ? filbuf(fp) : *(fp)->f_ptr++))
                     13: #define f_eof(fp)      ((fp)->f_flags & F_EOF)
                     14: 
                     15: typedef struct _file {
                     16:        int     f_cnt,          /* number of characters left in buffer */
                     17:                f_bufsize,      /* size of what f_base points to */
                     18:                f_fd,           /* fildes */
                     19:                f_flags;        /* various flags */
                     20:        char    *f_ptr,         /* current offset */
                     21:                *f_base;        /* pointer to base */
                     22:        char    *f_name;        /* name of open file */
                     23: } File;
                     24: 
                     25: #define F_READ         01
                     26: #define F_WRITE                02
                     27: #define F_APPEND       04
                     28: #define F_MODE(x)      ((x)&07)
                     29: #define F_EOF          010
                     30: #define F_STRING       020
                     31: #define F_ERR          040
                     32: #define F_LOCKED       0100    /* don't close this file upon error */
                     33: #define F_MYBUF                0200    /* f_alloc allocated the buffer, so
                     34:                                   f_close knows to free it up */
                     35: #define F_TELLALL      0400    /* whether to display info upon close */
                     36: #define F_READONLY     01000   /* file is read only */
                     37: 
                     38: extern long    io_chars;
                     39: extern int     io_lines;
                     40: 
                     41: extern File
                     42:        *stdout;
                     43: 
                     44: #ifdef VMUNIX
                     45: # define MAXTTYBUF     2048
                     46: #else
                     47: # define MAXTTYBUF     512
                     48: #endif
                     49: 
                     50: extern int     BufSize;
                     51: 
                     52: extern File
                     53:        *f_open proto((char *name,int flags,char *buffer,int buf_size)),
                     54:        *fd_open proto((char *name,int flags,int fd,char *buffer,int bsize));
                     55: 
                     56: extern int
                     57:        f_getint proto((File *fp)),
                     58:        f_gets proto((File *fp,char *buf,size_t max)),
                     59:        filbuf proto((File *fp)),
                     60:        _flush proto((int c,File *fp)),
                     61:        f_readn proto((File *fp,char *addr,int n));
                     62: 
                     63: extern void
                     64:        f_close proto((File *fp)),
                     65:        f_seek proto((File *fp, off_t offset)),
                     66:        f_toNL proto((File *fp)),
                     67:        flush proto((File *fp)),
                     68:        flusho proto((void)),
                     69:        fputnchar proto((char *s,int n,File *fp)),
                     70:        gc_openfiles proto((void)),
                     71:        putstr proto((char *s));

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.