decouty@caroline.irisa.fr (Bertrand Decouty) (12/06/89)
I am currently trying to make the following cmd file work.
; readhook
set $readhook execute-macro-20
20 store-macro
set %rctmp &mid $cfname &sub %rctmp 1 2
!if &or &seq %rctmp ".c" &seq %rctmp ".h" ; if .c or .h file
add-mode "cmode"
add-mode "magic"
; extract from cpage.cmd
save-window
1 next-window ; should be Function Keys buffer
beginning-of-file
set $curcol 40
overwrite-string " F1 PROCEDURE F2 function "
next-line
set $curcol 40
overwrite-string " F3 if then else F4 while "
beginning-of-file
!force restore-window
!endif
!endm
Goal: when i load a .c or .h file, i want to load special bindings AND i
want to display in Function Keys buffer more help.
This works fine when the C file is loaded from emacs (^x^f foo.c)
But when i call 'emacs foo.c', emacs executes the cmd file, creates
foo.c buffer (and places the cursor in it) but DO NOT read foo.c.
It reads it if I do a ^XX (next buffer).
Looking at $cbufname, before the save-window, $cbufname=foo.c, after the
restore-window, $cbufname=main. So, i think there is some trouble with
save/restore window when emacs is called with a file name.
If i do this in bufhook bound macro, all is fine BUT, as bufhook is not called
when finding another file (only readhook), it is not the right place.
Any comment from a microemacs guru?
I use microemacs 3.10, with the patches submitted in this newsgroup (and
with a get1key patch from Richard G. Knowles (richk@pogo.WV.TEK.COM),
thanks to him, which enables you to use, along with termcap function
keys definition, all your function keys (if you write the correct
keycode handler). Really great. Now, me310 runs
(almost) perfectly on my Sun3, no more A B C D in my files!
Last question (to Daniel Lawrence): when do you anticipate to release
the next version?
Thank you very much.
Bertrand Decouty
| Bertrand DECOUTY | EMAIL : decouty@irisa.fr, decouty@irisa.uucp |
| IRISA - INRIA | {uunet,mcvax,inria}!irisa!decouty |
| Campus de Beaulieu | PHONE : +33 99 36 20 00 |
| F-35042 Rennes Cedex - FRANCE| FAX : +33 99 38 38 32 | TELEX: 950473 UNIRISA|