GNU bug report logs - #12638
24.2.50; FR: Some suggestions for icomplete-mode

Previous Next

Package: emacs;

Reported by: Jambunathan K <kjambunathan <at> gmail.com>

Date: Sat, 13 Oct 2012 17:33:01 UTC

Severity: wishlist

Found in version 24.2.50

Done: Jambunathan K <kjambunathan <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Jambunathan K <kjambunathan <at> gmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 12638 <at> debbugs.gnu.org
Subject: bug#12638: 24.2.50; FR: Some suggestions for icomplete-mode
Date: Fri, 02 Nov 2012 17:42:27 +0530
Jambunathan K <kjambunathan <at> gmail.com> writes:

> 1. `minibuffer-summarize-completions' is meant as a replacement for
>    `icomplete-exhibit'.  As the name suggests, it is meant to go in to
>     minibuffer.el.  It's presence in minibuffer.el proved problematic
>    (details in followup mail) and I had to move it to icomplete.el.

0. In my earlier patch, remove `minibuffer-summarize-completions' from
   icomplete.el and shift it enbloc to minibuffer.el.

   Compile and re-load.  emacs -Q

1. M-x icomplete-mode RET
2. M-x load-1
3. See the following error message echoed.

    ,----
    | Icomplete mode enabled
    | 
    | Error in post-command-hook (#[nil \301\302\303!)\207 [non-essential t
    | run-hooks icomplete-post-command-hook] 2]): (error "Attempt to modify
    | read-only object")
    `----

4. If I grep for the above error text, it happens in 

--8<---------------cut here---------------start------------->8---
-*- mode: grep; default-directory: "~/src/emacs/trunk/src/" -*-
Grep started at Fri Nov  2 17:35:44

