on master help sign in
Merge pull request #283 from andy-morris/addproof

If "F" doesn't exist, :addproof checks "F.idr" as well

commite7b435a2db36ee1576e50315ca2af7700bcaaed0 authorEdwin Brady <edwin.brady@gmail.com> dateWed 24 Apr 2013, 03:43 (14 years ago) parentb4d856ab272c78
1 file changed+11−2
src/Idris/REPL.hs+11−2
src/Idris/REPL.hs+11−2
@@ -299,8 +299,17 @@ process fn (RmProof n')
299299 let ms = idris_metavars i
300300 putIState $ i { idris_metavars = n : ms }
301301
302−process fn (AddProof prf)
303− = do let fb = fn ++ "~"
302+process fn' (AddProof prf)
303+ = do fn <- do
304+ ex <- liftIO $ doesFileExist fn'
305+ let fnExt = fn' <.> "idr"
306+ exExt <- liftIO $ doesFileExist fnExt
307+ if ex
308+ then return fn'
309+ else if exExt
310+ then return fnExt
311+ else fail $ "Neither \""++fn'++"\" nor \""++fnExt++"\" exist"
312+ let fb = fn ++ "~"
304313 liftIO $ copyFile fn fb -- make a backup in case something goes wrong!
305314 prog <- liftIO $ readFile fb
306315 i <- getIState