Annotation of 43BSDReno/contrib/jove/buf.h, revision 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: /* maximum length of a line (including '\0').  Currently cannot
        !             9:    be larger than a logical disk block. */
        !            10: #define        LBSIZE          JBUFSIZ
        !            11: 
        !            12: /* buffer types */
        !            13: #define B_SCRATCH      1       /* for internal things, e.g. minibuffer ... */
        !            14: #define B_FILE         2       /* normal file (we auto-save these.) */
        !            15: #define B_PROCESS      3       /* unix process output in this buffer */
        !            16: 
        !            17: /* major modes */
        !            18: #define FUNDAMENTAL    0       /* Fundamental mode */
        !            19: #define TEXT           1       /* Text mode */
        !            20: #define CMODE          2       /* C mode */
        !            21: #ifdef LISP
        !            22: # define LISPMODE      3       /* Lisp mode */
        !            23: # define NMAJORS       4
        !            24: #else
        !            25: # define NMAJORS       3
        !            26: #endif
        !            27: 
        !            28: #define MajorMode(x)   (curbuf->b_major == (x))
        !            29: #define SetMajor(x)    { curbuf->b_major = (x); UpdModLine = YES; }
        !            30: 
        !            31: /* minor modes */
        !            32: #define Indent         (1 << 0)        /* indent same as previous line after return */
        !            33: #define ShowMatch      (1 << 1)        /* paren flash mode */
        !            34: #define Fill           (1 << 2)        /* text fill mode */
        !            35: #define OverWrite      (1 << 3)        /* over write mode */
        !            36: #define Abbrev         (1 << 4)        /* abbrev mode */
        !            37: #define ReadOnly       (1 << 5)        /* buffer is read only */
        !            38: 
        !            39: #define BufMinorMode(b, x)     ((b)->b_minor & (x))
        !            40: #define MinorMode(x)           BufMinorMode(curbuf, (x))
        !            41: 
        !            42: /* global line scratch buffers */
        !            43: #if defined(VMUNIX) || defined(MSDOS)
        !            44: extern char    genbuf[LBSIZE],
        !            45:                linebuf[LBSIZE],
        !            46:                iobuff[LBSIZE];
        !            47: #else
        !            48: extern char    *genbuf,        /* scratch pad points at s_genbuf (see main()) */
        !            49:                *linebuf,       /* points at s_linebuf */
        !            50:                *iobuff;        /* for file reading ... points at s_iobuff */
        !            51: #endif
        !            52: 
        !            53: struct line {
        !            54:        Line    *l_prev,                /* pointer to prev */
        !            55:                *l_next;                /* pointer to next */
        !            56:        daddr   l_dline;                /* pointer to disk location */
        !            57: };
        !            58: 
        !            59: struct mark {
        !            60:        Line    *m_line;
        !            61:        int     m_char;
        !            62:        Mark    *m_next;        /* list of marks */
        !            63: #define M_FIXED                00
        !            64: #define M_FLOATER      01
        !            65: #define M_BIG_DELETE   02
        !            66:        char    m_flags;        /* FLOATERing mark? */
        !            67: };
        !            68: 
        !            69: struct buffer {
        !            70: #ifdef MAC
        !            71:        int Type;               /* kludge... to look like a data_obj */
        !            72:        char *Name;             /* Name will not be used */
        !            73: #endif
        !            74:        Buffer  *b_next;                /* next buffer in chain */
        !            75:        char    *b_name,                /* buffer name */
        !            76:                *b_fname;               /* file name associated with buffer */
        !            77:        dev_t   b_dev;                  /* device of file name. */
        !            78:        ino_t   b_ino;                  /* inode of file name */
        !            79:        time_t  b_mtime;                /* last modify time ...
        !            80:                                           to detect two people writing
        !            81:                                           to the same file */
        !            82:        Line    *b_first,               /* pointer to first line in list */
        !            83:                *b_dot,                 /* current line */
        !            84:                *b_last;                /* last line in list */
        !            85:        int     b_char;                 /* current character in line */
        !            86: 
        !            87: #define NMARKS 8                       /* number of marks in the ring */
        !            88: 
        !            89:        Mark    *b_markring[NMARKS],    /* new marks are pushed here */
        !            90: #define b_curmark(b)   ((b)->b_markring[(b)->b_themark])
        !            91: #define curmark                b_curmark(curbuf)
        !            92:                *b_marks;               /* all the marks for this buffer */
        !            93:        char    b_themark,              /* current mark (in b_markring) */
        !            94:                b_type,                 /* file, scratch, process, iprocess */
        !            95:                b_ntbf,                 /* needs to be found when we
        !            96:                                           first select? */
        !            97:                b_modified;             /* is the buffer modified? */
        !            98:        int     b_major,                /* major mode */
        !            99:                b_minor;                /* and minor mode */
        !           100:        struct keymap   *b_map;         /* local bindings (if any) */
        !           101: #ifdef IPROCS
        !           102:        Process *b_process;             /* process we're attached to */
        !           103: #endif
        !           104: };
        !           105: 
        !           106: extern Buffer  *world,         /* first buffer */
        !           107:                *curbuf,        /* pointer into world for current buffer */
        !           108:                *lastbuf,       /* Last buffer we were in so we have a default
        !           109:                                   buffer during a select buffer. */
        !           110:                *perr_buf;      /* Buffer with error messages */
        !           111: 
        !           112: #define curline        (curbuf->b_dot)
        !           113: #define curchar (curbuf->b_char)
        !           114: 
        !           115: /* kill buffer */
        !           116: #define NUMKILLS       10      /* number of kills saved in the kill ring */
        !           117: extern Line    *killbuf[NUMKILLS];
        !           118: 
        !           119: struct position {
        !           120:        Line    *p_line;
        !           121:        int     p_char;
        !           122: };
        !           123: 
        !           124: extern int     killptr;        /* index into killbuf */
        !           125: 
        !           126: extern Buffer
        !           127:        *buf_exists proto((char *name)),
        !           128:        *do_find proto((struct window *w,char *fname,int force)),
        !           129:        *do_select proto((struct window *w,char *name)),
        !           130:        *file_exists proto((char *name));
        !           131: 
        !           132: extern char
        !           133:        *ask_buf proto((struct buffer *def)),
        !           134:        *ralloc proto((char *obj, size_t size));
        !           135: 
        !           136: #ifdef __STDC__
        !           137: struct macro;
        !           138: #endif /* __STDC__ */
        !           139: 
        !           140: extern void
        !           141:        TogMinor proto((int bit)),
        !           142:        bufname proto((struct buffer *b)),
        !           143:        initlist proto((struct buffer *b)),
        !           144:        setbname proto((struct buffer *b,char *name)),
        !           145:        setfname proto((struct buffer *b,char *name)),
        !           146:        set_ino proto((struct buffer *b)),
        !           147:        SetABuf proto((struct buffer *b)),
        !           148:        SetBuf proto((struct buffer *newbuf)),
        !           149:        AllMarkSet proto((struct buffer *b,struct line *line,int col)),
        !           150:        DFixMarks proto((struct line *line1,int char1,struct line *line2,int char2)),
        !           151:        DelMark proto((struct mark *m)),
        !           152:        IFixMarks proto((struct line *line1, int char1, struct line *line2, int char2)),
        !           153:        MarkSet proto((struct mark *m, struct line *line, int column)),
        !           154:        ToMark proto((struct mark *m)),
        !           155:        flush_marks proto((Buffer *)),
        !           156:        b_char proto((int n)),
        !           157:        b_word proto((int num)),
        !           158:        del_char proto((int dir,int num,int OK_kill)),
        !           159:        do_macro proto((struct macro *mac)),
        !           160:        do_set_mark proto((struct line *l, int c)),
        !           161:        f_char proto((int n)),
        !           162:        f_word proto((int num)),
        !           163:        freeline proto((struct line *line)),
        !           164:        ins_str proto((char *str,int ok_nl)),
        !           165:        insert_c proto((int c,int n)),
        !           166:        lfreelist proto((struct line *first)),
        !           167:        lfreereg proto((struct line *line1,struct line *line2)),
        !           168:        line_move proto((int dir, int n, int line_cmd)),
        !           169:        lremove proto((struct line *line1, struct line *line2)),
        !           170:        mac_putc proto((int c)),
        !           171:        n_indent proto((int goal)),
        !           172:        open_lines proto((int n)),
        !           173:        reg_kill proto((struct line *line2,int char2,int dot_moved)),
        !           174:        set_mark proto((void)),
        !           175:        unwind_macro_stack proto((void)),
        !           176:        buf_init proto((void));
        !           177: 
        !           178: extern int
        !           179:        ModMacs proto((void)),
        !           180:        in_macro proto((void)),
        !           181:        mac_getc proto((void)),
        !           182:        how_far proto((struct line *line,int col));
        !           183: 
        !           184: extern  struct line
        !           185:        *lastline proto((struct line *lp)),
        !           186:        *listput proto((struct buffer *buf,struct line *after)),
        !           187:        *max_line proto((struct line *l1,struct line *l2)),
        !           188:        *min_line proto((struct line *l1,struct line *l2)),
        !           189:        *nbufline proto((void)),
        !           190:        *next_line proto((struct line *line,int num)),
        !           191:        *prev_line proto((struct line *line,int num)),
        !           192:        *reg_delete proto((struct line *line1,int char1,struct line *line2,int char2));
        !           193: 
        !           194: extern Mark
        !           195:        *CurMark proto((void)),
        !           196:        *MakeMark proto((struct line *line,int column,int type));
        !           197: 

unix.superglobalmegacorp.com

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