[PATCH 1/2] virstring: Move locale wrappers at the beginning

Michal Privoznik posted 2 patches 2 years, 7 months ago
[PATCH 1/2] virstring: Move locale wrappers at the beginning
Posted by Michal Privoznik 2 years, 7 months ago
We will soon need the virLocaleRaw variable. Move it and
functions around it at the beginning of the file, so that
later code doesn't need to introduce forward declarations.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/util/virstring.c | 157 ++++++++++++++++++++++---------------------
 1 file changed, 79 insertions(+), 78 deletions(-)

diff --git a/src/util/virstring.c b/src/util/virstring.c
index 6b728ff047..1a13570d30 100644
--- a/src/util/virstring.c
+++ b/src/util/virstring.c
@@ -35,6 +35,85 @@
 
 VIR_LOG_INIT("util.string");
 
+/* In case thread-safe locales are available */
+#if WITH_NEWLOCALE
+
+typedef locale_t virLocale;
+static virLocale virLocaleRaw;
+
+static int
+virLocaleOnceInit(void)
+{
+    virLocaleRaw = newlocale(LC_ALL_MASK, "C", (locale_t)0);
+    if (!virLocaleRaw)
+        return -1;
+    return 0;
+}
+
+VIR_ONCE_GLOBAL_INIT(virLocale);
+
+/**
+ * virLocaleSetRaw:
+ *
+ * @oldlocale: set to old locale pointer
+ *
+ * Sets the locale to 'C' to allow operating on non-localized objects.
+ * Returns 0 on success -1 on error.
+ */
+static int
+virLocaleSetRaw(virLocale *oldlocale)
+{
+    if (virLocaleInitialize() < 0)
+        return -1;
+    *oldlocale = uselocale(virLocaleRaw);
+    return 0;
+}
+
+static void
+virLocaleRevert(virLocale *oldlocale)
+{
+    uselocale(*oldlocale);
+}
+
+static void
+virLocaleFixupRadix(char **strp G_GNUC_UNUSED)
+{
+}
+
+#else /* !WITH_NEWLOCALE */
+
+typedef int virLocale;
+
+static int
+virLocaleSetRaw(virLocale *oldlocale G_GNUC_UNUSED)
+{
+    return 0;
+}
+
+static void
+virLocaleRevert(virLocale *oldlocale G_GNUC_UNUSED)
+{
+}
+
+static void
+virLocaleFixupRadix(char **strp)
+{
+    char *radix, *tmp;
+    struct lconv *lc;
+
+    lc = localeconv();
+    radix = lc->decimal_point;
+    tmp = strstr(*strp, radix);
+    if (tmp) {
+        *tmp = '.';
+        if (strlen(radix) > 1)
+            memmove(tmp + 1, tmp + strlen(radix), strlen(*strp) - (tmp - *strp));
+    }
+}
+
+#endif /* !WITH_NEWLOCALE */
+
+
 /* Like strtol with C locale, but produce an "int" result, and check more carefully.
    Return 0 upon success;  return -1 to indicate failure.
    When END_PTR is NULL, the byte after the final valid digit must be NUL.
@@ -233,84 +312,6 @@ virStrToLong_ullp(char const *s, char **end_ptr, int base,
     return 0;
 }
 
-/* In case thread-safe locales are available */
-#if WITH_NEWLOCALE
-
-typedef locale_t virLocale;
-static virLocale virLocaleRaw;
-
-static int
-virLocaleOnceInit(void)
-{
-    virLocaleRaw = newlocale(LC_ALL_MASK, "C", (locale_t)0);
-    if (!virLocaleRaw)
-        return -1;
-    return 0;
-}
-
-VIR_ONCE_GLOBAL_INIT(virLocale);
-
-/**
- * virLocaleSetRaw:
- *
- * @oldlocale: set to old locale pointer
- *
- * Sets the locale to 'C' to allow operating on non-localized objects.
- * Returns 0 on success -1 on error.
- */
-static int
-virLocaleSetRaw(virLocale *oldlocale)
-{
-    if (virLocaleInitialize() < 0)
-        return -1;
-    *oldlocale = uselocale(virLocaleRaw);
-    return 0;
-}
-
-static void
-virLocaleRevert(virLocale *oldlocale)
-{
-    uselocale(*oldlocale);
-}
-
-static void
-virLocaleFixupRadix(char **strp G_GNUC_UNUSED)
-{
-}
-
-#else /* !WITH_NEWLOCALE */
-
-typedef int virLocale;
-
-static int
-virLocaleSetRaw(virLocale *oldlocale G_GNUC_UNUSED)
-{
-    return 0;
-}
-
-static void
-virLocaleRevert(virLocale *oldlocale G_GNUC_UNUSED)
-{
-}
-
-static void
-virLocaleFixupRadix(char **strp)
-{
-    char *radix, *tmp;
-    struct lconv *lc;
-
-    lc = localeconv();
-    radix = lc->decimal_point;
-    tmp = strstr(*strp, radix);
-    if (tmp) {
-        *tmp = '.';
-        if (strlen(radix) > 1)
-            memmove(tmp + 1, tmp + strlen(radix), strlen(*strp) - (tmp - *strp));
-    }
-}
-
-#endif /* !WITH_NEWLOCALE */
-
 
 /**
  * virStrToDouble
-- 
2.39.3