123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- #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);
|