]> git.proxmox.com Git - mirror_qemu.git/blobdiff - util/uri.c
Revert "audio: fix pc speaker init"
[mirror_qemu.git] / util / uri.c
index 550b9845870d850ce69829411ab92828c0f98658..8bdef841208d249cb1a24116811b38d9480daa32 100644 (file)
@@ -51,9 +51,8 @@
  *
  */
 
-#include <glib.h>
-#include <string.h>
-#include <stdio.h>
+#include "qemu/osdep.h"
+#include "qemu/cutils.h"
 
 #include "qemu/uri.h"
 
@@ -65,7 +64,6 @@ static void uri_clean(URI *uri);
  */
 #define IS_ALPHA(x) (IS_LOWALPHA(x) || IS_UPALPHA(x))
 
-
 /*
  * lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" |
  *            "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" |
@@ -99,27 +97,27 @@ static void uri_clean(URI *uri);
  * mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
  */
 
-#define IS_MARK(x) (((x) == '-') || ((x) == '_') || ((x) == '.') ||     \
-    ((x) == '!') || ((x) == '~') || ((x) == '*') || ((x) == '\'') ||    \
+#define IS_MARK(x) (((x) == '-') || ((x) == '_') || ((x) == '.') ||            \
+    ((x) == '!') || ((x) == '~') || ((x) == '*') || ((x) == '\'') ||           \
     ((x) == '(') || ((x) == ')'))
 
 /*
  * unwise = "{" | "}" | "|" | "\" | "^" | "`"
  */
 
-#define IS_UNWISE(p)                                                    \
-      (((*(p) == '{')) || ((*(p) == '}')) || ((*(p) == '|')) ||         \
-       ((*(p) == '\\')) || ((*(p) == '^')) || ((*(p) == '[')) ||        \
-       ((*(p) == ']')) || ((*(p) == '`')))
+#define IS_UNWISE(p)                                                           \
+    (((*(p) == '{')) || ((*(p) == '}')) || ((*(p) == '|')) ||                  \
+     ((*(p) == '\\')) || ((*(p) == '^')) || ((*(p) == '[')) ||                 \
+     ((*(p) == ']')) || ((*(p) == '`')))
 /*
  * reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," |
  *            "[" | "]"
  */
 
-#define IS_RESERVED(x) (((x) == ';') || ((x) == '/') || ((x) == '?') || \
-        ((x) == ':') || ((x) == '@') || ((x) == '&') || ((x) == '=') || \
-        ((x) == '+') || ((x) == '$') || ((x) == ',') || ((x) == '[') || \
-        ((x) == ']'))
+#define IS_RESERVED(x) (((x) == ';') || ((x) == '/') || ((x) == '?') ||        \
+    ((x) == ':') || ((x) == '@') || ((x) == '&') || ((x) == '=') ||            \
+    ((x) == '+') || ((x) == '$') || ((x) == ',') || ((x) == '[') ||            \
+    ((x) == ']'))
 
 /*
  * unreserved = alphanum | mark
@@ -131,7 +129,7 @@ static void uri_clean(URI *uri);
  * Skip to next pointer char, handle escaped sequences
  */
 
-#define NEXT(p) ((*p == '%')? p += 3 : p++)
+#define NEXT(p) ((*p == '%') ? p += 3 : p++)
 
 /*
  * Productions from the spec.
@@ -143,37 +141,36 @@ static void uri_clean(URI *uri);
  * path          = [ abs_path | opaque_part ]
  */
 
-
 /************************************************************************
- *                                                                     *
- *                         RFC 3986 parser                             *
- *                                                                     *
+ *                                                                      *
+ *                         RFC 3986 parser                              *
+ *                                                                      *
  ************************************************************************/
 
 #define ISA_DIGIT(p) ((*(p) >= '0') && (*(p) <= '9'))
-#define ISA_ALPHA(p) (((*(p) >= 'a') && (*(p) <= 'z')) ||              \
+#define ISA_ALPHA(p) (((*(p) >= 'a') && (*(p) <= 'z')) ||                      \
                       ((*(p) >= 'A') && (*(p) <= 'Z')))
-#define ISA_HEXDIG(p)                                                  \
-       (ISA_DIGIT(p) || ((*(p) >= 'a') && (*(p) <= 'f')) ||            \
-        ((*(p) >= 'A') && (*(p) <= 'F')))
+#define ISA_HEXDIG(p)                                                          \
+    (ISA_DIGIT(p) || ((*(p) >= 'a') && (*(p) <= 'f')) ||                       \
+     ((*(p) >= 'A') && (*(p) <= 'F')))
 
 /*
  *    sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
  *                     / "*" / "+" / "," / ";" / "="
  */
-#define ISA_SUB_DELIM(p)                                               \
-      (((*(p) == '!')) || ((*(p) == '$')) || ((*(p) == '&')) ||                \
-       ((*(p) == '(')) || ((*(p) == ')')) || ((*(p) == '*')) ||                \
-       ((*(p) == '+')) || ((*(p) == ',')) || ((*(p) == ';')) ||                \
-       ((*(p) == '=')) || ((*(p) == '\'')))
+#define ISA_SUB_DELIM(p)                                                       \
+    (((*(p) == '!')) || ((*(p) == '$')) || ((*(p) == '&')) ||                  \
+     ((*(p) == '(')) || ((*(p) == ')')) || ((*(p) == '*')) ||                  \
+     ((*(p) == '+')) || ((*(p) == ',')) || ((*(p) == ';')) ||                  \
+     ((*(p) == '=')) || ((*(p) == '\'')))
 
 /*
  *    gen-delims    = ":" / "/" / "?" / "#" / "[" / "]" / "@"
  */
-#define ISA_GEN_DELIM(p)                                               \
-      (((*(p) == ':')) || ((*(p) == '/')) || ((*(p) == '?')) ||         \
-       ((*(p) == '#')) || ((*(p) == '[')) || ((*(p) == ']')) ||         \
-       ((*(p) == '@')))
+#define ISA_GEN_DELIM(p)                                                       \
+    (((*(p) == ':')) || ((*(p) == '/')) || ((*(p) == '?')) ||                  \
+     ((*(p) == '#')) || ((*(p) == '[')) || ((*(p) == ']')) ||                  \
+     ((*(p) == '@')))
 
 /*
  *    reserved      = gen-delims / sub-delims
@@ -183,22 +180,22 @@ static void uri_clean(URI *uri);
 /*
  *    unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"
  */
-#define ISA_UNRESERVED(p)                                              \
-      ((ISA_ALPHA(p)) || (ISA_DIGIT(p)) || ((*(p) == '-')) ||          \
-       ((*(p) == '.')) || ((*(p) == '_')) || ((*(p) == '~')))
+#define ISA_UNRESERVED(p)                                                      \
+    ((ISA_ALPHA(p)) || (ISA_DIGIT(p)) || ((*(p) == '-')) ||                    \
+     ((*(p) == '.')) || ((*(p) == '_')) || ((*(p) == '~')))
 
 /*
  *    pct-encoded   = "%" HEXDIG HEXDIG
  */
-#define ISA_PCT_ENCODED(p)                                             \
-     ((*(p) == '%') && (ISA_HEXDIG(p + 1)) && (ISA_HEXDIG(p + 2)))
+#define ISA_PCT_ENCODED(p)                                                     \
+    ((*(p) == '%') && (ISA_HEXDIG(p + 1)) && (ISA_HEXDIG(p + 2)))
 
 /*
  *    pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"
  */
-#define ISA_PCHAR(p)                                                   \
-     (ISA_UNRESERVED(p) || ISA_PCT_ENCODED(p) || ISA_SUB_DELIM(p) ||   \
-      ((*(p) == ':')) || ((*(p) == '@')))
+#define ISA_PCHAR(p)                                                           \
+    (ISA_UNRESERVED(p) || ISA_PCT_ENCODED(p) || ISA_SUB_DELIM(p) ||            \
+     ((*(p) == ':')) || ((*(p) == '@')))
 
 /**
  * rfc3986_parse_scheme:
@@ -211,25 +208,29 @@ static void uri_clean(URI *uri);
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_scheme(URI *uri, const char **str) {
+static int rfc3986_parse_scheme(URI *uri, const char **str)
+{
     const char *cur;
 
-    if (str == NULL)
-       return(-1);
+    if (str == NULL) {
+        return -1;
+    }
 
     cur = *str;
-    if (!ISA_ALPHA(cur))
-       return(2);
+    if (!ISA_ALPHA(cur)) {
+        return 2;
+    }
     cur++;
-    while (ISA_ALPHA(cur) || ISA_DIGIT(cur) ||
-           (*cur == '+') || (*cur == '-') || (*cur == '.')) cur++;
+    while (ISA_ALPHA(cur) || ISA_DIGIT(cur) || (*cur == '+') || (*cur == '-') ||
+           (*cur == '.')) {
+        cur++;
+    }
     if (uri != NULL) {
         g_free(uri->scheme);
-       uri->scheme = g_strndup(*str, cur - *str);
+        uri->scheme = g_strndup(*str, cur - *str);
     }
     *str = cur;
-    return(0);
+    return 0;
 }
 
 /**
@@ -247,29 +248,31 @@ rfc3986_parse_scheme(URI *uri, const char **str) {
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_fragment(URI *uri, const char **str)
+static int rfc3986_parse_fragment(URI *uri, const char **str)
 {
     const char *cur;
 
-    if (str == NULL)
-        return (-1);
+    if (str == NULL) {
+        return -1;
+    }
 
     cur = *str;
 
     while ((ISA_PCHAR(cur)) || (*cur == '/') || (*cur == '?') ||
            (*cur == '[') || (*cur == ']') ||
-           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))
+           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur)))) {
         NEXT(cur);
+    }
     if (uri != NULL) {
         g_free(uri->fragment);
-       if (uri->cleanup & 2)
-           uri->fragment = g_strndup(*str, cur - *str);
-       else
-           uri->fragment = uri_string_unescape(*str, cur - *str, NULL);
+        if (uri->cleanup & 2) {
+            uri->fragment = g_strndup(*str, cur - *str);
+        } else {
+            uri->fragment = uri_string_unescape(*str, cur - *str, NULL);
+        }
     }
     *str = cur;
-    return (0);
+    return 0;
 }
 
 /**
@@ -283,25 +286,26 @@ rfc3986_parse_fragment(URI *uri, const char **str)
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_query(URI *uri, const char **str)
+static int rfc3986_parse_query(URI *uri, const char **str)
 {
     const char *cur;
 
-    if (str == NULL)
-        return (-1);
+    if (str == NULL) {
+        return -1;
+    }
 
     cur = *str;
 
     while ((ISA_PCHAR(cur)) || (*cur == '/') || (*cur == '?') ||
-           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))
+           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur)))) {
         NEXT(cur);
+    }
     if (uri != NULL) {
         g_free(uri->query);
-       uri->query = g_strndup (*str, cur - *str);
+        uri->query = g_strndup(*str, cur - *str);
     }
     *str = cur;
-    return (0);
+    return 0;
 }
 
 /**
@@ -316,8 +320,7 @@ rfc3986_parse_query(URI *uri, const char **str)
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_port(URI *uri, const char **str)
+static int rfc3986_parse_port(URI *uri, const char **str)
 {
     const char *cur = *str;
     int port = 0;
@@ -344,34 +347,35 @@ rfc3986_parse_port(URI *uri, const char **str)
  * @uri:  pointer to an URI structure
  * @str:  the string to analyze
  *
- * Parse an user informations part and fills in the appropriate fields
+ * Parse a user information part and fill in the appropriate fields
  * of the @uri structure
  *
  * userinfo      = *( unreserved / pct-encoded / sub-delims / ":" )
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_user_info(URI *uri, const char **str)
+static int rfc3986_parse_user_info(URI *uri, const char **str)
 {
     const char *cur;
 
     cur = *str;
-    while (ISA_UNRESERVED(cur) || ISA_PCT_ENCODED(cur) ||
-           ISA_SUB_DELIM(cur) || (*cur == ':'))
-       NEXT(cur);
+    while (ISA_UNRESERVED(cur) || ISA_PCT_ENCODED(cur) || ISA_SUB_DELIM(cur) ||
+           (*cur == ':')) {
+        NEXT(cur);
+    }
     if (*cur == '@') {
-       if (uri != NULL) {
+        if (uri != NULL) {
             g_free(uri->user);
-           if (uri->cleanup & 2)
-               uri->user = g_strndup(*str, cur - *str);
-           else
-               uri->user = uri_string_unescape(*str, cur - *str, NULL);
-       }
-       *str = cur;
-       return(0);
-    }
-    return(1);
+            if (uri->cleanup & 2) {
+                uri->user = g_strndup(*str, cur - *str);
+            } else {
+                uri->user = uri_string_unescape(*str, cur - *str, NULL);
+            }
+        }
+        *str = cur;
+        return 0;
+    }
+    return 1;
 }
 
 /**
@@ -388,28 +392,30 @@ rfc3986_parse_user_info(URI *uri, const char **str)
  *
  * Returns 0 if found and skipped, 1 otherwise
  */
