Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:19
erlang
1275-stdlib-Fix-win32reg-value-for-default-valu...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 1275-stdlib-Fix-win32reg-value-for-default-value.patch of Package erlang
From cd7f4cf7cee3bec6dbcafec3774983056e85cda5 Mon Sep 17 00:00:00 2001 From: Regan Heath <reganmheath@gmail.com> Date: Thu, 19 Aug 2021 19:53:09 +0200 Subject: [PATCH 2/2] stdlib: Fix win32reg:value for 'default' value --- lib/stdlib/src/win32reg.erl | 9 ++++++++- lib/stdlib/test/win32reg_SUITE.erl | 29 +++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/lib/stdlib/src/win32reg.erl b/lib/stdlib/src/win32reg.erl index e8e16980cb..9f257585fa 100644 --- a/lib/stdlib/src/win32reg.erl +++ b/lib/stdlib/src/win32reg.erl @@ -180,10 +180,17 @@ set_value({win32reg, Reg}, Name0, Value) when is_port(Reg) -> Name :: name(), ReturnValue :: {'ok', Value :: value()} | {'error', ErrorId :: atom()}. -value({win32reg, Reg}, Name) when is_port(Reg) -> +value({win32reg, Reg}, Name0) when is_port(Reg) -> + Name = + case Name0 of + default -> []; + _ -> Name0 + end, Cmd = [?cmd_get_value, Name, 0], Reg ! {self(), {command, Cmd}}, case get_result(Reg) of + {value, {default, Value}} when Name =:= [] -> + {ok, Value}; {value, {Name, Value}} -> {ok, Value}; {error, Reason} -> diff --git a/lib/stdlib/test/win32reg_SUITE.erl b/lib/stdlib/test/win32reg_SUITE.erl index 14401128c1..4e45090b01 100644 --- a/lib/stdlib/test/win32reg_SUITE.erl +++ b/lib/stdlib/test/win32reg_SUITE.erl @@ -21,6 +21,7 @@ -export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, init_per_group/2,end_per_group/2,long/1,evil_write/1, + read_write_default_1/1,read_write_default_2/1, delete_key/1, up_and_away/1]). -include_lib("common_test/include/ct.hrl"). @@ -32,6 +33,8 @@ suite() -> all() -> [long, evil_write, + read_write_default_1, + read_write_default_2, delete_key, up_and_away]. @@ -109,6 +112,32 @@ evil_write_1(Reg, [_|[_|_]=Key]=Key0) -> evil_write_1(Reg, Key); evil_write_1(_, [_]) -> ok. +read_write_default_1(Config) when is_list(Config) -> + Key = "Software\\Ericsson\\Erlang", + Value = "The default value 1", + {ok,Reg} = win32reg:open([read,write]), + ok = win32reg:change_key(Reg, "\\hkcu"), + ok = win32reg:change_key_create(Reg, Key), + ok = win32reg:set_value(Reg, default, Value), + {ok,Value} = win32reg:value(Reg, default), + ok = win32reg:delete_value(Reg, default), + {error,enoent} = win32reg:value(Reg, default), + ok = win32reg:close(Reg), + ok. + +read_write_default_2(Config) when is_list(Config) -> + Key = "Software\\Ericsson\\Erlang", + Value = "The default value 2", + {ok,Reg} = win32reg:open([read,write]), + ok = win32reg:change_key(Reg, "\\hkcu"), + ok = win32reg:change_key_create(Reg, Key), + ok = win32reg:set_value(Reg, "", Value), + {ok,Value} = win32reg:value(Reg, ""), + ok = win32reg:delete_value(Reg, ""), + {error,enoent} = win32reg:value(Reg, ""), + ok = win32reg:close(Reg), + ok. + delete_key(Config) when is_list(Config) -> Key = "Software\\Ericsson\\Erlang\\new-test-key", {ok,Reg} = win32reg:open([read,write]), -- 2.31.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor