Follow Debian Policy §11.4 - honour VISUAL, EDITOR and PAGER, but fall
back on editor and pager respectively.  This allows the sysadmin to
define site-local editor/pager defaults.  It also means things work
when less and vi/emacs/nano aren't installed -- which is the case on a
new Debian installation if you uncheck the "standard" tasksel task.

Index: darcs-2.3.0~beta1/src/Darcs/Utils.hs
===================================================================
--- darcs-2.3.0~beta1.orig/src/Darcs/Utils.hs	2009-06-24 17:13:28.000000000 +1000
+++ darcs-2.3.0~beta1/src/Darcs/Utils.hs	2009-06-25 13:01:58.149068271 +1000
@@ -187,12 +187,6 @@
   ed <- get_editor
   old_content <- file_content
   ec <- exec_interactive ed f
-             `ortryrunning` exec_interactive "emacs" f
-             `ortryrunning` exec_interactive "emacs -nw" f
-             `ortryrunning` exec_interactive "nano" f
-#ifdef WIN32
-             `ortryrunning` exec_interactive "edit" f
-#endif
   new_content <- file_content
   when (new_content == old_content) $ do
     yorn <- promptYorn "File content did not change. Continue anyway?"
@@ -210,7 +204,7 @@
 get_editor = getEnv "DARCS_EDITOR" `catchall`
              getEnv "DARCSEDITOR" `catchall`
              getEnv "VISUAL" `catchall`
-             getEnv "EDITOR" `catchall` return "vi"
+             getEnv "EDITOR" `catchall` return "editor"
 
 environmentHelpEditor :: ([String], [String])
 environmentHelpEditor = (["DARCS_EDITOR", "DARCSEDITOR", "VISUAL", "EDITOR"],[
@@ -223,7 +217,7 @@
 
 get_viewer :: IO String
 get_viewer = getEnv "DARCS_PAGER" `catchall`
-             getEnv "PAGER" `catchall` return "less"
+             getEnv "PAGER" `catchall` return "pager"
 
 environmentHelpPager :: ([String], [String])
 environmentHelpPager = (["DARCS_PAGER", "PAGER"],[
