annotate yatexlib.el @ 80:9b4354af748c

Too many changes from 1.72. See yatex.new. (Japanese)
author yuuji
date Sun, 24 Dec 2006 06:16:52 +0000
parents 0734be649cb8
children f14ec50103d0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
1 ;;; -*- Emacs-Lisp -*-
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
2 ;;; YaTeX and yahtml common libraries, general functions and definitions
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
3 ;;; yatexlib.el
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
4 ;;; (c)1994-2006 by HIROSE Yuuji.[yuuji@yatex.org]
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
5 ;;; Last modified Sun Dec 24 15:12:20 2006 on firestorm
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
6 ;;; $Id$
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
7
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
8 ;; General variables
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
9 (defvar YaTeX-dos (memq system-type '(ms-dos windows-nt OS/2)))
79
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 77
diff changeset
10 (defvar YaTeX-macos (memq system-type '(darwin)))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
11 (defvar YaTeX-emacs-19 (>= (string-to-int emacs-version) 19))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
12 (defvar YaTeX-emacs-20 (>= (string-to-int emacs-version) 20))
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
13 (defvar YaTeX-emacs-21 (>= (string-to-int emacs-version) 21))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
14 (defvar YaTeX-user-completion-table
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
15 (if YaTeX-dos "~/_yatexrc" "~/.yatexrc")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
16 "*Default filename in which user completion table is saved.")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
17
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
18 (defvar YaTeX-display-color-p
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
19 (or (and (fboundp 'display-color-p) (display-color-p))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
20 (and (fboundp 'device-class)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
21 (eq 'color (device-class (selected-device))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
22 window-system) ; falls down lazy check..
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
23 "Current display's capability of expressing colors.")
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
24
79
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 77
diff changeset
25 (defvar YaTeX-japan
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 77
diff changeset
26 (or (boundp 'NEMACS)
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 77
diff changeset
27 (boundp 'MULE)
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 77
diff changeset
28 (and (boundp 'current-language-environment)
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 77
diff changeset
29 (string-match "[Jj]apanese" current-language-environment)))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
30 "Whether yatex mode is running on Japanese environment or not.")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
31
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
32 ;; autoload from yahtml.el
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
33 (autoload 'yahtml-inner-environment-but "yahtml" "yahtml internal func." t)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
34
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
35 (defvar latex-message-kanji-code 2
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
36 "*Kanji coding system latex command types out.
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
37 1 = Shift JIS, 2 = JIS, 3 = EUC. 4 = UTF-8")
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
38
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
39 (defvar YaTeX-kanji-code-alist
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
40 (cond
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
41 ((boundp '*junet*)
77
1b172d26b55e Fix auto-fill movement on Emacs21.
yuuji
parents: 73
diff changeset
42 (list '(0 . *noconv*)
1b172d26b55e Fix auto-fill movement on Emacs21.
yuuji
parents: 73
diff changeset
43 (cons
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
44 1
79
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 77
diff changeset
45 (cond
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 77
diff changeset
46 (YaTeX-dos (if (boundp '*sjis-dos*) *sjis-dos* *sjis*dos))
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 77
diff changeset
47 (YaTeX-macos (if (boundp '*sjis-mac*) *sjis-mac* *sjis*mac))
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 77
diff changeset
48 (t *sjis*)))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
49 '(2 . *junet*) '(3 . *euc-japan*)))
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
50 ((and YaTeX-emacs-20 (featurep 'mule))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
51 ;;(cdr-safe(assq 'coding-system (assoc "Japanese" language-info-alist)))
77
1b172d26b55e Fix auto-fill movement on Emacs21.
yuuji
parents: 73
diff changeset
52 (list '(0 . no-conversion)
1b172d26b55e Fix auto-fill movement on Emacs21.
yuuji
parents: 73
diff changeset
53 (cons
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
54 1 (cond (YaTeX-dos 'shift_jis-dos)
79
0734be649cb8 Do not care file-coding-system when YaTeX-kanji-code is nil.
yuuji
parents: 77
diff changeset
55 (YaTeX-macos 'shift_jis-mac)
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
56 ((member 'shift_jis (coding-system-list)) 'shift_jis-unix)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
57 (t 'sjis)))
68
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
58 '(2 . iso-2022-jp-unix)
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
59 '(3 . euc-jp-unix)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
60 '(4 . utf-8))))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
61 "Kanji-code expression translation table.")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
62 (defvar YaTeX-inhibit-prefix-letter nil
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
63 "*T for changing key definitions from [prefix] Letter to [prefix] C-Letter.")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
65 (defvar YaTeX-no-begend-shortcut nil
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
66 "*T for disabling shortcut of begin-type completion, [prefix] b d, etc.")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
67
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
68 (defvar YaTeX-default-pop-window-height 10
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
69 "Default typesetting buffer height.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
70 If integer, sets the window-height of typesetting buffer.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
71 If string, sets the percentage of it.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
72 If nil, use default pop-to-buffer.")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
73
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
74 (defvar YaTeX-create-file-prefix-g nil
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
75 "*Non-nil creates new file when [prefix] g on \\include{foo}.")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
76
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
77 (defvar YaTeX-nervous t
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
78 "*If you are nervous about maintenance of yatexrc, set this value to T.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
79 And you will have the local dictionary.")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
80
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
81 (defvar YaTeX-use-italic-bold (string< "20" emacs-version)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
82 "*Non-nil tries to find italic/bold fontset.
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
83 This variable is effective when font-lock is used.
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
84 \it, \bf 内部での日本語が□になってしまう場合はこれをnilにして下さい。")
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
85
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
86 ;----------- work variables ----------------------------------------
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
87 (defvar YaTeX-minibuffer-completion-map nil
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
88 "Minibuffer completion key map that allows comma completion.")
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
89 (if YaTeX-minibuffer-completion-map nil
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
90 (setq YaTeX-minibuffer-completion-map
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
91 (copy-keymap minibuffer-local-completion-map))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
92 (define-key YaTeX-minibuffer-completion-map " "
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
93 'YaTeX-minibuffer-complete)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
94 (define-key YaTeX-minibuffer-completion-map "\t"
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
95 'YaTeX-minibuffer-complete))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
96
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
97 (defvar YaTeX-typesetting-mode-map nil
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
98 "Keymap used in YaTeX typesetting buffer")
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
99
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
100 (if YaTeX-typesetting-mode-map nil
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
101 (setq YaTeX-typesetting-mode-map (make-keymap))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
102 ;(suppress-keymap YaTeX-typesetting-mode-map t)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
103 (define-key YaTeX-typesetting-mode-map " " 'YaTeX-jump-error-line)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
104 (define-key YaTeX-typesetting-mode-map "\C-m" 'YaTeX-send-string)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
105 (define-key YaTeX-typesetting-mode-map "1" 'delete-other-windows)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
106 (define-key YaTeX-typesetting-mode-map "0" 'delete-window)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
107 (define-key YaTeX-typesetting-mode-map "q" 'delete-window))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
108
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
109 (defvar YaTeX-parent-file nil
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
110 "*Main LaTeX source file name used when %#! expression doesn't exist.")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
111 (make-variable-buffer-local 'YaTeX-parent-file)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
112
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
113 ;---------- Define default key bindings on YaTeX mode map ----------
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
114 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
115 (defun YaTeX-define-key (key binding &optional map)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
116 "Define key on YaTeX-prefix-map."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
117 (if YaTeX-inhibit-prefix-letter
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
118 (let ((c (aref key 0)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
119 (cond
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
120 ((and (>= c ?a) (<= c ?z)) (aset key 0 (1+ (- c ?a))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
121 ((and (>= c ?A) (<= c ?Z) (numberp YaTeX-inhibit-prefix-letter))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
122 (aset key 0 (1+ (- c ?A))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
123 (t nil))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
124 (define-key (or map YaTeX-prefix-map) key binding))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
125
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
126 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
127 (defun YaTeX-local-table-symbol (symbol)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
128 "Return the lisp symbol which keeps local completion table of SYMBOL."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
129 (intern (concat "YaTeX$"
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
130 default-directory
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
131 (symbol-name symbol))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
132
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
133 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
134 (defun YaTeX-sync-local-table (symbol)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
135 "Synchronize local variable SYMBOL.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
136 Copy its corresponding directory dependent completion table to SYMBOL."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
137 (if (boundp (YaTeX-local-table-symbol symbol))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
138 (set symbol (symbol-value (YaTeX-local-table-symbol symbol)))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
139
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
140 (defvar YaTeX-user-table-is-read nil
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
141 "Flag that means whether user completion table has been read or not.")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
142 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
143 (defun YaTeX-read-user-completion-table (&optional forcetoread)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
144 "Append user completion table of LaTeX macros"
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
145 (interactive)
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
146 (let*((user-table (expand-file-name YaTeX-user-completion-table))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
147 (local-table (expand-file-name (file-name-nondirectory user-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
148 var localvar localbuf (curbuf (current-buffer)) sexp)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
149 (if YaTeX-user-table-is-read nil
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
150 (message "Loading user completion table")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
151 (if (file-exists-p user-table) (load-file user-table)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
152 (message "Welcome to the field of YaTeX. I'm glad to see you!")))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
153 (setq YaTeX-user-table-is-read t)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
154 (cond
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
155 ((file-exists-p local-table)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
156 (set-buffer (setq localbuf (find-file-noselect local-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
157 (widen)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
158 (goto-char (point-min))
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
159 (while (re-search-forward "(setq \\([^ \t\n]+\\)" nil t)
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
160 (setq var (intern (buffer-substring
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
161 (match-beginning 1) (match-end 1)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
162 localvar (YaTeX-local-table-symbol var))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
163 (goto-char (match-beginning 0))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
164 (setq sexp (buffer-substring (point)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
165 (progn (forward-sexp) (point))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
166 (set-buffer curbuf)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
167 (or (assq var (buffer-local-variables)) (make-local-variable var))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
168 (eval (read sexp))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
169 (or (and (boundp localvar)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
170 (symbol-value localvar)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
171 (not forcetoread))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
172 (set localvar (symbol-value var)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
173 (set-buffer localbuf))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
174 (kill-buffer localbuf)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
175 (set-buffer curbuf)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
176
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
177 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
178 (defun YaTeX-reload-dictionary ()
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
179 "Reload local dictionary.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
180 Use this function after editing ./.yatexrc."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
181 (interactive)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
182 (let ((YaTeX-user-table-is-read nil))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
183 (YaTeX-read-user-completion-table t)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
184
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
185 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
186 (defun YaTeX-lookup-table (word type)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
187 "Lookup WORD in completion table whose type is TYPE.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
188 This function refers the symbol tmp-TYPE-table, user-TYPE-table, TYPE-table.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
189 Typically, TYPE is one of 'env, 'section, 'fontsize, 'singlecmd."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
190 (if (symbolp type) (setq type (symbol-name type)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
191 (or (assoc word (symbol-value (intern (concat "tmp-" type "-table"))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
192 (assoc word (symbol-value (intern (concat "user-" type "-table"))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
193 (assoc word (symbol-value (intern (concat type "-table"))))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
194
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
195 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
196 (defun YaTeX-update-table (vallist default-table user-table local-table)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
197 "Update completion table if the car of VALLIST is not in current tables.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
198 Second argument DEFAULT-TABLE is the quoted symbol of default completion
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
199 table, third argument USER-TABLE is user table which will be saved in
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
200 YaTeX-user-completion-table, fourth argument LOCAL-TABLE should have the
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
201 completion which is valid during current Emacs's session. If you
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
202 want to make LOCAL-TABLE valid longer span (but restrict in this directory)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
203 create the file in current directory which has the same name with
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
204 YaTeX-user-completion-table."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
205 (let ((car-v (car vallist)) key answer
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
206 (file (file-name-nondirectory YaTeX-user-completion-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
207 (cond
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
208 ((assoc car-v (symbol-value default-table))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
209 nil) ;Nothing to do
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
210 ((setq key (assoc car-v (symbol-value user-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
211 (if (equal (cdr vallist) (cdr key)) nil
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
212 ;; if association hits, but contents differ.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
213 (message
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
214 "%s's attributes turned into %s" (car vallist) (cdr vallist))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
215 (set user-table (delq key (symbol-value user-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
216 (set user-table (cons vallist (symbol-value user-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
217 (YaTeX-update-dictionary
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
218 YaTeX-user-completion-table user-table "user")))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
219 ((setq key (assoc car-v (symbol-value local-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
220 (if (equal (cdr vallist) (cdr key)) nil
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
221 (message
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
222 "%s's attributes turned into %s" (car vallist) (cdr vallist))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
223 (set local-table (delq key (symbol-value local-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
224 (set local-table (cons vallist (symbol-value local-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
225 (set (YaTeX-local-table-symbol local-table) (symbol-value local-table))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
226 (YaTeX-update-dictionary file local-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
227 ;; All of above cases, there are some completion in tables.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
228 ;; Then update tables.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
229 (t
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
230 (if (not YaTeX-nervous)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
231 (setq answer "u")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
232 (message
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
233 (cond
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
234 (YaTeX-japan
68
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
235 "`%s'の登録先: U)ユーザ辞書 L)ローカル辞書 N)メモリ D)しない")
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
236 (t
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
237 "Register `%s' into: U)serDic L)ocalDic N)one D)iscard"))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
238 (if (> (length car-v) 23)
68
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
239 (concat (substring car-v 0 10) "..." (substring car-v -9))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
240 car-v))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
241 (setq answer (char-to-string (read-char))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
242 (cond
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
243 ((string-match answer "uy")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
244 (set user-table (cons vallist (symbol-value user-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
245 (YaTeX-update-dictionary YaTeX-user-completion-table user-table "user")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
246 )
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
247 ((string-match answer "tl")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
248 (set local-table (cons vallist (symbol-value local-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
249 (set (YaTeX-local-table-symbol local-table) (symbol-value local-table))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
250 (YaTeX-update-dictionary file local-table))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
251 ((string-match answer "d") nil) ;discard it
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
252 (t (set default-table
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
253 (cons vallist (symbol-value default-table)))))))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
254
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
255 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
256 (defun YaTeX-cplread-with-learning
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
257 (prom default-table user-table local-table
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
258 &optional pred reqmatch init hsym)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
259 "Completing read with learning.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
260 Do a completing read with prompt PROM. Completion table is what
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
261 DEFAULT-TABLE, USER-TABLE, LOCAL table are appended in reverse order.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
262 Note that these tables are passed by the symbol.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
263 Optional arguments PRED, REQMATH and INIT are passed to completing-read
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
264 as its arguments PREDICATE, REQUIRE-MATCH and INITIAL-INPUT respectively.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
265 If optional 8th argument HSYM, history symbol, is passed, use it as
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
266 history list variable."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
267 (YaTeX-sync-local-table local-table)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
268 (let*((table (append (symbol-value local-table)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
269 (symbol-value user-table)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
270 (symbol-value default-table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
271 (word (completing-read-with-history
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
272 prom table pred reqmatch init hsym)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
273 (if (and (string< "" word) (not (assoc word table)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
274 (YaTeX-update-table (list word) default-table user-table local-table))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
275 word))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
276
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
277 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
278 (defun YaTeX-update-dictionary (file symbol &optional type)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
279 (let ((local-table-buf (find-file-noselect file))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
280 (name (symbol-name symbol))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
281 (value (symbol-value symbol)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
282 (save-excursion
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
283 (message "Updating %s dictionary..." (or type "local"))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
284 (set-buffer local-table-buf)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
285 (goto-char (point-max))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
286 (search-backward (concat "(setq " name) nil t)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
287 (delete-region (point) (progn (forward-sexp) (point)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
288 (delete-blank-lines)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
289 (insert "(setq " name " '(\n")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
290 (mapcar '(lambda (s)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
291 (insert (format "%s\n" (prin1-to-string s))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
292 value)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
293 (insert "))\n\n")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
294 (delete-blank-lines)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
295 (basic-save-buffer)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
296 (kill-buffer local-table-buf)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
297 (message "Updating %s dictionary...Done" (or type "local")))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
298
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
299 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
300 (defun YaTeX-define-begend-key-normal (key env &optional map)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
301 "Define short cut YaTeX-make-begin-end key."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
302 (YaTeX-define-key
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
303 key
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
304 (list 'lambda '(arg) '(interactive "P")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
305 (list 'YaTeX-insert-begin-end env 'arg))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
306 map))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
307
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
308 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
309 (defun YaTeX-define-begend-region-key (key env &optional map)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
310 "Define short cut YaTeX-make-begin-end-region key."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
311 (YaTeX-define-key key (list 'lambda nil '(interactive)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
312 (list 'YaTeX-insert-begin-end env t)) map))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
313
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
314 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
315 (defun YaTeX-define-begend-key (key env &optional map)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
316 "Define short cut key for begin type completion both for normal
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
317 and region mode. To customize YaTeX, user should use this function."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
318 (YaTeX-define-begend-key-normal key env map)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
319 (if YaTeX-inhibit-prefix-letter nil
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
320 (YaTeX-define-begend-region-key
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
321 (concat (upcase (substring key 0 1)) (substring key 1)) env)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
322
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
323 ;;;###autoload
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
324 (defun YaTeX-search-active-forward (string cmntrx &optional bound err cnt func)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
325 "Search STRING which is not commented out by CMNTRX.
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
326 Optional arguments after BOUND, ERR, CNT are passed literally to search-forward
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
327 or search-backward.
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
328 Optional sixth argument FUNC changes search-function."
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
329 (let ((sfunc (or func 'search-forward)) found md)
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
330 (while (and (prog1
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
331 (setq found (funcall sfunc string bound err cnt))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
332 (setq md (match-data)))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
333 (or
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
334 (and (eq major-mode 'yatex-mode)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
335 (YaTeX-in-verb-p (match-beginning 0)))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
336 (save-excursion
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
337 (goto-char (match-beginning 0))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
338 (beginning-of-line)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
339 (re-search-forward cmntrx (match-beginning 0) t)))))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
340 (store-match-data md)
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
341 found))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
342
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
343 (defun YaTeX-re-search-active-forward (regexp cmntrx &optional bound err cnt)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
344 "Search REGEXP backward which is not commented out by regexp CMNTRX.
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
345 See also YaTeX-search-active-forward."
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
346 (YaTeX-search-active-forward regexp cmntrx bound err cnt 're-search-forward))
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
347
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
348 (defun YaTeX-search-active-backward (string cmntrx &optional bound err cnt)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
349 "Search STRING backward which is not commented out by regexp CMNTRX.
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
350 See also YaTeX-search-active-forward."
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
351 (YaTeX-search-active-forward string cmntrx bound err cnt 'search-backward))
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
352
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
353 (defun YaTeX-re-search-active-backward (regexp cmntrx &optional bound err cnt)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
354 "Search REGEXP backward which is not commented out by regexp CMNTRX.
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
355 See also YaTeX-search-active-forward."
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
356 (YaTeX-search-active-forward
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
357 regexp cmntrx bound err cnt 're-search-backward))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
358
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
359 (defun YaTeX-relative-path-p (path)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
360 "Return non-nil if PATH is not absolute one."
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
361 (let ((md (match-data)))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
362 (unwind-protect
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
363 (not (string-match "^\\(/\\|[a-z]:\\|\\\\\\).*/" file))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
364 (store-match-data md))))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
365
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
366 ;;;###autoload
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
367 (defun YaTeX-switch-to-buffer (file &optional setbuf)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
368 "Switch to buffer if buffer exists, find file if not.
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
369 Optional second arg SETBUF t make use set-buffer instead of switch-to-buffer."
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
370 (interactive "Fswitch to file: ")
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
371 (if (bufferp file)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
372 (setq file (buffer-file-name file))
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
373 (and (YaTeX-relative-path-p file)
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
374 (eq major-mode 'yatex-mode)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
375 YaTeX-search-file-from-top-directory
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
376 (save-excursion
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
377 (YaTeX-visit-main t)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
378 (setq file (expand-file-name file)))))
52
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
379 (let (buf (hilit-auto-highlight (not setbuf)))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
380 (cond
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
381 ((setq buf (get-file-buffer file))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
382 (funcall (if setbuf 'set-buffer 'switch-to-buffer)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
383 (get-file-buffer file))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
384 buf)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
385 ((or YaTeX-create-file-prefix-g (file-exists-p file))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
386 (or ;find-file returns nil but set current-buffer...
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
387 (if setbuf (set-buffer (find-file-noselect file))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
388 (find-file file))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
389 (current-buffer)))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
390 (t (message "%s was not found in this directory." file)
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
391 nil))))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
392
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
393 ;;;###autoload
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
394 (defun YaTeX-switch-to-buffer-other-window (file)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
395 "Switch to buffer if buffer exists, find file if not."
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
396 (interactive "Fswitch to file: ")
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
397 (and (eq major-mode 'yatex-mode)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
398 (stringp file)
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
399 (YaTeX-relative-path-p file)
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
400 YaTeX-search-file-from-top-directory
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
401 (save-excursion
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
402 (YaTeX-visit-main t)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
403 (setq file (expand-file-name file))))
52
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
404 (if (bufferp file) (setq file (buffer-file-name file)))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
405 (cond
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
406 ((get-file-buffer file)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
407 (switch-to-buffer-other-window (get-file-buffer file))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
408 t)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
409 ((or YaTeX-create-file-prefix-g (file-exists-p file))
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
410 (find-file-other-window file) t)
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
411 (t (message "%s was not found in this directory." file)
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
412 nil)))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
413
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
414 (defun YaTeX-get-file-buffer (file)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
415 "Return the FILE's buffer.
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
416 Base directory is that of main file or current directory."
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
417 (let (dir main (cdir default-directory))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
418 (or (and (eq major-mode 'yatex-mode)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
419 YaTeX-search-file-from-top-directory
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
420 (save-excursion
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
421 (YaTeX-visit-main t)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
422 (get-file-buffer file)))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
423 (get-file-buffer file))))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
424
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
425 (defun YaTeX-replace-format-sub (string format repl)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
426 (let ((beg (or (string-match (concat "^\\(%" format "\\)") string)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
427 (string-match (concat "[^%]\\(%" format "\\)") string)))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
428 (len (length format)))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
429 (if (null beg) string ;no conversion
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
430 (concat
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
431 (substring string 0 (match-beginning 1)) (or repl "")
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
432 (substring string (match-end 1))))))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
433
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
434 ;;;###autoload
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
435 (defun YaTeX-replace-format (string format repl)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
436 "In STRING, replace first appearance of FORMAT to REPL as if
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
437 function `format' does. FORMAT does not contain `%'"
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
438 (let ((ans string) (case-fold-search nil))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
439 (while (not (string=
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
440 ans (setq string (YaTeX-replace-format-sub ans format repl))))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
441 (setq ans string))
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
442 string))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
443
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
444 ;;;###autoload
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
445 (defun YaTeX-replace-formats (string replace-list)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
446 (let ((list replace-list))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
447 (while list
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
448 (setq string (YaTeX-replace-format
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
449 string (car (car list)) (cdr (car list)))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
450 list (cdr list)))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
451 string))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
452
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
453 ;;;###autoload
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
454 (defun YaTeX-replace-format-args (string &rest args)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
455 "Translate the argument mark #1, #2, ... #n in the STRING into the
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
456 corresponding real arguments ARGS."
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
457 (let ((argp 1))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
458 (while args
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
459 (setq string
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
460 (YaTeX-replace-format string (int-to-string argp) (car args)))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
461 (setq args (cdr args) argp (1+ argp))))
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
462 string)
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
463
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
464 ;;;###autoload
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
465 (defun rindex (string char)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
466 (let ((pos (1- (length string)))(index -1))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
467 (while (>= pos 0)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
468 (cond
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
469 ((= (aref string pos) char)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
470 (setq index pos) (setq pos -1))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
471 (t (setq pos (1- pos))))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
472 )
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
473 index))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
474
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
475 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
476 (defun point-beginning-of-line ()
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
477 (save-excursion (beginning-of-line)(point)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
478
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
479 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
480 (defun point-end-of-line ()
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
481 (save-excursion (end-of-line)(point)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
482
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
483
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
484 ;;;###autoload
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
485 (defun YaTeX-showup-buffer (buffer &optional func select)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
486 "Make BUFFER show up in certain window (but current window)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
487 that gives the maximum value by the FUNC. FUNC should take an argument
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
488 of its window object. Non-nil for optional third argument SELECT selects
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
489 that window. This function never selects minibuffer window."
53
5f4b18da14b3 Fix functions relating YaTeX-beginning-of-environment or
yuuji
parents: 52
diff changeset
490 (or (and (if (and YaTeX-emacs-19 select)
47
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
491 (get-buffer-window buffer t)
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
492 (get-buffer-window buffer))
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
493 (progn
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
494 (if select
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
495 (goto-buffer-window buffer))
47
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
496 t))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
497 (let ((window (selected-window))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
498 (wlist (YaTeX-window-list)) win w (x 0))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
499 (cond
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
500 ((> (length wlist) 2)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
501 (if func
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
502 (while wlist
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
503 (setq w (car wlist))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
504 (if (and (not (eq window w))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
505 (> (funcall func w) x))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
506 (setq win w x (funcall func w)))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
507 (setq wlist (cdr wlist)))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
508 (setq win (get-lru-window)))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
509 (select-window win)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
510 (switch-to-buffer buffer)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
511 (or select (select-window window)))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
512 ((= (length wlist) 2)
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
513 ;(other-window 1);This does not work properly on Emacs-19
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
514 (select-window (get-lru-window))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
515 (switch-to-buffer buffer)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
516 (or select (select-window window)))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
517 (t ;if one-window
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
518 (cond
47
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
519 ((and YaTeX-emacs-19 (get-buffer-window buffer t))
d7e7b4654058 Support special popup frame.
yuuji
parents: 46
diff changeset
520 nil) ;if found in other frame
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
521 (YaTeX-default-pop-window-height
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
522 (split-window-calculate-height YaTeX-default-pop-window-height)
59
48ac97a6b6ce Call drawing tools
yuuji
parents: 58
diff changeset
523 ;;(pop-to-buffer buffer) ;damn! emacs-19.30
48ac97a6b6ce Call drawing tools
yuuji
parents: 58
diff changeset
524 (select-window (next-window nil 1))
48ac97a6b6ce Call drawing tools
yuuji
parents: 58
diff changeset
525 (switch-to-buffer (get-buffer-create buffer))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
526 (or select (select-window window)))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
527 (t nil)))
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
528 ))))
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
529
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
530 (cond
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
531 ((fboundp 'screen-height)
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
532 (fset 'YaTeX-screen-height 'screen-height)
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
533 (fset 'YaTeX-screen-width 'screen-width))
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
534 ((fboundp 'frame-height)
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
535 (fset 'YaTeX-screen-height 'frame-height)
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
536 (fset 'YaTeX-screen-width 'frame-width))
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
537 (t (error "I don't know how to run windows.el on this Emacs...")))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
538
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
539 ;;;###autoload
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
540 (defun split-window-calculate-height (height)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
541 "Split current window wight specified HEIGHT.
59
48ac97a6b6ce Call drawing tools
yuuji
parents: 58
diff changeset
542 If HEIGHT is number, make a new window that has HEIGHT lines.
48ac97a6b6ce Call drawing tools
yuuji
parents: 58
diff changeset
543 If HEIGHT is string, make a new window that occupies HEIGT % of screen height.
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
544 Otherwise split window conventionally."
59
48ac97a6b6ce Call drawing tools
yuuji
parents: 58
diff changeset
545 (if (one-window-p t)
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
546 (split-window
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
547 (selected-window)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
548 (max
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
549 (min
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
550 (- (YaTeX-screen-height)
59
48ac97a6b6ce Call drawing tools
yuuji
parents: 58
diff changeset
551 (if (numberp height)
48ac97a6b6ce Call drawing tools
yuuji
parents: 58
diff changeset
552 (+ height 2)
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
553 (/ (* (YaTeX-screen-height)
59
48ac97a6b6ce Call drawing tools
yuuji
parents: 58
diff changeset
554 (string-to-int height))
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
555 100)))
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
556 (- (YaTeX-screen-height) window-min-height 1))
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
557 window-min-height))))
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
558
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
559 ;;;###autoload
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
560 (defun YaTeX-window-list ()
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
561 (let*((curw (selected-window)) (win curw) (wlist (list curw)))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
562 (while (not (eq curw (setq win (next-window win))))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
563 (or (eq win (minibuffer-window))
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
564 (setq wlist (cons win wlist))))
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
565 wlist))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
566
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
567 (if YaTeX-emacs-21
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
568 ;; Emacs-21's next-window returns other frame's window even if called
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
569 ;; with argument ALL-FRAMES nil, when called from minibuffer context.
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
570 ;; Therefore, check frame identity here.
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
571 (defun YaTeX-window-list ()
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
572 (let*((curw (selected-window)) (win curw) (wlist (list curw))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
573 (curf (window-frame curw)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
574 (while (and (not (eq curw (setq win (next-window win))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
575 (eq curf (window-frame win)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
576 (or (eq win (minibuffer-window))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
577 (setq wlist (cons win wlist))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
578 wlist)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
579
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
580 ;;;###autoload
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
581 (defun substitute-all-key-definition (olddef newdef keymap)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
582 "Replace recursively OLDDEF with NEWDEF for any keys in KEYMAP now
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
583 defined as OLDDEF. In other words, OLDDEF is replaced with NEWDEF
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
584 where ever it appears."
68
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
585 (if YaTeX-emacs-19
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
586 (substitute-key-definition olddef newdef keymap global-map)
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
587 (mapcar
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
588 (function (lambda (key) (define-key keymap key newdef)))
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
589 (where-is-internal olddef keymap))))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
590
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
591 ;;;###autoload
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
592 (defun YaTeX-match-string (n &optional m)
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
593 "Return (buffer-substring (match-beginning n) (match-beginning m))."
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
594 (if (match-beginning n)
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
595 (YaTeX-buffer-substring (match-beginning n)
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
596 (match-end (or m n)))))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
597
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
598 ;;;###autoload
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
599 (defun YaTeX-minibuffer-complete ()
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
600 "Complete in minibuffer.
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
601 If the symbol 'delim is bound and is string, its value is assumed to be
49
eb0512bfcb7f Abolish user-article table.
yuuji
parents: 47
diff changeset
602 the character class of delimiters. Completion will be performed on
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
603 the last field separated by those delimiters.
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
604 If the symbol 'quick is bound and is 't, when the try-completion results
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
605 in t, exit minibuffer immediately."
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
606 (interactive)
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
607 (save-restriction
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
608 (narrow-to-region
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
609 (if (fboundp 'field-beginning) (field-beginning (point-max)) (point-min))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
610 (point-max))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
611 (let ((md (match-data)) beg word compl
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
612 (quick (and (boundp 'quick) (eq quick t)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
613 (displist ;function to display completion-list
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
614 (function
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
615 (lambda ()
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
616 (with-output-to-temp-buffer "*Completions*"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
617 (display-completion-list
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
618 (all-completions word minibuffer-completion-table)))))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
619 (setq beg (if (and (boundp 'delim) (stringp delim))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
620 (save-excursion
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
621 (skip-chars-backward (concat "^" delim))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
622 (point))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
623 (point-min))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
624 word (buffer-substring beg (point-max))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
625 compl (try-completion word minibuffer-completion-table))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
626 (cond
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
627 ((eq compl t)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
628 (if quick (exit-minibuffer)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
629 (let ((p (point)) (max (point-max)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
630 (unwind-protect
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
631 (progn
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
632 (goto-char max)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
633 (insert " [Sole completion]")
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
634 (goto-char p)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
635 (sit-for 1))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
636 (delete-region max (point-max))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
637 (goto-char p)))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
638 ((eq compl nil)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
639 (ding)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
640 (save-excursion
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
641 (let (p)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
642 (unwind-protect
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
643 (progn
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
644 (goto-char (setq p (point-max)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
645 (insert " [No match]")
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
646 (goto-char p)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
647 (sit-for 2))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
648 (delete-region p (point-max))))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
649 ((string= compl word)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
650 (funcall displist))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
651 (t (delete-region beg (point-max))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
652 (insert compl)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
653 (if quick
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
654 (if (eq (try-completion compl minibuffer-completion-table) t)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
655 (exit-minibuffer)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
656 (funcall displist)))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
657 (store-match-data md))))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
658
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
659 (defun YaTeX-minibuffer-quick-complete ()
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
660 "Set 'quick to 't and call YaTeX-minibuffer-complete.
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
661 See documentation of YaTeX-minibuffer-complete."
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
662 (interactive)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
663 (let ((quick t))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
664 (self-insert-command 1)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
665 (YaTeX-minibuffer-complete)))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
666
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
667 (defun foreach-buffers (pattern job)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
668 "For each buffer which matches with PATTERN, do JOB."
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
669 (let ((list (buffer-list)))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
670 (save-excursion
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
671 (while list
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
672 (set-buffer (car list))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
673 (if (or (and (stringp pattern)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
674 (buffer-file-name)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
675 (string-match pattern (buffer-file-name)))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
676 (and (symbolp pattern) major-mode (eq major-mode pattern)))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
677 (eval job))
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
678 (setq list (cdr list))))))
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
679
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
680 (defun goto-buffer-window (buffer)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
681 "Select window which is bound to BUFFER.
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
682 If no such window exist, switch to buffer BUFFER."
52
5d94deabb9f9 Set YaTeX-indent-line to 'indent-line-function.
yuuji
parents: 51
diff changeset
683 (interactive "BGoto buffer: ")
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
684 (if (stringp buffer)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
685 (setq buffer (or (get-file-buffer buffer) (get-buffer buffer))))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
686 (if (get-buffer buffer)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
687 (cond
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
688 ((get-buffer-window buffer)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
689 (select-window (get-buffer-window buffer)))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
690 ((and YaTeX-emacs-19 (get-buffer-window buffer t))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
691 (let*((win (get-buffer-window buffer t))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
692 (frame (window-frame win)))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
693 (select-frame frame)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
694 (raise-frame frame)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
695 (focus-frame frame)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
696 (select-window win)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
697 (set-mouse-position frame 0 0)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
698 (and (featurep 'windows) (fboundp 'win:adjust-window)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
699 (win:adjust-window))))
54
2d45e43fb35f Full support of English documents
yuuji
parents: 53
diff changeset
700 ((and (featurep 'windows) (fboundp 'win:get-buffer-window)
56
a9653fbd1c1c Bug fix version
yuuji
parents: 54
diff changeset
701 (let ((w (win:get-buffer-window buffer)))
a9653fbd1c1c Bug fix version
yuuji
parents: 54
diff changeset
702 (and w (win:switch-window w))))
54
2d45e43fb35f Full support of English documents
yuuji
parents: 53
diff changeset
703 (select-window (get-buffer-window buffer)))
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
704 (t (switch-to-buffer buffer)))))
51
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
705
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
706 ;; Here starts the functions which support gmhist-vs-Emacs19 compatible
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
707 ;; reading with history.
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
708 ;;;###autoload
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
709 (defun completing-read-with-history
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
710 (prompt table &optional predicate must-match initial hsym)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
711 "Completing read with general history: gmhist, Emacs-19."
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
712 (let ((minibuffer-history
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
713 (or (symbol-value hsym)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
714 (and (boundp 'minibuffer-history) minibuffer-history)))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
715 (minibuffer-history-symbol (or hsym 'minibuffer-history)))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
716 (prog1
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
717 (if (fboundp 'completing-read-with-history-in)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
718 (completing-read-with-history-in
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
719 minibuffer-history-symbol prompt table predicate must-match initial)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
720 (completing-read prompt table predicate must-match initial))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
721 (if (and YaTeX-emacs-19 hsym) (set hsym minibuffer-history)))))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
722
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
723 ;;;###autoload
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
724 (defun read-from-minibuffer-with-history (prompt &optional init map read hsym)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
725 "Read from minibuffer with general history: gmhist, Emacs-19."
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
726 (cond
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
727 (YaTeX-emacs-19
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
728 (read-from-minibuffer prompt init map read hsym))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
729 (t
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
730 (let ((minibuffer-history-symbol hsym))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
731 (read-from-minibuffer prompt init map read)))))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
732
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
733 ;;;###autoload
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
734 (defun read-string-with-history (prompt &optional init hsym)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
735 "Read string with history: gmhist(Emacs-18) and Emacs-19."
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
736 (cond
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
737 (YaTeX-emacs-19
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
738 (read-from-minibuffer prompt init minibuffer-local-map nil hsym))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
739 ((featurep 'gmhist-mh)
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
740 (read-with-history-in hsym prompt init))
b0371b6ed799 Created `ChangeLog'.
yuuji
parents: 49
diff changeset
741 (t (read-string prompt init))))
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
742
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
743 ;;;###autoload
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
744 (fset 'YaTeX-rassoc
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
745 (if (and nil (fboundp 'rassoc) (subrp (symbol-function 'rassoc)))
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
746 (symbol-function 'rassoc)
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
747 (function
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
748 (lambda (key list)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
749 (let ((l list))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
750 (catch 'found
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
751 (while l
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
752 (if (equal key (cdr (car l)))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
753 (throw 'found (car l)))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
754 (setq l (cdr l)))))))))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
755
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
756 (defun YaTeX-insert-file-contents (file visit &optional beg end)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
757 (cond
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
758 ((and (string< "19" emacs-version) (not (featurep 'xemacs)))
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
759 (insert-file-contents file visit beg end))
77
1b172d26b55e Fix auto-fill movement on Emacs21.
yuuji
parents: 73
diff changeset
760 ((string-match "unix\\|linux" (symbol-name system-type))
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
761 (let ((default-process-coding-system
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
762 (and (boundp '*noconv*) (list '*noconv*)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
763 (file-coding-system (and (boundp '*noconv*) '*noconv*))
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
764 kanji-fileio-code
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
765 (default-process-kanji-code 0))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
766 (call-process shell-file-name file (current-buffer) nil
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
767 (or (and (boundp 'shell-command-option)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
768 shell-command-option)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
769 "-c")
77
1b172d26b55e Fix auto-fill movement on Emacs21.
yuuji
parents: 73
diff changeset
770 (format "dd bs=1 count=%d | tail -c +%d" end beg))))
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
771 (t (insert-file-contents file))))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
772
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
773 (defun YaTeX-split-string (str &optional sep null)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
774 "Split string STR by every occurrence of SEP(regexp).
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
775 If the optional second argument SEP is nil, it defaults to \"[ \f\t\n\r\v]+\".
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
776 Do not include null string by default. Non-nil for optional third argument
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
777 NULL includes null string in a list."
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
778 (let ((sep (or sep "[ \f\t\n\r\v]+"))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
779 list m)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
780 (while str
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
781 (if (setq m (string-match sep str))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
782 (progn
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
783 (if (or (> m 0) null)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
784 (setq list (cons (substring str 0 m) list)))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
785 (setq str (substring str (match-end 0))))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
786 (if (or null (string< "" str))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
787 (setq list (cons str list)))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
788 (setq str nil)))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
789 (nreverse list)))
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
790
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
791 ;;;###autoload
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
792 (defun YaTeX-delete1 (elt list)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
793 "Delete"
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
794 (let (e)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
795 (while (setq e (YaTeX-member elt list))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
796 (setq list (delq (car e) list))))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
797 list)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
798 (if (fboundp 'delete)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
799 (fset 'YaTeX-delete (symbol-function 'delete))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
800 (fset 'YaTeX-delete (symbol-function 'YaTeX-delete1)))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
801
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
802 (defun YaTeX-member1 (elt list)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
803 (catch 'found
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
804 (while list
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
805 (if (equal elt (car list))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
806 (throw 'found list))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
807 (setq list (cdr list)))))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
808
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
809 (if (and (fboundp 'member) (subrp (symbol-function 'member)))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
810 (fset 'YaTeX-member (symbol-function 'member))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
811 (fset 'YaTeX-member (symbol-function 'YaTeX-member1)))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
812
53
5f4b18da14b3 Fix functions relating YaTeX-beginning-of-environment or
yuuji
parents: 52
diff changeset
813 ;;;
5f4b18da14b3 Fix functions relating YaTeX-beginning-of-environment or
yuuji
parents: 52
diff changeset
814 ;; Interface function for windows.el
5f4b18da14b3 Fix functions relating YaTeX-beginning-of-environment or
yuuji
parents: 52
diff changeset
815 ;;;
5f4b18da14b3 Fix functions relating YaTeX-beginning-of-environment or
yuuji
parents: 52
diff changeset
816 ;;;###autoload
5f4b18da14b3 Fix functions relating YaTeX-beginning-of-environment or
yuuji
parents: 52
diff changeset
817 (defun YaTeX-switch-to-window ()
5f4b18da14b3 Fix functions relating YaTeX-beginning-of-environment or
yuuji
parents: 52
diff changeset
818 "Switch to windows.el's window decided by last pressed key."
5f4b18da14b3 Fix functions relating YaTeX-beginning-of-environment or
yuuji
parents: 52
diff changeset
819 (interactive)
5f4b18da14b3 Fix functions relating YaTeX-beginning-of-environment or
yuuji
parents: 52
diff changeset
820 (or (featurep 'windows) (error "Why don't you use `windows.el'?"))
5f4b18da14b3 Fix functions relating YaTeX-beginning-of-environment or
yuuji
parents: 52
diff changeset
821 (win-switch-to-window 1 (- last-command-char win:base-key)))
5f4b18da14b3 Fix functions relating YaTeX-beginning-of-environment or
yuuji
parents: 52
diff changeset
822
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
823 ;;;###autoload
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
824 (defun YaTeX-reindent (col)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
825 "Remove current indentation and reindento to COL column."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
826 (save-excursion
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
827 (beginning-of-line)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
828 (skip-chars-forward " \t")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
829 (if (/= col (current-column))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
830 (progn
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
831 (delete-region (point) (progn (beginning-of-line) (point)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
832 (indent-to col))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
833 (skip-chars-forward " \t" (point-end-of-line)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
834
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
835 (defun YaTeX-inner-environment (&optional quick)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
836 "Return current inner-most environment.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
837 Non-nil for optional argument QUICK restricts search bound to most
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
838 recent sectioning command. Matching point is stored to property 'point
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
839 of 'YaTeX-inner-environment, which can be referred by
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
840 (get 'YaTeX-inner-environment 'point)."
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
841 (put 'YaTeX-inner-environment 'point (point-min))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
842 (put 'YaTeX-inner-environment 'indent 0)
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
843 (let*((nest 0)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
844 (beg (YaTeX-replace-format-args
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
845 (regexp-quote YaTeX-struct-begin)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
846 ;YaTeX-struct-begin ;=== TENTATIVE!! ==
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
847 YaTeX-struct-name-regexp
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
848 (if (eq major-mode 'yahtml-mode) "\\s *.*" "")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
849 ""))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
850 (end (YaTeX-replace-format-args
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
851 (regexp-quote YaTeX-struct-end)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
852 YaTeX-struct-name-regexp "" ""))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
853 (begend (concat "\\(" beg "\\)\\|\\(" end "\\)"))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
854 bound m0
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
855 (htmlp (eq major-mode 'yahtml-mode))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
856 (open
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
857 (concat "^" (or (cdr (assq major-mode '((yahtml-mode . "<")))) "{")))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
858 (close
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
859 (concat "^"
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
860 (or (cdr(assq major-mode '((yahtml-mode . "\n\t >")))) "}"))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
861 (save-excursion
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
862 (if quick
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
863 (setq bound
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
864 (save-excursion
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
865 (if htmlp
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
866 ;;(re-search-backward YaTeX-sectioning-regexp nil 1)
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
867 ;;(goto-char (point-min)) ;Is this enough? 97/6/26
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
868 (re-search-backward yahtml-indentation-boundary nil 1)
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
869 (YaTeX-re-search-active-backward
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
870 (concat YaTeX-ec-regexp
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
871 "\\(" YaTeX-sectioning-regexp "\\)\\*?{")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
872 YaTeX-comment-prefix nil 1))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
873 (or (bobp) (end-of-line))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
874 (point))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
875 (if (catch 'begin
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
876 (if (and (numberp bound) (< (point) bound)) (throw 'begin nil))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
877 (while (YaTeX-re-search-active-backward
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
878 begend YaTeX-comment-prefix bound t)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
879 (setq m0 (match-beginning 0))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
880 (if (looking-at end) ;;(match-beginning 2)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
881 (setq nest (1+ nest))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
882 (setq nest (1- nest)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
883 (if (< nest 0)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
884 (progn
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
885 (put 'YaTeX-inner-environment 'point m0)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
886 (goto-char m0)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
887 (put 'YaTeX-inner-environment 'indent (current-column))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
888 (throw 'begin t)))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
889 (buffer-substring
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
890 (progn (skip-chars-forward open) (1+ (point)))
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
891 (progn (skip-chars-forward close) (point)))))))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
892
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
893 (defun YaTeX-goto-corresponding-environment (&optional allow-mismatch noerr)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
894 "Go to corresponding begin/end enclosure.
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
895 Optional argument ALLOW-MISMATCH allows mismatch open/clese. Use this
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
896 for \left(, \right).
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
897 Optional third argument NOERR causes no error for unballanced environment."
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
898 (interactive)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
899 (if (not (YaTeX-on-begin-end-p)) nil
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
900 (let ((p (match-end 0)) b0 b1 env (nest 0) regexp re-s (op (point))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
901 (m0 (match-beginning 0)) ;whole matching
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
902 (m1 (match-beginning 1)) ;environment in \begin{}
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
903 (m2 (match-beginning 2)) ;environment in \end{}
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
904 (m3 (match-beginning 3))) ;environment in \[ \] \( \)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
905 ;(setq env (regexp-quote (buffer-substring p (match-beginning 0))))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
906 (if (cond
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
907 (m1 ;if begin{xxx}
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
908 (setq env
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
909 (if allow-mismatch YaTeX-struct-name-regexp
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
910 (regexp-quote (buffer-substring m1 (match-end 1)))))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
911 ; (setq regexp (concat "\\(\\\\end{" env "}\\)\\|"
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
912 ; "\\(\\\\begin{" env "}\\)"))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
913 (setq regexp
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
914 (concat
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
915 "\\("
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
916 (YaTeX-replace-format-args
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
917 (regexp-quote YaTeX-struct-end) env "" "")
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
918 "\\)\\|\\("
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
919 (YaTeX-replace-format-args
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
920 (regexp-quote YaTeX-struct-begin) env "" "")
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
921 "\\)"))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
922 (setq re-s 're-search-forward))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
923 (m2 ;if end{xxx}
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
924 (setq env
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
925 (if allow-mismatch YaTeX-struct-name-regexp
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
926 (regexp-quote (buffer-substring m2 (match-end 2)))))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
927 ; (setq regexp (concat "\\(\\\\begin{" env "}\\)\\|"
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
928 ; "\\(\\\\end{" env "}\\)"))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
929 (setq regexp
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
930 (concat
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
931 "\\("
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
932 (YaTeX-replace-format-args
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
933 (regexp-quote YaTeX-struct-begin) env "" "")
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
934 "\\)\\|\\("
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
935 (YaTeX-replace-format-args
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
936 (regexp-quote YaTeX-struct-end) env "" "")
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
937 "\\)"))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
938 (setq re-s 're-search-backward))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
939 (m3 ;math environment
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
940 (setq env (char-after (1+ m3))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
941 regexp (format "\\(%s%s\\)\\|\\(%s%s\\)"
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
942 YaTeX-ec-regexp
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
943 (regexp-quote
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
944 (cdr (assq env '((?( . ")") (?) . "(")
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
945 (?[ . "]") (?] . "[")))))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
946 YaTeX-ec-regexp
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
947 (regexp-quote (char-to-string env)))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
948 re-s (if (memq env '(?\( ?\[))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
949 're-search-forward
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
950 're-search-backward)))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
951 (t (if noerr nil (error "Corresponding environment not found."))))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
952 (progn
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
953 (while (and (>= nest 0) (funcall re-s regexp nil t))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
954 (setq b0 (match-beginning 0) b1 (match-beginning 1))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
955 (if (or (equal b0 m0)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
956 (YaTeX-literal-p b0))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
957 nil
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
958 (setq nest (if (equal b0 b1)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
959 (1- nest) (1+ nest)))))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
960 (if (< nest 0)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
961 (goto-char (match-beginning 0)) ;found.
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
962 (goto-char op)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
963 (funcall
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
964 (if noerr 'message 'error)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
965 "Corresponding environment `%s' not found." env)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
966 (sit-for 1)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
967 nil))))))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
968
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
969 (defun YaTeX-end-environment ()
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
970 "Close opening environment"
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
971 (interactive)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
972 (let ((env (YaTeX-inner-environment)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
973 (if (not env) (error "No premature environment")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
974 (save-excursion
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
975 (if (YaTeX-search-active-forward
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
976 (YaTeX-replace-format-args YaTeX-struct-end env "" "")
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
977 YaTeX-comment-prefix nil t)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
978 (if (y-or-n-p
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
979 (concat "Environment `" env
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
980 "' may be already closed. Force close?"))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
981 nil
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
982 (error "end environment aborted."))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
983 (message "") ;Erase (y or n) message.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
984 (YaTeX-insert-struc 'end env)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
985 (save-excursion
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
986 (goto-char (or (get 'YaTeX-inner-environment 'point) (match-end 0)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
987 (if (pos-visible-in-window-p)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
988 (sit-for (if YaTeX-dos 2 1))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
989 (message "Matches with %s at line %d"
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
990 (YaTeX-replace-format-args YaTeX-struct-begin env "" "")
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
991 (count-lines (point-min) (point))))))))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
992
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
993 (defun YaTeX-beginning-of-environment (&optional limit-search-bound end)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
994 "Goto the beginning of the current environment.
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
995 Optional argument LIMIT-SEARCH-BOUND non-nil limits the search bound to
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
996 most recent sectioning command. Non-nil for optional third argument END
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
997 goes to end of environment."
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
998 (interactive)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
999 (let ((op (point)))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1000 (if (YaTeX-inner-environment limit-search-bound)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1001 (progn
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1002 (goto-char (get 'YaTeX-inner-environment 'point))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1003 (and end (YaTeX-goto-corresponding-environment))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1004 (if (interactive-p) (push-mark op))
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1005 (point)))))
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1006
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1007 (defun YaTeX-end-of-environment (&optional limit-search-bound)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1008 "Goto the end of the current environment.
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1009 Optional argument LIMIT-SEARCH-BOUND non-nil limits the search bound
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1010 to most recent sectioning command."
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1011 (interactive)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1012 (YaTeX-beginning-of-environment limit-search-bound t))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1013
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1014 (defun YaTeX-mark-environment ()
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1015 "Mark current position and move point to end of environment."
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1016 (interactive)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1017 (let ((curp (point)))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1018 (if (and (YaTeX-on-begin-end-p) (match-beginning 1)) ;if on \\begin
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1019 (progn (goto-char (match-end 0)))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1020 (if (= (char-after (point)) ?\\) nil ;if on \\end
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1021 (skip-chars-backward "^\n\\\\")
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1022 (or (bolp) (forward-char -1))))
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1023 (if (not (YaTeX-end-of-environment)) ;arg1 turns to match-beginning 1
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1024 (progn
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1025 (goto-char curp)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1026 (error "Cannot found the end of current environment."))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1027 (YaTeX-goto-corresponding-environment)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1028 (beginning-of-line) ;for confirmation
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1029 (if (< curp (point))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1030 (progn
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1031 (message "Mark this environment?(y or n): ")
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1032 (if (= (read-char) ?y) nil
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1033 (goto-char curp)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1034 (error "Abort. Please call again at more proper position."))))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1035 (set-mark-command nil)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1036 (YaTeX-goto-corresponding-environment)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1037 (end-of-line)
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1038 (if (eobp) nil (forward-char 1)))))
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1039
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1040 (defun YaTeX-kill-buffer (buffer)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1041 "Make effort to show parent buffer after kill."
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1042 (interactive "bKill buffer: ")
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1043 (or (get-buffer buffer)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1044 (error "No such buffer %s" buffer))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1045 (let ((pf YaTeX-parent-file))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1046 (kill-buffer buffer)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1047 (and pf
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1048 (get-file-buffer pf)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1049 (switch-to-buffer (get-file-buffer pf)))))
70
44e3a5e1e883 Fix makefile for Windows
yuuji
parents: 69
diff changeset
1050
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1051 ;;;VER2
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1052 (defun YaTeX-insert-struc (what env)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1053 (cond
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1054 ((eq what 'begin)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1055 (insert (YaTeX-replace-format-args
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1056 YaTeX-struct-begin env (YaTeX-addin env))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1057 ((eq what 'end)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1058 (insert (YaTeX-replace-format-args YaTeX-struct-end env)))
69
807c1e7e68b7 yahtml-escape-chars-region
yuuji
parents: 68
diff changeset
1059 (t nil)))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1060
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1061 (defun YaTeX-string-width (str)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1062 "Return the display width of string."
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1063 (if (fboundp 'string-width)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1064 (string-width str)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1065 (length str)))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1066 (defun YaTeX-truncate-string-width (str width)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1067 (cond
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1068 ((fboundp 'truncate-string-to-width) (truncate-string-to-width str width))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1069 ((fboundp 'truncate-string) (truncate-string str width))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1070 (t (substring str 0 width))))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1071
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1072 ;;; Function for menu support
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1073 (defun YaTeX-define-menu (keymap bindlist)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1074 "Define KEYMAP(symbol)'s menu-bindings according to BINDLIST.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1075 KEYMAP should be a quoted symbol of newly allocated keymap.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1076 BINDLIST consists of binding list. Each element is as follows.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1077
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1078 '(menusymbol DOC_String . contents)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1079
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1080 CONTENTS is one of lambda-form, interactive function, or other keymap.
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1081 See yatex19.el for example."
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1082 (cond
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1083 ((featurep 'xemacs)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1084 (let (name)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1085 (if (keymapp (symbol-value keymap))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1086 (progn
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1087 (setq name (keymap-name (symbol-value keymap)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1088 (set keymap nil))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1089 (setq name (car (symbol-value keymap)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1090 (set keymap (cdr (symbol-value keymap))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1091 (mapcar
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1092 (function
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1093 (lambda (bind)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1094 (setq bind (cdr bind))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1095 (if (eq (car-safe (cdr bind)) 'lambda)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1096 (setcar (cdr bind) 'progn))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1097 (if (stringp (car-safe (cdr bind)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1098 (set keymap
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1099 (cons (cdr bind) (symbol-value keymap)))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1100 (set keymap
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1101 (cons (vector (car bind) (cdr bind) t)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1102 (symbol-value keymap))))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1103 bindlist)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1104 (set keymap (cons name (symbol-value keymap)))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1105 (t
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1106 (mapcar
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1107 (function
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1108 (lambda (bind)
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1109 (define-key (symbol-value keymap) (vector (car bind)) (cdr bind))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1110 bindlist))))
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1111
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1112 ;;;
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1113 ;; Emacs 21 compensational wrapper
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1114 ;;;
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1115 (defun YaTeX-minibuffer-begin ()
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1116 (if (fboundp 'field-beginning)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1117 (field-beginning (point-max))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1118 (point-min)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1119
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1120 (defun YaTeX-minibuffer-end ()
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1121 (if (fboundp 'field-end)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1122 (field-end (point-max))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1123 (point-max)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1124
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1125 (defun YaTeX-minibuffer-string ()
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1126 (buffer-substring (YaTeX-minibuffer-begin) (YaTeX-minibuffer-end)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1127
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1128 (defun YaTeX-minibuffer-erase ()
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1129 (if (eq (selected-window) (minibuffer-window))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1130 (if (fboundp 'delete-field) (delete-field) (erase-buffer))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1131
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1132 (fset 'YaTeX-buffer-substring
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1133 (if (fboundp 'buffer-substring-no-properties)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1134 'buffer-substring-no-properties
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1135 'buffer-substring))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1136
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1137 ;;;
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1138 ;; hilit19 vs. font-lock
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1139 ;;;
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1140 (defvar YaTeX-19-functions-font-lock-direct
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1141 '(YaTeX-19-re-search-in-env))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1142
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1143 (defun YaTeX-convert-pattern-hilit2fontlock (h19pa)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1144 "Convert hilit19's H19PA patterns alist to font-lock's one.
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1145 This function is a makeshift for YaTeX and yahtml."
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1146 (let ((ignorecase (not (null (car h19pa))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1147 (palist (cdr h19pa))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1148 flpa i newface
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1149 (mapping
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1150 '((bold . YaTeX-font-lock-bold-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1151 (italic . YaTeX-font-lock-italic-face)
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1152 (defun . font-lock-function-name-face)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1153 (define . font-lock-variable-name-face)
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1154 (keyword . font-lock-keyword-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1155 (decl . YaTeX-font-lock-declaration-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1156 (label . YaTeX-font-lock-label-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1157 (crossref . YaTeX-font-lock-crossref-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1158 (include . YaTeX-font-lock-include-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1159 (formula . YaTeX-font-lock-formula-face)
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1160 (delimiter . YaTeX-font-lock-delimiter-face)
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1161 (string . ignore) (comment . ignore)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1162 )))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1163 (while (setq i (car palist))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1164 (setq newface (nth 2 i)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1165 newface (or (cdr (assq newface mapping)) newface))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1166 (cond
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1167 ((eq newface 'ignore) nil) ;no translation
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1168 ((stringp (car i)) ;hiliting by regexp
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1169 (setq flpa
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1170 (cons
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1171 (if (numberp (car (cdr i)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1172 (list (car i) ;regexp
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1173 (car (cdr i)) ;matching group number
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1174 newface nil) ;'keep) ;keep is hilit19 taste
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1175 (list
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1176 (concat
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1177 (car i) ;original regexp and..
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1178 ;;"[^"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1179 ;;(regexp-quote (substring (car (cdr i)) 0 1))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1180 ;;"]+" ;for shortest match
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1181 ".*"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1182 (car (cdr i)))
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1183 0 (list 'quote newface) nil)) ;;'keep))
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1184 flpa)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1185 ((and (symbolp (car i)) (fboundp (car i)))
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1186 (if (memq (car i) YaTeX-19-functions-font-lock-direct)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1187 ;; Put direct function call for it.
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1188 ;; When calling this function, fontify entire matched string.
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1189 (setq flpa
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1190 (cons
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1191 (list
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1192 (list 'lambda (list 'dummy) ;dummy should be boundary
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1193 (list (car i) (list 'quote (car (cdr i)))))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1194 (list 0 newface))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1195 flpa))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1196 (setq flpa
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1197 (cons
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1198 (list (car (cdr i)) ;regexp
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1199 (list
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1200 (list
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1201 'lambda (list 'dummy)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1202 '(goto-char (match-beginning 0))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1203 (if (eq (nth 3 i) 'overwrite)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1204 nil
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1205 '(remove-text-properties
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1206 (point) (min (point-max) (1+ (point)))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1207 '(face nil font-lock-multiline nil)))
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1208 (list
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1209 'let (list '(e (match-end 0))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1210 (list 'm (list (car i) (car (cdr i)))))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1211 (list
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1212 'if 'm
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1213 (list
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1214 'YaTeX-font-lock-fillin
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1215 (list 'car 'm)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1216 (list 'cdr 'm)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1217 (list 'quote 'face)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1218 (list 'quote 'font-lock)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1219 (list 'quote newface))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1220 '(goto-char e)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1221 ))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1222 nil) ;retun nil to cheat font-lock
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1223 nil nil)) ;pre-match, post-match both nil
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1224 flpa)))))
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1225 (setq palist (cdr palist)));while
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1226 (if (featurep 'xemacsp)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1227 (nreverse flpa)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1228 flpa)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1229
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1230 (if (and (boundp 'YaTeX-use-font-lock)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1231 YaTeX-use-font-lock)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1232 (require 'font-lock))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1233
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1234 (cond
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1235 ((and (featurep 'font-lock) (fboundp 'defface))
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1236 ;; In each defface, '(class static-color) is for Emacs-21 -nw
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1237 ;; '(class tty) is for XEmacs-21 -nw
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1238 (defface YaTeX-font-lock-label-face
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1239 '((((class static-color)) (:foreground "yellow" :underline t))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1240 (((type tty)) (:foreground "yellow" :underline t))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1241 (((class color) (background dark)) (:foreground "pink" :underline t))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1242 (((class color) (background light)) (:foreground "red" :underline t))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1243 (t (:bold t :underline t)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1244 "Font Lock mode face used to highlight labels."
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1245 :group 'font-lock-faces)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1246 (defvar YaTeX-font-lock-label-face 'YaTeX-font-lock-label-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1247
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1248 (defface YaTeX-font-lock-declaration-face
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1249 '((((class color) (background dark)) (:foreground "cyan"))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1250 (((class color) (background light)) (:foreground "RoyalBlue"))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1251 (t (:bold t :underline t)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1252 "Font Lock mode face used to highlight some declarations."
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1253 :group 'font-lock-faces)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1254 (defvar YaTeX-font-lock-declaration-face 'YaTeX-font-lock-declaration-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1255
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1256 (defface YaTeX-font-lock-include-face
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1257 '((((class color) (background dark)) (:foreground "Plum1"))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1258 (((class color) (background light)) (:foreground "purple"))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1259 (t (:bold t :underline t)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1260 "Font Lock mode face used to highlight expression for including."
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1261 :group 'font-lock-faces)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1262 (defvar YaTeX-font-lock-include-face 'YaTeX-font-lock-include-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1263
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1264 (defface YaTeX-font-lock-formula-face
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1265 '((((class static-color)) (:bold t))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1266 (((type tty)) (:bold t))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1267 (((class color) (background dark)) (:foreground "khaki" :bold t))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1268 (((class color) (background light)) (:foreground "Goldenrod"))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1269 (t (:bold t :underline t)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1270 "Font Lock mode face used to highlight formula."
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1271 :group 'font-lock-faces)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1272 (defvar YaTeX-font-lock-formula-face 'YaTeX-font-lock-formula-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1273
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1274 (defface YaTeX-font-lock-delimiter-face
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1275 '((((class static-color)) (:bold t))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1276 (((type tty)) (:bold t))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1277 (((class color) (background dark))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1278 (:foreground "saddlebrown" :background "ivory" :bold t))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1279 (((class color) (background light)) (:foreground "red"))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1280 (t (:bold t :underline t)))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1281 "Font Lock mode face used to highlight delimiters."
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1282 :group 'font-lock-faces)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1283 (defvar YaTeX-font-lock-delimiter-face 'YaTeX-font-lock-delimiter-face)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1284
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1285 (defface YaTeX-font-lock-math-sub-face
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1286 '((((class static-color)) (:bold t))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1287 (((type tty)) (:bold t))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1288 (((class color) (background dark))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1289 (:foreground "khaki" :bold t :underline t))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1290 (((class color) (background light))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1291 (:foreground "Goldenrod" :underline t))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1292 (t (:bold t :underline t)))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1293 "Font Lock mode face used to highlight subscripts in formula."
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1294 :group 'font-lock-faces)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1295 (defvar YaTeX-font-lock-math-sub-face 'YaTeX-font-lock-math-sub-face)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1296
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1297 (defface YaTeX-font-lock-math-sup-face
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1298 '((((class static-color)) (:bold t))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1299 (((type tty)) (:bold t))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1300 (((class color) (background dark))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1301 (:bold nil :foreground "ivory" :background "lightyellow4"))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1302 (((class color) (background light))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1303 (:underline t :foreground "gold"))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1304 (t (:bold t :underline t)))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1305 "Font Lock mode face used to highlight superscripts in formula."
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1306 :group 'font-lock-faces)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1307 (defvar YaTeX-font-lock-math-sup-face 'YaTeX-font-lock-math-sup-face)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1308
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1309 (defface YaTeX-font-lock-crossref-face
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1310 '((((class color) (background dark)) (:foreground "lightgoldenrod"))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1311 (((class color) (background light)) (:foreground "DarkGoldenrod"))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1312 (t (:bold t :underline t)))
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1313 "Font Lock mode face used to highlight cross references."
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1314 :group 'font-lock-faces)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1315 (defvar YaTeX-font-lock-crossref-face 'YaTeX-font-lock-crossref-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1316
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1317 (defface YaTeX-font-lock-bold-face
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1318 '((t (:bold t)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1319 "Font Lock mode face used to express bold itself."
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1320 :group 'font-lock-faces)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1321 (defvar YaTeX-font-lock-bold-face 'YaTeX-font-lock-bold-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1322
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1323 (defface YaTeX-font-lock-italic-face
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1324 '((t (:italic t)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1325 "Font Lock mode face used to express italic itself."
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1326 :group 'font-lock-faces)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1327 (defvar YaTeX-font-lock-italic-face 'YaTeX-font-lock-italic-face)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1328
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1329 ;; Make sure the 'YaTeX-font-lock-{italic,bold}-face is bound with
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1330 ;; italic/bold fontsets
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1331 (if (and (fboundp 'fontset-list) YaTeX-use-italic-bold)
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1332 (let ((flist (fontset-list)) fnt italic bold
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1333 (df (or (and (fboundp 'face-font-name) (face-font-name 'default))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1334 (face-font 'default)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1335 (face-font 'italic)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1336 (face-font 'bold)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1337 "giveup!"))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1338 sz medium-i bold-r)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1339 (string-match
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1340 "^-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-[^-]*-\\(\\([0-9]+\\)\\)" df)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1341 (setq sz (or (match-string 1 df) "16"))
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1342 (setq medium-i (format "-medium-i-[^-]+--%s" sz)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1343 bold-r (format "-bold-r-[^-]+--%s" sz))
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1344 (while flist
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1345 (setq fnt (car flist))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1346 (condition-case err
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1347 (cond
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1348 ((and (string-match medium-i fnt)
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1349 (null italic))
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1350 (set-face-font 'YaTeX-font-lock-italic-face (setq italic fnt)))
73
f41b01fef5d6 Stable version(hope to be)
yuuji
parents: 72
diff changeset
1351 ((and (string-match bold-r fnt) (null bold))
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1352 (set-face-font 'YaTeX-font-lock-bold-face (setq bold fnt))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1353 (error nil))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1354 (setq flist (cdr flist)))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1355
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1356 ;;Borrowed from XEmacs's font-lock.el
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1357 (defsubst YaTeX-font-lock-fillin (start end setprop markprop value &optional object)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1358 "Fill in one property of the text from START to END.
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1359 Arguments PROP and VALUE specify the property and value to put where none are
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1360 already in place. Therefore existing property values are not overwritten.
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1361 Optional argument OBJECT is the string or buffer containing the text."
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1362 (let ((start (text-property-any start end markprop nil object)) next
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1363 (putfunc (if (fboundp 'put-nonduplicable-text-property)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1364 'put-nonduplicable-text-property
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1365 'put-text-property)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1366 (if (eq putfunc 'put-text-property)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1367 (setq markprop setprop))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1368 (while start
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1369 (setq next (next-single-property-change start markprop object end))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1370 (funcall putfunc start next setprop value object)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1371 (funcall putfunc start next markprop value object)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1372 (setq start (text-property-any next end markprop nil object)))))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1373
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1374 (defun YaTeX-warning-font-lock (mode)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1375 (let ((sw (selected-window)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1376 ;;(pop-to-buffer (format " *%s warning*" mode))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1377 ;;(erase-buffer)
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1378 (momentary-string-display
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1379 (cond
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1380 (YaTeX-japan
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1381 (concat mode " は、既に font-lock に対応しました。\n"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1382 "~/.emacs などにある\n"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1383 "\t(put 'yatex-mode 'font-lock-keywords 'tex-mode)\n"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1384 "\t(put 'yahtml-mode 'font-lock-keywords 'html-mode)\n"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1385 "などの間に合わせの記述はもはや不要です。"))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1386 (t
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1387 (concat mode " now supports the font-lock by itself.\n"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1388 "So you can remove the descriptions such as\n"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1389 "\t(put 'yatex-mode 'font-lock-keywords 'tex-mode)\n"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1390 "\t(put 'yahtml-mode 'font-lock-keywords 'html-mode)\n"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1391 "in your ~/.emacs file. Thank you."))) (point))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1392 (select-window sw)))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1393 ))
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1394
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1395 (defun YaTeX-assoc-regexp (elt alist)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1396 "Like assoc, return a list of whose car match with ELT. Search from ALIST.
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1397 Note that each car of cons-cell is regexp. ELT is a plain text to be
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1398 compared by regexp."
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1399 (let (x)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1400 (catch 'found
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1401 (while alist
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1402 (setq x (car (car alist)))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1403 (if (string-match x elt)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1404 (throw 'found (car alist)))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1405 (setq alist (cdr alist))))))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1406
68
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
1407 ;;;
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
1408 ;; Functions for the Installation time
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
1409 ;;;
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1410
58
3a7c0c2bf16d Official support for AMS-LaTeX, HTML, xdvi -remote, Netscape
yuuji
parents: 56
diff changeset
1411 (defun bcf-and-exit ()
3a7c0c2bf16d Official support for AMS-LaTeX, HTML, xdvi -remote, Netscape
yuuji
parents: 56
diff changeset
1412 "Byte compile rest of argument and kill-emacs."
3a7c0c2bf16d Official support for AMS-LaTeX, HTML, xdvi -remote, Netscape
yuuji
parents: 56
diff changeset
1413 (if command-line-args-left
68
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
1414 (let ((load-path (cons "." load-path)))
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
1415 (and (fboundp 'set-language-environment)
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
1416 (featurep 'mule)
0eb6997bee16 More adjustment for Emacs20 and XEmacs
yuuji
parents: 64
diff changeset
1417 (set-language-environment "Japanese"))
58
3a7c0c2bf16d Official support for AMS-LaTeX, HTML, xdvi -remote, Netscape
yuuji
parents: 56
diff changeset
1418 (mapcar 'byte-compile-file command-line-args-left)
3a7c0c2bf16d Official support for AMS-LaTeX, HTML, xdvi -remote, Netscape
yuuji
parents: 56
diff changeset
1419 (kill-emacs))))
64
36a48185b95a Changes are listed in yatex.new.
yuuji
parents: 59
diff changeset
1420
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1421 (defun tfb-and-exit ()
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1422 "Texinfo-format-buffer and kill-emacs."
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1423 (if command-line-args-left
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1424 (let ((load-path (cons ".." load-path)))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1425 (and (fboundp 'set-language-environment)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1426 (featurep 'mule)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1427 (set-language-environment "Japanese"))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1428 (mapcar (function
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1429 (lambda (arg)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1430 (find-file arg)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1431 (texinfo-format-buffer)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1432 (basic-save-buffer)))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1433 command-line-args-left)
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1434 (kill-emacs))))
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1435
23
b00c74813e56 Change the YaTeX-math-mode's prefix from `,' to `;'.
yuuji
parents:
diff changeset
1436 (provide 'yatexlib)
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1437 ; Local variables:
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1438 ; fill-prefix: ";;; "
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1439 ; paragraph-start: "^$\\| \\|;;;$"
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1440 ; paragraph-separate: "^$\\| \\|;;;$"
80
9b4354af748c Too many changes from 1.72.
yuuji
parents: 79
diff changeset
1441 ; coding: sjis
72
0aaebd07dad0 Support font-lock on XEmacs-21, Emacs-20, Emacs-21.
yuuji
parents: 70
diff changeset
1442 ; End:

yatex.org