This source file includes following definitions.
- pcmk__strcase_any_of
- pcmk__add_word
- pcmk__str_empty
- pcmk__btoa
1
2
3
4
5
6
7
8
9
10 #ifndef PCMK__STRINGS_INTERNAL__H
11 #define PCMK__STRINGS_INTERNAL__H
12
13 #include <stdbool.h>
14
15 #include <glib.h>
16
17
18
19 #define PCMK__PARSE_INT_DEFAULT -1
20 #define PCMK__PARSE_DBL_DEFAULT -1.0
21
22
23
24 enum pcmk__str_flags {
25 pcmk__str_none = 0,
26 pcmk__str_casei = 1 << 0,
27 pcmk__str_null_matches = 1 << 1,
28 pcmk__str_regex = 1 << 2
29 };
30
31 int pcmk__scan_double(const char *text, double *result,
32 const char *default_text, char **end_text);
33 int pcmk__guint_from_hash(GHashTable *table, const char *key, guint default_val,
34 guint *result);
35 bool pcmk__starts_with(const char *str, const char *prefix);
36 bool pcmk__ends_with(const char *s, const char *match);
37 bool pcmk__ends_with_ext(const char *s, const char *match);
38 void pcmk__add_separated_word(char **list, size_t *len, const char *word,
39 const char *separator);
40 int pcmk__compress(const char *data, unsigned int length, unsigned int max,
41 char **result, unsigned int *result_len);
42
43 int pcmk__parse_ll_range(const char *srcstring, long long *start, long long *end);
44 gboolean pcmk__str_in_list(GList *lst, const gchar *s);
45
46 bool pcmk__strcase_any_of(const char *s, ...) G_GNUC_NULL_TERMINATED;
47 bool pcmk__str_any_of(const char *s, ...) G_GNUC_NULL_TERMINATED;
48 bool pcmk__char_in_any_str(int ch, ...) G_GNUC_NULL_TERMINATED;
49
50 int pcmk__strcmp(const char *s1, const char *s2, uint32_t flags);
51
52 static inline bool
53 pcmk__str_eq(const char *s1, const char *s2, uint32_t flags)
54 {
55 return pcmk__strcmp(s1, s2, flags) == 0;
56 }
57
58
59 static inline void
60 pcmk__add_word(char **list, size_t *len, const char *word)
61 {
62 return pcmk__add_separated_word(list, len, word, " ");
63 }
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 #define pcmk__plural_alt(i, s1, s2) (((i) == 1)? (s1) : (s2))
84
85
86 #define pcmk__plural_s(i) pcmk__plural_alt(i, "", "s")
87
88 static inline int
89 pcmk__str_empty(const char *s)
90 {
91 return (s == NULL) || (s[0] == '\0');
92 }
93
94
95 static inline const char *
96 pcmk__btoa(bool condition)
97 {
98 return condition? "true" : "false";
99 }
100
101 #endif