-static int
-rfc3986_parse_dec_octet(const char **str) {
+static int rfc3986_parse_dec_octet(const char **str)
+{
     const char *cur = *str;
 
-    if (!(ISA_DIGIT(cur)))
-        return(1);
-    if (!ISA_DIGIT(cur+1))
-       cur++;
-    else if ((*cur != '0') && (ISA_DIGIT(cur + 1)) && (!ISA_DIGIT(cur+2)))
-       cur += 2;
-    else if ((*cur == '1') && (ISA_DIGIT(cur + 1)) && (ISA_DIGIT(cur + 2)))
-       cur += 3;
-    else if ((*cur == '2') && (*(cur + 1) >= '0') &&
-            (*(cur + 1) <= '4') && (ISA_DIGIT(cur + 2)))
-       cur += 3;
-    else if ((*cur == '2') && (*(cur + 1) == '5') &&
-            (*(cur + 2) >= '0') && (*(cur + 1) <= '5'))
-       cur += 3;
-    else
-        return(1);
+    if (!(ISA_DIGIT(cur))) {
+        return 1;
+    }
+    if (!ISA_DIGIT(cur + 1)) {
+        cur++;
+    } else if ((*cur != '0') && (ISA_DIGIT(cur + 1)) && (!ISA_DIGIT(cur + 2))) {
+        cur += 2;
+    } else if ((*cur == '1') && (ISA_DIGIT(cur + 1)) && (ISA_DIGIT(cur + 2))) {
+        cur += 3;
+    } else if ((*cur == '2') && (*(cur + 1) >= '0') && (*(cur + 1) <= '4') &&
+             (ISA_DIGIT(cur + 2))) {
+        cur += 3;
+    } else if ((*cur == '2') && (*(cur + 1) == '5') && (*(cur + 2) >= '0') &&
+             (*(cur + 1) <= '5')) {
+        cur += 3;
+    } else {
+        return 1;
+    }
     *str = cur;
-    return(0);
+    return 0;
 }
 /**
  * rfc3986_parse_host:
@@ -426,8 +432,7 @@ rfc3986_parse_dec_octet(const char **str) {
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_host(URI *uri, const char **str)
+static int rfc3986_parse_host(URI *uri, const char **str)
 {
     const char *cur = *str;
     const char *host;
@@ -438,56 +443,68 @@ rfc3986_parse_host(URI *uri, const char **str)
      */
     if (*cur == '[') {
         cur++;
-       while ((*cur != ']') && (*cur != 0))
-           cur++;
-       if (*cur != ']')
-           return(1);
-       cur++;
-       goto found;
+        while ((*cur != ']') && (*cur != 0)) {
+            cur++;
+        }
+        if (*cur != ']') {
+            return 1;
+        }
+        cur++;
+        goto found;
     }
     /*
      * try to parse an IPv4
      */
     if (ISA_DIGIT(cur)) {
-        if (rfc3986_parse_dec_octet(&cur) != 0)
-           goto not_ipv4;
-       if (*cur != '.')
-           goto not_ipv4;
-       cur++;
-        if (rfc3986_parse_dec_octet(&cur) != 0)
-           goto not_ipv4;
-       if (*cur != '.')
-           goto not_ipv4;
-        if (rfc3986_parse_dec_octet(&cur) != 0)
-           goto not_ipv4;
-       if (*cur != '.')
-           goto not_ipv4;
-        if (rfc3986_parse_dec_octet(&cur) != 0)
-           goto not_ipv4;
-       goto found;
-not_ipv4:
+        if (rfc3986_parse_dec_octet(&cur) != 0) {
+            goto not_ipv4;
+        }
+        if (*cur != '.') {
+            goto not_ipv4;
+        }
+        cur++;
+        if (rfc3986_parse_dec_octet(&cur) != 0) {
+            goto not_ipv4;
+        }
+        if (*cur != '.') {
+            goto not_ipv4;
+        }
+        if (rfc3986_parse_dec_octet(&cur) != 0) {
+            goto not_ipv4;
+        }
+        if (*cur != '.') {
+            goto not_ipv4;
+        }
+        if (rfc3986_parse_dec_octet(&cur) != 0) {
+            goto not_ipv4;
+        }
+        goto found;
+    not_ipv4:
         cur = *str;
     }
     /*
      * then this should be a hostname which can be empty
      */
-    while (ISA_UNRESERVED(cur) || ISA_PCT_ENCODED(cur) || ISA_SUB_DELIM(cur))
+    while (ISA_UNRESERVED(cur) || ISA_PCT_ENCODED(cur) || ISA_SUB_DELIM(cur)) {
         NEXT(cur);
+    }
 found:
     if (uri != NULL) {
         g_free(uri->authority);
-       uri->authority = NULL;
+        uri->authority = NULL;
         g_free(uri->server);
-       if (cur != host) {
-           if (uri->cleanup & 2)
-               uri->server = g_strndup(host, cur - host);
-           else
-               uri->server = uri_string_unescape(host, cur - host, NULL);
-       } else
-           uri->server = NULL;
+        if (cur != host) {
+            if (uri->cleanup & 2) {
+                uri->server = g_strndup(host, cur - host);
+            } else {
+                uri->server = uri_string_unescape(host, cur - host, NULL);
+            }
+        } else {
+            uri->server = NULL;
+        }
     }
     *str = cur;
-    return(0);
+    return 0;
 }
 
 /**
@@ -502,30 +519,34 @@ found:
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_authority(URI *uri, const char **str)
+static int rfc3986_parse_authority(URI *uri, const char **str)
 {
     const char *cur;
     int ret;
 
     cur = *str;
     /*
-     * try to parse an userinfo and check for the trailing @
+     * try to parse a userinfo and check for the trailing @
      */
     ret = rfc3986_parse_user_info(uri, &cur);
-    if ((ret != 0) || (*cur != '@'))
+    if ((ret != 0) || (*cur != '@')) {
         cur = *str;
-    else
+    } else {
         cur++;
+    }
     ret = rfc3986_parse_host(uri, &cur);
-    if (ret != 0) return(ret);
+    if (ret != 0) {
+        return ret;
+    }
     if (*cur == ':') {
         cur++;
         ret = rfc3986_parse_port(uri, &cur);
-       if (ret != 0) return(ret);
+        if (ret != 0) {
+            return ret;
+        }
     }
     *str = cur;
