comparison lisp/skk/skk-foreword.el @ 219:262b8bb4a523 r20-4b8

Import from CVS: tag r20-4b8
author cvs
date Mon, 13 Aug 2007 10:09:35 +0200
parents
children
comparison
equal deleted inserted replaced
218:c9f226976f56 219:262b8bb4a523
1 ;;; skk-foreword.el --- $BA0=q$-(B
2 ;; Copyright (C) 1997 Mikio Nakajima <minakaji@osaka.email.ne.jp>
3
4 ;; Author: Mikio Nakajima <minakaji@osaka.email.ne.jp>
5 ;; Maintainer: Murata Shuuichirou <mrt@mickey.ai.kyutech.ac.jp>
6 ;; Mikio Nakajima <minakaji@osaka.email.ne.jp>
7 ;; Version: $Id: skk-foreword.el,v 1.1 1997/12/02 08:48:37 steve Exp $
8 ;; Keywords: japanese
9 ;; Last Modified: $Date: 1997/12/02 08:48:37 $
10
11 ;; This program is free software; you can redistribute it and/or modify
12 ;; it under the terms of the GNU General Public License as published by
13 ;; the Free Software Foundation; either versions 2, or (at your option)
14 ;; any later version.
15
16 ;; This program is distributed in the hope that it will be useful
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 ;; GNU General Public License for more details.
20
21 ;; You should have received a copy of the GNU General Public License
22 ;; along with SKK, see the file COPYING. If not, write to the Free
23 ;; Software Foundation Inc., 59 Temple Place - Suite 330, Boston,
24 ;; MA 02111-1307, USA.
25
26 ;;; Commentary:
27
28 ;; $BA0$KDj5A$7$F$*$+$J$1$l$P$J$j$^$;$s!#$3$N%U%!%$%k$O!"$3$N$h(B
29 ;; $B$&$K!"JQ?t$N@k8@0JA0$KDj5A$7$F$*$+$J$1$l$P$J$i$J$$$b$N$r$^(B
30 ;; $B$H$a$?$b$N$G$9!#%f!<%6!<JQ?t$NDj5A$NA0$K!"$4$A$c$4$A$c$H%f(B
31 ;; $B!<%6!<$K6=L#$,$J$$$b$N$,JB$s$G$$$?$N$G$O!"%f!<%6!<%U%l%s%I(B
32 ;; $B%j!<$G$O$J$$$H9M$($k$+$i$G$9!#(B
33 ;;
34 ;; Following people contributed modifications to skk-foreword.el (Alphabetical order):
35 ;; Hideki Sakurada <sakurada@kuis.kyoto-u.ac.jp>
36 ;; Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
37
38 ;;; Change log:
39
40 ;;; Code:
41 (require 'easymenu)
42
43 ;; necessary macro and functions to be declared before user variable declarations.
44
45 ;; From viper-util.el. Welcome!
46 (defmacro skk-deflocalvar (var default-value &optional documentation)
47 (` (progn
48 (defvar (, var) (, default-value)
49 (, (format "%s\n\(buffer local\)" documentation)))
50 (make-variable-buffer-local '(, var))
51 )))
52
53 ;; From emu.el of tm package. Welcome! Its original is defun-maybe.
54 (defmacro skk-defunsoft (name &rest everything-else)
55 (or (fboundp name)
56 (` (or (fboundp (quote (, name)))
57 (defun (, name) (,@ everything-else)) ))))
58
59 (put 'skk-deflocalvar 'lisp-indent-function 'defun)
60 (put 'skk-defunsoft 'lisp-indent-function 'defun)
61
62 ;;(defun skk-get (symbol property-name &optional default)
63 ;; ;; SYMBOL $B$NB0@-%j%9%H$K(B PROPERTY-NAME $B$H$$$&B0@-L>$,$"$l$P$=$NB0@-CM$rJV$9!#(B
64 ;; ;; $B$J$1$l$P(B DEFAULT $B$rJV$9(B (DEFAULT $B$,;XDj$5$l$F$$$J$1$l$P(B NIL)$B!#B0@-L>$NHf(B
65 ;; ;; $B3S$O!"(Beq $B$G9T$J$&!#(B
66 ;; (if default
67 ;; (let ((pl (memq property-name (symbol-plist symbol))))
68 ;; (if pl (nth 1 pl) default) )
69 ;; (get symbol property-name) ))
70
71 (defun skk-terminal-face-p ()
72 (and (not window-system)
73 (fboundp 'frame-face-alist) ;; $BJQ?tL>$_$?$$$J4X?t$@$J(B...$B!#(B
74 (fboundp 'selected-frame) ))
75
76 ;;; skk-defunsofts Define nothing if it is already there.
77
78 ;; eval-after-load is not defined in XEmacs but after-load-alist is usable.
79 ;; See subr.el in XEmacs.
80 (skk-defunsoft eval-after-load (file form)
81 (or (assoc file after-load-alist)
82 (setq after-load-alist (cons (list file) after-load-alist)))
83 (let ((elt (assoc file after-load-alist)))
84 (or (member form (cdr elt))
85 (nconc elt (list form))))
86 form )
87
88 (skk-defunsoft set-cursor-color (color-name)
89 (set-frame-property (selected-frame) 'cursor-color
90 (if (color-instance-p color-name)
91 color-name
92 (make-color-instance color-name))))
93
94 (skk-defunsoft rassoc (key alist)
95 (cond ((null alist) nil)
96 ((and (consp (car alist))
97 (equal key (cdr (car alist))) (car alist)))
98 (t (rassoc key (cdr alist))) ))
99
100 (skk-defunsoft add-to-list (list-var element)
101 (or (member element (symbol-value list-var))
102 (set list-var (cons element (symbol-value list-var))) ))
103
104 ;; mule-3 $B$G$O!"(Bcancel-undo-boundary $B$,$J$$!#(B
105 ;; from mule-util.el
106 (skk-defunsoft cancel-undo-boundary ()
107 ;; buffer-undo-list $B$N(B car $B$N(B nil $B$r>C$7!"(Bundo $B%3%^%s%I$,D>6a$N%P%C%U%!(B
108 ;; $B$NJQ99$G;_$^$i$J$$$h$&$K$9$k!#(Bbuffer-undo-list $B$K$*$1$k(B nil $B$O!"JQ(B
109 ;; $B9972$HJQ9972$N6-3&$r<($9%G%j%_%?$NF/$-$r$7$F$$$k!#(B
110 (if (and (consp buffer-undo-list)
111 ;; car $B$,(B nil $B$@$C$?$i$=$l$r>C$9!#(B
112 (null (car buffer-undo-list)) )
113 (setq buffer-undo-list (cdr buffer-undo-list)) ))
114
115 (skk-defunsoft match-string (n str)
116 (substring str (match-beginning n) (match-end n)) )
117
118 ;;;; version specific matter.
119 (eval-and-compile
120 (defconst skk-xemacs (and (featurep 'mule)
121 (string-match "XEmacs" emacs-version) )
122 "Non-nil $B$G$"$l$P!"(BXEmacs $B$G(B SKK $B$r;HMQ$7$F$$$k$3$H$r<($9!#(B" )
123
124 (defconst skk-mule3 (and (featurep 'mule) (boundp 'mule-version)
125 (string< "3.0" mule-version))
126 "Non-nil $B$G$"$l$P!"(BMule 3 $B$G(B SKK $B$r;HMQ$7$F$$$k$3$H$r<($9!#(B" )
127
128 (defconst skk-mule (featurep 'mule)
129 "Non-nil $B$G$"$l$P!"(BMule $B$G(B SKK $B$r;HMQ$7$F$$$k$3$H$r<($9!#(B" )
130
131 (defconst skk-20 (or skk-mule3 skk-xemacs)
132 "Non-nil $B$G$"$l$P!"(BEmacs $B$N(B ver. 20 $B$G(B SKK $B$r;HMQ$7$F$$$k$3$H$r<($9!#(B" )
133
134 (cond ((or (and (boundp 'epoch::version) epoch::version)
135 (string< (substring emacs-version 0 2) "18") )
136 (message "THIS SKK requires Emacs 19")
137 (sit-for 2) )
138 ;; for XEmacs
139 (skk-xemacs
140 (defalias 'skk-buffer-substring 'buffer-substring-no-properties)
141 (defalias 'skk-character-to-event 'character-to-event)
142 (defalias 'skk-event-to-character 'event-to-character)
143 (defalias 'skk-int-char 'int-char)
144 (defalias 'skk-read-event 'next-command-event)
145 (defsubst skk-unread-event (event)
146 ;; Unread single EVENT.
147 (setq unread-command-events
148 (nconc unread-command-events (list event))) )
149 (defalias 'skk-make-overlay 'make-extent)
150 (defalias 'skk-move-overlay 'set-extent-endpoints)
151 (defalias 'skk-overlay-put 'set-extent-property)
152 (defalias 'skk-overlayp 'extentp)
153 (defalias 'skk-delete-overlay 'detach-extent)
154 (defalias 'skk-charsetp 'find-charset)
155 (defalias 'skk-char-to-string 'char-to-string)
156 (defun skk-make-char (charset n1 n2)
157 (make-char charset
158 (logand (lognot 128) n1)
159 (logand (lognot 128) n2) ))
160 ;; skk-kana-input-event-type
161 ;; (event $B$G$J$/J8;z$r0z?t$K$H$k$h$&$K$7$?$N$G(B,
162 ;; skk-kana-input-char-type $B$NL>A0$r;H$$$^$7$?(B)
163 (defun skk-kana-input-char-type (char)
164 ;; "Return type of CHAR for `skk-kana-input'."
165 ;; CHAR is character or nil
166 (cond ((and char
167 (<= 0 char) (< char (length skk-char-type-vector)))
168 ;; this is normal ascii char
169 (aref skk-char-type-vector char))
170 ;; if you want to perform delete by event other than ascii
171 ;; keystroke event, following clause should be modified to
172 ;; return type 5 when apropriciate.
173 (t nil) ))
174
175 (defmacro with-output-to-temp-buffer (bufname &rest body)
176 (let ((obuf (make-symbol "obuf"))
177 (buf (make-symbol "buf")) )
178 `(let ((,obuf (current-buffer))
179 (,buf (get-buffer-create ,bufname))
180 standard-output )
181 (set-buffer ,buf)
182 (erase-buffer)
183 (setq standard-output ,buf)
184 ,@body
185 (pop-to-buffer ,buf) )))
186
187 (defmacro with-current-buffer (buffer &rest body)
188 "Execute the forms in BODY with BUFFER as the current buffer.
189 The value returned is the value of the last form in BODY.
190 See also `with-temp-buffer'."
191 (` (save-current-buffer
192 (set-buffer (, buffer))
193 (,@ body))))
194
195 (defmacro with-temp-file (file &rest forms)
196 "Create a new buffer, evaluate FORMS there, and write the buffer to FILE.
197 The value of the last form in FORMS is returned, like `progn'.
198 See also `with-temp-buffer'."
199 (let ((temp-file (make-symbol "temp-file"))
200 (temp-buffer (make-symbol "temp-buffer")))
201 (` (let (((, temp-file) (, file))
202 ((, temp-buffer)
203 (get-buffer-create (generate-new-buffer-name " *temp file*"))))
204 (unwind-protect
205 (prog1
206 (with-current-buffer (, temp-buffer)
207 (,@ forms))
208 (with-current-buffer (, temp-buffer)
209 (widen)
210 (write-region (point-min) (point-max) (, temp-file) nil 0)))
211 (and (buffer-name (, temp-buffer))
212 (kill-buffer (, temp-buffer))))))))
213 (defmacro combine-after-change-calls (&rest body)
214 (` (unwind-protect
215 (let ((combine-after-change-calls t))
216 . (, body))
217 (combine-after-change-execute))))
218 (defmacro combine-after-change-execute (&rest body)
219 body )
220 )
221 ;; for Emacs 19
222 (t
223 (defmacro skk-character-to-event (char) char);; $B2?$b$7$J$$(B
224 (defmacro skk-int-char (char) char);; $B2?$b$7$J$$(B
225 (defsubst skk-unread-event (event)
226 ;; Unread single EVENT.
227 (setq unread-command-events
228 (nconc unread-command-events (list event))))
229 (defalias 'skk-read-event 'read-event)
230 (defalias 'skk-make-overlay 'make-overlay)
231 (defalias 'skk-move-overlay 'move-overlay)
232 (defalias 'skk-overlay-put 'overlay-put)
233 (defalias 'skk-overlayp 'overlayp)
234 (defalias 'skk-delete-overlay 'delete-overlay)
235 (defun skk-event-to-character (event)
236 ;; Return character of keystroke EVENT.
237 (cond ((symbolp event)
238 ;; mask is (BASE-TYPE MODIFIER-BITS) or nil.
239 (let ((mask (get event 'event-symbol-element-mask)))
240 (if mask
241 (let ((base (get (car mask) 'ascii-character)))
242 (if base
243 (logior base (car (cdr mask))))))))
244 ((integerp event)
245 event)
246 (t nil) ))
247 (defun skk-kana-input-char-type (event)
248 ;; "Return type of EVENT for `skk-kana-input'."
249 (cond ((and (integerp event)
250 (<= 0 event) (< event (length skk-char-type-vector)))
251 ;; this is normal ascii keystroke event
252 (aref skk-char-type-vector event))
253 ;; if you want to perform delete by event other than ascii
254 ;; keystroke event, following clause should be modified to
255 ;; return type 5 when apropriciate.
256 (t nil) ))
257
258 ;; overwrite built-in combine-after-change-execute
259 (defmacro combine-after-change-execute (&rest body)
260 body )
261 (defmacro combine-after-change-calls (&rest body)
262 (` (unwind-protect
263 (let ((combine-after-change-calls t))
264 . (, body))
265 (combine-after-change-execute))))
266 (if skk-mule3
267 nil
268
269 (defmacro with-output-to-temp-buffer (bufname &rest body)
270 (let ((obuf (make-symbol "obuf"))
271 (buf (make-symbol "buf")) )
272 `(let ((,obuf (current-buffer))
273 (,buf (get-buffer-create ,bufname))
274 standard-output )
275 (set-buffer ,buf)
276 (erase-buffer)
277 (setq standard-output ,buf)
278 ,@body
279 (pop-to-buffer ,buf) )))
280
281 (defmacro save-current-buffer (&rest body)
282 (let ((orig-buffer (make-symbol "orig-buffer")))
283 (` (let (((, orig-buffer) (current-buffer)))
284 (unwind-protect
285 (progn (,@ body))
286 (set-buffer (, orig-buffer)) )))))
287
288 (defmacro with-current-buffer (buffer &rest body)
289 "Execute the forms in BODY with BUFFER as the current buffer.
290 The value returned is the value of the last form in BODY.
291 See also `with-temp-buffer'."
292 (` (save-current-buffer
293 (set-buffer (, buffer))
294 (,@ body))))
295
296 (defmacro with-temp-file (file &rest forms)
297 "Create a new buffer, evaluate FORMS there, and write the buffer to FILE.
298 The value of the last form in FORMS is returned, like `progn'.
299 See also `with-temp-buffer'."
300 (let ((temp-file (make-symbol "temp-file"))
301 (temp-buffer (make-symbol "temp-buffer")))
302 (` (let (((, temp-file) (, file))
303 ((, temp-buffer)
304 (get-buffer-create (generate-new-buffer-name " *temp file*"))))
305 (unwind-protect
306 (prog1
307 (with-current-buffer (, temp-buffer)
308 (,@ forms))
309 (with-current-buffer (, temp-buffer)
310 (widen)
311 (write-region (point-min) (point-max) (, temp-file) nil 0)))
312 (and (buffer-name (, temp-buffer))
313 (kill-buffer (, temp-buffer))))))))
314
315 (defmacro with-temp-buffer (&rest forms)
316 "Create a temporary buffer, and evaluate FORMS there like `progn'.
317 See also `with-temp-file' and `with-output-to-string'."
318 (let ((temp-buffer (make-symbol "temp-buffer")))
319 (` (let (((, temp-buffer)
320 (get-buffer-create (generate-new-buffer-name " *temp*"))))
321 (unwind-protect
322 (with-current-buffer (, temp-buffer)
323 (,@ forms))
324 (and (buffer-name (, temp-buffer))
325 (kill-buffer (, temp-buffer))))))))
326
327 (defmacro with-output-to-string (&rest body)
328 "Execute BODY, return the text it sent to `standard-output', as a string."
329 (` (let ((standard-output
330 (get-buffer-create (generate-new-buffer-name " *string-output*"))))
331 (let ((standard-output standard-output))
332 (,@ body))
333 (with-current-buffer standard-output
334 (prog1
335 (buffer-string)
336 (kill-buffer nil)))))))
337 (cond
338 ((string< "20" emacs-version)
339 ;; For emacs 20
340 (defalias 'skk-charsetp 'charsetp)
341 (defalias 'skk-make-char 'make-char)
342 (defalias 'skk-buffer-substring 'buffer-substring-no-properties)
343 (defun skk-char-to-string (char)
344 (condition-case nil
345 (char-to-string char)
346 (error
347 nil ))))
348 ((string< "19.29" emacs-version)
349 ;; For emacs 19.29, 19.30...
350 (defalias 'skk-charsetp 'character-set)
351 (defalias 'skk-make-char 'make-character)
352 (defalias 'skk-buffer-substring 'buffer-substring-no-properties)
353 (defalias 'skk-char-to-string 'char-to-string) )
354 (t
355 ;; For emacs 19...19.28
356 (defalias 'skk-charsetp 'character-set)
357 (defalias 'skk-make-char 'make-character)
358 (defalias 'skk-buffer-substring 'buffer-substring)
359 (defalias 'skk-char-to-string 'char-to-string) )
360 ))))
361
362 (defconst skk-background-mode
363 ;; from font-lock-make-faces of font-lock.el Welcome!
364 (cond
365 (skk-xemacs
366 (if (< (apply '+ (color-rgb-components
367 (face-property 'default 'background)))
368 (/ (apply '+ (color-rgb-components
369 (make-color-specifier "white"))) 3))
370 'dark
371 'light)
372 )
373 ((and window-system (x-display-color-p))
374 (let ((bg-resource (x-get-resource ".backgroundMode"
375 "BackgroundMode"))
376 params )
377 (if bg-resource
378 (intern (downcase bg-resource))
379 (setq params (frame-parameters))
380 ;; Mule for Win32 $B$r(B Windows 95 $B$GF0$+$7$F$$$k$H$-$O!"(Bsystem-type $B$O!)(B
381 ;; -> windows-nt $B$G$7$?(B -- Mikio ($B2q<R$N(B Win 95 $B$K(B Mule for Win32 $B$r(B
382 ;; $BF~$l$?(B)$B!#(B
383 (cond ((and (eq system-type 'windows-nt)
384
385 (fboundp 'win32-color-values) )
386 (< (apply '+ (win32-color-values
387 (cdr (assq 'background-color params)) ))
388 (/ (apply '+ (win32-color-values "white")) 3) )
389 'dark )
390 ((and (memq system-type '(ms-dos windows-nt))
391 (fboundp 'x-color-values) )
392 (if (string-match "light"
393 (cdr (assq 'background-color params)) )
394 'light
395 'dark ))
396 ((< (apply '+ (x-color-values
397 (cdr (assq 'background-color params)) ))
398 (/ (apply '+ (x-color-values "white")) 3) )
399 'dark )
400 (t 'light) ))))
401 (t 'mono )))
402
403 (eval-after-load "hilit19"
404 '(mapcar (function
405 (lambda (pattern)
406 (hilit-add-pattern
407 (car pattern) (cdr pattern)
408 (cond ((eq skk-background-mode 'mono)
409 'bold )
410 ((eq skk-background-mode 'light)
411 'RoyalBlue )
412 (t 'cyan) )
413 'emacs-lisp-mode )))
414 '(("^\\s *(skk-deflocalvar\\s +\\S +" . "")
415 ("^\\s *(skk-defunsoft\\s +\\S +" . "") )))
416
417 (defun skk-define-menu-bar-map (map)
418 ;; SKK $B%a%K%e!<$N%H%C%W$K=P8=$9$k%3%^%s%I$N%a%K%e!<$X$NDj5A$r9T$J$&!#(B
419 (easy-menu-define
420 skk-menu map
421 "Menu used in SKK mode."
422 '("SKK"
423 ("Convert Region and Echo"
424 ("Gyakubiki"
425 ["to Hirakana" skk-gyakubiki-message
426 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
427 ["to Hirakana, All Candidates"
428 ;; $B$"$l$l!"(Blambda $B4X?t$ODj5A$G$-$J$$$N$+!)!)!)(B $BF0$+$J$$$>(B...$B!#(B
429 (function (lambda (start end) (interactive "r")
430 (skk-gyakubiki-message start end 'all-candidates) ))
431 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
432 ["to Katakana" skk-gyakubiki-katakana-message
433 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
434 ["to Katakana, All Candidates"
435 (function (lambda (start end) (interactive "r")
436 (skk-gyakubiki-katakana-message
437 start end 'all-candidates ) ))
438 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
439 )
440 ("Hurigana"
441 ["to Hirakana" skk-hurigana-message
442 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
443 ["to Hirakana, All Candidates"
444 (function (lambda (start end) (interactive "r")
445 (skk-hurigana-message start end 'all-candidates) ))
446 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
447 ["to Katakana" skk-hurigana-katakana-message
448 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
449 ["to Katakana, All Candidates"
450 (function (lambda (start end) (interactive "r")
451 (skk-hurigana-katakana-message
452 start end 'all-candidates) ))
453 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
454 )
455 )
456 ("Convert Region and Replace"
457 ["Ascii" skk-ascii-region
458 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
459 ("Gyakubiki"
460 ["to Hirakana" skk-gyakubiki-region
461 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
462 ["to Hirakana, All Candidates"
463 (function (lambda (start end) (interactive "r")
464 (skk-gyakubiki-region start end 'all-candidates) ))
465 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
466 ["to Katakana" skk-gyakubiki-katakana-region
467 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
468 ["to Katakana, All Candidates"
469 (function (lambda (start end) (interactive "r")
470 (skk-gyakubiki-katakana-region
471 start end 'all-candidates ) ))
472 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
473 )
474 ["Hiragana" skk-hiragana-region
475 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
476 ("Hurigana"
477 ["to Hirakana" skk-hurigana-region
478 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
479 ["to Hirakana, All Candidates"
480 (function (lambda (start end) (interactive "r")
481 (skk-hurigana-region start end 'all-candidates) ))
482 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
483 ["to Katakana" skk-hurigana-katakana-region
484 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
485 ["to Katakana, All Candidates" (function
486 (lambda (start end) (interactive "r")
487 (skk-hurigana-katakana-region
488 start end 'all-candidates) ))
489 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
490 )
491 ["Katakana" skk-katakana-region
492 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
493 ["Romaji" skk-romaji-region
494 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
495 ["Zenkaku" skk-zenkaku-region
496 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
497 )
498 ["Count Jisyo Candidates" skk-count-jisyo-candidates
499 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
500 ["Save Jisyo" skk-save-jisyo
501 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
502 ["Undo Kakutei" skk-undo-kakutei
503 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
504 ("User Options"
505 ["skk-allow-spaces-newlines-and-tabs" skk-menu-allow-spaces-newlines-and-tabs
506 (or (not (boundp 'skktut-problem-count))
507 (eq skktut-problem-count 0) ) ]
508 ["skk-auto-start-henkan" skk-menu-auto-henkan
509 (or (not (boundp 'skktut-problem-count))
510 (eq skktut-problem-count 0) ) ]
511 ["skk-auto-insert-paren" skk-menu-auto-insert-paren
512 (or (not (boundp 'skktut-problem-count))
513 (eq skktut-problem-count 0) ) ]
514 ["skk-auto-okuri-process"
515 (function (lambda ()
516 (interactive)
517 (skk-menu-auto-okuri-process)
518 (skk-adjust-search-prog-list-for-auto-okuri) ))
519 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0))]
520 ["skk-compare-jisyo-size-when-saving" skk-menu-compare-jisyo-size-when-saving
521 (or (not (boundp 'skktut-problem-count))
522 (eq skktut-problem-count 0) ) ]
523 ["skk-convert-okurigana-into-katakana" skk-menu-convert-okurigana-into-katakana
524 (or (not (boundp 'skktut-problem-count))
525 (eq skktut-problem-count 0) ) ]
526 ["skk-count-private-jisyo-candidates-exactly"
527 skk-menu-count-private-jisyo-entries-exactly
528 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
529 ["skk-dabbrev-like-completion" skk-menu-dabbrev-like-completion
530 (or (not (boundp 'skktut-problem-count))
531 (eq skktut-problem-count 0) ) ]
532 ["skk-date-ad" skk-menu-date-ad
533 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
534 ["skk-delete-implies-kakutei" skk-menu-delete-implies-kakutei
535 (or (not (boundp 'skktut-problem-count))
536 (eq skktut-problem-count 0) ) ]
537 ["skk-delete-okuri-when-quit" skk-menu-delete-okuri-when-quit
538 (or (not (boundp 'skktut-problem-count))
539 (eq skktut-problem-count 0) ) ]
540 ["skk-echo" skk-menu-echo
541 (or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0)) ]
542 ["skk-egg-like-newline" skk-menu-egg-like-newline
543 (or (not (boundp 'skktut-problem-count))
544 (eq skktut-problem-count 0)) ]
545 ["skk-henkan-okuri-strictly" skk-menu-henkan-okuri-strictly
546 (or (not (boundp 'skktut-problem-count))
547 (eq skktut-problem-count 0)) ]
548 ["skk-henkan-strict-okuri-precedence" skk-menu-henkan-strict-okuri-precedence
549 (or (not (boundp 'skktut-problem-count))
550 (eq skktut-problem-count 0)) ]
551 ["skk-japanese-message-and-error" skk-menu-japanese-message-and-error
552 (or (not (boundp 'skktut-problem-count))
553 (eq skktut-problem-count 0)) ]
554 ["skk-kakutei-early" skk-menu-kakutei-early
555 (or (not (boundp 'skktut-problem-count))
556 (eq skktut-problem-count 0)) ]
557 ["skk-numeric-conversion-float-num" skk-menu-numeric-conversion-float-num
558 (or (not (boundp 'skktut-problem-count))
559 (eq skktut-problem-count 0)) ]
560 ["skk-process-okuri-early" skk-menu-process-okuri-early
561 (or (not (boundp 'skktut-problem-count))
562 (eq skktut-problem-count 0)) ]
563 ["skk-report-server-response" skk-menu-report-server-response
564 (or (not (boundp 'skktut-problem-count))
565 (eq skktut-problem-count 0)) ]
566 ["skk-romaji-*-by-hepburn" skk-menu-romaji-*-by-hepburn
567 (or (not (boundp 'skktut-problem-count))
568 (eq skktut-problem-count 0)) ]
569 ["skk-uniq-numerals" skk-menu-uniq-numerals
570 (or (not (boundp 'skktut-problem-count))
571 (eq skktut-problem-count 0)) ]
572 ["skk-use-color-cursor" skk-menu-use-color-cursor
573 (or (not (boundp 'skktut-problem-count))
574 (eq skktut-problem-count 0)) ]
575 ["skk-use-kakasi" skk-menu-use-kakasi
576 (or (not (boundp 'skktut-problem-count))
577 (eq skktut-problem-count 0)) ]
578 ["skk-use-numeric-conversion" skk-menu-use-numeric-conversion
579 (or (not (boundp 'skktut-problem-count))
580 (eq skktut-problem-count 0)) ]
581 ["skk-use-face" skk-menu-use-overlay
582 (or (not (boundp 'skktut-problem-count))
583 (eq skktut-problem-count 0))] )
584 ["Version" skk-version
585 (or (not (boundp 'skktut-problem-count))
586 (eq skktut-problem-count 0)) ]
587 )))
588
589 (defun skk-update-autoloads (dir)
590 (interactive "DUpdate skk autoloads from directory: ")
591 (require 'autoload)
592 (let ((generated-autoload-file "skk-vars.el"))
593 (update-autoloads-from-directory dir)))
594
595 (provide 'skk-foreword)
596 ;;; skk-forwords.el ends here