]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/lib/arg.c (grub_arg_parse): Remove nested function.
authorVladimir Serbinenko <phcoder@gmail.com>
Thu, 7 Nov 2013 01:46:23 +0000 (02:46 +0100)
committerVladimir Serbinenko <phcoder@gmail.com>
Thu, 7 Nov 2013 01:46:23 +0000 (02:46 +0100)
ChangeLog
grub-core/lib/arg.c

index 89b0bb3fdcd7befe4433ba0dcb6bafd8c4188af3..8593942a88c14e42f8414e5c378dee6ca0c2d5a3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-11-07  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * grub-core/lib/arg.c (grub_arg_parse): Remove nested function.
+
 2013-11-07  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/normal/cmdline.c (grub_cmdline_get):
index 9cc18dc2e5a7b5d4021550f52ed19d853c6decf7..8684de4007098a140eed7e397a1c85ef3996f9d4 100644 (file)
@@ -212,6 +212,22 @@ parse_option (grub_extcmd_t cmd, const struct grub_arg_option *opt,
   return 0;
 }
 
+static inline grub_err_t
+add_arg (char ***argl, int *num, char *s)
+{
+  char **p = *argl;
+  *argl = grub_realloc (*argl, (++(*num) + 1) * sizeof (char *));
+  if (! *argl)
+    {
+      grub_free (p);
+      return grub_errno;
+    }
+  (*argl)[(*num) - 1] = s;
+  (*argl)[(*num)] = NULL;
+  return 0;
+}
+
+
 int
 grub_arg_parse (grub_extcmd_t cmd, int argc, char **argv,
                struct grub_arg_list *usr, char ***args, int *argnum)
@@ -220,22 +236,6 @@ grub_arg_parse (grub_extcmd_t cmd, int argc, char **argv,
   int arglen;
   char **argl = 0;
   int num = 0;
-  auto grub_err_t add_arg (char *s);
-
-  grub_err_t add_arg (char *s)
-    {
-      char **p = argl;
-      argl = grub_realloc (argl, (++num + 1) * sizeof (char *));
-      if (! argl)
-       {
-         grub_free (p);
-         return grub_errno;
-       }
-      argl[num - 1] = s;
-      argl[num] = NULL;
-      return 0;
-    }
-
 
   for (curarg = 0; curarg < argc; curarg++)
     {
@@ -247,7 +247,7 @@ grub_arg_parse (grub_extcmd_t cmd, int argc, char **argv,
       if ((num && (cmd->cmd->flags & GRUB_COMMAND_OPTIONS_AT_START))
          || arg[0] != '-' || grub_strlen (arg) == 1)
        {
-         if (add_arg (arg) != 0)
+         if (add_arg (&argl, &num, arg) != 0)
            goto fail;
 
          continue;
@@ -266,7 +266,7 @@ grub_arg_parse (grub_extcmd_t cmd, int argc, char **argv,
            
              if (*curshort)
                {
-                 if (add_arg (arg) != 0)
+                 if (add_arg (&argl, &num, arg) != 0)
                    goto fail;
                  continue;
                }
@@ -319,7 +319,7 @@ grub_arg_parse (grub_extcmd_t cmd, int argc, char **argv,
          if (grub_strlen (arg) == 2)
            {
              for (curarg++; curarg < argc; curarg++)
-               if (add_arg (argv[curarg]) != 0)
+               if (add_arg (&argl, &num, argv[curarg]) != 0)
                  goto fail;
              break;
            }
@@ -341,7 +341,7 @@ grub_arg_parse (grub_extcmd_t cmd, int argc, char **argv,
 
          if (!opt && (cmd->cmd->flags & GRUB_COMMAND_ACCEPT_DASH))
            {
-             if (add_arg (arg) != 0)
+             if (add_arg (&argl, &num, arg) != 0)
                goto fail;
              continue;
            }