s3:net registry: polish output of net registry enumerate[_recursive]
authorMichael Adam <obnox@samba.org>
Mon, 30 May 2011 14:54:47 +0000 (16:54 +0200)
committerKarolin Seeger <kseeger@samba.org>
Tue, 21 Jun 2011 17:58:05 +0000 (19:58 +0200)
so that net registry enumerate output is as before, and
net registry enumerate_recursive is formatted more nicely
(cherry picked from commit 0d746f653e76de52985d543a15fd6ee3bf2f4823)

Fix bug: #8193

source3/utils/net_registry.c

index ecfa5e6a8cb0d111371ba047daf1fde73f7d8127..0acd8c4c3089b9848024c6da14921af5dab45912 100644 (file)
@@ -138,17 +138,19 @@ static WERROR registry_enumkey(struct registry_key* parent, const char* keyname,
                goto done;
        }
 
-       printf("[%s]\n", key->key->name);
-
-       for (count = 0;
-            werr = reg_enumkey(ctx, key, count, &subkey_name, &modtime),
-            W_ERROR_IS_OK(werr);
-            count++)
-       {
-               print_registry_key(subkey_name, &modtime);
-       }
-       if (!W_ERROR_EQUAL(WERR_NO_MORE_ITEMS, werr)) {
-               goto done;
+       if (recursive) {
+               printf("[%s]\n\n", key->key->name);
+       } else {
+               for (count = 0;
+                    werr = reg_enumkey(ctx, key, count, &subkey_name, &modtime),
+                    W_ERROR_IS_OK(werr);
+                    count++)
+               {
+                       print_registry_key(subkey_name, &modtime);
+               }
+               if (!W_ERROR_EQUAL(WERR_NO_MORE_ITEMS, werr)) {
+                       goto done;
+               }
        }
 
        for (count = 0;
@@ -180,7 +182,9 @@ static WERROR registry_enumkey(struct registry_key* parent, const char* keyname,
        if (!W_ERROR_EQUAL(WERR_NO_MORE_ITEMS, werr)) {
                goto done;
        }
+
        werr = WERR_OK;
+
 done:
        TALLOC_FREE(ctx);
        return werr;