From 025df0c3845c192f285a4182dbfe56688c63c581 Mon Sep 17 00:00:00 2001 From: "https://www.rfc1149.net/" Date: Tue, 11 Feb 2014 08:04:27 +0000 Subject: --- doc/bugs/Matching_oddity_in_SafeCommand.hs.mdwn | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 doc/bugs/Matching_oddity_in_SafeCommand.hs.mdwn (limited to 'doc/bugs') diff --git a/doc/bugs/Matching_oddity_in_SafeCommand.hs.mdwn b/doc/bugs/Matching_oddity_in_SafeCommand.hs.mdwn new file mode 100644 index 000000000..c65c8ac0b --- /dev/null +++ b/doc/bugs/Matching_oddity_in_SafeCommand.hs.mdwn @@ -0,0 +1,26 @@ +In SafeCommand.hs, the code to unwrap a File looks like: + +[[!format haskell """ +toCommand :: [CommandParam] -> [String] +toCommand = concatMap unwrap + where + [...] + -- Files that start with a non-alphanumeric that is not a path + -- separator are modified to avoid the command interpreting them as + -- options or other special constructs. + unwrap (File s@(h:_)) + | isAlphaNum h || h `elem` pathseps = [s] + | otherwise = ["./" ++ s] + unwrap (File s) = [s] + [...] +"""]] + +I am not sure I understand which case would be caught in the last clause "unwrap (File s)". Is that the empty file? Because all non-empty file names seem to have been caught earlier, at least in the "otherwise" if they do not match the condition. In this case, wouldn't it be an error to use an empty file name and wouldn't it be better to throw an exception instead of returning [[]]? + +I would use: + +[[!format haskell """ + unwrap (File []) = throw "Empty file name in SafeCommand.toCommand" +"""]] + +or something similar instead. -- cgit v1.2.3