Mercurial > hg > xemacs-beta
comparison lisp/egg/egg.el @ 98:0d2f883870bc r20-1b1
Import from CVS: tag r20-1b1
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:13:56 +0200 |
parents | 131b0175ea99 |
children | fe104dbd9147 |
comparison
equal
deleted
inserted
replaced
97:498bf5da1c90 | 98:0d2f883870bc |
---|---|
59 ;;;=================================================================== | 59 ;;;=================================================================== |
60 ;;; | 60 ;;; |
61 ;;; (eval-when (load) (require 'wnn-client)) | 61 ;;; (eval-when (load) (require 'wnn-client)) |
62 ;;; | 62 ;;; |
63 | 63 |
64 (defvar egg-version "3.09" "Version number of this version of Egg. ") | 64 ; last master version |
65 ;;; (defvar egg-version "3.09" "Version number of this version of Egg. ") | |
65 ;;; Last modified date: Fri Sep 25 12:59:00 1992 | 66 ;;; Last modified date: Fri Sep 25 12:59:00 1992 |
67 (defvar egg-version "3.09 xemacs" "Version number of this version of Egg. ") | |
68 ;;; Last modified date: Wed Feb 05 20:45:00 1997 | |
66 | 69 |
67 ;;;; $B=$@5MW5a%j%9%H(B | 70 ;;;; $B=$@5MW5a%j%9%H(B |
68 | 71 |
69 ;;;; read-hiragana-string, read-kanji-string $B$G;HMQ$9$kJ?2>L>F~NO%^%C%W$r(B roma-kana $B$K8GDj$7$J$$$GM_$7$$!%(B | 72 ;;;; read-hiragana-string, read-kanji-string $B$G;HMQ$9$kJ?2>L>F~NO%^%C%W$r(B roma-kana $B$K8GDj$7$J$$$GM_$7$$!%(B |
70 | 73 |
71 ;;;; $B=$@5%a%b(B | 74 ;;;; $B=$@5%a%b(B |
75 | |
76 ;;; 97.2.05 modified by J.Hein <jhod@po.iijnet.or.jp> | |
77 ;;; Lots of mods to make it XEmacs workable. Most fixes revolve around the fact that | |
78 ;;; Mule/et al assumes that all events are keypress events unless specified otherwise. | |
79 ;;; Also modified to work with the new charset names and API | |
72 | 80 |
73 ;;; 95.6.5 modified by S.Tomura <tomura@etl.go.jp> | 81 ;;; 95.6.5 modified by S.Tomura <tomura@etl.go.jp> |
74 ;;; $BJQ49D>8e$KO"B3$7$FJQ49$9$k>l9g$rG'<1$9$k$?$a$K!"(B"-in-cont" $B$K4XO"$7$?(B | 82 ;;; $BJQ49D>8e$KO"B3$7$FJQ49$9$k>l9g$rG'<1$9$k$?$a$K!"(B"-in-cont" $B$K4XO"$7$?(B |
75 ;;; $BItJ,$rDI2C$7$?!#!J$3$NItJ,$O>-Mh:F=$@5$9$kM=Dj!#!K(B | 83 ;;; $BItJ,$rDI2C$7$?!#!J$3$NItJ,$O>-Mh:F=$@5$9$kM=Dj!#!K(B |
76 | 84 |
382 ;;;; Aug-25-88 menu command$B$K(B\C-l: redraw $B$rDI2C$7$?!#(B | 390 ;;;; Aug-25-88 menu command$B$K(B\C-l: redraw $B$rDI2C$7$?!#(B |
383 | 391 |
384 ;;;; Aug-25-88 toroku-region$B$GEPO?$9$kJ8;zNs$+$i(Bno graphic character$B$r(B | 392 ;;;; Aug-25-88 toroku-region$B$GEPO?$9$kJ8;zNs$+$i(Bno graphic character$B$r(B |
385 ;;;; $B<+F0E*$K=|$/$3$H$K$7$?!#(B | 393 ;;;; $B<+F0E*$K=|$/$3$H$K$7$?!#(B |
386 | 394 |
395 (provide 'egg) | |
396 | |
387 ;; XEmacs addition: (and remove disable-undo variable) | 397 ;; XEmacs addition: (and remove disable-undo variable) |
388 ;; For Emacs V18/Nemacs compatibility | 398 ;; For Emacs V18/Nemacs compatibility |
389 (and (not (fboundp 'buffer-disable-undo)) | 399 (and (not (fboundp 'buffer-disable-undo)) |
390 (fboundp 'buffer-flush-undo) | 400 (fboundp 'buffer-flush-undo) |
391 (defalias 'buffer-disable-undo 'buffer-flush-undo)) | 401 (defalias 'buffer-disable-undo 'buffer-flush-undo)) |
402 | |
403 ;; 97.2.4 Created by J.Hein to simulate Mule-2.3 | |
404 (defun read-event () | |
405 "Cheap 'n cheesy event filter to facilitate translation from Mule-2.3" | |
406 (setq event (make-event)) | |
407 (while (progn | |
408 (next-event event) | |
409 (not (key-press-event-p event))) | |
410 (dispatch-event event)) | |
411 (event-key event)) | |
392 | 412 |
393 (eval-when-compile (require 'egg-jsymbol)) | 413 (eval-when-compile (require 'egg-jsymbol)) |
394 | 414 |
395 ;;;---------------------------------------------------------------------- | 415 ;;;---------------------------------------------------------------------- |
396 ;;; | 416 ;;; |
428 ;;;---------------------------------------------------------------------- | 448 ;;;---------------------------------------------------------------------- |
429 | 449 |
430 ;;; | 450 ;;; |
431 ;;;; | 451 ;;;; |
432 | 452 |
433 (defun characterp (form) | |
434 (numberp form)) | |
435 | |
436 (defun coerce-string (form) | 453 (defun coerce-string (form) |
437 (cond((stringp form) form) | 454 (cond((stringp form) form) |
438 ((characterp form) (char-to-string form)))) | 455 ((characterp form) (char-to-string form)))) |
439 | 456 |
440 (defun coerce-internal-string (form) | 457 (defun coerce-internal-string (form) |
441 (cond((stringp form) | 458 (cond((stringp form) |
442 (if (= (chars-in-string form) 1) | 459 (if (= (length form) 1) |
443 (string-to-char form) | 460 (string-to-char form) |
444 form)) | 461 form)) |
445 ((characterp form) form))) | 462 ((characterp form) form))) |
446 | 463 |
447 ;;; kill-all-local-variables $B$+$iJ]8n$9$k(B local variables $B$r;XDj$G$-$k(B | 464 ;;; kill-all-local-variables $B$+$iJ]8n$9$k(B local variables $B$r;XDj$G$-$k(B |
469 (defun insert-jis-code-from-minibuffer (prompt) | 486 (defun insert-jis-code-from-minibuffer (prompt) |
470 (let ((str (read-from-minibuffer prompt)) val) | 487 (let ((str (read-from-minibuffer prompt)) val) |
471 (while (null (setq val (read-jis-code-from-string str))) | 488 (while (null (setq val (read-jis-code-from-string str))) |
472 (beep) | 489 (beep) |
473 (setq str (read-from-minibuffer prompt str))) | 490 (setq str (read-from-minibuffer prompt str))) |
474 (insert (make-character lc-jp (car val) (cdr val))))) | 491 (insert (make-char (find-charset 'japanese-jisx0208) (car val) (cdr val))))) |
475 | 492 |
476 (defun hexadigit-value (ch) | 493 (defun hexadigit-value (ch) |
477 (cond((and (<= ?0 ch) (<= ch ?9)) | 494 (cond((and (<= ?0 ch) (<= ch ?9)) |
478 (- ch ?0)) | 495 (- ch ?0)) |
479 ((and (<= ?a ch) (<= ch ?f)) | 496 ((and (<= ?a ch) (<= ch ?f)) |
763 (setq p (+ p (length (nth m menu:*select-menus*)))) | 780 (setq p (+ p (length (nth m menu:*select-menus*)))) |
764 (setq m (1+ m))) | 781 (setq m (1+ m))) |
765 (+ p menu:*select-item-no*))) | 782 (+ p menu:*select-item-no*))) |
766 | 783 |
767 (defun menu:select-goto-item-position (pos) | 784 (defun menu:select-goto-item-position (pos) |
768 (let ((m 0) (i 0) (p 0)) | 785 (let ((m 0) (p 0)) |
769 (while (<= (+ p (length (nth m menu:*select-menus*))) pos) | 786 (while (<= (+ p (length (nth m menu:*select-menus*))) pos) |
770 (setq p (+ p (length (nth m menu:*select-menus*)))) | 787 (setq p (+ p (length (nth m menu:*select-menus*)))) |
771 (setq m (1+ m))) | 788 (setq m (1+ m))) |
772 (setq menu:*select-item-no* (- pos p)) | 789 (setq menu:*select-item-no* (- pos p)) |
773 (menu:select-goto-menu m))) | 790 (menu:select-goto-menu m))) |
815 | 832 |
816 (defvar menu:*display-item-value* nil) | 833 (defvar menu:*display-item-value* nil) |
817 | 834 |
818 (defun menu:item-string (item) | 835 (defun menu:item-string (item) |
819 (cond((stringp item) item) | 836 (cond((stringp item) item) |
820 ((numberp item) (char-to-string item)) | 837 ((characterp item) (char-to-string item)) |
821 ((consp item) | 838 ((consp item) |
822 (if menu:*display-item-value* | 839 (if menu:*display-item-value* |
823 (format "%s [%s]" | 840 (format "%s [%s]" |
824 (cond ((stringp (car item)) (car item)) | 841 (cond ((stringp (car item)) (car item)) |
825 ((numberp (car item)) (char-to-string (car item))) | 842 ((characterp (car item)) (char-to-string (car item))) |
826 (t "")) | 843 (t "")) |
827 (cdr item)) | 844 (cdr item)) |
828 (cond ((stringp (car item)) | 845 (cond ((stringp (car item)) |
829 (car item)) | 846 (car item)) |
830 ((numberp (car item)) | 847 ((characterp (car item)) |
831 (char-to-string (car item))) | 848 (char-to-string (car item))) |
832 (t "")))) | 849 (t "")))) |
833 (t ""))) | 850 (t ""))) |
834 | 851 |
835 (defun menu:item-value (item) | 852 (defun menu:item-value (item) |
903 (goto-char start) | 920 (goto-char start) |
904 (while (re-search-forward kanji-katakana end end) | 921 (while (re-search-forward kanji-katakana end end) |
905 (let ((ch (preceding-char))) | 922 (let ((ch (preceding-char))) |
906 (cond( (<= ch ?$B%s(B) | 923 (cond( (<= ch ?$B%s(B) |
907 (delete-char -1) | 924 (delete-char -1) |
908 (insert (make-character lc-jp ?\244 (char-component ch 2)))))))) | 925 (insert (make-char (find-charset 'japanese-jisx0208) 36 (char-octet ch 1)))))))) |
909 | 926 |
910 (defun hiragana-paragraph () | 927 (defun hiragana-paragraph () |
911 "hiragana paragraph at or after point." | 928 "hiragana paragraph at or after point." |
912 (interactive ) | 929 (interactive ) |
913 (save-excursion | 930 (save-excursion |
929 ;;; $B%+%?%+%JJQ49(B | 946 ;;; $B%+%?%+%JJQ49(B |
930 ;;; | 947 ;;; |
931 | 948 |
932 (defun katakana-region (start end) | 949 (defun katakana-region (start end) |
933 (interactive "r") | 950 (interactive "r") |
934 (let ((point (point))) | 951 (goto-char start) |
935 (goto-char start) | 952 (while (re-search-forward kanji-hiragana end end) |
936 (while (re-search-forward kanji-hiragana end end) | 953 (let ((ch (char-octet (preceding-char) 1))) |
937 (let ((ch (char-component (preceding-char) 2))) | 954 (delete-char -1) |
938 (delete-char -1) | 955 (insert (make-char (find-charset 'japanese-jisx0208) 37 ch))))) |
939 (insert (make-character lc-jp ?\245 ch)))))) | |
940 | 956 |
941 (defun katakana-paragraph () | 957 (defun katakana-paragraph () |
942 "katakana paragraph at or after point." | 958 "katakana paragraph at or after point." |
943 (interactive ) | 959 (interactive ) |
944 (save-excursion | 960 (save-excursion |
965 (save-restriction | 981 (save-restriction |
966 (narrow-to-region start end) | 982 (narrow-to-region start end) |
967 (goto-char (point-min)) | 983 (goto-char (point-min)) |
968 (while (re-search-forward "\\cS\\|\\cA" (point-max) (point-max)) | 984 (while (re-search-forward "\\cS\\|\\cA" (point-max) (point-max)) |
969 (let* ((ch (preceding-char)) | 985 (let* ((ch (preceding-char)) |
970 (ch1 (char-component ch 1)) | 986 (ch1 (char-octet ch 0)) |
971 (ch2 (char-component ch 2))) | 987 (ch2 (char-octet ch 1))) |
972 (cond ((= ?\241 ch1) | 988 (cond ((= ?\241 ch1) |
973 (let ((val (cdr (assq ch2 *hankaku-alist*)))) | 989 (let ((val (cdr (assq ch2 *hankaku-alist*)))) |
974 (if val (progn | 990 (if val (progn |
975 (delete-char -1) | 991 (delete-char -1) |
976 (insert val))))) | 992 (insert val))))) |
1052 (if (and (<= ? ch) (<= ch ?~)) | 1068 (if (and (<= ? ch) (<= ch ?~)) |
1053 (progn | 1069 (progn |
1054 (delete-char -1) | 1070 (delete-char -1) |
1055 (let ((zen (cdr (assq ch *zenkaku-alist*)))) | 1071 (let ((zen (cdr (assq ch *zenkaku-alist*)))) |
1056 (if zen (insert zen) | 1072 (if zen (insert zen) |
1057 (insert (make-character lc-jp ?\243 (+ ?\200 ch))))))))))) | 1073 (insert (make-char (find-charset 'japanese-jisx0208) 38 ch)))))))))) |
1058 | 1074 |
1059 (defun zenkaku-paragraph () | 1075 (defun zenkaku-paragraph () |
1060 "zenkaku paragraph at or after point." | 1076 "zenkaku paragraph at or after point." |
1061 (interactive ) | 1077 (interactive ) |
1062 (save-excursion | 1078 (save-excursion |
1337 "ACITION $B$,(B standard-action $B$G$"$k$+$I$&$+$rH=Dj$9$k!%(B" | 1353 "ACITION $B$,(B standard-action $B$G$"$k$+$I$&$+$rH=Dj$9$k!%(B" |
1338 (or (stringp action) | 1354 (or (stringp action) |
1339 (and (consp action) | 1355 (and (consp action) |
1340 (or (stringp (car action)) | 1356 (or (stringp (car action)) |
1341 (and (consp (car action)) | 1357 (and (consp (car action)) |
1342 (numberp (car (car action)))) | 1358 (characterp (car (car action)))) |
1343 (null (car action))) | 1359 (null (car action))) |
1344 (or (null (car (cdr action))) | 1360 (or (null (car (cdr action))) |
1345 (stringp (car (cdr action))))))) | 1361 (stringp (car (cdr action))))))) |
1346 | 1362 |
1347 (defvar its:make-terminal-state 'its:default-make-terminal-state | 1363 (defvar its:make-terminal-state 'its:default-make-terminal-state |
1568 ;;; | 1584 ;;; |
1569 ;;; emacs $B$G$O(B $BJ8;z%3!<%I$O(B 0-127 $B$G07$&!#(B | 1585 ;;; emacs $B$G$O(B $BJ8;z%3!<%I$O(B 0-127 $B$G07$&!#(B |
1570 ;;; | 1586 ;;; |
1571 | 1587 |
1572 (defvar its:*buff-s* (make-marker)) | 1588 (defvar its:*buff-s* (make-marker)) |
1573 (defvar its:*buff-e* (set-marker-type (make-marker) t)) | 1589 (defvar its:*buff-e* (make-marker)) |
1590 (set-marker-insertion-type its:*buff-e* t) | |
1574 | 1591 |
1575 ;;; STATE unread | 1592 ;;; STATE unread |
1576 ;;; |<-s p->|<- e ->| | 1593 ;;; |<-s p->|<- e ->| |
1577 ;;; s : ch0 state0 map0 | 1594 ;;; s : ch0 state0 map0 |
1578 ;;; +1: ch1 state1 map1 | 1595 ;;; +1: ch1 state1 map1 |
1626 (setq from (1+ from))))) | 1643 (setq from (1+ from))))) |
1627 | 1644 |
1628 (defun its:peek-char () | 1645 (defun its:peek-char () |
1629 (if (= (point) its:*buff-e*) | 1646 (if (= (point) its:*buff-e*) |
1630 (if its:*interactive* | 1647 (if its:*interactive* |
1631 (setq unread-command-events (list (read-event))) | 1648 (setq unread-command-events (list (character-to-event(read-event)))) |
1632 nil) | 1649 nil) |
1633 (following-char))) | 1650 (following-char))) |
1634 | 1651 |
1635 (defun its:read-char () | 1652 (defun its:read-char () |
1636 (if (= (point) its:*buff-e*) | 1653 (if (= (point) its:*buff-e*) |
1646 | 1663 |
1647 (defun its:push-char (ch) | 1664 (defun its:push-char (ch) |
1648 (if its:*char-from-buff* | 1665 (if its:*char-from-buff* |
1649 (save-excursion | 1666 (save-excursion |
1650 (its:insert-char ch)) | 1667 (its:insert-char ch)) |
1651 (if ch (setq unread-command-events (list ch))))) | 1668 (if ch (setq unread-command-events (list (character-to-event ch)))))) |
1652 | 1669 |
1653 (defun its:insert-char (ch) | 1670 (defun its:insert-char (ch) |
1654 (insert ch)) | 1671 (insert ch)) |
1655 | 1672 |
1656 (defun its:ordinal-charp (ch) | 1673 (defun its:ordinal-charp (ch) |
1657 (and (numberp ch) (<= ch 127) | 1674 (and (characterp ch) (<= ch 127) |
1658 (eq (lookup-key fence-mode-map (char-to-string ch)) 'fence-self-insert-command))) | 1675 (eq (lookup-key fence-mode-map (char-to-string ch)) 'fence-self-insert-command))) |
1659 | 1676 |
1660 (defun its:delete-charp (ch) | 1677 (defun its:delete-charp (ch) |
1661 (and (numberp ch) (<= ch 127) | 1678 (and (characterp ch) (<= ch 127) |
1662 (eq (lookup-key fence-mode-map (char-to-string ch)) 'fence-backward-delete-char))) | 1679 (eq (lookup-key fence-mode-map (char-to-string ch)) 'fence-backward-delete-char))) |
1663 | 1680 |
1664 (defun fence-self-insert-command () | 1681 (defun fence-self-insert-command () |
1665 (interactive) | 1682 (interactive) |
1683 (setq ch (event-to-character last-command-event)) | |
1666 (cond((or (not egg:*input-mode*) | 1684 (cond((or (not egg:*input-mode*) |
1667 (null (get-next-map its:*current-map* last-command-event))) | 1685 (null (get-next-map its:*current-map* ch))) |
1668 (insert last-command-event)) | 1686 (insert ch)) |
1669 (t | 1687 (t |
1670 (insert last-command-event) | 1688 (insert ch) |
1671 (its:translate-region (1- (point)) (point) t)))) | 1689 (its:translate-region (1- (point)) (point) t)))) |
1672 | 1690 |
1673 ;;; | 1691 ;;; |
1674 ;;; its: completing-read system | 1692 ;;; its: completing-read system |
1675 ;;; | 1693 ;;; |
1705 ;;; 92.9.19 by Y. Kawabe, 92.10.30 by T.Saneto | 1723 ;;; 92.9.19 by Y. Kawabe, 92.10.30 by T.Saneto |
1706 (delete-region (point) (point-max)) | 1724 (delete-region (point) (point-max)) |
1707 (if quit-flag | 1725 (if quit-flag |
1708 (progn | 1726 (progn |
1709 (setq quit-flag nil) | 1727 (setq quit-flag nil) |
1710 (setq unread-command-events (list ?\^G)))))) | 1728 (setq unread-command-events (list (character-to-event ?\^G))))))) |
1711 | 1729 |
1712 (defun car-string-lessp (item1 item2) | 1730 (defun car-string-lessp (item1 item2) |
1713 (string-lessp (car item1) (car item2))) | 1731 (string-lessp (car item1) (car item2))) |
1714 | 1732 |
1715 (defun its:minibuffer-completion-help () | 1733 (defun its:minibuffer-completion-help () |
1802 (if action | 1820 (if action |
1803 (setq its:*make-alist-from-map-result* | 1821 (setq its:*make-alist-from-map-result* |
1804 (cons (list string | 1822 (cons (list string |
1805 (let ((action-output (action-output action))) | 1823 (let ((action-output (action-output action))) |
1806 (cond((and (consp action-output) | 1824 (cond((and (consp action-output) |
1807 (numberp (car action-output))) | 1825 (characterp (car action-output))) |
1808 (format "%s..." | 1826 (format "%s..." |
1809 (nth (car action-output) (cdr action-output)))) | 1827 (nth (car action-output) (cdr action-output)))) |
1810 ((stringp action-output) | 1828 ((stringp action-output) |
1811 action-output) | 1829 action-output) |
1812 (t | 1830 (t |
1886 (setq ch (its:read-char)) | 1904 (setq ch (its:read-char)) |
1887 (setq newmap (get-next-map map ch)) | 1905 (setq newmap (get-next-map map ch)) |
1888 (setq action (get-action newmap)) | 1906 (setq action (get-action newmap)) |
1889 | 1907 |
1890 (cond | 1908 (cond |
1891 ((and its:*interactive* (not its:*char-from-buff*) (numberp ch) (= ch ?\^@)) | 1909 ((and its:*interactive* (not its:*char-from-buff*) (characterp ch) (= ch ?\^@)) |
1892 (delete-region its:*buff-s* (point)) | 1910 (delete-region its:*buff-s* (point)) |
1893 (let ((i 1)) | 1911 (let ((i 1)) |
1894 (while (<= i its:*level*) | 1912 (while (<= i its:*level*) |
1895 (insert (aref its:*inputs* i)) | 1913 (insert (aref its:*inputs* i)) |
1896 (setq i (1+ i)))) | 1914 (setq i (1+ i)))) |
2079 (funcall its:*display-status-string* (map-state map)) | 2097 (funcall its:*display-status-string* (map-state map)) |
2080 (insert (map-state map)))))) | 2098 (insert (map-state map)))))) |
2081 | 2099 |
2082 (set-marker its:*buff-s* nil) | 2100 (set-marker its:*buff-s* nil) |
2083 (set-marker its:*buff-e* nil) | 2101 (set-marker its:*buff-e* nil) |
2084 (if (and its:*interactive* ch) (setq unread-command-events (list ch))) | 2102 (if (and its:*interactive* ch) (setq unread-command-events (list (character-to-event ch)))) |
2085 )) | 2103 )) |
2086 | 2104 |
2087 ;;;---------------------------------------------------------------------- | 2105 ;;;---------------------------------------------------------------------- |
2088 ;;; | 2106 ;;; |
2089 ;;; ITS-map dump routine: | 2107 ;;; ITS-map dump routine: |
2187 | 2205 |
2188 ;;; | 2206 ;;; |
2189 ;;; | 2207 ;;; |
2190 ;;; | 2208 ;;; |
2191 | 2209 |
2192 (defvar its:*reset-mode-line-format* nil) | 2210 (defvar its:*reset-modeline-format* nil) |
2193 | 2211 |
2194 (if its:*reset-mode-line-format* | 2212 (if its:*reset-modeline-format* |
2195 (setq-default mode-line-format | 2213 (setq-default modeline-format |
2196 (cdr mode-line-format))) | 2214 (cdr modeline-format))) |
2197 | 2215 |
2198 (if (not (egg:find-symbol-in-tree 'mode-line-egg-mode mode-line-format)) | 2216 (if (not (egg:find-symbol-in-tree 'mode-line-egg-mode modeline-format)) |
2199 (setq-default | 2217 (setq-default |
2200 mode-line-format | 2218 modeline-format |
2201 (cons (list 'mc-flag | 2219 (cons (list 'display-minibuffer-mode-in-minibuffer |
2202 (list 'display-minibuffer-mode-in-minibuffer | 2220 ;;; minibuffer mode in minibuffer |
2203 ;;; minibuffer mode in minibuffer | 2221 (list |
2204 (list | 2222 (list 'its:*previous-map* "<" "[") |
2205 (list 'its:*previous-map* "<" "[") | 2223 'mode-line-egg-mode |
2206 'mode-line-egg-mode | 2224 (list 'its:*previous-map* ">" "]") |
2207 (list 'its:*previous-map* ">" "]") | 2225 ) |
2208 ) | |
2209 ;;;; minibuffer mode in mode line | 2226 ;;;; minibuffer mode in mode line |
2210 (list | 2227 (list |
2211 (list 'minibuffer-window-selected | 2228 (list 'minibuffer-window-selected |
2212 (list 'display-minibuffer-mode | 2229 (list 'display-minibuffer-mode |
2213 "m" | 2230 "m" |
2214 " ") | |
2215 " ") | 2231 " ") |
2216 (list 'its:*previous-map* "<" "[") | 2232 " ") |
2217 (list 'minibuffer-window-selected | 2233 (list 'its:*previous-map* "<" "[") |
2218 (list 'display-minibuffer-mode | 2234 (list 'minibuffer-window-selected |
2219 'mode-line-egg-mode-in-minibuffer | 2235 (list 'display-minibuffer-mode |
2220 'mode-line-egg-mode) | 2236 'mode-line-egg-mode-in-minibuffer |
2221 'mode-line-egg-mode) | 2237 'mode-line-egg-mode) |
2222 (list 'its:*previous-map* ">" "]") | 2238 'mode-line-egg-mode) |
2223 ))) | 2239 (list 'its:*previous-map* ">" "]") |
2224 mode-line-format))) | 2240 )) |
2241 modeline-format))) | |
2225 | 2242 |
2226 ;;; | 2243 ;;; |
2227 ;;; minibuffer $B$G$N%b!<%II=<($r$9$k$?$a$K(B nemacs 4 $B$GDj5A$5$l$?(B | 2244 ;;; minibuffer $B$G$N%b!<%II=<($r$9$k$?$a$K(B nemacs 4 $B$GDj5A$5$l$?(B |
2228 ;;; minibuffer-preprompt $B$rMxMQ$9$k!%(B | 2245 ;;; minibuffer-preprompt $B$rMxMQ$9$k!%(B |
2229 ;;; | 2246 ;;; |
2274 (interactive (list (completing-read "ITS mode: " its:*mode-alist*))) | 2291 (interactive (list (completing-read "ITS mode: " its:*mode-alist*))) |
2275 (if (its:get-mode-map name) | 2292 (if (its:get-mode-map name) |
2276 (progn | 2293 (progn |
2277 (setq its:*current-map* (its:get-mode-map name)) | 2294 (setq its:*current-map* (its:get-mode-map name)) |
2278 (egg:mode-line-display)) | 2295 (egg:mode-line-display)) |
2279 (beep)) | 2296 (beep))) |
2280 ) | |
2281 | 2297 |
2282 (defvar its:*select-mode-menu* '(menu "Mode:" nil)) | 2298 (defvar its:*select-mode-menu* '(menu "Mode:" nil)) |
2283 | 2299 |
2284 (defun its:select-mode-from-menu () | 2300 (defun its:select-mode-from-menu () |
2285 (interactive) | 2301 (interactive) |
2349 (egg:mode-line-display))) | 2365 (egg:mode-line-display))) |
2350 | 2366 |
2351 | 2367 |
2352 (defun toggle-egg-mode () | 2368 (defun toggle-egg-mode () |
2353 (interactive) | 2369 (interactive) |
2354 (if mc-flag | 2370 (if egg:*mode-on* (fence-toggle-egg-mode) |
2355 (if egg:*mode-on* (fence-toggle-egg-mode) | 2371 (progn |
2356 (progn | 2372 (setq egg:*mode-on* t) |
2357 (setq egg:*mode-on* t) | 2373 (egg:mode-line-display)))) |
2358 (egg:mode-line-display))))) | |
2359 | 2374 |
2360 (defun fence-toggle-egg-mode () | 2375 (defun fence-toggle-egg-mode () |
2361 (interactive) | 2376 (interactive) |
2362 (if its:*current-map* | 2377 (if its:*current-map* |
2363 (progn | 2378 (progn |
2416 | 2431 |
2417 (defconst egg:*fence-open* "|" "*$B%U%'%s%9$N;OE@$r<($9J8;zNs(B") | 2432 (defconst egg:*fence-open* "|" "*$B%U%'%s%9$N;OE@$r<($9J8;zNs(B") |
2418 (defconst egg:*fence-close* "|" "*$B%U%'%s%9$N=*E@$r<($9J8;zNs(B") | 2433 (defconst egg:*fence-close* "|" "*$B%U%'%s%9$N=*E@$r<($9J8;zNs(B") |
2419 (defconst egg:*fence-face* nil "*$B%U%'%s%9I=<($KMQ$$$k(B face $B$^$?$O(B nil") | 2434 (defconst egg:*fence-face* nil "*$B%U%'%s%9I=<($KMQ$$$k(B face $B$^$?$O(B nil") |
2420 (make-variable-buffer-local | 2435 (make-variable-buffer-local |
2421 (defvar egg:*fence-overlay* nil "$B%U%'%s%9I=<(MQ(B overlay")) | 2436 (defvar egg:*fence-extent* nil "$B%U%'%s%9I=<(MQ(B extent")) |
2422 | 2437 |
2423 (defvar egg:*face-alist* | 2438 (defvar egg:*face-alist* |
2424 '(("nil" . nil) | 2439 '(("nil" . nil) |
2425 ("highlight" . highlight) ("modeline" . modeline) | 2440 ("highlight" . highlight) ("modeline" . modeline) |
2426 ("inverse" . modeline) ("underline" . underline) ("bold" . bold) | 2441 ("inverse" . modeline) ("underline" . underline) ("bold" . bold) |
2440 (or (null face) (memq face (face-list)))) | 2455 (or (null face) (memq face (face-list)))) |
2441 (progn | 2456 (progn |
2442 (setq egg:*fence-open* (or open "") | 2457 (setq egg:*fence-open* (or open "") |
2443 egg:*fence-close* (or close "") | 2458 egg:*fence-close* (or close "") |
2444 egg:*fence-face* face) | 2459 egg:*fence-face* face) |
2445 (if (overlayp egg:*fence-overlay*) | 2460 (if (extentp egg:*fence-extent*) |
2446 (overlay-put egg:*fence-overlay* 'face egg:*fence-face*)) | 2461 (set-extent-property egg:*fence-extent* 'face egg:*fence-face*)) |
2447 t) | 2462 t) |
2448 (error "Wrong type of argument: %s %s %s" open close face))) | 2463 (error "Wrong type of argument: %s %s %s" open close face))) |
2449 | 2464 |
2450 ;(defconst egg:*region-start* (make-marker)) | |
2451 ;(defconst egg:*region-end* (set-marker-type (make-marker) t)) | |
2452 (defvar egg:*region-start* nil) | 2465 (defvar egg:*region-start* nil) |
2453 (defvar egg:*region-end* nil) | |
2454 (make-variable-buffer-local 'egg:*region-start*) | 2466 (make-variable-buffer-local 'egg:*region-start*) |
2467 (set-default 'egg:*region-start* nil) | |
2468 (defvar egg:*region-end* nil) | |
2455 (make-variable-buffer-local 'egg:*region-end*) | 2469 (make-variable-buffer-local 'egg:*region-end*) |
2456 (set-default 'egg:*region-start* nil) | |
2457 (set-default 'egg:*region-end* nil) | 2470 (set-default 'egg:*region-end* nil) |
2458 (defvar egg:*global-map-backup* nil) | 2471 (defvar egg:*global-map-backup* nil) |
2459 (defvar egg:*local-map-backup* nil) | 2472 (defvar egg:*local-map-backup* nil) |
2460 | 2473 |
2461 | 2474 |
2468 "counter to hold repetition of egg-self-insert-command.") | 2481 "counter to hold repetition of egg-self-insert-command.") |
2469 | 2482 |
2470 (defun egg-self-insert-command (arg) | 2483 (defun egg-self-insert-command (arg) |
2471 (interactive "p") | 2484 (interactive "p") |
2472 (if (and (not buffer-read-only) | 2485 (if (and (not buffer-read-only) |
2473 mc-flag | |
2474 egg:*mode-on* egg:*input-mode* | 2486 egg:*mode-on* egg:*input-mode* |
2475 (not egg:*in-fence-mode*) ;;; inhibit recursive fence mode | 2487 (not egg:*in-fence-mode*) ;;; inhibit recursive fence mode |
2476 (not (= last-command-event ? ))) | 2488 (not (= (event-to-character last-command-event) ? ))) |
2477 (egg:enter-fence-mode-and-self-insert) | 2489 (egg:enter-fence-mode-and-self-insert) |
2478 (progn | 2490 (progn |
2479 ;; treat continuous 20 self insert as a single undo chunk. | 2491 ;; treat continuous 20 self insert as a single undo chunk. |
2480 ;; `20' is a magic number copied from keyboard.c | 2492 ;; `20' is a magic number copied from keyboard.c |
2481 (if (or ;92.12.20 by T.Enami | 2493 (if (or ;92.12.20 by T.Enami |
2490 (run-hooks 'egg-insert-after-hook)) | 2502 (run-hooks 'egg-insert-after-hook)) |
2491 (if self-insert-after-hook | 2503 (if self-insert-after-hook |
2492 (if (<= 1 arg) | 2504 (if (<= 1 arg) |
2493 (funcall self-insert-after-hook | 2505 (funcall self-insert-after-hook |
2494 (- (point) arg) (point))) | 2506 (- (point) arg) (point))) |
2495 (if (= last-command-event ? ) (egg:do-auto-fill)))))) | 2507 (if (= (event-to-character last-command-event) ? ) (egg:do-auto-fill)))))) |
2496 | 2508 |
2497 ;; | 2509 ;; |
2498 ;; $BA03NDjJQ49=hM}4X?t(B | 2510 ;; $BA03NDjJQ49=hM}4X?t(B |
2499 ;; | 2511 ;; |
2500 (defvar egg:*fence-open-backup* nil) | 2512 (defvar egg:*fence-open-backup* nil) |
2523 (or (null face) (eq face t) (memq face (face-list)))) | 2535 (or (null face) (eq face t) (memq face (face-list)))) |
2524 (progn | 2536 (progn |
2525 (setq egg:*fence-open-in-cont* (or open "") | 2537 (setq egg:*fence-open-in-cont* (or open "") |
2526 egg:*fence-close-in-cont* (or close "") | 2538 egg:*fence-close-in-cont* (or close "") |
2527 egg:*fence-face-in-cont* face) | 2539 egg:*fence-face-in-cont* face) |
2528 (if (overlayp egg:*fence-overlay*) | 2540 (if (extentp egg:*fence-extent*) |
2529 (overlay-put egg:*fence-overlay* 'face egg:*fence-face*)) | 2541 (set-extent-property egg:*fence-extent* 'face egg:*fence-face*)) |
2530 t) | 2542 t) |
2531 (error "Wrong type of argument: %s %s %s" open close face))) | 2543 (error "Wrong type of argument: %s %s %s" open close face))) |
2532 | 2544 |
2533 (defvar *in-cont-flag* nil | 2545 (defvar *in-cont-flag* nil |
2534 "$BD>A0$KJQ49$7$?D>8e$NF~NO$+$I$&$+$r<($9!#(B") | 2546 "$BD>A0$KJQ49$7$?D>8e$NF~NO$+$I$&$+$r<($9!#(B") |
2566 (setq unread-command-events (list last-command-event))) | 2578 (setq unread-command-events (list last-command-event))) |
2567 | 2579 |
2568 (defun egg:fence-face-on () | 2580 (defun egg:fence-face-on () |
2569 (if egg:*fence-face* | 2581 (if egg:*fence-face* |
2570 (progn | 2582 (progn |
2571 (if (overlayp egg:*fence-overlay*) | 2583 (if (extentp egg:*fence-extent*) |
2572 nil | 2584 nil |
2573 (setq egg:*fence-overlay* (make-overlay 1 1 nil t)) | 2585 (setq egg:*fence-extent* (make-extent 1 1 nil t)) |
2574 (if egg:*fence-face* (overlay-put egg:*fence-overlay* 'face egg:*fence-face*))) | 2586 (if egg:*fence-face* (set-extent-property egg:*fence-extent* 'face egg:*fence-face*))) |
2575 (move-overlay egg:*fence-overlay* egg:*region-start* egg:*region-end* ) ))) | 2587 (set-extent-endpoints egg:*fence-extent* egg:*region-start* egg:*region-end* ) ))) |
2576 | 2588 |
2577 (defun egg:fence-face-off () | 2589 (defun egg:fence-face-off () |
2578 (and egg:*fence-face* | 2590 (and egg:*fence-face* |
2579 (overlayp egg:*fence-overlay*) | 2591 (extentp egg:*fence-extent*) |
2580 (delete-overlay egg:*fence-overlay*) )) | 2592 (detach-extent egg:*fence-extent*) )) |
2581 | 2593 |
2582 (defun enter-fence-mode () | 2594 (defun enter-fence-mode () |
2583 ;; XEmacs change: | 2595 ;; XEmacs change: |
2584 (buffer-disable-undo (current-buffer)) | 2596 (buffer-disable-undo (current-buffer)) |
2585 (setq egg:*in-fence-mode* t) | 2597 (setq egg:*in-fence-mode* t) |
2592 (egg:check-fence-in-cont) ; for Wnn6 | 2604 (egg:check-fence-in-cont) ; for Wnn6 |
2593 (insert egg:*fence-open*) | 2605 (insert egg:*fence-open*) |
2594 (or (markerp egg:*region-start*) (setq egg:*region-start* (make-marker))) | 2606 (or (markerp egg:*region-start*) (setq egg:*region-start* (make-marker))) |
2595 (set-marker egg:*region-start* (point)) | 2607 (set-marker egg:*region-start* (point)) |
2596 (insert egg:*fence-close*) | 2608 (insert egg:*fence-close*) |
2597 (or (markerp egg:*region-end*) (setq egg:*region-end* (set-marker-type (make-marker) t))) | 2609 (or (markerp egg:*region-end*) (set-marker-insertion-type (setq egg:*region-end* (make-marker)) t)) |
2598 (set-marker egg:*region-end* egg:*region-start*) | 2610 (set-marker egg:*region-end* egg:*region-start*) |
2599 (egg:fence-face-on) | 2611 (egg:fence-face-on) |
2600 (goto-char egg:*region-start*) | 2612 (goto-char egg:*region-start*) |
2601 ) | 2613 ) |
2602 | 2614 |
2738 (princ (substitute-command-keys "The keys that are defined for the fence mode here are:\\{fence-mode-map}")) | 2750 (princ (substitute-command-keys "The keys that are defined for the fence mode here are:\\{fence-mode-map}")) |
2739 (print-help-return-message))))) | 2751 (print-help-return-message))))) |
2740 | 2752 |
2741 (defvar fence-mode-map (make-keymap)) | 2753 (defvar fence-mode-map (make-keymap)) |
2742 | 2754 |
2743 (substitute-key-definition 'self-insert-command | 2755 (substitute-key-definition 'egg-self-insert-command |
2744 'fence-self-insert-command | 2756 'fence-self-insert-command |
2745 fence-mode-map global-map) | 2757 fence-mode-map global-map) |
2746 | 2758 |
2747 (define-key fence-mode-map "\eh" 'fence-hiragana) | 2759 (define-key fence-mode-map "\eh" 'fence-hiragana) |
2748 (define-key fence-mode-map "\ek" 'fence-katakana) | 2760 (define-key fence-mode-map "\ek" 'fence-katakana) |