summaryrefslogtreecommitdiff
path: root/lib/stdlib/src/filename.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <bjorn@erlang.org>2022-06-22 06:38:52 +0200
committerBjörn Gustavsson <bjorn@erlang.org>2022-06-28 06:15:06 +0200
commit3ad38446a58ab56b1f3aab6f7052da84b2bb9e78 (patch)
treedd7bae04f773e88474d9cc6ebe59370ad907a436 /lib/stdlib/src/filename.erl
parent082c76aaa3beedede9924ad1b092dc97d9d7be18 (diff)
downloaderlang-3ad38446a58ab56b1f3aab6f7052da84b2bb9e78.tar.gz
filename: Stricten tests for integers
Diffstat (limited to 'lib/stdlib/src/filename.erl')
-rw-r--r--lib/stdlib/src/filename.erl12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/stdlib/src/filename.erl b/lib/stdlib/src/filename.erl
index 8bf4e97b9f..fc8e8110a0 100644
--- a/lib/stdlib/src/filename.erl
+++ b/lib/stdlib/src/filename.erl
@@ -78,8 +78,10 @@
-include_lib("kernel/include/file.hrl").
--define(IS_DRIVELETTER(Letter),(((Letter >= $A) andalso (Letter =< $Z)) orelse
- ((Letter >= $a) andalso (Letter =< $z)))).
+-define(IS_DRIVELETTER(Letter),
+ (is_integer(Letter)
+ andalso (($A =< Letter andalso Letter =< $Z)
+ orelse ($a =< Letter andalso Letter =< $z)))).
%% Converts a relative filename to an absolute filename
%% or the filename itself if it already is an absolute filename
@@ -333,8 +335,7 @@ dirname([$/|Rest], Dir, File, Seps) ->
dirname([DirSep|Rest], Dir, File, {DirSep,_}=Seps) when is_integer(DirSep) ->
dirname(Rest, File++Dir, [$/], Seps);
dirname([Dl,DrvSep|Rest], [], [], {_,DrvSep}=Seps)
- when is_integer(DrvSep), ((($a =< Dl) and (Dl =< $z)) or
- (($A =< Dl) and (Dl =< $Z))) ->
+ when is_integer(DrvSep), ?IS_DRIVELETTER(Dl) ->
dirname(Rest, [DrvSep,Dl], [], Seps);
dirname([Char|Rest], Dir, File, Seps) when is_integer(Char) ->
dirname(Rest, Dir, [Char|File], Seps);
@@ -757,7 +758,8 @@ win32_split([X, $\\|Rest]) when is_integer(X) ->
win32_split([X, $/|Rest]);
win32_split([X, Y, $\\|Rest]) when is_integer(X), is_integer(Y) ->
win32_split([X, Y, $/|Rest]);
-win32_split([UcLetter, $:|Rest]) when UcLetter >= $A, UcLetter =< $Z ->
+win32_split([UcLetter, $:|Rest])
+ when is_integer(UcLetter), $A =< UcLetter, UcLetter =< $Z ->
win32_split([UcLetter+$a-$A, $:|Rest]);
win32_split([Letter, $:, $/|Rest]) ->
split(Rest, [], [[Letter, $:, $/]], win32);