summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2016-12-21 17:42:49 +0100
committerThomas Haller <thaller@redhat.com>2017-01-04 14:49:24 +0100
commit5e07bb1b9e57313f196c065cf179ca51a4177c81 (patch)
tree86f3eddfe296f9b2c0dc5d5ced87028577c17e23
parent9c0c9f4c6a0028d7dc19941e25d291207deeb292 (diff)
downloadNetworkManager-5e07bb1b9e57313f196c065cf179ca51a4177c81.tar.gz
shared: move nm_utils_strbuf_*() helper to shared/nm-utils
-rw-r--r--shared/nm-utils/nm-shared-utils.c79
-rw-r--r--shared/nm-utils/nm-shared-utils.h19
-rw-r--r--src/nm-core-utils.c77
-rw-r--r--src/nm-core-utils.h17
4 files changed, 98 insertions, 94 deletions
diff --git a/shared/nm-utils/nm-shared-utils.c b/shared/nm-utils/nm-shared-utils.c
index 84a5b18e2f..38bb8181f3 100644
--- a/shared/nm-utils/nm-shared-utils.c
+++ b/shared/nm-utils/nm-shared-utils.c
@@ -27,6 +27,85 @@
/*****************************************************************************/
+void
+nm_utils_strbuf_append_c (char **buf, gsize *len, char c)
+{
+ switch (*len) {
+ case 0:
+ return;
+ case 1:
+ (*buf)[0] = '\0';
+ *len = 0;
+ (*buf)++;
+ return;
+ default:
+ (*buf)[0] = c;
+ (*buf)[1] = '\0';
+ (*len)--;
+ (*buf)++;
+ return;
+ }
+}
+
+void
+nm_utils_strbuf_append_str (char **buf, gsize *len, const char *str)
+{
+ gsize src_len;
+
+ switch (*len) {
+ case 0:
+ return;
+ case 1:
+ if (!str || !*str) {
+ (*buf)[0] = '\0';
+ return;
+ }
+ (*buf)[0] = '\0';
+ *len = 0;
+ (*buf)++;
+ return;
+ default:
+ if (!str || !*str) {
+ (*buf)[0] = '\0';
+ return;
+ }
+ src_len = g_strlcpy (*buf, str, *len);
+ if (src_len >= *len) {
+ *buf = &(*buf)[*len];
+ *len = 0;
+ } else {
+ *buf = &(*buf)[src_len];
+ *len -= src_len;
+ }
+ return;
+ }
+}
+
+void
+nm_utils_strbuf_append (char **buf, gsize *len, const char *format, ...)
+{
+ char *p = *buf;
+ va_list args;
+ gint retval;
+
+ if (*len == 0)
+ return;
+
+ va_start (args, format);
+ retval = g_vsnprintf (p, *len, format, args);
+ va_end (args);
+
+ if (retval >= *len) {
+ *buf = &p[*len];
+ *len = 0;
+ } else {
+ *buf = &p[retval];
+ *len -= retval;
+ }
+}
+
+/*****************************************************************************/
+
/* _nm_utils_ascii_str_to_int64:
*
* A wrapper for g_ascii_strtoll, that checks whether the whole string
diff --git a/shared/nm-utils/nm-shared-utils.h b/shared/nm-utils/nm-shared-utils.h
index f77fb0e353..5d8a3a86ab 100644
--- a/shared/nm-utils/nm-shared-utils.h
+++ b/shared/nm-utils/nm-shared-utils.h
@@ -24,6 +24,25 @@
/*****************************************************************************/
+static inline void
+_nm_utils_strbuf_init (char *buf, gsize len, char **p_buf_ptr, gsize *p_buf_len)
+{
+ NM_SET_OUT (p_buf_len, len);
+ NM_SET_OUT (p_buf_ptr, buf);
+ buf[0] = '\0';
+}
+
+#define nm_utils_strbuf_init(buf, p_buf_ptr, p_buf_len) \
+ G_STMT_START { \
+ G_STATIC_ASSERT (G_N_ELEMENTS (buf) == sizeof (buf) && sizeof (buf) > sizeof (char *)); \
+ _nm_utils_strbuf_init ((buf), sizeof (buf), (p_buf_ptr), (p_buf_len)); \
+ } G_STMT_END
+void nm_utils_strbuf_append (char **buf, gsize *len, const char *format, ...) _nm_printf (3, 4);
+void nm_utils_strbuf_append_c (char **buf, gsize *len, char c);
+void nm_utils_strbuf_append_str (char **buf, gsize *len, const char *str);
+
+/*****************************************************************************/
+
gint64 _nm_utils_ascii_str_to_int64 (const char *str, guint base, gint64 min, gint64 max, gint64 fallback);
gint _nm_utils_ascii_str_to_bool (const char *str,
diff --git a/src/nm-core-utils.c b/src/nm-core-utils.c
index 70af933835..a1f01b3f81 100644
--- a/src/nm-core-utils.c
+++ b/src/nm-core-utils.c
@@ -1771,83 +1771,6 @@ nm_utils_to_string_buffer_init_null (gconstpointer obj, char **buf, gsize *len)
return TRUE;
}
-void
-nm_utils_strbuf_append_c (char **buf, gsize *len, char c)
-{
- switch (*len) {
- case 0:
- return;
- case 1:
- (*buf)[0] = '\0';
- *len = 0;
- (*buf)++;
- return;
- default:
- (*buf)[0] = c;
- (*buf)[1] = '\0';
- (*len)--;
- (*buf)++;
- return;
- }
-}
-
-void
-nm_utils_strbuf_append_str (char **buf, gsize *len, const char *str)
-{
- gsize src_len;
-
- switch (*len) {
- case 0:
- return;
- case 1:
- if (!str || !*str) {
- (*buf)[0] = '\0';
- return;
- }
- (*buf)[0] = '\0';
- *len = 0;
- (*buf)++;
- return;
- default:
- if (!str || !*str) {
- (*buf)[0] = '\0';
- return;
- }
- src_len = g_strlcpy (*buf, str, *len);
- if (src_len >= *len) {
- *buf = &(*buf)[*len];
- *len = 0;
- } else {
- *buf = &(*buf)[src_len];
- *len -= src_len;
- }
- return;
- }
-}
-
-void
-nm_utils_strbuf_append (char **buf, gsize *len, const char *format, ...)
-{
- char *p = *buf;
- va_list args;
- gint retval;
-
- if (*len == 0)
- return;
-
- va_start (args, format);
- retval = g_vsnprintf (p, *len, format, args);
- va_end (args);
-
- if (retval >= *len) {
- *buf = &p[*len];
- *len = 0;
- } else {
- *buf = &p[retval];
- *len -= retval;
- }
-}
-
const char *
nm_utils_flags2str (const NMUtilsFlags2StrDesc *descs,
gsize n_descs,
diff --git a/src/nm-core-utils.h b/src/nm-core-utils.h
index f9d30b5ce4..66bcdc29e1 100644
--- a/src/nm-core-utils.h
+++ b/src/nm-core-utils.h
@@ -262,23 +262,6 @@ fcn_name (lookup_type val) \
/*****************************************************************************/
-static inline void
-_nm_utils_strbuf_init (char *buf, gsize len, char **p_buf_ptr, gsize *p_buf_len)
-{
- NM_SET_OUT (p_buf_len, len);
- NM_SET_OUT (p_buf_ptr, buf);
- buf[0] = '\0';
-}
-
-#define nm_utils_strbuf_init(buf, p_buf_ptr, p_buf_len) \
- G_STMT_START { \
- G_STATIC_ASSERT (G_N_ELEMENTS (buf) == sizeof (buf) && sizeof (buf) > sizeof (char *)); \
- _nm_utils_strbuf_init ((buf), sizeof (buf), (p_buf_ptr), (p_buf_len)); \
- } G_STMT_END
-void nm_utils_strbuf_append (char **buf, gsize *len, const char *format, ...) _nm_printf (3, 4);
-void nm_utils_strbuf_append_c (char **buf, gsize *len, char c);
-void nm_utils_strbuf_append_str (char **buf, gsize *len, const char *str);
-
const char *nm_utils_get_ip_config_method (NMConnection *connection,
GType ip_setting_type);