Bump to release 1.4.0
[smenu.git] / utils.h
blobc77d4c35fd0b41ef5b1730a2aa5cedd505f87a39
1 /* ################################################################### */
2 /* Copyright 2015, Pierre Gentile (p.gen.progs@gmail.com) */
3 /* */
4 /* This Source Code Form is subject to the terms of the Mozilla Public */
5 /* License, v. 2.0. If a copy of the MPL was not distributed with this */
6 /* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
7 /* ################################################################### */
9 #ifndef UTILS_H
10 #define UTILS_H
12 #include <errno.h>
13 #include <unistd.h>
15 typedef struct interval_s interval_t;
16 typedef struct range_s range_t;
18 struct interval_s
20 long low;
21 long high;
24 /* Structure used by the replace function to delimit matches */
25 /* """"""""""""""""""""""""""""""""""""""""""""""""""""""""" */
26 struct range_s
28 size_t start;
29 size_t end;
32 interval_t *
33 interval_new(void);
35 int
36 interval_comp(void const *a, void const *b);
38 void
39 interval_swap(void **a, void **b);
41 void
42 optimize_an_interval_list(ll_t *list);
44 char *
45 concat(const char *str1, ...);
47 int
48 strprefix(char *str1, char *str2);
50 void
51 ltrim(char *str, const char *trim);
53 void
54 rtrim(char *str, const char *trim, size_t min_len);
56 int
57 my_strcasecmp(const char *str1, const char *str2);
59 char *
60 my_strcpy(char *dst, char *src);
62 int
63 isprint7(int i);
65 int
66 isprint8(int i);
68 int
69 my_wcscasecmp(const wchar_t *w1s, const wchar_t *w2s);
71 int
72 is_integer(const char * const s);
74 int
75 swap_string_parts(char **s, size_t first);
77 void
78 strrep(char *s, const char c1, const char c2);
80 char *
81 strprint(char const *s);
83 void
84 hexdump(const char *buf, FILE *fp, const char *prefix, size_t size);
86 int
87 my_wcswidth(const wchar_t *s, size_t n);
89 #endif