diff --git a/argparse/argparse.c b/argparse/argparse.c
index 82bdc7d3d0d398f249e8234ce0965c548339feb3..2d75c4a3bb56a78ee38a61a2732cce055178579c 100644
--- a/argparse/argparse.c
+++ b/argparse/argparse.c
@@ -5,404 +5,374 @@
  * Use of this source code is governed by a MIT-style license that can be found
  * in the LICENSE file.
  */
+#include "argparse.h"
+#include <assert.h>
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <assert.h>
-#include <errno.h>
-#include "argparse.h"
 
 #define OPT_UNSET 1
-#define OPT_LONG  (1 << 1)
+#define OPT_LONG (1 << 1)
 
-static const char *
-prefix_skip(const char *str, const char *prefix)
-{
-    size_t len = strlen(prefix);
-    return strncmp(str, prefix, len) ? NULL : str + len;
+static const char *prefix_skip(const char *str, const char *prefix) {
+  size_t len = strlen(prefix);
+  return strncmp(str, prefix, len) ? NULL : str + len;
 }
 
-static int
-prefix_cmp(const char *str, const char *prefix)
-{
-    for (;; str++, prefix++)
-        if (!*prefix) {
-            return 0;
-        } else if (*str != *prefix) {
-            return (unsigned char)*prefix - (unsigned char)*str;
-        }
+static int prefix_cmp(const char *str, const char *prefix) {
+  for (;; str++, prefix++)
+    if (!*prefix) {
+      return 0;
+    } else if (*str != *prefix) {
+      return (unsigned char)*prefix - (unsigned char)*str;
+    }
 }
 
-static void
-argparse_error(struct argparse *self, const struct argparse_option *opt,
-               const char *reason, int flags)
-{
-    (void)self;
-    if (flags & OPT_LONG) {
-        fprintf(stderr, "error: option `--%s` %s\n", opt->long_name, reason);
-    } else {
-        fprintf(stderr, "error: option `-%c` %s\n", opt->short_name, reason);
-    }
-    exit(1);
+static void argparse_error(struct argparse *self,
+                           const struct argparse_option *opt,
+                           const char *reason, int flags) {
+  (void)self;
+  if (flags & OPT_LONG) {
+    fprintf(stderr, "error: option `--%s` %s\n", opt->long_name, reason);
+  } else {
+    fprintf(stderr, "error: option `-%c` %s\n", opt->short_name, reason);
+  }
+  exit(1);
 }
 
-static int
-argparse_getvalue(struct argparse *self, const struct argparse_option *opt,
-                  int flags)
-{
-    const char *s = NULL;
-    if (!opt->value)
-        goto skipped;
-    switch (opt->type) {
+static int argparse_getvalue(struct argparse *self,
+                             const struct argparse_option *opt, int flags) {
+  const char *s = NULL;
+  if (!opt->value) goto skipped;
+  switch (opt->type) {
     case ARGPARSE_OPT_BOOLEAN:
-        if (flags & OPT_UNSET) {
-            *(int *)opt->value = *(int *)opt->value - 1;
-        } else {
-            *(int *)opt->value = *(int *)opt->value + 1;
-        }
-        if (*(int *)opt->value < 0) {
-            *(int *)opt->value = 0;
-        }
-        break;
+      if (flags & OPT_UNSET) {
+        *(int *)opt->value = *(int *)opt->value - 1;
+      } else {
+        *(int *)opt->value = *(int *)opt->value + 1;
+      }
+      if (*(int *)opt->value < 0) {
+        *(int *)opt->value = 0;
+      }
+      break;
     case ARGPARSE_OPT_BIT:
-        if (flags & OPT_UNSET) {
-            *(int *)opt->value &= ~opt->data;
-        } else {
-            *(int *)opt->value |= opt->data;
-        }
-        break;
+      if (flags & OPT_UNSET) {
+        *(int *)opt->value &= ~opt->data;
+      } else {
+        *(int *)opt->value |= opt->data;
+      }
+      break;
     case ARGPARSE_OPT_STRING:
-        if (self->optvalue) {
-            *(const char **)opt->value = self->optvalue;
-            self->optvalue             = NULL;
-        } else if (self->argc > 1) {
-            self->argc--;
-            *(const char **)opt->value = *++self->argv;
-        } else {
-            argparse_error(self, opt, "requires a value", flags);
-        }
-        break;
+      if (self->optvalue) {
+        *(const char **)opt->value = self->optvalue;
+        self->optvalue = NULL;
+      } else if (self->argc > 1) {
+        self->argc--;
+        *(const char **)opt->value = *++self->argv;
+      } else {
+        argparse_error(self, opt, "requires a value", flags);
+      }
+      break;
     case ARGPARSE_OPT_INTEGER:
-        errno = 0;
-        if (self->optvalue) {
-            *(int *)opt->value = strtol(self->optvalue, (char **)&s, 0);
-            self->optvalue     = NULL;
-        } else if (self->argc > 1) {
-            self->argc--;
-            *(int *)opt->value = strtol(*++self->argv, (char **)&s, 0);
-        } else {
-            argparse_error(self, opt, "requires a value", flags);
-        }
-        if (errno)
-            argparse_error(self, opt, strerror(errno), flags);
-        if (s[0] != '\0')
-            argparse_error(self, opt, "expects an integer value", flags);
-        break;
+      errno = 0;
+      if (self->optvalue) {
+        *(int *)opt->value = strtol(self->optvalue, (char **)&s, 0);
+        self->optvalue = NULL;
+      } else if (self->argc > 1) {
+        self->argc--;
+        *(int *)opt->value = strtol(*++self->argv, (char **)&s, 0);
+      } else {
+        argparse_error(self, opt, "requires a value", flags);
+      }
+      if (errno) argparse_error(self, opt, strerror(errno), flags);
+      if (s[0] != '\0')
+        argparse_error(self, opt, "expects an integer value", flags);
+      break;
     case ARGPARSE_OPT_FLOAT:
-        errno = 0;
-        if (self->optvalue) {
-            *(float *)opt->value = strtof(self->optvalue, (char **)&s);
-            self->optvalue     = NULL;
-        } else if (self->argc > 1) {
-            self->argc--;
-            *(float *)opt->value = strtof(*++self->argv, (char **)&s);
-        } else {
-            argparse_error(self, opt, "requires a value", flags);
-        }
-        if (errno)
-            argparse_error(self, opt, strerror(errno), flags);
-        if (s[0] != '\0')
-            argparse_error(self, opt, "expects a numerical value", flags);
-        break;
+      errno = 0;
+      if (self->optvalue) {
+        *(float *)opt->value = strtof(self->optvalue, (char **)&s);
+        self->optvalue = NULL;
+      } else if (self->argc > 1) {
+        self->argc--;
+        *(float *)opt->value = strtof(*++self->argv, (char **)&s);
+      } else {
+        argparse_error(self, opt, "requires a value", flags);
+      }
+      if (errno) argparse_error(self, opt, strerror(errno), flags);
+      if (s[0] != '\0')
+        argparse_error(self, opt, "expects a numerical value", flags);
+      break;
     default:
-        assert(0);
-    }
+      assert(0);
+  }
 
 skipped:
-    if (opt->callback) {
-        return opt->callback(self, opt);
-    }
+  if (opt->callback) {
+    return opt->callback(self, opt);
+  }
 
-    return 0;
+  return 0;
 }
 
-static void
-argparse_options_check(const struct argparse_option *options)
-{
-    for (; options->type != ARGPARSE_OPT_END; options++) {
-        switch (options->type) {
-        case ARGPARSE_OPT_END:
-        case ARGPARSE_OPT_BOOLEAN:
-        case ARGPARSE_OPT_BIT:
-        case ARGPARSE_OPT_INTEGER:
-        case ARGPARSE_OPT_FLOAT:
-        case ARGPARSE_OPT_STRING:
-        case ARGPARSE_OPT_GROUP:
-            continue;
-        default:
-            fprintf(stderr, "wrong option type: %d", options->type);
-            break;
-        }
+static void argparse_options_check(const struct argparse_option *options) {
+  for (; options->type != ARGPARSE_OPT_END; options++) {
+    switch (options->type) {
+      case ARGPARSE_OPT_END:
+      case ARGPARSE_OPT_BOOLEAN:
+      case ARGPARSE_OPT_BIT:
+      case ARGPARSE_OPT_INTEGER:
+      case ARGPARSE_OPT_FLOAT:
+      case ARGPARSE_OPT_STRING:
+      case ARGPARSE_OPT_GROUP:
+        continue;
+      default:
+        fprintf(stderr, "wrong option type: %d", options->type);
+        break;
     }
+  }
 }
 
-static int
-argparse_short_opt(struct argparse *self, const struct argparse_option *options)
-{
-    for (; options->type != ARGPARSE_OPT_END; options++) {
-        if (options->short_name == *self->optvalue) {
-            self->optvalue = self->optvalue[1] ? self->optvalue + 1 : NULL;
-            return argparse_getvalue(self, options, 0);
-        }
+static int argparse_short_opt(struct argparse *self,
+                              const struct argparse_option *options) {
+  for (; options->type != ARGPARSE_OPT_END; options++) {
+    if (options->short_name == *self->optvalue) {
+      self->optvalue = self->optvalue[1] ? self->optvalue + 1 : NULL;
+      return argparse_getvalue(self, options, 0);
     }
-    return -2;
+  }
+  return -2;
 }
 
-static int
-argparse_long_opt(struct argparse *self, const struct argparse_option *options)
-{
-    for (; options->type != ARGPARSE_OPT_END; options++) {
-        const char *rest;
-        int opt_flags = 0;
-        if (!options->long_name)
-            continue;
+static int argparse_long_opt(struct argparse *self,
+                             const struct argparse_option *options) {
+  for (; options->type != ARGPARSE_OPT_END; options++) {
+    const char *rest;
+    int opt_flags = 0;
+    if (!options->long_name) continue;
 
-        rest = prefix_skip(self->argv[0] + 2, options->long_name);
-        if (!rest) {
-            // negation disabled?
-            if (options->flags & OPT_NONEG) {
-                continue;
-            }
-            // only OPT_BOOLEAN/OPT_BIT supports negation
-            if (options->type != ARGPARSE_OPT_BOOLEAN && options->type !=
-                ARGPARSE_OPT_BIT) {
-                continue;
-            }
+    rest = prefix_skip(self->argv[0] + 2, options->long_name);
+    if (!rest) {
+      // negation disabled?
+      if (options->flags & OPT_NONEG) {
+        continue;
+      }
+      // only OPT_BOOLEAN/OPT_BIT supports negation
+      if (options->type != ARGPARSE_OPT_BOOLEAN &&
+          options->type != ARGPARSE_OPT_BIT) {
+        continue;
+      }
 
-            if (prefix_cmp(self->argv[0] + 2, "no-")) {
-                continue;
-            }
-            rest = prefix_skip(self->argv[0] + 2 + 3, options->long_name);
-            if (!rest)
-                continue;
-            opt_flags |= OPT_UNSET;
-        }
-        if (*rest) {
-            if (*rest != '=')
-                continue;
-            self->optvalue = rest + 1;
-        }
-        return argparse_getvalue(self, options, opt_flags | OPT_LONG);
+      if (prefix_cmp(self->argv[0] + 2, "no-")) {
+        continue;
+      }
+      rest = prefix_skip(self->argv[0] + 2 + 3, options->long_name);
+      if (!rest) continue;
+      opt_flags |= OPT_UNSET;
+    }
+    if (*rest) {
+      if (*rest != '=') continue;
+      self->optvalue = rest + 1;
     }
-    return -2;
+    return argparse_getvalue(self, options, opt_flags | OPT_LONG);
+  }
+  return -2;
 }
 
-int
-argparse_init(struct argparse *self, struct argparse_option *options,
-              const char *const *usages, int flags)
-{
-    memset(self, 0, sizeof(*self));
-    self->options     = options;
-    self->usages      = usages;
-    self->flags       = flags;
-    self->description = NULL;
-    self->epilog      = NULL;
-    return 0;
+int argparse_init(struct argparse *self, struct argparse_option *options,
+                  const char *const *usages, int flags) {
+  memset(self, 0, sizeof(*self));
+  self->options = options;
+  self->usages = usages;
+  self->flags = flags;
+  self->description = NULL;
+  self->epilog = NULL;
+  return 0;
 }
 
-void
-argparse_describe(struct argparse *self, const char *description,
-                  const char *epilog)
-{
-    self->description = description;
-    self->epilog      = epilog;
+void argparse_describe(struct argparse *self, const char *description,
+                       const char *epilog) {
+  self->description = description;
+  self->epilog = epilog;
 }
 
-int
-argparse_parse(struct argparse *self, int argc, const char **argv)
-{
-    self->argc = argc - 1;
-    self->argv = argv + 1;
-    self->out  = argv;
+int argparse_parse(struct argparse *self, int argc, const char **argv) {
+  self->argc = argc - 1;
+  self->argv = argv + 1;
+  self->out = argv;
 
-    argparse_options_check(self->options);
+  argparse_options_check(self->options);
 
-    for (; self->argc; self->argc--, self->argv++) {
-        const char *arg = self->argv[0];
-        if (arg[0] != '-' || !arg[1]) {
-            if (self->flags & ARGPARSE_STOP_AT_NON_OPTION) {
-                goto end;
-            }
-            // if it's not option or is a single char '-', copy verbatim
-            self->out[self->cpidx++] = self->argv[0];
-            continue;
-        }
-        // short option
-        if (arg[1] != '-') {
-            self->optvalue = arg + 1;
-            switch (argparse_short_opt(self, self->options)) {
-            case -1:
-                break;
-            case -2:
-                goto unknown;
-            }
-            while (self->optvalue) {
-                switch (argparse_short_opt(self, self->options)) {
-                case -1:
-                    break;
-                case -2:
-                    goto unknown;
-                }
-            }
-            continue;
-        }
-        // if '--' presents
-        if (!arg[2]) {
-            self->argc--;
-            self->argv++;
-            break;
-        }
-        // long option
-        switch (argparse_long_opt(self, self->options)) {
+  for (; self->argc; self->argc--, self->argv++) {
+    const char *arg = self->argv[0];
+    if (arg[0] != '-' || !arg[1]) {
+      if (self->flags & ARGPARSE_STOP_AT_NON_OPTION) {
+        goto end;
+      }
+      // if it's not option or is a single char '-', copy verbatim
+      self->out[self->cpidx++] = self->argv[0];
+      continue;
+    }
+    // short option
+    if (arg[1] != '-') {
+      self->optvalue = arg + 1;
+      switch (argparse_short_opt(self, self->options)) {
         case -1:
-            break;
+          break;
         case -2:
+          goto unknown;
+      }
+      while (self->optvalue) {
+        switch (argparse_short_opt(self, self->options)) {
+          case -1:
+            break;
+          case -2:
             goto unknown;
         }
-        continue;
-
-unknown:
-        fprintf(stderr, "error: unknown option `%s`\n", self->argv[0]);
-        argparse_usage(self);
-        exit(1);
+      }
+      continue;
+    }
+    // if '--' presents
+    if (!arg[2]) {
+      self->argc--;
+      self->argv++;
+      break;
     }
+    // long option
+    switch (argparse_long_opt(self, self->options)) {
+      case -1:
+        break;
+      case -2:
+        goto unknown;
+    }
+    continue;
+
+  unknown:
+    fprintf(stderr, "error: unknown option `%s`\n", self->argv[0]);
+    argparse_usage(self);
+    exit(1);
+  }
 
 end:
-    memmove(self->out + self->cpidx, self->argv,
-            self->argc * sizeof(*self->out));
-    self->out[self->cpidx + self->argc] = NULL;
+  memmove(self->out + self->cpidx, self->argv, self->argc * sizeof(*self->out));
+  self->out[self->cpidx + self->argc] = NULL;
 
-    return self->cpidx + self->argc;
+  return self->cpidx + self->argc;
 }
 
-void
-argparse_usage(struct argparse *self)
-{
-    if (self->usages) {
-        fprintf(stdout, "Usage: %s\n", *self->usages++);
-        while (*self->usages && **self->usages)
-            fprintf(stdout, "   or: %s\n", *self->usages++);
-    } else {
-        fprintf(stdout, "Usage:\n");
-    }
+void argparse_usage(struct argparse *self) {
+  if (self->usages) {
+    fprintf(stdout, "Usage: %s\n", *self->usages++);
+    while (*self->usages && **self->usages)
+      fprintf(stdout, "   or: %s\n", *self->usages++);
+  } else {
+    fprintf(stdout, "Usage:\n");
+  }
 
-    // print description
-    if (self->description)
-        fprintf(stdout, "%s\n", self->description);
+  // print description
+  if (self->description) fprintf(stdout, "%s\n", self->description);
 
-    fputc('\n', stdout);
+  fputc('\n', stdout);
 
-    const struct argparse_option *options;
+  const struct argparse_option *options;
 
-    // figure out best width
-    size_t usage_opts_width = 0;
-    size_t len;
-    options = self->options;
-    for (; options->type != ARGPARSE_OPT_END; options++) {
-        len = 0;
-        if ((options)->short_name) {
-            len += 2;
-        }
-        if ((options)->short_name && (options)->long_name) {
-            len += 2;           // separator ", "
-        }
-        if ((options)->long_name) {
-            len += strlen((options)->long_name) + 2;
-        }
-        if (options->type == ARGPARSE_OPT_INTEGER) {
-            len += strlen("=<int>");
-        }
-        if (options->type == ARGPARSE_OPT_FLOAT) {
-            len += strlen("=<flt>");
-        } else if (options->type == ARGPARSE_OPT_STRING) {
-            len += strlen("=<str>");
-        }
-        len = (len + 3) - ((len + 3) & 3);
-        if (usage_opts_width < len) {
-            usage_opts_width = len;
-        }
+  // figure out best width
+  size_t usage_opts_width = 0;
+  size_t len;
+  options = self->options;
+  for (; options->type != ARGPARSE_OPT_END; options++) {
+    len = 0;
+    if ((options)->short_name) {
+      len += 2;
+    }
+    if ((options)->short_name && (options)->long_name) {
+      len += 2;  // separator ", "
+    }
+    if ((options)->long_name) {
+      len += strlen((options)->long_name) + 2;
     }
-    usage_opts_width += 4;      // 4 spaces prefix
+    if (options->type == ARGPARSE_OPT_INTEGER) {
+      len += strlen("=<int>");
+    }
+    if (options->type == ARGPARSE_OPT_FLOAT) {
+      len += strlen("=<flt>");
+    } else if (options->type == ARGPARSE_OPT_STRING) {
+      len += strlen("=<str>");
+    }
+    len = (len + 3) - ((len + 3) & 3);
+    if (usage_opts_width < len) {
+      usage_opts_width = len;
+    }
+  }
+  usage_opts_width += 4;  // 4 spaces prefix
 
-    options = self->options;
-    for (; options->type != ARGPARSE_OPT_END; options++) {
-        size_t pos = 0;
-        int pad    = 0;
-        if (options->type == ARGPARSE_OPT_GROUP) {
-            fputc('\n', stdout);
-            fprintf(stdout, "%s", options->help);
-            fputc('\n', stdout);
-            continue;
-        }
-        pos = fprintf(stdout, "    ");
-        if (options->short_name) {
-            pos += fprintf(stdout, "-%c", options->short_name);
-        }
-        if (options->long_name && options->short_name) {
-            pos += fprintf(stdout, ", ");
-        }
-        if (options->long_name) {
-            pos += fprintf(stdout, "--%s", options->long_name);
-        }
-        if (options->type == ARGPARSE_OPT_INTEGER) {
-            pos += fprintf(stdout, "=<int>");
-        }
-        if (options->type == ARGPARSE_OPT_FLOAT) {
-            pos += fprintf(stdout, "=<flt>");
-        } else if (options->type == ARGPARSE_OPT_STRING) {
-            pos += fprintf(stdout, "=<str>");
-        }
-        if (pos <= usage_opts_width) {
-            pad = usage_opts_width - pos;
-        } else {
-            fputc('\n', stdout);
-            pad = usage_opts_width;
+  options = self->options;
+  for (; options->type != ARGPARSE_OPT_END; options++) {
+    size_t pos = 0;
+    int pad = 0;
+    if (options->type == ARGPARSE_OPT_GROUP) {
+      fputc('\n', stdout);
+      fprintf(stdout, "%s", options->help);
+      fputc('\n', stdout);
+      continue;
+    }
+    pos = fprintf(stdout, "    ");
+    if (options->short_name) {
+      pos += fprintf(stdout, "-%c", options->short_name);
+    }
+    if (options->long_name && options->short_name) {
+      pos += fprintf(stdout, ", ");
+    }
+    if (options->long_name) {
+      pos += fprintf(stdout, "--%s", options->long_name);
+    }
+    if (options->type == ARGPARSE_OPT_INTEGER) {
+      pos += fprintf(stdout, "=<int>");
+    }
+    if (options->type == ARGPARSE_OPT_FLOAT) {
+      pos += fprintf(stdout, "=<flt>");
+    } else if (options->type == ARGPARSE_OPT_STRING) {
+      pos += fprintf(stdout, "=<str>");
+    }
+    if (pos <= usage_opts_width) {
+      pad = usage_opts_width - pos;
+    } else {
+      fputc('\n', stdout);
+      pad = usage_opts_width;
+    }
+    if (options->help != NULL && strlen(options->help) > 0) {
+      char *str = strdup(options->help);
+      char *token = strtok(str, " ");
+      fprintf(stdout, "%*s%s ", pad + 2, "", token);
+      int count = strlen(token);
+      int dangling = 1;
+      while ((token = strtok(NULL, " ")) != NULL) {
+        if (count == 0) {
+          fprintf(stdout, "%*s", (int)pos + pad + 2, "");
+          dangling = 1;
         }
-        if (options->help != NULL && strlen(options->help) > 0) {
-            char *str = strdup(options->help);
-            char *token = strtok(str, " ");
-            fprintf(stdout, "%*s%s ", pad + 2, "", token);
-            int count = strlen(token);
-            int dangling = 1;
-            while ((token = strtok(NULL, " ")) != NULL) {
-                if (count == 0) {
-                    fprintf(stdout, "%*s", (int)pos + pad + 2, "");
-                    dangling = 1;
-                }
-                printf("%s ", token);
-                count += strlen(token);
-                if (count > 30) {
-                    count = 0;
-                    fprintf(stdout, "\n");
-                    dangling = 0;
-                }
-            }
-            if (dangling) fprintf(stdout, "\n"); 
-        } else {
-            fprintf(stdout, "\n");
+        printf("%s ", token);
+        count += strlen(token);
+        if (count > 30) {
+          count = 0;
+          fprintf(stdout, "\n");
+          dangling = 0;
         }
-        
+      }
+      if (dangling) fprintf(stdout, "\n");
+    } else {
+      fprintf(stdout, "\n");
     }
+  }
 
-    // print epilog
-    if (self->epilog)
-        fprintf(stdout, "%s\n", self->epilog);
+  // print epilog
+  if (self->epilog) fprintf(stdout, "%s\n", self->epilog);
 }
 
-int
-argparse_help_cb(struct argparse *self, const struct argparse_option *option)
-{
-    (void)option;
-    argparse_usage(self);
-    exit(0);
+int argparse_help_cb(struct argparse *self,
+                     const struct argparse_option *option) {
+  (void)option;
+  argparse_usage(self);
+  exit(0);
 }
diff --git a/argparse/argparse.h b/argparse/argparse.h
index 7fff31db001f373e566ebd51bc944b353ca343d4..186214b4bc90cea90ef141380bf0017cc50af128 100644
--- a/argparse/argparse.h
+++ b/argparse/argparse.h
@@ -18,36 +18,36 @@ extern "C" {
 struct argparse;
 struct argparse_option;
 
-typedef int argparse_callback (struct argparse *self,
-                               const struct argparse_option *option);
+typedef int argparse_callback(struct argparse *self,
+                              const struct argparse_option *option);
 
 enum argparse_flag {
-    ARGPARSE_STOP_AT_NON_OPTION = 1,
+  ARGPARSE_STOP_AT_NON_OPTION = 1,
 };
 
 enum argparse_option_type {
-    /* special */
-    ARGPARSE_OPT_END,
-    ARGPARSE_OPT_GROUP,
-    /* options with no arguments */
-    ARGPARSE_OPT_BOOLEAN,
-    ARGPARSE_OPT_BIT,
-    /* options with arguments (optional or required) */
-    ARGPARSE_OPT_INTEGER,
-    ARGPARSE_OPT_FLOAT,
-    ARGPARSE_OPT_STRING,
+  /* special */
+  ARGPARSE_OPT_END,
+  ARGPARSE_OPT_GROUP,
+  /* options with no arguments */
+  ARGPARSE_OPT_BOOLEAN,
+  ARGPARSE_OPT_BIT,
+  /* options with arguments (optional or required) */
+  ARGPARSE_OPT_INTEGER,
+  ARGPARSE_OPT_FLOAT,
+  ARGPARSE_OPT_STRING,
 };
 
 enum argparse_option_flags {
-    OPT_NONEG = 1,              /* disable negation */
+  OPT_NONEG = 1, /* disable negation */
 };
 
 /**
  *  argparse option
  *
  *  `type`:
- *    holds the type of the option, you must have an ARGPARSE_OPT_END last in your
- *    array.
+ *    holds the type of the option, you must have an ARGPARSE_OPT_END last in
+ * your array.
  *
  *  `short_name`:
  *    the character to use as a short option name, '\0' if none.
@@ -72,32 +72,32 @@ enum argparse_option_flags {
  *    option flags.
  */
 struct argparse_option {
-    enum argparse_option_type type;
-    const char short_name;
-    const char *long_name;
-    void *value;
-    const char *help;
-    argparse_callback *callback;
-    intptr_t data;
-    int flags;
+  enum argparse_option_type type;
+  const char short_name;
+  const char *long_name;
+  void *value;
+  const char *help;
+  argparse_callback *callback;
+  intptr_t data;
+  int flags;
 };
 
 /**
  * argpparse
  */
 struct argparse {
-    // user supplied
-    const struct argparse_option *options;
-    const char *const *usages;
-    int flags;
-    const char *description;    // a description after usage
-    const char *epilog;         // a description at the end
-    // internal context
-    int argc;
-    const char **argv;
-    const char **out;
-    int cpidx;
-    const char *optvalue;       // current option value
+  // user supplied
+  const struct argparse_option *options;
+  const char *const *usages;
+  int flags;
+  const char *description;  // a description after usage
+  const char *epilog;       // a description at the end
+  // internal context
+  int argc;
+  const char **argv;
+  const char **out;
+  int cpidx;
+  const char *optvalue;  // current option value
 };
 
 // built-in callbacks
@@ -105,16 +105,23 @@ int argparse_help_cb(struct argparse *self,
                      const struct argparse_option *option);
 
 // built-in option macros
-#define OPT_END()        { ARGPARSE_OPT_END, 0, NULL, NULL, 0, NULL, 0, 0 }
-#define OPT_BOOLEAN(...) { ARGPARSE_OPT_BOOLEAN, __VA_ARGS__ }
-#define OPT_BIT(...)     { ARGPARSE_OPT_BIT, __VA_ARGS__ }
-#define OPT_INTEGER(...) { ARGPARSE_OPT_INTEGER, __VA_ARGS__ }
-#define OPT_FLOAT(...)   { ARGPARSE_OPT_FLOAT, __VA_ARGS__ }
-#define OPT_STRING(...)  { ARGPARSE_OPT_STRING, __VA_ARGS__ }
-#define OPT_GROUP(h)     { ARGPARSE_OPT_GROUP, 0, NULL, NULL, h, NULL, 0, 0 }
-#define OPT_HELP()       OPT_BOOLEAN('h', "help", NULL,                 \
-                                     "show this help message and exit", \
-                                     argparse_help_cb, 0, 0)
+#define OPT_END() \
+  { ARGPARSE_OPT_END, 0, NULL, NULL, 0, NULL, 0, 0 }
+#define OPT_BOOLEAN(...) \
+  { ARGPARSE_OPT_BOOLEAN, __VA_ARGS__ }
+#define OPT_BIT(...) \
+  { ARGPARSE_OPT_BIT, __VA_ARGS__ }
+#define OPT_INTEGER(...) \
+  { ARGPARSE_OPT_INTEGER, __VA_ARGS__ }
+#define OPT_FLOAT(...) \
+  { ARGPARSE_OPT_FLOAT, __VA_ARGS__ }
+#define OPT_STRING(...) \
+  { ARGPARSE_OPT_STRING, __VA_ARGS__ }
+#define OPT_GROUP(h) \
+  { ARGPARSE_OPT_GROUP, 0, NULL, NULL, h, NULL, 0, 0 }
+#define OPT_HELP()                                                  \
+  OPT_BOOLEAN('h', "help", NULL, "show this help message and exit", \
+              argparse_help_cb, 0, 0)
 
 int argparse_init(struct argparse *self, struct argparse_option *options,
                   const char *const *usages, int flags);
diff --git a/argparse/test_argparse.c b/argparse/test_argparse.c
index bb1827ff3e58cbe4337cfcc098d8419bf40baaaf..5f411833aafa603d085258f11b8bbb35ff1c6d39 100644
--- a/argparse/test_argparse.c
+++ b/argparse/test_argparse.c
@@ -9,76 +9,72 @@ static const char *const usages[] = {
     NULL,
 };
 
-#define PERM_READ  (1<<0)
-#define PERM_WRITE (1<<1)
-#define PERM_EXEC  (1<<2)
+#define PERM_READ (1 << 0)
+#define PERM_WRITE (1 << 1)
+#define PERM_EXEC (1 << 2)
 
 struct stuff {
-    const char *path[10];
-    int npath;
+  const char *path[10];
+  int npath;
 };
 
-static int callback(struct argparse *self, const struct argparse_option *opt)
-{
-    printf("Called back... %s\n", *(char **)opt->value);
-    struct stuff *data = (struct stuff *)opt->data;
-    data->path[data->npath] = *(char **)opt->value;
-    data->npath++;
-    return 1;
+static int callback(struct argparse *self, const struct argparse_option *opt) {
+  printf("Called back... %s\n", *(char **)opt->value);
+  struct stuff *data = (struct stuff *)opt->data;
+  data->path[data->npath] = *(char **)opt->value;
+  data->npath++;
+  return 1;
 }
 
-int
-main(int argc, const char **argv)
-{
-    int force = 0;
-    int self_gravity = 0;
-    int int_num = 0;
-    float flt_num = 0.f;
-    struct stuff data;
-    data.npath = 0;
-    data.path[0] = NULL;
-    const char *buffer;
-    int perms = 0;
-    int npath;
+int main(int argc, const char **argv) {
+  int force = 0;
+  int self_gravity = 0;
+  int int_num = 0;
+  float flt_num = 0.f;
+  struct stuff data;
+  data.npath = 0;
+  data.path[0] = NULL;
+  const char *buffer;
+  int perms = 0;
+  int npath;
 
-    struct argparse_option options[] = {
-        OPT_HELP(),
-        OPT_GROUP("Basic options"),
-        OPT_BOOLEAN('f', "force", &force, "force to do", NULL, 0, 0),
-        OPT_BOOLEAN(0, "self-gravity", &self_gravity, "use self gravity",
-                    NULL, 0, 0),
-        OPT_STRING('P', "path", &buffer, "path to read", &callback,
-                   (intptr_t)&data , 0),
-        OPT_INTEGER('i', "int", &int_num, "selected integer", NULL, 0, 0),
-        OPT_FLOAT('s', "float", &flt_num, "selected float", NULL, 0, 0),
-        OPT_END(),
-    };
+  struct argparse_option options[] = {
+      OPT_HELP(),
+      OPT_GROUP("Basic options"),
+      OPT_BOOLEAN('f', "force", &force, "force to do", NULL, 0, 0),
+      OPT_BOOLEAN(0, "self-gravity", &self_gravity, "use self gravity", NULL, 0,
+                  0),
+      OPT_STRING('P', "path", &buffer, "path to read", &callback,
+                 (intptr_t)&data, 0),
+      OPT_INTEGER('i', "int", &int_num, "selected integer", NULL, 0, 0),
+      OPT_FLOAT('s', "float", &flt_num, "selected float", NULL, 0, 0),
+      OPT_END(),
+  };
 
-    struct argparse argparse;
-    argparse_init(&argparse, options, usages, 0);
-    argparse_describe(&argparse, "\nA brief description of what the program does and how it works.", "\nAdditional description of the program after the description of the arguments.");
-    argc = argparse_parse(&argparse, argc, argv);
-    if (force != 0)
-        printf("force: %d\n", force);
-    if (self_gravity != 0)
-        printf("self_gravity: %d\n", self_gravity);
-    if (data.npath > 0) {
-        for (int i = 0 ; i < data.npath; i++)
-            printf("path: %s\n", data.path[i]);
+  struct argparse argparse;
+  argparse_init(&argparse, options, usages, 0);
+  argparse_describe(
+      &argparse,
+      "\nA brief description of what the program does and how it works.",
+      "\nAdditional description of the program after the description of the "
+      "arguments.");
+  argc = argparse_parse(&argparse, argc, argv);
+  if (force != 0) printf("force: %d\n", force);
+  if (self_gravity != 0) printf("self_gravity: %d\n", self_gravity);
+  if (data.npath > 0) {
+    for (int i = 0; i < data.npath; i++) printf("path: %s\n", data.path[i]);
+  }
+  if (int_num != 0) printf("int_num: %d\n", int_num);
+  if (flt_num != 0) printf("flt_num: %g\n", flt_num);
+  if (argc != 0) {
+    printf("argc: %d\n", argc);
+    int i;
+    for (i = 0; i < argc; i++) {
+      printf("argv[%d]: %s\n", i, *(argv + i));
     }
-    if (int_num != 0)
-        printf("int_num: %d\n", int_num);
-    if (flt_num != 0)
-        printf("flt_num: %g\n", flt_num);
-    if (argc != 0) {
-        printf("argc: %d\n", argc);
-        int i;
-        for (i = 0; i < argc; i++) {
-            printf("argv[%d]: %s\n", i, *(argv + i));
-        }
-    }
-    if (perms) {
-        printf("perms: %d\n", perms);
-    }
-    return 0;
+  }
+  if (perms) {
+    printf("perms: %d\n", perms);
+  }
+  return 0;
 }