Ticket #173: wrap-function-to-control-ime-patch.el

File wrap-function-to-control-ime-patch.el, 2.0 kB (added by anonymous, 3 years ago)
Line 
1 ;;; wrap-function-to-control-ime-patch.el
2 ;;; ƒpƒbƒ`‚ð‚ ‚Ä‚œwrap-function-to-control-ime
3 ;;; ¡¡Fri Sep 23 02:56:57 2005¡¡
4 ;;;
5
6 (defun wrap-function-to-control-ime-patch
7   (function interactive-p interactive-arg &optional suffix)
8   "Wrap FUNCTION, and IME control is enabled when FUNCTION is called. \n\
9 An original function is saved to FUNCTION-SUFFIX when suffix is string. \n\
10 If SUFFIX is nil, \"-original\" is added. \n\
11 ------patch-----------------------------------------------------------\n\
12 ——R‚͂悭‚í‚©‚ç‚È‚¢‚Ì‚Ÿ‚ªAfep-force-off‚ðfep-get-mode‚ªnil‚ɂȂé‚Ü‚Å\n\
13 message‚Ń^ƒCƒ~ƒ“ƒO‚ð‚Æ‚è‚È‚ª‚çŒJ‚è•Ô‚³‚È‚¢‚ƁA‚Ÿ‚߂݂œ‚¢BˆÈ‘O‚à\n\
14 ‚Ȃɂ©Ž—‚œ‚æ‚€‚Ȃ߂ɂ ‚Á‚œ‚±‚Æ‚ªEEE\n\
15 ‚à‚Æ‚Ìwrap-function-to-control-ime‚ð•Ï‚Š‚Ä‚µ‚Ü‚€‚̂͂¿‚å‚Á‚ƐS”z\n\
16 ‚Ȃ̂ŁA•ʊ֐”‚Æ‚µ‚āAy-or-n-p‚ɂ̂ݓK—p‚µ‚œB"
17   ;;;
18   (let ((original-function
19          (intern (concat (symbol-name function)
20                          (if suffix suffix "-original")))))
21     (cond ((not (fboundp original-function))
22            (fset original-function
23                  (symbol-function function))
24            (fset function
25                  (list
26                   'lambda '(&rest arguments)
27                   (if interactive-p
28                       (list 'interactive interactive-arg))
29                   (` (cond ((fep-get-mode)
30                             (progn
31                               ;; ‰ñ‚µ‚Ä‚¢‚éB’P”­‚Ÿ‚ƁA‚€‚Ü‚­‚¢‚©‚È‚¢
32                               ;; ‚±‚Æ‚ª‚í‚©‚Á‚Ä‚¢‚éB
33                               (while (fep-get-mode)
34                                 (fep-force-off)
35                                 ;; off‚É‚µ‚Ä‚©‚ç‘Ò‚¿‚ð‚š‚©‚È‚¢‚Æ
36                                 ;; ‚Ç‚€‚à‚·‚蔲‚¯‚邿‚€‚ŸB‚»‚Ì‚œ‚ß‚Ì
37                                 ;; ‘Ò‚¿‚ð‚Ç‚€‚¢‚ê‚é‚©AŽÀŒ±‚Ì‚ ‚ƁB
38                                 ;; (sit-for 0) ;;xx
39                                 ;; (sit-for 0)(sit-for 0) ;;xx
40                                 ;; (message "") ;;xx
41                                 ;; (message "off") ;;oo
42                                 ;;
43                                 (message " ") ;;oo
44                                 ;; (message "")(message "") ;;oo
45                                 ;; ‚È‚šAmw32‚Ífep‚æ‚è‚à‰ºˆÊ‚É‚ ‚é
46                                 ;; ‚炵‚­A‚Ÿ‚߁B
47                                 ;; (mw32-ime-toggle)
48                                 )
49                               )
50                             ;; ˆÈ‰º‚̓IƒŠƒWƒiƒ‹‚̂܂܁B
51                             (unwind-protect
52                                 (apply '(, original-function) arguments)
53                               (if mw32-ime-state
54                                   (fep-force-on))))
55                            (t
56                             (apply '(, original-function)
57                                    arguments))))))))))
58 ;;; end
59