ref: a4d0372d0f1916d1d9df34c4fe4ae7a98c8de020
dir: /mez.h/
typedef struct App App;
typedef struct Chan Chan;
typedef struct Net Net;
typedef struct Text Text;
typedef struct Msg Msg;
struct App {
char *host, *user, *passwd;
};
// The multiple indirection for the screen is because
// multiple texts may share the same screen.
struct Text {
Frame;
Rune *text;
uint textlen, topline, nlines, linescap, textcap, *lines;
Rectangle scrollr, bodyr;
Image **screen, *cols[NCOL];
Screen **_screen;
char *wsys;
};
struct Chan {
Text body, nicks;
Rune *topic;
};
struct Net {
Chan;
char *name, *host, *state, *nick, *user, *real;
Chan *channels;
int fd, id;
char in[8192], out[8192];
};
enum {
PRIVMSG = 1000,
};
struct Msg {
int t;
char *sender;
union {
char *dst;
char *msg;
}; // PRIVMSG
};
void error(char*);
void *emallocz(ulong sz, int clr);
void *erealloc(void *ptr, ulong size);