unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Elisp questions... where to ask?
@ 2007-12-15  6:30 Santanu
  2007-12-15 10:56 ` Johan Bockgård
  0 siblings, 1 reply; 4+ messages in thread
From: Santanu @ 2007-12-15  6:30 UTC (permalink / raw)
  To: help-gnu-emacs

Hi Everybody,
Where should I ask my elisp (for GNU Emacs) related questions? If this
is
the place, could you please help me solve this problem I am facing:

I wrote the following piece of code in the scratch buffer:
---------------------------------------------------------------------------------
(define-skeleton test1
  "Prompt for name"
  "name:" str ?  (test2)) <Ctrl+x, Ctrl+e>

(define-skeleton test2
  "Prompt for surname"
  "surname:" str) <Ctrl+x, Ctrl+e>

(test1) <Ctrl+x, Ctrl+e> santanu chatterjee
---------------------------------------------------------------------------------
Now when I run the test1 function, and give "santanu" and
"chatterjee" as the inputs to the two prompts, I get the result
as shown above. But that happens in Emacs 21.x. But in
Emacs 22.x and above, this creates some kind of infinite
recursion, and I am placed in a debug buffer.

Can you reproduce the same thing in your system? If so,
could you let me know what exactly should be done to make
this run in emacs 22.x and above. I tried to go through the
emacs NEWS for 22.x and I did find some things related to
skeleton.el, but due to my lack of knowledge of elisp, I could
not make out much from it.

Thanks i advance for your help.

Regards,
Santanu Chatterjee

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Elisp questions... where to ask?
  2007-12-15  6:30 Elisp questions... where to ask? Santanu
@ 2007-12-15 10:56 ` Johan Bockgård
  2007-12-17  6:10   ` Santanu
  2007-12-17  6:59   ` Santanu
  0 siblings, 2 replies; 4+ messages in thread
From: Johan Bockgård @ 2007-12-15 10:56 UTC (permalink / raw)
  To: help-gnu-emacs

Santanu <thisissantanu@gmail.com> writes:

> I wrote the following piece of code in the scratch buffer:
> ---------------------------------------------------------------------------------
> (define-skeleton test1
>   "Prompt for name"
>   "name:" str ?  (test2)) <Ctrl+x, Ctrl+e>
>
> (define-skeleton test2
>   "Prompt for surname"
>   "surname:" str) <Ctrl+x, Ctrl+e>
>
> (test1) <Ctrl+x, Ctrl+e> santanu chatterjee
> ---------------------------------------------------------------------------------
> Now when I run the test1 function, and give "santanu" and
> "chatterjee" as the inputs to the two prompts, I get the result
> as shown above. But that happens in Emacs 21.x. But in
> Emacs 22.x and above, this creates some kind of infinite
> recursion, and I am placed in a debug buffer.
>
> Can you reproduce the same thing in your system? If so,
> could you let me know what exactly should be done to make
> this run in emacs 22.x and above. I tried to go through the
> emacs NEWS for 22.x and I did find some things related to
> skeleton.el, but due to my lack of knowledge of elisp, I could
> not make out much from it.

This seems to be a bug in skeleton.  There was a change made to
skeleton-proxy-new

    ;; Return non-nil to tell expand-abbrev that expansion has happened.
    ;; Otherwise the no-self-insert is ignored.
    t)

but skeleton-internal-1 is not prepared to handle `t' returned from a
subskeleton.


This seems to do the right thing:

*** skeleton.el.~1.51.~	2007-08-14 19:24:04.000000000 +0200
--- skeleton.el	2007-12-15 11:28:36.000000000 +0100
***************
*** 424,429 ****
--- 424,430 ----
  	(skeleton-internal-list element (car literal))
  	(setq literal (cdr literal)))))
     ((null element))
+    ((eq t element))
     (t (skeleton-internal-1 (eval element) t recursive))))
  \f
  ;; Maybe belongs into simple.el or elsewhere


-- 
Johan Bockgård

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Elisp questions... where to ask?
  2007-12-15 10:56 ` Johan Bockgård
@ 2007-12-17  6:10   ` Santanu
  2007-12-17  6:59   ` Santanu
  1 sibling, 0 replies; 4+ messages in thread
From: Santanu @ 2007-12-17  6:10 UTC (permalink / raw)
  To: help-gnu-emacs

On Dec 15, 3:56 pm, bojohan+n...@dd.chalmers.se (Johan Bockgård)
wrote:

> This seems to be a bug in skeleton.  There was a change made to
> skeleton-proxy-new
>
>     ;; Return non-nil to tell expand-abbrev that expansion has happened.
>     ;; Otherwise the no-self-insert is ignored.
>     t)
>
> but skeleton-internal-1 is not prepared to handle `t' returned from a
> subskeleton.
>
> This seems to do the right thing:
>
> *** skeleton.el.~1.51.~ 2007-08-14 19:24:04.000000000 +0200
> --- skeleton.el 2007-12-15 11:28:36.000000000 +0100
> ***************
> *** 424,429 ****
> --- 424,430 ----
>         (skeleton-internal-list element (car literal))
>         (setq literal (cdr literal)))))
>      ((null element))
> +    ((eq t element))
>      (t (skeleton-internal-1 (eval element) t recursive))))
>
>   ;; Maybe belongs into simple.el or elsewhere

Thanks for the response. I will try to incorporate this patch in
skeleton.el
and see if this works.

Regards,
Santanu

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Elisp questions... where to ask?
  2007-12-15 10:56 ` Johan Bockgård
  2007-12-17  6:10   ` Santanu
@ 2007-12-17  6:59   ` Santanu
  1 sibling, 0 replies; 4+ messages in thread
From: Santanu @ 2007-12-17  6:59 UTC (permalink / raw)
  To: help-gnu-emacs

On Dec 15, 3:56 pm, bojohan+n...@dd.chalmers.se (Johan Bockgård)
wrote:

> This seems to do the right thing:
>
> *** skeleton.el.~1.51.~ 2007-08-14 19:24:04.000000000 +0200
> --- skeleton.el 2007-12-15 11:28:36.000000000 +0100
> ***************
> *** 424,429 ****
> --- 424,430 ----
>         (skeleton-internal-list element (car literal))
>         (setq literal (cdr literal)))))
>      ((null element))
> +    ((eq t element))
>      (t (skeleton-internal-1 (eval element) t recursive))))
>
>   ;; Maybe belongs into simple.el or elsewhere
>

Just now I tried your patch. It seems to work perfectly. As a result
now, my verilog-mode works flawlessly in emacs-22.x (the verilog-mode
had similar code that was causing problems).

Thanks a lot for your help.

Regards,
Santanu

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-12-17  6:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-15  6:30 Elisp questions... where to ask? Santanu
2007-12-15 10:56 ` Johan Bockgård
2007-12-17  6:10   ` Santanu
2007-12-17  6:59   ` Santanu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).