This is b.h in view mode; [Download] [Up]
#ifndef _Ib
#define _Ib 1
#include "config.h"
#include "queue.h"
#include "rc.h"
#include "vfile.h"
#define stdsiz 8192
/* 31744 */
extern char stdbuf[stdsiz];
typedef struct buffer B;
typedef struct point P;
typedef struct header H;
struct header
{
LINK(H) link;
long seg;
int hole;
int ehole;
int nlines;
};
struct point
{
LINK(P) link;
B *b;
int ofst;
char *ptr;
H *hdr;
long byte;
long line;
long col;
long xcol;
int valcol;
int end;
P **owner;
};
struct buffer
{
LINK(B) link;
P *bof;
P *eof;
char *name;
int orphan;
int count;
int changed;
int backup;
void *undo;
P *marks[10]; /* Bookmarks */
OPTIONS o; /* Options */
P *oldcur; /* Last cursor position before orphaning */
P *oldtop; /* Last top screen position before orphaning */
int rdonly; /* Set for read-only */
int internal; /* Set for internal buffers */
int er; /* Error code when file was loaded */
};
extern int force; /* Set to have final '\n' added to file */
extern int tabwidth; /* Default tab width */
extern VFILE *vmem; /* Virtual memory file used for buffer system */
extern char *msgs[];
B *bmk();
void brm();
B *bfind();
P *pdup();
P *pdupown();
P *poffline();
P *ponline();
B *bonline();
B *boffline();
void prm();
P *pset();
P *pbof();
P *peof();
int pisbof();
int piseof();
int piseol();
int pisbol();
int pisbow();
int piseow();
#define piscol(p) ((p)->valcol?(p)->col:(pfcol(p),(p)->col))
int pisblank();
long pisindent();
int pnext();
int pprev();
int pgetc();
P *pfwrd();
int prgetc();
P *pbkwd();
P *pgoto();
P *pfcol();
P *pbol();
P *peol();
P *pnextl();
P *pprevl();
P *pline();
P *pcolwse();
P *pcol();
P *pcoli();
void pbackws();
void pfill();
P *pfind();
P *pifind();
P *prfind();
P *prifind();
/* B *bcpy(P *from,P *to);
* Copy text between from and to into a new buffer
*/
B *bcpy();
void pcoalesce();
void bdel();
/* P *binsb(P *p,B *b);
* Insert an entire buffer 'b' into another buffer at 'p'
*/
P *binsb();
/* P *binsm(P *p,char *blk,int amnt);
* Insert a block 'blk' of size 'amnt' into buffer at 'p'
*/
P *binsm();
/* P *binsc(P *p,char c);
* Insert character into buffer at P
*/
P *binsc();
/* P *binss(P *p,char *s);
* Insert zero terminated string into buffer at P
*/
P *binss();
/* B *bload(char *s);
* Load a file into a new buffer
*
* Returns with errno set to 0 for success,
* -1 for new file (file doesn't exist)
* -2 for read error
* -3 for seek error
* -4 for open error
*/
B *bread();
B *bload();
B *bfind();
B *borphan();
/* int bsave(P *p,char *s,long size);
* Save 'size' bytes beginning at 'p' into file with name in 's'
*/
int bsavefd();
int bsave();
char *parsens();
/* int brc(P *p);
* Get character at pointer or return MAXINT if pointer is at end of buffer
*/
int brc();
/* char *brmem(P *p,char *blk,int size);
* Copy 'size' bytes from a buffer beginning at p into block 'blk'
*/
char *brmem();
/* char *brs(P *p,int size);
* Copy 'size' bytes from a buffer beginning at p into a zero-terminated
* C-string in an malloc block.
*/
char *brs();
/* char *brvs(P *p,int size);
* Copy 'size' bytes from a buffer beginning at p into a variable length
* string.
*/
char *brvs();
B *bnext();
B *bprev();
extern int error;
char **getbufs();
#endif
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.