diff options
author | Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de> | 2008-09-13 12:26:03 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-09-21 23:17:59 +0200 |
commit | 92e1574d3ddb0edf3173e18c6e0dfc4974bedcf5 (patch) | |
tree | b3a31c12c774d82e40e4cc9d3726c95a3ecac5fc /source4/lib/registry | |
parent | 5bf62260505d1e8dfddcb3acef69ef0217841a3f (diff) | |
download | samba-92e1574d3ddb0edf3173e18c6e0dfc4974bedcf5.tar.gz samba-92e1574d3ddb0edf3173e18c6e0dfc4974bedcf5.tar.bz2 samba-92e1574d3ddb0edf3173e18c6e0dfc4974bedcf5.zip |
Registry tools "regshell" and "regtree": Small fixup's
I fixed up my fault regarding the handling of the default value (if it doesn't exist
it hasn't the index number zero and you get immediately the subvalues). Then I corrected an error in regshell to find the right registry context.
Diffstat (limited to 'source4/lib/registry')
-rw-r--r-- | source4/lib/registry/tools/regshell.c | 13 | ||||
-rw-r--r-- | source4/lib/registry/tools/regtree.c | 15 |
2 files changed, 6 insertions, 22 deletions
diff --git a/source4/lib/registry/tools/regshell.c b/source4/lib/registry/tools/regshell.c index fb7a08e38f..208b19fba8 100644 --- a/source4/lib/registry/tools/regshell.c +++ b/source4/lib/registry/tools/regshell.c @@ -226,13 +226,7 @@ static WERROR cmd_ls(struct regshell_context *ctx, int argc, char **argv) return error; } - /* default value */ - if (W_ERROR_IS_OK(reg_key_get_value_by_index(ctx, ctx->current, 0, - &name, &valuetype, &valuedata))) - printf("V \"(Default)\" %s %s\n", str_regtype(valuetype), - reg_val_data_string(ctx, lp_iconv_convenience(cmdline_lp_ctx), valuetype, valuedata)); - /* other values */ - for (i = 1; W_ERROR_IS_OK(error = reg_key_get_value_by_index(ctx, + for (i = 0; W_ERROR_IS_OK(error = reg_key_get_value_by_index(ctx, ctx->current, i, &name, &valuetype, &valuedata)); i++) printf("V \"%s\" %s %s\n", name, str_regtype(valuetype), reg_val_data_string(ctx, lp_iconv_convenience(cmdline_lp_ctx), valuetype, valuedata)); @@ -440,7 +434,7 @@ static char **reg_complete_key(const char *text, int start, int end) len = strlen(text); for(i = 0; j < MAX_COMPLETIONS-1; i++) { status = reg_key_get_subkey_by_index(mem_ctx, base, i, - &subkeyname, NULL, NULL); + &subkeyname, NULL, NULL); if(W_ERROR_IS_OK(status)) { if(!strncmp(text, subkeyname, len)) { matches[j] = strdup(subkeyname); @@ -538,7 +532,8 @@ int main(int argc, char **argv) if (ctx->current == NULL) { int i; - for (i = 0; reg_predefined_keys[i].handle; i++) { + for (i = 0; (reg_predefined_keys[i].handle != 0) && + (ctx->current == NULL); i++) { WERROR err; err = reg_get_predefined_key(ctx->registry, reg_predefined_keys[i].handle, diff --git a/source4/lib/registry/tools/regtree.c b/source4/lib/registry/tools/regtree.c index 17a9163adc..2175f9c9d3 100644 --- a/source4/lib/registry/tools/regtree.c +++ b/source4/lib/registry/tools/regtree.c @@ -38,8 +38,7 @@ static void print_tree(int level, struct registry_key *p, bool fullpath, bool novals) { struct registry_key *subkey; - const char *valuename; - const char *keyname; + const char *valuename, *keyname; uint32_t valuetype; DATA_BLOB valuedata; struct security_descriptor *sec_desc; @@ -73,17 +72,7 @@ static void print_tree(int level, struct registry_key *p, if (!novals) { mem_ctx = talloc_init("print_tree"); - /* default value */ - if (W_ERROR_IS_OK(reg_key_get_value_by_index(mem_ctx, p, 0, - &valuename, &valuetype, &valuedata))) { - int j; - for(j = 0; j < level+1; j++) putchar(' '); - printf("%s\n", reg_val_description(mem_ctx, - lp_iconv_convenience(cmdline_lp_ctx), - "(Default)", valuetype, valuedata)); - } - /* other values */ - for(i = 1; W_ERROR_IS_OK(error = reg_key_get_value_by_index( + for(i = 0; W_ERROR_IS_OK(error = reg_key_get_value_by_index( mem_ctx, p, i, &valuename, &valuetype, &valuedata)); i++) { int j; |