Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

#define SAMTERM

#define RUNESIZE        sizeof(Rune)
#define MAXFILES        256
#define READBUFSIZE 8192
#define NL      5

enum{
        Up,
        Down
};

typedef struct Text     Text;
typedef struct Section  Section;
typedef struct Rasp     Rasp;
typedef struct Readbuf Readbuf;

struct Section
{
        long    nrunes;
        Rune    *text;          /* if null, we haven't got it */
        Section *next;
};

struct Rasp
{
        long    nrunes;
        Section *sect;
};

#define Untagged        ((ushort)65535)

struct Text
{
        Rasp    rasp;
        short   nwin;
        short   front;          /* input window */
        ushort  tag;
        char    lock;
        Flayer  l[NL];          /* screen storage */
};

struct Readbuf
{
        short   n;                                      /* # bytes in buf */
        uchar   data[READBUFSIZE];              /* data bytes */
};

enum Resource
{
        RHost,
        RKeyboard,
        RMouse,
        RPlumb,
        RResize,
        NRes,
};

extern Text     **text;
extern uchar    **name;
extern ushort   *tag;
extern int      nname;
extern int      mname;
extern Cursor   bullseye;
extern Cursor   deadmouse;
extern Cursor   lockarrow;
extern Cursor   *cursor;
extern Flayer   *which;
extern Flayer   *work;
extern Text     cmd;
extern Rune     *scratch;
extern long     nscralloc;
extern char     hostlock;
extern char     hasunlocked;
extern long     snarflen;
extern Mousectl* mousectl;
extern Keyboardctl* keyboardctl;
extern Mouse*   mousep;
extern long     modified;
extern int      maxtab;
extern Readbuf  hostbuf[2];     /* double buffer; it's synchronous communication */
extern Readbuf  plumbbuf[2];    /* double buffer; it's synchronous communication */
extern Channel *plumbc;
extern Channel *hostc;
extern int      hversion;
extern int      plumbfd;
extern int      exiting;
extern int      autoindent;

Rune    *gettext(Flayer*, long, ulong*);
void    *alloc(ulong n);

void    iconinit(void);
void    getscreen(int, char**);
void    initio(void);
void    setlock(void);
void    outcmd(void);
void    rinit(Rasp*);
void    startnewfile(int, Text*);
void    getmouse(void);
void    mouseunblock(void);
void    kbdblock(void);
void    extstart(void);
void    hoststart(void);
int     plumbstart(void);
int     button(int but);
int     load(char*, int);
int     waitforio(void);
int     rcvchar(void);
int     getch(void);
int     kbdchar(void);
int     qpeekc(void);
void    cut(Text*, int, int, int);
void    paste(Text*, int);
void    snarf(Text*, int);
int     center(Flayer*, long);
int     xmenuhit(int, Menu*);
void    buttons(int);
int     getr(Rectangle*);
void    current(Flayer*);
void    duplicate(Flayer*, Rectangle, Font*, int);
void    startfile(Text*);
void    panic(char*);
void    panic1(Display*, char*);
void    closeup(Flayer*);
void    Strgrow(Rune**, long*, int);
int     RESIZED(void);
void    resize(void);
void    rcv(void);
void    type(Flayer*, int);
void    menu2hit(void);
void    menu3hit(void);
void    scroll(Flayer*, int);
void    hcheck(int);
void    rclear(Rasp*);
int     whichmenu(int);
void    hcut(int, long, long);
void    horigin(int, long);
void    hgrow(int, long, long, int);
int     hdata(int, long, uchar*, int);
int     hdatarune(int, long, Rune*, int);
Rune    *rload(Rasp*, ulong, ulong, ulong*);
void    menuins(int, uchar*, Text*, int, int);
void    menudel(int);
Text    *sweeptext(int, int);
void    setpat(char*);
void    scrdraw(Flayer*, long tot);
int     rcontig(Rasp*, ulong, ulong, int);
int     rmissing(Rasp*, ulong, ulong);
void    rresize(Rasp *, long, long, long);
void    rdata(Rasp*, long, long, Rune*);
void    rclean(Rasp*);
void    scrorigin(Flayer*, int, long);
long    scrtotal(Flayer*);
void    flnewlyvisible(Flayer*);
char    *rcvstring(void);
void    Strcpy(Rune*, Rune*);
void    Strncpy(Rune*, Rune*, long);
void    flushtyping(int);
void    dumperrmsg(int, int, int, int);
int     screensize(int*,int*);
void    getmouse(void);

#include "mesg.h"

void    outTs(Tmesg, int);
void    outT0(Tmesg);
void    outTl(Tmesg, long);
void    outTslS(Tmesg, int, long, Rune*);
void    outTsll(Tmesg, int, long, long);
void    outTsl(Tmesg, int, long);
void    outTsv(Tmesg, int, vlong);
void    outTv(Tmesg, vlong);
void    outstart(Tmesg);
void    outcopy(int, uchar*);
void    outshort(int);
void    outlong(long);
void    outvlong(vlong);
void    outsend(void);