summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtestprogs/ejs/winreg.js67
1 files changed, 14 insertions, 53 deletions
diff --git a/testprogs/ejs/winreg.js b/testprogs/ejs/winreg.js
index 4d8b97d1c2..831528b05c 100755
--- a/testprogs/ejs/winreg.js
+++ b/testprogs/ejs/winreg.js
@@ -3,6 +3,9 @@
test winreg calls from ejs
*/
+libinclude("base.js");
+libinclude("winreg.js");
+
var options = new Object();
ok = GetOptions(ARGV, options,
@@ -31,66 +34,24 @@ if (status.is_ok != true) {
return -1;
}
-
-
-function list(handle, path, name) {
- var io = irpcObj();
- var wtime = new Object();
- wtime.low = 2147483647;
- wtime.high = 2147483647;
- var keyname = new Object();
- keyname.unknown = 522;
- keyname.key_name = NULL;
-
- var idx = 0;
- for (idx=0;idx >= 0;idx++) {
- io.input.handle = handle;
- io.input.enum_index = idx;
- io.input.key_name_len = 0;
- io.input.unknown = 1044;
- io.input.in_name = keyname;
- io.input.class = "";
- io.input.last_changed_time = wtime;
- var status = reg.winreg_EnumKey(io);
- if (!status.is_ok) return;
- var out = io.output;
- if (out.result != "WERR_OK") {
- return;
- }
- printf("%s\\%s\n", path, out.out_name.name);
-
- io = irpcObj();
- io.input.handle = handle;
- io.input.keyname = out.out_name.name;
- io.input.unknown = 0;
- io.input.access_mask = reg.SEC_FLAG_MAXIMUM_ALLOWED;
- status = reg.winreg_OpenKey(io);
- if (!status.is_ok) return;
- assert(io.output.result == "WERR_OK");
-
- list(io.output.handle,
- path + "\\" + out.out_name.name,
- out.out_name.name);
+function list_path(path) {
+ var list = winreg_enum_path(reg, path);
+ var i;
+ if (list == undefined) {
+ return;
+ }
+ for (i=0;i<list.length;i++) {
+ var npath = path + "\\" + list[i];
+ println(npath);
+ list_path(npath);
}
-}
-
-function list_tree(name) {
- var io = irpcObj();
- io.input.system_name = NULL;
- io.input.access_required = reg.SEC_FLAG_MAXIMUM_ALLOWED;
- status = reg.winreg_OpenHKLM(io);
- assert(status.is_ok);
-
- var handle = io.output.handle;
-
- list(handle, "", NULL);
}
var trees = new Array("HKCR", "HKLM", "HKPD", "HKU");
for (i=0;i<trees.length;i++) {
printf("Listing tree '%s'\n", trees[i]);
- list_tree(trees[i]);
+ list_path(trees[i]);
}
print("All OK\n");