Subject: bug#12898: 24.2.50.1; Completion is not passed further on in emacs-lisp, org-mode etc.

From: Vitalie Spinu <[email-masked]>
Date: Tue, 20 Nov 2012 13:27:45 +0100

>> Stefan Monnier <[email-masked]>
  >> on Thu, 15 Nov 2012 13:40:37 -0500 wrote:

  >> In elisp mode completion-at-point-functions is set to
  >> (lisp-completion-at-point t).  If I set it to (t), filename completion
  >> works as expected.  So, it's the lisp-completion-at-point that is not
  >> handing the completion over.

  SM> Indeed, lisp-completion-at-point should return nil when it determines
  SM> that it cannot provide completion information for the text around point.
  SM> Problem is: how should it determine that?

There is an inbuilt facility (:exclusive 'no). Why is that not the default?

This solves the problem:

diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index bcb7fab..680673d 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -699,6 +699,7 @@ considered."
 	      :predicate predicate
 	      :annotation-function
 	      (unless (eq predicate 'fboundp)
-		(lambda (str) (if (fboundp (intern-soft str)) " <f>"))))))))
+		(lambda (str) (if (fboundp (intern-soft str)) " <f>")))
+              :exclusive 'no)))))
 
 ;;; lisp.el ends here
diff --git a/lisp/progmodes/octave-mod.el b/lisp/progmodes/octave-mod.el
index ab5a19f..04bad8e 100644
--- a/lisp/progmodes/octave-mod.el
+++ b/lisp/progmodes/octave-mod.el
@@ -975,7 +975,8 @@ otherwise."
         ;; Extend region past point, if applicable.
         (save-excursion (skip-syntax-forward "w_")
                         (setq end (point))))
-    (list beg end octave-completion-alist)))
+    (list beg end octave-completion-alist
+          :exclusive 'no)))
 
 (define-obsolete-function-alias 'octave-complete-symbol
   'completion-at-point "24.1")

Vitalie