-    return(0);
+    return 0;
 }
 
 /**
@@ -544,21 +565,22 @@ rfc3986_parse_authority(URI *uri, const char **str)
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_segment(const char **str, char forbid, int empty)
+static int rfc3986_parse_segment(const char **str, char forbid, int empty)
 {
     const char *cur;
 
     cur = *str;
     if (!ISA_PCHAR(cur)) {
-        if (empty)
-           return(0);
-       return(1);
+        if (empty) {
+            return 0;
+        }
+        return 1;
     }
-    while (ISA_PCHAR(cur) && (*cur != forbid))
+    while (ISA_PCHAR(cur) && (*cur != forbid)) {
         NEXT(cur);
+    }
     *str = cur;
-    return (0);
+    return 0;
 }
 
 /**
@@ -573,8 +595,7 @@ rfc3986_parse_segment(const char **str, char forbid, int empty)
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_path_ab_empty(URI *uri, const char **str)
+static int rfc3986_parse_path_ab_empty(URI *uri, const char **str)
 {
     const char *cur;
     int ret;
@@ -583,22 +604,25 @@ rfc3986_parse_path_ab_empty(URI *uri, const char **str)
 
     while (*cur == '/') {
         cur++;
-       ret = rfc3986_parse_segment(&cur, 0, 1);
-       if (ret != 0) return(ret);
+        ret = rfc3986_parse_segment(&cur, 0, 1);
+        if (ret != 0) {
+            return ret;
+        }
     }
     if (uri != NULL) {
         g_free(uri->path);
         if (*str != cur) {
-            if (uri->cleanup & 2)
+            if (uri->cleanup & 2) {
                 uri->path = g_strndup(*str, cur - *str);
-            else
+            } else {
                 uri->path = uri_string_unescape(*str, cur - *str, NULL);
+            }
         } else {
             uri->path = NULL;
         }
     }
     *str = cur;
-    return (0);
+    return 0;
 }
 
 /**
@@ -613,38 +637,41 @@ rfc3986_parse_path_ab_empty(URI *uri, const char **str)
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_path_absolute(URI *uri, const char **str)
+static int rfc3986_parse_path_absolute(URI *uri, const char **str)
 {
     const char *cur;
     int ret;
 
     cur = *str;
 
-    if (*cur != '/')
-        return(1);
+    if (*cur != '/') {
+        return 1;
+    }
     cur++;
     ret = rfc3986_parse_segment(&cur, 0, 0);
     if (ret == 0) {
-       while (*cur == '/') {
-           cur++;
-           ret = rfc3986_parse_segment(&cur, 0, 1);
-           if (ret != 0) return(ret);
-       }
+        while (*cur == '/') {
+            cur++;
+            ret = rfc3986_parse_segment(&cur, 0, 1);
+            if (ret != 0) {
+                return ret;
+            }
+        }
     }
     if (uri != NULL) {
         g_free(uri->path);
         if (cur != *str) {
-            if (uri->cleanup & 2)
+            if (uri->cleanup & 2) {
                 uri->path = g_strndup(*str, cur - *str);
-            else
+            } else {
                 uri->path = uri_string_unescape(*str, cur - *str, NULL);
+            }
         } else {
             uri->path = NULL;
         }
     }
     *str = cur;
-    return (0);
+    return 0;
 }
 
 /**
@@ -659,8 +686,7 @@ rfc3986_parse_path_absolute(URI *uri, const char **str)
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_path_rootless(URI *uri, const char **str)
+static int rfc3986_parse_path_rootless(URI *uri, const char **str)
 {
     const char *cur;
     int ret;
@@ -668,25 +694,30 @@ rfc3986_parse_path_rootless(URI *uri, const char **str)
     cur = *str;
 
     ret = rfc3986_parse_segment(&cur, 0, 0);
-    if (ret != 0) return(ret);
+    if (ret != 0) {
+        return ret;
+    }
     while (*cur == '/') {
         cur++;
-       ret = rfc3986_parse_segment(&cur, 0, 1);
-       if (ret != 0) return(ret);
+        ret = rfc3986_parse_segment(&cur, 0, 1);
+        if (ret != 0) {
+            return ret;
+        }
     }
     if (uri != NULL) {
         g_free(uri->path);
         if (cur != *str) {
-            if (uri->cleanup & 2)
+            if (uri->cleanup & 2) {
                 uri->path = g_strndup(*str, cur - *str);
-            else
+            } else {
                 uri->path = uri_string_unescape(*str, cur - *str, NULL);
+            }
         } else {
             uri->path = NULL;
         }
     }
     *str = cur;
-    return (0);
+    return 0;
 }
 
 /**
@@ -701,8 +732,7 @@ rfc3986_parse_path_rootless(URI *uri, const char **str)
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_path_no_scheme(URI *uri, const char **str)
+static int rfc3986_parse_path_no_scheme(URI *uri, const char **str)
 {
     const char *cur;
     int ret;
@@ -710,25 +740,30 @@ rfc3986_parse_path_no_scheme(URI *uri, const char **str)
     cur = *str;
 
     ret = rfc3986_parse_segment(&cur, ':', 0);
-    if (ret != 0) return(ret);
+    if (ret != 0) {
+        return ret;
+    }
     while (*cur == '/') {
         cur++;
-       ret = rfc3986_parse_segment(&cur, 0, 1);
-       if (ret != 0) return(ret);
+        ret = rfc3986_parse_segment(&cur, 0, 1);
+        if (ret != 0) {
+            return ret;
+        }
     }
     if (uri != NULL) {
         g_free(uri->path);
         if (cur != *str) {
-            if (uri->cleanup & 2)
+            if (uri->cleanup & 2) {
                 uri->path = g_strndup(*str, cur - *str);
-            else
+            } else {
                 uri->path = uri_string_unescape(*str, cur - *str, NULL);
+            }
         } else {
             uri->path = NULL;
         }
     }
     *str = cur;
-    return (0);
+    return 0;
 }
 
 /**
@@ -746,8 +781,7 @@ rfc3986_parse_path_no_scheme(URI *uri, const char **str)
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_hier_part(URI *uri, const char **str)
+static int rfc3986_parse_hier_part(URI *uri, const char **str)
 {
     const char *cur;
     int ret;
@@ -756,27 +790,35 @@ rfc3986_parse_hier_part(URI *uri, const char **str)
 
     if ((*cur == '/') && (*(cur + 1) == '/')) {
         cur += 2;
-       ret = rfc3986_parse_authority(uri, &cur);
-       if (ret != 0) return(ret);
-       ret = rfc3986_parse_path_ab_empty(uri, &cur);
-       if (ret != 0) return(ret);
-       *str = cur;
-       return(0);
+        ret = rfc3986_parse_authority(uri, &cur);
+        if (ret != 0) {
+            return ret;
+        }
+        ret = rfc3986_parse_path_ab_empty(uri, &cur);
+        if (ret != 0) {
+            return ret;
+        }
+        *str = cur;
+        return 0;
     } else if (*cur == '/') {
         ret = rfc3986_parse_path_absolute(uri, &cur);
-       if (ret != 0) return(ret);
+        if (ret != 0) {
+            return ret;
+        }
     } else if (ISA_PCHAR(cur)) {
         ret = rfc3986_parse_path_rootless(uri, &cur);
-       if (ret != 0) return(ret);
+        if (ret != 0) {
+            return ret;
+        }
     } else {
-       /* path-empty is effectively empty */
-       if (uri != NULL) {
+        /* path-empty is effectively empty */
+        if (uri != NULL) {
             g_free(uri->path);
-           uri->path = NULL;
-       }
+            uri->path = NULL;
+        }
     }
     *str = cur;
-    return (0);
+    return 0;
 }
 
 /**
@@ -795,48 +837,59 @@ rfc3986_parse_hier_part(URI *uri, const char **str)
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_relative_ref(URI *uri, const char *str) {
+static int rfc3986_parse_relative_ref(URI *uri, const char *str)
+{
     int ret;
 
     if ((*str == '/') && (*(str + 1) == '/')) {
         str += 2;
-       ret = rfc3986_parse_authority(uri, &str);
-       if (ret != 0) return(ret);
-       ret = rfc3986_parse_path_ab_empty(uri, &str);
-       if (ret != 0) return(ret);
+        ret = rfc3986_parse_authority(uri, &str);
+        if (ret != 0) {
+            return ret;
+        }
+        ret = rfc3986_parse_path_ab_empty(uri, &str);
+        if (ret != 0) {
+            return ret;
+        }
     } else if (*str == '/') {
-       ret = rfc3986_parse_path_absolute(uri, &str);
-       if (ret != 0) return(ret);
+        ret = rfc3986_parse_path_absolute(uri, &str);
+        if (ret != 0) {
+            return ret;
+        }
     } else if (ISA_PCHAR(str)) {
         ret = rfc3986_parse_path_no_scheme(uri, &str);
-       if (ret != 0) return(ret);
+        if (ret != 0) {
+            return ret;
+        }
     } else {
-       /* path-empty is effectively empty */
-       if (uri != NULL) {
+        /* path-empty is effectively empty */
+        if (uri != NULL) {
             g_free(uri->path);
-           uri->path = NULL;
-       }
+            uri->path = NULL;
+        }
     }
 
     if (*str == '?') {
-       str++;
-       ret = rfc3986_parse_query(uri, &str);
-       if (ret != 0) return(ret);
+        str++;
+        ret = rfc3986_parse_query(uri, &str);
+        if (ret != 0) {
+            return ret;
+        }
     }
     if (*str == '#') {
-       str++;
-       ret = rfc3986_parse_fragment(uri, &str);
-       if (ret != 0) return(ret);
+        str++;
+        ret = rfc3986_parse_fragment(uri, &str);
+        if (ret != 0) {
+            return ret;
+        }
     }
     if (*str != 0) {
-       uri_clean(uri);
-       return(1);
+        uri_clean(uri);
+        return 1;
     }
-    return(0);
+    return 0;
 }
 
-
 /**
  * rfc3986_parse:
  * @uri:  pointer to an URI structure
@@ -849,33 +902,41 @@ rfc3986_parse_relative_ref(URI *uri, const char *str) {
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse(URI *uri, const char *str) {
+static int rfc3986_parse(URI *uri, const char *str)
+{
     int ret;
 
     ret = rfc3986_parse_scheme(uri, &str);
-    if (ret != 0) return(ret);
+    if (ret != 0) {
+        return ret;
+    }
     if (*str != ':') {
-       return(1);
+        return 1;
     }
     str++;
     ret = rfc3986_parse_hier_part(uri, &str);
-    if (ret != 0) return(ret);
+    if (ret != 0) {
+        return ret;
+    }
     if (*str == '?') {
-       str++;
-       ret = rfc3986_parse_query(uri, &str);
-       if (ret != 0) return(ret);
+        str++;
+        ret = rfc3986_parse_query(uri, &str);
+        if (ret != 0) {
+            return ret;
+        }
     }
     if (*str == '#') {
-       str++;
-       ret = rfc3986_parse_fragment(uri, &str);
-       if (ret != 0) return(ret);
+        str++;
+        ret = rfc3986_parse_fragment(uri, &str);
+        if (ret != 0) {
+            return ret;
+        }
     }
     if (*str != 0) {
-       uri_clean(uri);
-       return(1);
+        uri_clean(uri);
+        return 1;
     }
-    return(0);
+    return 0;
 }
 
 /**
@@ -890,12 +951,13 @@ rfc3986_parse(URI *uri, const char *str) {
  *
  * Returns 0 or the error code
  */
