changeset 65:e763ef5cfd53

Move more functions to libnnchat.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 11 Nov 2008 23:57:49 +0200
parents 6a3a917303e4
children 11b45ba0132f
files libnnchat.c libnnchat.h nnchat.c
diffstat 3 files changed, 172 insertions(+), 151 deletions(-) [+]
line wrap: on
line diff
--- a/libnnchat.c	Tue Nov 11 22:33:35 2008 +0200
+++ b/libnnchat.c	Tue Nov 11 23:57:49 2008 +0200
@@ -336,3 +336,145 @@
 	return sendToSocket(sock, tmpBuf2, strlen(tmpBuf2) + 1);
 }
 
+
+ringbuf_t * newRingBuf(const size_t size)
+{
+	ringbuf_t *res = th_calloc(1, sizeof(ringbuf_t));
+	
+	res->data = (char **) th_malloc(size * sizeof(char *));
+	res->size = size;
+	res->n = 0;
+	
+	return res;
+}
+
+
+void freeRingBuf(ringbuf_t *buf)
+{
+	size_t i;
+	
+	for (i = 0; i < buf->n; i++)
+		th_free(buf->data[i]);
+	
+	th_free(buf->data);
+	th_free(buf);
+}
+
+
+void addRingBuf(ringbuf_t *buf, const char *str)
+{
+	if (buf->n < buf->size) {
+		buf->data[buf->n] = strdup(str);
+		buf->n++;
+	} else {
+		th_free(buf->data[0]);
+		memmove(&(buf->data[0]), &(buf->data[1]), buf->size - 1);
+		buf->data[buf->size - 1] = strdup(str);
+	}
+}
+
+
+int writeBuf(editbuf_t *buf, ssize_t pos, int ch)
+{
+	/* Check arguments */
+	if (buf->len+1 >= buf->size) return -3;
+	
+	if (pos < 0)
+		return -1;
+	else if (pos >= buf->len) {
+		buf->data[buf->len++] = ch;
+	} else {
+		buf->data[pos] = ch;
+	}
+	return 0;
+}
+
+
+int insertBuf(editbuf_t *buf, ssize_t pos, int ch)
+{
+	/* Check arguments */
+	if (buf->len+1 >= buf->size) return -3;
+	
+	if (pos < 0)
+		return -1;
+	else if (pos >= buf->len) {
+		buf->data[buf->len] = ch;
+	} else {
+		memmove(&(buf->data[pos+1]), &(buf->data[pos]), buf->len - pos + 1);
+		buf->data[pos] = ch;
+	}
+	buf->len++;
+	return 0;
+}
+
+
+int deleteBuf(editbuf_t *buf, ssize_t pos)
+{
+	/* Check arguments */
+	if (pos < 0)
+		return -1;
+	else if (pos < buf->len) {
+		memmove(&(buf->data[pos]), &(buf->data[pos+1]), buf->len - pos);
+		buf->len--;
+		return 0;
+	} else
+		return -2;
+}
+
+
+void clearBuf(editbuf_t *buf)
+{
+	buf->len = 0;
+	buf->pos = 0;
+}
+
+
+editbuf_t * newBuf(ssize_t n)
+{
+	editbuf_t *res = th_calloc(1, sizeof(editbuf_t));
+	
+	res->data = (char *) th_malloc(n);
+	res->size = n;
+	
+	return res;
+}
+
+
+void freeBuf(editbuf_t *buf)
+{
+	if (buf) {
+		th_free(buf->data);
+		th_free(buf);
+	}
+}
+
+
+editbuf_t * copyBuf(editbuf_t *src)
+{
+	editbuf_t *res;
+	
+	assert(src != NULL);
+	
+	if (src == NULL) return NULL;
+	
+	if ((res = newBuf(src->size)) == NULL)
+		return NULL;
+	
+	memcpy(res->data, src->data, src->size);
+	res->pos = res->len = src->len;
+	
+	return res;
+}
+
+
+void setBufPos(editbuf_t *buf, ssize_t pos)
+{
+	/* Check arguments */
+	if (pos < 0)
+		buf->pos = 0;
+	else if (pos >= buf->len)
+		buf->pos = buf->len;
+	else
+		buf->pos = pos;
+}
+
--- a/libnnchat.h	Tue Nov 11 22:33:35 2008 +0200
+++ b/libnnchat.h	Tue Nov 11 23:57:49 2008 +0200
@@ -24,17 +24,42 @@
 #define SET_BUFSIZE     (4096)
 #define SET_ALLOC_SIZE	(128)
 
+typedef struct {
+	char **data;
+	size_t n, size;
+} ringbuf_t;
+
+typedef struct {
+	ssize_t pos, len, size;
+	char *data;
+} editbuf_t;
+
+
 int     openConnection(struct in_addr *addr, const int port);
 void    closeConnection(const int sock);
 BOOL    sendToSocket(const int sock, char *buf, const size_t bufLen);
 BOOL    sendUserMsg(const int sock, const char *user, const char *fmt, ...);
 
 
