diff options
author | Adam Chlipala <adamc@hcoop.net> | 2010-02-06 15:34:41 -0500 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2010-02-06 15:34:41 -0500 |
commit | a978113ec89492e3c612e2409b8dfd0f3c9682cb (patch) | |
tree | 030689d7f60d1b5a580b8c638f1c297899b068d7 /src | |
parent | 0771f5711f1bfcd0b958049957f91289622e5f85 (diff) |
Allow .urp files without initial blank lines
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler.sml | 25 | ||||
-rw-r--r-- | src/demo.sml | 9 |
2 files changed, 29 insertions, 5 deletions
diff --git a/src/compiler.sml b/src/compiler.sml index e72d8b4b..ab3ec10a 100644 --- a/src/compiler.sml +++ b/src/compiler.sml @@ -282,7 +282,25 @@ fun parseUrp' accLibs fname = fun pu filename = let val dir = OS.Path.dir filename - val inf = TextIO.openIn (OS.Path.joinBaseExt {base = filename, ext = SOME "urp"}) + fun opener () = TextIO.openIn (OS.Path.joinBaseExt {base = filename, ext = SOME "urp"}) + + val inf = opener () + + fun hasAnyLine () = + case TextIO.inputLine inf of + NONE => false + | SOME "\n" => false + | _ => true + + fun hasBlankLine () = + case TextIO.inputLine inf of + NONE => false + | SOME "\n" => hasAnyLine () + | _ => hasBlankLine () + + val hasBlankLine = hasBlankLine () + + val inf = (TextIO.closeIn inf; opener ()) fun pathify fname = if size fname > 0 andalso String.sub (fname, 0) = #"$" then @@ -591,7 +609,10 @@ fun parseUrp' accLibs fname = read () end - val job = read () + val job = if hasBlankLine then + read () + else + finish (readSources []) in TextIO.closeIn inf; Settings.setUrlPrefix (#prefix job); diff --git a/src/demo.sml b/src/demo.sml index 55615173..71f72fbf 100644 --- a/src/demo.sml +++ b/src/demo.sml @@ -1,4 +1,4 @@ -(* Copyright (c) 2008, Adam Chlipala +(* Copyright (c) 2008-2010, Adam Chlipala * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -197,7 +197,8 @@ fun make' {prefix, dirname, guided} = ext = SOME s} val src' = OS.Path.file src in - if String.isPrefix (OS.Path.mkCanonical dirname) src + if String.isPrefix (OS.Path.mkAbsolute {path = dirname, + relativeTo = OS.FileSys.getDir ()}) src andalso OS.FileSys.access (src, []) then (TextIO.output (out, " | <a target=\"showcase\" href=\""); TextIO.output (out, src'); @@ -205,7 +206,9 @@ fun make' {prefix, dirname, guided} = TextIO.output (out, src'); TextIO.output (out, "</tt></a>")) else - () + print (src ^ " " + ^ OS.Path.mkAbsolute {path = dirname, + relativeTo = OS.FileSys.getDir ()} ^ "\n") end in ifEx "urs"; |