]> git.ipfire.org Git - thirdparty/bird.git/blob - lib/string.h
Filter: Fix function comparison
[thirdparty/bird.git] / lib / string.h
1 /*
2 * BIRD Library -- String Functions
3 *
4 * (c) 1998 Martin Mares <mj@ucw.cz>
5 *
6 * Can be freely distributed and used under the terms of the GNU GPL.
7 */
8
9 #ifndef _BIRD_STRING_H_
10 #define _BIRD_STRING_H_
11
12 #include <stdarg.h>
13 #include <string.h>
14 #include <strings.h>
15
16 #include "lib/resource.h"
17
18 int bsprintf(char *str, const char *fmt, ...);
19 int bvsprintf(char *str, const char *fmt, va_list args);
20 int bsnprintf(char *str, int size, const char *fmt, ...);
21 int bvsnprintf(char *str, int size, const char *fmt, va_list args);
22
23 int buffer_vprint(buffer *buf, const char *fmt, va_list args);
24 int buffer_print(buffer *buf, const char *fmt, ...);
25 void buffer_puts(buffer *buf, const char *str);
26
27 u64 bstrtoul10(const char *str, char **end);
28 u64 bstrtoul16(const char *str, char **end);
29
30 int patmatch(const byte *pat, const byte *str);
31
32 static inline char *xbasename(const char *str)
33 {
34 char *s = strrchr(str, '/');
35 return s ? s+1 : (char *) str;
36 }
37
38 static inline char *
39 xstrdup(const char *c)
40 {
41 size_t l = strlen(c) + 1;
42 char *z = xmalloc(l);
43 memcpy(z, c, l);
44 return z;
45 }
46
47 static inline char *
48 lp_strdup(linpool *lp, const char *c)
49 {
50 size_t l = strlen(c) + 1;
51 char *z = lp_allocu(lp, l);
52 memcpy(z, c, l);
53 return z;
54 }
55
56 static inline void
57 memset32(void *D, u32 val, uint n)
58 {
59 u32 *dst = D;
60 uint i;
61
62 for (i = 0; i < n; i++)
63 dst[i] = val;
64 }
65
66 static inline int
67 bstrcmp(const char *s1, const char *s2)
68 {
69 if (s1 && s2)
70 return strcmp(s1, s2);
71 else
72 return !s2 - !s1;
73 }
74
75 #define ROUTER_ID_64_LENGTH 23
76
77 #endif