find . -type d \( -path \*/SCCS -o -path \*/RCS -o -path \*/CVS -o -path \*/MCVS -o -path \*/.svn -o -path \*/.git -o -path \*/.hg -o -path \*/.bzr -o -path \*/_MTN -o -path \*/_darcs -o -path \*/\{arch\} \) -prune -o \! -type d \( -name .\#\* -o -name \*.o -o -name \*\~ -o -name \*.bin -o -name \*.lbin -o -name \*.so -o -name \*.a -o -name \*.ln -o -name \*.blg -o -name \*.bbl -o -name \*.elc -o -name \*.lof -o -name \*.glo -o -name \*.idx -o -name \*.lot -o -name \*.fmt -o -name \*.tfm -o -name \*.class -o -name \*.fas -o -name \*.lib -o -name \*.mem -o -name \*.x86f -o -name \*.sparcf -o -name \*.dfsl -o -name \*.pfsl -o -name \*.d64fsl -o -name \*.p64fsl -o -name \*.lx64fsl -o -name \*.lx32fsl -o -name \*.dx64fsl -o -name \*.dx32fsl -o -name \*.fx64fsl -o -name \*.fx32fsl -o -name \*.sx64fsl -o -name \*.sx32fsl -o -name \*.wx64fsl -o -name \*.wx32fsl -o -name \*.fasl -o -name \*.ufsl -o -name \*.fsl -o -name \*.dxl -o -name \*.lo -o -name \*.la -o -name \*.gmo -o -name \*.mo -o -name \*.toc -o -name \*.aux -o -name \*.cp -o -name \*.fn -o -name \*.ky -o -name \*.pg -o -name \*.tp -o -name \*.vr -o -name \*.cps -o -name \*.fns -o -name \*.kys -o -name \*.pgs -o -name \*.tps -o -name \*.vrs -o -name \*.pyc -o -name \*.pyo \) -prune -o  -type f \( -name \*.\[ch\] \) -exec grep  -nH -e Attempt\ to\ modify\ read-only\ object {} +
./data.c:104:  error ("Attempt to modify read-only object");

Grep finished (matches found) at Fri Nov  2 17:35:44
--8<---------------cut here---------------end--------------->8---

which is

--8<---------------cut here---------------start------------->8---
void
pure_write_error (void)
{
  error ("Attempt to modify read-only object");
}
--8<---------------cut here---------------end--------------->8---

this in turn leads to

--8<---------------cut here---------------start------------->8---

-*- mode: grep; default-directory: "~/src/emacs/trunk/src/" -*-
Grep started at Fri Nov  2 17:37:03

find . -type d \( -path \*/SCCS -o -path \*/RCS -o -path \*/CVS -o -path \*/MCVS -o -path \*/.svn -o -path \*/.git -o -path \*/.hg -o -path \*/.bzr -o -path \*/_MTN -o -path \*/_darcs -o -path \*/\{arch\} \) -prune -o \! -type d \( -name .\#\* -o -name \*.o -o -name \*\~ -o -name \*.bin -o -name \*.lbin -o -name \*.so -o -name \*.a -o -name \*.ln -o -name \*.blg -o -name \*.bbl -o -name \*.elc -o -name \*.lof -o -name \*.glo -o -name \*.idx -o -name \*.lot -o -name \*.fmt -o -name \*.tfm -o -name \*.class -o -name \*.fas -o -name \*.lib -o -name \*.mem -o -name \*.x86f -o -name \*.sparcf -o -name \*.dfsl -o -name \*.pfsl -o -name \*.d64fsl -o -name \*.p64fsl -o -name \*.lx64fsl -o -name \*.lx32fsl -o -name \*.dx64fsl -o -name \*.dx32fsl -o -name \*.fx64fsl -o -name \*.fx32fsl -o -name \*.sx64fsl -o -name \*.sx32fsl -o -name \*.wx64fsl -o -name \*.wx32fsl -o -name \*.fasl -o -name \*.ufsl -o -name \*.fsl -o -name \*.dxl -o -name \*.lo -o -name \*.la -o -name \*.gmo -o -name \*.mo -o -name \*.toc -o -name \*.aux -o -name \*.cp -o -name \*.fn -o -name \*.ky -o -name \*.pg -o -name \*.tp -o -name \*.vr -o -name \*.cps -o -name \*.fns -o -name \*.kys -o -name \*.pgs -o -name \*.tps -o -name \*.vrs -o -name \*.pyc -o -name \*.pyo \) -prune -o  -type f \( -name \*.\[ch\] \) -exec grep  -nH -e CHECK_IMPURE {} +
./puresize.h:74:#define CHECK_IMPURE(obj) \
./intervals.c:104:  CHECK_IMPURE (parent);
./keymap.c:350:	  CHECK_IMPURE (prev);
./keymap.c:852:		CHECK_IMPURE (elt);
./keymap.c:905:		CHECK_IMPURE (elt);
./keymap.c:949:      CHECK_IMPURE (insertion_point);
./data.c:490:  CHECK_IMPURE (cell);
./data.c:500:  CHECK_IMPURE (cell);
./data.c:2120:  CHECK_IMPURE (array);

Grep finished (matches found) at Fri Nov  2 17:37:03

--8<---------------cut here---------------end--------------->8---

I am pretty sure the error happens during `put-overlay' and my suspect
is intervals.c.

,---- from icomplete.el (See `icomplete-exhibit')
| (when (stringp text)
|   (move-overlay icomplete-overlay (point) (point) (current-buffer))
|   ;; The current C cursor code doesn't know to use the overlay's
|   ;; marker's stickiness to figure out whether to place the cursor
|   ;; before or after the string, so let's spoon-feed it the pos.
|   (put-text-property 0 1 'cursor t text) <===========================
|   (overlay-put icomplete-overlay 'after-string text))
`----

Since this happens when the file is in minibuffer.el and the return
values are "string constants", I am suspecting that some config value
has to be bumped somewhere.












This bug report was last modified 11 years and 248 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.