Fix regeneration of multi-file dependencies
[hcoop/domtool2.git] / src / main-doc.sml
index 3df2ad3..f088f8b 100644 (file)
@@ -1,5 +1,5 @@
 (* HCoop Domtool (http://hcoop.sourceforge.net/)
- * Copyright (c) 2006, Adam Chlipala
+ * Copyright (c) 2006-2007, Adam Chlipala
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
 
 (* Driver for documentation generation *)
 
-fun processArgs (args, basis, outdir, files) =
+fun processArgs (args, basis, outdir, files, emacs) =
     case args of
-       [] => (basis, outdir, files)
-      | "-basis" :: rest => processArgs (rest, true, outdir, files)
-      | "-out" :: dir :: rest => processArgs (rest, basis, dir, files)
-      | file :: rest => processArgs (rest, basis, outdir, file :: files)
+       [] => (basis, outdir, files, emacs)
+      | "-basis" :: rest => processArgs (rest, true, outdir, files, emacs)
+      | "-out" :: dir :: rest => processArgs (rest, basis, dir, files, emacs)
+      | "-emacs" :: rest => processArgs (rest, basis, outdir, files, true)
+      | file :: rest =>
+       if size file > 0 andalso String.sub (file, 0) <> #"-" then
+           processArgs (rest, basis, outdir, file :: files, emacs)
+       else
+           raise Fail ("Uknown switch " ^ file)
 
 val _ =
     let
-       val (basis, outdir, files) = processArgs (CommandLine.arguments (),
-                                                 false,
-                                                 OS.FileSys.getDir (),
-                                                 [])
+       val (basis, outdir, files, emacs) = processArgs (CommandLine.arguments (),
+                                                        false,
+                                                        OS.FileSys.getDir (),
+                                                        [],
+                                                        false)
 
        val files = if basis then
                        Main.listBasis () @ files
@@ -38,5 +44,8 @@ val _ =
                        files
     in
        Tycheck.allowExterns ();
-       Autodoc.autodoc {outdir = outdir, infiles = files}
+       if emacs then
+           Autodoc.makeEmacsKeywords files
+       else
+           Autodoc.autodoc {outdir = outdir, infiles = files}
     end