Skip to content
This repository
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 65 lines (57 sloc) 1.402 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
/*
quIRC - simple terminal-based IRC client
Copyright (C) 2010 Edward Cree

See quirc.c for license information
buffer: multiple-buffer control
*/

#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "ttyesc.h"
#include "colour.h"
#include "bits.h"

typedef struct _name
{
char *data;
struct _name *next, *prev;
}
name;

typedef enum
{
STATUS,
SERVER,
CHANNEL,
PRIVATE // right now we don't have handy private chat, you just have to /msg in a server or channel
}
btype;

typedef struct _buf
{
btype type;
char *bname; // "status" or serverloc or #channel or nick (resp. types)
name *nlist; // only used for channels and private
int handle; // used for server
int server; // used by channels and private to denote their 'parent' server. In server, points to self. Is an offset into 'bufs'
char *nick; // used for server
int nlines;
int ptr;
int scroll;
colour *lc;
char **lt;
time_t *ts;
bool filled;
bool alert; // tab has new messages?
}
buffer;

int nbufs;
int cbuf;
buffer *bufs;

int init_buffer(int buf, btype type, char *bname, int nlines);
int free_buffer(int buf);
int add_to_buffer(int buf, colour lc, char *lt);
int redraw_buffer(void);
int buf_print(int buf, colour lc, char *lt, bool nl); // don't include trailing \n, because buf_print appends CLR \n
void in_update(char *inp);
Something went wrong with that request. Please try again.