diff options
author | Lars Thorsen <[email protected]> | 2016-09-07 14:03:50 +0200 |
---|---|---|
committer | Lars Thorsen <[email protected]> | 2016-09-07 14:03:50 +0200 |
commit | 04e8e3716a02c262e2569c94c4dba67d1782a1e9 (patch) | |
tree | bd596511bd2d96e211ffd2d2a1cdf71920a6c125 /lib/snmp | |
parent | 68c748c3f7e75f8fa5e583e5cb979490258eb5f3 (diff) | |
parent | cda114d8186af91f4fa18c5e549c85ffa3b5ea55 (diff) | |
download | otp-04e8e3716a02c262e2569c94c4dba67d1782a1e9.tar.gz otp-04e8e3716a02c262e2569c94c4dba67d1782a1e9.tar.bz2 otp-04e8e3716a02c262e2569c94c4dba67d1782a1e9.zip |
Merge branch 'lars/utf-8-path-bugs/ERL-179/OTP-13718' into maint
* lars/utf-8-path-bugs/ERL-179/OTP-13718:
[snmp] Correct bug when path to mib contains UTF-8 characters
[ic] Fix but when UTF-8 character in path to idl spec
Diffstat (limited to 'lib/snmp')
-rw-r--r-- | lib/snmp/src/compile/snmpc.erl | 11 | ||||
-rw-r--r-- | lib/snmp/src/compile/snmpc_misc.erl | 20 |
2 files changed, 19 insertions, 12 deletions
diff --git a/lib/snmp/src/compile/snmpc.erl b/lib/snmp/src/compile/snmpc.erl index db1f9ee61b..d86692aaf6 100644 --- a/lib/snmp/src/compile/snmpc.erl +++ b/lib/snmp/src/compile/snmpc.erl @@ -64,7 +64,7 @@ compile(Input, _Output, Options) -> {ok, _} -> ok; {error, Reason} -> - io:format("~p", [Reason]), + io:format("~tp", [Reason]), error end. @@ -126,7 +126,14 @@ compile(FileName) -> %%---------------------------------------------------------------------- compile(FileName, Options) when is_list(FileName) -> - true = snmpc_misc:is_string(FileName), + case snmpc_misc:check_file(FileName) of + true -> + compile_1(FileName, Options); + false -> + {error, {invalid_file, FileName}} + end. + +compile_1(FileName, Options) -> DefOpts = [{deprecated, true}, {group_check, true}, {i, ["./"]}, diff --git a/lib/snmp/src/compile/snmpc_misc.erl b/lib/snmp/src/compile/snmpc_misc.erl index 933d629746..312074f2e7 100644 --- a/lib/snmp/src/compile/snmpc_misc.erl +++ b/lib/snmp/src/compile/snmpc_misc.erl @@ -29,7 +29,7 @@ bits_to_int/2, ensure_trailing_dir_delimiter/1, foreach/3, - is_string/1, + check_file/1, read_mib/1, read_noexit/2, strip_extension_from_filename/2, @@ -86,21 +86,21 @@ to_upper([C|Cs]) -> [C|to_upper(Cs)]; to_upper([]) -> []. -is_string([]) -> true; -is_string([Tkn | Str]) - when is_integer(Tkn) andalso (Tkn >= 0) andalso (Tkn =< 255) -> - is_string(Str); -is_string(_) -> false. - - +check_file(FileName) -> + case filename:extension(FileName) of + ".mib" -> + filelib:is_regular(FileName); + _ -> + filelib:is_regular(FileName ++ ".mib") + end. + + foreach(Function, ExtraArgs, [H | T]) -> apply(Function, [H | ExtraArgs]), foreach(Function, ExtraArgs, T); foreach(_Function, _ExtraArgs, []) -> true. - - %%---------------------------------------------------------------------- %% Returns: {ok, Mib}|{error, Reason} %% The reason for having the function if this module is: |