We are going to want to reuse this.  No functional change right now.

It currently has a hidden memory leak if --normalize is used.

Signed-off-by: Ian Jackson <[email protected]>
---
 builtin/check-ref-format.c | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/builtin/check-ref-format.c b/builtin/check-ref-format.c
index eac4994..4d56caa 100644
--- a/builtin/check-ref-format.c
+++ b/builtin/check-ref-format.c
@@ -48,12 +48,22 @@ static int check_ref_format_branch(const char *arg)
        return 0;
 }
 
+static int normalize = 0;
+static int flags = 0;
+
+static int check_one_ref_format(const char *refname)
+{
+       if (normalize)
+               refname = collapse_slashes(refname);
+       if (check_refname_format(refname, flags))
+               return 1;
+       if (normalize)
+               printf("%s\n", refname);
+}
+
 int cmd_check_ref_format(int argc, const char **argv, const char *prefix)
 {
        int i;
-       int normalize = 0;
-       int flags = 0;
-       const char *refname;
 
        if (argc == 2 && !strcmp(argv[1], "-h"))
                usage(builtin_check_ref_format_usage);
@@ -76,13 +86,5 @@ int cmd_check_ref_format(int argc, const char **argv, const 
char *prefix)
        if (! (i == argc - 1))
                usage(builtin_check_ref_format_usage);
 
-       refname = argv[i];
-       if (normalize)
-               refname = collapse_slashes(refname);
-       if (check_refname_format(refname, flags))
-               return 1;
-       if (normalize)
-               printf("%s\n", refname);
-
-       return 0;
+       return check_one_ref_format(argv[i]);
 }
-- 
2.10.1

Reply via email to