]> jfr.im git - irc/quakenet/newserv.git/blame - lib/sstring.c
A4STATS: remove E style escapes and switch to createtable for indices
[irc/quakenet/newserv.git] / lib / sstring.c
CommitLineData
6331db28
GB
1/* sstring.h - Declaration of "static strings" functions */
2
3#include "sstring.h"
4#include "../core/nsmalloc.h"
5
6#include <assert.h>
7#include <string.h>
8
9sstring *getsstring(const char *inputstr, int maxlen) {
10 sstring *retval = NULL;
11 int length;
12
13 /* getsstring() on a NULL pointer returns a NULL sstring.. */
14 if (inputstr == NULL)
15 return NULL;
16
6331db28
GB
17 length = strlen(inputstr) + 1;
18
19 if (length > maxlen)
20 length = maxlen + 1;
21
22 assert(length <= SSTRING_MAX + 1);
23
24 retval = nsmalloc(POOL_SSTRING, sizeof(sstring) + length);
25
26 retval->length = length - 1;
27 strncpy(retval->content, inputstr, length - 1);
28 retval->content[length - 1] = '\0';
29
30 return retval;
31}
32
33void freesstring(sstring *inval) {
34 nsfree(POOL_SSTRING, inval);
35}
36
37int sstringcompare(sstring *ss1, sstring *ss2) {
38 if (ss1->length != ss2->length)
39 return -1;
40
41 return strncmp(ss1->content, ss2->content, ss1->length);
42}