bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#17529: 24.3; Error in hippie-expand


From: Nicolas Richard
Subject: bug#17529: 24.3; Error in hippie-expand
Date: Mon, 19 May 2014 23:01:10 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.91 (gnu/linux)

Glenn Morris <rgm@gnu.org> writes:
> Can you do:
> M-x toggle-debug-no-error
> repeat the problem, and send the backtrace?

More details should come soon from the OP, but we managed to debug this
over IRC so I post the outcome :

First here's the backtrace :

Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p nil)
  buffer-substring-no-properties(nil 9745)
  he-init-string(nil 9745)
  try-expand-line(nil)
  apply(try-expand-line nil)
  hippie-expand(nil)
  call-interactively(hippie-expand record nil)
  command-execute(hippie-expand record)
  execute-extended-command(nil "hippie-expand")
  call-interactively(execute-extended-command nil nil)

This means that (he-line-beg strip-prompt) (that is called within
try-expand-line) returned nil. The reason is that it tries to collect
the 2nd group of a regexp that is not fully under control, namely
comint-prompt-regexp. In ESS, that regexp contains grouping constructs.

To avoid the problem, one solution is to replace "2" by "the last
group". The following patch thus fixes the problem for me... but (1- (/
(length (match-data)) 2)) is a bit cryptic.

--- /usr/local/share/emacs/24.3.91/lisp/hippie-exp.el.gz
+++ #<buffer hippie-exp.el.gz>
@@ -710,7 +710,7 @@
   (save-excursion
     (if (re-search-backward (he-line-search-regexp "" strip-prompt)
                            (line-beginning-position) t)
-       (match-beginning 2)
+       (match-beginning (1- (/ (length (match-data)) 2)))
       (point))))
 
 (defun he-line-search-regexp (pat strip-prompt)

-- 
Nico.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]