Escape hyphens and backslashes when creating the manpage.
This avoids numerous groff/man warnings from lintian.
This patch has since been submitted and accepted upstream.
Index: darcs-2.3.0/src/Darcs/Commands/Help.lhs
===================================================================
--- darcs-2.3.0.orig/src/Darcs/Commands/Help.lhs	2009-08-03 16:10:27.186565722 +1000
+++ darcs-2.3.0/src/Darcs/Commands/Help.lhs	2009-08-03 16:17:57.629065518 +1000
@@ -162,7 +162,7 @@
  ".TP 3", "\\(bu",
  "Distributed: Every user has access to the full",
  "command set, removing boundaries between server and",
- "client or committer and non-committers.",
+ "client or committer and non\\(hycommitters.",
  ".TP", "\\(bu",
  "Interactive: Darcs is easy to learn and efficient to",
  "use because it asks you questions in response to",
@@ -183,14 +183,14 @@
  "Each command's most important options are listed in the",
  ".B COMMANDS",
  "section.  For a full list of all options accepted by",
- "a particular command, run `darcs", ".I command", "--help'.",
- ".SS " ++ helpOnMatchers, -- FIXME: this is a kludge.
+ "a particular command, run `darcs", ".I command", "\\-\\-help'.",
+ ".SS " ++ escape helpOnMatchers, -- FIXME: this is a kludge.
  ".SH COMMANDS",
  unlines commands,
  unlines environment,
  ".SH FILES",
  ".SS \"_darcs/prefs/binaries\"",
- unlines binaries_file_help,
+ escape $ unlines binaries_file_help,
  ".SH BUGS",
  "At http://bugs.darcs.net/ you can find a list of known",
  "bugs in Darcs.  Unknown bugs can be reported at that",
@@ -244,7 +244,7 @@
                 render prefix c =
                     [".B darcs " ++ prefix ++ command_name c] ++
                     (map mangle_args $ command_extra_arg_help c) ++
-                    [".RS 4", command_help c, ".RE"]
+                    [".RS 4", escape $ command_help c, ".RE"]
 
       -- | Now I'm showing off: mangle the extra arguments of Darcs commands
       -- so as to use the ideal format for manpages, italic words and roman
@@ -260,7 +260,21 @@
 
       environment :: [String]
       environment = ".SH ENVIRONMENT" : concat
-                    [(".SS \"" ++ andClauses ks ++ "\"") : ds
+                    [(".SS \"" ++ andClauses ks ++ "\"") : map escape ds
                      | (ks, ds) <- environmentHelp]
 
+      -- | Copied from Preproc.escape_latex_specials.
+      escape :: String -> String
+      escape = minus . bs       -- Order is important
+        where
+          minus      = replace "-"     "\\-"
+          bs         = replace "\\"    "\\\\"
+
+          replace :: Eq a => [a] -> [a] -> [a] -> [a]
+          replace _ _ [] = []
+          replace find repl s =
+              if take (length find) s == find
+                  then repl ++ (replace find repl (drop (length find) s))
+                  else [head s] ++ replace find repl (tail s)
+
 \end{code}
