Michael Heerdegen writes:
> Sebastien Vauban writes:
>
>> Did you test it?
>
> Yes. I first thought that it won't work. Then I pasted your lines into
> a fresh file, making the necessary changes (adopting the path to
> helm-autoloads), and tried to reproduce.
>
>> I _don't_ understand how I don't get an error, then, as you can see on
>> the screencast...
>
> FWIW, I can't watch it with neither browser here, their site seemingly
> doesn't accept the flash player installation on my system. Could watch
> it the last time, however. Now I can only load the screenshot.
>
>> I did not invent or fake any of the messages or any part of what's shown
>> in the recorded session; so I don't understand your assertions because
>> they don't match what you can see.
>
> I don't wanted to blame you to fake anything.
That's how it sound, as I gave the exact command used, and the exact
init file. Never mind.
> But we must exactly know in which environment you made this test to
> know where we have to dig, or how we could try to reproduce.
>
>> There is no Helm in Emacs itself, so how would that work otherwise?
>>
>> I fully agree, though, that I should have chosen:
>>
>> (add-to-list 'load-path "~/.emacs.d/elpa/helm-20150614.2253/")
>> (load-library "helm-autoloads.el")
>>
>> over:
>>
>> (load-library "~/.emacs.d/elpa/helm-20150614.2253/helm-autoloads.el")
>>
>> but I don't think it does change anything to the observed behavior.
>
> We need to be sure that there is no third party or private config stuff
> involved in your issue.
That's precisely why I've done everything to be able to reproduce it
with "emacs -Q" and just load the minimal config file needed to make the
problem occur ("-l helm-bug.el") within Windows Emacs.
> If I don't understand how helm had been localized and loaded in your
> example, I can't be sure. Maybe I'm overlooking something, I just
> want to understand it. In my helm-autoloads.el, there is no path to
> helm included. Mmh, wait, I guess you installed Helm via Melpa? Then
> helm-autoloads includes a reference to the path.
OK, I understand where your confusion comes from. Yes, I do use Helm
from MELPA.
> Anyway, do you feel in position to give debugging yourself with the
> Emacs debugger a try? We don't seem to be able to reproduce your
> problem, and debugging should be not hard, given you know you to use
> the debugger, of course. You would just have to step through the code
> and watch until something is called that moves point one char
> backwards.
>
> FWIW, it's unlikely that there is any obvious error in the helm code
> causing this. AFAIKT we only call `insert' to insert the string,
> that's it. Probably the error happens due to a problem only appearing
> with helm and org and org-table and flyspell used together, dunno.
> That you see the bug only in one Emacs installation makes this even
> stranger.
I loaded edebug, and instrumented `helm-show-kill-ring' (via C-u C-M-x),
then tried to reproduce my recipe, but I'm already lost with this:
--8<---------------cut here---------------start------------->8---
Debugger entered: nil
edebug--display-1(nil 0 before)
edebug--display(nil 0 before)
edebug-debugger(0 before nil)
edebug-before(0)
(edebug-after (edebug-before 0) 4 (let ((enable-recursive-minibuffers t)) (edebug-after (edebug-before 1) 3 (helm :sources (edebug-after 0 2 helm-source-kill-ring) :buffer "*helm kill ring*" :resume (quote noresume) :allow-nest t))))
(closure (helm-kill-ring-threshold helm-kill-ring-max-lines-number helm-register-max-offset helm-kill-ring-map helm-source-kill-ring helm-source-mark-ring helm-source-global-mark-ring helm-source-register t) nil (edebug-after (edebug-before 0) 4 (let ((enable-recursive-minibuffers t)) (edebug-after (edebug-before 1) 3 (helm :sources (edebug-after 0 2 helm-source-kill-ring) :buffer "*helm kill ring*" :resume (quote noresume) :allow-nest t)))))()
edebug-enter(helm-show-kill-ring nil (closure (helm-kill-ring-threshold helm-kill-ring-max-lines-number helm-register-max-offset helm-kill-ring-map helm-source-kill-ring helm-source-mark-ring helm-source-global-mark-ring helm-source-register t) nil (edebug-after (edebug-before 0) 4 (let ((enable-recursive-minibuffers t)) (edebug-after (edebug-before 1) 3 (helm :sources (edebug-after 0 2 helm-source-kill-ring) :buffer "*helm kill ring*" :resume (quote noresume) :allow-nest t))))))
edebug-enter(helm-show-kill-ring nil (closure (helm-kill-ring-threshold helm-kill-ring-max-lines-number helm-register-max-offset helm-kill-ring-map helm-source-kill-ring helm-source-mark-ring helm-source-global-mark-ring helm-source-register t) nil (edebug-after (edebug-before 0) 4 (let ((enable-recursive-minibuffers t)) (edebug-after (edebug-before 1) 3 (helm :sources (edebug-after 0 2 helm-source-kill-ring) :buffer "*helm kill ring*" :resume (quote noresume) :allow-nest t))))))
helm-show-kill-ring()
funcall-interactively(helm-show-kill-ring)
call-interactively(helm-show-kill-ring nil nil)
command-execute(helm-show-kill-ring)
--8<---------------cut here---------------end--------------->8---
Do you understand what's wrong with Edebug?