--something accepted as argument of option in GetOpt.hs

Hi, I have noticed that GetOpt.hs accepts option arguments starting with a dash. This might of use in some applications but it may also be a nuisance, because if you omit the argument of an ReqArg option this may not be reported as an error because GetOpt just takes the next flag (staring with a '-') as the argument to the option in question. This could be solved by introducing a new constructor in the 'ArgDescr a' datatype, one that not only requires an argument, but an argument not starting with '-'. I think something like this little patch would do the job. 85a86
| ReqArgNoDash (String -> a) String -- ^ option requires argument 117a119 fmtShort (ReqArgNoDash _ ad) so = "-" ++ [so] ++ " " ++ ad 122a125 fmtLong (ReqArgNoDash _ ad) lo = "--" ++ lo ++ "=" ++ ad 179a183,186 long [ReqArgNoDash _ d] [] [] = (errReq d optStr,[]) long [ReqArgNoDash _ d] [] r@(('-':_):_) = (errReq d optStr,r) long [ReqArgNoDash f _] [] (r:rest) = (Opt (f r),rest) long [ReqArgNoDash f _] ('=':xs) rest = (Opt (f xs),rest) 196a204,207 short (ReqArgNoDash _ d:_) [] [] = (errReq d optStr,[]) short (ReqArgNoDash _ d:_) [] r@(('-':_):_) = (errReq d optStr,r) short (ReqArgNoDash f _:_) [] (r:rest) = (Opt (f r),rest) short (ReqArgNoDash f _:_) xs rest = (Opt (f xs),rest)
regards, -- ------------------------------------------------------------ Johan Martensson, PhD Office: +46 31 772 81 70 R&D Mobile: +46 703749681 Safelogic AB Fax: +46 31 772 80 91 Stena Center 1C johan.martensson@safelogic.se SE-412 92 Gothenburg, SWEDEN PGP key ID A8857A60 www.safelogic.se ------------------------------------------------------------
participants (1)
-
Johan Mårtensson