-static int
-rfc3986_parse_uri_reference(URI *uri, const char *str) {
+static int rfc3986_parse_uri_reference(URI *uri, const char *str)
+{
     int ret;
 
-    if (str == NULL)
-       return(-1);
+    if (str == NULL) {
+        return -1;
+    }
     uri_clean(uri);
 
     /*
@@ -904,14 +966,14 @@ rfc3986_parse_uri_reference(URI *uri, const char *str) {
      */
     ret = rfc3986_parse(uri, str);
     if (ret != 0) {
-       uri_clean(uri);
+        uri_clean(uri);
         ret = rfc3986_parse_relative_ref(uri, str);
-       if (ret != 0) {
-           uri_clean(uri);
-           return(ret);
-       }
+        if (ret != 0) {
+            uri_clean(uri);
+            return ret;
+        }
     }
-    return(0);
+    return 0;
 }
 
 /**
@@ -924,20 +986,21 @@ rfc3986_parse_uri_reference(URI *uri, const char *str) {
  *
  * Returns a newly built URI or NULL in case of error
  */
-URI *
-uri_parse(const char *str) {
+URI *uri_parse(const char *str)
+{
     URI *uri;
     int ret;
 
-    if (str == NULL)
-       return(NULL);
+    if (str == NULL) {
+        return NULL;
+    }
     uri = uri_new();
     ret = rfc3986_parse_uri_reference(uri, str);
     if (ret) {
         uri_free(uri);
-        return(NULL);
+        return NULL;
     }
-    return(uri);
+    return uri;
 }
 
 /**
@@ -952,9 +1015,9 @@ uri_parse(const char *str) {
  *
  * Returns 0 or the error code
  */
-int
-uri_parse_into(URI *uri, const char *str) {
-    return(rfc3986_parse_uri_reference(uri, str));
+int uri_parse_into(URI *uri, const char *str)
+{
+    return rfc3986_parse_uri_reference(uri, str);
 }
 
 /**
@@ -968,13 +1031,14 @@ uri_parse_into(URI *uri, const char *str) {
  *
  * Returns a newly built URI or NULL in case of error
  */
-URI *
-uri_parse_raw(const char *str, int raw) {
+URI *uri_parse_raw(const char *str, int raw)
+{
     URI *uri;
     int ret;
 
-    if (str == NULL)
-       return(NULL);
+    if (str == NULL) {
+        return NULL;
+    }
     uri = uri_new();
     if (raw) {
         uri->cleanup |= 2;
@@ -982,15 +1046,15 @@ uri_parse_raw(const char *str, int raw) {
     ret = uri_parse_into(uri, str);
     if (ret) {
         uri_free(uri);
-        return(NULL);
+        return NULL;
     }
-    return(uri);
+    return uri;
 }
 
 /************************************************************************
- *                                                                     *
- *                     Generic URI structure functions                 *
- *                                                                     *
+ *                                                                      *
+ *                    Generic URI structure functions                   *
+ *                                                                      *
  ************************************************************************/
 
 /**
@@ -1000,12 +1064,9 @@ uri_parse_raw(const char *str, int raw) {
  *
  * Returns the new structure or NULL in case of error
  */
-URI *
-uri_new(void) {
-    URI *ret;
-
-    ret = g_new0(URI, 1);
-    return(ret);
+URI *uri_new(void)
+{
+    return g_new0(URI, 1);
 }
 
 /**
@@ -1014,15 +1075,15 @@ uri_new(void) {
  * Function to handle properly a reallocation when saving an URI
  * Also imposes some limit on the length of an URI string output
  */
-static char *
-realloc2n(char *ret, int *max) {
+static char *realloc2n(char *ret, int *max)
+{
     char *temp;
     int tmp;
 
     tmp = *max * 2;
     temp = g_realloc(ret, (tmp + 1));
     *max = tmp;
-    return(temp);
+    return temp;
 }
 
 /**
@@ -1033,221 +1094,218 @@ realloc2n(char *ret, int *max) {
  *
  * Returns a new string (to be deallocated by caller)
  */
-char *
-uri_to_string(URI *uri) {
+char *uri_to_string(URI *uri)
+{
     char *ret = NULL;
     char *temp;
     const char *p;
     int len;
     int max;
 
-    if (uri == NULL) return(NULL);
-
+    if (uri == NULL) {
+        return NULL;
+    }
 
     max = 80;
     ret = g_malloc(max + 1);
     len = 0;
 
     if (uri->scheme != NULL) {
-       p = uri->scheme;
-       while (*p != 0) {
-           if (len >= max) {
+        p = uri->scheme;
+        while (*p != 0) {
+            if (len >= max) {
                 temp = realloc2n(ret, &max);
-               ret = temp;
-           }
-           ret[len++] = *p++;
-       }
-       if (len >= max) {
+                ret = temp;
+            }
+            ret[len++] = *p++;
+        }
+        if (len >= max) {
             temp = realloc2n(ret, &max);
             ret = temp;
-       }
-       ret[len++] = ':';
+        }
+        ret[len++] = ':';
     }
     if (uri->opaque != NULL) {
-       p = uri->opaque;
-       while (*p != 0) {
-           if (len + 3 >= max) {
+        p = uri->opaque;
+        while (*p != 0) {
+            if (len + 3 >= max) {
                 temp = realloc2n(ret, &max);
                 ret = temp;
-           }
-           if (IS_RESERVED(*(p)) || IS_UNRESERVED(*(p)))
-               ret[len++] = *p++;
-           else {
-               int val = *(unsigned char *)p++;
-               int hi = val / 0x10, lo = val % 0x10;
-               ret[len++] = '%';
-               ret[len++] = hi + (hi > 9? 'A'-10 : '0');
-               ret[len++] = lo + (lo > 9? 'A'-10 : '0');
-           }
-       }
+            }
+            if (IS_RESERVED(*(p)) || IS_UNRESERVED(*(p))) {
+                ret[len++] = *p++;
+            } else {
+                int val = *(unsigned char *)p++;
+                int hi = val / 0x10, lo = val % 0x10;
+                ret[len++] = '%';
+                ret[len++] = hi + (hi > 9 ? 'A' - 10 : '0');
+                ret[len++] = lo + (lo > 9 ? 'A' - 10 : '0');
+            }
+        }
     } else {
-       if (uri->server != NULL) {
-           if (len + 3 >= max) {
+        if (uri->server != NULL) {
+            if (len + 3 >= max) {
                 temp = realloc2n(ret, &max);
                 ret = temp;
-           }
-           ret[len++] = '/';
-           ret[len++] = '/';
-           if (uri->user != NULL) {
-               p = uri->user;
-               while (*p != 0) {
-                   if (len + 3 >= max) {
+            }
+            ret[len++] = '/';
+            ret[len++] = '/';
+            if (uri->user != NULL) {
+                p = uri->user;
+                while (*p != 0) {
+                    if (len + 3 >= max) {
                         temp = realloc2n(ret, &max);
                         ret = temp;
-                   }
-                   if ((IS_UNRESERVED(*(p))) ||
-                       ((*(p) == ';')) || ((*(p) == ':')) ||
-                       ((*(p) == '&')) || ((*(p) == '=')) ||
-                       ((*(p) == '+')) || ((*(p) == '$')) ||
-                       ((*(p) == ',')))
-                       ret[len++] = *p++;
-                   else {
-                       int val = *(unsigned char *)p++;
-                       int hi = val / 0x10, lo = val % 0x10;
-                       ret[len++] = '%';
-                       ret[len++] = hi + (hi > 9? 'A'-10 : '0');
-                       ret[len++] = lo + (lo > 9? 'A'-10 : '0');
-                   }
-               }
-               if (len + 3 >= max) {
+                    }
+                    if ((IS_UNRESERVED(*(p))) || ((*(p) == ';')) ||
+                        ((*(p) == ':')) || ((*(p) == '&')) || ((*(p) == '=')) ||
+                        ((*(p) == '+')) || ((*(p) == '$')) || ((*(p) == ','))) {
+                        ret[len++] = *p++;
+                    } else {
+                        int val = *(unsigned char *)p++;
+                        int hi = val / 0x10, lo = val % 0x10;
+                        ret[len++] = '%';
+                        ret[len++] = hi + (hi > 9 ? 'A' - 10 : '0');
+                        ret[len++] = lo + (lo > 9 ? 'A' - 10 : '0');
+                    }
+                }
+                if (len + 3 >= max) {
                     temp = realloc2n(ret, &max);
                     ret = temp;
-               }
-               ret[len++] = '@';
-           }
-           p = uri->server;
-           while (*p != 0) {
-               if (len >= max) {
+                }
+                ret[len++] = '@';
+            }
+            p = uri->server;
+            while (*p != 0) {
+                if (len >= max) {
                     temp = realloc2n(ret, &max);
                     ret = temp;
-               }
-               ret[len++] = *p++;
-           }
-           if (uri->port > 0) {
-               if (len + 10 >= max) {
+                }
+                ret[len++] = *p++;
+            }
+            if (uri->port > 0) {
+                if (len + 10 >= max) {
                     temp = realloc2n(ret, &max);
                     ret = temp;
-               }
-               len += snprintf(&ret[len], max - len, ":%d", uri->port);
-           }
-       } else if (uri->authority != NULL) {
-           if (len + 3 >= max) {
+                }
+                len += snprintf(&ret[len], max - len, ":%d", uri->port);
+            }
+        } else if (uri->authority != NULL) {
+            if (len + 3 >= max) {
                 temp = realloc2n(ret, &max);
                 ret = temp;
-           }
-           ret[len++] = '/';
-           ret[len++] = '/';
-           p = uri->authority;
-           while (*p != 0) {
-               if (len + 3 >= max) {
+            }
+            ret[len++] = '/';
+            ret[len++] = '/';
+            p = uri->authority;
+            while (*p != 0) {
+                if (len + 3 >= max) {
                     temp = realloc2n(ret, &max);
                     ret = temp;
-               }
-               if ((IS_UNRESERVED(*(p))) ||
-                    ((*(p) == '$')) || ((*(p) == ',')) || ((*(p) == ';')) ||
-                    ((*(p) == ':')) || ((*(p) == '@')) || ((*(p) == '&')) ||
-                    ((*(p) == '=')) || ((*(p) == '+')))
-                   ret[len++] = *p++;
-               else {
-                   int val = *(unsigned char *)p++;
-                   int hi = val / 0x10, lo = val % 0x10;
-                   ret[len++] = '%';
-                   ret[len++] = hi + (hi > 9? 'A'-10 : '0');
-                   ret[len++] = lo + (lo > 9? 'A'-10 : '0');
-               }
-           }
-       } else if (uri->scheme != NULL) {
-           if (len + 3 >= max) {
+                }
+                if ((IS_UNRESERVED(*(p))) || ((*(p) == '$')) ||
+                    ((*(p) == ',')) || ((*(p) == ';')) || ((*(p) == ':')) ||
+                    ((*(p) == '@')) || ((*(p) == '&')) || ((*(p) == '=')) ||
+                    ((*(p) == '+'))) {
+                    ret[len++] = *p++;
+                } else {
+                    int val = *(unsigned char *)p++;
+                    int hi = val / 0x10, lo = val % 0x10;
+                    ret[len++] = '%';
+                    ret[len++] = hi + (hi > 9 ? 'A' - 10 : '0');
+                    ret[len++] = lo + (lo > 9 ? 'A' - 10 : '0');
+                }
+            }
+        } else if (uri->scheme != NULL) {
+            if (len + 3 >= max) {
                 temp = realloc2n(ret, &max);
                 ret = temp;
-           }
-           ret[len++] = '/';
-           ret[len++] = '/';
-       }
-       if (uri->path != NULL) {
-           p = uri->path;
-           /*
-            * the colon in file:///d: should not be escaped or
-            * Windows accesses fail later.
-            */
-           if ((uri->scheme != NULL) &&
-               (p[0] == '/') &&
-               (((p[1] >= 'a') && (p[1] <= 'z')) ||
-                ((p[1] >= 'A') && (p[1] <= 'Z'))) &&
-               (p[2] == ':') &&
-               (!strcmp(uri->scheme, "file"))) {
-               if (len + 3 >= max) {
+            }
+            ret[len++] = '/';
+            ret[len++] = '/';
+        }
+        if (uri->path != NULL) {
+            p = uri->path;
+            /*
+             * the colon in file:///d: should not be escaped or
+             * Windows accesses fail later.
+             */
+            if ((uri->scheme != NULL) && (p[0] == '/') &&
+                (((p[1] >= 'a') && (p[1] <= 'z')) ||
+                 ((p[1] >= 'A') && (p[1] <= 'Z'))) &&
+                (p[2] == ':') && (!strcmp(uri->scheme, "file"))) {
+                if (len + 3 >= max) {
                     temp = realloc2n(ret, &max);
                     ret = temp;
-               }
-               ret[len++] = *p++;
-               ret[len++] = *p++;
-               ret[len++] = *p++;
-           }
-           while (*p != 0) {
-               if (len + 3 >= max) {
+                }
+                ret[len++] = *p++;
+                ret[len++] = *p++;
+                ret[len++] = *p++;
+            }
+            while (*p != 0) {
+                if (len + 3 >= max) {
                     temp = realloc2n(ret, &max);
                     ret = temp;
-               }
-               if ((IS_UNRESERVED(*(p))) || ((*(p) == '/')) ||
+                }
+                if ((IS_UNRESERVED(*(p))) || ((*(p) == '/')) ||
                     ((*(p) == ';')) || ((*(p) == '@')) || ((*(p) == '&')) ||
-                   ((*(p) == '=')) || ((*(p) == '+')) || ((*(p) == '$')) ||
-                   ((*(p) == ',')))
-                   ret[len++] = *p++;
-               else {
-                   int val = *(unsigned char *)p++;
-                   int hi = val / 0x10, lo = val % 0x10;
-                   ret[len++] = '%';
-                   ret[len++] = hi + (hi > 9? 'A'-10 : '0');
-                   ret[len++] = lo + (lo > 9? 'A'-10 : '0');
-               }
-           }
-       }
-       if (uri->query != NULL) {
-           if (len + 1 >= max) {
+                    ((*(p) == '=')) || ((*(p) == '+')) || ((*(p) == '$')) ||
+                    ((*(p) == ','))) {
+                    ret[len++] = *p++;
+                } else {
+                    int val = *(unsigned char *)p++;
+                    int hi = val / 0x10, lo = val % 0x10;
+                    ret[len++] = '%';
+                    ret[len++] = hi + (hi > 9 ? 'A' - 10 : '0');
+                    ret[len++] = lo + (lo > 9 ? 'A' - 10 : '0');
+                }
+            }
+        }
+        if (uri->query != NULL) {
+            if (len + 1 >= max) {
                 temp = realloc2n(ret, &max);
                 ret = temp;
-           }
-           ret[len++] = '?';
-           p = uri->query;
-           while (*p != 0) {
-               if (len + 1 >= max) {
+            }
+            ret[len++] = '?';
+            p = uri->query;
+            while (*p != 0) {
+                if (len + 1 >= max) {
                     temp = realloc2n(ret, &max);
                     ret = temp;
-               }
-               ret[len++] = *p++;
-           }
-       }
+                }
+                ret[len++] = *p++;
+            }
+        }
     }
     if (uri->fragment != NULL) {
-       if (len + 3 >= max) {
+        if (len + 3 >= max) {
             temp = realloc2n(ret, &max);
             ret = temp;
-       }
-       ret[len++] = '#';
-       p = uri->fragment;
-       while (*p != 0) {
-           if (len + 3 >= max) {
+        }
+        ret[len++] = '#';
+        p = uri->fragment;
+        while (*p != 0) {
+            if (len + 3 >= max) {
                 temp = realloc2n(ret, &max);
                 ret = temp;
-           }
-           if ((IS_UNRESERVED(*(p))) || (IS_RESERVED(*(p))))
-               ret[len++] = *p++;
-           else {
-               int val = *(unsigned char *)p++;
-               int hi = val / 0x10, lo = val % 0x10;
-               ret[len++] = '%';
-               ret[len++] = hi + (hi > 9? 'A'-10 : '0');
-               ret[len++] = lo + (lo > 9? 'A'-10 : '0');
-           }
-       }
+            }
+            if ((IS_UNRESERVED(*(p))) || (IS_RESERVED(*(p)))) {
+                ret[len++] = *p++;
+            } else {
+                int val = *(unsigned char *)p++;
+                int hi = val / 0x10, lo = val % 0x10;
+                ret[len++] = '%';
+                ret[len++] = hi + (hi > 9 ? 'A' - 10 : '0');
+                ret[len++] = lo + (lo > 9 ? 'A' - 10 : '0');
+            }
+        }
     }
     if (len >= max) {
         temp = realloc2n(ret, &max);
         ret = temp;
     }
     ret[len] = 0;
-    return(ret);
+    return ret;
 }
 
 /**
@@ -1256,9 +1314,11 @@ uri_to_string(URI *uri) {
  *
  * Make sure the URI struct is free of content
  */
-static void
-uri_clean(URI *uri) {
-    if (uri == NULL) return;
+static void uri_clean(URI *uri)
+{
+    if (uri == NULL) {
+        return;
+    }
 
     g_free(uri->scheme);
     uri->scheme = NULL;
@@ -1284,16 +1344,16 @@ uri_clean(URI *uri) {
  *
  * Free up the URI struct
  */
-void
-uri_free(URI *uri) {
+void uri_free(URI *uri)
+{
     uri_clean(uri);
     g_free(uri);
 }
 
 /************************************************************************
- *                                                                     *
- *                     Helper functions                                *
- *                                                                     *
+ *                                                                      *
+ *                           Helper functions                           *
+ *                                                                      *
  ************************************************************************/
 
 /**
@@ -1307,21 +1367,24 @@ uri_free(URI *uri) {
  *
  * Returns 0 or an error code
  */
-static int
-normalize_uri_path(char *path) {
+static int normalize_uri_path(char *path)
+{
     char *cur, *out;
 
-    if (path == NULL)
-       return(-1);
+    if (path == NULL) {
+        return -1;
+    }
 
     /* Skip all initial "/" chars.  We want to get to the beginning of the
      * first non-empty segment.
      */
     cur = path;
-    while (cur[0] == '/')
-      ++cur;
-    if (cur[0] == '\0')
-      return(0);
+    while (cur[0] == '/') {
+        ++cur;
+    }
+    if (cur[0] == '\0') {
+        return 0;
+    }
 
     /* Keep everything we've seen so far.  */
     out = cur;
@@ -1330,46 +1393,52 @@ normalize_uri_path(char *path) {
      * Analyze each segment in sequence for cases (c) and (d).
      */
     while (cur[0] != '\0') {
-       /*
-        * c) All occurrences of "./", where "." is a complete path segment,
-        *    are removed from the buffer string.
-        */
-       if ((cur[0] == '.') && (cur[1] == '/')) {
-           cur += 2;
-           /* '//' normalization should be done at this point too */
-           while (cur[0] == '/')
-               cur++;
-           continue;
-       }
-
-       /*
-        * d) If the buffer string ends with "." as a complete path segment,
-        *    that "." is removed.
-        */
-       if ((cur[0] == '.') && (cur[1] == '\0'))
-           break;
-
-       /* Otherwise keep the segment.  */
-       while (cur[0] != '/') {
-            if (cur[0] == '\0')
-              goto done_cd;
-           (out++)[0] = (cur++)[0];
-       }
-       /* nomalize // */
-       while ((cur[0] == '/') && (cur[1] == '/'))
-           cur++;
+        /*
+         * c) All occurrences of "./", where "." is a complete path segment,
+         *    are removed from the buffer string.
+         */
+        if ((cur[0] == '.') && (cur[1] == '/')) {
+            cur += 2;
+            /* '//' normalization should be done at this point too */
+            while (cur[0] == '/') {
+                cur++;
+            }
+            continue;
+        }
+
+        /*
+         * d) If the buffer string ends with "." as a complete path segment,
+         *    that "." is removed.
+         */
+        if ((cur[0] == '.') && (cur[1] == '\0')) {
+            break;
+        }
+
+        /* Otherwise keep the segment.  */
+        while (cur[0] != '/') {
+            if (cur[0] == '\0') {
+                goto done_cd;
+            }
+            (out++)[0] = (cur++)[0];
+        }
+        /* nomalize // */
+        while ((cur[0] == '/') && (cur[1] == '/')) {
+            cur++;
+        }
 
         (out++)[0] = (cur++)[0];
     }
- done_cd:
+done_cd:
     out[0] = '\0';
 
     /* Reset to the beginning of the first segment for the next sequence.  */
     cur = path;
-    while (cur[0] == '/')
-      ++cur;
-    if (cur[0] == '\0')
-       return(0);
+    while (cur[0] == '/') {
+        ++cur;
+    }
+    if (cur[0] == '\0') {
+        return 0;
+    }
 
     /*
      * Analyze each segment in sequence for cases (e) and (f).
@@ -1398,24 +1467,26 @@ normalize_uri_path(char *path) {
 
         /* Find the end of the current segment.  */
         segp = cur;
-        while ((segp[0] != '/') && (segp[0] != '\0'))
-          ++segp;
+        while ((segp[0] != '/') && (segp[0] != '\0')) {
+            ++segp;
+        }
 
         /* If this is the last segment, we're done (we need at least two
          * segments to meet the criteria for the (e) and (f) cases).
          */
-        if (segp[0] == '\0')
-          break;
+        if (segp[0] == '\0') {
+            break;
+        }
 
         /* If the first segment is "..", or if the next segment _isn't_ "..",
          * keep this segment and try the next one.
          */
         ++segp;
-        if (((cur[0] == '.') && (cur[1] == '.') && (segp == cur+3))
-            || ((segp[0] != '.') || (segp[1] != '.')
-                || ((segp[2] != '/') && (segp[2] != '\0')))) {
-          cur = segp;
-          continue;
+        if (((cur[0] == '.') && (cur[1] == '.') && (segp == cur + 3)) ||
+            ((segp[0] != '.') || (segp[1] != '.') ||
+             ((segp[2] != '/') && (segp[2] != '\0')))) {
+            cur = segp;
+            continue;
         }
 
         /* If we get here, remove this segment and the next one and back up
@@ -1427,22 +1498,25 @@ normalize_uri_path(char *path) {
 
         /* If this is the end of the buffer, we're done.  */
         if (segp[2] == '\0') {
-          cur[0] = '\0';
-          break;
+            cur[0] = '\0';
+            break;
         }
         /* Valgrind complained, strcpy(cur, segp + 3); */
         /* string will overlap, do not use strcpy */
         tmp = cur;
         segp += 3;
-        while ((*tmp++ = *segp++) != 0)
-          ;
+        while ((*tmp++ = *segp++) != 0) {
+            /* No further work */
+        }
 
         /* If there are no previous segments, then keep going from here.  */
         segp = cur;
-        while ((segp > path) && ((--segp)[0] == '/'))
-          ;
-        if (segp == path)
-          continue;
+        while ((segp > path) && ((--segp)[0] == '/')) {
+            /* No further work */
+        }
+        if (segp == path) {
+            continue;
+        }
 
         /* "segp" is pointing to the end of a previous segment; find it's
          * start.  We need to back up to the previous segment and start
@@ -1452,8 +1526,9 @@ normalize_uri_path(char *path) {
          * remove the "foo/..".
          */
         cur = segp;
-        while ((cur > path) && (cur[-1] != '/'))
-          --cur;
+        while ((cur > path) && (cur[-1] != '/')) {
+            --cur;
+        }
     }
     out[0] = '\0';
 
@@ -1469,31 +1544,33 @@ normalize_uri_path(char *path) {
      * We discard them from the final path.
      */
     if (path[0] == '/') {
-      cur = path;
-      while ((cur[0] == '/') && (cur[1] == '.') && (cur[2] == '.')
-             && ((cur[3] == '/') || (cur[3] == '\0')))
-       cur += 3;
+        cur = path;
+        while ((cur[0] == '/') && (cur[1] == '.') && (cur[2] == '.') &&
+               ((cur[3] == '/') || (cur[3] == '\0'))) {
+            cur += 3;
+        }
 
-      if (cur != path) {
-       out = path;
-       while (cur[0] != '\0')
-          (out++)[0] = (cur++)[0];
-       out[0] = 0;
-      }
+        if (cur != path) {
+            out = path;
+            while (cur[0] != '\0') {
+                (out++)[0] = (cur++)[0];
+            }
+            out[0] = 0;
+        }
     }
 
-    return(0);
+    return 0;
 }
 
-static int is_hex(char c) {
-    if (((c >= '0') && (c <= '9')) ||
-        ((c >= 'a') && (c <= 'f')) ||
-        ((c >= 'A') && (c <= 'F')))
-       return(1);
-    return(0);
+static int is_hex(char c)
+{
+    if (((c >= '0') && (c <= '9')) || ((c >= 'a') && (c <= 'f')) ||
+        ((c >= 'A') && (c <= 'F'))) {
+        return 1;
+    }
+    return 0;
 }
 
-
 /**
  * uri_string_unescape:
  * @str:  the string to unescape
@@ -1508,48 +1585,56 @@ static int is_hex(char c) {
  * Returns a copy of the string, but unescaped, will return NULL only in case
  * of error
  */
-char *
-uri_string_unescape(const char *str, int len, char *target) {
+char *uri_string_unescape(const char *str, int len, char *target)
+{
     char *ret, *out;
     const char *in;
 
-    if (str == NULL)
-       return(NULL);
-    if (len <= 0) len = strlen(str);
-    if (len < 0) return(NULL);
+    if (str == NULL) {
+        return NULL;
+    }
+    if (len <= 0) {
+        len = strlen(str);
+    }
+    if (len < 0) {
+        return NULL;
+    }
 
     if (target == NULL) {
-       ret = g_malloc(len + 1);
-    } else
-       ret = target;
+        ret = g_malloc(len + 1);
+    } else {
+        ret = target;
+    }
     in = str;
     out = ret;
-    while(len > 0) {
-       if ((len > 2) && (*in == '%') && (is_hex(in[1])) && (is_hex(in[2]))) {
-           in++;
-           if ((*in >= '0') && (*in <= '9'))
-               *out = (*in - '0');
-           else if ((*in >= 'a') && (*in <= 'f'))
-               *out = (*in - 'a') + 10;
-           else if ((*in >= 'A') && (*in <= 'F'))
-               *out = (*in - 'A') + 10;
-           in++;
-           if ((*in >= '0') && (*in <= '9'))
-               *out = *out * 16 + (*in - '0');
-           else if ((*in >= 'a') && (*in <= 'f'))
-               *out = *out * 16 + (*in - 'a') + 10;
-           else if ((*in >= 'A') && (*in <= 'F'))
-               *out = *out * 16 + (*in - 'A') + 10;
-           in++;
-           len -= 3;
-           out++;
-       } else {
-           *out++ = *in++;
-           len--;
-       }
+    while (len > 0) {
+        if ((len > 2) && (*in == '%') && (is_hex(in[1])) && (is_hex(in[2]))) {
+            in++;
+            if ((*in >= '0') && (*in <= '9')) {
+                *out = (*in - '0');
+            } else if ((*in >= 'a') && (*in <= 'f')) {
+                *out = (*in - 'a') + 10;
+            } else if ((*in >= 'A') && (*in <= 'F')) {
+                *out = (*in - 'A') + 10;
+            }
+            in++;
+            if ((*in >= '0') && (*in <= '9')) {
+                *out = *out * 16 + (*in - '0');
+            } else if ((*in >= 'a') && (*in <= 'f')) {
+                *out = *out * 16 + (*in - 'a') + 10;
+            } else if ((*in >= 'A') && (*in <= 'F')) {
+                *out = *out * 16 + (*in - 'A') + 10;
+            }
+            in++;
+            len -= 3;
+            out++;
+        } else {
+            *out++ = *in++;
+            len--;
+        }
     }
     *out = 0;
-    return(ret);
+    return ret;
 }
 
 /**
@@ -1562,59 +1647,64 @@ uri_string_unescape(const char *str, int len, char *target) {
  *
  * Returns a new escaped string or NULL in case of error.
  */
-char *
-uri_string_escape(const char *str, const char *list) {
+char *uri_string_escape(const char *str, const char *list)
+{
     char *ret, ch;
     char *temp;
     const char *in;
     int len, out;
 
-    if (str == NULL)
-       return(NULL);
-    if (str[0] == 0)
-       return(g_strdup(str));
+    if (str == NULL) {
+        return NULL;
+    }
+    if (str[0] == 0) {
+        return g_strdup(str);
+    }
     len = strlen(str);
-    if (!(len > 0)) return(NULL);
+    if (!(len > 0)) {
+        return NULL;
+    }
 
     len += 20;
     ret = g_malloc(len);
     in = str;
     out = 0;
-    while(*in != 0) {
-       if (len - out <= 3) {
+    while (*in != 0) {
+        if (len - out <= 3) {
             temp = realloc2n(ret, &len);
-           ret = temp;
-       }
-
-       ch = *in;
-
-       if ((ch != '@') && (!IS_UNRESERVED(ch)) && (!strchr(list, ch))) {
-           unsigned char val;
-           ret[out++] = '%';
-           val = ch >> 4;
-           if (val <= 9)
-               ret[out++] = '0' + val;
-           else
-               ret[out++] = 'A' + val - 0xA;
-           val = ch & 0xF;
-           if (val <= 9)
-               ret[out++] = '0' + val;
-           else
-               ret[out++] = 'A' + val - 0xA;
-           in++;
-       } else {
-           ret[out++] = *in++;
-       }
+            ret = temp;
+        }
 
+        ch = *in;
+
+        if ((ch != '@') && (!IS_UNRESERVED(ch)) && (!strchr(list, ch))) {
+            unsigned char val;
+            ret[out++] = '%';
+            val = ch >> 4;
+            if (val <= 9) {
+                ret[out++] = '0' + val;
+            } else {
+                ret[out++] = 'A' + val - 0xA;
+            }
+            val = ch & 0xF;
+            if (val <= 9) {
+                ret[out++] = '0' + val;
+            } else {
+                ret[out++] = 'A' + val - 0xA;
+            }
+            in++;
+        } else {
+            ret[out++] = *in++;
+        }
     }
     ret[out] = 0;
-    return(ret);
+    return ret;
 }
 
 /************************************************************************
- *                                                                     *
- *                     Public functions                                *
- *                                                                     *
+ *                                                                      *
+ *                           Public functions                           *
+ *                                                                      *
  ************************************************************************/
 
 /**
@@ -1632,8 +1722,8 @@ uri_string_escape(const char *str, const char *list) {
  * Returns a new URI string (to be freed by the caller) or NULL in case
  *         of error.
  */
-char *
-uri_resolve(const char *uri, const char *base) {
+char *uri_resolve(const char *uri, const char *base)
+{
     char *val = NULL;
     int ret, len, indx, cur, out;
     URI *ref = NULL;
@@ -1648,44 +1738,46 @@ uri_resolve(const char *uri, const char *base) {
      *    as a reference to "." rather than as a synonym for the current
      *    URI.  Should we do that here?
      */
-    if (uri == NULL)
-       ret = -1;
-    else {
-       if (*uri) {
-           ref = uri_new();
-           ret = uri_parse_into(ref, uri);
-       }
-       else
-           ret = 0;
-    }
-    if (ret != 0)
-       goto done;
+    if (uri == NULL) {
+        ret = -1;
+    } else {
+        if (*uri) {
+            ref = uri_new();
+            ret = uri_parse_into(ref, uri);
+        } else {
+            ret = 0;
+        }
+    }
+    if (ret != 0) {
+        goto done;
+    }
     if ((ref != NULL) && (ref->scheme != NULL)) {
-       /*
-        * The URI is absolute don't modify.
-        */
-       val = g_strdup(uri);
-       goto done;
-    }
-    if (base == NULL)
-       ret = -1;
-    else {
-       bas = uri_new();
-       ret = uri_parse_into(bas, base);
+        /*
+         * The URI is absolute don't modify.
+         */
+        val = g_strdup(uri);
+        goto done;
+    }
+    if (base == NULL) {
+        ret = -1;
+    else {
+        bas = uri_new();
+        ret = uri_parse_into(bas, base);
     }
     if (ret != 0) {
-       if (ref)
-           val = uri_to_string(ref);
-       goto done;
+        if (ref) {
+            val = uri_to_string(ref);
+        }
+        goto done;
     }
     if (ref == NULL) {
-       /*
-        * the base fragment must be ignored
-        */
+        /*
+         * the base fragment must be ignored
+         */
         g_free(bas->fragment);
         bas->fragment = NULL;
-       val = uri_to_string(bas);
-       goto done;
+        val = uri_to_string(bas);
+        goto done;
     }
 
     /*
@@ -1702,23 +1794,23 @@ uri_resolve(const char *uri, const char *base) {
      */
     res = uri_new();
     if ((ref->scheme == NULL) && (ref->path == NULL) &&
-       ((ref->authority == NULL) && (ref->server == NULL))) {
+        ((ref->authority == NULL) && (ref->server == NULL))) {
         res->scheme = g_strdup(bas->scheme);
-       if (bas->authority != NULL)
-           res->authority = g_strdup(bas->authority);
-       else if (bas->server != NULL) {
+        if (bas->authority != NULL) {
+            res->authority = g_strdup(bas->authority);
+        } else if (bas->server != NULL) {
             res->server = g_strdup(bas->server);
             res->user = g_strdup(bas->user);
             res->port = bas->port;
-       }
+        }
         res->path = g_strdup(bas->path);
         if (ref->query != NULL) {
-           res->query = g_strdup (ref->query);
+            res->query = g_strdup(ref->query);
         } else {
             res->query = g_strdup(bas->query);
         }
         res->fragment = g_strdup(ref->fragment);
-       goto step_7;
+        goto step_7;
     }
 
     /*
@@ -1728,8 +1820,8 @@ uri_resolve(const char *uri, const char *base) {
      *    scheme is inherited from the base URI's scheme component.
      */
     if (ref->scheme != NULL) {
-       val = uri_to_string(ref);
-       goto done;
+        val = uri_to_string(ref);
+        goto done;
     }
     res->scheme = g_strdup(bas->scheme);
 
@@ -1744,22 +1836,22 @@ uri_resolve(const char *uri, const char *base) {
      *    use an authority component.
      */
     if ((ref->authority != NULL) || (ref->server != NULL)) {
-       if (ref->authority != NULL)
-           res->authority = g_strdup(ref->authority);
-       else {
-           res->server = g_strdup(ref->server);
+        if (ref->authority != NULL) {
+            res->authority = g_strdup(ref->authority);
+        } else {
+            res->server = g_strdup(ref->server);
             res->user = g_strdup(ref->user);
             res->port = ref->port;
-       }
+        }
         res->path = g_strdup(ref->path);
-       goto step_7;
+        goto step_7;
     }
-    if (bas->authority != NULL)
-       res->authority = g_strdup(bas->authority);
-    else if (bas->server != NULL) {
+    if (bas->authority != NULL) {
+        res->authority = g_strdup(bas->authority);
+    else if (bas->server != NULL) {
         res->server = g_strdup(bas->server);
         res->user = g_strdup(bas->user);
-       res->port = bas->port;
+        res->port = bas->port;
     }
 
     /*
@@ -1767,11 +1859,10 @@ uri_resolve(const char *uri, const char *base) {
      *    the reference is an absolute-path and we skip to step 7.
      */
     if ((ref->path != NULL) && (ref->path[0] == '/')) {
-       res->path = g_strdup(ref->path);
-       goto step_7;
+        res->path = g_strdup(ref->path);
+        goto step_7;
     }
 
-
     /*
      * 6) If this step is reached, then we are resolving a relative-path
      *    reference.  The relative path needs to be merged with the base
@@ -1781,10 +1872,12 @@ uri_resolve(const char *uri, const char *base) {
      * Allocate a buffer large enough for the result string.
      */
     len = 2; /* extra / and 0 */
-    if (ref->path != NULL)
-       len += strlen(ref->path);
-    if (bas->path != NULL)
-       len += strlen(bas->path);
+    if (ref->path != NULL) {
+        len += strlen(ref->path);
+    }
+    if (bas->path != NULL) {
+        len += strlen(bas->path);
+    }
     res->path = g_malloc(len);
     res->path[0] = 0;
 
@@ -1796,18 +1889,20 @@ uri_resolve(const char *uri, const char *base) {
     cur = 0;
     out = 0;
     if (bas->path != NULL) {
-       while (bas->path[cur] != 0) {
-           while ((bas->path[cur] != 0) && (bas->path[cur] != '/'))
-               cur++;
-           if (bas->path[cur] == 0)
-               break;
-
-           cur++;
-           while (out < cur) {
-               res->path[out] = bas->path[out];
-               out++;
-           }
-       }
+        while (bas->path[cur] != 0) {
+            while ((bas->path[cur] != 0) && (bas->path[cur] != '/')) {
+                cur++;
+            }
+            if (bas->path[cur] == 0) {
+                break;
+            }
+
+            cur++;
+            while (out < cur) {
+                res->path[out] = bas->path[out];
+                out++;
+            }
+        }
     }
     res->path[out] = 0;
 
@@ -1816,15 +1911,16 @@ uri_resolve(const char *uri, const char *base) {
      *    string.
      */
     if (ref->path != NULL && ref->path[0] != 0) {
-       indx = 0;
-       /*
-        * Ensure the path includes a '/'
-        */
-       if ((out == 0) && (bas->server != NULL))
-           res->path[out++] = '/';
-       while (ref->path[indx] != 0) {
-           res->path[out++] = ref->path[indx++];
-       }
+        indx = 0;
+        /*
+         * Ensure the path includes a '/'
+         */
+        if ((out == 0) && (bas->server != NULL)) {
+            res->path[out++] = '/';
+        }
+        while (ref->path[indx] != 0) {
+            res->path[out++] = ref->path[indx++];
+        }
     }
     res->path[out] = 0;
 
@@ -1843,13 +1939,16 @@ step_7:
     val = uri_to_string(res);
 
 done:
-    if (ref != NULL)
-       uri_free(ref);
-    if (bas != NULL)
-       uri_free(bas);
-    if (res != NULL)
-       uri_free(res);
-    return(val);
+    if (ref != NULL) {
+        uri_free(ref);
+    }
+    if (bas != NULL) {
+        uri_free(bas);
+    }
+    if (res != NULL) {
+        uri_free(res);
+    }
+    return val;
 }
 
 /**
@@ -1884,8 +1983,7 @@ done:
  * Returns a new URI string (to be freed by the caller) or NULL in case
  * error.
  */
-char *
-uri_resolve_relative (const char *uri, const char * base)
+char *uri_resolve_relative(const char *uri, const char *base)
 {
     char *val = NULL;
     int ret;
@@ -1898,59 +1996,63 @@ uri_resolve_relative (const char *uri, const char * base)
     char *bptr, *uptr, *vptr;
     int remove_path = 0;
 
-    if ((uri == NULL) || (*uri == 0))
-       return NULL;
+    if ((uri == NULL) || (*uri == 0)) {
+        return NULL;
+    }
 
     /*
      * First parse URI into a standard form
      */
-    ref = uri_new ();
+    ref = uri_new();
     /* If URI not already in "relative" form */
     if (uri[0] != '.') {
-       ret = uri_parse_into (ref, uri);
-       if (ret != 0)
-           goto done;          /* Error in URI, return NULL */
-    } else
-       ref->path = g_strdup(uri);
+        ret = uri_parse_into(ref, uri);
+        if (ret != 0) {
+            goto done; /* Error in URI, return NULL */
+        }
+    } else {
+        ref->path = g_strdup(uri);
+    }
 
     /*
      * Next parse base into the same standard form
      */
     if ((base == NULL) || (*base == 0)) {
-       val = g_strdup (uri);
-       goto done;
+        val = g_strdup(uri);
+        goto done;
     }
-    bas = uri_new ();
+    bas = uri_new();
     if (base[0] != '.') {
-       ret = uri_parse_into (bas, base);
-       if (ret != 0)
-           goto done;          /* Error in base, return NULL */
-    } else
-       bas->path = g_strdup(base);
+        ret = uri_parse_into(bas, base);
+        if (ret != 0) {
+            goto done; /* Error in base, return NULL */
+        }
+    } else {
+        bas->path = g_strdup(base);
+    }
 
     /*
      * If the scheme / server on the URI differs from the base,
      * just return the URI
      */
     if ((ref->scheme != NULL) &&
-       ((bas->scheme == NULL) ||
-        (strcmp (bas->scheme, ref->scheme)) ||
-        (strcmp (bas->server, ref->server)))) {
-       val = g_strdup (uri);
-       goto done;
+        ((bas->scheme == NULL) || (strcmp(bas->scheme, ref->scheme)) ||
+         (strcmp(bas->server, ref->server)))) {
+        val = g_strdup(uri);
+        goto done;
     }
     if (bas->path == ref->path ||
         (bas->path && ref->path && !strcmp(bas->path, ref->path))) {
-       val = g_strdup("");
-       goto done;
+        val = g_strdup("");
+        goto done;
     }
     if (bas->path == NULL) {
-       val = g_strdup(ref->path);
-       goto done;
+        val = g_strdup(ref->path);
+        goto done;
     }
     if (ref->path == NULL) {
-        ref->path = (char *) "/";
-       remove_path = 1;
+        ref->path = (char *)"/";
+        remove_path = 1;
     }
 
     /*
@@ -1960,78 +2062,88 @@ uri_resolve_relative (const char *uri, const char * base)
      * two path components may be missing (bug 316224)
      */
     if (bas->path == NULL) {
-       if (ref->path != NULL) {
-           uptr = ref->path;
-           if (*uptr == '/')
-               uptr++;
-           /* exception characters from uri_to_string */
-           val = uri_string_escape(uptr, "/;&=+$,");
-       }
-       goto done;
+        if (ref->path != NULL) {
+            uptr = ref->path;
+            if (*uptr == '/') {
+                uptr++;
+            }
+            /* exception characters from uri_to_string */
+            val = uri_string_escape(uptr, "/;&=+$,");
+        }
+        goto done;
     }
     bptr = bas->path;
     if (ref->path == NULL) {
-       for (ix = 0; bptr[ix] != 0; ix++) {
-           if (bptr[ix] == '/')
-               nbslash++;
-       }
-       uptr = NULL;
-       len = 1;        /* this is for a string terminator only */
+        for (ix = 0; bptr[ix] != 0; ix++) {
+            if (bptr[ix] == '/') {
+                nbslash++;
+            }
+        }
+        uptr = NULL;
+        len = 1; /* this is for a string terminator only */
     } else {
-    /*
-     * Next we compare the two strings and find where they first differ
-     */
-       if ((ref->path[pos] == '.') && (ref->path[pos+1] == '/'))
+        /*
+         * Next we compare the two strings and find where they first differ
+         */
+        if ((ref->path[pos] == '.') && (ref->path[pos + 1] == '/')) {
             pos += 2;
-       if ((*bptr == '.') && (bptr[1] == '/'))
+        }
+        if ((*bptr == '.') && (bptr[1] == '/')) {
             bptr += 2;
-       else if ((*bptr == '/') && (ref->path[pos] != '/'))
-           bptr++;
-       while ((bptr[pos] == ref->path[pos]) && (bptr[pos] != 0))
-           pos++;
-
-       if (bptr[pos] == ref->path[pos]) {
-           val = g_strdup("");
-           goto done;          /* (I can't imagine why anyone would do this) */
-       }
-
-       /*
-        * In URI, "back up" to the last '/' encountered.  This will be the
-        * beginning of the "unique" suffix of URI
-        */
-       ix = pos;
-       if ((ref->path[ix] == '/') && (ix > 0))
-           ix--;
-       else if ((ref->path[ix] == 0) && (ix > 1) && (ref->path[ix - 1] == '/'))
-           ix -= 2;
-       for (; ix > 0; ix--) {
-           if (ref->path[ix] == '/')
-               break;
-       }
-       if (ix == 0) {
-           uptr = ref->path;
-       } else {
-           ix++;
-           uptr = &ref->path[ix];
-       }
-
-       /*
-        * In base, count the number of '/' from the differing point
-        */
-       if (bptr[pos] != ref->path[pos]) {/* check for trivial URI == base */
-           for (; bptr[ix] != 0; ix++) {
-               if (bptr[ix] == '/')
-                   nbslash++;
-           }
-       }
-       len = strlen (uptr) + 1;
+        } else if ((*bptr == '/') && (ref->path[pos] != '/')) {
+            bptr++;
+        }
+        while ((bptr[pos] == ref->path[pos]) && (bptr[pos] != 0)) {
+            pos++;
+        }
+
+        if (bptr[pos] == ref->path[pos]) {
+            val = g_strdup("");
+            goto done; /* (I can't imagine why anyone would do this) */
+        }
+
+        /*
+         * In URI, "back up" to the last '/' encountered.  This will be the
+         * beginning of the "unique" suffix of URI
+         */
+        ix = pos;
+        if ((ref->path[ix] == '/') && (ix > 0)) {
+            ix--;
+        } else if ((ref->path[ix] == 0) && (ix > 1)
+                && (ref->path[ix - 1] == '/')) {
+            ix -= 2;
+        }
+        for (; ix > 0; ix--) {
+            if (ref->path[ix] == '/') {
+                break;
+            }
+        }
+        if (ix == 0) {
+            uptr = ref->path;
+        } else {
+            ix++;
+            uptr = &ref->path[ix];
+        }
+
+        /*
+         * In base, count the number of '/' from the differing point
+         */
+        if (bptr[pos] != ref->path[pos]) { /* check for trivial URI == base */
+            for (; bptr[ix] != 0; ix++) {
+                if (bptr[ix] == '/') {
+                    nbslash++;
+                }
+            }
+        }
+        len = strlen(uptr) + 1;
     }
 
     if (nbslash == 0) {
-       if (uptr != NULL)
-           /* exception characters from uri_to_string */
-           val = uri_string_escape(uptr, "/;&=+$,");
-       goto done;
+        if (uptr != NULL) {
+            /* exception characters from uri_to_string */
+            val = uri_string_escape(uptr, "/;&=+$,");
+        }
+        goto done;
     }
 
     /*
@@ -2039,35 +2151,35 @@ uri_resolve_relative (const char *uri, const char * base)
      * length of the remainder of the URI, plus enough space
      * for the "../" groups, plus one for the terminator
      */
-    val = g_malloc (len + 3 * nbslash);
+    val = g_malloc(len + 3 * nbslash);
     vptr = val;
     /*
      * Put in as many "../" as needed
      */
-    for (; nbslash>0; nbslash--) {
-       *vptr++ = '.';
-       *vptr++ = '.';
-       *vptr++ = '/';
+    for (; nbslash > 0; nbslash--) {
+        *vptr++ = '.';
+        *vptr++ = '.';
+        *vptr++ = '/';
     }
     /*
      * Finish up with the end of the URI
      */
     if (uptr != NULL) {
-        if ((vptr > val) && (len > 0) &&
-           (uptr[0] == '/') && (vptr[-1] == '/')) {
-           memcpy (vptr, uptr + 1, len - 1);
-           vptr[len - 2] = 0;
-       } else {
-           memcpy (vptr, uptr, len);
-           vptr[len - 1] = 0;
-       }
+        if ((vptr > val) && (len > 0) && (uptr[0] == '/') &&
+            (vptr[-1] == '/')) {
+            memcpy(vptr, uptr + 1, len - 1);
+            vptr[len - 2] = 0;
+        } else {
+            memcpy(vptr, uptr, len);
+            vptr[len - 1] = 0;
+        }
     } else {
-       vptr[len - 1] = 0;
+        vptr[len - 1] = 0;
     }
 
     /* escape the freshly-built path */
     vptr = val;
-       /* exception characters from uri_to_string */
+    /* exception characters from uri_to_string */
     val = uri_string_escape(vptr, "/;&=+$,");
     g_free(vptr);
 
@@ -2075,12 +2187,15 @@ done:
     /*
      * Free the working variables
      */
-    if (remove_path != 0)
+    if (remove_path != 0) {
         ref->path = NULL;
-    if (ref != NULL)
-       uri_free (ref);
-    if (bas != NULL)
-       uri_free (bas);
+    }
+    if (ref != NULL) {
+        uri_free(ref);
+    }
+    if (bas != NULL) {
+        uri_free(bas);
+    }
 
     return val;
 }
@@ -2089,12 +2204,13 @@ done:
  * Utility functions to help parse and assemble query strings.
  */
 
-struct QueryParams *
-query_params_new (int init_alloc)
+struct QueryParams *query_params_new(int init_alloc)
 {
     struct QueryParams *ps;
 
-    if (init_alloc <= 0) init_alloc = 1;
+    if (init_alloc <= 0) {
+        init_alloc = 1;
+    }
 
     ps = g_new(QueryParams, 1);
     ps->n = 0;
@@ -2107,9 +2223,8 @@ query_params_new (int init_alloc)
 /* Ensure there is space to store at least one more parameter
  * at the end of the set.
  */
-static int
-query_params_append (struct QueryParams *ps,
-               const char *name, const char *value)
+static int query_params_append(struct QueryParams *ps, const char *name,
+                               const char *value)
 {
     if (ps->n >= ps->alloc) {
         ps->p = g_renew(QueryParam, ps->p, ps->alloc * 2);
@@ -2124,80 +2239,85 @@ query_params_append (struct QueryParams *ps,
     return 0;
 }
 
-void
-query_params_free (struct QueryParams *ps)
+void query_params_free(struct QueryParams *ps)
 {
     int i;
 
     for (i = 0; i < ps->n; ++i) {
-        g_free (ps->p[i].name);
-        g_free (ps->p[i].value);
+        g_free(ps->p[i].name);
+        g_free(ps->p[i].value);
     }
-    g_free (ps->p);
-    g_free (ps);
+    g_free(ps->p);
+    g_free(ps);
 }
 
-struct QueryParams *
-query_params_parse (const char *query)
+struct QueryParams *query_params_parse(const char *query)
 {
     struct QueryParams *ps;
     const char *end, *eq;
 
-    ps = query_params_new (0);
-    if (!query || query[0] == '\0') return ps;
+    ps = query_params_new(0);
+    if (!query || query[0] == '\0') {
+        return ps;
+    }
 
     while (*query) {
         char *name = NULL, *value = NULL;
 
         /* Find the next separator, or end of the string. */
-        end = strchr (query, '&');
-        if (!end)
-            end = strchr (query, ';');
-        if (!end)
-            end = query + strlen (query);
+        end = strchr(query, '&');
+        if (!end) {
+            end = qemu_strchrnul(query, ';');
+        }
 
         /* Find the first '=' character between here and end. */
-        eq = strchr (query, '=');
-        if (eq && eq >= end) eq = NULL;
+        eq = strchr(query, '=');
+        if (eq && eq >= end) {
+            eq = NULL;
+        }
 
         /* Empty section (eg. "&&"). */
-        if (end == query)
+        if (end == query) {
             goto next;
+        }
 
         /* If there is no '=' character, then we have just "name"
          * and consistent with CGI.pm we assume value is "".
          */
         else if (!eq) {
-            name = uri_string_unescape (query, end - query, NULL);
+            name = uri_string_unescape(query, end - query, NULL);
             value = NULL;
         }
         /* Or if we have "name=" here (works around annoying
          * problem when calling uri_string_unescape with len = 0).
          */
-        else if (eq+1 == end) {
-            name = uri_string_unescape (query, eq - query, NULL);
+        else if (eq + 1 == end) {
+            name = uri_string_unescape(query, eq - query, NULL);
             value = g_new0(char, 1);
         }
         /* If the '=' character is at the beginning then we have
          * "=value" and consistent with CGI.pm we _ignore_ this.
          */
-        else if (query == eq)
+        else if (query == eq) {
             goto next;
+        }
 
         /* Otherwise it's "name=value". */
         else {
-            name = uri_string_unescape (query, eq - query, NULL);
-            value = uri_string_unescape (eq+1, end - (eq+1), NULL);
+            name = uri_string_unescape(query, eq - query, NULL);
+            value = uri_string_unescape(eq + 1, end - (eq + 1), NULL);
         }
 
         /* Append to the parameter set. */
-        query_params_append (ps, name, value);
+        query_params_append(ps, name, value);
         g_free(name);
         g_free(value);
 
     next:
         query = end;
-        if (*query) query ++; /* skip '&' separator */
+        if (*query) {
+            query++; /* skip '&' separator */
+        }
     }
 
     return ps;