-char    *encodeStr1(const char *str);
-char    *decodeStr1(const char *str);
-char    *encodeStr2(const char *str);
-char    *decodeStr2(const char *str);
-char    *stripXMLTags(const char *str);
+char *  encodeStr1(const char *str);
+char *  decodeStr1(const char *str);
+char *  encodeStr2(const char *str);
+char *  decodeStr2(const char *str);
+char *  stripXMLTags(const char *str);
+
+
+ringbuf_t * newRingBuf(const size_t size);
+void        freeRingBuf(ringbuf_t *buf);
+void        addRingBuf(ringbuf_t *buf, const char *str);
+
+int         writeBuf(editbuf_t *buf, ssize_t pos, int ch);
+int         insertBuf(editbuf_t *buf, ssize_t pos, int ch);
+int         deleteBuf(editbuf_t *buf, ssize_t pos);
+void        clearBuf(editbuf_t *buf);
+editbuf_t * newBuf(ssize_t n);
+void        freeBuf(editbuf_t *buf);
+editbuf_t * copyBuf(editbuf_t *src);
+void        setBufPos(editbuf_t *buf, ssize_t pos);
 
 
 #endif
--- a/nnchat.c	Tue Nov 11 22:33:35 2008 +0200
+++ b/nnchat.c	Tue Nov 11 23:57:49 2008 +0200
@@ -148,152 +148,6 @@
 }
 
 
-typedef struct {
-	char **data;
-	size_t n, size;
-} ringbuf_t;
-
-
-ringbuf_t * newRingBuf(const size_t size)
-{
-	ringbuf_t *res = th_calloc(1, sizeof(ringbuf_t));
-	
-	res->data = (char **) th_malloc(size * sizeof(char *));
-	res->size = size;
-	res->n = 0;
-	
-	return res;
-}
-
-
-void freeRingBuf(ringbuf_t *buf)
-{
-	size_t i;
-	
-	for (i = 0; i < buf->n; i++)
-		th_free(buf->data[i]);
-	
-	th_free(buf->data);
-	th_free(buf);
-}
-
-
-void addRingBuf(ringbuf_t *buf, const char *str)
-{
-	if (buf->n < buf->size) {
-		buf->data[buf->n] = strdup(str);
-		buf->n++;
-	} else {
-		th_free(buf->data[0]);
-		memmove(&(buf->data[0]), &(buf->data[1]), buf->size - 1);
-		buf->data[buf->size - 1] = strdup(str);
-	}
-}
-
-
-typedef struct {
-	ssize_t pos, len, size;
-	char *data;
-} editbuf_t;
-
-
-int writeBuf(editbuf_t *buf, ssize_t pos, int ch)
-{
-	/* Check arguments */
-	if (buf->len+1 >= buf->size) return -3;
-	
-	if (pos < 0)
-		return -1;
-	else if (pos >= buf->len) {
-		buf->data[buf->len++] = ch;
-	} else {
-		buf->data[pos] = ch;
-	}
-	return 0;
-}
-
-int insertBuf(editbuf_t *buf, ssize_t pos, int ch)
-{
-	/* Check arguments */
-	if (buf->len+1 >= buf->size) return -3;
-	
-	if (pos < 0)
-		return -1;
-	else if (pos >= buf->len) {
-		buf->data[buf->len] = ch;
-	} else {
-		memmove(&(buf->data[pos+1]), &(buf->data[pos]), buf->len - pos + 1);
-		buf->data[pos] = ch;
-	}
-	buf->len++;
-	return 0;
-}
-
-int deleteBuf(editbuf_t *buf, ssize_t pos)
-{
-	/* Check arguments */
-	if (pos < 0)
-		return -1;
-	else if (pos < buf->len) {
-		memmove(&(buf->data[pos]), &(buf->data[pos+1]), buf->len - pos);
-		buf->len--;
-		return 0;
-	} else
-		return -2;
-}
-
-void clearBuf(editbuf_t *buf)
-{
-	buf->len = 0;
-	buf->pos = 0;
-}
-
-editbuf_t * newBuf(ssize_t n)
-{
-	editbuf_t *res = th_calloc(1, sizeof(editbuf_t));
-	
-	res->data = (char *) th_malloc(n);
-	res->size = n;
-	
-	return res;
-}
-
-void freeBuf(editbuf_t *buf)
-{
-	if (buf) {
-		th_free(buf->data);
-		th_free(buf);
-	}
-}
-
-editbuf_t * copyBuf(editbuf_t *src)
-{
-	editbuf_t *res;
-	
-	assert(src != NULL);
-	
-	if (src == NULL) return NULL;
-	
-	if ((res = newBuf(src->size)) == NULL)
-		return NULL;
-	
-	memcpy(res->data, src->data, src->size);
-	res->pos = res->len = src->len;
-	
-	return res;
-}
-
-void setBufPos(editbuf_t *buf, ssize_t pos)
-{
-	/* Check arguments */
-	if (pos < 0)
-		buf->pos = 0;
-	else if (pos >= buf->len)
-		buf->pos = buf->len;
-	else
-		buf->pos = pos;
-}
-
 void updateStatus(BOOL insertMode)
 {
 	char tmpStr[128] = "";