[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#12638: 24.2.50; FR: Some suggestions for icomplete-mode
From: |
Jambunathan K |
Subject: |
bug#12638: 24.2.50; FR: Some suggestions for icomplete-mode |
Date: |
Fri, 02 Nov 2012 17:42:27 +0530 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
Jambunathan K <kjambunathan@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.