/src/pacemaker/include/crm/common/strings_internal.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright 2015-2024 the Pacemaker project contributors |
3 | | * |
4 | | * The version control history for this file may have further details. |
5 | | * |
6 | | * This source code is licensed under the GNU Lesser General Public License |
7 | | * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY. |
8 | | */ |
9 | | |
10 | | #ifndef PCMK__CRM_COMMON_STRINGS_INTERNAL__H |
11 | | #define PCMK__CRM_COMMON_STRINGS_INTERNAL__H |
12 | | |
13 | | #include <stdbool.h> // bool |
14 | | #include <stdint.h> // uint32_t, etc. |
15 | | |
16 | | #include <glib.h> // guint, GList, GHashTable |
17 | | |
18 | | #include <crm/common/options.h> // PCMK_VALUE_TRUE, PCMK_VALUE_FALSE |
19 | | #include <crm/common/strings.h> // crm_strdup_printf() |
20 | | |
21 | | #ifdef __cplusplus |
22 | | extern "C" { |
23 | | #endif |
24 | | |
25 | | /* internal constants for generic string functions (from strings.c) */ |
26 | | |
27 | 6.59k | #define PCMK__PARSE_INT_DEFAULT -1 |
28 | 0 | #define PCMK__PARSE_DBL_DEFAULT -1.0 |
29 | | |
30 | | /* internal generic string functions (from strings.c) */ |
31 | | |
32 | | enum pcmk__str_flags { |
33 | | pcmk__str_none = 0, |
34 | | pcmk__str_casei = 1 << 0, |
35 | | pcmk__str_null_matches = 1 << 1, |
36 | | pcmk__str_regex = 1 << 2, |
37 | | pcmk__str_star_matches = 1 << 3, |
38 | | }; |
39 | | |
40 | | int pcmk__scan_double(const char *text, double *result, |
41 | | const char *default_text, char **end_text); |
42 | | int pcmk__guint_from_hash(GHashTable *table, const char *key, guint default_val, |
43 | | guint *result); |
44 | | bool pcmk__starts_with(const char *str, const char *prefix); |
45 | | bool pcmk__ends_with(const char *s, const char *match); |
46 | | bool pcmk__ends_with_ext(const char *s, const char *match); |
47 | | char *pcmk__trim(char *str); |
48 | | void pcmk__add_separated_word(GString **list, size_t init_size, |
49 | | const char *word, const char *separator); |
50 | | int pcmk__compress(const char *data, unsigned int length, unsigned int max, |
51 | | char **result, unsigned int *result_len); |
52 | | |
53 | | int pcmk__scan_ll(const char *text, long long *result, long long default_value); |
54 | | int pcmk__scan_min_int(const char *text, int *result, int minimum); |
55 | | int pcmk__scan_port(const char *text, int *port); |
56 | | int pcmk__parse_ll_range(const char *srcstring, long long *start, long long *end); |
57 | | |
58 | | GHashTable *pcmk__strkey_table(GDestroyNotify key_destroy_func, |
59 | | GDestroyNotify value_destroy_func); |
60 | | GHashTable *pcmk__strikey_table(GDestroyNotify key_destroy_func, |
61 | | GDestroyNotify value_destroy_func); |
62 | | GHashTable *pcmk__str_table_dup(GHashTable *old_table); |
63 | | void pcmk__insert_dup(GHashTable *table, const char *name, const char *value); |
64 | | |
65 | | /*! |
66 | | * \internal |
67 | | * \brief Get a string value with a default if NULL |
68 | | * |
69 | | * \param[in] s String to return if non-NULL |
70 | | * \param[in] default_value String (or NULL) to return if \p s is NULL |
71 | | * |
72 | | * \return \p s if \p s is non-NULL, otherwise \p default_value |
73 | | */ |
74 | | static inline const char * |
75 | | pcmk__s(const char *s, const char *default_value) |
76 | 0 | { |
77 | 0 | return (s == NULL)? default_value : s; |
78 | 0 | } Unexecuted instantiation: scores_fuzzer.c:pcmk__s Unexecuted instantiation: results.c:pcmk__s Unexecuted instantiation: scores.c:pcmk__s Unexecuted instantiation: strings.c:pcmk__s Unexecuted instantiation: utils.c:pcmk__s Unexecuted instantiation: xml.c:pcmk__s Unexecuted instantiation: xml_attr.c:pcmk__s Unexecuted instantiation: xml_comment.c:pcmk__s Unexecuted instantiation: xml_element.c:pcmk__s Unexecuted instantiation: xml_idref.c:pcmk__s Unexecuted instantiation: xpath.c:pcmk__s Unexecuted instantiation: acl.c:pcmk__s Unexecuted instantiation: iso8601.c:pcmk__s Unexecuted instantiation: logging.c:pcmk__s Unexecuted instantiation: mainloop.c:pcmk__s Unexecuted instantiation: nvpair.c:pcmk__s Unexecuted instantiation: options.c:pcmk__s Unexecuted instantiation: output.c:pcmk__s Unexecuted instantiation: output_log.c:pcmk__s Unexecuted instantiation: output_text.c:pcmk__s Unexecuted instantiation: output_xml.c:pcmk__s Unexecuted instantiation: patchset_display.c:pcmk__s Unexecuted instantiation: pid.c:pcmk__s Unexecuted instantiation: procfs.c:pcmk__s Unexecuted instantiation: schemas.c:pcmk__s Unexecuted instantiation: xml_display.c:pcmk__s Unexecuted instantiation: xml_io.c:pcmk__s Unexecuted instantiation: actions.c:pcmk__s Unexecuted instantiation: agents.c:pcmk__s Unexecuted instantiation: cmdline.c:pcmk__s Unexecuted instantiation: digest.c:pcmk__s Unexecuted instantiation: health.c:pcmk__s Unexecuted instantiation: io.c:pcmk__s Unexecuted instantiation: ipc_client.c:pcmk__s Unexecuted instantiation: ipc_common.c:pcmk__s Unexecuted instantiation: ipc_controld.c:pcmk__s Unexecuted instantiation: ipc_pacemakerd.c:pcmk__s Unexecuted instantiation: ipc_schedulerd.c:pcmk__s Unexecuted instantiation: ipc_server.c:pcmk__s Unexecuted instantiation: messages.c:pcmk__s Unexecuted instantiation: nodes.c:pcmk__s Unexecuted instantiation: options_display.c:pcmk__s Unexecuted instantiation: patchset.c:pcmk__s Unexecuted instantiation: servers.c:pcmk__s Unexecuted instantiation: cib.c:pcmk__s Unexecuted instantiation: ipc_attrd.c:pcmk__s Unexecuted instantiation: attrs.c:pcmk__s Unexecuted instantiation: strings_fuzzer.c:pcmk__s Unexecuted instantiation: cib_file_fuzzer.c:pcmk__s Unexecuted instantiation: cib_client.c:pcmk__s Unexecuted instantiation: cib_file.c:pcmk__s Unexecuted instantiation: cib_native.c:pcmk__s Unexecuted instantiation: cib_ops.c:pcmk__s Unexecuted instantiation: cib_remote.c:pcmk__s Unexecuted instantiation: cib_utils.c:pcmk__s Unexecuted instantiation: rules.c:pcmk__s Unexecuted instantiation: remote.c:pcmk__s Unexecuted instantiation: watchdog.c:pcmk__s Unexecuted instantiation: iso8601_fuzzer.c:pcmk__s |
79 | | |
80 | | /*! |
81 | | * \internal |
82 | | * \brief Create a hash table with integer keys |
83 | | * |
84 | | * \param[in] value_destroy_func Function to free a value |
85 | | * |
86 | | * \return Newly allocated hash table |
87 | | * \note It is the caller's responsibility to free the result, using |
88 | | * g_hash_table_destroy(). |
89 | | */ |
90 | | static inline GHashTable * |
91 | | pcmk__intkey_table(GDestroyNotify value_destroy_func) |
92 | 23 | { |
93 | 23 | return g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, |
94 | 23 | value_destroy_func); |
95 | 23 | } Unexecuted instantiation: scores_fuzzer.c:pcmk__intkey_table Unexecuted instantiation: results.c:pcmk__intkey_table Unexecuted instantiation: scores.c:pcmk__intkey_table Unexecuted instantiation: strings.c:pcmk__intkey_table Unexecuted instantiation: utils.c:pcmk__intkey_table Unexecuted instantiation: xml.c:pcmk__intkey_table Unexecuted instantiation: xml_attr.c:pcmk__intkey_table Unexecuted instantiation: xml_comment.c:pcmk__intkey_table Unexecuted instantiation: xml_element.c:pcmk__intkey_table Unexecuted instantiation: xml_idref.c:pcmk__intkey_table Unexecuted instantiation: xpath.c:pcmk__intkey_table Unexecuted instantiation: acl.c:pcmk__intkey_table Unexecuted instantiation: iso8601.c:pcmk__intkey_table Unexecuted instantiation: logging.c:pcmk__intkey_table Unexecuted instantiation: mainloop.c:pcmk__intkey_table Unexecuted instantiation: nvpair.c:pcmk__intkey_table Unexecuted instantiation: options.c:pcmk__intkey_table Unexecuted instantiation: output.c:pcmk__intkey_table Unexecuted instantiation: output_log.c:pcmk__intkey_table Unexecuted instantiation: output_text.c:pcmk__intkey_table Unexecuted instantiation: output_xml.c:pcmk__intkey_table Unexecuted instantiation: patchset_display.c:pcmk__intkey_table Unexecuted instantiation: pid.c:pcmk__intkey_table Unexecuted instantiation: procfs.c:pcmk__intkey_table Unexecuted instantiation: schemas.c:pcmk__intkey_table Unexecuted instantiation: xml_display.c:pcmk__intkey_table Unexecuted instantiation: xml_io.c:pcmk__intkey_table Unexecuted instantiation: actions.c:pcmk__intkey_table Unexecuted instantiation: agents.c:pcmk__intkey_table Unexecuted instantiation: cmdline.c:pcmk__intkey_table Unexecuted instantiation: digest.c:pcmk__intkey_table Unexecuted instantiation: health.c:pcmk__intkey_table Unexecuted instantiation: io.c:pcmk__intkey_table Unexecuted instantiation: ipc_client.c:pcmk__intkey_table Unexecuted instantiation: ipc_common.c:pcmk__intkey_table Unexecuted instantiation: ipc_controld.c:pcmk__intkey_table Unexecuted instantiation: ipc_pacemakerd.c:pcmk__intkey_table Unexecuted instantiation: ipc_schedulerd.c:pcmk__intkey_table Unexecuted instantiation: ipc_server.c:pcmk__intkey_table Unexecuted instantiation: messages.c:pcmk__intkey_table Unexecuted instantiation: nodes.c:pcmk__intkey_table Unexecuted instantiation: options_display.c:pcmk__intkey_table Unexecuted instantiation: patchset.c:pcmk__intkey_table Unexecuted instantiation: servers.c:pcmk__intkey_table Unexecuted instantiation: cib.c:pcmk__intkey_table Unexecuted instantiation: ipc_attrd.c:pcmk__intkey_table Unexecuted instantiation: attrs.c:pcmk__intkey_table Unexecuted instantiation: strings_fuzzer.c:pcmk__intkey_table Unexecuted instantiation: cib_file_fuzzer.c:pcmk__intkey_table cib_client.c:pcmk__intkey_table Line | Count | Source | 92 | 23 | { | 93 | 23 | return g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, | 94 | 23 | value_destroy_func); | 95 | 23 | } |
Unexecuted instantiation: cib_file.c:pcmk__intkey_table Unexecuted instantiation: cib_native.c:pcmk__intkey_table Unexecuted instantiation: cib_ops.c:pcmk__intkey_table Unexecuted instantiation: cib_remote.c:pcmk__intkey_table Unexecuted instantiation: cib_utils.c:pcmk__intkey_table Unexecuted instantiation: rules.c:pcmk__intkey_table Unexecuted instantiation: remote.c:pcmk__intkey_table Unexecuted instantiation: watchdog.c:pcmk__intkey_table Unexecuted instantiation: iso8601_fuzzer.c:pcmk__intkey_table |
96 | | |
97 | | /*! |
98 | | * \internal |
99 | | * \brief Insert a value into a hash table with integer keys |
100 | | * |
101 | | * \param[in,out] hash_table Table to insert into |
102 | | * \param[in] key Integer key to insert |
103 | | * \param[in] value Value to insert |
104 | | * |
105 | | * \return Whether the key/value was already in the table |
106 | | * \note This has the same semantics as g_hash_table_insert(). If the key |
107 | | * already exists in the table, the old value is freed and replaced. |
108 | | */ |
109 | | static inline gboolean |
110 | | pcmk__intkey_table_insert(GHashTable *hash_table, int key, gpointer value) |
111 | 0 | { |
112 | 0 | return g_hash_table_insert(hash_table, GINT_TO_POINTER(key), value); |
113 | 0 | } Unexecuted instantiation: scores_fuzzer.c:pcmk__intkey_table_insert Unexecuted instantiation: results.c:pcmk__intkey_table_insert Unexecuted instantiation: scores.c:pcmk__intkey_table_insert Unexecuted instantiation: strings.c:pcmk__intkey_table_insert Unexecuted instantiation: utils.c:pcmk__intkey_table_insert Unexecuted instantiation: xml.c:pcmk__intkey_table_insert Unexecuted instantiation: xml_attr.c:pcmk__intkey_table_insert Unexecuted instantiation: xml_comment.c:pcmk__intkey_table_insert Unexecuted instantiation: xml_element.c:pcmk__intkey_table_insert Unexecuted instantiation: xml_idref.c:pcmk__intkey_table_insert Unexecuted instantiation: xpath.c:pcmk__intkey_table_insert Unexecuted instantiation: acl.c:pcmk__intkey_table_insert Unexecuted instantiation: iso8601.c:pcmk__intkey_table_insert Unexecuted instantiation: logging.c:pcmk__intkey_table_insert Unexecuted instantiation: mainloop.c:pcmk__intkey_table_insert Unexecuted instantiation: nvpair.c:pcmk__intkey_table_insert Unexecuted instantiation: options.c:pcmk__intkey_table_insert Unexecuted instantiation: output.c:pcmk__intkey_table_insert Unexecuted instantiation: output_log.c:pcmk__intkey_table_insert Unexecuted instantiation: output_text.c:pcmk__intkey_table_insert Unexecuted instantiation: output_xml.c:pcmk__intkey_table_insert Unexecuted instantiation: patchset_display.c:pcmk__intkey_table_insert Unexecuted instantiation: pid.c:pcmk__intkey_table_insert Unexecuted instantiation: procfs.c:pcmk__intkey_table_insert Unexecuted instantiation: schemas.c:pcmk__intkey_table_insert Unexecuted instantiation: xml_display.c:pcmk__intkey_table_insert Unexecuted instantiation: xml_io.c:pcmk__intkey_table_insert Unexecuted instantiation: actions.c:pcmk__intkey_table_insert Unexecuted instantiation: agents.c:pcmk__intkey_table_insert Unexecuted instantiation: cmdline.c:pcmk__intkey_table_insert Unexecuted instantiation: digest.c:pcmk__intkey_table_insert Unexecuted instantiation: health.c:pcmk__intkey_table_insert Unexecuted instantiation: io.c:pcmk__intkey_table_insert Unexecuted instantiation: ipc_client.c:pcmk__intkey_table_insert Unexecuted instantiation: ipc_common.c:pcmk__intkey_table_insert Unexecuted instantiation: ipc_controld.c:pcmk__intkey_table_insert Unexecuted instantiation: ipc_pacemakerd.c:pcmk__intkey_table_insert Unexecuted instantiation: ipc_schedulerd.c:pcmk__intkey_table_insert Unexecuted instantiation: ipc_server.c:pcmk__intkey_table_insert Unexecuted instantiation: messages.c:pcmk__intkey_table_insert Unexecuted instantiation: nodes.c:pcmk__intkey_table_insert Unexecuted instantiation: options_display.c:pcmk__intkey_table_insert Unexecuted instantiation: patchset.c:pcmk__intkey_table_insert Unexecuted instantiation: servers.c:pcmk__intkey_table_insert Unexecuted instantiation: cib.c:pcmk__intkey_table_insert Unexecuted instantiation: ipc_attrd.c:pcmk__intkey_table_insert Unexecuted instantiation: attrs.c:pcmk__intkey_table_insert Unexecuted instantiation: strings_fuzzer.c:pcmk__intkey_table_insert Unexecuted instantiation: cib_file_fuzzer.c:pcmk__intkey_table_insert Unexecuted instantiation: cib_client.c:pcmk__intkey_table_insert Unexecuted instantiation: cib_file.c:pcmk__intkey_table_insert Unexecuted instantiation: cib_native.c:pcmk__intkey_table_insert Unexecuted instantiation: cib_ops.c:pcmk__intkey_table_insert Unexecuted instantiation: cib_remote.c:pcmk__intkey_table_insert Unexecuted instantiation: cib_utils.c:pcmk__intkey_table_insert Unexecuted instantiation: rules.c:pcmk__intkey_table_insert Unexecuted instantiation: remote.c:pcmk__intkey_table_insert Unexecuted instantiation: watchdog.c:pcmk__intkey_table_insert Unexecuted instantiation: iso8601_fuzzer.c:pcmk__intkey_table_insert |
114 | | |
115 | | /*! |
116 | | * \internal |
117 | | * \brief Look up a value in a hash table with integer keys |
118 | | * |
119 | | * \param[in] hash_table Table to check |
120 | | * \param[in] key Integer key to look for |
121 | | * |
122 | | * \return Value in table for \key (or NULL if not found) |
123 | | */ |
124 | | static inline gpointer |
125 | | pcmk__intkey_table_lookup(GHashTable *hash_table, int key) |
126 | 0 | { |
127 | 0 | return g_hash_table_lookup(hash_table, GINT_TO_POINTER(key)); |
128 | 0 | } Unexecuted instantiation: scores_fuzzer.c:pcmk__intkey_table_lookup Unexecuted instantiation: results.c:pcmk__intkey_table_lookup Unexecuted instantiation: scores.c:pcmk__intkey_table_lookup Unexecuted instantiation: strings.c:pcmk__intkey_table_lookup Unexecuted instantiation: utils.c:pcmk__intkey_table_lookup Unexecuted instantiation: xml.c:pcmk__intkey_table_lookup Unexecuted instantiation: xml_attr.c:pcmk__intkey_table_lookup Unexecuted instantiation: xml_comment.c:pcmk__intkey_table_lookup Unexecuted instantiation: xml_element.c:pcmk__intkey_table_lookup Unexecuted instantiation: xml_idref.c:pcmk__intkey_table_lookup Unexecuted instantiation: xpath.c:pcmk__intkey_table_lookup Unexecuted instantiation: acl.c:pcmk__intkey_table_lookup Unexecuted instantiation: iso8601.c:pcmk__intkey_table_lookup Unexecuted instantiation: logging.c:pcmk__intkey_table_lookup Unexecuted instantiation: mainloop.c:pcmk__intkey_table_lookup Unexecuted instantiation: nvpair.c:pcmk__intkey_table_lookup Unexecuted instantiation: options.c:pcmk__intkey_table_lookup Unexecuted instantiation: output.c:pcmk__intkey_table_lookup Unexecuted instantiation: output_log.c:pcmk__intkey_table_lookup Unexecuted instantiation: output_text.c:pcmk__intkey_table_lookup Unexecuted instantiation: output_xml.c:pcmk__intkey_table_lookup Unexecuted instantiation: patchset_display.c:pcmk__intkey_table_lookup Unexecuted instantiation: pid.c:pcmk__intkey_table_lookup Unexecuted instantiation: procfs.c:pcmk__intkey_table_lookup Unexecuted instantiation: schemas.c:pcmk__intkey_table_lookup Unexecuted instantiation: xml_display.c:pcmk__intkey_table_lookup Unexecuted instantiation: xml_io.c:pcmk__intkey_table_lookup Unexecuted instantiation: actions.c:pcmk__intkey_table_lookup Unexecuted instantiation: agents.c:pcmk__intkey_table_lookup Unexecuted instantiation: cmdline.c:pcmk__intkey_table_lookup Unexecuted instantiation: digest.c:pcmk__intkey_table_lookup Unexecuted instantiation: health.c:pcmk__intkey_table_lookup Unexecuted instantiation: io.c:pcmk__intkey_table_lookup Unexecuted instantiation: ipc_client.c:pcmk__intkey_table_lookup Unexecuted instantiation: ipc_common.c:pcmk__intkey_table_lookup Unexecuted instantiation: ipc_controld.c:pcmk__intkey_table_lookup Unexecuted instantiation: ipc_pacemakerd.c:pcmk__intkey_table_lookup Unexecuted instantiation: ipc_schedulerd.c:pcmk__intkey_table_lookup Unexecuted instantiation: ipc_server.c:pcmk__intkey_table_lookup Unexecuted instantiation: messages.c:pcmk__intkey_table_lookup Unexecuted instantiation: nodes.c:pcmk__intkey_table_lookup Unexecuted instantiation: options_display.c:pcmk__intkey_table_lookup Unexecuted instantiation: patchset.c:pcmk__intkey_table_lookup Unexecuted instantiation: servers.c:pcmk__intkey_table_lookup Unexecuted instantiation: cib.c:pcmk__intkey_table_lookup Unexecuted instantiation: ipc_attrd.c:pcmk__intkey_table_lookup Unexecuted instantiation: attrs.c:pcmk__intkey_table_lookup Unexecuted instantiation: strings_fuzzer.c:pcmk__intkey_table_lookup Unexecuted instantiation: cib_file_fuzzer.c:pcmk__intkey_table_lookup Unexecuted instantiation: cib_client.c:pcmk__intkey_table_lookup Unexecuted instantiation: cib_file.c:pcmk__intkey_table_lookup Unexecuted instantiation: cib_native.c:pcmk__intkey_table_lookup Unexecuted instantiation: cib_ops.c:pcmk__intkey_table_lookup Unexecuted instantiation: cib_remote.c:pcmk__intkey_table_lookup Unexecuted instantiation: cib_utils.c:pcmk__intkey_table_lookup Unexecuted instantiation: rules.c:pcmk__intkey_table_lookup Unexecuted instantiation: remote.c:pcmk__intkey_table_lookup Unexecuted instantiation: watchdog.c:pcmk__intkey_table_lookup Unexecuted instantiation: iso8601_fuzzer.c:pcmk__intkey_table_lookup |
129 | | |
130 | | /*! |
131 | | * \internal |
132 | | * \brief Remove a key/value from a hash table with integer keys |
133 | | * |
134 | | * \param[in,out] hash_table Table to modify |
135 | | * \param[in] key Integer key of entry to remove |
136 | | * |
137 | | * \return Whether \p key was found and removed from \p hash_table |
138 | | */ |
139 | | static inline gboolean |
140 | | pcmk__intkey_table_remove(GHashTable *hash_table, int key) |
141 | 0 | { |
142 | 0 | return g_hash_table_remove(hash_table, GINT_TO_POINTER(key)); |
143 | 0 | } Unexecuted instantiation: scores_fuzzer.c:pcmk__intkey_table_remove Unexecuted instantiation: results.c:pcmk__intkey_table_remove Unexecuted instantiation: scores.c:pcmk__intkey_table_remove Unexecuted instantiation: strings.c:pcmk__intkey_table_remove Unexecuted instantiation: utils.c:pcmk__intkey_table_remove Unexecuted instantiation: xml.c:pcmk__intkey_table_remove Unexecuted instantiation: xml_attr.c:pcmk__intkey_table_remove Unexecuted instantiation: xml_comment.c:pcmk__intkey_table_remove Unexecuted instantiation: xml_element.c:pcmk__intkey_table_remove Unexecuted instantiation: xml_idref.c:pcmk__intkey_table_remove Unexecuted instantiation: xpath.c:pcmk__intkey_table_remove Unexecuted instantiation: acl.c:pcmk__intkey_table_remove Unexecuted instantiation: iso8601.c:pcmk__intkey_table_remove Unexecuted instantiation: logging.c:pcmk__intkey_table_remove Unexecuted instantiation: mainloop.c:pcmk__intkey_table_remove Unexecuted instantiation: nvpair.c:pcmk__intkey_table_remove Unexecuted instantiation: options.c:pcmk__intkey_table_remove Unexecuted instantiation: output.c:pcmk__intkey_table_remove Unexecuted instantiation: output_log.c:pcmk__intkey_table_remove Unexecuted instantiation: output_text.c:pcmk__intkey_table_remove Unexecuted instantiation: output_xml.c:pcmk__intkey_table_remove Unexecuted instantiation: patchset_display.c:pcmk__intkey_table_remove Unexecuted instantiation: pid.c:pcmk__intkey_table_remove Unexecuted instantiation: procfs.c:pcmk__intkey_table_remove Unexecuted instantiation: schemas.c:pcmk__intkey_table_remove Unexecuted instantiation: xml_display.c:pcmk__intkey_table_remove Unexecuted instantiation: xml_io.c:pcmk__intkey_table_remove Unexecuted instantiation: actions.c:pcmk__intkey_table_remove Unexecuted instantiation: agents.c:pcmk__intkey_table_remove Unexecuted instantiation: cmdline.c:pcmk__intkey_table_remove Unexecuted instantiation: digest.c:pcmk__intkey_table_remove Unexecuted instantiation: health.c:pcmk__intkey_table_remove Unexecuted instantiation: io.c:pcmk__intkey_table_remove Unexecuted instantiation: ipc_client.c:pcmk__intkey_table_remove Unexecuted instantiation: ipc_common.c:pcmk__intkey_table_remove Unexecuted instantiation: ipc_controld.c:pcmk__intkey_table_remove Unexecuted instantiation: ipc_pacemakerd.c:pcmk__intkey_table_remove Unexecuted instantiation: ipc_schedulerd.c:pcmk__intkey_table_remove Unexecuted instantiation: ipc_server.c:pcmk__intkey_table_remove Unexecuted instantiation: messages.c:pcmk__intkey_table_remove Unexecuted instantiation: nodes.c:pcmk__intkey_table_remove Unexecuted instantiation: options_display.c:pcmk__intkey_table_remove Unexecuted instantiation: patchset.c:pcmk__intkey_table_remove Unexecuted instantiation: servers.c:pcmk__intkey_table_remove Unexecuted instantiation: cib.c:pcmk__intkey_table_remove Unexecuted instantiation: ipc_attrd.c:pcmk__intkey_table_remove Unexecuted instantiation: attrs.c:pcmk__intkey_table_remove Unexecuted instantiation: strings_fuzzer.c:pcmk__intkey_table_remove Unexecuted instantiation: cib_file_fuzzer.c:pcmk__intkey_table_remove Unexecuted instantiation: cib_client.c:pcmk__intkey_table_remove Unexecuted instantiation: cib_file.c:pcmk__intkey_table_remove Unexecuted instantiation: cib_native.c:pcmk__intkey_table_remove Unexecuted instantiation: cib_ops.c:pcmk__intkey_table_remove Unexecuted instantiation: cib_remote.c:pcmk__intkey_table_remove Unexecuted instantiation: cib_utils.c:pcmk__intkey_table_remove Unexecuted instantiation: rules.c:pcmk__intkey_table_remove Unexecuted instantiation: remote.c:pcmk__intkey_table_remove Unexecuted instantiation: watchdog.c:pcmk__intkey_table_remove Unexecuted instantiation: iso8601_fuzzer.c:pcmk__intkey_table_remove |
144 | | |
145 | | gboolean pcmk__str_in_list(const gchar *s, const GList *lst, uint32_t flags); |
146 | | |
147 | | bool pcmk__strcase_any_of(const char *s, ...) G_GNUC_NULL_TERMINATED; |
148 | | bool pcmk__str_any_of(const char *s, ...) G_GNUC_NULL_TERMINATED; |
149 | | bool pcmk__char_in_any_str(int ch, ...) G_GNUC_NULL_TERMINATED; |
150 | | |
151 | | int pcmk__strcmp(const char *s1, const char *s2, uint32_t flags); |
152 | | int pcmk__numeric_strcasecmp(const char *s1, const char *s2); |
153 | | |
154 | | char *pcmk__str_copy_as(const char *file, const char *function, uint32_t line, |
155 | | const char *str); |
156 | | |
157 | | /*! |
158 | | * \internal |
159 | | * \brief Copy a string, asserting on failure |
160 | | * |
161 | | * \param[in] str String to copy (can be \c NULL) |
162 | | * |
163 | | * \return Newly allocated copy of \p str, or \c NULL if \p str is \c NULL |
164 | | * |
165 | | * \note The caller is responsible for freeing the return value using \c free(). |
166 | | */ |
167 | 7.30k | #define pcmk__str_copy(str) pcmk__str_copy_as(__FILE__, __func__, __LINE__, str) |
168 | | |
169 | | void pcmk__str_update(char **str, const char *value); |
170 | | |
171 | | void pcmk__g_strcat(GString *buffer, ...) G_GNUC_NULL_TERMINATED; |
172 | | |
173 | | static inline bool |
174 | | pcmk__str_eq(const char *s1, const char *s2, uint32_t flags) |
175 | 524 | { |
176 | 524 | return pcmk__strcmp(s1, s2, flags) == 0; |
177 | 524 | } Unexecuted instantiation: scores_fuzzer.c:pcmk__str_eq Unexecuted instantiation: results.c:pcmk__str_eq Line | Count | Source | 175 | 175 | { | 176 | 175 | return pcmk__strcmp(s1, s2, flags) == 0; | 177 | 175 | } |
Line | Count | Source | 175 | 349 | { | 176 | 349 | return pcmk__strcmp(s1, s2, flags) == 0; | 177 | 349 | } |
Unexecuted instantiation: utils.c:pcmk__str_eq Unexecuted instantiation: xml.c:pcmk__str_eq Unexecuted instantiation: xml_attr.c:pcmk__str_eq Unexecuted instantiation: xml_comment.c:pcmk__str_eq Unexecuted instantiation: xml_element.c:pcmk__str_eq Unexecuted instantiation: xml_idref.c:pcmk__str_eq Unexecuted instantiation: xpath.c:pcmk__str_eq Unexecuted instantiation: acl.c:pcmk__str_eq Unexecuted instantiation: iso8601.c:pcmk__str_eq Unexecuted instantiation: logging.c:pcmk__str_eq Unexecuted instantiation: mainloop.c:pcmk__str_eq Unexecuted instantiation: nvpair.c:pcmk__str_eq Unexecuted instantiation: options.c:pcmk__str_eq Unexecuted instantiation: output.c:pcmk__str_eq Unexecuted instantiation: output_log.c:pcmk__str_eq Unexecuted instantiation: output_text.c:pcmk__str_eq Unexecuted instantiation: output_xml.c:pcmk__str_eq Unexecuted instantiation: patchset_display.c:pcmk__str_eq Unexecuted instantiation: pid.c:pcmk__str_eq Unexecuted instantiation: procfs.c:pcmk__str_eq Unexecuted instantiation: schemas.c:pcmk__str_eq Unexecuted instantiation: xml_display.c:pcmk__str_eq Unexecuted instantiation: xml_io.c:pcmk__str_eq Unexecuted instantiation: actions.c:pcmk__str_eq Unexecuted instantiation: agents.c:pcmk__str_eq Unexecuted instantiation: cmdline.c:pcmk__str_eq Unexecuted instantiation: digest.c:pcmk__str_eq Unexecuted instantiation: health.c:pcmk__str_eq Unexecuted instantiation: io.c:pcmk__str_eq Unexecuted instantiation: ipc_client.c:pcmk__str_eq Unexecuted instantiation: ipc_common.c:pcmk__str_eq Unexecuted instantiation: ipc_controld.c:pcmk__str_eq Unexecuted instantiation: ipc_pacemakerd.c:pcmk__str_eq Unexecuted instantiation: ipc_schedulerd.c:pcmk__str_eq Unexecuted instantiation: ipc_server.c:pcmk__str_eq Unexecuted instantiation: messages.c:pcmk__str_eq Unexecuted instantiation: nodes.c:pcmk__str_eq Unexecuted instantiation: options_display.c:pcmk__str_eq Unexecuted instantiation: patchset.c:pcmk__str_eq Unexecuted instantiation: servers.c:pcmk__str_eq Unexecuted instantiation: cib.c:pcmk__str_eq Unexecuted instantiation: ipc_attrd.c:pcmk__str_eq Unexecuted instantiation: attrs.c:pcmk__str_eq Unexecuted instantiation: strings_fuzzer.c:pcmk__str_eq Unexecuted instantiation: cib_file_fuzzer.c:pcmk__str_eq Unexecuted instantiation: cib_client.c:pcmk__str_eq Unexecuted instantiation: cib_file.c:pcmk__str_eq Unexecuted instantiation: cib_native.c:pcmk__str_eq Unexecuted instantiation: cib_ops.c:pcmk__str_eq Unexecuted instantiation: cib_remote.c:pcmk__str_eq Unexecuted instantiation: cib_utils.c:pcmk__str_eq Unexecuted instantiation: rules.c:pcmk__str_eq Unexecuted instantiation: remote.c:pcmk__str_eq Unexecuted instantiation: watchdog.c:pcmk__str_eq Unexecuted instantiation: iso8601_fuzzer.c:pcmk__str_eq |
178 | | |
179 | | // Like pcmk__add_separated_word() but using a space as separator |
180 | | static inline void |
181 | | pcmk__add_word(GString **list, size_t init_size, const char *word) |
182 | 0 | { |
183 | 0 | return pcmk__add_separated_word(list, init_size, word, " "); |
184 | 0 | } Unexecuted instantiation: scores_fuzzer.c:pcmk__add_word Unexecuted instantiation: results.c:pcmk__add_word Unexecuted instantiation: scores.c:pcmk__add_word Unexecuted instantiation: strings.c:pcmk__add_word Unexecuted instantiation: utils.c:pcmk__add_word Unexecuted instantiation: xml.c:pcmk__add_word Unexecuted instantiation: xml_attr.c:pcmk__add_word Unexecuted instantiation: xml_comment.c:pcmk__add_word Unexecuted instantiation: xml_element.c:pcmk__add_word Unexecuted instantiation: xml_idref.c:pcmk__add_word Unexecuted instantiation: xpath.c:pcmk__add_word Unexecuted instantiation: acl.c:pcmk__add_word Unexecuted instantiation: iso8601.c:pcmk__add_word Unexecuted instantiation: logging.c:pcmk__add_word Unexecuted instantiation: mainloop.c:pcmk__add_word Unexecuted instantiation: nvpair.c:pcmk__add_word Unexecuted instantiation: options.c:pcmk__add_word Unexecuted instantiation: output.c:pcmk__add_word Unexecuted instantiation: output_log.c:pcmk__add_word Unexecuted instantiation: output_text.c:pcmk__add_word Unexecuted instantiation: output_xml.c:pcmk__add_word Unexecuted instantiation: patchset_display.c:pcmk__add_word Unexecuted instantiation: pid.c:pcmk__add_word Unexecuted instantiation: procfs.c:pcmk__add_word Unexecuted instantiation: schemas.c:pcmk__add_word Unexecuted instantiation: xml_display.c:pcmk__add_word Unexecuted instantiation: xml_io.c:pcmk__add_word Unexecuted instantiation: actions.c:pcmk__add_word Unexecuted instantiation: agents.c:pcmk__add_word Unexecuted instantiation: cmdline.c:pcmk__add_word Unexecuted instantiation: digest.c:pcmk__add_word Unexecuted instantiation: health.c:pcmk__add_word Unexecuted instantiation: io.c:pcmk__add_word Unexecuted instantiation: ipc_client.c:pcmk__add_word Unexecuted instantiation: ipc_common.c:pcmk__add_word Unexecuted instantiation: ipc_controld.c:pcmk__add_word Unexecuted instantiation: ipc_pacemakerd.c:pcmk__add_word Unexecuted instantiation: ipc_schedulerd.c:pcmk__add_word Unexecuted instantiation: ipc_server.c:pcmk__add_word Unexecuted instantiation: messages.c:pcmk__add_word Unexecuted instantiation: nodes.c:pcmk__add_word Unexecuted instantiation: options_display.c:pcmk__add_word Unexecuted instantiation: patchset.c:pcmk__add_word Unexecuted instantiation: servers.c:pcmk__add_word Unexecuted instantiation: cib.c:pcmk__add_word Unexecuted instantiation: ipc_attrd.c:pcmk__add_word Unexecuted instantiation: attrs.c:pcmk__add_word Unexecuted instantiation: strings_fuzzer.c:pcmk__add_word Unexecuted instantiation: cib_file_fuzzer.c:pcmk__add_word Unexecuted instantiation: cib_client.c:pcmk__add_word Unexecuted instantiation: cib_file.c:pcmk__add_word Unexecuted instantiation: cib_native.c:pcmk__add_word Unexecuted instantiation: cib_ops.c:pcmk__add_word Unexecuted instantiation: cib_remote.c:pcmk__add_word Unexecuted instantiation: cib_utils.c:pcmk__add_word Unexecuted instantiation: rules.c:pcmk__add_word Unexecuted instantiation: remote.c:pcmk__add_word Unexecuted instantiation: watchdog.c:pcmk__add_word Unexecuted instantiation: iso8601_fuzzer.c:pcmk__add_word |
185 | | |
186 | | /* Correctly displaying singular or plural is complicated; consider "1 node has" |
187 | | * vs. "2 nodes have". A flexible solution is to pluralize entire strings, e.g. |
188 | | * |
189 | | * if (a == 1) { |
190 | | * crm_info("singular message"): |
191 | | * } else { |
192 | | * crm_info("plural message"); |
193 | | * } |
194 | | * |
195 | | * though even that's not sufficient for all languages besides English (if we |
196 | | * ever desire to do translations of output and log messages). But the following |
197 | | * convenience macros are "good enough" and more concise for many cases. |
198 | | */ |
199 | | |
200 | | /* Example: |
201 | | * crm_info("Found %d %s", nentries, |
202 | | * pcmk__plural_alt(nentries, "entry", "entries")); |
203 | | */ |
204 | 0 | #define pcmk__plural_alt(i, s1, s2) (((i) == 1)? (s1) : (s2)) |
205 | | |
206 | | // Example: crm_info("Found %d node%s", nnodes, pcmk__plural_s(nnodes)); |
207 | 0 | #define pcmk__plural_s(i) pcmk__plural_alt(i, "", "s") |
208 | | |
209 | | static inline int |
210 | | pcmk__str_empty(const char *s) |
211 | 6.81k | { |
212 | 6.81k | return (s == NULL) || (s[0] == '\0'); |
213 | 6.81k | } Unexecuted instantiation: scores_fuzzer.c:pcmk__str_empty Unexecuted instantiation: results.c:pcmk__str_empty Unexecuted instantiation: scores.c:pcmk__str_empty Unexecuted instantiation: strings.c:pcmk__str_empty Unexecuted instantiation: utils.c:pcmk__str_empty Unexecuted instantiation: xml.c:pcmk__str_empty Unexecuted instantiation: xml_attr.c:pcmk__str_empty Unexecuted instantiation: xml_comment.c:pcmk__str_empty Unexecuted instantiation: xml_element.c:pcmk__str_empty Unexecuted instantiation: xml_idref.c:pcmk__str_empty Unexecuted instantiation: xpath.c:pcmk__str_empty Unexecuted instantiation: acl.c:pcmk__str_empty iso8601.c:pcmk__str_empty Line | Count | Source | 211 | 6.81k | { | 212 | 6.81k | return (s == NULL) || (s[0] == '\0'); | 213 | 6.81k | } |
Unexecuted instantiation: logging.c:pcmk__str_empty Unexecuted instantiation: mainloop.c:pcmk__str_empty Unexecuted instantiation: nvpair.c:pcmk__str_empty Unexecuted instantiation: options.c:pcmk__str_empty Unexecuted instantiation: output.c:pcmk__str_empty Unexecuted instantiation: output_log.c:pcmk__str_empty Unexecuted instantiation: output_text.c:pcmk__str_empty Unexecuted instantiation: output_xml.c:pcmk__str_empty Unexecuted instantiation: patchset_display.c:pcmk__str_empty Unexecuted instantiation: pid.c:pcmk__str_empty Unexecuted instantiation: procfs.c:pcmk__str_empty Unexecuted instantiation: schemas.c:pcmk__str_empty Unexecuted instantiation: xml_display.c:pcmk__str_empty Unexecuted instantiation: xml_io.c:pcmk__str_empty Unexecuted instantiation: actions.c:pcmk__str_empty Unexecuted instantiation: agents.c:pcmk__str_empty Unexecuted instantiation: cmdline.c:pcmk__str_empty Unexecuted instantiation: digest.c:pcmk__str_empty Unexecuted instantiation: health.c:pcmk__str_empty Unexecuted instantiation: io.c:pcmk__str_empty Unexecuted instantiation: ipc_client.c:pcmk__str_empty Unexecuted instantiation: ipc_common.c:pcmk__str_empty Unexecuted instantiation: ipc_controld.c:pcmk__str_empty Unexecuted instantiation: ipc_pacemakerd.c:pcmk__str_empty Unexecuted instantiation: ipc_schedulerd.c:pcmk__str_empty Unexecuted instantiation: ipc_server.c:pcmk__str_empty Unexecuted instantiation: messages.c:pcmk__str_empty Unexecuted instantiation: nodes.c:pcmk__str_empty Unexecuted instantiation: options_display.c:pcmk__str_empty Unexecuted instantiation: patchset.c:pcmk__str_empty Unexecuted instantiation: servers.c:pcmk__str_empty Unexecuted instantiation: cib.c:pcmk__str_empty Unexecuted instantiation: ipc_attrd.c:pcmk__str_empty Unexecuted instantiation: attrs.c:pcmk__str_empty Unexecuted instantiation: strings_fuzzer.c:pcmk__str_empty Unexecuted instantiation: cib_file_fuzzer.c:pcmk__str_empty Unexecuted instantiation: cib_client.c:pcmk__str_empty Unexecuted instantiation: cib_file.c:pcmk__str_empty Unexecuted instantiation: cib_native.c:pcmk__str_empty Unexecuted instantiation: cib_ops.c:pcmk__str_empty Unexecuted instantiation: cib_remote.c:pcmk__str_empty Unexecuted instantiation: cib_utils.c:pcmk__str_empty Unexecuted instantiation: rules.c:pcmk__str_empty Unexecuted instantiation: remote.c:pcmk__str_empty Unexecuted instantiation: watchdog.c:pcmk__str_empty Unexecuted instantiation: iso8601_fuzzer.c:pcmk__str_empty |
214 | | |
215 | | static inline char * |
216 | | pcmk__itoa(int an_int) |
217 | 0 | { |
218 | 0 | return crm_strdup_printf("%d", an_int); |
219 | 0 | } Unexecuted instantiation: scores_fuzzer.c:pcmk__itoa Unexecuted instantiation: results.c:pcmk__itoa Unexecuted instantiation: scores.c:pcmk__itoa Unexecuted instantiation: strings.c:pcmk__itoa Unexecuted instantiation: utils.c:pcmk__itoa Unexecuted instantiation: xml.c:pcmk__itoa Unexecuted instantiation: xml_attr.c:pcmk__itoa Unexecuted instantiation: xml_comment.c:pcmk__itoa Unexecuted instantiation: xml_element.c:pcmk__itoa Unexecuted instantiation: xml_idref.c:pcmk__itoa Unexecuted instantiation: xpath.c:pcmk__itoa Unexecuted instantiation: acl.c:pcmk__itoa Unexecuted instantiation: iso8601.c:pcmk__itoa Unexecuted instantiation: logging.c:pcmk__itoa Unexecuted instantiation: mainloop.c:pcmk__itoa Unexecuted instantiation: nvpair.c:pcmk__itoa Unexecuted instantiation: options.c:pcmk__itoa Unexecuted instantiation: output.c:pcmk__itoa Unexecuted instantiation: output_log.c:pcmk__itoa Unexecuted instantiation: output_text.c:pcmk__itoa Unexecuted instantiation: output_xml.c:pcmk__itoa Unexecuted instantiation: patchset_display.c:pcmk__itoa Unexecuted instantiation: pid.c:pcmk__itoa Unexecuted instantiation: procfs.c:pcmk__itoa Unexecuted instantiation: schemas.c:pcmk__itoa Unexecuted instantiation: xml_display.c:pcmk__itoa Unexecuted instantiation: xml_io.c:pcmk__itoa Unexecuted instantiation: actions.c:pcmk__itoa Unexecuted instantiation: agents.c:pcmk__itoa Unexecuted instantiation: cmdline.c:pcmk__itoa Unexecuted instantiation: digest.c:pcmk__itoa Unexecuted instantiation: health.c:pcmk__itoa Unexecuted instantiation: io.c:pcmk__itoa Unexecuted instantiation: ipc_client.c:pcmk__itoa Unexecuted instantiation: ipc_common.c:pcmk__itoa Unexecuted instantiation: ipc_controld.c:pcmk__itoa Unexecuted instantiation: ipc_pacemakerd.c:pcmk__itoa Unexecuted instantiation: ipc_schedulerd.c:pcmk__itoa Unexecuted instantiation: ipc_server.c:pcmk__itoa Unexecuted instantiation: messages.c:pcmk__itoa Unexecuted instantiation: nodes.c:pcmk__itoa Unexecuted instantiation: options_display.c:pcmk__itoa Unexecuted instantiation: patchset.c:pcmk__itoa Unexecuted instantiation: servers.c:pcmk__itoa Unexecuted instantiation: cib.c:pcmk__itoa Unexecuted instantiation: ipc_attrd.c:pcmk__itoa Unexecuted instantiation: attrs.c:pcmk__itoa Unexecuted instantiation: strings_fuzzer.c:pcmk__itoa Unexecuted instantiation: cib_file_fuzzer.c:pcmk__itoa Unexecuted instantiation: cib_client.c:pcmk__itoa Unexecuted instantiation: cib_file.c:pcmk__itoa Unexecuted instantiation: cib_native.c:pcmk__itoa Unexecuted instantiation: cib_ops.c:pcmk__itoa Unexecuted instantiation: cib_remote.c:pcmk__itoa Unexecuted instantiation: cib_utils.c:pcmk__itoa Unexecuted instantiation: rules.c:pcmk__itoa Unexecuted instantiation: remote.c:pcmk__itoa Unexecuted instantiation: watchdog.c:pcmk__itoa Unexecuted instantiation: iso8601_fuzzer.c:pcmk__itoa |
220 | | |
221 | | static inline char * |
222 | | pcmk__ftoa(double a_float) |
223 | 0 | { |
224 | 0 | return crm_strdup_printf("%f", a_float); |
225 | 0 | } Unexecuted instantiation: scores_fuzzer.c:pcmk__ftoa Unexecuted instantiation: results.c:pcmk__ftoa Unexecuted instantiation: scores.c:pcmk__ftoa Unexecuted instantiation: strings.c:pcmk__ftoa Unexecuted instantiation: utils.c:pcmk__ftoa Unexecuted instantiation: xml.c:pcmk__ftoa Unexecuted instantiation: xml_attr.c:pcmk__ftoa Unexecuted instantiation: xml_comment.c:pcmk__ftoa Unexecuted instantiation: xml_element.c:pcmk__ftoa Unexecuted instantiation: xml_idref.c:pcmk__ftoa Unexecuted instantiation: xpath.c:pcmk__ftoa Unexecuted instantiation: acl.c:pcmk__ftoa Unexecuted instantiation: iso8601.c:pcmk__ftoa Unexecuted instantiation: logging.c:pcmk__ftoa Unexecuted instantiation: mainloop.c:pcmk__ftoa Unexecuted instantiation: nvpair.c:pcmk__ftoa Unexecuted instantiation: options.c:pcmk__ftoa Unexecuted instantiation: output.c:pcmk__ftoa Unexecuted instantiation: output_log.c:pcmk__ftoa Unexecuted instantiation: output_text.c:pcmk__ftoa Unexecuted instantiation: output_xml.c:pcmk__ftoa Unexecuted instantiation: patchset_display.c:pcmk__ftoa Unexecuted instantiation: pid.c:pcmk__ftoa Unexecuted instantiation: procfs.c:pcmk__ftoa Unexecuted instantiation: schemas.c:pcmk__ftoa Unexecuted instantiation: xml_display.c:pcmk__ftoa Unexecuted instantiation: xml_io.c:pcmk__ftoa Unexecuted instantiation: actions.c:pcmk__ftoa Unexecuted instantiation: agents.c:pcmk__ftoa Unexecuted instantiation: cmdline.c:pcmk__ftoa Unexecuted instantiation: digest.c:pcmk__ftoa Unexecuted instantiation: health.c:pcmk__ftoa Unexecuted instantiation: io.c:pcmk__ftoa Unexecuted instantiation: ipc_client.c:pcmk__ftoa Unexecuted instantiation: ipc_common.c:pcmk__ftoa Unexecuted instantiation: ipc_controld.c:pcmk__ftoa Unexecuted instantiation: ipc_pacemakerd.c:pcmk__ftoa Unexecuted instantiation: ipc_schedulerd.c:pcmk__ftoa Unexecuted instantiation: ipc_server.c:pcmk__ftoa Unexecuted instantiation: messages.c:pcmk__ftoa Unexecuted instantiation: nodes.c:pcmk__ftoa Unexecuted instantiation: options_display.c:pcmk__ftoa Unexecuted instantiation: patchset.c:pcmk__ftoa Unexecuted instantiation: servers.c:pcmk__ftoa Unexecuted instantiation: cib.c:pcmk__ftoa Unexecuted instantiation: ipc_attrd.c:pcmk__ftoa Unexecuted instantiation: attrs.c:pcmk__ftoa Unexecuted instantiation: strings_fuzzer.c:pcmk__ftoa Unexecuted instantiation: cib_file_fuzzer.c:pcmk__ftoa Unexecuted instantiation: cib_client.c:pcmk__ftoa Unexecuted instantiation: cib_file.c:pcmk__ftoa Unexecuted instantiation: cib_native.c:pcmk__ftoa Unexecuted instantiation: cib_ops.c:pcmk__ftoa Unexecuted instantiation: cib_remote.c:pcmk__ftoa Unexecuted instantiation: cib_utils.c:pcmk__ftoa Unexecuted instantiation: rules.c:pcmk__ftoa Unexecuted instantiation: remote.c:pcmk__ftoa Unexecuted instantiation: watchdog.c:pcmk__ftoa Unexecuted instantiation: iso8601_fuzzer.c:pcmk__ftoa |
226 | | |
227 | | static inline char * |
228 | | pcmk__ttoa(time_t epoch_time) |
229 | 0 | { |
230 | 0 | return crm_strdup_printf("%lld", (long long) epoch_time); |
231 | 0 | } Unexecuted instantiation: scores_fuzzer.c:pcmk__ttoa Unexecuted instantiation: results.c:pcmk__ttoa Unexecuted instantiation: scores.c:pcmk__ttoa Unexecuted instantiation: strings.c:pcmk__ttoa Unexecuted instantiation: utils.c:pcmk__ttoa Unexecuted instantiation: xml.c:pcmk__ttoa Unexecuted instantiation: xml_attr.c:pcmk__ttoa Unexecuted instantiation: xml_comment.c:pcmk__ttoa Unexecuted instantiation: xml_element.c:pcmk__ttoa Unexecuted instantiation: xml_idref.c:pcmk__ttoa Unexecuted instantiation: xpath.c:pcmk__ttoa Unexecuted instantiation: acl.c:pcmk__ttoa Unexecuted instantiation: iso8601.c:pcmk__ttoa Unexecuted instantiation: logging.c:pcmk__ttoa Unexecuted instantiation: mainloop.c:pcmk__ttoa Unexecuted instantiation: nvpair.c:pcmk__ttoa Unexecuted instantiation: options.c:pcmk__ttoa Unexecuted instantiation: output.c:pcmk__ttoa Unexecuted instantiation: output_log.c:pcmk__ttoa Unexecuted instantiation: output_text.c:pcmk__ttoa Unexecuted instantiation: output_xml.c:pcmk__ttoa Unexecuted instantiation: patchset_display.c:pcmk__ttoa Unexecuted instantiation: pid.c:pcmk__ttoa Unexecuted instantiation: procfs.c:pcmk__ttoa Unexecuted instantiation: schemas.c:pcmk__ttoa Unexecuted instantiation: xml_display.c:pcmk__ttoa Unexecuted instantiation: xml_io.c:pcmk__ttoa Unexecuted instantiation: actions.c:pcmk__ttoa Unexecuted instantiation: agents.c:pcmk__ttoa Unexecuted instantiation: cmdline.c:pcmk__ttoa Unexecuted instantiation: digest.c:pcmk__ttoa Unexecuted instantiation: health.c:pcmk__ttoa Unexecuted instantiation: io.c:pcmk__ttoa Unexecuted instantiation: ipc_client.c:pcmk__ttoa Unexecuted instantiation: ipc_common.c:pcmk__ttoa Unexecuted instantiation: ipc_controld.c:pcmk__ttoa Unexecuted instantiation: ipc_pacemakerd.c:pcmk__ttoa Unexecuted instantiation: ipc_schedulerd.c:pcmk__ttoa Unexecuted instantiation: ipc_server.c:pcmk__ttoa Unexecuted instantiation: messages.c:pcmk__ttoa Unexecuted instantiation: nodes.c:pcmk__ttoa Unexecuted instantiation: options_display.c:pcmk__ttoa Unexecuted instantiation: patchset.c:pcmk__ttoa Unexecuted instantiation: servers.c:pcmk__ttoa Unexecuted instantiation: cib.c:pcmk__ttoa Unexecuted instantiation: ipc_attrd.c:pcmk__ttoa Unexecuted instantiation: attrs.c:pcmk__ttoa Unexecuted instantiation: strings_fuzzer.c:pcmk__ttoa Unexecuted instantiation: cib_file_fuzzer.c:pcmk__ttoa Unexecuted instantiation: cib_client.c:pcmk__ttoa Unexecuted instantiation: cib_file.c:pcmk__ttoa Unexecuted instantiation: cib_native.c:pcmk__ttoa Unexecuted instantiation: cib_ops.c:pcmk__ttoa Unexecuted instantiation: cib_remote.c:pcmk__ttoa Unexecuted instantiation: cib_utils.c:pcmk__ttoa Unexecuted instantiation: rules.c:pcmk__ttoa Unexecuted instantiation: remote.c:pcmk__ttoa Unexecuted instantiation: watchdog.c:pcmk__ttoa Unexecuted instantiation: iso8601_fuzzer.c:pcmk__ttoa |
232 | | |
233 | | // note this returns const not allocated |
234 | | static inline const char * |
235 | | pcmk__btoa(bool condition) |
236 | 0 | { |
237 | 0 | return condition? PCMK_VALUE_TRUE : PCMK_VALUE_FALSE; |
238 | 0 | } Unexecuted instantiation: scores_fuzzer.c:pcmk__btoa Unexecuted instantiation: results.c:pcmk__btoa Unexecuted instantiation: scores.c:pcmk__btoa Unexecuted instantiation: strings.c:pcmk__btoa Unexecuted instantiation: utils.c:pcmk__btoa Unexecuted instantiation: xml.c:pcmk__btoa Unexecuted instantiation: xml_attr.c:pcmk__btoa Unexecuted instantiation: xml_comment.c:pcmk__btoa Unexecuted instantiation: xml_element.c:pcmk__btoa Unexecuted instantiation: xml_idref.c:pcmk__btoa Unexecuted instantiation: xpath.c:pcmk__btoa Unexecuted instantiation: acl.c:pcmk__btoa Unexecuted instantiation: iso8601.c:pcmk__btoa Unexecuted instantiation: logging.c:pcmk__btoa Unexecuted instantiation: mainloop.c:pcmk__btoa Unexecuted instantiation: nvpair.c:pcmk__btoa Unexecuted instantiation: options.c:pcmk__btoa Unexecuted instantiation: output.c:pcmk__btoa Unexecuted instantiation: output_log.c:pcmk__btoa Unexecuted instantiation: output_text.c:pcmk__btoa Unexecuted instantiation: output_xml.c:pcmk__btoa Unexecuted instantiation: patchset_display.c:pcmk__btoa Unexecuted instantiation: pid.c:pcmk__btoa Unexecuted instantiation: procfs.c:pcmk__btoa Unexecuted instantiation: schemas.c:pcmk__btoa Unexecuted instantiation: xml_display.c:pcmk__btoa Unexecuted instantiation: xml_io.c:pcmk__btoa Unexecuted instantiation: actions.c:pcmk__btoa Unexecuted instantiation: agents.c:pcmk__btoa Unexecuted instantiation: cmdline.c:pcmk__btoa Unexecuted instantiation: digest.c:pcmk__btoa Unexecuted instantiation: health.c:pcmk__btoa Unexecuted instantiation: io.c:pcmk__btoa Unexecuted instantiation: ipc_client.c:pcmk__btoa Unexecuted instantiation: ipc_common.c:pcmk__btoa Unexecuted instantiation: ipc_controld.c:pcmk__btoa Unexecuted instantiation: ipc_pacemakerd.c:pcmk__btoa Unexecuted instantiation: ipc_schedulerd.c:pcmk__btoa Unexecuted instantiation: ipc_server.c:pcmk__btoa Unexecuted instantiation: messages.c:pcmk__btoa Unexecuted instantiation: nodes.c:pcmk__btoa Unexecuted instantiation: options_display.c:pcmk__btoa Unexecuted instantiation: patchset.c:pcmk__btoa Unexecuted instantiation: servers.c:pcmk__btoa Unexecuted instantiation: cib.c:pcmk__btoa Unexecuted instantiation: ipc_attrd.c:pcmk__btoa Unexecuted instantiation: attrs.c:pcmk__btoa Unexecuted instantiation: strings_fuzzer.c:pcmk__btoa Unexecuted instantiation: cib_file_fuzzer.c:pcmk__btoa Unexecuted instantiation: cib_client.c:pcmk__btoa Unexecuted instantiation: cib_file.c:pcmk__btoa Unexecuted instantiation: cib_native.c:pcmk__btoa Unexecuted instantiation: cib_ops.c:pcmk__btoa Unexecuted instantiation: cib_remote.c:pcmk__btoa Unexecuted instantiation: cib_utils.c:pcmk__btoa Unexecuted instantiation: rules.c:pcmk__btoa Unexecuted instantiation: remote.c:pcmk__btoa Unexecuted instantiation: watchdog.c:pcmk__btoa Unexecuted instantiation: iso8601_fuzzer.c:pcmk__btoa |
239 | | |
240 | | #ifdef __cplusplus |
241 | | } |
242 | | #endif |
243 | | |
244 | | #endif // PCMK__CRM_COMMON_STRINGS_INTERNAL__H |