Subject: bug#6319: 23.2; man command can no longer accept -k, spaces

From: Stefan Monnier <[email-masked]>
Date: Mon, 31 May 2010 12:18:08 -0400

> M-xman will no longer allow '-k pattern' or '1 cat', even though the
> help documentation claims this should work.

  M-x man RET 1 SPC cat RET

works for me.  Admittedly, for -k you have to work a little harder, but:

  M-x man RET -k C-q SPC haskell RET

works.  I've just installed the patch below which makes

  M-x man RET -k SPC haskell RET

work as well.

> This appears to be due to the completion functionality, which has no
> documentation way to disable it

The completion code only enters into the picture if you actively
call it.  Sadly, SPC is bound to a command that calls completion, so you
sometimes need C-q SPC to insert a space when you need to override the
completion code.

        Stefan

=== modified file 'lisp/man.el'
--- lisp/man.el	2010-03-05 20:18:20 +0000
+++ lisp/man.el	2010-05-31 16:09:16 +0000
@@ -754,6 +754,9 @@
   (cond
    ((eq action 'lambda)
     (not (string-match "([^)]*\\'" string)))
+   ((equal string "-k")
+    ;; Let SPC (minibuffer-complete-word) insert the space.
+    (complete-with-action action '("-k ") string pred))
    (t
     (let ((table (cdr Man-completion-cache))
           (section nil)