pax_global_header00006660000000000000000000000064136177431760014531gustar00rootroot0000000000000052 comment=5b4cd5c73e7a273d1814d83bf7534704778f2a2d ddskk-ddskk-16.3_Kutomatsunai/000077500000000000000000000000001361774317600164245ustar00rootroot00000000000000ddskk-ddskk-16.3_Kutomatsunai/.github/000077500000000000000000000000001361774317600177645ustar00rootroot00000000000000ddskk-ddskk-16.3_Kutomatsunai/.github/workflows/000077500000000000000000000000001361774317600220215ustar00rootroot00000000000000ddskk-ddskk-16.3_Kutomatsunai/.github/workflows/test.yml000066400000000000000000000016051361774317600235250ustar00rootroot00000000000000name: CI on: [push] jobs: build: runs-on: ubuntu-latest strategy: matrix: emacs_version: - '23.4' - '24.1' - '24.2' - '24.3' - '24.4' - '24.5' - '25.1' - '25.2' - '25.3' - '26.1' - '26.2' - '26.3' - 'snapshot' include: - emacs_version: 'snapshot' allow_failure: true steps: - uses: actions/checkout@v1 - uses: purcell/setup-emacs@master with: version: ${{ matrix.emacs_version }} - name: Download requirements if: matrix.emacs_version == '23.4' run: 'make downloads' - name: Run tests if: matrix.allow_failure != true run: 'make elc test' - name: Run tests (allow failure) if: matrix.allow_failure == true run: 'make elc test || true' ddskk-ddskk-16.3_Kutomatsunai/ChangeLog000066400000000000000000000613011361774317600201770ustar00rootroot000000000000002020-02-09 Tsuyoshi Kitamoto * Version 16.3 Kuromatsunai Released. * skk-version.el, docs/conf.py, ddskk-pkg.el, Makefile: Bump SKK version to 16.3. 2020-02-09 Tsuyoshi Kitamoto * README.md : update. * SKK-MK (SKK-MK-export-to-html, SKK-MK-edit-texi): (SKK-MK-export-to-texinfo): Remove function. * docs/* : Add sphinx-format document. 2019-04-23 Tetsuo Tsukamoto <> * skk-annotation.el (skk-annotation-start-python): Bug Fix #72. Function `set-process-coding-system' takes BUFFER as the 1st arg. 2019-04-13 Tatsuya Kinoshita * skk-gadget.el (skk-default-current-date, skk-ad-to-gengo-1) (skk-gengo-to-ad-1): Support 昭和64年, 大正15年 and 明治45年. * skk-gadget.el (skk-default-current-date, skk-ad-to-gengo-1) (skk-gengo-to-ad-1): Support 令和元年(2019/5-) and 平成31年(-2019/4). * skk-vars.el (skk-gengo-alist): Add Japan's new era 令和 (Reiwa). 2019-02-16 Tsuyoshi Kitamoto * skk-develop.el (skk-get-download): Change URL skk-dev.github.io/dict/. * make1.bat: Ditto. 2019-01-09 Tatsuya Kinoshita * skk-macs.el (skk-char-to-unibyte-string): Bug Fix. 2019-01-05 Tsuyoshi Kitamoto * skk-macs.el (skk-char-to-unibyte-string): 2017-02-11 の変更が間違いであるため 元に戻す. 2018-12-20 Takeshi Abe * doc/skk.org, doc/skk.texi, tar-util.el: Fix typo. * doc/obsolete-doc/obsolete-skk.texi: Ditto. 2018-07-07 Tsuyoshi Kitamoto * skk-annotation.el (skk-annotation-start-python): Use function set-process-coding-system instead of set-buffer-process-coding-system. * SKK-MK (SKK-MK-install-info-1): Fix install-info. 2017-07-10 Tsuyoshi Kitamoto * SKK-MK (SKK-MK-export-to-texinfo): Use linkcolor and urlcolor. 2017-07-09 Tsuyoshi Kitamoto * skk-annotation.el (skk-annotation-wait-for-input): Fix indent. (skk-annotation-wait-for-input): Fix #58. * skk.el (skk-compile-rule-list): Fix indent. 2017-07-09 Tsuyoshi Kitamoto * SKK-MK (SKK-MK-export-to-texinfo): `{' と `}' に 接頭辞 `@' を追加. * Makefile: ターゲット `mobi' を追加. 2017-07-06 Tsuyoshi Kitamoto * Makefile (PDFTEX): Use macro TEXI2PDF. 2017-07-05 Tsuyoshi Kitamoto * Makefile: ターゲット `pdf' を追加. PDF の生成方法を texi2pdf へ変更. * SKK-MK (SKK-MK-edit-texi): New functionfor pdf. * .gitignore: 無視する拡張子を追加. 2017-07-01 Tsuyoshi Kitamoto * SKK-MK (SKK-MK-export-to-html): `RET' と `SPC' を class (span.key) とした. * .gitignore: Add `skk.html'. 2017-06-30 Tsuyoshi Kitamoto * Makefile, SKK-MK: 新たなターゲット texi, html を追加. skk.texi から skk.org への移行. 2017-06-11 Tsuyoshi Kitamoto * skk-annotation.el (eval-and-compile): make 時の Warning 対策のため python-shell-internal-get-or-create-process と python-shell-get-process-name を追加. 2017-06-09 Tsuyoshi Kitamoto * skk.el (skk-search-ja-dic-maybe): Add argument. (skk-mode): Call skk-search-ja-dic-maybe() with argument. 2017-05-31 Tetsuo Tsukamoto * skk-annotation.el (skkannot-py-check-comint-prompt) (skk-annotation-start-python, skk-annotation-start-python): Update for GNU Emacs 25. * skk-vars.el (skk-annotation-python-program): Default to "python”. 2017-03-22 Tsuyoshi Kitamoto * skk-vars.el (skk-previous-candidate-char): Remove obsolete variable. * skk.el (skk-setup-j-mode-map-options): Remove `skk-previous-candidate-char'. 2017-03-19 Tsuyoshi Kitamoto * skk-dcomp.el (defadvice skk-kana-input): skk-pre-henkan 対応. 候補の確定操作を不要とする. * SKK-MK (SKK_MODULES): Add skk-pre-henkan. 2017-03-14 Tsuyoshi Kitamoto * experimental/skk-pre-henkan.el (skk-pre-henkan-make-candidates): modify. 2017-03-13 Tsuyoshi Kitamoto * experimental/skk-pre-henkan.el (skk-pre-henkan-make-candidates): Remove debug code. 2017-03-12 Tsuyoshi Kitamoto * skk-search-web.el (skk-comp-google-candidates): New internal variable. (skk-comp-google, skk-comp-google-make-candidates): New functions. * experimental/skk-pre-henkan.el (skk-pre-henkan-make-candidates): let*() から let() へ変更. skk-dcomp-activate を nil へ. 2017-03-11 Tsuyoshi Kitamoto * experimental/skk-pre-henkan.el: Add new file. * skk-dcomp.el (skk-dcomp-multiple-get-candidates): コメントを追加. * skk-comp.el (skk-comp-do): インデントを修正. (skk-comp-get-candidate): コメントを追加. * skk.el (skk-treat-strip-note-from-word): 引数が nil の場合にエラーと なることを防ぐ. 2017-03-04 Tsuyoshi Kitamoto * Makefile, ddskk-pkg.el, skk-version.el: Bump SKK version to 16.2.50. 2017-03-04 Tsuyoshi Kitamoto * Version 16.2 Warabitai Released. * Makefile, ddskk-pkg.el, skk-version.el: Bump SKK version to 16.2. 2017-03-04 Tsuyoshi Kitamoto * skk-develop.el (skk-get): GNU Emacs 24.3 以下は tar 非対応. 関数 tar--extract() は 24.4 から. 2017-03-03 Tsuyoshi Kitamoto * context-skk.el (context-skk-custumize-functions): Obsolete. 2017-03-03 Masatake YAMATO * context-skk.el: fix typos (s/custumize/customize/g). 2017-03-01 Tsuyoshi Kitamoto * experimental/GUIDELINE, experimental/dbm/README.dbm: * experimental/dbm/skk-dbm.el, experimental/rdbms/README.rdbms: * experimental/rdbms/awk/busyu_base.awk, experimental/rdbms/awk/busyu_data.awk: * experimental/rdbms/awk/dicconv.awk, experimental/rdbms/awk/kcode.awk: * experimental/rdbms/awk/stroke.awk, experimental/rdbms/skk-rdbms.el: * experimental/rdbms/sql/busyu.sql, experimental/rdbms/sql/createtbl.sql: * experimental/rdbms/sql/hinsi.sql, experimental/rdbms/sql/kcode.sql: * experimental/rdbms/sql/stroke.sql: * make1.bat, makeit.bat: * tut-code/README.tut: delete lines that contains RCS KEYWORD `Version: $Id$: ' or `Last Modified: $Date$: '. 2017-02-28 Tsuyoshi Kitamoto * experimental/rdbms/README.rdbms: convert to utf-8. * experimental/dbm/README.dbm : convert to utf-8. 2017-02-27 Tsuyoshi Kitamoto * bayesian/README.ja.md: Update. 2017-02-23 Tsuyoshi Kitamoto * skk-tut.el (skktut-init-variables-alist): Bug fix fb3c01. 2017-02-19 Tsuyoshi Kitamoto * bayesian/bskk (Distribution#decrement): Ruby 2.4 対応. * bayesian/README.ja.md: Update. 2017-02-18 Tsuyoshi Kitamoto * bayesian/bskk (#debug_log): Display Time#now log message. (#serve): Display recieved strings from skk-bayesian-read-process-output(). 2017-02-18 Tsuyoshi Kitamoto * bayesian/skk-bayesian.el: Modify indent for coding style. * bayesian/bskk: Insert some whitespace for coding style. 2017-02-17 Tsuyoshi Kitamoto * bayesian/skk-bayesian.el (skk-bayesian-process-live-p) (skk-bayesian-restart-process): Remove unnecessary whitespace. Remove code for GNU Emacs 22. 2017-02-16 Tsuyoshi Kitamoto * bayesian/skk-bayesian.el: Update docstring. 2017-02-14 Tsuyoshi Kitamoto * skk-vars.el: obsolete variable `skk-henkan-show-candidates-rows' and new variable `skk-henkan-number-to-display-candidates'. * skk.el (skk-henkan-show-candidates, skk-henkan-show-candidate-subr): * skk-tut.el (skktut-init-variables-alist): * skk-inline.el (skk-inline-show-vertically): Use `skk-henkan-number-to-display-candidates' instead of `skk-henkan-show-candidates-rows'. 2017-02-14 Tsuyoshi Kitamoto * skk-tut.el (skktut-init-variables-alist): `skk-start-henkan-key' を `skk-start-henkan-char' へ訂正。ChangeLog.0:275. `skk-show-candidates-nth-henkan-char' の初期化. 2017-02-13 Tsuyoshi Kitamoto * skk-vars.el (skk-show-candidates-nth-henkan-char): New variable. * skk.el (skk-henkan-1, skk-henkan-show-candidates): Use it. 2017-02-12 Tsuyoshi Kitamoto * bayesian/README.ja.md: Rename from README.ja. 2017-02-11 Tsuyoshi Kitamoto * skk-macs.el (skk-char-to-unibyte-string): Use `encode-coding-string' for GNU Emacs 26. `string-make-unibyte' is an obsolete function as of 26.1. 2016-11-27 Tsuyoshi Kitamoto * skk-annotation.el (skk-annotation-show-buffer): Remove function split-window-vertically(). * skk-vars.el (skk-candidate-buffer-delete-other-windows): New variable. * skk.el (skk-henkan-show-candidates-buffer): Use it. 2016-11-10 Tsuyoshi Kitamoto * SKK-MK (SKK_MODULES): XEmacs は skk-search-web は対象外. 2016-10-05 Tsuyoshi Kitamoto * skk-annotation.el (skkannot-url-installed-p): Update comment. * skk-vars.el (skk-jisyo-code): docstring 中の Emacs 22 に関する記載を削除. * skk-macs.el (skk-find-coding-system): Ditto. * SKK-MK, skk-jisx0213.el, skk-tut.el: Add comment `Mule-UCS'. 2016-10-02 Tsuyoshi Kitamoto * skk.el (skk-mode-invoke): Remove code for GNU Emacs 22. * skk-kcode.el (skk-display-code): Ditto. * skk-tankan.el (skk-tankan-get-char-data) (skk-search-by-stroke-or-radical): Ditto. * skk-vars.el (skk-coding-system-alist): Ditto * skk-develop.el (skk-get-delete-files): Update comment. * skk-annotation.el (skkannot-url-installed-p): Update comment. * skk-vars.el (skkannot-url-installed-p): Remove code for GNU Emacs 22. (skk-find-window-system): Remove code for GNU Emacs 22. * skk-emacs.el (skk-search-ja-dic): Remove code for GNU Emacs 22. (skk-called-interactively-p): Update comment. * skk-macs.el (ignore-errors): Remove code for GNU Emacs 22. (characterp, skk-split-char, skk-region-active-p): Ditto. (skk-char-to-unibyte-string, skk-ascii-char-p): Ditto. (skk-jisx0208-p, skk-jisx0213-p, skk-string<): Ditto. * SKK-CFG: Update comment for GNU Emacs 25. 2016-10-01 Tsuyoshi Kitamoto * Version 16.1 Futamata Released. 2016-10-01 Tsuyoshi Kitamoto * experimental/.cvsignore: Remove file. 2016-09-29 Tsuyoshi Kitamoto * SKK-MK (noninteractive): Add message. 2016-08-20 Masaya TANIGUCHI * skk-develop.el (skk-get): Change the default behavior. 2016-02-25 Syohei YOSHIDA * skk.el (skk-search-and-replace): Don't overwrite match data. 2016-02-09 Tsuyoshi Kitamoto * skk.ex: add exclude files. * Makefile (tar): Rename target `snapshot' to `tar'. (release): Add new target. 2016-02-08 Tsuyoshi Kitamoto * Makefile (tar): use command `git archive'. * .gitattributes: New file. * doc/.cvsignore, experimental/.cvsignore, nicola/.cvsignore: Remove file. 2016-02-08 Yuh Ohmura * .travis.yml: remove test for Emacs 22. 2016-02-07 Tsuyoshi Kitamoto * .cvsignore: Remove file. * ChangeLog.1.daredevil: Remove file. ChangeLog.2.daredevil と同内容. 2016-01-31 Tsuyoshi Kitamoto * SKK-CFG: meadow に関する記述を削除. 2016-01-30 Tsuyoshi Kitamoto * SKK-MK: version check when installation. Emacs 22 is not supported by this version of SKK. 2016-01-23 Tsuyoshi Kitamoto * doc/skk.texi, Makefile, skk-version.el, ddskk-pkg.el: Bump SKK version to 16.1.50. 2016-01-30 Tsuyoshi Kitamoto * skk-vars.el (skk-cursor-default-color): Add type. emacs commit c3a2ed. 2016-01-26 Yuh Ohmura * .travis.yml: add test for emacs-snapshot and xemacs21(commented). 2016-01-25 Tsuyoshi Kitamoto * tar-util.el (tar-raw-buffer): Use `zlib-decompress-region'. 2016-01-24 Tsuyoshi Kitamoto * tar-util.el (tar-salvage-file): fix `kill- buffer' for emacs 22. 2016-01-23 Tsuyoshi Kitamoto * tar-util.el (tar-salvage-file, tar-make-descriptor, tar-file-descriptor): (tar-raw-buffer, tar-list-files): Add autoload cookie. declare some functions for shut up compiler warning. * skk-develop.el: require tar-util when compile. (skk-get): Return nil. * SKK-MK (SKK_MODULES): Add tar-util. 2016-01-23 Tsuyoshi Kitamoto * Makefile (get): Load tar-util.el. * make1.bat (get): Ditto. * skk-develop.el (skk-get-expand-tar): Use function `tar-salvage-file' instead of tar command. 2016-01-22 Tsuyoshi Kitamoto * tar-util.el: Add new file. 2016-01-19 Tsuyoshi Kitamoto * skk-vars.el (skk-use-search-web): New variable. * skk.el (skk-require-module): Use it. * skk-search-web.el: Remove comment. 2016-01-18 Tsuyoshi Kitamoto * dic/README: modify. 2016-01-17 Tsuyoshi Kitamoto * skk-develop.el (skk-get-expand-tar): bug fix. copy jisyo files from zipcode/. * make1.bat: Add target `get'. 2016-01-16 Tsuyoshi Kitamoto * skk-develop.el (skk-get): modify interactive prompt. * skk-search-web.el: mv experimental/skk-search-web.el . 2016-01-15 Tsuyoshi Kitamoto * skk-develop.el (skk-get-delete-files): Not use &optional RECURSIVE for GNU Emacs22. 2016-01-14 Tsuyoshi Kitamoto * skk-develop.el (skk-get-mkdir): use make-directory instead of mkdir for emacs22. 2016-01-13 Tsuyoshi Kitamoto * skk-develop.el (skk-get-generate-gzip-d, skk-get-generate-gzip-d-1): Windows OS のための 即席 `gzip -d'. (skk-get, skk-get-expand-gzip): Use it. 2016-01-11 Tsuyoshi Kitamoto * SKK-MK (SKK-MK-what-where): Display dictionaries install path when files exist ./DIC directory. (Interactive Installer): Can be downloaded jisyo files during the installation process. * Makefile (get): add new target. * skk-develop.el (skk-get-files): New variable. (skk-get-download): Use `skk-get-files'. (skk-get-delete-files): New function. (skk-get-mkdir): Use `skk-get-delete-files'. (skk-get-expand-gzip): rename from skk-get-gzip. (skk-get-expand-tar): rename from skk-get-tar. * skk-vars.el: fix comment. 2016-01-10 Tsuyoshi Kitamoto * skk-vars.el (skk-get-jisyo-direcroty): New variable. * skk-develop.el (skk-get-mkdir, skk-get-download, skk-get-gzip) (skk-get-tar); New internal functions. (skk-get): New command. 2015-12-26 Tsuyoshi Kitamoto * skk.el (skk-henkan): fix comment, indent. remove unnecessary let(). (skk-henkan-1): fix indent. add comment. (skk-search): modify comment. 2015-12-13 Tsuyoshi Kitamoto * doc/skk.texi, Makefile, skk-version.el, ddskk-pkg.el: Bump SKK version to 16.0.52. 2015-12-13 Tsuyoshi Kitamoto * skk.el (skk-henkan): Add comment. (skk-henkan-1, skk-search): Fix indent. 2015-12-06 Tsuyoshi Kitamoto * experimental/skk-correct.el, experimental/skk-dinsert.el: * experimental/skk-exsearch.el, experimental/skk-exserv.el: * experimental/skk-search-web.el, experimental/skk-w3m.el: * bayesian/bskk, bayesian/skk-bayesian.el: * etc/NICOLA-SKK.tut, etc/SKK.tut, etc/SKK.tut.E: * tut-code/skk-def.el, tut-code/skk-mkmgk.el: * tut-code/skk-tutcdef.el, tut-code/skk-tutcode.el: delete lines that contains RCS KEYWORD `Version: $Id$: ' or `Last Modified: $Date$: '. 2015-12-05 Tsuyoshi Kitamoto * Makefile, SKK-CFG, SKK-MK, ccc.el, cdb.el, context-skk.el: * skk-abbrev.el, skk-annotation.el, skk-auto.el, skk-azik.el: * skk-comp.el, skk-cursor.el, skk-dcomp.el, skk-develop.el: * skk-gadget.el, skk-isearch.el, skk-jisx0213.el, skk-kakasi.el: * skk-kcode.el, skk-leim.el, skk-look.el, skk-lookup.el, skk-macs.el: * skk-num.el, skk-server.el, skk-setup.el.in, skk-show-mode.el: * skk-sticky.el, skk-study.el, skk-tankan.el, skk-tut.el, skk-vars.el: * skk-version.el, skk-viper.el, skk.el, vip.el: delete lines that contains RCS KEYWORD `Version: $Id$: ' or `Last Modified: $Date$: '. 2015-12-03 Yuh Ohmura * skk.el: not use ccc-setup on XEmacs. 2015-12-03 Tsuyoshi Kitamoto * skk.el (skk-save-jisyo-original, skk-compute-henkan-lists): Fix comment. * skk-vars.el: Remove comment. 2015-11-29 Tsuyoshi Kitamoto * skk.el (skk-compute-henkan-lists, skk-search-jisyo) (skk-update-jisyo-original): Update comment. (skk-search-jisyo): Update docstring. (skk-update-shared-jisyo, skk-update-jisyo-1): Fix indent. (skk-update-jisyo-2): New function. (skk-update-jisyo-1): Use it. 2015-11-28 Tsuyoshi Kitamoto * skk-vars.el (skk-search-excluding-word-pattern-function): Update docstring. 2015-11-21 Tsuyoshi Kitamoto * skk-macs.el (skk-cannot-be-undone): Remove unused macro. 2015-09-13 Tsuyoshi Kitamoto * skk-comp.el (skk-smart-find): smart-find-file-all() を fboundp で判定. 2015-06-20 Tsuyoshi Kitamoto * skk.el: Wrapped org-return() in skk-wrap-newline-command(). 2015-06-13 Tsuyoshi Kitamoto * skk-macs.el (skk-help-make-usage): New macro. `help-make-usage' is an obsolete function (as of 25.1). * skk.el (skk-search-function-usage): Use it. * skk-vars.el (skk-completion-prog-list): Update docstring. 2015-03-17 Tsuyoshi Kitamoto * skk-gadget.el: Modify comment. 2015-02-26 Tsuyoshi Kitamoto * doc/skk.texi, Makefile, skk-version.el, ddskk-pkg.el: Bump SKK version to 16.0.51. 2015-02-19 Tsuyoshi Kitamoto * experimental/skk-search-web.el: Update comment. 2015-02-05 Yuhei Maeda * skk.el: Fix bug for delete-selection-mode This bug is related to cdcd50bbf7bffbddbaf681ecb596b78fab648c6b 2015-01-14 Tsuyoshi Kitamoto * skk.el, skk-setup.el.in: add-hook 'after-init-hook skk-preload() を skk-setup.el から skk.el (skk-autoloads.el) へ移動. 2014-11-30 の変更を復元. http://mail.ring.gr.jp/skk/201501/msg00047.html 2015-01-13 Tsuyoshi Kitamoto * SKK-MK (SKK-MK-uninstall): Display message when deleted file or directory. 2015-01-11 Yuhei Maeda * ccc.el: Fix comment header 2015-01-12 Tsuyoshi Kitamoto * skk.el (skk-get-jisyo-buffer): Fix docstring. * skk-vars.el (skk-jisyo-code): Fix docstring. * Makefile: add target uninstall. * make1.bat: ditto. * SKK-MK (SKK-MK-uninstall): add function SKK-MK-uninstall. * skk-setup.el.in (after-init-hook): correct indent. 2015-01-11 Tsuyoshi Kitamoto * skk.el: modify comment. 2015-01-11 Yuhei Maeda * ccc.el: Add prefix "ccc-". * ccc.el: Fix comment header. 2015-01-09 Tsuyoshi Kitamoto * skk-version.el (skk-version): Add mepla version to propname `version-string' in 'skk-version. * SKK-MK (VERSION-STRING): If noninteractive, set nil. * make1.bat: Add target `test'. 2015-01-08 Tsuyoshi Kitamoto * skk-emacs.el (skk-emacs-prepare-modeline-properties): Add load-path for locate skk.xpm. 2015-01-07 Tsuyoshi Kitamoto * skk-vars.el (skk-jisyo-code): Fix docstring. 2015-01-06 Tatsuya Kinoshita * README.md: Typo fix. 2015-01-04 Tsuyoshi Kitamoto * README.md: Add message line about join ddskk-commiter team. 2015-01-03 Tsuyoshi Kitamoto * skk.el (skk-search-extra-jisyo-files): Add comment. 2015-01-02 Tsuyoshi Kitamoto * skk-vars.el (skk-jisyo-code): Fix docstring. * skk-macs.el (skk-find-coding-system): Fix docstring. * SKK-MK (SKK-MK-texinfo-pre-format): Add Comment. 2015-01-01 Tsuyoshi Kitamoto * README.md: Change major mode from text to markdown. * ddskk-pkg.el: Add comment. 2014-12-31 Tsuyoshi Kitamoto * SKK-MK (SKK-MK-texinfo-pre-format): function disabled. (SKK-MK-texinfo-post-format): Enable all emacsen. 2014-12-30 Tsuyoshi Kitamoto * SKK-MK (SKK_DICTIONARIES): Add SKK-JISYO.lisp. * skk.ex: ditto. 2014-12-29 Tsuyoshi Kitamoto * makeit.bat: Fix Comment. 2014-12-26 Tsuyoshi Kitamoto * context-skk.el, skk-abbrev.el, skk-dcomp.el, skk-look.el: * skk-vars.el, skk.el: Replace ~/.emacs in comment to ~/.emacs.d/init.el. 2014-12-24 Tatsuya Kinoshita * README.md: Typo fix. 2014-12-23 Keisuke Kawahara * README.md: add Contributing. 2014-12-23 Yuh Ohmura * READMEs/TODO.ja: add discription about texi document for package.el. 2014-12-22 myuhe * README.md: Add MELPA badge. * ddskk-pkg.el, skk-pkg.el: Rename skk-pkg.el to ddskk-pkg.el. 2014-12-21 Tsuyoshi Kitamoto * README.md: rename from READMEs/README. 2014-12-21 Tsuyoshi Kitamoto * bayesian/README.ja, dic/README, experimental/GUIDELINE: * patches/README.ja, tut-code/README.tut: convert to utf-8. 2014-12-21 myuhe * README.md: Add Travis badge. 2014-12-21 Yasushi Abe * SKK-MK, doc/skk.texi, queue-m.el, skk.el: Use list instead of queue-m. * .gitignore, test/all-test.el, test/skk-test.el, Makefile: Add ERT tests. * .travis.yml: Add new file. 2014-12-21 Tsuyoshi Kitamoto * README.md: modify message. 2014-12-19 Tsuyoshi Kitamoto * README.md: change message. * .gitignore: new file. 無視するファイルを追加. 2014-12-18 Yuh Ohmura * Makefile: modify make snapshot, correct make tar. 2014-12-18 Tsuyoshi Kitamoto * README.md: modify message. 2014-12-17 Yuh Ohmura * makeit.bat, make1.bat: new mail address. * doc/skk.texi: correct typo 2014-12-17 Tsuyoshi Kitamoto * README.md: Create README.md. 2014-12-07 Tsuyoshi Kitamoto * skk-vars.el (skk-annotation-browser-function): Remove variable. (skk-annotation-browse-key): Fix docstring. * skk-annotation.el (skk-annotation-wait-for-input): Use function browse-url. * doc/skk.texi: Update. 2014-12-06 Takenari Shinohara * skk-pkg.el: Add requirements (cdb package). 2014-12-06 Tsuyoshi Kitamoto * doc/skk.texi, Makefile, skk-version.el, skk-pkg.el: Bump SKK version to 16.0.50. 2014-12-05 Tsuyoshi Kitamoto * doc/skk.texi (skk-kanagaki-keyboard-type): Add follow symbols. nicola-us, nicola-dvorak, nicola-colemak, omelet-us, omelet-dvorak, omelet-colemak and oasys. 2014-12-03 Tsuyoshi Kitamoto * skk.el: MELPA 対策のため、featurep で確認してから require skk-autoloads するよう変更. Thanks to Yuhei Maeda. * skk.ex: .git を追加. 2014-12-01 Takenari Shinohara * cdb.el: ヘッダ行などファイルの体裁を整備. 2014-11-30 Tsuyoshi Kitamoto * skk-emacs.el (skk-emacs-modeline-property): メッセージに改行文字を挿入. * skk.el, skk-setup.el.in: add-hook 'after-init-hook skk-preload() を skk.el (skk-autoloads.el) から skk-setup.el へ移動. 2014-11-26 Tsuyoshi Kitamoto * skk-pkg.el: Add new file. ;; Local Variables: ;; coding: utf-8 ;; End: ddskk-ddskk-16.3_Kutomatsunai/ChangeLog.0000066400000000000000000002460761361774317600203530ustar00rootroot000000000000001998-12-30 Mikio Nakajima * lisp/skk-kakasi.el: Require path-util.el of Apel. (skk-kakasi-command): Use `exec-installed-p'. (skk-kakasi-region): Check if skk-kakasi-command is not null variable. * lisp/skk-kcode.el (skk-kcode-charset): Typo fixed. 1998-12-27 Mikio Nakajima * lisp/skk-foreword.el (skk-background-mode): Use `skk-emacs-type'. * lisp/skk.el (skk-default-cursor-color, skk-coding-system-alist, skk-hankaku-alist, minibuffer-eyboard-quit, skk-mode, skk-kill-emacs-without-saving-jisyo, skk-change-cursor-when-ovwrt): Use `skk-emacs-type'. (skk-ovwrt-cursor-width): New user variable. (skk-change-cursor-when-ovwrt): Use `skk-ovwrt-cursor-width'. * lisp/skk-viper.el (skk-viper-normalize-map): Use `skk-emacs-type'. * lisp/skk-tut.el (skktut-init-variables-alist, skktut-enable-tutmap, skktut-next-answer-buffer): Use `skk-emacs-type'. * lisp/skk-server.el (skk-open-server): Use `skk-emacs-type'. * experimental/rdbms/skk-rdbms.el (skk-rdbms-init): Use `skk-emacs-type'. * lisp/skk-kcode.el (skk-kcode-charset, skk-kcode-charset-list, skk-display-code-for-char-at-point): Use `skk-emacs-type'. * lisp/skk-isearch.el (skk-isearch-overriding-local-map): (skk-isearch-mode-map): Use `skk-emacs-type'. * experimental/skk-attr.el (skk-attr-save): Use `skk-emacs-type'. * lisp/skk-foreword.el: (skk-xemacs, skk-mule3, skk-mule4, skk-e20): Removed. (skk-emacs-type): New internal constant. * lisp/skk.el (skk-use-look): More doc. (skk-kana-input): Apply patch from Kenji Yamashita as of Dec 18, 1998. 1998-12-25 Mikio Nakajima * lisp/skk.el: Apply patch from Murata Shuuichirou as of Dec 25, 1998 of which Message-ID: <87hfuljwv7.fsf@kotonoha.s.notwork.org>. 1998-12-23 Mikio Nakajima * lisp/skk.el (skk-coding-system-alist): Set in case of `skk-mule4'. 1998-12-22 Mikio Nakajima * lisp/skk-viper.el (skk-looking-at-jisx0208): Rename to `skk-jisx0208-p'. * lisp/skk-viper.el (viper-join-lines): Use `skk-jisx0208-p' (Regexp "\\c" cannot be used on XEmacs). 1998-12-21 Mikio Nakajima * configure.in, jisyo-tools/Makefile.am: * jisyo-tools/skkdic-expr.c: Apply patch from Takao KAWAMURA as of Dec 7, 1998. * lisp/skk.el (skk-make-temp-file, skk-compute-henkan-lists, skk-lisp-prog-p): Use `skk-str-ref' instead of `aref'. * experimental/look/skk-look.el (skk-look-ignore-case): Set default variable to `t'. (skk-look-dictionary-order, skk-look-dictionary): New user variable. 1998-12-20 Mikio Nakajima * lisp/skk.el (skk-del-char-with-pad): Use `=' to compare number. 1998-12-14 Tsukamoto Tetsuo * lisp/skk.el (skk-mode): Call `easy-menu-add' and `easy-menu-remove' for `skk-menu' when necessary for XEmacs. 1998-12-07 Mikio Nakajima * experimental/look/skk-look.el (skk-look-1): Bind `buffer-read-only' to nil. 1998-12-06 Mikio Nakajima * experimental/look/skk-look.el (skk-look-completion): Delete words which are already stacked in `skk-completion-stack' from `skk-look-completion-words'. * jisyo-tools/skkdic-count.c (count_entry): Rename to `count_words'. Output message `xxxx words' instead of `xxxx entries'. (main): Use `count_words'. 1998-12-05 Mikio Nakajima * experimental/look/skk-look.el (skk-look-1): New function. Take core part of search engine from `skk-look'. (skk-look): Use `skk-look-1'. (skk-look-completion): New function. * lisp/skk-comp.el (skk-completion-original): Use skk-look.el when `skk-use-look' is non-nil. * lisp/skk.el (skk-kakutei-save-and-init-variables): Initialize `skk-look-completion-words' when `skk-use-look' is non-nil. 1998-12-03 Mikio Nakajima * experimental/skk-look.el (skk-look-ignore-case, skk-look-use-alternate-dictionary, skk-look-termination-character, skk-look-recursive-search, skk-look-expanded-word-only): New user variable. (skk-look): Handle `skk-look-ignore-case', `skk-look-use-alternate-dictionary', `skk-look-termination-character', `skk-look-recursive-search' and `skk-look-expanded-word-only' options. Handle FILE-ERROR. * experimental/rdbms/skk-rdbms.el (skk-rdbms-private-jisyo-table, skk-rdbms-kakutei-jisyo-table, skk-rdbms-initial-jisyo-table): Use function `user-login-name' instead of variable which has the same name (XEmacs does not have such variable). 1998-12-02 Mikio Nakajima * lisp/skk.el (skk-use-look): Add doc string. * experimental/skk-look.el: Require `skk-foreword.el' and `skk-vars.el' and add `;;;###skk-autoload' cookies. (skk-look): Use `call-process' instead of `call-process-region'. (skk-look-command): Documented. * lisp/skk-tut.el (skktut-init-variables-alist): Add `skk-use-look' entry, remove `skk-num-load-hook' entry, and sort by name of variable (alphabetical order). 1998-12-01 Mikio Nakajima * lisp/skk-look.el: New file. * lisp/skk.el (skk-use-look): New user variable. (skk-search): Change for `skk-look.el'. (skk-regularize): Require skk-look.el when `skk-use-look' is non-nil. 1998-11-30 Mikio Nakajima * lisp/skk.el (skk-katakana-region, skk-hiragana-region, skk-jisx0208-latin-region skk-latin-region): Do not use `combine-after-change-calls'. 1998-11-29 Mikio Nakajima * lisp/skk-kcode.el: Apply patch from Murata Shuuichirou of which Message-ID is <87yap15bu6.fsf@kotonoha.s.notwork.org>. 1998-11-18 Hideki Sakurada * lisp/skk.el (skk-kana-input-search-function): Bug fixed. 1998-11-17 Mikio Nakajima * experimental/rdbms/skk-rdbms.el (skk-rdbms-search-jisyo-table, skk-rdbms-update-jisyo): Enable numeric conversion. * lisp/skk-foreword.el (skk-get-simply-current-candidate): Rename to `skk-get-current-candidate-simply'. 1998-11-15 Mikio Nakajima * lisp/skk.el (skk-change-marker-to-white, skk-change-marker, skk-set-henkan-point, skk-update-jisyo-original, skk-kana-input): Not to use `combine-after-change-calls'. (skk-insert): Enable lowercase + upppercase conversion. (keyboard-quit, abort-recursive-edit, minibuffer-keyboard-quit skk-delete-backward-char, skk-set-henkan-point, skk-start-henkan, skk-set-henkan-point-subr, skk-*-henkan-1): Use `skk-get-prefix' to check if `skk-prefix' is null string or not. 1998-11-14 Mikio Nakajima * Rearrange subdirectories for the official release of SKK 10 in the near future. * experimental/rdbms/skk-rdbms.el (skk-rdbms-stroke): New command. * experimental/rdbms/sql/createtbl.sql: Not to create index on yomi. PostgreSQL does not use indexes when `order by' is used. 1998-11-11 TSUMURA Tomoaki * skk.el (skk-katakana-region, skk-hiragana-region): Bug fixed. 1998-11-10 SAKAI Kiyotaka * skk.el (skk-get-jisyo-buffer): Not to set coding-system-for-read. 1998-11-09 Mikio Nakajima * skk-rdbms.el (skk-rdbms-restore-private-jisyo): New command. 1998-11-08 Mikio Nakajima * make-vars.el (skk-files): Add `skk-obsolete.el' to the list. * skk.el (abort-recursive-edit): Remove before class advice. (minibuffer-exit-hook): Remove local hook `skk-pre-command' from `pre-command-hook'. (skk-remove-minibuffer-setup-hook): New function. (minibuffer-exit-hook, abort-recursive-edit, minibuffer-keyboad-quit): Use `skk-remove-minibuffer-setup-hook'. (abort-recursive-edit, minibuffer-keyboad-quit): Call `skk-set-cursor-properly' before doing anything else. (save-buffers-kill-emacs): Revive advice. (skk-kill-emacs-without-saving-jisyo): Disable advice of `save-buffers-kill-emacs'. * skk-tut.el (skktut-ascii-mode-map): Rename to `skktut-latin-mode-map'. (skktut-init-variables-alist): Remove `skk-num-type-list', `skk-numeric-conversion-float-num' and `skk-uniq-numerals' from alist. 1998-11-07 Mikio Nakajima * skk-obsolete.el: New file. * skk-rdbms.el (skk-rdbms-SQL-search-completion-word-command): Add DISTINCT to SQL command. (skk-rdbms-SQL-search-completion-word-command): Use `skk-rdbms-SQL-wildcard'. * skk-num.el (skk-numeric-convert): Use `skk-splice-in' instead of an obsolete function `skk-middle-list'. * skk-isearch.el (skk-isearch-skk-hirakana-mode-p, skk-isearch-skk-turn-on-hirakana-mode): Rename to `skk-isearch-skk-hiragana-mode-p' and `skk-isearch-skk-turn-on-hiragana-mode' respectively. * skk.el (skk-ascii-cursor-color, skk-ascii-mode-string, skk-ascii-mode-map, skk-ascii-mode, skk-ascii-region, skk-ascii-henkan): Rename to `skk-ascii-cursor-color', `skk-latin-mode-string', `skk-latin-mode-map', `skk-latin-mode', `skk-latin-region' and `skk-latin-henkan' respectively. (skk-hirakana-mode-string, skk-hirakana-cursor-color): Rename to `skk-hirakana-mode-string' and `skk-hirakana-cursor-color' respectively. * skk-foreword.el (skk-erase-prefix): Add check if `skk-prefix' is not null string. (skk-ascii-mode-on): Rename to `skk-latin-mode-on'. (combine-after-change-execute, combine-after-change-calls): Remove. * sql/createtbl.sql: Bug fixed. 1998-11-03 Mikio Nakajima * skk-rdbms.el (skk-rdbms-public-jisyo-has-entry-p): Rename to `skk-rdbms-public-jisyo-to-be-searched'. * skk.el (skk-try-completion-key, skk-next-completion-key, skk-previous-completion-key, skk-start-henkan-key): Rename to `skk-try-completion-char', `skk-next-completion-char', `skk-previous-completion-char' and `skk-start-henkan-char' respectively and assinged relative characters to them. (keyboard-quit, abort-recursive-edit): Bug fixed in their advices. (skk-submit-bug-report): Bug fixed. (skk-j-mode-map): Not define `skk-previous-candidate' to be able to define `skk-previous-candidate-char' in `skk-init-file'. (skk-mode): Define `skk-previous-candidate' key bind in `skk-j-mode-map'. (skk-zenkaku-mode, skk-zenkaku-mode-on, skk-zenkaku-insert, skk-zenkaku-region, skk-zenkaku-henkan, skk-zenkaku-mode-string, skk-zenkaku-vector, skk-zenkaku-cursor-color, skk-zenkaku-mode-map, skk-default-zenkaku-vector): Rename to `skk-jisx0208-latin-mode', `skk-jisx0208-latin-mode-on', `skk-jisx0208-latin-insert', `skk-jisx0208-latin-region', `skk-jisx0208-latin-henkan', `skk-jisx0208-latin-mode-string', `skk-jisx0208-latin-vector', `skk-jisx0208-latin-cursor-color', `skk-jisx0208-latin-mode-map' and `skk-default-jisx0208-latin-vector' respectively. (skk-setup-minibuffer) : Invoke `skk-jisx0208-latin-mode-on' when `skk-minibuffer-origin-mode' is equal to `jisx0208-latin'. (skk-toggle-kana): Invoke `skk-jisx0208-latin-henkan' when CHAR is equal to `jisx0208-latin'. (skk-what-char-type): Return `jisx0208-latin' symbol when looking at jisx0208 latin characters. (skk-backward-and-set-henkan-point-1): Skip jisx0208 characters when TYPE is equal to `jisx0208-latin' symbol. (minibuffer-exit-hook): Remove a lambda which adds `skk-pre-command' to `pre-command-hook' as a local hook. (skk-start-henkan): Simply call `skk-kana-cleanup' instead of processing unfixed skk-prefix internally. (skk-public-jisyo-has-entry-p-function): Rename to `skk-public-jisyo-to-be-searched-function'. (skk-public-jisyo-has-entry-p-original): Rename to `skk-public-jisyo-to-be-searched-original'. * skk-foreword.el (skk-current-insert-mode): Return `jisx0208-latin' symbol when `skk-jisx0208-latin-mode' is non-nil. (skk-alpha-char-p): Rename to `skk-ascii-char-p'. (skk-erase-prefix): Slightly simplify. * skk-isearch.el (skk-isearch-skk-jix0208-latin-mode-p): Rename to `skk-isearch-skk-jisx0208-latin-mode-p'. Maybe it's typo. ^ (skk-isearch-newline): Use `skk-isearch-turn-on-skk-mode'. 1998-11-02 Mikio Nakajima * skk-rdbms.el (skk-rdbms-SQL-search-kakutei-jisyo-command): Remove. (skk-rdbms-SQL-search-publuc-jisyo-command): Rename to `skk-rdbms-SQL-search-jisyo-command'. 1998-11-01 Mikio Nakajima * skk-rdbms.el (skk-rdbms-SQL-delete-command, skk-rdbms-SQL-regexp-delete-command): Check OKURIARI field also. (skk-rdbms-searching-table, skk-rdbms-cutoff-output-function, skk-rdbms-cutoff-output-function-4): Remove. (skk-rdbms-cutoff-output-function-2, skk-rdbms-cutoff-output-function-3): Rename to `skk-rdbms-cutoff-output-function' and `skk-rdbms-cutoff-output-function-2' respectively. (skk-rdbms-init): Message verbosely. (skk-rdbms-search-jisyo-table, skk-rdbms-search-kakutei-jisyo-table, skk-rdbms-sahen-search-1, skk-rdbms-busyu-henkan): Use new `skk-rdbms-cutoff-output-function' and simplify. (skk-rdbms-count-jisyo-candidates): Use new `skk-rdbms-cutoff-output-function-2'. * awk/dicconv.awk: Bug fixed. 1998-10-31 Mikio Nakajima * skk-rdbms.el (skk-rdbms-save-jisyo-function): Check whether `skk-rdbms-private-jisyo-dump' exists or not. * skk-kakasi.el (skk-use-kakasi): Set Default value to `t' simply. (skk-kakasi-command): New user variable. (skk-kakasi-region): Use `skk-kakasi-command'. (skk-gyakubiki-region, skk-gyakubiki-katakana-region, skk-hurigana-region, skk-hurigana-katakana-region, skk-romaji-region): Use `insert-and-inherit' instead of `insert'. * skk-gadget.el (skk-current-date): Use `=' to compare number. Use `?\040' instead of `32'. 1998-10-30 Mikio Nakajima * skk-isearch.el (skk-isearch-delete-char): Call `delete-backward-char' if skk-prefix is null string otherwise `skk-erase-prefix'. 1998-10-29 TSUMURA Tomoaki * skk.el (skk-compute-henkan-key2): Bug fixed. 1998-10-28 TSUMURA Tomoaki * skk.el (skk-hiragana-to-katakana, skk-katakana-to-hiragana): Use `mapconcat' for Emacs 19 compatibility. * skk.el (skk-katakana-region, skk-hiragana-region): Bug fixed. 1998-10-28 Mikio Nakajima * skk-foreword.el (defun-soft, cancel-undo-boundary, skk-character-to-event, skk-event-to-character): Remove. * skk-tut.el (skktut-next-answer-buffer): Use `end-open' property for XEmacs. 1998-10-27 Mikio Nakajima * skk-auto.el, skk-comp.el, skk-foreword.el, skk-isearch.el, skk-kakasi.el, skk-kcode.el, skk-rdbms.el, skk-server.el, skk-tut.el, skk-vip.el, skk-viper.el, skk.el: APEL (A Portable Emacs Library) 9.7 or later required. Many portion of functions and macros which emulate Emacsen other than one uses are now given to APEL 9.7. APEL 9.7 is available from; ftp://ftp.jaist.ac.jp/pub/GNU/elisp/apel/ * skk.el (skk-setup-delete-backward-char): Search `backward-or-forward-delete-char' binding for XEmacs. (skk-compute-henkan-lists): Use `split-string' in subr.el of Emacs 20 instead of `string-split' in string.el of Elib. (skk-create-file): Bug fixed. 1998-10-25 Mikio Nakajima * skk.el (skk-create-file): Message English when `skk-japanese-message-and-error' is nil, otherwise Japanese. 1998-10-24 Mikio Nakajima * skk.el (skk-insert-new-word): Use `skk-functionp'. (skk-insert-new-word, skk-katakana-region, skk-hiragana-region, skk-zenkaku-region, skk-ascii-region, skk-update-jisyo-original): Use `combine-after-change-calls' macro. (skk-middle-list): Rename to `skk-splice-in'. (skk-delete-henkan-markers): Remove `combine-after-change-calls' macro. * skk-isearch.el (skk-isearch-mode-setup, skk-isearch-mode-cleanup): Mark with `;;;###skk-autoload' labels. (skk-isearch-overriding-local-map): Set `overriding-local-map' for XEmacs 21.2 or later. * skk-foreword.el: Add `font-lock-warnign-face' to `;;;###skk-autoload' cookie. (skk-pre-command): Bug fixed. (skk-unread-event): Move to top level for common use. (skk-char-octet): Simplify. * skk-rdbms.el (skk-rdbms-okuri-search): Bug fixed. (skk-rdbms-run-SQL-command): Use `combine-after-change-calls' macro. * skk-kcode.el (skk-kcode-charset): Declare with `defvar' and make it user variable. 1998-10-23 Makoto MATSUSHITA * skk-server.el (skkserv-process): New internal variable. (skk-open-network-stream): Call `process-kill-without-query' for `skkserv-process'. 1998-10-23 Mikio Nakajima * skk-rdbms.el (skk-rdbms-okuri-search): Speed up. * skk.el (skk-hiragana-to-katakana, skk-katakana-to-hiragana): New functions. (skk-katakana-region): Use `skk-hiragana-to-katakana'. (skk-hiragana-region): Use `skk-katakana-to-hiragana'. 1998-10-22 Mikio Nakajima * skk-foreword.el: Apply patch from Murata Shuuichirou as of Oct 22, 1998 of which message-iD is <87ww5uhsdy.fsf@kotonoha.tom-yam.or.jp>. 1998-10-22 * skk.el (skk-set-henkan-point): Bug fixed. 1998-10-21 Mikio Nakajima * skk-tut.el (skktut-error-map): Remove. (skktut-enable-tutmap): Not to `set-buffer' to `skktut-answer-buffer'. (skktut-next-answer-buffer): If question is last one, do not insert `; to skip this question `C-x s' *' text. 1998-10-20 Mikio Nakajima * skk-rdbms.el (skk-rdbms-completion): Call `skk-kana-cleanup' first. * skk-server.el (skk-open-server-1): Use `=' to compare number. (skk-servers-list): Improve doc string. (skk-network-open-status): Declare with `defconst'. (skkserv-working-buffer): New constant. (skk-server-version, skk-search-server-subr, skk-open-network-stream): Use `skkserv-working-buffer'. (skk-open-server-1): Do not call `skk-startup-server' when `skk-server-prog' is nil. * skk-tut.el (skktut-enable-tutmap): Use `setq-default' for `minor-mode-map-alist' localized by Viper. (skktut-original-buffer): Remove. (skktut-disable-tutmap): Call `skk-viper-normalize-map' when default value of skk-use-viper is non-nil. (skktut-next-answer-buffer): Add `rear-nonsticky', `intangible' and `read-only' text properties for answer buffer cookies. (skktut-setup-question-buffer): Also bind tutorial commands in `skktut-question-buffer'. Keep buffer-read-only t. * skk.el (skk-henkan-show-candidates): Use `?\040' instead of `? '. (skk-submit-bug-report, skk-regularize, skk-public-jisyo-has-entry-p): Not to refer to `skk-server-prog' and "SKKSERV". (skk-public-jisyo-has-entry-p-original): Not to refer to `skk-server-prog'. * skk-comp.el (skk-completion-original): Use `eq' and `?\040' instead of `=' and `? '. (skk-completion-original): Call `skk-kana-cleanup' first. * skk-kcode.el : Apply patch from Murata Shuuichirou as of Oct 19, 1998 of which message-id is <8790ic7hv6.fsf@kotonoha.tom-yam.or.jp>. (skk-input-by-code-or-menu-1): Use `?\040' instead of `? '. (skk-kcode-charset): Declare by `defconst' instead of `skk-deflocalvar'. 1998-10-19 Mikio Nakajima * skk.el (skk-public-jisyo-has-entry-p): Modify condition. * skk-viper.el: Apply patch from Murata Shuuichirou as of Oct 19 1998 whose message-id is <87g1clkj75.fsf@kotonoha.tom-yam.or.jp>. * skk-comp.el (skk-completion-original): Use `=' instead of `eq' for char. 1998-10-18 Mikio Nakajima * skk.el (skk-henkan-in-minibuff) : Use `skk-j-mode-on' instead of `skk-setup-minibuffer'. (minibuffer-exit-hook): Remove `skk-j-mode-on' from `minibuffer-setup-hook'. (skk-set-henkan-point): `TaSSi' --> $B!VC#$C$7!W(B, `TasSi' -> $B!VC#$7!W(B * skk-tut.el (skktut-init-variables-alist): Add `skk-search-excluding-word-pattern-function'. (skktut-tutorial-again, skktut-quit-tutorial): Rename to `skk-tutorial-again' and `skk-tutorial-quit' respectively. (skktut-disable-tutmap): Use `skk-viper-normalize-map' for Viper users. (skktut-original-buffer): New internal variable. (skktut-pre-setup-tutorial): Set `skktut-original-buffer'. (skktut-enable-advice, skktut-disable-advice): Not to use arg but refer to `skktut-adviced-alist' directly. (skktut-setup-working-buffer, skktut-setup-question-buffer): Call `buffer-disable-undo'. (kill-buffer): Not to use temporary variable. (skktut-pre-setup-tutorial): Require skk-viper.el if `skk-use-viper' is non-nil. * skk-viper.el (skk-viper-normalize-map): New function (but only named for lambda). 1998-10-17 Mikio Nakajima * skk-tut.el: Totally rewritten for SKK 10.46. * skk-foreword.el (skk-current-insert-mode): New inline function. * skk.el (skk-spy-origin-buffer-mode): Remove. (skk-minibuffer-origin-mode): New internal variable. (skk-major-version, skk-minor-version): New constants. 1998-10-13 Mikio Nakajima * skk-viper.el (viper-forward-word-kernel): (viper-backward-word-kernel): Check by `skk-looking-at-jisx0208'. * skk-foreword.el (skk-y-or-n-p, skk-yes-or-no-p): Allow &rest argument. * skk.el (skk-allow-spaces-newlines-and-tabs, skk-rom-kana-base-rule-list, skk-rom-kana-rule-list, skk-kana-input-search-function, skk-downcase-alist, skk-use-face, skk-default-cursor-color, skk-hirakana-cursor-color, skk-katakana-cursor-color, skk-zenkaku-cursor-color, skk-abbrev-cursor-color, skk-auto-paren-string-alist, skk-search-excluding-word-pattern-function, skk-kutouten-type, skk-submit-bug-report): Modify their doc strings. (skk-henkan-show-candidates): Put in error check. (skk-submit-bug-report): Bug fixed. (skk-regularize): New function. (skk-mode): Use `skk-regularize'. (skk-restart): New command. (skk-setup-delete-selection-mode): Add `skk-current-kuten' and `skk-current-touten'. (skk-start-henkan): Apply patch from SAKAI Kiyotaka whose message-Id is <19981012165842R.ksakai@netwk.ntt-at.co.jp>. (skk-rom-kana-rule-list): Doc fixed. 1998-10-12 Mikio Nakajima * skk-foreword.el (skk-kana-cleanup): * skk.el (skk-auto-start-henkan-keyword-list, skk-auto-start-henkan): Add `*' to their doc strings as user variables. (skk-kana-rom-vector): Modify its doc string. 1998-10-11 Mikio Nakajima * skk.el (skk-rom-kana-base-rule-list): Use `skk-current-kuten' and `skk-current-touten'. (skk-toggle-kutouten): New command. (skk-current-kuten, skk-current-touten): New functions. (skk-start-henkan): Search `skk-rule-tree' instead of rule-list. (skk-set-henkan-point-subr): Use `skk-insert-and-inherit' instead of `insert'. 1998-10-10 Mikio Nakajima * skk-gadget.el (skk-date): Rename to `skk-current-date'. (skk-today): Not insert a string but return it only when called not interactively. * skk.el (skk-kana-input): Use `skk-make-raw-arg'. Use string returned by a function set in DATA as symbol. Set prefix-arg only when skk-isearch-message is nil. (skk-rom-kana-base-rule-list): Allow a string as 2th element of a cell. * skk-foreword.el (skk-make-raw-arg): New inline function. 1998-10-04 Mikio Nakajima * skk.el (skk-kana-input): Remove unnecessary temporary variable. Call `skk-set-okurigana' even if queue is not null. (save-buffers-kill-emacs): Remove advice. (skk-kill-emacs-without-saving-jisyo): Just remove-hook `skk-save-jisyo' from kill-emacs-hook instead of using complex funciton of advice.el. (skk-spy-origin-buffer-mode): Bug fixed. (skk-previous-candidate): Change its argument to numerical one and hand ot to `skk-kana-input'. (skk-start-henkan): Change its argument to numerical one. (skk-zenkaku-mode-map): Remove `skk-kakutei-key' definition. (skk-mode): Add `skk-kakutei-key' definition in `skk-zenkaku-mode-map'. (skk-try-completion-key, skk-next-completion-key, skk-previous-completion-key, skk-start-henkan-key): New user variables. 1998-10-03 Mikio Nakajima * skk.el (skk-setup-auto-paren): Do not nothing if `skk-auto-insert-paren' is nil. Comment fixed. 1998-10-02 Mikio Nakajima * skk.el (skk-zenkaku-insert): Emulate original behavior in the current original map when no string is found in `skk-zenkaku-vector'. (skk-pre-command): Simplify, defsubstify and move to skk-forword.el. (skk-insert): Call `skk-start-henkan', `skk-completion', `skk-previous-completion' respectively when such behavior is properly. Do not call `skk-set-henkan-point' when skk-henkan-on is nil even if CH is a member of `skk-special-midashi-char-list'. (skk-kana-input): Emulate original behavior in the current original map when `skk-current-rule-tree' is eq to `skk-rule-tree' and no DATA is found. Insert a pair string in `skk-auto-paren-string-alist' when necessary. (skk-rom-kana-base-rule-list): Add ",", ".", "!", "-", ":", ";", "?", "[", "]" and " " entries. (skk-input-vector, skk-self-insert, skk-insert-period, skk-insert-comma): Remove. (skk-setup-auto-paren): Change for removing `skk-input-vector'. (skk-zenkaku-vector): Modify doc string. (skk-cancel-undo-boundary): Do not increase `skk-self-insert-non-undo-count' when `skk-current-rule-tree' is not null. (skk-set-henkan-point, skk-start-henkan): Do not call `skk-self-insert'. 1998-09-30 Mikio Nakajima * skk.el (skk-undo-kakutei, skk-start-henkan, skk-set-henkan-point-subr, skk-change-marker, skk-change-marker-to-white, skk-katakana-region, skk-hiragana-region, skk-zenkaku-region, skk-insert-str, skk-insert, skk-set-okurigana, skk-self-insert, skk-zenkaku-insert): Remove unnecessary `cancel-undo-boundary'. 1998-09-29 Mikio Nakajima * skk.el (skk-check-jisyo-size): Typo fixed in the warning message. 1998-09-27 Mikio Nakajima * skk.el (skk-kana-cleanup): Defsubsted and moved to skk-forword.el. (skk-spy-origin-buffer-mode): Do not nothing if `skk-mode' is nil. * skk.el: (eval-expression): Comment out. (overwrite-mode): Adviced documented. 1998-09-25 Mikio Nakajima * skk-num.el (skk-raw-number-to-skk-rep): Modify regexp slightly. (skk-num-type-list): Doc improved. 1998-09-24 Mikio Nakajima * skk.el (skk-delete-backward-char): Revive. (skk-setup-delete-backward-char): New function. (skk-mode): Call `skk-setup-delete-backward-char'. (skk-pre-command): Check if this-command is `skk-delete-backward-char' or not instead of COMMANDS-THAT-DO-NO-CLEANUP. (skk-abbrev-mode-map, skk-zenkaku-mode-map, skk-j-mode-map, skk-ascii-mode-map): Define Meta prefix command even if `skk-use-viper' is non-nil. (skk-abbrev-mode-map, skk-j-mode-map): Do not define-key \177 for `delete-backward-char'. 1998-09-23 Mikio Nakajima * skk-rdbms.el (skk-rdbms-SQL-insert-command): Set null value to okurigana if `skk-henkan-okurigana' is nill. (skk-rdbms-save-jisyo-function): Bug fixed. * skk-viper.el (viper-del-backward-char-in-insert, vip-del-backward-char-in-insert): Adviced documented. Check if `skk-henkan-active' or not first. (viper-forward-word-kernel, viper-backward-word-kernel): Adviced documented. * skk.el (skk-rom-kana-rule-list): Doc fixed. (newline, delete-backward-char): Adviced documented. (delete-backward-char): Check if `skk-henkan-active' or not first. * skk-server.el (skk-servers-list): Doc fixed. 1998-09-21 Mikio Nakajima * skk-gadget.el (skk-convert-ad-to-gengo, skk-convert-gengo-to-ad): Rename to `skk-ad-to-gengo', and `skk-gengo-to-ad' respectively. * skk-viper.el (skk-set-cursor-properly): Overwite original function in skk.el. (viper-insert, vip-insert): New advice. 1998-09-20 Mikio Nakajima * skk-isearch.el (skk-isearch-mode-alias-alist, skk-isearch-mode-canonical-alist, skk-isearch-breakup-string-function, skk-isearch-breakable-character-p-function, skk-isearch-working-buffer): Changed to constants as they are never changed. (skk-isearch-mode-string-alist): Changed to a user variable. (skk-isearch-whitespace-regexp): Changed to a user variable and documented. * skk-attr.el: (skk-attr-time-difference): Renamed to `skk-time-difference' and moved to skk.el. * skk-gadget.el (skk-time-diff): Removed. (skk-clock): Use `skk-time-difference' instead of `skk-time-diff'. * skk.el (skk-auto-start-henkan-keyword-list): Doc fixed. (skk-hankaku-alist): Only define when you use Mule version 1 or 2. (skk-truncate-message): Bug fixed. (skk-kill-local-variables): Call `(skk-mode -1)' to turn off skk-mode. 1998-09-17 Mikio Nakajima * skk.el (skk-kana-input-search-function, skk-rom-kana-rule-list, skk-use-face, skk-kakutei-early): Doc fixed. 1998-09-16 Mikio Nakajima * skk.el (skk-truncate-message): Bug fixed. (skk-save-jisyo): Add doc string. (skk-set-henkan-point-subr): Apply patch from Hideki Sakurada of which message-id is <19980916183041P.sakurada@kuis.kyoto-u.ac.jp>. * skk-foreword.el : Use `string-to-vector' for Mule 3 and `string-to-char-list' for Mule 1 and 2 in `skk-str-ref'. 1998-09-15 Mikio Nakajima * skk.el (skk-setup-auto-paren): Use `skk-alpha-char-p'. (skk-truncate-message): New function. (skk-henkan-show-candidate-subr): Use `skk-truncate-message'. * skk-viper.el : Use `x-color-defined-p' instead of `x-color-value' to check `viper-insert-state-cursor-color' is a valid color value (maybe slightly faster). 1998-09-14 Mikio Nakajima * skk.el (skk-previous-candidate): Do not call `skk-init-auto-okuri-variables' and initialize necessary internal variables. (skk-henkan-overlay-priority): New user variable. (skk-henkan-face-on): Put `skk-henkan-overlay-priority' to `skk-henkan-overlay'. * skk-viper.el (skk-viper-or-vip): Marked with `;;;###skk-autoload' label. 1998-09-13 Mikio Nakajima * skk-rdbms.el (skk-rdbms-init): Call `buffer-disable-undo'. (skk-rdbms-save-jisyo-function, skk-rdbms-private-jisyo-dump, skk-rdbms-dump-error): New user variable. (skk-rdbms-save-jisyo): Funcall `skk-rdbms-save-jisyo-function'. (skk-rdbms-SQL-delete-command): Bug fixed. (skk-rdbms-update-jisyo): Change for `skk-ignore-dic-word'. (skk-rdbms-public-jisyo-has-entry-p): New funcition. (skk-rdbms-sahen-search, skk-rdbms-sahen-search-1): Bug fixed. (skk-rdbms-SQL-update-command): Bug fixed. * skk.el (skk-j-mode-map, skk-ascii-mode-map, skk-abbrev-mode-map): Not define `skk-kakutei-key' so as to change `skk-kakute-key' in ~/.skk. (skk-mode): Define `skk-kakute-key' as `skk-kakutei' in `skk-j-mode-map', `skk-ascii-mode-map' and `skk-abbrev-mode-map' every time `skk-mode' is invoked.. (skk-public-jisyo-has-entry-p): Funcall `skk-public-jisyo-has-entry-p-function'. (skk-public-jisyo-has-entry-p-original): Substantially old `skk-public-jisyo-has-entry-p'. (skk-public-jisyo-has-entry-p-function): New user variable. (skk-abbrev-cursor-color): Doc fixed. 1998-09-12 Mikio Nakajima * skk-viper.el (skk-viper-or-vip, skk-viper-normalize-map-function): Change them to constants as they are never changed. * Cursor color support (`skk-use-color-cursor' is non-nil and `viper-insert-state-cursor-color' is null value, cursor color is set properly according to SKK mode.) (viper-hide-replace-overlay): Adviced. (viper-intercept-ESC-key, vip-intercept-ESC-key): Change them to around advices. * skk.el (skk-kakutei-save-and-init-variables): Initialize `skk-okuri-index-min', `skk-okuri-index-max' and `skk-henkan-in-minibuff-flag'. (skk-update-jisyo-original): Call `skk-remove-common' if `skk-okuri-index-min' is larger than 0. (insert-file): Adviced. (skk-relation-length, skk-relation-record-num, skk-relation-make-period-separator): Move to skk-attr.el * skk-auto.el (skk-init-auto-okuri-variables): Removed. (skk-remove-common, skk-auto-okurigana-prefix, skk-kana-rom-vector skk-henkan-in-minibuff-flag, skk-okuri-index-min, skk-okuri-index-max): Move to skk.el for `skk-rdbms-sahen-search'. * skk-rdbms.el (skk-rdbms-sahen-search): New function. (skk-rdbms-search-sahen-command): New macro. (skk-rdbms-hinsi-base-table, skk-rdbms-hinsi-data-table): New user variable. (skk-rdbms-update-jisyo): Call `skk-remove-common' if `skk-okuri-index-min' is larger than 0. (skk-rdbms-SQL-insert-command): Determine okuriari or not by `skk-henkan-okurigana'. * skk-kakasi.el: Decode with euc-japan coding system what received by kakasi. 1998-09-11 Mikio Nakajima * skk-rdbms.el (skk-rdbms-error-regexp, skk-rdbms-update-fail-regexp): Change regexp slightly. * skk.el (skk-auto-paren-string-alist): Add ("`" . "'") pair. (skk-public-jisyo-contains-p): Rename to `skk-public-jisyo-has-entry-p'. (skk-current-rule-tree, abort-recursive-edit, minibuffer-keyboard-quit, skk-erase-prefix): Apply the patch from Murata Shuuichirou . 1998-09-06 Mikio Nakajima * skk-rdbms.el (skk-rdbms-update-fail-regexp): Documented. (skk-rdbms-kakutei-jisyo-table, skk-rdbms-initial-jisyo-table): Doc improved. 1998-09-01 Mikio Nakajima * skk-auto.el (skk-okuri-search): Marked with `;;;###skk-autoload' label. * skk-rdbms.el (skk-rdbms-private-jisyo-table, skk-rdbms-public-jisyo-table, skk-rdbms-jis2-jisyo-table): Doc improved. Remove `skk_' prefix from default values of these user variables. (skk-rdbms-busyu-henkan, skk-rdbms-stroke-henkan): New functions. (skk-rdbms-kcode-table, skk-rdbms-stroke-table, skk-rdbms-busyu-base-table, skk-rdbms-busyu-data-table): New user variable. (skk-rdbms-SQL-search-busyu-command, skk-rdbms-SQL-search-stroke-command): New macros. (skk-rdbms-okuri-search-subr): Rename to `skk-rdbms-okuri-search'. 1998-09-01 Murata Shuuichirou * skk-foreword.el (skk-str-ref): Defaliased to `sref' if mule version is 2.3 or 3. 1998-08-31 Mikio Nakajima * skk-rdbms.el (skk-rdbms-kill): Call `skk-rdbms-save-jisyo' before killing database process if `this-command' is not `save-buffers-kill-emacs'. * skk.el (skk-byte-compile-init-file): Bind to nil by default. 1998-08-30 Murata Shuuichirou * skk-foreword.el (skk-mule4): New constant. (skk-substring, skk-str-ref, skk-str-length, skk-charsetp, skk-char-octet): New alliases or functions. * skk-auto.el (skk-auto-okurigana-prefix): Use `skk-kana-rom-vector' instead of `skkdic-okurigana-table'. (skk-remove-common): Bug fixed. 1998-08-30 Mikio Nakajima * skk-rdbms.el (skk-rdbms-save-jisyo): Correct message. (skk-rdbms-kill): Message verbosely. (skk-rdbms-search-jisyo-table): Remove temporary variable CUTOFF-FUNC. (skk-rdbms-cutoff-output-function-2): Add `save-excursion'. (skk-rdbms-cutoff-output-function-3): Remake. (skk-rdbms-SQL-insert-command, skk-rdbms-SQL-delete-command, skk-rdbms-SQL-update-command, skk-rdbms-SQL-search-private-jisyo-command, skk-rdbms-SQL-search-public-jisyo-command, skk-rdbms-jis2-jisyo-table): New macros. (skk-rdbms-update-jisyo): Refer to `skk-rdbms-SQL-insert-command', `skk-rdbms-SQL-delete-command', and `skk-rdbms-SQL-update-command'. (skk-rdbms-search-jisyo-table): Use `skk-rdbms-SQL-search-private-jisyo-command' and `skk-rdbms-SQL-search-public-jisyo-command'. (skk-rdbms-SQL-wildcard): Removed. * dicconv.awk: Change for [SML] jisyo or JIS2 jisyo. * createtbl.sql: Make `skk_large_jisyo' and `skk_jis2_jisyo' table. 1998-08-29 Mikio Nakajima * skk-auto.el (skk-okuri-search-subr-function): Rename to `skk-okuri-search-function'. 1998-08-28 Takao KAWAMURA * skk.el (skk-mode): Compile `skk-rom-kana-base-rule-list' first. (skk-start-henkan): Bug fixed. 1998-08-28 Hideki Sakurada * skk.el (skk-compile-rule-list): Bug fixed. 1998-08-27 Mikio Nakajima * Makefile: Add file dependencies. * createtbl.sql: Add `NOT NULL' restriction to `okuriari', `yomi' and `kanji' field when create `skk_private_jisyo 'table (Why can't I add it to `date' field?). * skk-rdbms.el (skk-rdbms-update-jisyo): Process WORD by `skk-remove-common' if `skk-auto-okuri-process' is non-nil. (skk-rdbms-okuri-search-subr): New function. (skk-rdbms-completion, skk-rdbms-previous-completion): Bug fixed. * Add `skk-rdbms-kill' to `skk-before-kill-emacs-hook' instead of `kill-emacs-hook'. (skk-rdbms-cutoff-output-function, skk-rdbms-cutoff-output-function-2): Modify the regexp slightly. (skk-rdbms-cutoff-output-function-3): New user variable. * skk-auto.el (skk-auto-okurigana-prefix): Bug fixed. (skk-okuri-search-subr): Rename to `skk-okuri-search-subr-original'. (skk-okuri-search-subr): Remove. (skk-okuri-search): Funcall `skk-okuri-search-subr-function' instead of calling `skk-okuri-search-subr'. (skk-okuri-search-subr-function): New user variable. (skk-adjust-search-prog-list-for-auto-okuri): Add `(skk-okuri-search)' list just before a list which contains `skk-jisyo' or `skk-rdbms-private-jisyo-table'. * skk.el (skk-search-relation, skk-attr-search-relation, skk-update-relation, skk-attr-update-relation): Move to skk-attr.el. 1998-08-26 Mikio Nakajima * skk.el (skk-use-rdbms): New user variable. * (skk-mode): Require 'skk-rdbms when `skk-use-rdbms' in non-nil. Call `skk-create-file' and `skk-get-jisyo-buffer' only when `skk-use-rdbms' is nil. * skk-rdbms.el (skk-rdbms-save-jisyo): Not vacumming SKK database when skk-rdbms-process is not alive. 1998-08-24 Murata Shuuichirou , Seiichi Namba * skk-foreword.el (skk-e20.2): New constant. (skk-alpha-char-p): Check if CHAR is less than 128 or not, if skk-e20.2 is non-nil. 1998-08-24 Mikio Nakajima * dicconv.awk: Get myctime() value in BEGIN block. * createtbl.sql: Create index on yomi only (as yomi_index). * skk-rdbms.el (skk-rdbms-previous-completion): Rewrite with while loop. * skk-foreword.el (skk-background-mode): Use return value of `frame-parameters' if it has `(background-mode . VALUE)'. * skk-comp.el (skk-completion-function): Bug fixed. 1998-08-22 Mikio Nakajima * skk.el (skk-mode): Hand `skk-rom-kana-base-rule-list' and `skk-rom-kana-rule-list' respectively to `skk-compile-rule-list'. * skk-rdbms.el (skk-rdbms-process-coding-system): New user variable. (skk-rdbms-init): Use `skk-rdbms-process-coding-system'. Use `skk-rdbms-shell' instead of `calc-gnuplot-name' (a base of this function is in calc-graph.el). (skk-rdbms-SQL-wildcard): New user variable. 1998-08-21 Mikio Nakajima * skk-rdbms.el (skk-rdbms-init): unsetenv "PAGER" environment. (skk-rdbms-init): Use `skk-save-point' outside while loop. * skk-foreword.el (skk-downcase): Revive as the inline function as of June 17, 1998. * skk.el (skk-compile-rule-list): Use &rest to get its argument. (skk-downcase-alist): Revive. (skk-record-jisyo-data): Take no argument. * skk-comp.el (skk-previous-completion-original): Do not delete midashi word if no more previous completion for `skk-completion-word'. (skk-previous-completion): Funcall `skk-previous-completion-function'. (skk-previous-completion-original): Old `skk-previous-completion'. Just renamed. (skk-previous-completion-function): New user variable. (skk-completion-original): Old `skk-completion'. Just renamed. (skk-completion): Funcall `skk-count-jisyo-candidates-function'. (skk-completion-function): New user variable. 1998-08-19 Mikio Nakajima * skk.el (skk-record-jisyo-data): Change for skk-rdbms.el. 1998-08-18 Mikio Nakajima * skk.el (skk-count-jisyo-candidates-original): Old `skk-count-jisyo-candidates'. Just renamed. (skk-count-jisyo-candidates): Funcall `skk-count-jisyo-candidates-function'. (skk-count-jisyo-candidates-function): New user variable. * skk-rdbms.el (skk-rdbms-cutoff-output-function): Add `save-match-data'. (skk-rdbms-count-jisyo-candidates): New function. (skk-rdbms-kill-command): New user variable (skk-rdbms-kill): Use `skk-rdbms-kill-command' variable. 1998-08-16 Mikio Nakajima * skk-rdbms.el: New file. Support PostgreSQL database jisyo. * skk.el (skk-update-jisyo-function): New variable. (skk-save-jisyo-original, skk-update-jisyo-original): Old `skk-save-jisyo' and `skk-update-jisyo'. Just renamed respectively. (skk-save-jisyo, skk-update-jisyo): Funcall `skk-save-jisyo-function' and `skk-update-jisyo-function'. (skk-save-jisyo-function, skk-update-jisyo-function): New variables. * skk-foreword.el: Move all macros, inline functions and aliases to this file from skk.el * skk-auto.el (skk-adjust-search-prog-list-for-auto-okuri): Do not add `(skk-okuri-search)' list to `skk-search-prog-list', if no entries are found that contain `skk-jisyo'. 1998-08-15 Mikio Nakajima * skk.el (skk-insert): Use `let' instead of `let*'. * skk-isearch.el: Insert `-*- byte-compile-dynamic-docstring: t;-*-' comment in the header. * (skk-isearch-wrapper): Change for the internationalized isearch.el of the GNU Emacs. * (skk-isearch-incomplete-message, skk-isearch-search-string): Doc fixed. 1998-08-14 Mikio Nakajima * skk.el (skk-rule-tree, skk-current-rule-tree): Doc fixed. (skk-public-jisyo-contains-p): Use `memq' instead of `member'. 1998-08-13 Mikio Nakajima * skk.el: Remove `;; -*-byte-compile-dynamic: t;-*-' from the header. * Apply the patch from Murata Shuuichirou . * Merge skk-tree.el into skk.el. * (skk-tree-load-hook): Remove. (skk-kana-input): Documented by <19980610190611B.sakurada@kuis.kyoto-u.ac.jp> from Hideki Sakurada . * (skk-kana-input, skk-set-henkan-point, skk-self-insert): Change as a non-interactive command. * (skk-rom-kana-base-rule-list, skk-rom-kana-rule-list): Documented. * (skk-rule-tree, skk-current-rule-tree) Change as a non-user variable. * (skk-insert): Documented. Use `memq' instead of `member'. * (skk-set-henkan-point-key): Replace the document. * (skk-setup-delete-selection-mode, skk-cancel-undo-boundary): Change for the replacement of `skk-kana-input' with `skk-insert'. * (skk-cancel-undo-boundary, skk-self-insert-non-undo-count): Doc fix for the replacement of `skk-kana-input' with `skk-insert'. * (skk-setup-special-midashi-char): Remove. * (skk-downcase-alist): Remove. * (skk-kana-input-search-function): Doc improved. * (skk-insert-prefix, skk-del-char-with-pad, skk-set-okurigana, skk-set-henkan-point, skk-set-henkan-point-subr, skk-change-marker, skk-katakana-region, skk-hiragana-region, skk-zenkaku-region, skk-ascii-region, skk-previous-candidate, skk-insert-new-word, skk-undo-kakutei): Use `skk-insert-and-inherit' instead of `insert'. * (skk-mode): Append `skk-rom-kana-rule-list' to `skk-rom-kana-base-rule-list'. Replace `$B!V(B' and `$B!W(B' in the doc string with `"' since we could not indent properly. Compile skk-rule-tree every time when skk-mode is invoked. * skk-foreword.el (skk-downcase): Defaliased to `downcase'. * make-vars.el (skk-files): Remove skk-tree.el from the list. 1998-06-27 Hideki Sakurada * skk.el (skk-insert): Improve the check for input. 1998-06-26 Hideki Sakurada Appy the patch <19980619220419Y.ksakai@netwk.ntt-at.co.jp> from SAKAI Kiyotaka . * skk.el (skk-kana-input): Delay skk-kakutei. 1998-06-17 Hideki Sakurada Apply the patch <19980617221009M.ksakai@netwk.ntt-at.co.jp> from SAKAI Kiyotaka . * skk.el (skk-j-mode-map): Fix mapping on Mule 2. (skk-kana-input): Fix check whether rule is for function or not. * skk-tree.el (skk-rom-kana-base-rule-list): Add rule for skk-start-henkan. 1998-06-17 Hideki Sakurada Apply the patch <81wwapbz91.fsf@mrt.astec.co.jp> from Murata Shuuichirou . * skk-foreword.el (skk-char-octet): Defined as function on Emacs 20. * skk-kcode.el (skk-display-code-for-char-at-point): Use skk-char-octet. 1998-06-17 Hideki Sakurada Apply the following patches from SAKAI Kiyotaka and Murata Shuuichirou . <19980616201706R.ksakai@netwk.ntt-at.co.jp> <19980617100826M.ksakai@netwk.ntt-at.co.jp> <19980617102411T.ksakai@netwk.ntt-at.co.jp> <81pvg8pk71.fsf@mrt.astec.co.jp> * skk.el (skk-set-henkan-point-key): New variable. (skk-insert): New function dispatch input to skk-kana-input, or skk-self-insert. (skk-kana-input): Accept roma-function type rules as well as roma-kana type rules. (skk-j-mode-map): Bind almost all keys to skk-insert. (skk-ascii-mode, skk-zenkaku-mode, skk-abbrev-mode, skk-previous-candidate, skk-set-henkan-point-subr, skk-purge-from-jisyo): Take a numeric argument. * skk-foreword.el (skk-downcase): Fix a bug. * skk-kcode.el (skk-display-code-for-char-at-point): Take an optional numric argument. * elib-node.el, avltree.el: Removed. * Makefile: Remove rule for elib-node.el and avltree.el. 1998-05-20 Hideki Sakurada * skk.el (skk-j-mode-map, skk-abbrev-mode-map): Fix "\M-\ " and "\ ". 1998-05-19 Hideki Sakurada * skk.el: Change (define-key ... "\ " ...) to (define-key ... " " ...). 1998-05-15 Hideki Sakurada * skk.el (skk-mode, skk-erase-prefix): Comments such as ";; (foo" changed to ";; (foo)" to make make-skk-vars work. (skk-save-jisyo-1): Comment fixed. * make-vars.el (skk-file-name-sans-extension): New function for Emacs 19.28. Same as file-name-sans-extension on newer Emacs. (make-skk-vars): Replace file-name-sans-extension with skk-file-name-sans-extension. 1998-05-10 Hideki Sakurada * skk.el (keyboard-quit): Fix "(if skk-prefix ...)" which is always true. 1998-05-07 Hideki Sakurada * skk-auto.el, skk-comp.el, skk-num.el, skk-viper.el, skk.el: Remove bindings of mc-flag, enable-multibyte-characters. 1998-05-06 Hideki Sakurada * skk-foreword.el: Fix skk-characterp. 1998-04-30 Hideki Sakurada * skk-kcode.el (skk-input-by-code-or-menu-jump): Convert 32 to ?\ (space). 1998-04-23 Hideki Sakurada * skk-tree.el (skk-rom-kana-base-rule-list): new rule for "'". * skk.el: "'" mapped to skk-kana-input for "n'". 1998-04-17 Hideki Sakurada * skk-foreword.el: Fix bug around version spcific matters. Thanks to Takao Ono . 1998-03-23 Hideki Sakurada * skk.el (skk-erase-prefix): Add check for skk-kana-start-point. 1998-03-19 Hideki Sakurada * skk.el (skk-mode-off): Replace remove-hook with skk-remove-local-hook (skk-mode): Replace make-local-hook and add-hook with skk-make-local-hook and skk-add-local-hook respectively. * skk-foreword.el (skk-make-local-hook): New macro. (skk-add-local-hook): New macro. (skk-remove-local-hook): New macro. 1998-03-19 Hideki SAKURADA * skk-auto.el, skk-comp.el, skk-gadget.el, skk-isearch.el skk-kakasi.el, skk-kcode.el, skk-leim.el, skk-menu.el skk-num.el, skk-server.el, skk-tut.el, skk-vip.el skk-viper.el: Do not eval-when-compile avltree.el. * skk.el (skk-set-henkan-point): Fix for inputs such as `NEko'. (skk-pre-command): Add check for skk-set-henkan-point. 1998-03-17 Mikio Nakajima * skk-tree.el (skk-rom-kana-rule-list): Doc fixed. * skk.el (skk-downcase): Simplified, defsubsted and moved to skk-foreword.el. (skk-okuri-char-alist, skk-downcase-alist): Documented. (skk-input-kana-helper-function): Removed. (skk-kana-input): Do not funcall skk-input-kana-helper-function. Erase skk-prefix only when skk-prefix has an non-null string. (skk-input-kana-search-function): Renamed to `skk-kana-input-search-function' and documented. (skk-kana-input): Use nconc instead of append because `skk-string-to-char-list' returns newly allocated list. (skk-set-henkan-point): Directly call skk-kana-input instead of using skk-unread-event. 1998-03-17 Hideki Sakurada * skk.el (skk-kana-cleanup): Fix bug around force option. (skk-pre-command): New function for pre-command-hook. 1998-03-16 Hideki Sakurada * skk.el (skk-set-henkan-point): Use skk-kana-cleanup for inputs such like "KAnji". (skk-kana-cleanup): New function which clean up sk-kana-prefix etc. * skk-tree.el (skk-make-rule-tree, skk-set-nextstate): Set nextstate nil if nextstate is "". * skk.el (skk-kakutei-save-and-init-variables): do not initialize skk-prefix 1998-03-15 Mikio Nakajima * skk-foreword.el (skk-alpha-char-p): Quote ascii symbol. 1998-03-14 Hideki Sakurada * skk-foreword.el (skk-string-to-char-list): a new alias to string-to-char-list or string-to-list. * skk-tree.el: Totally rewritten. * skk.el: avltree staffs removed. (skk-roma-kana-base-alist): Converted to skk-rom-kana-base-rule-list in skk-tree.el. (skk-kana-input): Totally rewritten using tree structures. (skk-input-kana-search-function): `sokuon' staffs are removed. `oh'-conversion adapted to skk-kana-input in skk.el. 1998-03-12 Mikio Nakajima * skk.el (delete-backward-char): Erase skk-prefix before setting skk-prefix to null string. 1998-03-11 Mikio Nakajima * skk-auto.el, skk-comp.el, skk-gadget.el, skk-isearch.el, skk-kakasi.el, skk-kcode.el, skk-leim.el, skk-menu.el, skk-num.el, skk-server.el, skk-tree.el, skk-tut.el, skk-vip.el, skk-viper.el: Require avltree when compiling. * skk.el (skk-erase-prefix): Delete only skk-prefix exactly. (skk-kana-input): Not call skk-isearch-message after we fixed skk-prefix. * skk-isearch.el (skk-isearch-set-working-buffer): Removed. (skk-isearch-search-string): Return nil when skk-prefix has some non-null string. 1998-03-05 Mikio Nakajima * skk-num.el : Required avltree. * skk-tut.el (skktut-init-variables-alist): Removed skk-char-type-vector, skk-standard-rom-kana-rule-list, skk-rom-kana-rule-list, skk-fallback-rule-alist, and skk-postfix-rule-alist. * skk-foreword.el (skk-kana-input-char-type): Removed. * skk.el (skk-get-next-rule, skk-get-fallback-rule, skk-check-postfix-rule, skk-get-postfix-rule): Removed. * (skk-char-type-vector, skk-standard-rom-kana-rule-list, skk-rom-kana-rule-list, skk-fallback-rule-alist, skk-postfix-rule-alist): Removed. * Require avltree. * skk-isearch.el (skk-isearch-incomplete-message): Doc fixed. (skk-isearch-message): Not have to refer to dynamic variable `prefix' of skk-kana-input, as skk-kana-input has been rewritten without using while read-char loop. 1998-03-01 Murata Shuuichirou * skk-kcode.el (skk-display-code-for-char-at-point): Use skk-char-octet. * skk-foreword.el (skk-char-octet): New (function|alias). * skk-kcode.el (skk-input-by-code-or-menu-jump): Use skk-chracterp. (skk-input-by-code-or-menu-1): Ditto. (skk-input-by-code-or-menu-jump): Use skk-event-to-character to make an input character. (skk-input-by-code-or-menu-1): Ditto. * skk-foreword.el (skk-chracterp): New alias. 1998-02-03 Murata Shuuichirou * skk.el (skk-nunion): slightly improved. (skk-reread-private-jisyo): add an optional argument to suppress confirmation. * skk-kcode.el (skk-input-by-code-or-menu): bug fixed. * skk.el (skk-kana-input): downcase trailing chars. 1998-01-06 Murata Shuuichirou * skk.el: skk-jisx0208-to-ascii is moved to skk-forword.el * skk-attr.el (skk-prin1): New function. (skk-attr-save): Use it. * skk-num.el (skk-raw-number-to-skk-rep-1): Add missing binding of mc-flag. * skk-foreword.el(Top-level): Reorder def*s. 1997-12-22 Murata Shuuichirou * skk.el (skk-cancel-undo-boundary): Comment fixed. * skk-vip.el (skk-insert-str): Fixed document. skk-insert is not used anymore. * skk.el (skk-prefix): Remove obsolete document. (skk-jis-char-p): Removed. (skk-alpha-char-p,skk-lower-case-p): moved to skk-forword.el. (skk-setup-delete-selection-mode): Remains of skk-insert-a are removed. (skk-self-insert-non-undo-count): ditto. (skk-insert): Removed. (skk-insert-str): Fixed document. 1997-12-10 Murata Shuuichirou * skk-num.el (skk-compute-numeric-henkan-key): bind mc-flag to t. Submitted by Hideki Sakurada . 1997-11-15 Murata Shuuichirou * skk.el (skk-mode): `"' in doc-string. (skk-relation-length, skk-relation-record-num): make into user variable. (skk-relation-make-period-separator): New variable. (skk-insert-period): Use it and skk-last-renkan-results. (skk-last-henkan-result,skk-last-henkan-point): Removed. (skk-last-henkan-results): New variable. (skk-mode-off): Use it. (skk-search-relation, skk-attr-search-relation, skk-update-relation,skk-attr-update-relation, skk-update-jisyo): Multi entry relation is supported. 1997-11-12 Murata Shuuichirou * make-vars.el (make-skk-vars): Disable make-backup-files. 1997-11-09 Stephen Turnbull * skk.el (skk-month-alist, skk-init-file, skk-special-midashi-char-list, skk-auto-fill-mode-hook, skk-kakutei-jisyo, skk-initial-search-jisyo): Add comments in english. (skk-mode): Change doc-string. * skk-tut.el (skk-tut-file-alist): New variable. (skk-tut-file): Remove use of locate-data-directory. (skk-tutorial): Add support for choosing language. 1997-10-27 SL Baur * skk-tut.el (skk-tut-file): Use `locate-data-directory' if available to find the tutorial files. (skktut-setup-problem-buffer): Use `map-keymap' to fill the keymap in XEmacs/Mule. 1997-10-28 Murata Shuuichirou * string.el (Top level form): de-"skk-defunsoft"ified. delete (require 'skk-foreword). 1997-10-26 Murata Shuuichirou * skk-leim.el (Top level form): Add short descriptions to (register... ). 1997-10-25 Murata Shuuichirou * skk-leim.el: new file. * skk.el (skk-mode, skk-auto-fill-mode): ;;;###skk-autoload'ed. * skk-attr.el (skk-attr-save): sexp written by princ can not be read again, so use prin1. * skk-viper.el (Top level form): require viper. 1997-10-21 Murata Shuuichirou * skk.el (skk-kanji-len): Change document. * skk-attr.el (skk-attr-alist): Add ;;;###skk-autoload. (skk-attr-read): Add kluge. * skk.el (skk-use-relation): New variable. (skk-relation-length): New variable. (skk-relation-record-num): New variable. (skk-search-relation): New function. (skk-attr-update-relation): New function. (skk-update-jisyo): Use relation. 1997-10-09 Murata Shuuichirou * skk.el (skk-standard-rom-kana-rule-list): add "ts". 1997-09-22 Murata Shuuichirou * skk-kcode.el(skk-kcode-defined-charsets): New constant. (skk-input-by-code-or-menu): Use it. 1997-09-17 Murata Shuuichirou * skk-viper.el(skk-viper-or-vip): New variable. (skk-viper-advice-select): New macro. (Top level form): change advices into skk-viper-advice-select. 1997-09-16 Murata Shuuichirou * skk-foreword.el(skk-unread-event): make correct unread-command-events. (Top level form): skk-background-mode must be defined before used. * skk-isearch.el(Top level from): put 'isearch-commnd. * skk.el(skk-check-postfix-rule): New function. (skk-kana-input): Use it. (skk-get-postfix-rule): Add optional arg. * make-vars.el(make-sk-vars): bind file-coding-system to 'junet. 1997-09-03 Mikio Nakajima * skk-attr.el: New file. * skk.el: typo fixed. (skk-substring-head-character): New defsubst. (skk-translate-okuri-char): Use skk-substring-head-character. (skk-purge-from-jisyo, skk-search-jisyo-file-1, skk-update-jisyo): Attribute support. 1997-08-31 Mikio Nakajima * queue-m.el (queue-dequeue): Changed `(if (not (null (car (cdr queue)))' to `(if (car (cdr queue))'. * skk.el (skk-save-jisyo): Do not use catch and throw form. Set buffer-modified flag to nil only when saving JISYO successfully. (skk-save-jisyo-1): Remove (set-buffer-modified-p nil) form. (skk-check-jisyo-size): Output a warning when editing private JISYO is smaller than the original one. (skk-reread-private-jisyo): New function. (skk-record-jisyo-data): Bug fixed. * skk-foreword (with-output-to-temp-buffer): Defined for XEmacs and Mule 2.x. (skk-get): Comment out. * skk-gadget.el: Added `;;;###skk-autoload' cookies to `skk-date-ad', `skk-today', `skk-clock', `skk-convert-ad-to-gengo', `skk-convert-gengo-to-ad', `skk-calc', `skk-plus', `skk-minus', `skk-times' and `skk-ignore-dic-word'. * Makefile: Automatically generate skk-vars.el. 1997-08-23 Murata Shuuichirou * skk-viper.el (skk-viper-normalize-map-function): New variable. * skk.el (skk-mode): Use skk-viper-normalize-map-function instead of vip-normalize-minor-mode-map-alist. 1997-08-21 Murata Shuuichirou * skk.el (skk-fallback-rule-alist): New variable. (skk-get-fallback-rule): New function. (skk-get-postfix-rule): New function. (skk-kana-input): Use fallback rule. 1997-08-20 Murata Shuuichirou * skk.el (skk-kana-input): Remove unused local variable. 1997-08-19 Murata Shuuichirou * skk.el (skk-kana-input): Mostly cosmetic change. Maybe speedened. * skk-tree.el (skk-standard-rom-kana-rule-tree): Change doc-string. * skk-kcode.el (skk-kcode-charset): New variable. (skk-input-by-code-or-menu): Change doc-string. 1997-07-31 Murata Shuuichirou * skk-kcode.el (skk-kcode-charset): New variable. * skk.el (skk-henkan): kakutei-henkan was moved from skk-insert-new-word. (skk-insert-new-word): kakutei-henkan was removed. * skk-foreword.el (skk-char-to-string): New function. * skk.el: char-to-string was replaced by skk-char-to-string. 1997-07-27 Mikio Nakajima * skk.el: skk-list-to-avltree is removed. (skk-setup-delete-selection-mode): delete call of avltree-member. * avltree.el: Removed . 1997-07-27 Murata Shuuichirou * skk-kcode.el (skk-make-string): Renamed from skk-char-to-string. * many files (Top level form): Make skk-defvars into defvars. * skk-forword.el (skk-defvar): Removed. * skk-foreword.el (skk-char-to-string): New function. * skk.el (skk-kana-input): Use it. 1997-07-24 SAKAI Kiyotaka * skk-tut.el (skk-tut-init-variable): Removed. (skk-tut-init-variable-alist): New constant. (skktut-localize-and-init-variables): Can work without skk-defvar. 1997-07-22 Murata Shuuichirou * skk.el (skk-get-jisyo-buffer): Bind coding-system-for-read to euc-japan when inserting jisyo file. For XEmacs. * skk-foreword.el (skk-make-char): New function. (skk-charsetp): New function. (Top-Level form): defunsofts is moved from skk.el. Macros are rewritten in old style to work with old emacs. 1997-07-22 SAKAI Kiyotaka * skk.el (skk-standard-rom-kana-rule-list): Add an entry. 1997-07-15 Murata Shuuichirou * skk.el (skk-set-henkan-point): Remove call of skk-int-char because last-char's type is char, not int. (skk-standard-rom-kana-rule-list): Add entries. * many files(Top level form): Add `;;;###autoload's to suppress warnings. 1997-07-15 SAKAI Kiyotaka * skk.el (newline-and-indent): Adviced. (skk-standard-rom-kana-rule-list): Make it constant. Add an entry. * skk-foreword.el (skk-update-autoloads): New function. * skk-tut.el: Now working again. * make-vars.el: New file. 1997-07-14 Murata Shuuichirou * skk.el (skk-debug): New variable. (skk-standard-rom-kana-rule-list): New variable. (skk-get-next-rule): New function. (skk-kana-input): Avoid infifite loop. * skk-kcode.el (skk-input-by-code-or-menu): Add KUTEN input. 1997-07-14 SAKAI Kiyotaka * skk.el (skk-rom-kana-rule-list): Correct wrong entries. * skk-server.el (skk-search-server-subr): Bug fixed. 1997-07-10 Murata Shuuichirou * skk.el (skk-kana-input): Rewritten. (skk-insert-a, skk-insert-i, skk-insert-u, skk-insert-e, skk-insert-o): Removed. (skk-roma-kana-a, skk-roma-kana-i, skk-roma-kana-u, skk-roma-kana-e, skk-roma-kana-o): Removed. (skk-prefix-tree): Removed. (skk-compute-prefix-tree, skk-compute-prefix-tree-1): Removed. (skk-rom-kana-rule-list): Add new entries. (skk-postfix-rule-alist): New variable. (Top level form): Change default key binds. 1997-07-05 Murata Shuuichirou * skk.el (skk-henkan-in-minibuff): Bug fixed. * skk-num.el (skk-raw-number-to-skk-rep, skk-raw-number-to-skk-rep-1): Bug fixed. 1997-07-03 Murata Shuuichirou * skk.el (skk-previous-candidate-char): New variable. (skk-henkan-show-candidates): Use it. (skk-okuri-char-alist): New variable. (skk-translate-okuri-char): New function. (skk-set-okurigana): Add call of skk-translate-okuri-char to use okuri-char made from okurigana instead of skk-okuri-char. (skk-downcase-alist): New variable. (skk-downcase): New function. (skk-set-henkan-point): Use it instead of built-in downcase. 1997-06-19 Murata Shuuichirou * skk.el (skk-update-jisyo): Add call of skk-compute-numeric-henkan-key to make correct jisyo entry for numeric conversion. * skk.el (newline): Add kluge to avoid infinite loop. 1997-06-11 Murata Shuuichirou * skk.el (skk-henkan-strict-okuri-precedence): New variable. (skk-purge-from-jisyo): Use it. (skk-search-jisyo-filr): Ditto. (skk-update-jisyo-1): Ditto. (skk-public-jisyo-contains-p): Ditto. * skk-menu.el (skk-menu-henkan-strict-okuri-precedence): New function. 1997-05-12 Murata Shuuichirou * skk.el (skk-update-jisyo): Bug fixed. 1997-05-07 Mikio Nakajima * skk-gadget.el (skk-date): Bug fixed. * skk-num.el (skk-kanji-num-str2-subr): Bug fixed. (skk-uniq-numerals --- variable): Set default variable according to skk-num-type-list value. (skk-uniq-numerals --- function): Do not work when skk-uniq-numerals is nil. (skk-recompute-numerals): Use skk-henkan-key, skk-henkan-okurigana, skk-okuri-char and skk-use-numeric-conversion variable as its temporary ones. * skk.el (skk-search-jisyo-file, skk-search-jisyo-file-1, skk-update-jisyo, skk-update-jisyo-1): Refer to skk-henkan-key directly. (skk-prefix-tree): Remove `*' from its doc string. (minibuffer-keyboard-quit): Adviced like keyboard-quit or abort-recursive-edit when skk-xemacs is non-nil. XEmacs has minibuffer-keyboard-quit that has nothing to do with delsel. (eval-after-load, set-cursor-color, rassoc, add-to-list): Took them to top level of skk.el from the nested list of skk-foreword.el. XEmacs 20.2 beta4 does not expand a macro in eval-and-load. (skk-start-henkan): Use combine-after-change-calls. 1997-05-05 Murata Shuuichirou * skk.el (skk-get-jisyo-buffer): Bind enable-character-unification to nil. (Top level form): Handed proper arguments to hilit-add-pattern. 1997-05-05 Mikio Nakajima * skk-foreword.el (combine-after-change-calls): Copy from subr.el of gnumule-19.34.94.zeta for Emacs older than 19.33. * skk.el (skk-record-jisyo-data): Use with-temp-file instead of with-temp-buffer. Don't use temporary variable `min'. (skk-kana-input, skk-set-henkan-point, skk-change-marker, skk-change-marker-to-white, skk-delete-henkan-markers): Use combine-after-change-calls. * skk-kakasi.el (skk-gyakubiki-region, skk-gyakubiki-katakana-region, skk-hurigana-region, skk-hurigana-katakana-region, skk-romaji-region): Use combine-after-change-calls. * skk-num.el (skk-adjust-henkan-data-for-numerals): Rename to skk-adjust-numeric-henkan-data. (skk-adjust-numeric-henkan-data): nconc key to skk-henkan-list when key is not a numeric representation. 1997-05-04 Mikio Nakajima * skk.el, skk-num.el: ($B$$$-$J$jF|K\8l$G$9$,(B f(^_^;;;...) $B?tCMJQ49(B $B$K4X$9$kBg2~B$$r9T$J$C$?!#(B SKK $B$G$O!"(B"#1", #2" $B$J$I$N?tCMI=8=$rMQ$$$k$3$H$G!"?tCMJQ49$r9T$J$C(B $B$F$$$k$,!"0JA0$O!"0[$J$k?tCMI=8=$G$bJQ497k2L$,F1$8?tCM$r=EJ#$7$F=P(B $BNO$7$J$$$h$&!"(B~/.skk-jisyo $B$K8uJd$,8+$D$+$C$F$b(B skk-current-search-prog-list $B$,(B null $B$K$J$k$^$G8uJd$rC5$7!"$=$l$+(B $B$i(B uniq $B$r9T$J$C$F$$$?$?$a$K!"?tCMJQ49$K$+$+$k%*!<%P!<%X%C%I$,Bg$-(B $B$+$C$?$,!"0lJ}!"(B $B8!:w(B -> uniq -> $B?tCMJQ49(B $B$H$$$&:n6H$,(B 1 $B2s$G:Q$s$G$$$?$?$a!"(Bskk-henkan-list $B$N07$$$,4JC1$G(B $B$"$C$?(B (uniq $B8e$N(B skk-henkan-list $B$r(B copy $B$7$F(B skk-noconv-henkan-list $B$r:n$j!"(Bskk-henkan-list $B$N3FMWAG$K$O?tCMJQ(B $B498e$NJ8;zNs$KF~$lBX$($F$$$?!#<-=q$N99?7$N$?$a$K$O?tCMJQ49$NFbItI=(B $B8=$H!"?tCMJQ498e$NJ8;zNs$rGD0.$9$kI,MW$,$"$k(B)$B!#(B $B:#2s$N2~B$$G!"8uJd$,(B "#4" $B$N?tCMI=8=$r4^$^$J$$$H$-$O!"0l5$$K(B skk-current-search-prog-list $B$NA4$F$r8!:w$7$F$7$^$o$:$K!"DL>o$NJQ(B $B49$HF1$8$h$&$K8!:w$r9T$J$&$h$&$K$7$?!#JQ49$N$?$a$K(B 1 $B2s%9%Z!<%9$r(B $B2!$9Kh$K(B $B8!:w(B -> uniq -> $B?tCMJQ49(B $B$H$$$&0lO"$N:n6H$r9T$J$&$h$&$K$J$C$F$$$k$N$G!"2?EY$b%9%Z!<%9$r2!$7(B $B$FJQ49$7$^$/$k$H!"(Buniq $B$NEY$K(B skk-henkan-list $B$H(B skk-noconv-henkan-list $B$r%7%s%/%m$5$;$k$N$,Fq$7$/$J$C$F$/$k!#$=$3(B $B$G!"(B $B?tCMJQ49A0$N(B skk-henkan-list; ("#2" "#1" ...) $B?tCMJQ498e$N(B skk-henkan-list; (("#2 . "$B0l(B") ("#1" . "1") ...) $B$H$$$&Iw$K!"(Bskk-henkan-list $B$KD>IU$1$G?tCMJQ49$NFbItI=8=!"$=$N?tCM(B $BJQ49J8;zNs$rI=8=$9$k$h$&$K$7$?(B (uniq $B<+BN$N%3%9%H$O$+$J$j>e$,$C$F(B $B$$$k$O$:(B)$B!#(B * skk.el, skk-auto.el: Change (progn (search-forward "xxx") (point)) to (search-forward "xxx"). search-forward of Emacs 19 returns point after searching. * skk-foreword.el (save-current-buffer, with-current-buffer, with-temp-file, with-temp-buffer, with-output-to-string): Copy from subr.el of gnumule-19.34.94.zeta for Emacs older than 19.33. * skk-menu.el, skk-viper.el: Use save-current-buffer instead of save-excursion. * skk-auto.el, skk-comp.el, skk-isearch.el, skk-kakasi.el, skk-menu.el, skk-server.el, skk-tut.el, skk.el: Use with-current-buffer instead of save-excursion. * skk-kakasi.el, skk.el : Use with-temp-buffer instead of save-excursion. * skk.el (skk-kill-emacs-without-saving-jisyo): ad-activate save-buffers-kill-emacts to remove advice completely. * string.el (string-split): Define with skk-defunsoft. Emacs 20 has it in subr.el. 1997-05-03 Mikio Nakajima * skk-num.el (skk-uniq-numerals): New variable. * skk-menu.el (skk-menu-uniq-numerals): New function. 1997-05-01 Kawashima Manabu * skk-num.el (skk-flatten-list): Rewrite using do loop. 1997-04-30 Kawashima Manabu * skk-num.el (skk-flatten-list): Rewrite. 1997-04-28 Mikio Nakajima * skk.el (skk-version): Don't use temporary variable `date-template'. Bug fixed. (skk-keyboard-quit, skk-newline, skk-delete-backward-char) Deleted. Adviced keyboard-quit, abort-recursive-edit, newline, exit-minibuffer and delete-backward-char. (skk-minibuffer-keyboard-quit): Deleted. Adviced minibuffer-keyboard-quit. (skk-save-point): New macro. Just keep original point --- faster than save-excursion. (skk-toggle-kana, skk-auto-start-henkan, skk-ovwrt-len, skk-set-okurigana, skk-henkan, skk-previous-candidate, skk-start-henkan, skk-backward-and-set-henkan-point, skk-change-marker, skk-change-marker-to-white, skk-delete-henkan-markers, skk-delete-okuri-mark, skk-count-jisyo-candidates, skk-katakana-region, skk-hiragana-region, skk-zenkaku-region, skk-ascii-region, skk-*-henkan-1, skk-henkan-show-candidates): Use skk-save-point instead of save-excursion. * skk-auto.el (skk-okuri-search-subr): Use skk-save-point instead of save-excursion. * skk-menu.el (skk-menu-save-modified-user-option-1): Use skk-save-point instead of save-excursion. * skk-tut.el (skktut-mode): Don't bind C-m of minibuffer-local-map to skk-newline. 1997-04-28 Murata Shuuichirou * skk.el (skk-kana-input): skk-echo $B$,(B t $B$N$H$-(B $B"&%b!<%I$G!":G=i$N0lJ8;z$K%*CJ$NJ8;z$rF~NO$7$?D>8e$KF~NO$7$?BgJ8(B $B;z$,BgJ8;z$H$7$FG'<1$5$l$J$$%P%0$r=$@5!#(B 1997-03-23 Mikio Nakajima * vip.el (vip-get-ex-token, vip-get-ex-buffer, vip-get-ex-count): Use string-to-number instead of string-to-int. * skk-gadget.el (skk-date, skk-time-diff, skk-convert-ad-to-gengo, skk-convert-gengo-to-ad, skk-calc, skk-plus, skk-minus, skk-times): Use string-to-number instead of string-to-int. * skk-auto.el (skk-okuri-search, skk-remove-common): use skk-numeric-p. * skk-num.el (skk-uniq-numerals): Don't use catch and throw construction. (skk-numeric-convert-1): Use save-match-data. * skk-tut.el (skktut-quit-tutorial): ad-activate other-frame and select-frame to remove advices completely. * skk.el (skk-kill-emacs-without-saving-jisyo): Show echo area "XEmacs" when skk-xemacs is non-nil. (skk-undo-kakutei): Undo kakutei even in minibuffer. (skk-numeric-p): New inline function. 1997-03-20 Murata Shuuichirou * (vip-join-lines): Use regexp "\\c|" instead of skk-looking-at-jisx0208. 1997-03-19 Mikio Nakajima * string.el (elib-string-expand-newtext): Use match-string. * skk-num.el (skk-raw-number-to-skk-rep-1): Bug fixed. (skk-compute-numeric-henkan-key): Use match-string. * skk-viper.el (vip-forward-word-kernel, vip-backward-word-kernel): Always use forward-word or backward-word when skk-mode is non-nil. For instance, if we type `w' using forward-word or backward-word only when the following/previous character is JISX0208, -!-Davies$B$5$s$O!"8@$$$^$7$?!#(B the point would be there, Davies$B$5$s$O(B-!-$B!"8@$$$^$7$?!#(B but should be here. Davies-!-$B!"$5$s$O!"8@$$$^$7$?!#(B 1997-03-18 SAKAI Kiyotaka * skk.el (skk-save-jisyo-1): Bind enable-multibyte-characters to non-nil when calling write-region. (skk-jisyo-code): Remove description for Nemacs. * skk-tut.el (skk-tut-file): Refer to "/usr/local/share/skk/SKK.tut". * lp.el: Change file-coding-system-alist to buffer-file-coding-system-alist for XEmacs-20.1-b7. 1997-03-18 Mikio Nakajima * skk-num.el (skk-adjust-henkan-data-for-numerals): Use save-match-data. Convert raw number representation to SKK type representation. (skk-raw-number-to-skk-rep, skk-raw-number-to-skk-rep-1): New functions. 1997-03-17 Mikio Nakajima * vip.el: Apply unofficial patch enclosed in SKK 9.6 package. (provide 'vip) in the end of the file. * skk-vip.el: ** This program has not been tested yet **. (skk-delete-backward-char, skk-vip-change-mode) delete. (delete-backward-char, vip-ESC, vip-insert, vip-Insert, vip-open-line, vip-Open-line, vip-append, vip-Append, vip-overwrite): Adviced. (skk-insert-str): Use skk-insert-and-inherit. (skk-vip-mode): Simplify as SKK 10.x does not use skk-org-mode-line-format and skk-vip-change-mode and VIP 3.x does not use vip-read-string-hook. (skk-ovwrt-len): Only define if (boundp 'vip-ovwrt-limit) is non-nil. (skk-vip-mode-invoked): New variable. 1997-03-16 Mikio Nakajima * skk-viper.el (skk-looking-at-jisx0208) New function. (vip-forward-word-kernel): Adviced. Just forward-word when the following character is JISX0208. (vip-join-lines): Use skk-looking-at-jisx0208. 1997-03-15 Mikio Nakajima * skk-tree.el (skk-tree-load-hook): Use normal defvar. * skk-kcode.el (skk-kcode-load-hook): Use normal defvar. * skk-gadget.el (skk-gadget-load-hook): Use normal defvar. remove skk-month-alist declaration. * skk.el, skk-auto.el, skk-comp.el, skk-num.el: Use skk-deflocalvar. * skk-menu.el: (require 'skk). * skk-foreword.el (skk-deflocalvar, skk-defunsoft): New macro. From viper-util.el and emu.el (tm package). * skk.el: $B%M%9%H$7$F$$$J$$(B defmacro $B$K(B eval-and-compile $B$r;H$&$N$r(B $B;_$a$?!#0JA0$O$3$3$K(B eval-when-compile $B$r;H$C$F$$$?$,!">.NS(B@JAIST $B$5$s$N$4;XE&$G!"(B eval-when-compile $B$r;H$&(B -> skk.el $BFb$K$"$k%^%/%m$O>e $B$G$b(B skk-*.el $BFb$N%^%/%m$O>eB&$NJ8;z%;%C(B $B%H$,(B JISX0208 $B$@$C$?$i%9%Z!<%9$r * skk-menu.el: New file. * skk-viper.el: Viper -> SKK $B$N=g$K5/F0$5$l$?$H$-$O!"4{B8$N%P%C%U%!(B $B$rA4$FD4::$7$F(B localized minor-mode-map-alist $B$G(B SKK $B2=$5$l$F$$$J(B $B$$$b$N$r(B SKK $B$9$k$h$&$K$7$?!#(B * skk-viper.el (vip-intercept-ESC-key): adviced. $BJQ49Cf$K(B ESC $B%-!<(B $B$r2!$9$H3NDj$9$k!#(B * skk-vip.el: revival. Emacs 19.28 $B$G$O(B Viper $B$OAGD>$KF0$+$J$$(B...$B!#(B VIP $B$r;H$$$^$7$g$&!#(B * skk.el (skk-j-mode-map, skk-abbrev-mode-map, skk-zenkaku-mode-map): skk-use-vip $B$,(B non-nil $B$N$H$-$O!"(BM- $B%W%l%U%#%C(B $B%/%9$G;O$^$k%-!<%P%$%s%I$rDj5A$7$J$$$h$&$K$7$?!#(B (skk-setup-special-midashi-char): minor-mode-map-alist $B$r;HMQ$7$?(B $B%-! TAB -> $B!V"&$@$$(B6$B$1$$$d$/$M$s$I!W(B $B$J$I!#(B * skk-num.el (skk-compute-numeric-henkan-key): (enable-multibyte-characters $B$r(B t $B$K%P%$%s%I$9$k$h$&$K$7$?!#(B $B$3$NJQ?t$,(B nil $B$@$HNc$($P(B (string-match "[0-9]" "$B$@$$(B6") $B$,(B non-nil (0) $B$rJV$7$F$7$^$&!#(B 1997-03-13 Hideki Sakurada * skk-forword.el XEmacs $B$G(B skk-unread-event $B$r(B dispatch-event $B$N(B defalias $B$H$7$F$$$?$N$r;_$a!"(Bunread-command-events $B$X(B append $B$9$k(B $B7A$G!"%$%s%i%$%s4X?t$H$7$F * skk-viper.el (vip-del-backward-char-in-insert): adviced. $B"&%b!<(B $B%I!""'%b!<%I$G$NF0$-$r(B SKK $B2=!#(B $B%-!<%^%C%W$ND4@0$N$?$a$K(B vip-normalize-minor-mode-map-alist $B$H(B (setq-default minor-mode-map-alist minor-mode-map-alist) $B$r;HMQ!#(B * skk.el (skk-middle-list): New function. $BNc$($P!"(B'(A B C D) $B$N(B B $B$N8e$K(B '(X Y Z) $B$H$$$&%j%9%H$rA^F~$7!"(B'(A B X Y Z C D) $B$K$9$k!"$H(B $B$$$&:n6H$rI{:nMQ$rMxMQ$7$F8zN(NI$/9T$J$&!#(B * skk-num.el (skk-numeric-convert), skk-auto.el (skk-adjust-search-prog-list-for-auto-okuri): Use skk-middle-list. 1997-03-03 Murata Shuuichirou * skk.el: Viper $B$r(B SKK $B$h$j@h$K%m!<%I$7$F$$$F$b(B VIPER $B$,J;MQ$G$-$k(B $B$h$&$K$7$?!#(B 1997-03-02 Hideki Sakurada * skk-forword.el skk-read-event $B$K(B next-event $B$G$J$/(B next-command-event $B$r;H$&$h$&$K$7$?!#(B * skk-forword.el (skk-this-command-key): $BGQ;_!#(B * skk-isearchl.el: XEmacs $B$G!V$H$j$"$($:F0$/!W$h$&$KJQ99(B ($B$A$c$s$H(B isearch-exit $B$GH4$1$J$$$H$*$+$7$/$J$j$^$9!#(B) 1997-03-02 Murata Shuuichirou * skk-viper.el: minor-mode-map-alist $B$r;H$&(B SKK 10.x $B$r(B Viper $B$KBP(B $B1~$5$;$?!#(B * skk.el: XEmacs $B$G$N(B face $BBP1~!#(B 1997-03-01 Mikio Nakajima * skk.el $BC18lEPO?;~$K(B skk-abbrev-mode $B$d(B eval-expression $B$,;H$($J(B $B$$IT6q9g$r=$@5!#(B skk-yes-or-no-p $B$d(B skk-message $B$r;H$($k$N$K;H$C$F$$$J$+$C$?8D=j$r(B $B=$@5!#(B $B%^%/%m$O%3%s%Q%$%k;~$N$_;HMQ$7!"%m!<%I;~$ODj5A$7$J$$$h$&$KJQ99(B ($B%P(B $B%$%H%3%s%Q%$%k$7$J$$$G;H$&$3$H$O$G$-$J$/$J$j$^$7$?(B)$B!#(B * skk-tut.el (skk-tutorial) : (string< "9.4" "10.1") $B$,0U$KH?$7$F(B nil $B$rJV$9$N$G!"(Bskk-version $B$NHf3S$r?tCM$G9T$J$&$h$&$K$7$?!#(B 1997-02-26 Shuhei KOBAYASHI * skk.el: XEmacs + window-system $BBP1~!#(B (skk-background-mode): BackgroundMode $B$H$$$&(B resource $B$O(B XEmacs $B$K$O$"$j$^$;$s$N$G(B, default $B$N(B face $B$N(B 'background property $B$r;H(B $B$&$3$H$K$7$^$7$?(B. $B$^$?(B, x-color-values $B$KAjEv$9$k4X?t$O(B color-rgb-components $B$J$N$G$9$,(B, $B$3$N0z?t$O(B color-name (string) $B$G$O$J$/(B color-specifier (first-class object) $B$K$J$C$F$$$^$9(B. (skk-default-cursor-color): frame-parameters (frame-properties) $B$G$O$J$<$+(B cursor-color $B$,F@$i$l$^$;$s$N$G(B, frame-property $B$r;H(B $BMQ$7$F$$$^$9(B. (set-cursor-color): New function. (skk-change-cursor-when-ovwrt): bar-cursor $BJQ?t$K(B ovwrt-mode $B$N(B $BCM$rBeF~$9$k7A$K$7$?!#(B 1997-02-28 Mikio Nakajima * skk.el (skk-toggle-kana): $B%+%l%s%H%P%C%U%!$G:G=i$KJQ49$r9T$J$&$^(B $B$G$K"&%b!<%I$G(B skk-toggle-kana $B$r;H$C$FJ?2>L>(B -> $B%+%?%+%JJQ49$r9T(B $B$J$&$H!"%+%l%s%H%P%C%U%!$NA4$F$NJ?2>L>$,%+%?%+%J$KJQ49$5$l$F$7$^$&(B $B%P%0$r%U%#%C%/%9!#(B 1997-02-26 Mikio Nakajima * skk-isearch.el: GNU Emacs $B$GF0$+$J$+$C$?IT6q9g$r=$@5!#(B 1997-02-25 Hideki Sakurada * skk.el (skk-henkan-in-minibuff): read-from-minibuffer $B$r8F$V$H$3(B $B$m$G!"%-!<%^%C%W$H$7$F(B skk-j-mode-map $B$rEO$7$F$$$^$9$,!"$3$l$OB?J,(B $B%^%:$$$H;W$$$^$9!#C<$J$^$^$J$N$O!"(B $B?'$rIU$1$kItJ,$H(B isearch$B!#(B 1997-02-2? Mikio Nakajima * skk.el: skk-e19.el $B$r(B skk.el $B$KE}9g!#$3$NE}9g$K$h$jMW$i$J$/$J$C(B $B$?(B advice $BC#$O%*%j%8%J%k$NCf$X%^!<%8$7$^$7$?!#F1;~$K(B Emacs 18 $BBP1~(B $B%3!<%I$r=|5n!#(B (skk-search-excluding-word-pattern-func): $BFCDj$NJ8;zNs$r8D?M<-=q$K(B $B4X?t$O%a%K%e!<$+$i>e.$5$/$9$k5!G=$rIU$1$^$7$?!#$3(B $B$N5!G=$O!"$*9%$_$G%*%s(B/$B%*%U$G$-$^$9!#(B $B%^%/%m$G$J$-$c:$$k$b$N$@$1%^%/%m$G;D$7!"C1$K%$%s%i%$%s2=$rA@$C$?$b(B $B$N$O(B defsubst $B$r;H$&$h$&$K$7$^$7$?!#(B skk-isearch.el: SKK-8.x $BBP1~%3!<%I$,;D$C$F$$$?$N$G>C$7$^$7$?!#(B Mule 3 $B$G$O(B select-window-hook $B$NGQ;_$,M-NO$J$N$G!"0l1~$3$l$K$J$i(B $B$$!"(Bselect-window-hook $B$rMxMQ$7$F$$$k%3!<%I$rGQ;_$7$^$7$?!#(B $B%P%0%l%]MQ$N4X?t$N%"%I%l%9$,(B SKK ML (for user) $B$K$J$C$F$^$7$?$N$G!"(B $B$3$l$r=$@5$7$^$7$?!#(B SKK $B$r%3%s%Y%s%7%g%J%k$J%^%$%J!<%b!<%I2=$9$k$3$H$K0l1~@.8y$7$^$7$?!#(B $B;EAH$r4JC1$K8@$$$^$9$H!"(Bskk-mode $B$H$$$&%@%_!<$N%^%$%J!<%b!<%I(B (SKK $B$,5/F0$5$l$k$H!"4X?t$HF1L>$NJQ?t$,F~NO%b!<%I$K$+$+$o$i$:(B t $B$K$J$C(B $B$F$*$j!"FH<+$N%^%$%J!<%b!<%I%^%C%W$O;}$?$J$$$,!"%b!<%I%i%$%s$rA`:n(B $B$9$k%-!$lFH<+$N%^%$%J!<%b!<%I%^%C%W$r;}$C$F(B $B$*$j!"$=$l$>$l$N4X?tL>$HF1L>$NJQ?t$,(B t $B$K$J$C$?$H$-$K$=$l$>$l$N%^(B $B%$%J!<%b!<%I$,M-8z$K$J$j$^$9!#%b!<%I%i%$%s$rA`:n$9$kJQ?t$OFH<+$K;}(B $B$?$:!"Be$j$K(B skk-input-mode-string $B$K<+J,$NF~NO%b!<%I$r<($9J8;zNs(B $B$rBeF~$7!"(Bforce-mode-line-update $B$r8F$s$G%b!<%I%i%$%s$NI=<($r99?7(B $B$9$k$h$&$K$J$C$F$$$^$9!#(B skk-j-mode $B$O$+$J!&%+%J%b!<%I$NN>J}$KBP1~$9$k%^%$%J!<%b!<%I%-!<%^%C(B $B%W$r;}$C$F$$$^$9!#$3$l$O!"(Bskk-katakana $B$H$$$&JQ?t$r%-!<$K$7$F!"%-!<(B $B%\!<%IF~NOD>8e$KF~NO$5$l$kJ8;zNs$r7hDj$7$F$*$j!"%-!<%P%$%s%I$H$7$F(B $B$O0lfIW$H;W$o$l$^$9!#(B minor-mode-map-alist $B$rMxMQ$9$k$3$H$G!"(Buse-local-map $B$K(B defadvice $B$9$k!"$H$$$&$h$&$J%H%j%C%-!<$J$3$H$r$;$:$K:Q$`$h$&$K$J$j$^$7$?$7!"(B skk-emulate-original-map $B$,4JC1$K$J$C$?$j$H!"7k9=%=!<%9$O4JAG2=$5(B $B$l$?$h$&$J5$$,$7$^$9!#(B $B$=$NB>!"(BEmacs Lisp Manual $B$rFI$s$G!"(BEmacs $B$N%3%s%Y%s%7%g%J%k$J%M!<(B $B%_%s%05,B'$K$G$-$k$@$1$J$i$&$h$&$K$7!"$^$?!"$=$l0J30$G$b$G$-$k$@$1(B $BE}0lE*$J%M!<%_%s%0$rIU$1$k$h$&$K$7$F$$$k$N$G!"JQ?tL>!"4X?tL>$O!"=>(B $BMh$N$b$N$HJQ99$5$l$F$k$b$N$,?'!9$"$j$^$9!#$3$l$O$* * experimental/skk-jisx0201.el (skk-jisx0201-search-and-replace): New function. (skk-hiragana-to-jisx0201-region): Use `skk-jisx0201-search-and-replace' and bug fixed. (skk-katakana-to-jisx0201-region): Ditto. 1999-10-31 Mikio Nakajima * skk-autoloads.el: Add autoload of `skk-jisx0201-mode', `skk-toggle-katakana' and `skk-jisx0201-henkan'. * SKK-MK (SKK_MODULES): Add `skk-jisx0201' and `skk-hankaku-mode'. * experimental/skk-hankaku-mode.el (skk-hankaku-henkan, skk-hankaku-region, skk-hiragana-to-hankaku-region, skk-katakana-to-hankaku-region): New function. (skk-toggle-zenkaku-hankaku): Convert hiragana/katakana in midasi into hankaku katakana in $B"&(B mode. 1999-10-30 Tsukamoto Tetsuo * experimental/skk-hankaku-mode.el: New experimental program. 1999-10-27 FUKANO Masaaki * doc/skk.texi ($BF~NO%b!<%I$r<($9%+!<%=%k?'$K4X$9$k@_Dj(B): typo fixed. 1999-10-25 Tsukamoto Tetsuo * skk.el (skk-status-indicator): New variable which decides where to show the current status of SKK. (skk-setup-modeline): New function. (skk-mode): Call it when `skk-init-file' is loaded. Set the value of `skk-input-mode-string' on entering/exiting skk-mode, if `skk-status-indicator' is left. 1999-10-24 Tsuyoshi AKIHO * skk-leim.el (default-input-method): Set `default-input-method' string "japanese-skk" instead of the symbol. 1999-10-23 Mikio Nakajima * skk-autoloads.el: Add autoload of `skk-abbrev-search'. * skk-vars.el: Ditto. * experimental/skk-study.el (skk-study-last-update): New internal variable. (skk-study-last-read): Ditto. (skk-study-time-lessp): New function. (skk-study-save): Refer to `skk-study-last-read', and refer to and set `skk-study-last-save'. (skk-study-read): Set `skk-study-last-read. * SKK-MK (SKK_MODULES): Add skk-abbrev. * experimental/skk-abbrev.el: New experimental program. * skk.el (skk-read-from-minibuffer-function): New user variable. (skk-henkan-in-minibuff): Use `skk-read-from-minibuffer-function'. 1999-10-23 Takeshi Ohmura * make.bat: set EMACS and PREFIX default value to be proper to Meadow 1.10. * READMEs/README.win: Update for Meadow 1.10. 1999-10-22 Mikio Nakajima * skk.el (skk-make-temp-file): New `skk-file-exists-and-writable-p'. Provide "~/tmp" as last choice of working directory. * skk-foreword.el (skk-file-exists-and-writable-p): New inline function. 1999-10-20 Mikio Nakajima * experimental/skk-lookup.el: Require poe.el for `defalias-maybe'. Define `skk-okurigana-prefix' as an alias for `skk-auto-okurigana-prefix' if `skk-okurigana-prefix' is not defined. (skk-lookup-option-alist): New 2th element, search method for okuri-ari and `skk-process-okuri-early' is nil. New 3th element, search method for okuri-ari and `skk-process-okuri-early' is non-nil. Make meaning of 4th element reverse. Not seach if nil. Change :type accordingly. (skk-lookup-default-option-list): New 1th element, search method for okuri-ari and `skk-process-okuri-early' is nil. New 2th element, search method for okuri-ari and `skk-process-okuri-early' is non-nil. Make meaning of 3th element reverse. Not seach if nil. Change :type accordingly. (skk-lookup-get-method): Get proper method according to okurigana and `skk-process-okuri-early'. (skk-lookup-get-nonsearch-sex): Change index accordingly. (skk-lookup-get-pickup-regexp): Ditto. (skk-lookup-get-split-regexp): Ditto. (skk-lookup-process-okurigana): New function. (skk-lookup-search): Use `skk-lookup-process-okurigana'. (skk-lookup-process-heading): Ditto. (skk-lookup-test-regexp): Add doc string. (skk-lookup-pickup-headings): Ditto. * experimental/skk-study.el (skk-study-save): Check coding-system by `find-coding-system', too. * skk.el (skk-auto-okurigana-prefix): Rename to `skk-okurigana-prefix'. (skk-remove-common): Use `skk-okurigana-prefix'. 1999-10-17 Mikio Nakajima * experimental/skk-study.el (skk-study-update): make-ring for `skk-study-data-ring' if nil. * experimental/skk-lookup.el (skk-lookup-option-alist): New 2th element, search method for okuri-nasi. And new 3th element, S expression not to search. (skk-lookup-default-option-list): Likewise. (skk-lookup-get-nonsearch-sex): New inline function. (skk-lookup-get-method): Pick up 1th element when okuri-ari, otherwise 0th. (skk-lookup-search): Change for `skk-lookup-option-alist' and `skk-lookup-default-option-list'. (skk-lookup-process-heading): Likewise. * SKK-MK (SKK-MK-config-package): Removed. (SKK-MK-config): Ditto. (default-load-path): Ditto. 1999-10-16 Mikio Nakajima * skk-leim.el: Specify `japanese-skk' and `japanese-skk-auto-fill' as string for `register-input-method' to work around Emacs bug. 1999-10-15 Mikio Nakajima * skk-num.el (skk-num-recompute): Use `with-temp-buffer' instead of `save-excursion'. * skk.el (skk-reread-private-jisyo): Rename optional argument QUIET to FORCE. 1999-10-15 Takao KAWAMURA , Mikio Nakajima * experimental/skk-study.el (skk-study-read): New optional argument FORCE. 1999-10-15 Mikio Nakajima * experimental/skk-study.el (skk-study-update): Bug fixed. 1999-10-12 Mikio Nakajima * skk-look.el (skk-look-command): Change defcustom type to `file'. * skk-isearch.el (skk-isearch-mode-cleanup): Remove minibuffer hooks. * skk.el (skk-use-relation, skk-use-rdbms): Remove experimental user options. (skk-regularize, skk-purge-from-jisyo, skk-mode, skk-public-jisyo-has-entry-p): Remove `skk-use-relation' and `skk-use-rdbms' related codes. 1999-10-11 Mikio Nakajima * make.bat: Don't set `PACKAGEDIR' and `V_S_LISPDIR' environment variables. 1999-10-10 Mikio Nakajima * experimental/skk-study.el (skk-study-search-1): New function. (skk-study-search): Use `skk-study-search-1'. (skk-study-update): If current update data is just same as the last one, don't save the current one. (skk-study-save): Keep fundamental mode for skk-study-file not to fontify by font-lock.el unnecessarily. (skk-study-read-1): Modify VERSION-STRING accordingly. Check `skk-jisyo-code' by `find-coding-system', too. (skk-study-convert-alist-format): Removed. (skk-study-save): Not to use `skk-study-convert-alist-format'. (skk-kakutei-initialize, skk-undo-kakutei): New advices. 1999-10-07 Mikio Nakajima * skk.el (skk-jisyo-code): :type fixed. (skk-rom-kana-base-rule-list): Doc modified. (skk-rom-kana-rule-list): Ditto. 1999-10-06 Tomotaka SUWA (skk-make-temp-file): Bug fixed. 1999-10-06 Mikio Nakajima * skk.el (skk-remove-common): Assign proper value to `skk-char-okurigana'. * SKK-MK (EMU_PREFIX): get environment variable `EMU_PREFIX' first. 1999-10-05 Mikio Nakajima * experimental/skk-study.el (skk-study-file): Use `convert-standard-filename'. (skk-study-backup-file): Ditto. (skk-study-working-buffer): Remove. (skk-study-read-1): Use `with-temp-buffer' instead of `save-excursion'. Check with `find-coding-system' if `coding-system-p ' returns nil. * experimental/skk-lookup.el (skk-lookup-test-regexp): New function. (skk-lookup-option-alist): Add "IWAKOKU" entry. 1999-10-04 Mikio Nakajima * experimental/skk-lookup.el (skk-lookup-get-method): Search `skk-lookup-option-alist' with index attaching prefix of book's name to NAME. (skk-lookup-get-pickup-regexp): Ditto. (skk-lookup-get-split-regexp): Ditto. (skk-lookup-search-agents): Use `copy-sequence' instead of `copy-list' for compatibility. (skk-lookup-option-alist): Add entries of jedict, GENIUS, GN99EP01, GN99EP02 and NEWANC. (skk-lookup-search): Bug fixed and slightly simplified. * skk-autoloads.el: Update autoloads. 1999-10-03 Mikio Nakajima * skk-vars.el: Update autoloads. * doc/skk.texi ($B$*4j$$(B): Add skk-dic ML e-mail address. * experimental/skk-lookup.el (skk-lookup-pickup-headings): Bind `lookup-gaiji-alternate' to null string and not bind `lookup-enable-gaiji' to nil. (skk-lookup-search): Ditto. New temporary variable PICKUP-REGEXP and SPLIT-REGEXP. Do not use `skk-lookup-process-heading' when both PICKUP-REGEXP and SPLIT-REGEXP is nil. (skk-lookup-process-heading): Simplify slighly. New arguments PICKUP-REGEXP and SPLIT-REGEXP. Discard temporary variable of the same names. Process properly when only SPLIT-REGEXP is specified and PICKUP-REGEXP is nil. * skk.el (skk-mode): Require skk-leim.el when running Mule3, Mule4, XEmacs 20.3 or later. * skk-leim.el: Set `current-language-environment' to "Japanese". Set `default-input-method' to `japanese-skk'. * skk-gadget.el (skk-number-style): Modify document. * skk-tut.el (skk-tut): New group. * skk-isearch.el (skk-isearch-mode-string-alist): Tagify. * (skk-isearch-mode-string-alist): Specify type and tagify. * skk-num.el (skk-num-type-alist): Specify type and tagify. * skk-gadget.el (skk-number-style): Ditto. * skk-server.el (skk-servers-list): Ditto. * skk-kakasi.el (skk-use-kakasi): Bind default variable to return variable of `(exec-installed-p "kakasi")'. * skk-num.el (skk-num-type5-kanji): Bug fixed. * experimental/skk-lookup.el (skk-lookup-search-agents): Use `copy-list' instead of `coyu-sequence'. 1999-10-02 Mikio Nakajima * experimental/skk-lookup.el (skk-lookup-pickup-pattern, skk-lookup-split-pattern): Removed. (skk-lookup-search-agents, skk-lookup-option-alist, skk-lookup-default-option-list, skk-lookup-search-modules): New user variables. (skk-lookup-agent-list, skk-lookup-default-module, skk-lookup-module-list): New internal variables. (skk-lookup-get-method, skk-lookup-get-pickup-regexp, skk-lookup-get-split-regexp): New inline functions. (skk-lookup-search): Use `skk-lookup-default-module'. Bind `lookup-enable-gaiji' to nil not to put out gaiji. Get search method by each dictionary. (skk-lookup-process-heading): Get regexp from name of dictionary. (skk-lookup-default-module, skk-lookup-module-list, skk-lookup-new-module, skk-lookup-agent-list, skk-lookup-pickup-headings): New functions. 1999-09-30 Mikio Nakajima * skk-num.el: Require cl only when compiling. * experimental/skk-lookup.el: Require cl when compiling. (skk-lookup-pickup-pattern): Change regexp for multiple `$B!Z(B' and `$B![(B' pair. (skk-lookup-process-heading): New function. (skk-lookup-search): Use `skk-lookup-process-heading'. * skk-foreword.el (skk-get-current-candidate-simply): Add error checking. * skk.el (kill-buffer): Do `skk-kakutei' only when `kill-buffer' is called interactively. 1999-09-29 Mikio Nakajima * experimental/skk-lookup.el: New file. 1999-09-28 Mikio Nakajima * doc/skk.texi (SKK$B4XO"%=%U%H%&%'%"(B): Add `skkfep$BFbB"(Bjvim' node. 1999-09-27 Mikio Nakajima * experimental/tut-code/skk-tutcdef.el (skk-tutcode-use-touch16+): Add Touch16+ code to `skk-rom-kana-rule-list' when `skk-tutcode-use-touch16+' is non-nil. * experimental/tut-code/skk-tutcode.el (skk-tutcode-display-code-1): Use `skk-char-octet' instead of `char-octet'. (skk-tutcode): New group. (skk-tutcode-use-touch16+): New user variable. 1999-09-26 Mikio Nakajima * doc/skk.texi (SKK$B4XO"%=%U%H%&%'%"(B): Add `SKK95' node. 1999-09-25 Mikio Nakajima * SKK-MK: Rewritten to get Emacs Lisp variables from shell variables in the command line. * skk-kcode.el (skk-input-by-code-or-menu-jump): Use temporary variable `REST' and `CH'. * tinyinstall.el (tinyinstall-add-load-path): New function. * skk-autoloads.el (skk-submit-bug-report): Add `skk-submit-bug-report' entry. * skk-develop.el: Move from experimental directory. (skk-submit-bug-report): Take from skk.el. Define Wanderlust as mail-user-agent when `mail-user-agent' is `wl-user-agent'. (skk-ml-address): Take from skk.el. * skk-kcode.el (skk-display-code): Use `skk-char-octet' instead of `char-octet'. * skk.el (skk-auto-okurigana-prefix): Ditto. (skk-set-henkan-point): Ditto. (skk-make-temp-file): Use `temporary-file-directory'. * skk-viper.el (skk-jisx0208-p): Removed. 1999-09-24 Mikio Nakajima * skk-foreword.el (skk-str-length, skk-substring, skk-read-event, skk-char-to-string, skk-ascii-char-p, skk-str-ref, skk-jisx0208-p, skk-jisx0208-numeric-char-p): Define with `skk-defsubst-cond'. (skk-make-char, skk-charsetp, skk-jisx0208-to-ascii): Define with `skk-defun-cond'. * skk-kcode.el (skk-display-code): New function. (skk-display-code-for-char-at-point): Use `skk-display-code'. * SKK-MK (SKK-MK-config): Recalc `SKK_LISPDIR' variable when `PREFIX' is specified in command line. * doc/skk.texi (SKK$B4XO"%=%U%H%&%'%"(B): Add `dbskkd-cdb' node. 1999-09-23 Mikio Nakajima * experimental/skk-develop.el: `def-edebug-spec' for `skk-defun-cond', `skk-defmacro-cond' and `skk-defsubst-cond'. * experimental/skk-dcomp.el: New file. * skk.el (skk-henkan-face): Simply specify 'highlight. (skk-faces): New group. (skk-henkan-face-on): Define using `defun' instead of `skk-defun-cond'. (skk-henkan-face-off): Ditto. (skk-henkan-face-on): Use `skk-face-on'. (skk-detach-extent): New function. (skk-henkan-face-off): Use 'skk-detach-extent'. (skk-set-jisyo-code): Remove. (skk-get-jisyo-buffer): Not to use `skk-set-jisyo-code'. * skk-foreword.el (skk-defmacro-cond): New macro. (skk-face-on): New macro. * skk-tut.el (skk-tut-section-face): Use `defface' instead of `defcustom'. (skk-tut-do-it-face): Ditto. (skk-tut-question-face): Ditto. (skk-tut-key-bind-face): Ditto. (skk-tut-hint-face): Ditto. 1999-09-22 TSUMURA Tomoaki * skk.el (skk-get-jisyo-buffer): Add check using `find-coding-system' to check using `coding-system-p'. (skk-save-jisyo-1): Ditto. 1999-09-22 Mikio Nakajima * skk.el (skk-face-on): Moved from skk-dcomp.el. (skk-detach-extent): Ditto. (skk-henkan-face-on): Use `skk-face-on'. (skk-henkan-face-off): Use `skk-detach-extent'. * SKK-CFG: Add `APEL_SPECIFIC_LISPDIR' entry. * SKK-MK: Ditto. Require `tinyinstall.el'. Load `SKK-CFG' before cunstructing `load-path'. Add `APEL_SPECIFIC_LISPDIR' directory to `load-path' if `APEL_SPECIFIC_LISPDIR' is existing directory. * tinyinstall.el: New file. 1999-09-21 Masahiko Sato * vip.el (vip-escape-to-emacs): Bug fix. Use (buffer-name old-buff) to check if the buffer OLD-BUFF still exists. 1999-09-20 Mikio Nakajima * skk.el (skk-submit-bug-report): Remove `skk-use-rdbms' from LIST (because it is an experimental option). 1999-09-20 Yuh Ohmura * make.bat: set `PREFIX' variable. * READMEs/README.win: Add description about `PACKAGEDIR'. 1999-09-20 Rei FURUKAWA * skk-foreword.el (skk-make-char): Bug fixed. 1999-09-19 Mikio Nakajima * skk.el (skk-get-jisyo-buffer): Not to use temporary variable `FILE'. Use first argument `FILE' directly instead. 1999-09-17 Mikio Nakajima * SKK-MK (SKK-MK-running-xemacs): New constant. (SKK-MK-texinfo-coding-system): Use `SKK-MK-running-xemacs'. (SKK-MK-install): Call `SKK-MK-cleanup-trouble-makers' when either `SKK-MK-running-xemacs' and `SKK-MK-cleanup-trouble-makers' are non-nil. (SKK-MK-cleanup-trouble-makers): Bug fixed. Bind default variable to nil. (SKK-MK-running-xemacs): Declare on top of file. (SKK-MK-texinfo-coding-system): Ditto. (SKK_MODULES): Add `skk-vars' if `skk-leim.el' is dumped into XEmacs. (skk-vars.el): Revive (for XEmacs dumped with non-package SKK 10.38). * Makefile (CHMOD): New variable. (checkin): New entry. (tar): Refer to `CHMOD' variable. 1999-09-16 Yuh Ohmura * READMEs/README.win: New file. 1999-09-16 Mikio Nakajima * experimental/skk-tutcdef.el: Apply patch of14294.63921.879835.8921F@osaka.email.ne.jp. * SKK-CFG: Add `SKK-MK-cleanup-trouble-makers' entry. * make.bat: Change default EMACS variable to `c:\usr\meadow\1.00\bin\meadow95.exe'. * SKK-MK (SKK-MK-config): Recalculate `LISPDIR', `SKK_DATADIR' and `SKK_INFODIR' when `PREFIX' is specified in command line, and `SKK_LISPDIR' when `LISPDIR is done.' (SKK-MK-config-package): Recalculate `PACKAGE_INFODIR', `SKK_PACKAGE_DATADIR' and `SKK_PACKAGE_LISPDIR' when `PACKAGEDIR' is specified in command line. (SKK-MK-cleanup-trouble-makers): New function. (SKK-MK-install): Not to `cd' DOCDIR, ETCDIR and `..'. (SKK-MK-install-package): Ditto. Call `SKK-MK-cleanup-trouble-makers' if `SKK-MK-cleanup-trouble-makers' is non-nil. (SKK-MK-texinfo-format): Bound `buffer-read-only' to nil. Expand file name of each arg in DOCDIR. * skk-tut.el: Change Iida San's mail address. (skktut-init-variables-alist): Bug fixed. (skk-tut-file): Specify `/usr/local/share/skk' directory for non-package install instead of `data-directory'. * doc/skk.texi: Add `@directry' for XEmacs package install. Remove obsolete `skk-insert-[aiue]' descriptions. 1999-09-15 Mikio Nakajima * skk-foreword.el (skk-package-data-directory): New constant. * skk-tut.el: Require skk.el. (skk-tut-file): Search package installed data file for XEmacs referring to `skk-package-data-directory'. (skk-tut-file-alist): Refer to `skk-tut-file'. * skk.ex: New file to make tarball easily. * Move all lisp program to top directory. * SKK-MK, SKK-CFG: Totally rewritten for easy configurations referring to WL-MK of Wanderlust. * SKK-ELS: discarded. * Makefile: Change for new SKK-MK. * make.bat: Ditto. * skk.el (exit-minibuffer): Adjust `minibuffer-setup-hook' and cursor color before doing actual job. (skk-reread-private-jisyo): Use `with-current-buffer' instead of `save-excursion'. * vip.el: Require poe.el for `convert-standard-filename'. (vip-insert-point, vip-com-point): Set initial value to nil to keep buffer local variable. (vip-move-marker-locally): New macro. (vip-Region, vip-backward-Word, vip-backward-char, vip-backward-paragraph, vip-backward-sentence, vip-backward-word, vip-beginning-of-line, vip-bol-and-skip-white, vip-change-mode, vip-end-of-Word, vip-end-of-word, vip-find-char, vip-find-char-backward, vip-find-char-forward, vip-forward-Word, vip-forward-char, vip-forward-paragraph, vip-forward-sentence, vip-forward-word, vip-goto-char-backward, vip-goto-char-forward, vip-goto-col, vip-goto-eol, vip-goto-line, vip-goto-mark-subr, vip-line, vip-next-line, vip-next-line-at-bol, vip-paren-match, vip-previous-line, vip-previous-line-at-bol, vip-region, vip-repeat-find, vip-repeat-find-opposite, vip-search-backward, vip-search-forward, vip-window-bottom, vip-window-middle, vip-window-top): Use `vip-move-marker-locally' instead of `move-marker'. (vip-escape-to-emacs): Use `eq' instead of `equal' to compare buffer type lisp objects. 1999-09-11 Mikio Nakajima * lisp/vip.el (vip-startup-file): `convert-standard-filename' takes regular UNIX filename only. 1999-09-10 Mikio Nakajima * lisp/skk.el (skk-init-file, skk-jisyo, skk-backup-jisyo, skk-record-file, skk-emacs-id-file): Use `convert-standard-filename'. 1999-09-04 GUNJI Takao * experimental/tut-code/skk-tutcode.el (skk-tutcode-display-code-1): Bug fixed. 1999-09-03 Mikio Nakajima * lisp/skk-foreword.el (skk-uninsertable-p): Removed. * lisp/skk.el (skk-insert): Do not use `skk-uninsertable-p'. 1999-09-02 Mikio Nakajima * lisp/skk-develop.el: Move to experimental directory. * lisp/skk-isearch.el: Require skk.el. Modify install note for isearch-mode-end-hook. * lisp/skk.el (skk-update-jisyo-1): Bug fixed. 1999-08-31 Mikio Nakajima * lisp/SKK-ELS (skk-modules): Add skk-autoloads to `skk-modules'. * lisp/SKK-MK (config-skk-package): Remove skk-autoloads from `skk-modules'. * lisp/skk-foreword.el (skk-erase-prefix): When error is occured by deleting `skk-prefix', initialize `skk-kana-start-point', `skk-prefix' and `skk-current-rule-tree'. * lisp/skk.el (skk-delete-okuri-mark): Check `skk-okurigana-start-point' is a marker. (skk-mode): Require skk-autoloads. 1999-08-30 TSUMURA Tomoaki * lisp/skk-tut.el (skktut-init-variables-alist): Bug fixed. 1999-08-30 Mikio Nakajima * lisp/skk.el (skk-delete-backward-char): Delete `*' and initialize okuri-ari related variables for okuri-ari. 1999-08-29 Mikio Nakajima * lisp/skk-develop.el: Created. * lisp/skk-tut.el (skktut-init-variables-alist): Remove `skk-use-vip' entry. * lisp/skk.el (skk-save-jisyo-original): Initialize `skk-update-jisyo-count'. (skk-update-jisyo-original): Do not initialize `skk-update-jisyo-count'. (skk-kana-cleanup-command-list): New constant. (skk-uninsertable-p): Move skk-foreword.el and make it inline. Define with `skk-defsubst-cond' and check all extents, not just text-properties for XEmacs. (skk-henkan-face-on, skk-henkan-face-off): Use `skk-defun-cond. Use extent for XEmacs. (skk-change-cursor-when-ovwrt): Use `skk-defun-cond. (skk-save-jisyo-original): Call `fillarray' instead of `make-vector'. * lisp/skk-foreword.el (skk-pre-command): Use `skk-kana-cleanup-command-list'. (skk-terminal-face-p): Move to skk.el. (skk-defun-cond, skk-defsubst-cond): New macros (borrowed from poe.el). * lisp/skk-viper.el (skk-viper-or-vip): Rename to `skk-viper-use-vip-prefix'. (skk-viper-normalize-map-function, skk-viper-advice-select, viper-hide-replace-overlay): Use `skk-viper-use-vip-prefix'. 1999-08-29 Masahiko Sato * vip.el (vip-delete-backward-char): skk-mode $B$,(B t $B$N$H$-$N=hM}$r(B $B2~NI!#(B 1999-08-28 Masahiko Sato * vip.el (skk-pre-command): defadvice $B$G(B skk-foreword.el $B$G$NDj5A(B $B$rJQ99!#(B * skk-foreword.el (skk-pre-command): this-command $B$,(B vip-delete-backward-char $B$N>l9g$N=hM}$r(B vip.el $B$K0\$7$?!#(B 1999-08-27 Masahiko Sato * vip.el (vip-skk-mode-on): (add-hook 'pre-command-hook 'skk-pre-command nil 'local) $B$rDI2C!#(B (vip-skk-mode-off): $B0J2<$N9T$r:o=|(B (setq skk-mode nil) (vip-skk-mode-off): (if skk-abbrev-mode (skk-j-mode-on)) $B$r@hF,$KDI2C!#JQ?t(B vip-skk-abbrev-mode $B$,ITMW$K$J$C$?!#(B * skk-foreword.el (skk-pre-command): skk-pre-command $B$r * skk.el: vip $B4XO"$N%3!<%I$r$9$Y$F:o=|!#(B (skk-mode): $B:G=i$K(B skk-mode $B$KF~$C$?$H$-!'(B (require 'skk-autoloads) (if skk-use-numeric-conversion (require 'skk-num)) $B$rDI2C(B. (skk-input-mode-string): buffer local $B$K$7$?!#M}M3$OJ#?t$N(B mode line $B$,$"$k$H$-!"B>$N(B mode line $B$K1F6A$7$J$$$h$&$K$9$k$?$a!#(B (skk-update-jisyo-original): $BCzEY(B skk-jisyo-save-count $B2s$@$1<-=q(B $B$r99?7$7$?$H$-$K%;!<%V$9$k$h$&$K$7$?!#$3$l$^$G$O!"Nc$($P!"(B skk-jisyo-save-count $B$,(B 50 $B$J$i$P(B 51 $B2s99?7$7$?$H$-$K<-=q$,%;!<%V(B $B$5$l$F$$$?!#(B * skk-foreword.el (skk-erase-prefix): skk-kana-start-point $B$,(B (point-max) $B$+$I$&$+$r%A%'%C%/$9$k$h$&$K$7$?!#(B * skk-autoloads.el: (provide 'skk-autoloads) $B$rDI2C!#(B (autoload 'skk-version "skk" nil t nil) $B$r(B comment out$B!#(B * vip.el: minor mode $B$H$7$F 12b (vip-info-on-file): line number $B$N7W;;$r=$@5!#(B (vip-delete-backward-char): $B:G8e$NItJ,$r0J2<$N$h$&$KJQ99!#(B (if (and skk-mode (skk-get-prefix skk-current-rule-tree)) (skk-erase-prefix 'clean) (delete-backward-char val t)))) 1999-08-19 Yuh Ohmura * lisp/skk.el (skk-rom-kana-base-rule-list): Remove `("mm" "c" ("$B%C(B" . "$B$C(B"))' entry. * (skk-rom-kana-rule-list): Add `("mm" "m" ("$B%s(B" . "$B$s(B"))' entry to insert $B!V$,$s$^!W(B by "gamma". 1999-08-19 Mikio Nakajima * lisp/skk-look.el (skk-look-1): Bug fixed. 1999-08-19 GUNJI Takao * lisp/skk.el (skk-kuten-touten-alist): Typo and bug fixed. * (skk-rom-kana-base-rule-list): Bug fixed. * (skk-insert): Enable to include same string as `skk-start-henkan-char' in car of `skk-rom-kana-base-rule-list'. 1999-08-18 TSUMURA Tomoaki * lisp/skk-foreword.el (skk-substring): For mule2. Bug fixed. 1999-08-18 Mikio Nakajima * lisp/skk.el (skk-henkan-face-on): Omit check whether `skk-henkan-start-point' and `skk-henkan-end-point' have really buffer local markers of current buffer. * Do not use CBUF temporary variable. 1999-08-17 SAKAI Kiyotaka * lisp/skk.el (skk-uninsertable-p): New function. * (skk-insert): Use `skk-uninsertable-p' to check if point is really insertable or not. 1999-08-16 Mikio Nakajima * lisp/skk-viper.el (skk-jisx0208-p): Can use on Mule 2 or earlier. * (viper-join-lines): Use `progn' instead of `skk-save-point'. * (vip-join-lines): Ditto. * lisp/skk-vip.el (skk-jisx0208-p): New inline function. * (vip-join-lines): Adviced. Remove white spaces that exists between the joined line if characters of both side are JISX0208. 1999-08-15 Mikio Nakajima * lisp/SKK-ELS: Remove unnecessary `progn'. * Require vip.el even if there is viper.el. * Check 'berkdb feature to examine XEmacs has the database feature. * lisp/skk-vip.el (vip-change-mode-to-vi): Adviced. If `skk-mode' is non-nil, kakutei and turn on skk-latin-mode. * lisp/skk-autoloads.el (skk-vip-mode): Add autoload definition. 1999-08-02 IIDA Yosiaki * lisp/skk-kcode.el (skk-input-by-code-or-menu): Bug fixed. 1999-04-11 Mikio Nakajima * experimental/skk-study.el: New experimental program. * lisp/skk.el (skk-kana-input): Use `skk-get-prefix' to access skk-prefix. (skk-menu-modified-user-option): Removed. 1999-04-10 Mikio Nakajima * lisp/skk-server.el (skk-server): Change group prefix to `skk-server-'. (skk-report-server-response): Renamed to `skk-server-report-response'. (skk-remote-shell-program): Renamed to `skk-server-remote-shell-program'. * lisp/skk-obsolete.el (skk-obsolete-check-all-files): New command. (skk-obsolete-check-all-files-1): New function. (skk-obsolete-check): Renamaed to `skk-obsolete-check-1'. (skk-obsolete-check): Cover function/command for `skk-obsolete-check-1'. Do not check all relative files (check one file per one command session). Enable to designate filename interactively. * lisp/skk-num.el (skk-num): Change group prefix to `skk-num-'. (skk-numeric-conversion-float-num): Rename to `skk-num-convert-float'. (skk-update-jisyo-for-numerals): Renamed to `skk-num-update-jisyo'. (skk-compute-numeric-henkan-key): Renamed to `skk-num-compute-henkan-key'. (skk-numeric-convert): Renamed to `skk-num-convert'. (skk-numeric-convert*7): Renamed to `skk-num-convert*7'. (skk-raw-number-to-skk-rep): Renamed to `skk-num-rawnum-exp'. (skk-raw-number-to-skk-rep-1): Renamed to `skk-num-rawnum-exp-1'. (skk-flatten-list): Renamed to `skk-num-flatten-list'. (skk-jisx0208-latin-num-str): Renamed to `skk-num-jisx0208-latin'. (skk-shogi-num-str): Renamed to `skk-num-shogi'. (skk-recompute-numerals): Renamed to `skk-num-recompute'. (skk-recompute-numerals-key): Renamed to `skk-num-recompute-key'. (skk-uniq-numerals): Renamed to `skk-num-uniq'. (skk-init-numeric-conversion-variables): Renamed to `skk-num-initialize'. (skk-numeric-midasi-word): Renamed to `skk-num-henkan-key'. (skk-kanji-num-str): Renamed to `skk-num-type2-kanji'. (skk-kanji-num-str2): Renamed to `skk-num-type3-kanji'. (skk-kanji-num-str2-subr): Renamed to `skk-num-type3-kanji-1'. (skk-kanji-num-str3): Renamed to `skk-num-type5-kanji'. (skk-kanji-num-str3-subr): Renamed to `skk-num-type5-kanji-1'. (skk-adjust-numeric-henkan-data): Renamed to `skk-num-process-user-minibuf-input'. * lisp/skk.el (skk-kakutei-cleanup-henkan-buffer): Renamed to `skk-kakutei-cleanup-buffer' (Shorten its name). * lisp/skk-vip.el (skk-kakutei-cleanup-henkan-buffer): Likewise. * lisp/skk-num.el (skk-last-num-list, skk-init-numeric-conversion-variables): Remove `skk-last-num-list' (Merged into `skk-last-henkan-data'). * lisp/skk-foreword.el (skk-mode-off): Remove `skk-last-henkan-results'. * experimental/dbm/skk-dbm.el (skk-dbm-update-jisyo): Likwise. * lisp/skk.el (skk-setup-auto-paren): Remove unnecessary temporary variable `cell'. (skk-update-jisyo-original): Remove temporary variable `last'. Add `henkan-buffer'. (skk-search-jisyo-file): Add temporary variable `henkan-buffer'. (skk-kakutei): Remove `skk-last-henkan-results'. (skk-last-kakutei-henkan-key, skk-henkan-1, skk-previous-candidate): Remove `skk-last-kakutei-henkan-key'. (skk-last-henkan-key, skk-last-henkan-okurigana, skk-last-henkan-list, skk-last-okuri-char): Merged into `skk-last-henkan-data'. (skk-previous-candidate, skk-undo-kakutei): Use `skk-get-last-henkan-data'. (skk-kakutei-save-and-init-variables): Renamed to `skk-kakutei-initialize' (Shorten its name). * lisp/skk-foreword.el (skk-get-last-henkan-data): New inline function. * lisp/skk-tut.el (skktut-end-tutorial): Remove unnecessary temporary variable `exit'. * experimental/skk-attr.el (skk-attr-default-update-function): Removed. * lisp/skk.el (skk-search-jisyo-file): Funcall `skk-search-end-function' instead of `skk-attr-search-function'. * experimental/dbm/skk-dbm.el (skk-dbm-search-jisyo-database): Likewise. * lisp/skk.el (skk-update-jisyo-original): Funcall `skk-update-end-function' instead of `skk-update-relation. * experimental/dbm/skk-dbm.el (skk-dbm-update-jisyo): Likewise. * lisp/skk.el (skk-search-end-function, skk-update-end-function): New user variables. 1999-04-08 Mikio Nakajima * lisp/skk.el (skk-mode): Do not funcall `skk-viper-normalize-map-function' (as it is called in skk-viper.el). * lisp/skk-tut.el (skktut-enable-tutmap): Bind `inhibit-quit' to t. (skktut-disable-tutmap): Likewise. * lisp/skk-kakasi.el (skk-gyakubiki-region): Do not use `combine-after-change-calls'. (skk-gyakubiki-katakana-region): Likewise. (skk-hurigana-region): Likewise. (skk-hurigana-katakana-region): Likewise. (skk-romaji-region): Likewise. * lisp/skk-tut.el (skktut-enable-tutmap, skktut-disable-tutmap): Use `set-modified-alist'. * lisp/skk-viper.el (skk-viper-normalize-map): Likewise. * lisp/skk-server.el (skk-adjust-search-prog-list-for-server-search): Use `remove-alist'. 1999-04-07 Mikio Nakajima * lisp/SKK-CFG: Search APEL installed directory and add it to load-path. 1999-04-05 Mikio Nakajima * lisp/skk-foreword.el: Require alist.el. * lisp/skk.el: Use `set-modified-alist' for minor-mode-map-alist. (skk-henkan-show-candidates): Print null message to clear out candidates in echo area after a candidate are selected. (skk-setup-auto-paren): Use `remove-alist'. 1999-04-03 Mikio Nakajima * lisp/skk.el (minibuffer-exit-hook): Use `remove-hook' instead of `remove-local-hook'. * lisp/skk-foreword.el (skk-mode-off): Likewise. * lisp/skk.el (abort-recursive-edit, query-replace-regexp, query-replace, minibuffer-keyboard-quit, skk-mode, skk-henkan-in-minibuff, minibuffer-exit-hook): Use `add-hook' instead of `add-local-hook'. * lisp/skk-obsolete.el (skk-obsolete-function-alist): Add `(skk-set-cursor-color-properly . skk-set-cursor-properly)' entry. 1999-03-27 Mikio Nakajima * lisp/skk-look.el (skk-look-1): Do not output null candidate. (skk-look-working-buffer): Downcase its name. 1999-03-27 Yuh Ohmura * lisp/make.bat: Created. 1999-03-26 Mikio Nakajima * lisp/skk-kcode.el (skk-input-by-code-or-menu-jump): Use `?\040' instead of `?\ '. 1999-03-25 Mikio Nakajima * experimental/dbm/skk-dbm.el (skk-dbm-make-jisyo): Use `insert-file-contents-as-coding-system' instead of `insert-file-contents'. 1999-03-22 SUZUKI Hitoshi * lisp/skk-look.el (skk-look-1): Bug fixed. 1999-03-22 Mikio Nakajima * lisp/skk-tut.el (kill-buffer): Remove unnecessary `interactive' form. * lisp/skk-isearch.el (skk-isearch): Change `skk-' prefix to `skk-isearch'. * lisp/skk-kcode.el (skk-kcode): Likewise. * lisp/skk-look.el (skk-look): Likewise. * experimental/dbm/skk-dbm.el (skk-dbm): Likewise. * lisp/skk-kcode.el: Rearrange `;;;###autoload' cookies, (skk-kcode-load-hook): Bug fixed. * lisp/skk.el: Rearrange `;;;###autoload' cookies, (skk-save-jisyo-1): Use `write-region-as-coding-system' instead of `write-region'. (skk-get-jisyo-buffer): Use `insert-file-contents-as-coding-system' instead of `insert-file-contents'. (skk-set-jisyo-code): Remove `set-file-coding-system' (APEL has an alias to `set-buffer-file-coding-system'). 1999-03-20 Mikio Nakajima * lisp/skk-num.el (skk-numeric-convert): Hand integer instead of character to `skk-num-exp'. (skk-num-type-alist): Change each element of alist `(character . function)' to `(integer . function)'. * lisp/skk-isearch.el (skk-isearch-mode-string-alist, skk-isearch-start-mode, skk-isearch-use-previous-mode, skk-isearch-initial-mode-when-skk-mode-disabled, skk-isearch-whitespace-regexp): Documented in Japanese. * lisp/skk-comp.el (skk-dabbrev-like-completion): Doc improved. 1999-03-16 Mikio Nakajima * lisp/skk-foreword.el (skk-make-raw-arg): Bug fixed. 1999-03-14 Mikio Nakajima * lisp/skk.el (skk-make-face, skk-remove-common): Remove unused temporary variable. * lisp/skk-server.el (skk-open-server-1): Likewise. * lisp/skk-kakasi.el (skk-hurigana-1): Likewise. * lisp/skk-auto.el (skk-okuri-search-subr-original): Likewise. 1999-03-09 Seiichi NAMBA * lisp/skk.el (newline): Work around with `do-auto-fill' which always returns t. 1999-03-01 Kenji Yamashita * lisp/skk-kcode.el (skk-display-code-for-char-at-point): Bug fixed. 1999-02-20 $B>>0f9'M:(B/MATUI Takao * lisp/skk-isearch.el (skk-isearch-breakable-character-p-function): Bug fixed. 1999-02-19 Murata Shuuichirou * lisp/skk-leim.el (skk-auto-fill-inactivate): New function. * (skk-auto-fill-activate): Bug fixed. 1999-02-11 Mikio Nakajima * lisp/skk-obsolete.el (skk-obsolete-variable-alist): Put in `skk-num-type-list' and `skk-num-type-alist' pair. * lisp/skk-num.el (skk-kanji-num-str2-subr, skk-kanji-num-str3-subr): Bug fixed. (skk-last-num-list): New internal variable. (skk-init-numeric-conversion-variables): Keep previous variable of `skk-num-list' in `skk-last-num-list'. (skk-num-type-list): Renamed to `skk-num-type-alist'. * lisp/skk.el (skk-undo-kakutei): Bug fixed. 1999-02-07 Mikio Nakajima * lisp/skk-kcode.el: (skk-jis-char-to-hex): Removed. (skk-char-to-hex): New optional arg JISCHAR. (skk-input-by-code-or-menu): Use `skk-error' instead of `error'. * lisp/skk-num.el (skk-kanji-num-str2-subr): Bug fixed. (skk-compute-numeric-henkan-key): Can use `,' in midasi number key. (skk-kanji-num-str3-subr): New function. (skk-num-alist-type5): New constant. 1999-01-31 Mikio Nakajima * lisp/skk-foreword.el (skk-with-point-move): New macro. (skk-after-point-move): New inline function. * lisp/skk.el (skk-previous-point): New internal local variable. (skk-mode): Make `post-command-hook' local variable and add `skk-after-point-move' to the hook. (skk-try-completion, skk-insert, skk-abbrev-period, skk-abbrev-comma, skk-jisx0208-latin-insert, skk-delete-backward-char, skk-previous-candidate, skk-kakutei, skk-undo-kakutei, skk-start-henkan, skk-set-henkan-point-subr, skk-purge-from-jisyo, skk-hiragana-henkan, skk-jisx0208-latin-henkan, skk-latin-henkan): Use `skk-with-point-move'. 1999-01-27 Mikio Nakajima * lisp/skk-isearch.el (skk-isearch-mode-cleanup): Synchronize mode-line string with the current insert mode. 1999-01-26 Murata Shuuichirou * lisp/skk.el (skk-lisp-prog-p): Bug fixed. 1999-01-20 Hideki SAKURADA * lisp/skk-attr.el, lisp/skk-dbm.el, lisp/skk-look.el, lisp/skk-rdbms.el: Symbolic link removed. * lisp/Makefile.am (SOURCES, EXTRA_DIST): Prepend pathnames like `../experimental' to some targets. Move skk-obsoletes.el. (install-lispLISP, uninstall-lispLISP): New target to install all elc in $(DESTDIR)$(lispdir) using basename. (clean-lisp): New target to clean not only $(ELCFILES) but also skk-vars.el. * lisp/make-vars.el (skk-files): Removed. (make-skk-vars): Use command-line-args-left instead of skk-files. 1999-01-19 Mikio Nakajima * lisp/skk.el (skk-katakana-henkan, skk-hiragana-henkan, skk-jisx0208-latin-henkan, skk-latin-henkan, skk-*-henkan-1): Bug fixed. 1999-01-16 Mikio Nakajima * experimental/dbm/skk-dbm.el (skk-dbm-database-subtype): New user variable. (skk-dbm-get-jisyo-database): Determine database type, subtype, and opening permission according to its file name and hand them as options to `open-database'. Do writable check of directory only when dictionary is private one. (skk-dbm-make-jisyo): Determine coding-system-for-read according to `skk-jisyo-code'. `set-database-property' only for gdbm file. Create new optional arg SUBTYPE. (skk-dbm-large-jisyo): Change its default value to berkeley-db type file naming. * lisp/Makefile.am (SOURCES): Comment out skk-dbm.el and skk-rdbms.el. 1999-01-16 Murata Shuuichirou * lisp/skk.el (skk-delete-backward-char): Bug fixed. 1999-01-08 Takao KAWAMURA * lisp/skk.el (skk-kill-emacs-without-saving-jisyo): Bug fixed. 1999-01-02 Mikio Nakajima * experimental/dbm/skk-dbm.el: Add new experimental program. ;; Local Variables: ;; coding: iso-2022-jp ;; End: ddskk-ddskk-16.3_Kutomatsunai/ChangeLog.2000066400000000000000000000760161361774317600203500ustar00rootroot000000000000002000-10-30 Mikio Nakajima * SKK 10.62a released. * skk.el (skk-version): Change to 10.62a. * Makefile (VERSION): Updated to 10.62a. (tar): Change skk-$(VERSION) to skk$(VERSION) for file name of tar ball. (snapshot): Ditto. * SKK 10.62 released. * doc/skk.texi (EDITION): Updated to 1.5. ($B1QC18l$r$"$$$^$$$KJQ49$7$F * doc/skk.texi: "$B<-=q$NF~ * READMEs/FAQ.txt (Emacs 20 $B$K(B SKK 9.6 $B$,%$%s%9%H!<%k$G$-$^$;$s!#(B, $BA4$/4A;z$,=P$F$-$^$;$s!#(B, $B%A%e!<%H%j%"%k$,5/F0$G$-$^$;$s!#(B, $B%9%Z!<(B $B%9$r2!$7$F$bJQ49$G$-$^$;$s!#(B): New questions. * READMEs/NEWS: Add description. * doc/skk-faq.texi (Emacs 20 $B$K(B SKK 9.6 $B$,%$%s%9%H!<%k$G$-$^$;$s!#(B, $BA4$/4A;z$,=P$F$-$^$;$s!#(B, $B%A%e!<%H%j%"%k$,5/F0$G$-$^$;$s!#(B, $B%9%Z!<(B $B%9$r2!$7$F$bJQ49$G$-$^$;$s!#(B): New subsections. 2000-10-25 Mikio Nakajima * doc/skk-faq.texi (Q.1-4 SKK $B$O$I$s$J%*%Z%l!<%F%#%s%0%7%9%F%`$G;H(B $B$($^$9$+!)(B): Add cross reference to `Q.2-4 APEL $B$C$F2?$G$9$+!)(B'. (Q.1-7 APEL $B$K0MB8$;$:$K(B SKK $B$@$1$G:Q$`$h$&$K3+H/$7$F$b$i$($^$;$s(B $B$+!)(B): Ditto. (Q.2-5 $B?'!9JL$KF~ * READMES/FAQ.txt ($B:8.;X$r(B SHIFT $B$G9s;H$7$?$/$"$j$^$;$s!#(B): New question. * doc/skk-faq.texi ($B:8.;X$r(B SHIFT $B$G9s;H$7$?$/$"$j$^$;$s!#(B): New subsection. 2000-10-23 Tsuyoshi AKIHO * READMEs/README.win: Maintrunk $BMQ$N@_Dj$KJQ99!#(BMule for Windows $B$G$O(B SKK-CFG $B$rJT=8$9$k$3$H$rDI2C!#(B 2000-10-22 Tetsuo Tsukamoto * doc/{skk-faq.texi, skk.texi}: Some modifications for TeX. 2000-10-22 Mikio Nakajima * doc/skk.texi: Change maintainer's name to SKK Development Team . * doc/skk-faq.texi: Add header. * doc/skk.texi: Call `texinfo-every-node-update' and `texinfo-all-menus-update'. (APEL $B$N%$%s%9%H!<%k(B): Add reference to $B!V(BQ.2-4 APEL $B$C$F2?$G$9$+!)!W(B. * doc/skk-faq.texi: Use `@code', `@file' `@samp' `@kbd' `@key', `@example', `@enumerate' commands. Add cindex, vindex and kindex. Call `texinfo-every-node-update' and `texinfo-all-menus-update'. ([Q.4-4] SKK $B7A<0$N1QOB<-=q$r:n$kJ}K!$,$"$k!"$HJ9$$$?$N$G$9$,!#(B): Change node name to `[Q.4-4] SKK $B7A<0$N1QOB<-=q$,$"$k$HJ9$$$?$N$G(B $B$9$,!#(B 'Add description about how to get `SKK-JISYO.edict'. * skk.el (skk-abbrev-comma): Bug fixed. 2000-10-22 Tetsuo Tsukamoto * doc/skk-faq.texi: Clean up. 2000-10-21 Tetsuo Tsukamoto * doc/skk.texi: Typo. 2000-10-21 Mikio Nakajima * doc/skk.texi: Unify the words $B!V%G%#%l%/%H%j%#!W(Bto$B!V%G%#%l%/%H%j!W(B and $B!V%(%s%H%j!L>$,L5$$>l9g$N<-=qEPO?(B): Ditto. ($BAw$j2>L>$,L5$$>l9g(B): Change reference node $B!V<-=q$N7A<0!W(B to $B!VAw(B $B$j$"$j%(%s%H%j$HAw$j$J$7%(%s%H%j!W(B. ($BAw$j2>L>$,M-$k>l9g(B): Change reference node $B!V<-=qEPO?%b!<%I!W(B to $B!V%5JQF0;l$N<-=qEPO?$K4X$9$kCm0U!W(B. (SKK Ring Server Openlab $B%a!<%j%s%0%j%9%H(B): Do not use the word $B!V9VFI!W(B. Add description about how to read news via http. (skkdic-expr): Add description about `skkdic-sort', put on cindex skkdic-sort and reference to skkdic-sort. (skkdic-sort): Add description about `skkdic-expr', put on cindex skkdic-expr and reference to skkdic-expr. ($B%W%m%0%i%`:n@.J}K!(B): Use `@file' for skkdic-expr, `@code' for ndbm and gdbm, and @var for TMPDIR Use `@var' for CFLAGS instead of `@code'. * READMEs/README.win: Sync up with daredevil's one. Change APEL version 10.2 to 9.22. 2000-10-19 Tetsuo Tsukamoto * READMEs/NEWS: Add description for SKK 10.62. * doc/skk.texi (SKK-VERSION): Bump up to 10.62. * skk.el (skk-version): Bump up to 10.62 {not yet released}. 2000-10-18 Tetsuo Tsukamoto * skk-cursor.el (kill-buffer, select-frame, other-window, switch-to-buffer, recenter): Call `interactive' with args. * skk-tut.el (kill-buffer): Ditto. * skk.el (kill-buffer): Ditto. 2000-10-15 Tsuyoshi AKIHO * doc/skk.texi: Fix links. 2000-10-14 Tetsuo Tsukamoto * doc/gpl.texi: No longer in the repository. * doc/skk-faq.texi: Sync with FAQ.txt. * doc/skk.texi ($B$h$/$"$k * SKK-MK (SKK_LISPDIR): "make PREFIX=dir install" $B$G(B PREFIX $B$N$H(B $B$*$j$K(B elisp $B$,%$%s%9%H!<%k$5$l$k$h$&$K=$@5(B. 2000-10-12 Tetsuo Tsukamoto * skk-foreword.el (skk-emacs-type): Check the feature `xemacs'. * skk-gadget.el: Require "static" at compile time. (skk-clock): Sync with daredevil branch. 2000-10-11 Tetsuo Tsukamoto * doc/skk.texi: Fix links. * skk-tut.el, skk.el: Replace `canna-henkan-region-or-self-insert' with `skk-insert'. * skk.el (skk-setup-modeline): Don't use `mapcar'. 2000-10-10 Tetsuo Tsukamoto * doc/skk.texi: Fix links. (Perl $B$K$h$k%D!<%k(B): Fix. 2000-10-09 Tetsuo Tsukamoto * doc/skk.texi ($B$I$N$h$&$KJQ49$5$l$k$+(B): Use `@samp'. 2000-10-09 Tsuyoshi AKIHO * doc/skk.texi: "$B%5!<%P!<(B" $B$r(B "$B%5!<%P(B" $B$KE}0l!#(B "$B%$%s%9%H!<%k(B" $B$N>O$rDI2C!#(B 2000-10-08 Tetsuo Tsukamoto * skk.el (skk-count-jisyo-candidates): Use `default-directory' instead of "~/". Show "candidate" instead of "candidates" if `count' is 1. 2000-10-07 Tetsuo Tsukamoto * doc/skk.texi ($B<-=q%D!<%k(B, $B3HD%%"%$%G%#%"(B, SKK$B%a!<%j%s%0%j%9%H(B, SKK$B4XO"%=%U%H%&%'%"(B): $B!V$G$9$^$9!WD4$KJQ99!#(B 2000-10-05 Tetsuo Tsukamoto * doc/skk.texi ($B>~$j$D$1(B, VIP/VIPER$B$H$NJ;MQ(B, I-search$B4XO"(B, skk-init-file$B$N%3%s%Q%$%k(B, picture-mode$B$H$NJ;MQ(B, $B%5!<%P!<4XO"(B): $B!V$G$9$^$9!WD4$KJQ99!#(B * skk.el (skk-count-jisyo-candidates): Show "candidates", not "entries". (skk-count-jisyo-candidates-original): Don't search slashes in midashi words. 2000-10-04 Tetsuo Tsukamoto * doc/skk.texi ($BAw$j2>L>4XO"(B, $B<+F0JQ493+;O(B, $BFC * READMEs/FAQ.txt: Change filename description in end of filename tag. 2000-10-03 Tetsuo Tsukamoto * doc/skk.texi ($BF~NO%b!<%I$N0l;~JQ99(B, $B"#%b!<%I$K$*$1$kJ8;zF~NO(B, $B%](B $B%$%s%H$rLa$7$F"&%b!<%I$X(B, $B3NDjJQ49$H$=$NC$7(B, $B3NDj%"%s%I%%(B, $B8+(B $B=P$78l4XO"(B): $B!V$G$9$^$9!WD4$KJQ99!#(B ($B5l%P!<%8%g%s$+$i$NJQ99E@(B): New chapter. 2000-10-02 Tetsuo Tsukamoto * doc/skk.texi ($B%U%!%$%k9=@.(B, $B%f!<%6!<%*%W%7%g%s$N@_DjJ}K!(B, $B<-=q$N(B $B7A<0(B, $B<-=q$K4X$9$k@_Dj(B): $B!V$G$9$^$9!WD4$KJQ99!#(B 2000-10-01 Tsuyoshi AKIHO * doc/skk.texi: "$B<-=q%5!<%P$r;H$$$?$$$H$-$N@_Dj(B" typo fix. "$B%A%e!<%H%j%"%k(B" $B1Q8l$N%A%e!<%H%j%"%k%U%!%$%k$K$D$$$F5-=R(B. "$B%U%!%$%k9=@.(B" $B%U%!%$%kL>$r(B sort $B$7$?=gHV$KJQ99$7(B, skk-cursor.el, skk-develop $B$N5-=R$rDI2C(B. "$B8+=P$78l$NJd40(B" $B8+0W$$$h$&$K(B space $B$rDI2C(B. 2000-10-01 Mikio Nakajima * skk-lookup.el: Require bitmap when running on MULE. * skk-num.el (skk-num-convert): Comment fixed. (skk-num-process-user-minibuf-input): Use `save-match-data'. 2000-09-29 Mikio Nakajima * READMEs/FAQ.txt: Fixed a description about $B!V8!:w$9$k<-=q$rA}$d(B $B$7$?$$$N$G$9$,!W(B. 2000-09-29 Tsuyoshi AKIHO * READMEs/FAQ.txt: Add an answer about $B!VM9JXHV9f<-=q!W(B. 2000-09-29 Mikio Nakajima * READMEs/FAQ.txt: Add a description about $B!V8!:w$9$k<-=q$rA}$d$7(B $B$?$$$N$G$9$,!W(B. * READMEs/skk-faq.txt: Rename to FAQ.txt. 2000-09-28 Shuhei KOBAYASHI * skk.el: (skk-insert, skk-previous-candidate): Fix interactive spec. 2000-09-28 Tsuyoshi AKIHO * ptexinfmt.el: @multitable bug fix (TAKAHASHI Kaoru $B$5$sDs6!(B, Thanks). * doc/skk.texi: SKK$B%*!<%H%U%#%k%b!<%I(B , SKK Ring Server Openlab $B%a!<%j%s%0%j%9%H(B typo fix. skk-lookup.el $B$N5-=R$rDI2C(B. tools $B$NF~ * doc/skk.texi (SKK 9 $B$H(B SKK 10 $B$N0c$$(B): New section. (SKK$B$NF~ * doc/skk.texi ($B4pK\E*$J;HMQJ}K!(B): $B!V$G$9$^$9!WD4$r:NMQ!#(B Don't use concept index for variables and functions. Fix node dependencies. 2000-09-25 Mikio Nakajima * READMEs/skk-faq.txt: Update a description about how to get skk-tools. 2000-09-25 Tetsuo Tsukamoto * ptexinfmt.el: Sync with Wanderlust. 2000-09-22 Tsuyoshi AKIHO * doc/skk.texi: `$B%A%e!<%H%j%"%k(B'$B$rDI2C(B. `stack-m.el' $B$N5-=R:o=|(B. `SKK Ring Server Openlab $B%a!<%j%s%0%j%9%H(B'$B$rDI2C(B. `$B:G?7>pJs(B'$B$rDI2C(B. `$B$=$NB>(B'$B$r(B`$B:G?7>pJs$J$I(B'$B$KJQ99(B. 2000-09-21 Tsuyoshi AKIHO * skk-tut.el (skktut-end-tutorial): Change address to skk@ring.gr.jp. * doc/skk.texi ($B:G$b4pK\E*$J@_Dj(B): typo fix. * SKK-MK: Mule for Windows$BBP:v$H$7$F(B, SKK-MK-compile-info-for-mule4win32 $B$rDI2C(B. * make.bat: info-mule-for-win $B%(%s%H%j$rDI2C(B. del $B$G$N%U%!%$%k:o=|(B $B$rJ,$1$k(B. * Makefile (info-mule-for-win): New target. * READMEs/README.win: MAKE.BAT info-mule-for-win $B$N5-=RDI2C(B. 2000-09-18 Tsuyoshi AKIHO * doc/skk.texi ($B$O$8$a$K(B): New chapter. 2000-09-16 Tetsuo Tsukamoto * SKK-CFG: Rewrite. 2000-09-16 Mikio Nakajima * READMEs/README: Sync up with Daredevil's one. 2000-09-15 Tetsuo Tsukamoto * READMEs/CVS_on_Windows: Update. * doc/skk.texi ($BG[I[>r7o(B, $B35MW(B): Remove these chapters. ($B$O$8$a$N@_Dj(B): <= chapter `$B%$%s%9%H!<%k(B'. Simplify. ($B$=$NB>(B): <= chapter `$B * READMEs/skk-faq.txt: New file. * READMEs/Contributors (Contributors): Change Akiho san's e-mail address. 2000-09-14 Mikio Nakajima * skk-develop.el (skk-ml-address): Change address to skk@ring.gr.jp. 2000-09-14 Tsuyoshi AKIHO * doc/skk.texi: $B%a%K%e!<$K(B $BG[I[>r7o(B $B$rDI2C(B. * skk-gadget.el: eval-when-compile $B$r:o=|(B. * skk-kakasi.el: (require 'skk-cursor)$B$r:o=|(B. (skk-set-cursor-properly) $B$r;H$&A0$K(B, (featurep 'skk-cursor) $B$G(B skk-cursor $B$,(B load $B$5$l$F$$$k$+(B check $B$9$k(B. * experimental/skk-hankaku-mode.el: $BF1>e(B. * experimental/rdbms/skk-rdbms.el: $BF1>e(B. * experimental/skk-jisx0201.el: $BF1>e(B. skk-set-cursor-color $B$r;H$&(B $BA0$K(B, (featurep 'skk-cursor) $B$G(B skk-cursor $B$,(B load $B$5$l$F$$$k$+(B check $B$9$k(B. 2000-09-13 Tetsuo Tsukamoto * Makefile (what-where-package): Use $(XEMACS). * SKK-MK (SKK-MK-running-xemacs): Abolish. Check the feature xemacs instead. (SKK_INFOS): Abolish. Stop guessing how many files resulting info will be split into. (SKK_INFO): New variable. (PACKAGE_DATADIR): <= `SKK_PACKAGE_DATADIR'. (PACKAGE_LISPDIR): <= `SKK_PACKAGE_LISPDIR'. * skk-num.el (skk-num): Add autoload cookie. 2000-09-12 Mikio Nakajima * READMEs/CVS_digest: Sync up with the files distributed as daredevil. * Makefile (DATE): Do not use universal time. (MD5): New variable. (SNAPBASE): Ditto. (TAR): Do not specify absolute path. (tar): Rearrange for making archive in openlab.ring.gr.jp. (snapshot): Ditto. (clean): Remove files that match `.#*' (files which make by CVS when it finds there are conflicts). 2000-09-11 Tetsuo Tsukamoto * skk-num.el (skk-num-list): Remove autoload cookie. 2000-09-10 Mikio Nakajima * Makefile (snapshot): Bug fixed. (TAR): Bug fixed. * Makefile (tar): Modify to make archive in openlab.ring.gr.jp. (snapshot): Ditto. * skk-lookup.el: Moved from experimental directory. * skk-faq.txt: New file. * doc/skk.texi ($BF~NO%b!<%I$N0l;~JQ99(B): Typo fixed. * skk-look.el: Modify comment. 2000-09-09 Tetsuo Tsukamoto * skk.el (skk-coding-system-alist): sjis => shift_jis. 2000-09-08 Tsuyoshi AKIHO * skk.el (skk-get-jisyo-buffer):skk-jisyo-code $B$,%7%s%\%k$+(B check $B$9$k!#(B (skk-save-jisyo-1):$BF1>e(B * doc/skk.texi:dbskkd-cdb $BG[I[@h(B, KAKASI, $B3HD%%"%$%G%#%"(B, $B5/F0$H=*(B $BN;(B, $B4pK\E*$J;HMQJ}K!(B, $B:G$b4pK\E*$J@_Dj(B update & $B<-=q%P%C%U%!$NJ8;z(B $B%3!<%I$N@_Dj(B typo fix * skk-kakasi.el:(require 'skk) $B$G(B eval-when-compile $B$r;H$o$J$$!#(B (require 'skk-cursor)$B$rDI2C!#(B * skk.el (skk-use-fase):DOCSTRING $B$r(B info $B$HF1$8$/%O%$%i%$%H$H=q$/(B. 2000-09-06 Tetsuo Tsukamoto * skk-leim.el (skk-leim-exit-from-minibuffer): New function. (skk-activate, skk-auto-fill-activate): In minibuffer, add `skk-leim-exit-from-minibuffer' to `minibuffer-exit-hook'. 2000-09-05 Mikio Nakajima * doc/skk-faq.texi (Customization): Add descriptions about `skk-rom-kana-rule-list' and `skk-input-vector'. 2000-09-01 Tetsuo Tsukamoto * Makefile (info): New target. 2000-08-31 Tetsuo Tsukamoto * ptexinfmt.el: Sync with Wanderlust. 2000-08-30 Tetsuo Tsukamoto * doc/skk.texi ($B4pK\E*$J;HMQJ}K!(B, $BJXMx$J1~MQ5!G=$H%f!<%6!<%*%W%7%g(B $B%s(B): Misc updates. 2000-08-29 Tetsuo Tsukamoto * doc/skk-faq.texi: New file. * doc/skk.texi: Misc updates. 2000-08-28 Tetsuo Tsukamoto * ptexinfmt.el: New file imported from Wanderlust. * SKK-MK (SKK-MK-texinfo-format): Require ptexinfmt. 2000-08-26 Tetsuo Tsukamoto * doc/skk.texi ($B"#%b!<%I$K$*$1$kJ8;zJQ49(B, $B?t;z$d5-9fJ8;z$NF~NO(B, etc): Update for SKK 10. (SKKIME): New section. 2000-08-18 Tetsuo Tsukamoto * READMEs/PROPOSAL: tm ML => APEL ML. 2000-07-18 Mikio Nakajima * skk-foreword.el (skk-package-data-directory): Removed. * skk-tut.el (skk-tut-file): Use `locate-data-file' instead of referring to `skk-package-data-directory'. 2000-06-29 Mikio Nakajima * skk-cursor.el: Change YAMATO san's email address. * READMEs/Contributors (Contributors): Ditto. 2000-06-24 Mikio Nakajima * skk-cursor.el (skk-cursor-set-properly): Move `skk-abbrev-mode' condition to second place. * Makefile (DATE): New variable. (snapshot): Use DATE to make archive. 2000-06-23 Mikio Nakajima * skk.el: Remove unnecessary spaces between parens. (skk-toggle-kana): Do not setup `skk-input-mode-string'. Do not call `force-mode-line-update'. (skk-kakutei): Check if `skk-mode' is nil or non-nil in a lower region of the function in order not to initialize internal variables before calling `skk-search-excluding-word-pattern-function'). Do not call `force-mode-line-update'. 2000-06-22 Mikio Nakajima * skk.el (skk-toggle-kana): Doc fixed. (skk-kakutei): Ditto. 2000-06-21 Mikio Nakajima * skk.el (skk-toggle-kana): Bug fixed. * skk-cursor.el (skk-cursor-set-color): Bug fixed. * doc/skk.texi: Change SKK-VERSION 10.51 to 10.61. 2000-06-20 Mikio Nakajima * SKK-MK (SKK_MAINTRUNK_NOT_USE): Add `leim-list' and `skk-setup'. * skk-num.el (skk-num-recompute): Setup `skk-num-recompute-key' in a upper region of the function code. (skk-num-update-jisyo): Not to show debug message. Bind `skk-use-numeric-conversion' to nil temporarily. Set buffer to ` *.skk-jisyo*'. (skk-num-recompute-key): Change to global internal variable. * skk-lookup.el (skk-lookup-search): Not to search if `skk-num-list' or `skk-num-recompute-key is non-nil. Do not convert `skk-henkan-key' by `skk-num-compute-henkan-key'. (skk-lookup-process-okurigana): Return nil if STRING is a null string. 2000-05-31 Mikio Nakajima * skk-cursor.el: Add `keyboard-quit' to FUNCS list. Exclude `execute-extended-command' from FUNCS list. Use `static-if' for decide whether to add `minibuffer-keyboard-quit' to FUNCS list or not. Add advices to `newline', `skk-delete-backward-char', `skk-insert' and `skk-start-henkan' (skk-cursor-set-properly): Add condition of `skk-abbrev-mode' is non-nil. (abort-recursive-edit): Add advice for XEmacs. 2000-04-26 Yuh Ohmura * make.bat: change maintenner. 2000-03-29 Yuh Ohmura * READMEs/CVS_on_Windows: cancel below change 2000-03-29 Yuh Ohmura * READMEs/CVS_on_Windows: add about timezone 2000-03-22 Mikio Nakajima * skk-server.el (skk-adjust-search-prog-list-for-server-search): Remove unproper comments. 2000-03-16 Mikio Nakajima * Makefile (VERSION): Change it to 10.60. * skk.el: Version 10.60 released. * SKK-MK (SKK-MK-what-where-package): Remove all spaces between parens. (SKK-MK-what-where): Ditto. (SKK-MK-texinfo-format): Ditto. (SKK-MK-cleanup-trouble-makers): Ditto. (SKK-MK-install-package): Ditto. (SKK-MK-install): Ditto. (SKK-MK-compile-info): Ditto. (SKK-MK-compile): Ditto. (SKK_PACKAGE_LISPDIR): Ditto. (SKK_PACKAGE_DATADIR): Ditto. (PACKAGE_INFODIR): Ditto. (PACKAGEDIR): Ditto. (SKK_LISPDIR): Ditto. (SKK_INFODIR): Ditto. (SKK_DATADIR): Ditto. (SKK_MODULES): Ditto. (SKK_INFOS): Ditto. (SKK-MK-texinfo-coding-system): Ditto. (APEL_SPECIFIC_LISPDIR): Ditto. (VERSION_SPECIFIC_LISPDIR): Ditto. (LISPDIR): Ditto. (SKK-MK-cleanup-trouble-makers): Removed. (SKK-MK-install): Do not use `SKK-MK-cleanup-trouble-makers'. (SKK-MK-install-package): Ditto. (SKK-MK-generate-autoloads-el): Go to a max point before inserting ending tag. 2000-03-16 FURUE Hideyuki * missing: Remove from the repository. * mkinstalldirs: Ditto. 2000-03-16 FURUE Hideyuki * SKK-MK (SKK-MK-compile): Remove local ``standard-output''. (SKK-MK-generate-autoloads-el): Define ``standard-output'' locally. (SKK-MK-texinfo-format): Define ``standard-output'' locally. 2000-03-14 Mikio Nakajima * Makefile (tar): Replace white spaces with tab. (snapshot): Ditto. 2000-03-13 Mikio Nakajima * Makefile (clean): Doesn't remove ../skk*. Remove skk-autoloads.el and experimental/*.elc. (tar): Remove ../skk*. (snapshot): Ditto. 2000-03-12 Mikio Nakajima * Makefile (snapshot): New entry. 2000-03-11 Mikio Nakajima * skk-autoloads.el: Remove from the repository. * Makefile (clean): Remove old archive, links and backup file initiated with dot. * ChangeLog: Move issues before 1999 to ChangeLog.0. 2000-01-17 FURUE Hideyuki * SKK-MK (SKK-MK-compile): Keep ``standard-output'' t. * make.bat (target to clean): Typo fixed. * READMEs/README.win: Correct sample ``.emacs'' files. 2000-01-17 FURUE Hideyuki * skk.el (skk-delete-okuri-mark): Bug fixed. 2000-01-17 FURUE Hideyuki * skk.el (keyboard-quit): Typo fixed. (query-replace-regexp): Disable advice because don't work correctly. (query-replace): Ditto. 1999-12-30 Tsukamoto Tetsuo * experimental/skk-jisx0201.el (skk-setup-modeline): If `skk-status-indicator' is left and the face `modeline' is not proportional, use the same number of columns to display each SKK status, except for `skk-jisx0201-mode'. * skk.el (skk-setup-modeline): Ditto. 1999-12-23 Mikio Nakajima * skk.el (skk-henkan-in-minibuff): Doc fixed. 1999-12-19 Mikio Nakajima * skk-viper.el: Eliminate all spaces which existed between parens. (skk-cursor-set-properly): Check current buffer has a window or not first. Change Murata san's e-mail address. (viper-insert): Remove advice. (vip-insert): Ditto. (viper-hide-replace-overlay): Ditto. (viper-intercept-ESC-key): Doc fixed. (vip-intercept-ESC-key): Ditto. * skk-cursor.el: Eliminate all spaces which existed between parens. Add codes in the top level in order to set cursor properly when first time skk-cursor.el is loaded. (isearch-mode-end-hook): Add `skk-cursor-set-properly' to the hook. (skk-cursor-set-properly): Slightly simplified. Check current buffer has a window or not first. (skk-cursor-set-color): Omit check of `skk-use-color-cursor' is nil or non-nil. (skk-mode): Remove duplicated advice. (overwrite-mode): Use `skk-cursor-set-properly' for advice. * skk.el: Eliminate all spaces which existed between parens. (skk-default-cursor-color): Move to skk-cursor.el. (skk-hiragana-cursor-color): Ditto. (skk-katakana-cursor-color): Ditto. (skk-jisx0208-latin-cursor-color): Ditto. (skk-latin-cursor-color): Ditto. (skk-abbrev-cursor-color): Ditto. (skk-report-set-cursor-error): Ditto. * skk-isearch.el: Eliminate all spaces which existed between parens. Modify doc string about hooks. * experimental/skk-abbrev.el: Eliminate all spaces which existed between parens. Do not require stack-m.el. Sync up with skk-abbrev.el of Daredevil. 1999-12-16 Yuh Ohura * make.bat: correct bug. 1999-12-14 Mikio Nakajima * SKK-MK (SKK_MAINTRUNK_NOT_USE): Add skk-vip. * skk-comp.el (skk-previous-completion-original): Bug fixed. (skk-completion-original): Ditto. 1999-12-12 Mikio Nakajima * skk-cursor.el (skk-save-jisyo-original): Change defadvice for `skk-save-jisyo'. * SKK-MK: Require poe. (SKK_MAINTRUNK_NOT_USE): Add stack-m. (SKK_MODULES): Remove stack-m. Bind `lookup-byte-compile' to t not to load .lookup. (SKK-MK-compile-info): New function. (SKK-MK-generate-autoloads-el): Ditto. (SKK-MK-collect-autoload-functions): Ditto. (SKK-MK-install): Call `SKK-MK-compile-info'. (SKK-MK-compile): Call `SKK-MK-generate-autoloads-el'. * skk.el (skk-mode): Set `skk-mode-invoked' to t after all setting are done properly. * stack-m.el: Removed. * skk-look.el: Not required stack-m.el. (skk-look-completion): Not use stack features. * skk-comp.el: Not required stack-m.el. (skk-completion-function): Add descriptions to doc string. (skk-previous-completion-function): Ditto. (skk-completion-depth): Change doc string slightly. (skk-completion-original): Not use stack features. (skk-previous-completion-original): Ditto. 1999-12-02 Yuh Ohmura (yutopia@t3.rim.or.jp> * READMEs/CVS_on_Windows: update * make.bat: add what-where and clean option 1999-11-30 Mikio Nakajima * skk-vars.el (skk-start-henkan-with-completion-char): Use `?\240' instead of 160 to represent character. (skk-backward-and-set-henkan-point-char): Use `?\321' instead of 209 to represent character. 1999-11-28 FURUE Hideyuki * skk-comp.el (skk-completion-original): Use `skk-completion-depth' to search completed word. (skk-previous-completion-original): Ditto. * skk-kakasi.el (skk-gyakubiki-message): Use "%s" as the first message argument to display properly string containing `%'. (skk-gyakubiki-katakana-message): Ditto. (skk-hurigana-message): Ditto. (skk-hurigana-katakana-message): Ditto. (skk-romaji-message): Ditto. * skk.el (skk-mode): Bind `skk-start-henkan-with-completion-char' and `skk-backward-and-set-henkan-point-char' for each skk related maps. (skk-insert): Set this-command to `skk-completion' when last-command-char is equal to `skk-previous-completion-char', and call `skk-kana-input' when last-command-is neither `skk-previous-completion-char' nor `skk-next-completion-char'. * skk-vars.el (skk-start-henkan-with-completion-char): New user variable. (skk-backward-and-set-henkan-point-char): Ditto. (skk-completion-depth): New internal variable. 1999-11-28 Mikio Nakajima * READMEs/CVS_on_Windows: New file. * experimental/skk-study.el (skk-study-file-format-version): Change version number to string. * skk-isearch.el (skk-isearch-overriding-local-map): Remove `;;;###autoload' cookie. * SKK-MK (SKK_PACKAGE_NOT_USE): New constant. (SKK_MAINTRUNK_NOT_USE): Ditto. (SKK-MK-install): Make directories, SKK_LISPDIR, SKK_DATADIR and SKK_INFODIR if they do not exist. Remove SKK_MAINTRUNK_NOT_USE from SKK_MODULES and delete related files. (SKK-MK-install-package): Remove SKK_PACKAGE_NOT_USE and SKK_MAINTRUNK_NOT_USE from SKK_MODULES and delete related files. * skk.el (skk-%-to-%%): Removed. 1999-11-28 FURUE Hideyuki * skk-num.el (skk-num-convert): Bug fixed. (skk-num-recompute): Ditto. * skk.el (skk-henkan-show-candidates): Ditto. (skk-mode): Call `skk-create-file' for `skk-jisyo'. (skk-henkan-show-candidate-subr): Do not use `skk-%-to-%%'. * skk-kcode.el (skk-char-to-hex): Bug fixed. * skk-isearch.el (skk-isearch-mode-setup): Call `skk-erase-prefix' with its argument non-nil in `skk-isearch-working-buffer'. 1999-11-18 Mikio Nakajima * READMEs/CVS_digest: New file. * READMEs/Contributors: Filename typo fixed. 1999-11-15 Mikio Nakajima * experimental/skk-abbrev.el (skk-completion-original): Bug fixed. 1999-11-10 Mikio Nakajima * skk-foreword.el (skk-mode-off): Remove cursor change support. (skk-j-mode-on): Remove cursor change support. (skk-latin-mode-on): Remove cursor change support. (skk-jisx0208-latin-mode-on): Remove cursor change support. (skk-abbrev-mode-on): Remove cursor change support. * skk-cursor.el (skk-change-cursor-when-ovwrt): Rename to `skk-cursor-change-when-ovwrt'. * skk.el (skk-mode): Require skk-cursor.el if `skk-use-color-cursor' or `skk-use-cursor-change' is non-nil. (abort-recursive-edit): Remove cursor change support. (exit-minibuffer): Ditto. (minibuffer-keyboard-quit):Ditto. (skk-save-jisyo-original): Ditto. (skk-katakana-region): Ditto. (skk-hiragana-region): Ditto. (skk-jisx0208-latin-region): Ditto. (skk-latin-region): Ditto. (skk-auto-fill-mode): Ditto. (skk-toggle-kana): Ditto. (skk-kakutei): Ditto. (kill-buffer): Ditto (and change class). (goto-line): Moved to skk-cursor.el. (yank): Ditto. (yank-pop): Ditto. (recenter): Ditto. (insert-file): Ditto. (bury-buffer): Ditto. (switch-to-buffer): Ditto. (hilit-yank): Ditto. (hilit-yank-pop): Ditto. (hilit-recenter): Ditto. (execute-extended-command): Ditto. (pop-to-buffer): Ditto. (other-window): Ditto. (overwrite-mode):Ditto. (skk-set-cursor-color): Ditto. (skk-set-cursor-properly): Ditto. (skk-change-cursor-when-ovwrt): (after-make-frame-hook): Stop set hook `skk-set-cursor-properly'. (minibuffer-setup-hook): Ditto. (minibuffer-exit-hook): Ditto. 1999-11-09 Shuhei KOBAYASHI * skk-look.el (skk-look): Use copy-sequence instead of `copy-list' not to depend on CL package on FSF Emacs. * skk-num.el (skk-num-flatten-list): Do not use `mapcan' not to depend on CL package on FSF Emacs. 1999-11-09 Mikio Nakajima * skk.el (skk-detach-extent): Use `defun' and `static-cond' instead of `skk-defun-cond' and `cond'. (skk-change-cursor-when-ovwrt): Ditto. * skk-develop.el (skk-submit-bug-report): Remove code for a certain specific version of Mew and Wanderlust. Remove def-edebug-spec for `skk-defsubst-cond', `skk-defun-cond', `skk-defmacro-cond'. * skk-kcode.el (skk-display-code): Use `defun' and `static-cond' instead of `skk-defun-cond' and `cond'. * skk-foreword.el (skk-defun-cond): Removed. (skk-defsubst-cond): Ditto. (skk-defmacro-cond): Ditto. (skk-str-length): Use `defsubst' and `static-cond' instead of `skk-defsubst-cond' and `cond'. (skk-substring): Ditto. (skk-read-event): Ditto. (skk-char-to-string): Ditto. (skk-ascii-char-p): Ditto. (skk-str-ref): Ditto. (skk-jisx0208-p): Ditto. (skk-char-octet): Ditto. (skk-charsetp): Use `defun' and `static-cond' instead of `skk-defun-cond' and `cond'. (skk-make-char): Ditto. (skk-jisx0208-to-ascii): Ditto. (skk-face-on): Use `defmacro' and `static-cond' instead of `skk-defmacro-cond' and `cond'. 1999-11-07 Mikio Nakajima * experimental/skk-jisx0201.el (skk-jisx0201-mode-string): Change mode indicator to `jisx0201' and doc fixed. (skk-jisx0201-rule-list): Define latin-jisx0201 characters. (skk-setup-modeline): Change mode indicator to `jisx0201'. ;; Local Variables: ;; coding: iso-2022-jp ;; End: ddskk-ddskk-16.3_Kutomatsunai/ChangeLog.2.daredevil000066400000000000000000002763311361774317600223100ustar00rootroot000000000000002000-10-31 Mikio Nakajima * doc/skk-faq.texi: Sync up with maintrunk. * doc/skk.texi: Ditto. 2000-10-30 Mikio Nakajima * skk-vars.el (skk-lookup-option-alist): Use "MYPAEDIA" spec of $B!V<-!&E5!&HW!W(B version MYPAEDIA. * skk-annotation.el (skk-nunion): New advice. 2000-10-29 Mikio Nakajima * skk-vars.el (skk-lookup-option-alist): Doc updated. Created new element "CHIEZO". Specified 7th element of "IWAKOKU" in order to remove "$B!R(B", "$B!S(B", "$B!P(B", "$B!Q(B", "( and ")". Specified 5th element of "MYPAEDIA" in order to pick up necessary strings between parens and/or blackets. (skk-lookup-default-option-list): Doc updated. * experimental/skk-annotation.el (skk-annotation-add): Bug fixed. * experimental/skk-annotation.el (skk-annotation-mode-map): Change key bind skk-annotation-quit to "\C-c\C-k". (skk-annotation-add): Document updated. Use `skk-annotation-setup'. (skk-annotation-quit): Call `kill-buffer'. Rename to `skk-annotation-kill'. (skk-annotation-quote): Use `skk-annotation-setup'. (skk-annotation-remove): Use `skk-annotation-setup'. Abolish optional argument NO-PREVIOUS-ANNOTATION. (skk-annotation-setup): New function. * skk-vars.el (skk-annotation-annotated-word): New internal variable. 2000-10-28 Mikio Nakajima * experimental/skk-annotation.el (skk-annotation-quit): New function. (skk-annotation-add): Bug fixed. Put out skk-annotation-quit key bind, too. (skk-annotation-last-word-1): Bug fixed. (skk-annotation-remove): Do not change END to marker. (skk-annotation-save-and-quit): Ditto. (skk-annotation-show-message): Do not insert ANNOTATION. Do not sit for a second. (skk-annotation-last-word-1): Call FUNCTION all okuri ari candidates that are the same word and has different okurigana. Set BEG and END markers respectively and set such markers to nil after FUNCTION is called. * skk-vars.el (skk-annotation): New group. (skk-annotation-buffer): New internal constants. (skk-annotation-function): New user variable. (skk-annotation-mode-hook): Ditto. (skk-annotation-show-message): New user option. (skk-annotation-mode-map): New keymap. (skk-annotation-original-window-configuration): New internal variable. (skk-annotation-mode): Ditto. * experimental/skk-annotation.el: Require `skk-macs' and `skk-vars'. (skk-annotation-insert): New inline function. (skk-annotation-quote-1): Ditto. (skk-annotation-show): Rename to `skk-annotation-show-buffer'. (skk-annotation-show): New function. (skk-annotation-show-1): Ditto. (skk-annotation-show-message): Ditto. (skk-annotation-last-word-1): Ditto. (skk-annotation-add): New command. (skk-annotation-save-and-quit): Ditto. (skk-annotation-remove): Ditto. (skk-annotation-quote): Ditto. 2000-10-27 Mikio Nakajima * SKK-MK (SKK_MODULES): Add skk-annotation. * skk-vars.el (skk-show-annotation): New user option. * skk-jisx0213.el: Require `skk-macs' and `skk-vars'. * skk.el (skk-quote-char): Quote ";". (skk-insert-new-word): Divide WORD into two pieace, real WORD and ANNOTATION and call `skk-annotation-show' if `skk-show-annotation' is non-nil. * experimental/skk-annotation.el: New experimental program. 2000-10-26 Tetsuo Tsukamoto * READMEs/FAQ.txt (Emacs 20 $B$K(B SKK 9.6 $B$,%$%s%9%H!<%k$G$-$^$;$s!#(B, $BA4$/4A;z$,=P$F$-$^$;$s!#(B, $B%A%e!<%H%j%"%k$,5/F0$G$-$^$;$s!#(B, $B%9%Z!<(B $B%9$r2!$7$F$bJQ49$G$-$^$;$s!#(B): New questions. * READMEs/NEWS: Add description. * missing, mkinstalldirs: No longer in the repository. 2000-10-25 Mikio Nakajima * skk-vars.el (skk-coding-system-alist): Define "euc" and "ujis" for euc-jisx0213, "sjis" for shift_jisx0213 and "jis" for iso-2022-jp-3-compatible if emacs has a feature 'jisx0213. (skk-code-n1-max): Set 254 if emacs has a feature 'jisx0213. (skk-kcode-charset): Set 'japanese-jisx0213-1 if emacs has a feature 'jisx0213. * skk-kakasi.el: Update Takahashi-san's email address and description about a ftp site to get kakasi. * skk-lookup.el (skk-lookup-get-method): Use `skk-lookup-get-1'. (skk-lookup-get-1): Simplified slightly. 2000-10-25 Tetsuo Tsukamoto * READMES/FAQ.txt ($B:8.;X$r(B SHIFT $B$G9s;H$7$?$/$"$j$^$;$s!#(B): New question. 2000-10-25 Mikio Nakajima * skk-vars.el (skk-lookup-option-alist): Bug fixed. 2000-10-25 Tetsuo Tsukamoto * skk-vars.el (skk-lookup-option-alist): Bug fixed. 2000-10-24 Mikio Nakajima * skk-vars.el (skk-lookup-option-alist): Change 6th element regexp to cons cell and defcustom type accordingly. Add new element 7th and defcustom type accordingly. Add new lists of which headers are "KOUJIEN", "KOJIEN" and "KOKUGO" (skk-lookup-default-option-list): Change 5th element regexp to cons cell and defcustom type accordingly. Add new element 6th and defcustom type accordingly. * skk-lookup.el (skk-lookup-get-1): New inline function. (skk-lookup-get-cleanup-regexp): Ditto. (skk-lookup-get-nonsearch-sex): Use `skk-lookup-get-1'. (skk-lookup-get-pickup-regexp): Ditto. (skk-lookup-get-split-regexp): Ditto. (skk-lookup-process-heading): Use cdr part of 6th element of `skk-lookup-option-alist' or 5th element of `skk-lookup-default-option-alist' in order to get a matched string. Remove unnecessary strings from CANDIDATES-STRING by using 7th element of `skk-lookup-option-alist' or 6th element of `skk-lookup-default-option-alist'. * skk-kcode.el (skk-input-by-code-or-menu): Use `match-string-no-properties' instead of `match-string'. 2000-10-22 Mikio Nakajima * doc/skk-faq.texi ([Q.1-4] SKK $B$O$I$s$J%*%Z%l!<%F%#%s%0%7%9%F%`$G;H$($^$9$+!)(B): * skk.el (skk-abbrev-comma): Bug fixed. * ccc.el (ccc-defadvice): Check if FUNCTION is fboundp or not. Fixed warning message. * skk-macs.el (skk-defadvice): Ditto. 2000-10-21 Mikio Nakajima * ccc.el (ccc-defadvice): Delete interactive call from advice definition if trying to add an advice to subr/non-command. * skk-macs.el (skk-defadvice): Ditto. * skk.el (keyboard-quit): Use `skk-defadvice' instead of `defadvice'. (abort-recursive-edit): Ditto. (newline): Ditto. (newline-and-indent): Ditto. (exit-minibuffer): Ditto. (undo): Ditto. (kill-buffer): Ditto. (save-buffers-kill-emacs): Ditto. (minibuffer-keyboard-quit): Ditto. * skk-cursor.el (minibuffer-keyboard-quit): Use `skk-defadvice' instead of `defadvice'. * skk-jisx0201.el (newline): Ditto. (newline-and-indent): Ditto. (exit-minibuffer): Ditto. * skk-tut.el (kill-buffer): Ditto. (other-frame): Ditto. (save-buffers-kill-emacs): Ditto. * skk-viper.el (read-from-minibuffer): Ditto. * skk-develop.el: Add `skk-defadvice' regexp for hilit19 and font-lock. 2000-10-20 Tetsuo Tsukamoto * READMEs/NEWS: Add description about leim-list.el, etc. * skk-setup.el.in (isearch-message-prefix): Move the advice * skk-isearch.el: to here. (skk-isearch-delete-char): Update only the 2nd element of `isearch-cmds'. 2000-10-19 Mikio Nakajima * ccc.el (ccc-defadvice): New macro. * skk-macs.el (skk-defadvice): Ditto. 2000-10-19 Tsuyoshi AKIHO * READMEs/NEWS: $B?75!G=$dGQ;_$5$l$?4X?t$K$D$$$F2CI.!#(B 2000-10-19 Tetsuo Tsukamoto * skk-leim.el: In "auto-autoloads.el", require "skk-setup". * skk-setup.el.in: Override "C-x C-j" under XEmacs. * skk.el (skk-save-jisyo-original): Check if `skk-emacs-id-file' exists. 2000-10-19 Tsuyoshi AKIHO * SKK-MK (SKK_LISPDIR): "make PREFIX=dir install" $B$G(B PREFIX $B$N$H(B $B$*$j$K(B elisp $B$,%$%s%9%H!<%k$5$l$k$h$&$K=$@5(B. 2000-10-18 Tetsuo Tsukamoto * ccc.el (ccc-apply): New macro. (ccc-ads): New variable. 2000-10-18 Mikio Nakajima * READMEs/README.win: Move $B!V(B`MAKE.BAT'$B$NJT=8$H%$%s%9%H!<%k(B (Windows 95,98/NT)$B!W(B to header (change to non-section). Section structer rearranged (change `****' section to `***', `***' to `**' and `**' section to `*'). New sections $B!V(B* Windows $B>e$GF0$/%5!<%P$K$D$$$F!W(B,$B!V(Bwskkserve$B!W(B, $B!V(B cygwin $B$rMxMQ$7$F%=!<%9$+$i%3%s%Q%$%k$7$FMxMQ$9$k!W(B,$B!V(Bscript $B8@(B $B8l$G * ccc.el: Apply Tsukamoto-san's patch Message-ID: . * READMEs/CVS_on_Windows: Typo fixed. 2000-10-16 Mikio Nakajima * READMEs/README.win (SKK95 (Windows 95/98/NT)): Remove the sentence $B!V(BWindows 95 $B$G$O>e5-$N(B SKKIME $B$,F0:n$7$J$$$?$a$3$A$i$r;H(B $BMQ$7$^$9!#!W(B. SKKIME98 now works on Windows 95 (using Winsock version 1). Updated the link to kmc. (wskkserve): Merged into "skkserve on Windows". (skkserve on Windows): Moved before the section "SKK on Windows". * skk-develop.el (skk-submit-bug-report): Do not put out skk-henkan-face information. Dump variables `isearch-mode-hook' and `isearch-mode-end-hook'. Use skk-exserv.el when `skk-exserv-list' is non-nil. Use new `skk-version'. * skk-abbrev.el: Require product and call product-provide for its feature. * skk-auto.el: Ditto. * skk-comp.el: Ditto. * skk-cursor.el: Ditto. * skk-develop.el: Ditto. * skk-gadget.el: Ditto. * skk-isearch.el: Ditto. * skk-jisx0201.el: Ditto. * skk-jisx0213.el: Ditto. * skk-kakasi.el: Ditto. * skk-kcode.el: Ditto. * skk-leim.el: Ditto. * skk-look.el: Ditto. * skk-lookup.el: Ditto. * skk-macs.el: Ditto. * skk-num.el: Ditto. * skk-obsolete.el: Ditto. * skk-server.el: Ditto. * skk-tut.el: Ditto. * skk-vars.el: Ditto. * skk-viper.el: Ditto. * skk-xm20_4.el: Ditto. * skk.el: Ditto. * experimental/skk-correct.el: Ditto. * experimental/skk-dos.el: Ditto. * experimental/skk-dcomp.el: Ditto. * experimental/skk-study.el: Ditto. * experimental/tut-code/skk-tutcode.el: Ditto. * experimental/tut-code/skk-tutcdef.el: Ditto. * experimental/skk-is-n.el: Ditto. * experimental/skk-exserv.el: Ditto. * experimental/skk-exsearch.el: Ditto. * experimental/skk-e18.el: Ditto. * experimental/dbm/skk-dbm.el: Ditto. * experimental/rdbms/skk-rdbms.el: Ditto. * SKK-MK (SKK_MODULES): Add `skk-version'. * skk-tut.el (skktut-end-tutorial): Use `(product-string-1 'skk-version t)' instead of `skk-branch-name'. (kill-buffer): Specify original interactive spec. (skk-tutorial): Check skk version using `product-version>='. * skk-vars.el (skk-version): Removed. (skk-major-version): Ditto. (skk-minor-version): Ditto. (skk-branch-name): Ditto. (skk-codename): Ditto. * skk.el (skk-version): Removed. Check APEL version using `product-version>='. (kill-buffer): Specify original interactive spec. * ccc.el (buffer-local-frame-params-ad-targets): Removed. Check a function if a subr that has an interactive spec when adding advices, and put on a mirroring original interactive spec to advice. * skk-version.el: New file. * skk-study.el: Move it back to experimental directory. 2000-10-15 Mikio Nakajima * skk.el (skk-toggle-characters): Hand 'vcontract to `skk-katakana-region' as VCONTRACT argument . 2000-10-15 Tetsuo Tsukamoto * skk-cursor.el (skk-cursor-buffer-local-frame-params-ad-targets): Add `skk-j-mode-on'. (minibuffer-setup-hook): No longer call `set-buffer-local-cursor-color' under FSF Emacs. (skk-cursor-current-color): No longer check if `skk-jisx0201-mode' is bound. 2000-10-13 Tetsuo Tsukamoto * skk-cursor.el: Changes for XEmacs. (minibuffer-keyboard-quit): New advice. (minibuffer-exit-hook): Call `set-face-property' in the minibuffer. * skk-macs.el (skk-emacs-type, skk-detect-emacs): Check the feature `xemacs'. 2000-10-12 Tetsuo Tsukamoto * ccc.el (buffer-local-cursor-color-default, buffer-local-foreground-color-default, buffer-local-background-color-default): Check the feature `xemacs'. * skk-cursor.el: Ditto. (minibuffer-setup-hook): Call `set-buffer-local-cursor-color' under FSF Emacs. * skk-gadget.el (skk-clock): Don't perform redisplay in `sit-for'. * skk-isearch.el (skk-isearch-delete-char): Use `when'. * skk-jisx0201.el (skk-jisx0201-insert, skk-toggle-katakana): Don't call `skk-cursor-set-properly'. Call `set-face-property' or `set-buffer-local-cursor-color' instead. * skk-obsolete.el (skk-obsolete-function-alist): Don't check `skk-set-cursor-color' and `skk-set-cursor-properly'. * skk-vars.el (skk-emacs-type): Check the feature `xemacs'. * skk.el (skk-setup-modeline): Don't use `mapcar'. 2000-10-08 Tetsuo Tsukamoto * skk.el (skk-count-jisyo-candidates): Use `default-directory' instead of "~/". Show "candidate" instead of "candidates" if `count' is 1. 2000-10-05 Tetsuo Tsukamoto * skk.el (skk-count-jisyo-candidates): Show "candidates", not "entries". (skk-count-jisyo-candidates-original): Don't search slashes in midashi words. 2000-10-03 Mikio Nakajima * READMEs/FAQ.txt: Change filename description in end of filename tag. 2000-10-02 Tetsuo Tsukamoto * skk-leim.el (locate-libraries, load-libraries): New functinos from egg-util.el in Tamago 4. * skk-setup.el.in: Load all `leim-list.el' files. 2000-10-02 Mikio Nakajima * skk-vars.el (skk-num-uniq): Check if `skk-num-type-alist' has indexes 2 and 3 or 5. * skk.el (skk-henkan-show-candidates): Use `skk-henkan-list-filter' instead of `skk-num-uniq'. Do not use `(skk-num-multiple-convert 7)'. 2000-10-01 Mikio Nakajima * skk-lookup.el: Require bitmap when running on MULE. * SKK-MK (SKK_MODULES): Add skk-jisx0213 if available. (SKK_DICTIONARIES): Add "SKK-JISYO.JIS2", "SKK-JISYO.JIS3_4", "SKK-JISYO.pubdic+", "SKK-JISYO.edict", "SKK-JISYO.office.zipcode" and "SKK-JISYO.zipcode". * skk-jisx0213.el: New file. * skk-vars.el (skk-jisx0213-prohibit): New user option. * skk.el (skk-henkan): Use `skk-get-current-candidate-1'. (skk-previous-candidate): Use new `skk-get-current-candidate'. (skk-kakutei): Ditto. (skk-purge-from-jisyo): Ditto. (skk-henkan-show-candidates): Use `skk-num-multiple-convert' instead of `skk-num-convert*7'. (skk-get-current-candidate): New funcition. (skk-henkan-1): Call `skk-search' until getting NEW-WORD even if skk-henkan-count is 0. * skk-num.el (skk-num-convert-1): New subroutine. (skk-num-process-user-minibuf-input): Removed. (skk-num-convert): Call `skk-num-uniq' if type 4 numeric conversion is done. Abolish argument KEY. Do not return CURRENT. (skk-num-exp): Use `save-match-data'. (skk-num-process-user-minibuf-input): Ditto. (skk-num-convert*7): Removed. (skk-num-multiple-convert): New function. (skk-henkan-list-filter): New funcition. * skk-macs.el (skk-get-current-candidate-simply): Abolish optional argument NOCONV and renamed it to `skk-get-current-candidate-1'. 2000-09-29 Mikio Nakajima * READMEs/FAQ.txt: Fixed a description about $B!V8!:w$9$k<-=q$rA}$d(B $B$7$?$$$N$G$9$,!W(B. Sync up with a description about $B!V(BWnn $B$G$b(B Canna $B$G$bM9JXHV9f<-=q(B $B$,;H$($k$1$l$I!"(BSKK $B$G$O;H$($J$$$N(B ?$B!W(B * READMEs/FAQ.txt: Add a description about $B!V8!:w$9$k<-=q$rA}$d$7(B $B$?$$$N$G$9$,!W(B. * READMEs/skk-faq.txt: Rename to FAQ.txt. 2000-09-28 Tetsuo Tsukamoto * ptexinfmt.el: Sync with Wanderlust. 2000-09-27 Mikio Nakajima * Makefile: Change Maintainer to SKK Development Team. * SKK-CFG: Ditto. * SKK-MK: Ditto. * ccc.el: Ditto. * doc/skk.texi: Ditto. * etc/SKK.tut.E: Ditto. * etc/SKK.tut: Ditto. * experimental/skk-correct.el: Ditto. * experimental/skk-dcomp.el: Ditto. * experimental/skk-dos.el: Ditto. * experimental/skk-e18.el: Ditto. * experimental/skk-exsearch.el: Ditto. * experimental/skk-exserv.el: Ditto. * experimental/skk-is-n.el: Ditto. * experimental/tut-code/skk-def.el: Ditto. * experimental/tut-code/skk-tutcode.el: Ditto. * make.bat: Ditto. * skk-abbrev.el: Ditto. * skk-auto.el: Ditto. * skk-comp.el: Ditto. * skk-cursor.el: Ditto. * skk-develop.el: Ditto. * skk-gadget.el: Ditto. * skk-isearch.el: Ditto. * skk-jisx0201.el: Ditto. * skk-kakasi.el: Ditto. * skk-kcode.el: Ditto. * skk-leim.el: Ditto. * skk-look.el: Ditto. * skk-lookup.el: Ditto. * skk-num.el: Ditto. * skk-obsolete.el: Ditto. * skk-server.el: Ditto. * skk-setup.el.in: Ditto. * skk-study.el: Ditto. * skk-tut.el: Ditto. * skk-vars.el: Ditto. * skk-viper.el: Ditto. * skk-xm20_4.el: Ditto. * skk.el: Ditto. * tinyinstall.el: Ditto. * vip.el: Ditto. 2000-09-26 Tetsuo Tsukamoto * skk-num.el (skk-num-type3-kanji-1, skk-num-type5-kanji-1): Don't miss "$BK|(B" {"$Bh_(B"}, "$B2/(B", "$BC{(B", "$B5~(B". 2000-09-25 Mikio Nakajima * READMEs/skk-faq.txt: Update a description about how to get skk-tools. 2000-09-25 Shuhei KOBAYASHI * skk-num.el: Eliminate CL dependency. (skk-num-compute-henkan-key, skk-num-convert): Expand `setf' to `setcar'/`nthcdr' pair. * skk.el: (skk-insert, skk-previous-candidate): Fix interactive spec. 2000-09-25 Tetsuo Tsukamoto * ptexinfmt.el: Sync with Wanderlust. 2000-09-22 Tetsuo Tsukamoto * READMEs/CVS_00readme: Update for CVS 1.11. 2000-09-18 Tetsuo Tsukamoto * Makefile (package): Call `SKK-MK-compile-package'. * SKK-MK (SKK-MK-compile-package, SKK-MK-generate-autoloads-el-package): New functions. (SKK-MK-install-package): Call `SKK-MK-compile-package'. 2000-09-17 Mikio Nakajima * skk-vars.el: Grouping by function and filename. (skk-custom-by-function): New group. (skk-custom-by-filename): Ditto. (skk-use-look): Doc sync up with READMEs/skk-faq.txt. (skk-kutouten-type): Use `defcustom' instead of `skk-deflocalvar'. (skk-faces): Removed. (skk-decoration): Ditto. (skk-dictionary): Ditto. (skk-filenames): Ditto. (skk-hooks-and-functions): Ditto. (skk-keybinds): Ditto. (skk-okurigana): Ditto. (skk-misc): Ditto. (skk-abbrev): Ditto. (skk-auto): Change its group to skk-custom-by-filename. (skk-comp): Ditto. (skk-cursor): Ditto. (skk-gadget): Ditto. (skk-isearch): Ditto. (skk-jisx0201): Ditto. (skk-kakasi): Ditto. (skk-kcode): Ditto. (skk-look): Ditto. (skk-lookup): Ditto. (skk-num): Ditto. (skk-server): Ditto. (skk-init-file): Use `defcustom' instead of `defvar'. 2000-09-17 Tetsuo Tsukamoto * skk-isearch.el: Add comments. * skk-jisx0201.el: No real changes. Just a matter of appearance. * skk-leim.el: Don't check for `register-input-method'. 2000-09-16 Tetsuo Tsukamoto * SKK-CFG: Rewrite. 2000-09-16 Mikio Nakajima * READMEs/README: Updated. 2000-09-15 Mikio Nakajima * READMEs/Contributors (Contributors): Change Akiho san's e-mail address. * doc/skk.texi ($B$*4j$$(B): Change `skk-jisyo@kuis.kyoto-u.ac.jp' to `skk@ring.gr.jp'. 2000-09-14 Tetsuo Tsukamoto * skk-isearch.el (skk-isearch-delete-char): Rewrite the last change. 2000-09-13 Tetsuo Tsukamoto * patch/e18/README.ja: Update. * patch/e18/bytecomp-2.07/eval.c-e19.patch: <= eval.c.patch. * patch/e18/bytecomp-2.07/eval_c-e18.patch: New file. 2000-09-13 Mikio Nakajima * patch/custom-1.9962.patch: Moved to e19 subdirectory. 2000-09-12 Tetsuo Tsukamoto * SKK-MK: Emacs 18 only. Work around for a bug in cl.el. * experimental/skk-e18.el: Modify the error message. * patch/e18: New repository. * patch/e18/{README.ja, advice.el, cl.elc, cl_el-defsetf.patch}: New files. * patch/e18/bytecomp-2.07: New repository. * patch/e18/bytecomp-2.07/{README.en, README.ja, byte-optimize.el, bytecomp-runtime.el, bytecomp.el, bytecomp_el-mule-1_1_pl04.patch, disass.el, eval.c.patch, make-docfile.c}: New files. * skk-isearch.el (skk-isearch-find-keys-define): Simplify. (skk-isearch-delete-char): Do not show white-space regular expressions. 2000-09-12 Mikio Nakajima * READMEs/skk-faq.txt (http): Update. * experimental/GUIDELINE: Update. * experimental/tut-code/skk-def.el: Update comments for daredevil. * experimental/tut-code/skk-tutcdef.el: Ditto. * experimental/tut-code/skk-tutcode.el: Ditto. 2000-09-11 Tetsuo Tsukamoto * skk-isearch.el (skk-isearch-find-keys-define): Use `dolist'. (skk-isearch-delete-char): Ditto. (skk-isearch-setup-keymap): Use `do'. (skk-isearch-search-string-regexp): Ditto. * skk-vars.el (skk-num-list): Remove autoload cookie. 2000-09-11 Mikio Nakajima * Makefile (DATE): Do not use universal time. (MD5): New variable. (SNAPBASE): Ditto. (TAR): Do not specify absolute path. (tar): Rearrange for making archive in openlab.ring.gr.jp. (snapshot): Ditto. (clean): Remove files that match `.#*' (files which make by CVS when it finds there are conflicts). 2000-09-10 Tetsuo Tsukamoto * READMEs/CVS_00readme: Use overlays instead of text properties. * READMEs/CVS_on_Windows: Update. * SKK-MK: Tiny bug fix for Emacs 18. * skk-look.el (skk-look-ispell): Set VAR. 2000-09-10 Mikio Nakajima * Makefile (snapshot): Bug fixed. * Makefile (tar): Modify to make archive in openlab.ring.gr.jp. (snapshot): Ditto. * READMEs/skk-faq.txt: Updated. * skk-setup.el.in (isearch-mode-end-hook): Remove skk-set-cursor-properly from the hook. * doc/skk.texi ($BF~NO%b!<%I$N0l;~JQ99(B): Typo fixed. * skk-look.el (skk-look-ispell): Call `skk-look-1' for a word originally handed to when ispell puts miss and guess out. Slightly simplify condition. Comment modified. 2000-09-09 Tetsuo Tsukamoto * Makefile (package): New target. * SKK-MK (SKK-MK-running-xemacs): Abolish. Check the feature xemacs instead. (SKK_INFOS): Abolish. Stop guessing how many files resulting info will be split into. (SKK_INFO): New variable. (PACKAGE_DATADIR): <= `SKK_PACKAGE_DATADIR'. (PACKAGE_LISPDIR): <= `SKK_PACKAGE_LISPDIR' (SKK_PACKAGE_NOT_USE): Abolish. (SKK-MK-install-package): Use `SKK-MK-compile'. (SKK-MK-generate-autoloads-el): Modify for XEmacs. * skk-look.el (skk-look-ispell): Use the original word as well as misses and guesses. 2000-09-09 Mikio Nakajima * skk-look.el (skk-look-ispell): Call `skk-look-1' for a word originally handed to when ispell recognize spelling of WORD is right. * experimental/skk-exsearch.el (search-engine): Do not put out originally handed word. 2000-09-09 Tetsuo Tsukamoto * READMEs/CVS_00readme: Update. * skk-cursor.el (skk-mode-hook): Call `skk-mode-once-again'. * skk-vars.el (skk-coding-system-alist): sjis => shift_jis. * skk.el (skk-henkan-show-candidate-subr): If the selected frame has 2 or more windows, delete other windows. If point is not visible in the selected window, put point in the center of the window. 2000-09-09 Mikio Nakajima * experimental/skk-cursor2.el: Merged skk-cursor2 and skk-cursor3 into skk-cursor.el. * experimental/skk-cursor3.el: Ditto. * skk-cursor.el: Ditto. * SKK-MK (SKK_MODULES): Remove skk-cursor2 and skk-cursor3. Add ccc if FSF Emacs is running. (SKK_DAREDEVIL_NOT_USE): Add `skk-cursor2' and `skk-cursor3'. * experimental/ccc.el (ccc-before-update-function): Removed. (update-buffer-local-frame-params): Do not call `ccc-before-update-function'. (buffer-local-cursor-color-default): Bug fixed. (buffer-local-foreground-color-default): Ditto. (buffer-local-background-color-default): Ditto. * experimental/skk-cursor2.el: Use `set-buffer-local-cursor-color' for advice of each element of `skk-cursor2-buffer-local-frame-params-ad-targets'. Do not set `ccc-before-update-function'. * skk-look.el (skk-look): Typo fixed. * skk-viper.el (skk-cursor-set-properly): Removed advice. (skk-cursor-current-color): (read-from-minibuffer): Add `update-buffer-local-frame-params' to `minibuffer-setup-hook' instead of `skk-cursor-setup-minibuffer'. 2000-09-08 Mikio Nakajima * skk-look.el (skk-look-1): Do not put out originally handed word. (skk-look-ispell): Call look command by each candidate put out by ispell. Set symbol `error' to POSS if ispell-parse-output returns nil (and make a error message if POSS is equal to symbol `error'. (skk-look): Do not union lists made by `skk-look-1' and `skk-look-ispell'. (skk-look-completion): Ditto. Do not remove `skk-look-completion-words' from a list made by `skk-look-1' or `skk-look-ipell' (as it is removed already). 2000-09-07 Tetsuo Tsukamoto * Makefile (set_jisyo): New variable. * SKK-MK (SKK_SET_JISYO): New variable. (SKK-MK-install): Set `skk-large-jisyo' if `SKK_SET_JISYO' is non-nil. (SKk-MK-install-package): Ditto. * skk-vars.el (skk): Place this group under "Mule" and "Leim". 2000-09-07 Mikio Nakajima * skk-look.el (skk-look-ispell): Return not only miss but also guess. 2000-09-07 Tetsuo Tsukamoto * skk-look.el (skk-look): Bug fixed. (skk-look-ispell): Ditto. 2000-09-06 Tetsuo Tsukamoto * SKK-MK (SKK-MK-server-installed-p): New function. (SKK-MK-install): Don't set `skk-large-jisyo' if a local server is found. (SKk-MK-install-package): Ditto. * skk-isearch.el (skk-isearch-mode-setup): Don't call `toggle-input-method' so that the SKK status is preserverd. * skk-setup.el.in (skk-aux-large-jisyo): Use @AUXDIC@ instead of @DIC@. * skk-vars.el (skk-look-use-ispell): Check if ispell.el is installed. 2000-09-06 Mikio Nakajima * READMEs/MEMO.txt: Add some idea. * READMEs/CVS_digest: Typo fixed. Add description about pySKK. 2000-09-06 Tetsuo Tsukamoto * skk-leim.el (skk-leim-exit-from-minibuffer): New function. (skk-activate, skk-auto-fill-activate): In minibuffer, add `skk-leim-exit-from-minibuffer' to `minibuffer-exit-hook'. 2000-09-04 Tetsuo Tsukamoto * SKK-MK: Under Emacs 18, load bytecomp-runtime.el if possible. * experimental/nicola: New repository. Import NICOLA-DDSKK. ChangeLog files in this repository will show details. * skk-cursor.el (execute-extended-command): Advise this function under XEmacs only. * skk-isearch.el (skk-isearch-mode-setup): Activate input method in the working buffer, if `current-input-method' is japanese-skk{-auto-fill}. (skk-isearch-mode-cleanup): Inactivate input method in the working buffer, if `default-input-method' is japanese-skk{-auto-fill}. (skk-isearch-find-keys-define): Don't overwrite the keymaps for prefix keys. (skk-isearch-setup-keymap): Keys for `toggle-input-method' call `skk-isearch-skk-mode', if `default-input-method' is japanese-skk{-auto-fill}. (skk-isearch-skk-mode): Add an autoload cookie. * skk-leim.el: Now don't set `current-input-method-title'. Always show `skk-input-mode-string'. * skk-setup.el.in (isearch-mode-end-hook): Call `skk-isearch-mode-cleanup' if the feature skk-isearch is provided. (isearch-mode-map): Make sure C-\ is bound to `isearch-toggle-input-method'. (isearch-toggle-input-method): New advice. Invoke skk-isearch if `default-input-method' is japanese-skk{-auto-fill}. (isearch-message-prefix): Don't show `current-input-method-title' if `default-input-method' is japanese-skk{-auto-fill}. 2000-09-04 Mikio Nakajima * skk-look.el (skk-look-ispell): New function. (skk-look-completion): Use `skk-look-ispell' if `skk-look-use-ispell' is non-nil. (skk-look): Ditto. * skk-vars.el (skk-look-use-ispell): New user option. 2000-08-31 Tetsuo Tsukamoto * SKK-MK: Under Emacs 18, Use `if' instead of `when' where it is not yet defined. * ptexinfmt.el: Sync with Wanderlust. * skk-jisx0201.el (skk-toggle-katakana): Set the extent for `skk-input-mode-string' under XEmacs. * skk-macs.el (skk-mode-off, skk-j-mode-on, skk-latin-mode-on, skk-jisx0208-latin-mode-on, skk-abbrev-mode-on): Ditto. * skk.el: Changes for XEmacs -- (skk-mode): Create extents for `skk-input-mode-string'. (skk-setup-modeline): If `skk-status-indicator' is left, Add an extent to the modeline format, as well as `skk-input-mode-string'. 2000-08-28 Tetsuo Tsukamoto * SKK-MK (SKK-MK-compile): Require cl for Emacs 18. * experimental/skk-e18.el: Don't require cl here. * skk-kcode.el (skk-make-char): Typo. 2000-08-27 Tetsuo Tsukamoto * experimental/skk-e18.el (call-process): Work around for Emacs 18.55. * ptexinfmt.el: New file imported from Wanderlust. * SKK-MK (SKK-MK-texinfo-format): Require ptexinfmt. (SKK-MK-compile): Work around for Emacs 18.55. * skk-num.el (skk-num-convert): Work around for Emacs 18.55. 2000-08-26 Tetsuo Tsukamoto * doc/skk.texi ($B"#%b!<%I$K$*$1$kJ8;zJQ49(B, $B?t;z$d5-9fJ8;z$NF~NO(B, etc):Update for SKK 10 and lator. (SKKIME): New section. 2000-08-25 Tetsuo Tsukamoto * experimental/skk-dos.el (skk-save-jisyo): Advise to preserve file modes. 2000-08-23 Tetsuo Tsukamoto * experimental/skk-dos.el: Work around for Demacs 1.2.0. * skk-vars.el (skk-isearch-switch): Default to nil. * skk.el (comint-send-input): New advice. (skk-make-temp-jisyo): Use short file name under MS-DOS. (skk-make-temp-file): Expand DIR before passing it to `expand-file-name'. 2000-08-20 Tetsuo Tsukamoto * skk-isearch.el (skk-isearch-delete-char): Call `skk-kakutei' if point in the working buffer is the same as {or less than} `skk-henkan-start-point'. 2000-08-19 Tetsuo Tsukamoto * READMEs/CVS_00readme: Update. 2000-08-19 YOSHIZAWA Masahiro * skk.el (skk-okurigana-prefix): Fix the condition description. 2000-08-18 Tetsuo Tsukamoto * READMEs/PROPOSAL: tm ML => APEL ML. * skk.el (skk-okurigana-prefix): Don't use `skk-char-octet' under Nemacs. 2000-08-16 Tetsuo Tsukamoto * SKK-MK (SKK-MK-generate-autoloads-el): Provide skk-autoloads. * skk-cursor.el (skk-cursor-current-color): No longer check if `skk-jisx0201-mode' is bound. * skk-jisx0201.el: Move variables to skk-vars.el. (skk-setup-modeline): No longer redefine this function. * skk-vars.el (skk-use-jisx0201-input-method): New user option. (skk-cursor-jisx0201-color, skk-jisx0201-mode-string, skk-jisx0201-mode-map, skk-jisx0201-base-rule-tree, skk-jisx0201-roman-rule-tree, skk-jisx0201-roman, skk-jisx0201-current-rule-tree, skk-jisx0201-mode): From skk-jisx0201.el. * skk.el (skk-regularize): Require skk-jisx0201 if `skk-use-jisx0201-input-method' is non-nil. Require skk-kanagaki if `skk-use-kana-keyboard' is non-nil. -- in this function instead of `skk-mode'. 2000-08-16 Tetsuo Tsukamoto * SKK-MK (SKK-MK-generate-autoloads-el): Always generate autoloads here. 2000-08-15 Tetsuo Tsukamoto * SKK-MK (SKK-MK-install,SKK-MK-generate-autoloads-el): if $(EMACS) is Emacs 20 or lator, generate autoloads by `update-autoloads-from-directories'. Don't install leim-list.el for Emacs 19 or earlier. (SKK_MODULES): Don't install skk-leim.el for Emacs 19 or earlier. * skk-leim.el: Register input methods here. (skk-activate, skk-auto-fill-activate): Advise `skk-setup-modeline' to do nothing. * skk-setup.el.in: Don't register input methods here. 2000-08-14 Tetsuo Tsukamoto * skk-jisx0201.el: Modify doc string. 2000-08-12 Tetsuo Tsukamoto * skk-gadget.el (skk-clock): Quit by any event. Play sounds, if available, under XEmacs. * skk-vars.el (skk-use-kana-keyboard): Default to nil. 2000-08-11 Tetsuo Tsukamoto * Makefile (tar, snapshot): Fix the problem that the resulting tar ball contains "..". * SKK-MK (SKK-MK-compile): Expand "." before passing it to `compile-elisp-modules'. * skk-tut.el (skktut-setup-question-buffer, skktut-setup-answer-buffer): Don't bind a key for a non-existent command `skktut-error-command'. * skk-vars.el (skk-use-kana-keyboard): New user option. * skk.el (skk-mode): Require `skk-kanagaki' if `skk-use-kana-keyboard' is non-nil. 2000-08-08 Tetsuo Tsukamoto * experimental/skk-kanagaki.el: Add comments. (skk-kanagaki-set-henkan-point-key, skk-kanagaki-abbrev-mode-key, skk-kanagaki-katakana-mode-key, skk-kanagaki-latin-jisx0208-mode-key, skk-kanagaki-hankaku-mode-key, skk-kanagaki-latin-mode-key, skk-kanagaki-code-input-key): New default value for Emacs 18. 2000-08-07 Tetsuo Tsukamoto * experimental/skk-kanagaki.el: New file. * skk-vars.el (skk-rom-kana-base-rule-list, skk-rom-kana-rule-list, skk-jisx0208-latin-vector, skk-kana-rom-vector, skk-isearch-mode-string-alist, skk-server-host, skk-server-prog, skk-server-jisyo, skk-lookup-kana-vector): Fix the custom type descriptions. * skk.el (skk-mode): Don't use `skk-previous-candidate-char' under skk-kanagaki. (skk-henkan-show-candidates): Work even if the last event is not invoked by a character key. (skk-previous-candidate): Ditto. 2000-08-04 Tetsuo Tsukamoto * skk-jisx0201.el, skk-tut.el, skk.el: Replace `canna-henkan-region-or-self-insert' with `skk-insert'. 2000-08-02 Tetsuo Tsukamoto * skk.el (skk-search): Undo the previous change. 2000-08-02 Tetsuo Tsukamoto * experimental/skk-e18.el (frame-width): Call `screen-width'. * skk-look.el (skk-look): Bind `skk-use-numeric-conversion' to nil. * skk.el (skk-search): When `skk-use-numeric-conversion' is non-nil, also do non-numeric conversion after numeric conversion. (skk-henkan-show-candidate-subr): If Emacs has MULE 4.0 or greater, call `string-bytes' instead of `string-width'. When candidates are displayed using a normal window, assign one line to each candidate. 2000-07-21 Mikio Nakajima * skk-tut.el (skktut-init-variables-alist): Set `skk-cursor-change-width' nil instead of t. 2000-07-18 Tetsuo Tsukamoto * skk-vars.el (skk-isearch-switch, skk-isearch-state, skk-isearch-in-editing): New internal variables. * skk-isearch.el (skk-isearch-initial-mode): Restore the previous SKK status for the isearch after `isearch-edit-string'. (skk-isearch-setup): Set `skk-isearch-switch' to t. Set `skk-isearch-in-editing' to nil. (skk-isearch-cleanup): Set `skk-isearch-switch' to nil. If `skk-isearch-in-editing' is nil, set `skk-isearch-state' to nil. (skk-isearch-newline): Turn on SKK mode when `skk-isearch-current-mode' reurns nil. (isearch-repeat): Advise this function only when `skk-isearch-switch' is t. (isearch-search): Ditto. (isearch-edit-string): Ditto. Save the value `skk-isearch-current-mode' returns. Set `skk-isearch-in-editing' to t. 2000-07-18 Mikio Nakajima * skk-tut.el (skktut-init-variables-alist): Removed `(skk-previous-completion-function . 'skk-previous-completion-original)' and `(skk-completion-function . 'skk-completion-original)' pairs. * skk-comp.el (skk-completion-original): Merged into `skk-completion'. (skk-completion-1): New subroutine. (skk-completion): Do not use temporary variable `COMPLETION-WORD'. (skk-previous-completion-original): Merged into `skk-previous-completion'. * skk-vars.el (skk-package-data-directory): Removed. * experimental/skk-exsearch.el: Require path-util. Remove all unnecessary spaces between paren. (skk-look-search): Remove `(skk-look-search)' from `skk-current-search-prog-list'. (look): Use `exec-installed-p'. (cdbget): Ditto. 2000-07-11 Mikio Nakajima * experimental/skk-cursor3.el: Change all the second argument of set-face-property to `background'. (skk-mode): Remove t condition (set cursor to `skk-cursor-latin-color'). (skk-auto-fill-mode): Ditto. * skk-leim.el Do not register input-method. (skk-leim-change-input-method-title): New function. (skk-abbrev-mode): New advice. (skk-auto-fill-mode): Ditto. (skk-jisx0201-mode): Ditto. (skk-jisx0208-latin-mode): Ditto. (skk-kakutei): Ditto. (skk-latin-mode): Ditto. (skk-mode): Ditto. (skk-toggle-kana): Ditto. * skk-setup.el.in (isearch-mode-end-hook): Separate into two parts, isearch cleanup parts and cursor parts. Add advice to `toggle-input-method'. Add title of japanese-skk. Add hook `isearch-mode-hook' only when * skk.el (skk-setup-modeline): Change condition t to `(eq skk-status-indicator 'minor-mode)'. (skk-mode): When exit, set `skk-input-mode-string' null string unless `skk-status-indicator' is `minor-mode'. When entering into skk-mode, set `skk-input-mode-string' `skk-hiragana-mode-string' if `skk-status-indicator' is `left'. * skk-jisx0201.el: Change condition t to `(eq skk-status-indicator 'minor-mode)'. 2000-07-09 Mikio Nakajima * skk-setup.el.in (isearch-mode-end-hook): Check if skk-cursor feature is provided or not. * SKK-MK (SKK_MODULES): Add skk-cursor3. 2000-07-09 YOSHIZAWA Masahiro * skk-setup.el.in (isearch-mode-end-hook): Bug fixed. 2000-07-08 Mikio Nakajima * experimental/skk-cursor3.el: New experimental program. * SKK-MK (SKK_MODULES): Add `skk-cursor2' and `ccc'. * skk-setup.el.in: Add check if skk-cursor2 feature is exists or not. * experimental/ccc.el: New experimental program. * experimental/skk-cursor2.el: Ditto (modified version of skk-cursor.el which uses `ccc.el'. 2000-06-24 Mikio Nakajima * skk-viper.el (viper-forward-word-kernel): Add check whether following character is Japanese JISX0213 or not. (viper-backward-word-kernel): Ditto. (viper-join-lines): Ditto. * skk-macs.el (skk-jisx0213-p): New inline function. * doc/skk.texi (Makefile$B$NJT=8$H%$%s%9%H!<%k(B): Change required APEL version 9.22 to 10.2. * skk.el (skk-version): Use `apel-version'. 2000-06-23 Mikio Nakajima * skk-vars.el (skk-last-input-mode): Removed. * skk-cursor.el (skk-cursor-current-color): Add comment. * skk-macs.el (skk-abbrev-mode-on): Do not initialize `skk-katakana'. * skk.el (skk-abbrev-mode): Do not set `skk-last-input-mode'. (skk-kakutei): Do not refer to `skk-last-input-mode'. (skk-start-henkan): Keep `skk-katakana'. 2000-06-23 Takao KAWAMURA * skk-lookup.el (skk-lookup-agent-list): Set `skk-lookup-search-agents' correctly. 2000-06-22 Mikio Nakajima * skk-obsolete.el (skk-obsolete-function-alist): Add `(skk-toggle-kana . skk-toggle-characters)' and `(skk-current-insert-mode . skk-current-input-mode)' pairs. * skk-abbrev.el: Remove unnecessary spaces between parens. * skk-auto.el: Ditto. * skk-comp.el: Ditto. * skk-develop.el: Ditto. * skk-gadget.el: Ditto. * skk-isearch.el: Ditto. * skk-kakasi.el: Ditto. * skk-kcode.el: Ditto. * skk-look.el: Ditto. * skk-lookup.el: Ditto. * skk-obsolete.el: Ditto. * skk-server.el: Ditto. * skk-study.el: Ditto. * skk-tut.el: Ditto. * skk-vars.el: Ditto. * skk-viper.el: Ditto. * skk-xm20_4.el: Ditto. * skk.el: Ditto. * vip.el: Ditto. * experimental/skk-dcomp.el: Ditto. * experimental/tut-code/skk-def.el: Ditto. * experimental/tut-code/skk-tutcdef.el: Ditto. * experimental/tut-code/skk-tutcode.el: Ditto. * skk-cursor.el (skk-cursor-current-color): Check if `skk-abbrev-mode' is nil or not in a upper region of the function. * skk-isearch.el (skk-isearch-mode-cleanup): Use `skk-current-input-mode'. * skk-vars.el (skk-last-input-mode): New internal variable. * skk.el (skk-toggle-kana): Renamed to `skk-toggle-characters'. Bug and doc fixed. Call *-region function intead of *-henkan not to call `skk-kakutei'. Do not setup `skk-input-mode-string'. Do not call `force-mode-line-update'. (skk-kakutei): Check if `skk-mode' is nil or non-nil in a lower region of the function in order not to initialize internal variables before calling `skk-search-excluding-word-pattern-function'. Do not call `force-mode-line-update'. (skk-mode): Do not setup `skk-input-mode-string'. (skk-abbrev-mode): Set current input mode to `skk-last-input-mode'. Call `skk-kakutei' only when `skk-henkan-active' is non-nil. * skk-lookup.el (skk-lookup-search): Add temporary variable V. * skk-macs.el (skk-j-mode-on): Setup `skk-input-mode-string'. (skk-current-insert-mode): Renamed to `skk-current-input-mode'. * READMEs/MEMO.txt: New file. 2000-06-21 Mikio Nakajima * skk-lookup.el (skk-lookup-process-okurigana): When `skk-henkan-okuri-strictly' is nil check prefix of OKURIGANA is equal to `skk-okuri-char' or not. (skk-lookup-search): Call `skk-lookup-process-henkan-key-function' to process HENKAN-KEY when `skk-lookup-process-henkan-key-function' is non-nil. * skk-vars.el (skk-lookup-kana-vector): New user variable. (skk-lookup-process-henkan-key-function): Ditto. (skk-lookup-prefix-and-kana-map): New internal variable. * skk-tut.el (skktut-init-variables-alist): Bug fixed. * skk.el (skk-okurigana-prefix): Return nil when OKURIGANA is not hirakana string. 2000-06-20 Mikio Nakajima * SKK-CFG: Remove unnecessary comments. * skk-num.el: Remove unnecessary spaces between parens. 2000-06-19 YOSHIZAWA Masahiro * SKK-MK (SKK-MK-install-package): Missing quote. 2000-06-19 TSUKAMOTO Tetsuo * SKK-MK (SKK_MODULES): Do not install skk-study.el under Emacs 18. * tinyinstall.el (data-directory): Give it the same value as `exec-directory', under Emacs 18. 2000-06-19 Mikio Nakajima * skk-num.el (skk-num-update-jisyo): Not to show debug message. Bind `skk-use-numeric-conversion' to nil temporarily. Set buffer to ` *.skk-jisyo*'. * Makefile (clean): Add leim-list.el as a target. * skk.el (skk-henkan-show-candidate-subr): Bug fixed. * skk-num.el (skk-num-recompute): Setup `skk-num-recompute-key' in a upper region of the function code. * skk-vars.el (skk-lookup-search-agents): Change its default value to nil and remove require tag. (skk-num-recompute-key): Change to global internal variable. * skk-lookup.el: All variables and constants are moved to skk-vars.el. (skk-lookup-search): Not to search if `skk-num-list' or `skk-num-recompute-key is non-nil. Do not convert `skk-henkan-key' by `skk-num-compute-henkan-key'. (skk-lookup-agent-list): Initialize `skk-lookup-search-agents' when it has a null value. 2000-06-18 Mikio Nakajima * skk-lookup.el (skk-lookup-process-okurigana): Bug fixed. 2000-06-17 Mikio Nakajima * SKK-MK (SKK-MK-install): Bug fixed. (SKK-MK-install-package): Ditto. (SKK-MK-install): Copy skk-setup.el to leim-list.el and install both of them. (SKK-MK-install-package): Ditto. * skk-lookup.el (skk-lookup-process-okurigana): Return nil if STRING is a null string. * skk-leim.el: Remove unnecessary spaces between parens. * skk-setup.el.in: Register SKK as an input method if Emacs has `register-input-method'. Add `skk-tut-file' setup strings. * SKK-MK (SKK-MK-make-setup-file): Change its argument `DICTIONARY' to `SPEC'. (SKK-MK-install-package): Do not use multiple let scopes. Use `SKK-MK-compile-info'. Use new `SKK-MK-make-setup-file'. (SKK-MK-install): Ditto. Make `SKK-MK-make-setup-file' to setup as to tutorial file. 2000-06-03 Mikio Nakajima * SKK-MK (SKK-MK-install): Bug fixed. (SKK-MK-install-package): Ditto. 2000-05-31 Mikio Nakajima * skk-cursor.el: Add `keyboard-quit' to FUNCS list. Remove duplicate `kill-buffer' from FUNCS list. * experimental/GUIDELINE: Renewed. 2000-05-15 Mikio Nakajima * skk-lookup.el (skk-lookup-option-alist): Typo fixed. (skk-lookup-default-option-list): Ditto. 2000-05-14 Mikio Nakajima * skk-lookup.el: Add install notes to Commentary. Remove unnecessary blanks between parens. (skk-lookup-option-alist): As to the list whose car is "GENIUS", change 6th element nil to ",". Change all S expressions in nested lists which represent regexp to search to symbol `prefix'. Doc fixed. Change sexp choice in option to `(const nil)'. (skk-lookup-default-option-list): Ditto. 2000-04-28 Mikio Nakajima * skk.el (skk-truncate-message): Removed. (skk-henkan-show-candidate-subr): Pop up another buffer to display long string that cannot displayed wholly in the echo area. (skk-henkan-show-candidates): Use `save-window-excursion' for the purpose above. 2000-04-27 Mikio Nakajima * READMEs/README.win: Change file name descriptions `Readme' to `README' and `Install' to `INSTALL'. 2000-4-27 Yuh Ohmura * READMEs/README.win: add SKK on Windows and skkserve on windows. 2000-04-27 Mikio Nakajima * READMEs/README.win: Reorganize it as outline mode. * READMEs/INSTALL: Typo fixed. 2000-04-26 Yuh Ohmura * make.bat: Change maintenner. * READMEs/README.win: add about dictionary 2000-04-26 Mikio Nakajima * READMEs/INSTALL: Add description about dictionaries. * doc/skk.texi (Makefile$B$NJT=8$H%$%s%9%H!<%k(B): Ditto. (.emacs$B$N@_Dj(B): Add description about `skk-setup.el', and change description about isearch-mode-end-hook. Change open parens to closed ones. Change `SKK 10' to `Daredevil SKK'. * SKK-MK (SKK-MK-make-setup-file): New function. (DICDIR): New variable. (SKK_DICTIONARIES): Ditto. (SKK-MK-install): Install dictionaries if they exist in ./dic subdirectory. (SKK-MK-install-package): Ditto. * Makefile (clean): Add `skk-setup.el'. * dic/README: New file. * skk-setup.el.in: New file. 2000-04-09 Takao KAWAMURA * skk-vars.el (skk-keep-record): change type from 'boolean to '(choice integer (const t) (const nil)) * skk.el (skk-save-jisyo-original): Move calling `skk-record-jisyo-data' into `skk-before-kill-emacs-hook'. (skk-record-jisyo-data): if `skk-keep-record' is a integer, skk-record-file does not grow over it. 2000-04-06 Mikio Nakajima * experimental/skk-exsearch.el (core-engine): Bug fixed. (search-engine): New argument ARGUMENT. (skk-cdbget-search): Take SKK-HENKAN-KEY as its second argument. 2000-04-03 Murata Shuuichirou * skk-viper.el (skk-viper-normalize-map): Use local-variable-if-set-p instead of local-variable-p, when running on FSF emacs. Sync with XEmacs case. 2000-03-29 Yuh Ohmura * READMEs/CVS_on_Windows: cancel below change 2000-03-29 Yuh Ohmura * READMEs/CVS_on_Windows: add about timezone. 2000-03-24 Mikio Nakajima * experimental/skk-exserv.el (server-version): Bug fixed. * SKK-MK (SKK_MODULES): Add `skk-exserv'. * experimental/skk-exserv.el: New experimental program. * experimental/skk-exsearch.el (search-engine): Convert `skk-henkan-key' by `skk-num-compute-henkan-key' if `skk-use-numeric-conversion' is non-nil. Remove arg ARGUMENT. (skk-cdbget-search): Remove second argument `skk-henkan-key'. 2000-03-22 Mikio Nakajima * skk-server.el (skk-adjust-search-prog-list-for-server-search): Remove unproper comments. 2000-03-21 Mikio Nakajima * experimental/skk-exsearch.el (search-engine): Get forward one character if there is a candidates string in the working buffer. (synchronous-search-engine): Removed (server is connecting with TCP network stream, not started by `start-process'...) (server-search-engine): Removed. (synchronous-search-engine): New slot `success-exit-code' and `error-exit-code' are provided. (core-engine): Refer to slot of eigine `success-exit-code' and `error-exit-code'. If error occured, show stderr as error message. Bug fixed as to BUFFER argument of `call-process'. 2000-03-20 Mikio Nakajima * skk-server.el (skk-open-server): Use temporary variable PROC for NEmacs. * experimental/skk-exsearch.el (search-engine): New superclass. (synchronous-search-engine): Change it to class (not superclass). (asynchronous-search-engine): Specify `search-engine' as its superclass. Doc fixed. (setup-synchronous-engine): New function. 2000-03-19 Mikio Nakajima * SKK-MK (SKK_MODULES): Add skk-exsearch. * experimental/skk-exsearch.el: New experimental program. * skk-develop.el: Move edebug specs of `skk-save-point' and `skk-with-point-move' to skk-macs.el. 2000-03-16 Mikio Nakajima * SKK-MK (SKK-MK-cleanup-trouble-makers): Removed. (SKK-MK-install): Do not use `SKK-MK-cleanup-trouble-makers'. (SKK-MK-install-package): Ditto. (LISPDIR): Remove space between a S expression and paren. (SKK-MK-install): Ditto. (SKK-MK-install-package): Ditto. (SKK-MK-texinfo-format): Ditto. (SKK-MK-what-where): Ditto. (SKK-MK-texinfo-format): Bind `standard-output' to nil. (SKK-MK-generate-autoloads-el): Ditto. (SKK-MK-compile): Remove local `standard-output'. (write-region): Removed. 2000-03-13 Takao KAWAMURA * Makefile (clean): Doesn't remove ../ddskk*. (tar): Remove ../ddskk*. (snapshot): Ditto. 2000-03-12 Mikio Nakajima * skk-vars.el (skk-codename): Specify station name only. * Makefile (snapshot): New entry. 2000-03-11 Mikio Nakajima * Makefile (tar): Modify for tar 1.12. (clean): Remove old archive, links and backup file initiated with dot. * ChangeLog: Move issues before 1999 to ChangeLog.0. 2000-02-25 Daiki Ueno * skk.el (skk-setup-modeline): Use `add-minor-mode' under XEmacs. * skk-kcode.el (skk-input-by-code-or-menu-jump): Use "%s" for the 1st argument of `message'. 2000-02-06 Kenichi OKADA * skk-vars.el (skk-emacs-type): Add `mule5'. (skk-kcode-charset): Ditto. (skk-coding-system-alist): Ditto. (skk-kcode-charset-list): Ditot. * skk.el (skk-jisx0208-to-ascii): Ditto. (skk-mode): Ditto. * skk-macs.el (skk-emacs-type): Ditto. (skk-detect-emacs): Ditto. (skk-str-length): Ditto. (skk-substring): Ditto. (skk-ascii-char-p): Ditto. (skk-str-ref): Ditto. (skk-jisx0208-p): Ditto. * skk-kcode.el (skk-make-char): Ditto. (skk-display-code): Ditto. 2000-02-05 Tsukamoto Tetsuo * experimental/skk-e18.el (insert-and-inherit): Sync with APEL. (number-to-string): Ditto. 2000-01-31 Mikio Nakajima * skk.el (skk-auto-fill-mode): Add defition for Emacs 18. * skk-macs.el (skk-do-auto-fill): Add defition for Emacs 18. 2000-01-30 Tsukamoto Tetsuo * experimental/skk-dos.el (require): Fix. * experimental/skk-e18.el (insert-file-contents-as-coding-system): Sync with APEL. * skk-macs.el (skk-j-mode-on): Create a local keymap here. (skk-latin-mode-on): Ditto. (skk-jisx0208-latin-mode-on): Ditto. (skk-abbrev-mode-on): Ditto. * skk-vars.el (skk-kakutei-key): The value is not necessarily a string. * skk.el (skk-e18-setup): Do not let local key bindings in `skk-j-mode-map', `skk-latin-mode-map', `skk-jisx0208-latin-mode-map', `skk-abbrev-mode-map'. These are not local variables. 2000-01-30 Tsukamoto Tetsuo * skk.el (skk-isearch-forward, skk-isearch-forward-regexp, skk-isearch-backward, skk-isearch-backward-regexp): Enclose with `static-unless' instead of `unless'. 2000-01-30 Mikio Nakajima * experimental/skk-e18.el (skk-hiragana-to-katakana): Moved to skk.el. (skk-katakana-to-hiragana): Ditto. (unread-command-events): Removed. * skk-macs.el (skk-lisp-prog-p): Use `skk-ascii-char-p'. (skk-unread-event): Add definition for Emacs 18. 2000-01-29 Tsukamoto Tetsuo * skk.el: Check `emacs-major-version' instead of `emacs-version' under Emacs 18. 2000-01-29 Tsukamoto Tetsuo * skk-jisx0208.el (skk-setup-modeline): Set the value of `mode-line-format' in each buffer. * skk.el (skk-setup-modeline): Ditto. 2000-01-29 Tsukamoto Tetsuo * experimental/skk-e18.el (skk-hiragana-to-katakana): New function for Nemacs. (skk-katakana-to-hiragana): Ditto. (window-minibuffer-p): Refer to WINDOW when it is given. * skk.el (skk-search-and-replace): Use `goto-char' to go back to the beginning of the match, instead of `backward-char'. 2000-01-29 Daiki Ueno * skk-macs.el (skk-charsetp): Rearrange conditionals. 2000-01-28 Tsukamoto Tetsuo * skk.el (skk-e18-setup): Add `skk-abbrev-mode-map'. 2000-01-28 Mikio Nakajima * skk.el (skk-make-char): Moved to skk-kcode.el. * skk-vars.el (skk-cursor-change-width): Bind default variable to nil for nemacs. (skk-use-color-cursor): Ditto. (skk-hankaku-alist): Define for mule1 and nemacs, too. (skk-coding-system-alist): Define string and number data for nemacs. * experimental/skk-e18.el (skk-j-mode-on): Removed (skk-j-mode-on): Ditto. (skk-latin-mode-on): Ditto. (skk-jisx0208-latin-mode-on): Ditto. (skk-abbrev-mode-on): Ditto. (skk-hankaku-alist): Ditto. (skk-emulate-original-map): Ditto. (skk-mode): Remove advice. (skk-e18-setup): Moved to skk.el. (skk-current-local-map): Ditto. (skk-e18-self-insert-keys): Ditto. 2000-01-27 Tsukamoto Tetsuo * experimental/skk-e18.el (overlayp): New emulation. 2000-01-27 Mikio Nakajima * experimental/skk-correct.el: New experimental program. * SKK-MK (SKK_MODULES): Add skk-correct. * skk.el: Do not occur error even on Emacs 18 (just warning...). (skk-jisx0208-to-ascii): Add defition taken from skk-e18.el for nemacs and mule1. * experimental/skk-e18.el (skk-jisx0208-to-ascii): Removed. 2000-01-26 Tsukamoto Tetsuo * experimental/skk-e18.el (save-match-data): `defmacro-maybe' instead of `defmacro'. 2000-01-26 Mikio Nakajima * skk-macs.el (skk-ascii-char-p): typo fixed. 2000-01-26 Tsukamoto Tetsuo * experimental/skk-e18.el (skk-hankaku-alist): New variable. (skk-jisx0208-to-ascii): New function. 2000-01-26 Mikio Nakajima * skk.el (skk-henkan-show-candidate-subr): Revive. 2000-01-25 Mikio Nakajima * skk-macs.el (skk-str-length): Use `string-to-char-list' for Emacsen other than XEmacs, Mule4 and Mule3 (hereinafter referred to as `old Emacs'. (skk-str-ref): Ditto. (skk-read-event): Use `read-char' for old Emacs. (skk-substring): Use last definition for old Emacs. (skk-ascii-char-p): Compare character using `<' for Mule1 and NEmacs. (skk-jisx0208-p): Ditto. * skk-kcode.el (skk-make-string): Do not use `skk-make-char' for NEmacs. * skk.el (skk-make-temp-file): Use `expand-file-name'. Set end slashed directory to temporary variable DIR. Do not access A drive even if system-type is MS-DOS oriented one. (skk-make-char): Use last definition for mule1. (skk-mode): Use static-if for for the place using `skk-emacs-type'. (skk-kill-emacs-without-saving-jisyo): Ditto. (skk-henkan-show-candidates): Ditto. * experimental/skk-e18.el (read-event): Removed. (skk-in-minibuffer-p): Ditto. (skk-lisp-prog-p): Ditto. (skk-make-string): Ditto. (skk-make-temp-file): Ditto. (skk-str-length): Ditto. (skk-str-ref): Ditto. (skk-make-char): Ditto. (window-minibuffer-p): Temporarily defined until poe-18.el defines it. 2000-01-25 Tsukamoto Tetsuo * SKK-MK (SKK_MODULES): Do not install skk-cursor.el for Emacs 18. * experimental/skk-e18.el (skk-use-color-cursor): Default to nil under Emacs 18. (skk-cursor-change-width): Ditto. (skk-e18-self-insert-keys): New variable. (skk-lisp-prog-p): Don't redefine here -- use the original. (skk-in-minibuffer-p): Ditto. (skk-str-length): New inline function. (skk-str-ref): Ditto. (search-backward): New advice -- by $BCfEg$5$s(B. (re-search-backward): Ditto. (window-minibuffer-p): New function -- by $BCfEg$5$s(B. (skk-e18-define-j-mode-map): Abolish. (insert-file-contents-as-coding-system): Work arond for Mule 1. (skk-make-string): This is only for Nemacs. (skk-make-char): This is for Mule 1. * skk-macs.el (skk-emacs-type): Add `mule1'. (skk-detect-emacs): Ditto. * skk-vars.el (skk-emacs-type): Ditto. (skk-background-mode): Avoid an error under Emacs 18. (skk-cursor-default-color): Ditto. (skk-isearch-overriding-local-map): Ditto. * skk.el (skk-isearch-forward): This function is not obsolete for Emacs 18 -- though Emacs 18 seems obsolete ;^) (skk-isearch-forward-regexp): Ditto. (skk-isearch-backward): Ditto. (skk-isearch-backward-regexp): Ditto. 2000-01-24 Takao KAWAMURA * SKK-MK (SKK-MK-generate-autoloads-el): corrected the indentation. 2000-01-23 Tsukamoto Tetsuo * Makefile (clean): Delete experimental/skk-isearch.el. * SKK-MK: Copy "experimental/skk-is-n.el" to "experimental/skk-isearch.el" under Emacs 18. (SKK-MK-compile): Also gather autoloads from "experimental/skk-isearch.el". (SKK-MK-generate-autoloads-el): Use a file name without its directory name. * experimental/skk-is-n.el: New file. 2000-01-23 Tsukamoto Tetsuo * Makefile (clean): Delete experimental/*.elc. * SKK-MK: Require "skk-e18" if `emacs-major-version' is 18. (SKK-MK-texinfo-coding-system): Modify for Emacs 18. (SKK_MODULES): Ditto. (SKK-MK-compile): Ditto. (SKK-MK-install): Ditto. (SKK_INFOS): Creating info files is not yet supported under Emacs 18. (SKK-MK-compile-info): Do nothing if `SKK_INFOS' is nil. (SKK-MK-generate-autoloads-el): Make sure the point is eobp before the last comment is inserted. * experimental/skk-e18.el: New file. * skk-macs.el (skk-emacs-type): Modify for Nemacs. (skk-detect-emacs): Ditto. * skk-server.el: Require "static" at the compile time. (skk-open-server): Use `static-cond'. Call `process-kanji-code' under Nemacs. * skk-vars.el (skk-emacs-type): Modify for Nemacs. (skk-cursor-default-color): Default to nil under Nemacs. (skk-background-mode): Ditto. (skk-kcode-charset): Ditto -- It's OK. Don't use this variable. (skk-isearch-breakable-character-p-function): Ditto. (skk-check-okurigana-on-touroku): Rename from `skk-check-okurigana-on-toroku'. * skk.el: Don't refer to `skk-branch-name' before "skk-vars" is loaded. Require "skk-e18" under Emacs 18. If loading "easymenu" fails, ignore `easy-menu-define'. (skk-setup-delete-backward-char): If `overriding-local-map' is not used, use the return value of `current-global-map' instead. * tinyinstall.el: (emacs-major-version): New variable for Emacs 18. (member): New function for Emacs 18. 2000-01-23 Mikio Nakajima * skk.el (skk-henkan-show-candidates): Remove unnecessary temporary variable STR. 2000-01-21 Mikio Nakajima * skk.el (skk-insert-new-word): Change for new `skk-eval-string'. (skk-henkan-show-candidate-subr): Ditto. (skk-nunion): Change open parens to closed ones. * skk-macs.el (skk-eval-string): Return STRING. 2000-01-19 Tsukamoto Tetsuo * SKK-MK: Typo. * skk-isearch.el (skk-isearch-find-keys-define): New function. (skk-isearch-setup-keymap): Call it. * skk.el (skk-truncate-message): Use `truncate-string' instead of `truncate-string-to-width'. 2000-01-19 Tsukamoto Tetsuo * skk-isearch.el (skk-isearch-setup-keymap): Find keys that invoke SKK in `current-global-map', and let them execute `skk-isearch-skk-mode' in isearch-mode. * skk-jisx0201.el: Modify comments. 2000-01-19 Mikio Nakajima * skk.el (skk-insert-new-word): Use `skk-eval-string'. (skk-insert-new-word): Remove unnecessary temporary variable FUNC. * skk-macs.el (skk-lisp-prog-p): Move from skk.el and make it inline. (skk-eval-string): New inline function. 2000-01-18 Tsukamoto Tetsuo * SKK-MK (standard-character-unification-table-for-decode): Under Emacs 20.2, set this variable and compile skk-jisx0201.el properly. 2000-01-17 Murata Shuuichirou * skk.el (skk-kakutei-cleanup-buffer): Convert hiragana as okurigana into katakana even if skk-okurigana is nil. 2000-01-17 FURUE Hideyuki * skk-cursor.el (skk-cursor-current-color): Evaluate the clauses in original order. (^_^; (keyboard-quit): Remove advice. 2000-01-17 FURUE Hideyuki * SKK-MK (SKK-MK-compile): Keep ``standard-output'' t. * make.bat (target to clean): Typo fixed. * READMEs/README.win: Correct sample ``.emacs'' files. 2000-01-17 SAKAI Kiyotaka * skk-leim.el: Not to overwrite user's input method setting. 2000-01-15 Tsukamoto Tetsuo * skk-jisx0201.el: Require "static" at the compile time. (skk-jisx0201-zenkaku): Use `static-cond'. (skk-jisx0201-hankaku): Ditto. (skk-setup-modeline): Ditto. 2000-01-08 Mikio Nakajima * skk.el (skk-setup-delete-selection-mode): Setup for pending-del on XEmacs. (skk-lisp-prog-p): Check first character by aref instead of skk-str-ref. Check second character is more than ?\37, too. 2000-01-02 Tsukamoto Tetsuo * experimental/skk-dos.el: Fix comments. (require): Fix the advice. 1999-12-31 Mikio Nakajima * skk-lookup.el (skk-lookup-get-method): Omit check by `skk-lisp-prog-p'. (skk-lookup-search-1): New subroutine. (skk-lookup-search): Use `skk-lookup-search-1'. 1999-12-30 Tsukamoto Tetsuo * skk-jisx0201.el: Add Comments. (skk-jisx0201-roman-rule-list, skk-jisx0201-base-rule-tree, skk-jisx0201-roman-rule-tree. skk-jisx0201-roman): New variables. (skk-toggle-jisx0201): New function. (skk-jisx0201-mode-on): Accept an optional argument. (skk-kakutei): Refer to `skk-jisx0201-roman'. 1999-12-30 Tsukamoto Tetsuo * SKK-MK (LISPDIR): Select a good place for MS-DOS and Windows. (VERSION_SPECIFIC_LISPDIR): Ditto. (standard-translation-table-for-decode): Under Emacs 20.3 or later, set this variable and compile skk-jisx0201.el properly. * etc/Emacs.ad: Typo. * experimental/skk-dos.el: New file. * skk-isearch.el: Always require "skk". * skk-jisx0201.el (skk-setup-modeline): Don't check the feature "xemacs". Refer to `skk-emacs-type' instead. * skk-study.el (skk-study-file): Let the default value appropriate for MS-DOS. (skk-study-backup-file): Ditto. (skk-study-save): Don't use `copy-file' under MS-DOS. * skk-vars.el (skk-cursor-change-width): Ugh, fix the default value. * tinyinstall.el (install-prefix): Select a good place for MS-DOS and Windows. 1999-12-27 Tsukamoto Tetsuo * skk-vars.el (skk-background-mode): Don't call `x-color-values' if it is not defined. (skk-init-file, skk-jisyo, skk-backup-jisyo, skk-record-file): Let the default values appropriate for MS-DOS. (skk-use-color-cursor, skk-cursor-change-width): nil by default under MS-DOS. 1999-12-26 Mikio Nakajima * skk-vars.el (skk-rule-tree): Doc fixed. (skk-cursor-change-width): Change default value to value of variable `window-system'. * skk.el (skk-mode): Remove locally skk-pre-command from pre-command-hook and skk-after-point-move from post-command-hook when exit skk-mode. * skk-macs.el (skk-get-char): Comment (it is not used). (skk-set-char): Ditto. (skk-set-prefix): Ditto. Use `cdr' instead of `nthcdr'. (skk-charsetp): Simplify. (skk-color-display-p): Add fboundp check of `x-display-color-p'. Omit `window-system' is eq `x' or not. 1999-12-23 Mikio Nakajima * skk-macs.el: Eliminate all spaces which existed between parens. (skk-get-last-henkan-data): Renamed to `skk-get-last-henkan-data'. (skk-put-last-henkan-data): Renamed to `skk-put-last-henkan-datum'. (skk-put-last-henkan-data): New inline function. * skk.el (skk-update-jisyo-original): Get HENKAN-BUFFER temporary variable only when `skk-update-end-function' is non-nil. (skk-remove-redundant-okurgana): New function. (skk-henkan-in-minibuff): Use `skk-remove-redundant-okurgana'. Doc fixed. Remove OKURIGANA temporary variable. (skk-version): Remove a `,' between version number and code name. (skk-remove-redundant-okurgana): Bug fixed. * skk-vars.el: Remove unnecessary blanks between parens. * skk-viper.el (skk-viper-normalize-map): Use `static-if' instead of `if'. Call `skk-viper-normalize-map-function' even if SKK related minor mode map is in minor-mode-map-alist. 1999-12-21 Murata Shuuichirou * skk-macs.el (skk-color-display-p): Check whether X or not, before use `x-display-color-p'. * skk-viper.el (read-from-minibuffer): Advice only when skk-use-color-cursor is no-nil. 1999-12-20 Mikio Nakajima * skk.el (kill-buffer): Doc fixed. (minibuffer-keyboard-quit): Add advice only for XEmacs. * READMEs/PROPOSAL ($BJ,3d$7$?%U%!%$%k$KI,?\$N5-=R(B): Modify for Daredevil. * READMEs/README.win (Message-ID): Ditto. 1999-12-19 Mikio Nakajima * skk.el: Eliminate all spaces which existed between parens. (skk-mode): Require `skk-cursor.el' everytime skk-mode is called. (skk-mode-once-again): New function. (minibuffer-keyboard-quit): Apply Tsukamoto san's Message-Id: <199912181531.AAA24324@ring.etl.go.jp> patch. * skk-vars.el: Eliminate all spaces which existed between parens. (skk-cursor): New group. (skk-cursor-default-color): Change its group to skk-cursor. (skk-cursor-hiragana-color): Ditto. (skk-cursor-katakana-color): Ditto. (skk-cursor-jisx0208-latin-color): Ditto. (skk-cursor-latin-color): Ditto. (skk-cursor-abbrev-color): Ditto. (skk-cursor-report-set-error): Ditto. (skk-cursor-change-width): Ditto. * skk-cursor.el: Eliminate all spaces which existed between parens. Check if display supports color. (isearch-mode-end-hook): Add `skk-cursor-set-properly' to the hook. (skk-cursor-current-color): Slightly simplified. (skk-cursor-set-color): Omit check of `skk-use-color-cursor' is nil or non-nil. Check if COLOR is non-nil. (skk-cursor-set-properly): New optional arg COLOR. (skk-cursor-setup-minibuffer): New function. (minibuffer-setup-hook): Hook `skk-cursor-setup-minibuffer'. (skk-mode-hook): Hook `skk-mode-once-again'. (minibuffer-exit-hook): Set cursor in the latest current buffer (not minibuffer). * skk-viper.el: Eliminate all spaces which existed between parens. (skk-cursor-set-properly): Change function to advice. (skk-mode-hook): Hook `skk-mode-once-again'. (viper-toggle-case): Japanized version. Hirakana to Katakana and vice versa. (viper-intercept-ESC-key): Doc fixed. (vip-intercept-ESC-key): Ditto. (vip-Append): New advice of skk-viper-cursor-ad. (vip-Insert): Ditto. (vip-insert): Ditto. (vip-intercept-ESC-key): Ditto. (vip-open-line): Ditto. (viper-Append): Ditto. (viper-Insert): Ditto. (viper-hide-replace-overlay): Ditto. (viper-insert): Ditto. (viper-intercept-ESC-key): Ditto. (viper-open-line): Ditto. (skk-abbrev-mode): Ditto. (skk-jisx0208-latin-mode): Ditto. (skk-kakutei): Ditto. (skk-latin-mode): Ditto. (skk-mode): Ditto. (skk-toggle-kana): Ditto. (skk-viper-saved-cursor-color): New internal variable. (viper-read-string-with-history): New advice of skk-viper-ad. (read-from-minibuffer): Ditto. (skk-mode): Change class of skk-viper-cusror-ad to after. (skk-cursor-set-properly): Change its class to around. Set `viper-insert-state-cursor-color' to the value of `skk-viper-saved-cursor-color' if insert-state. (viper-insert-state-cursor-color): Make it buffer-local variable. ;; * skk-isearch.el: Eliminate all spaces which existed between parens. Modify doc string about hooks. 1999-12-18 Tsukamoto Tetsuo * experimental/skk-hankaku-mode.el: Hey, is she still there? She's coming home. :-) No longer in the repository. * skk-cursor.el (minibuffer-setup-hook): Fix the behaviour under XEmacs. 1999-12-18 Tsukamoto Tetsuo * skk-jisx0201.el (skk-setup-modeline): If `skk-status-indicator' is left and the face `modeline' is not proportional, use the same number of columns to display each SKK status, except for `skk-jisx0201-mode'. * skk.el (skk-setup-modeline): Ditto. 1999-12-18 Tsukamoto Tetsuo * skk-cursor.el: (abort-recursive-edit): Advise under XEmacs. (skk-mode): Call `skk-cursor-set-properly'. (skk-auto-fill-mode): Seems this advice is not needed -- though I'm not sure. (skk-insert): New advice. Call `skk-cursor-set-properly' when `skk-abbrev-mode' is non-nil. (minibuffer-setup-hook): Adjust cusor color under XEmacs. 1999-12-17 Tsukamoto Tetsuo * skk-isearch.el (isearch-search): New advice. 1999-12-16 Tsukamoto Tetsuo * skk-isearch.el (skk-isearch-abbrev-mode-p): New function. (skk-isearch-current-mode): Enable to recognize abbrev mode. (isearch-repeat): This should be `after' advice. (isearch-edit-string): New advice. * skk-vars.el (skk-isearch-mode-string-alist): Add a string for abbrev mode. 1999-12-16 Yuh Ohmura * make.bat: correct bug. 1999-12-15 Tsukamoto Tetsuo * skk-isearch.el (skk-isearch-setup-keymap): No longer check if `skk-kakutei-key' is defined. 1999-12-15 Tsukamoto Tetsuo * skk-isearch.el (skk-isearch-delete-char): Fix regexp by `regexp-quote'. 1999-12-15 Tsukamoto Tetsuo * skk-isearch.el (isearch-repeat): Delete unnecessary or unreasonable elements from `isearch-cmds'. 1999-12-15 Mikio Nakajima * skk.el (skk-mode): Move skk-cursor.el related codes to skk-cursor.el. * skk-cursor.el (skk-mode): Remove duplicated advice. Do not use skk-cursor-set-properly. Add codes in the top level in order to set cursor properly when first time skk-cursor.el is loaded. 1999-12-14 Tsukamoto Tetsuo * skk-isearch.el: Require `skk-vars' also at the load time. (skk-isearch-mode-setup): Make sure `skk-isearch-mode-map' is a keymap. (isearch-repeat): Rewrite the advice so that it look like advice. :-) There should be no changes in its behaviour. 1999-12-14 FURUE Hideyuki * skk-cursor.el (set-buffer, erase-buffer): Remove advices. 1999-12-14 Mikio Nakajima * SKK-MK (SKK_DAREDEVIL_NOT_USE): Add skk-vip. 1999-12-13 Mikio Nakajima * skk-viper.el (skk-cursor-set-properly): Sync up with skk-cursor-set-properly in skk-cursor.el. * skk-cursor.el (skk-save-jisyo-original): Change defadvice for `skk-save-jisyo'. (skk-cursor-set-properly): Check current buffer has a window or not first. 1999-12-13 FURUE Hideyuki * skk-cursor.el (skk-cursor-current-color): Change order again. (keyboard-quit): New advice. (newline): Revive advice. (skk-latin-mode): Ditto. (skk-jisx0208-latin-mode): Ditto. (skk-abbrev-mode): Ditto. (skk-auto-fill-mode): Ditto. (skk-toggle-kana): Ditto. (skk-kakutei): Ditto. (skk-save-jisyo-original): Ditto. (skk-katakana-region): Ditto. (skk-hiragana-region): Ditto. (skk-jisx0208-latin-region): Ditto. (skk-latin-region): Ditto. (skk-jisx0201-region): Ditto. (skk-gyakubiki-message): Ditto. (skk-gyakubiki-katakana-region): Ditto. (skk-gyakubiki-katakana-message): Ditto. (skk-hurigana-region): Ditto. (skk-hurigana-message): Ditto. (skk-hurigana-katakana-region): Ditto. (skk-romaji-region): Ditto. (skk-romaji-message): Ditto. (skk-delete-backward-char): Ditto. (skk-start-henkan): Ditto. (force-mode-line-update): Remove advice. 1999-12-13 FURUE Hideyuki * skk-comp.el (skk-completion-original): Bug fixed. (skk-previous-completion-original): Ditto. * skk-cursor.el (skk-cursor-current-color): Change order to evaluate `skk-abbrev-mode' first. (newline): Remove advice. (skk-latin-mode): Ditto. (skk-jisx0208-latin-mode): Ditto. (skk-abbrev-mode): Ditto. (skk-auto-fill-mode): Ditto. (skk-toggle-kana): Ditto. (skk-kakutei): Ditto. (skk-save-jisyo-original): Ditto. (skk-katakana-region): Ditto. (skk-hiragana-region): Ditto. (skk-jisx0208-latin-region): Ditto. (skk-latin-region): Ditto. (skk-jisx0201-region): Ditto. (skk-gyakubiki-message): Ditto. (skk-gyakubiki-katakana-region): Ditto. (skk-gyakubiki-katakana-message): Ditto. (skk-hurigana-region): Ditto. (skk-hurigana-message): Ditto. (skk-hurigana-katakana-region): Ditto. (skk-romaji-region): Ditto. (skk-romaji-message): Ditto. (skk-delete-backward-char): Ditto. (skk-start-henkan): Ditto. (force-mode-line-update): New advice. (after-make-frame-hook): Remove hook. (minibuffer-setup-hook): Simplify hook. 1999-12-12 Mikio Nakajima * skk-cursor.el (skk-cursor-set-properly): Bug fixed. * skk.el (skk-mode): Call `skk-cursor-set-properly` if `skk-use-color-cursor' or `skk-cursor-change-width' is non-nil. Not required skk-num.el expressly. (skk-num-list $B$H$$$&(B buffer local $BJQ?t$K4X$9$k%(%i!<$r2sHr$9$k$?$a$K(B skk-use-numeric-conversion $B$,(B non-nil $B$G$"$l$P(B skk-mode $BFb$G@h$K(B skk-num.el $B$r(B require $B$7$F$$$?$N$@$,!">e5-$NLdBj$O(B daredevil $B$K8B$C(B $B$F$O5/$3$k2DG=@-$,$J$$$N$G!"L@<(E*$J(B require $B$r;_$a$?(B ($BI,MW$H$J$C(B $B$?$H$-$K(B autoload $B$5$l$k(B)$B!#(B skk-use-numeric-conversion $B$,(B non-nil $B$G!"(Bskk-num.el $B$N(B load $BA0$K(B let $B$G(B temporary $BJQ?t$H$7$F(B bind $B$7!"$=$N(B let $BFb$G(B skk-num.el $B$r(B require $B$7$?$H$-!"(Blet $B$r=P$?8e$K(B skk-num-list $B$,(B void $B$K$J$k$H$$$&(B $B%(%i!<$,$"$C$?!#(BDaredevil $B$G$OJQ?t$OA4$F(B skk-vars.el $B$KF~$C$F$*$j!"(B $B$3$l$r(B skk.el $B$,(B require $B$7$F$$$k$N$G!"(Bskk-num-list $BJQ?t$O(B skk.el $B$N(B load $BD>8e$+$iB8:_$7$F$$$k$N$G!"$3$NLdBj$OH/@8$7$J$$!#(B * skk-vars.el (skk-completion-function): Add descriptions to doc string. (skk-previous-completion-function): Ditto. 1999-12-10 FURUE Hideyuki * skk.el (skk-delete-okuri-mark): Bug fixed. 1999-12-09 FURUE Hideyuki * skk.el (keyboard-quit): Typo fixed. (query-replace-regexp): Disable advice because don't work correctly. (query-replace): Ditto. * skk-cursor.el (goto-line): Removed. (insert-file): Ditto. (execute-extended-command): Ditto. (read-from-minibuffer): Ditto. (completing-read): Ditto. (minibuffer-keyboard-quit): Ditto. (exit-minibuffer): Ditto. (abort-recursive-edit): Ditto. (delete-window, select-window, select-frame, delete-frame, set-buffer, erase-buffer): New advices. (kill-buffer, bury-buffer, switch-to-buffer, pop-to-buffer, other-window): Included among the above advices. (skk-cursor-current-color): New function. Extracted from ``skk-cursor-set-properly''. (skk-cursor-set-properly): Call ``skk-cursor-current-color''. (minibuffer-setup-hook): Preserve cursor color in ``skk-cursor-color-before-entering-minibuffer''. (minibuffer-exit-hook): Retrieve cursor color from ``skk-cursor-color-before-entering-minibuffer''. * skk-vars.el (skk-cursor-color-before-entering-minibuffer): New internal buffer local variable. * doc/skk.texi ($B8+=P$78l$NJd40(B): Moved @footnote outside @group block. 1999-12-08 Tsukamoto Tetsuo * skk-cursor.el (exit-minibuffer): Set cursor color even if the point still exists in the minibuffer. (minibuffer-keyboard-quit): Ditto. * skk-vars.el (skk-check-okurigana-on-toroku): Fix doc string. 1999-12-07 Tsukamoto Tetsuo * skk-vars.el (skk-check-okurigana-on-toroku): New variable. * skk.el (skk-henkan-in-minibuff): If `skk-check-okurigana-on-toroku' is non-nil, prompt user to check okurigana. 1999-12-07 Tsukamoto Tetsuo * skk-cursor.el (completing-read): Fix the advice. (read-from-minibuffer): Ditto. 1999-12-07 Tsukamoto Tetsuo * skk-cursor.el (completing-read): Don't use `unwind-protect'. Use `condition-case'. Don't advise to XEmacs' `completing-read'. (read-from-minibuffer): New advice. Call `skk-cursor-set-properly'. * skk-jisx0201.el (fence-mode-map): defvar under Mule 2. 1999-12-07 Mikio Nakajima * skk-macs.el (skk-detect-emacs): New macro. * skk-cursor.el (completing-read): Disabled. * SKK-MK (write-region): New advice, but does not work (;_;)... 1999-12-06 Tsukamoto Tetsuo * skk-isearch.el (isearch-repeat): Compile the advice at the compile time. 1999-12-06 Tsukamoto Tetsuo * READMEs/CVS_00readme: New file, whose contents written by $B 1999-12-05 Takao KAWAMURA * SKK-MK (SKK-MK-compile-info): New function. * Makefile (info): New entry. 1999-12-05 Tsukamoto Tetsuo * skk-cursor.el (completing-read): New advice. Call `skk-cursor-set-properly'. 1999-12-04 Mikio Nakajima * skk-isearch.el (skk-isearch-redo-function): Use list for handler of condition-case. * skk.el (skk-kakutei-initialize): Remove skk-num and skk-look related code. (skk-undo-kakutei): Use list for handler of condition-case. * skk-look.el (skk-kakutei-initialize): New advice for initialize skk-look related variables. * skk-num.el (skk-kakutei-initialize): New advice for initialize skk-num related variables. 1999-12-04 Tsukamoto Tetsuo * etc/Emacs.ad: New file. This is for displaying menu items in Japanese under XEmacs. 1999-12-04 Tsukamoto Tetsuo * skk-jisx0201.el (skk-jisx0201-insert): When starting conversion, call `skk-cursor-set-properly'. 1999-12-04 Tsukamoto Tetsuo * skk-isearch.el (isearch-repeat): New advice. 1999-12-04 Tsukamoto Tetsuo * skk-jisx0201.el (skk-toggle-katakana): Set `skk-input-mode-string'. 1999-12-04 Tsukamoto Tetsuo * skk-cursor.el (skk-cursor-set-properly): Change cursor color to `skk-cursor-jisx0201-color' when needed. * skk-jisx0201.el (skk-toggle-katakana): Call `skk-cursor-set-properly'. 1999-12-04 Tsukamoto Tetsuo * skk.el (skk-define-menu-bar-map): Call lambda expressions by `call-interactively'. 1999-12-04 Murata Shuuichirou * skk-macs.el (skk-find-coding-system): Check symbolicity of arg, before pass it to `find-coding-system'. xemacs's `find-coding-system' doesn't like string argument. 1999-12-03 Mikio Nakajima * skk-study.el: Remove ``;; -*- mode: emacs-lisp; byte-compile-dynamic: t;-*-'' and ``;; -*- byte-compile-dynamic-docstring: t;-*-'' cooklies. * skk-isearch.el: Remove ``;; -*- byte-compile-dynamic-docstring: t;-*-'' cookie. * skk-look.el: Remove ``;; -*-byte-compile-dynamic: t;-*-'' cookie. 1999-12-03 Tsukamoto Tetsuo * SKK-MK (SKK_INFOS): Add skk.info-5 and skk.info-6. * doc/.cvsignore: Ditto. * experimental/dbm/skk-dbm.el: Don't require `skk-foreword'. * experimental/skk-dcomp.el: Ditto. (skk-dcomp-extent): Now this is a local variable. * skk-jisx0201.el: Load "jisx0201" under Mule 2. (newline, newline-and-indent, exit-minibuffer): New advices. Check if `skk-egg-like-newline' is non-nil. (skk-jisx0201-string-conversion): New function. (skk-jisx0201-zenkaku, skk-jisx0201-hankaku): New functions that call it. (skk-jisx0201-insert): Call `skk-jisx0201-zenkaku' instead of `japanese-zenkaku'. (skk-hiragana-to-jisx0201-region): Call `skk-jisx0201-hankaku' instead of `japanese-hankaku'. (skk-katakana-to-jisx0201-region): Ditto. 1999-12-02 Yuh Ohmura (yutopia@t3.rim.or.jp> * READMEs/CVS_on_Windows: update * make.bat: add what-where and clean option 1999-12-01 Mikio Nakajima * skk-abbrev.el: Do not require stack-m. (skk-completion-original): Do not use stack-all. * skk-look.el: Do not require stack-m and path-util. (skk-look-completion): Do not use stack-all. (skk-look-1): Use `with-temp-buffer'. Do not use `condition-case'. * skk-comp.el: Do not require stack-m. (skk-completion-original): Do not use stack-nth, stack-push, stack-pop. (skk-previous-completion-original): Ditto. * skk-vars.el (skk-completion-depth): Doc modified slightly. (skk-look-working-buffer): Ditto. * SKK-MK (SKK_MODULES): Remove stack-m. (SKK_DAREDEVIL_NOT_USE): Add stack-m. * stack-m: Removed. 1999-11-30 Mikio Nakajima * skk-vars.el (skk-start-henkan-with-completion-char): Use `?\240' instead of 160 to represent character. (skk-backward-and-set-henkan-point-char): Use `?\321' instead of 209 to represent character. 1999-11-29 Tsukamoto Tetsuo * SKK-MK: Require `poe'. 1999-11-29 Murata Shuuichirou * skk-macs.el (skk-find-coding-system): New macro. * skk-study.el (skk-study-save,skk-study-read-1): Use `skk-find-coding-system'. * skk.el (skk-save-jisyo-1): Ditto. * skk.el (skk-get-jisyo-buffer): Use `skk-find-coding-system'. Accept pair of filename and coding-system as an argument. * skk-obsolete.el (skk-obsolete-function-alist): Replace `skk-set-cursor-color-properly' with `skk-set-cursor-properly'. 1999-11-29 Tsukamoto Tetsuo * skk-cursor.el (skk-cursor-set-properly): Set color properly on `skk-abbrev-mode'. 1999-11-29 Tsukamoto Tetsuo * skk-cursor.el (newline, execute-extended-command, skk-delete-backward-char, skk-start-henkan): Advise, maybe, more effectively. 1999-11-29 Takao KAWAMURA * Makefile (clean): Remove skk-autoloads.el. (tar): Depend on clean. 1999-11-28 FURUE Hideyuki * skk-comp.el (skk-completion-original): Use `skk-completion-depth' to search completed word. (skk-previous-completion-original): Ditto. * skk-kakasi.el (skk-gyakubiki-message): Use "%s" as the first message argument to display properly string containing `%'. (skk-gyakubiki-katakana-message): Ditto. (skk-hurigana-message): Ditto. (skk-hurigana-katakana-message): Ditto. (skk-romaji-message): Ditto. * skk.el (skk-mode): Bind `skk-start-henkan-with-completion-char' and `skk-backward-and-set-henkan-point-char' for each skk related maps. (skk-insert): Set this-command to `skk-completion' when last-command-char is equal to `skk-previous-completion-char', and call `skk-kana-input' when last-command-is neither `skk-previous-completion-char' nor `skk-next-completion-char'. * skk-vars.el (skk-start-henkan-with-completion-char): New user variable. (skk-backward-and-set-henkan-point-char): Ditto. (skk-completion-depth): New internal variable. 1999-11-28 Tsukamoto Tetsuo * skk-isearch.el (skk-isearch-delete-char): Check the car of the cdr of each element of `isearch-cmds', and update it, if necessary, according to the return value of `skk-isearch-mode-string'. 1999-11-28 Tsukamoto Tetsuo * skk-cursor.el (newline): New advice. Call `skk-cursor-set-properly'. (skk-delete-backward-char): Ditto. (skk-start-henkan): Ditto. (minibuffer-setup-hook): If `skk-insert' or `skk-start-henkan' has just been executed, call `skk-cursor-set-properly', else set cursor color to `skk-cursor-default-color'. 1999-11-28 Mikio Nakajima * skk.el (minibuffer-keyboard-quit): Use `static-cond'. * READMEs/CVS_on_Windows: New file. 1999-11-28 Takao KAWAMURA * SKK-MK (SKK-MK-generate-autoloads-el): Generate skk-autoloads.el. * skk.el (skk-version): Add `;;;###autoload' cookie. * skk-server.el (skk-server-version): Ditto. * skk-num.el (skk-num-compute-henkan-key): Ditto. (skk-num): Ditto. * skk-jisx0201.el (skk-toggle-katakana): Ditto. * skk-study.el (skk-study-check-alist-format): Remove `;;;###autoload' cookie. 1999-11-28 Tsukamoto Tetsuo * skk-study.el: Force emacs-lisp-mode. (skk-study-check-alist-format-1): Use `skk-str-length' instead of `length' for okuri-ari and okuri-nasi entries. 1999-11-28 Mikio Nakajima * READMEs/INSTALL: Change outline mode and add descriptions about custom package. * skk-study.el (skk-study-file-format-version): Change version number to string. * SKK-MK (SKK_PACKAGE_NOT_USE): New constant. (SKK_DAREDEVIL_NOT_USE): Ditto. (SKK-MK-install): Make directories, SKK_LISPDIR, SKK_DATADIR and SKK_INFODIR if they do not exist. Remove SKK_DAREDEVIL_NOT_USE from SKK_MODULES and delete related files. (SKK-MK-install-package): Remove SKK_PACKAGE_NOT_USE and SKK_DAREDEVIL_NOT_USE from SKK_MODULES and delete related files. * doc/skk.texi (Makefile$B$NJT=8$H%$%s%9%H!<%k(B): Doc fixed. * skk-tut.el (skktut-end-tutorial): Refer to `skk-branch-name', `skk-ml-command-address' and `skk-ml-address'. Doc fixed. * skk.el (skk-version): Refer to `skk-branch-name'. (skk-%-to-%%): Removed. * skk-vars.el (skk-branch-name): New constant. (skk-ml-command-address): New constant. (skk-codename): Contain rail company name. 1999-11-28 FURUE Hideyuki * skk-num.el (skk-num-convert): Bug fixed. * skk.el (skk-henkan-show-candidates): Ditto. (skk-henkan-show-candidate-subr): Do not use `skk-%-to-%%'. * skk-kcode.el (skk-char-to-hex): Bug fixed. 1999-11-25 Tsukamoto Tetsuo * skk-jisx0201.el (skk-setup-modeline): Make sure, under XEmacs, `modeline-format' in each buffer is a list. * skk.el (skk-setup-modeline): Ditto. 1999-11-25 TSUMURA Tomoaki * skk.el (skk-katakana-region): Fix the problem that lambda function returns `nil' on byte-compiled code. (skk-hiragana-region): Ditto. 1999-11-25 Takao KAWAMURA * skk-autoloads.el: Added an entry for `skk-compile-rule-list'. * skk.el (skk-compile-rule-list): ;;;###autoload * skk-tut.el (skk-tutorial): Fixed to be used with the version 11 or later. (skktut-end-tutorial): Modified for Daredevil SKK. Activated (require 'skk-vars) while being loaded. 1999-11-24 Tsukamoto Tetsuo * skk-isearch.el (skk-isearch-mode-setup): Call `skk-isearch-setup-keymap' in this function, not at top level, so that `skk-kakutei-key' can be set in `skk-init-file'. 1999-11-24 FURUE Hideyuki * skk-isearch.el (skk-isearch-mode-setup): Call `skk-erase-prefix' with its argument non-nil in `skk-isearch-working-buffer'. 1999-11-24 Mikio Nakajima * SKK-MK (SKK-MK-install-package): delete 'skk-autoloads from SKK_MODULES. * skk-isearch.el (skk-isearch-mode-message): Adjust doc string. 1999-11-24 FURUE Hideyuki * skk.el (skk-mode): Call `skk-create-file' for `skk-jisyo'. 1999-11-23 Tsukamoto Tetsuo * skk-jisx0201.el (skk-setup-modeline): Fix typo -- use `default-modeline-format', not `default-mode-line-format' under XEmacs. * skk.el (skk-setup-modeline): Ditto. 1999-11-22 Tsukamoto Tetsuo * doc/.cvsignore: Add skk.info-4. 1999-11-22 Tsukamoto Tetsuo * skk-isearch.el (skk-isearch-search-string): Use `>' instead of `/='. 1999-11-22 Tsukamoto Tetsuo * skk-isearch.el: Use `static-if', requiring "static" at the compile time. 1999-11-22 Tsukamoto Tetsuo * skk-isearch.el (skk-isearch-setup-keymap): Define `skk-kakutei-key' instead of "\C-j" if the symbol value is already set. Define backward-deleting keys to run `skk-isearch-delete-char', not merely writing "\177". (skk-isearch-newline): Do not call `isearch-printing-char' if no ASCII approximation to `last-command-char' is returned. * skk.el (skk-setup-modeline): Use `static-cond'. 1999-11-22 Mikio Nakajima * skk.el (skk-katakana-region): Use `skk-search-and-replace'. (skk-hiragana-region): Ditto. (skk-jisx0208-latin-region): Ditto. (skk-latin-region): Ditto. * skk-jisx0201.el (skk-jisx0201-search-and-replace): Moved to skk.el and renamed to `skk-search-and-replace'. (skk-hiragana-to-jisx0201-region): Use `skk-search-and-replace'. Do not use `identity' to return just a string. (skk-katakana-to-jisx0201-region): Ditto. 1999-11-22 Takao KAWAMURA * SKK-MK (SKK_MODULES): Bound `lookup-byte-compile' to t when (require 'lookup) is executed. * skk-vars.el: Added (require 'path-util). 1999-11-22 Mikio Nakajima * READMEs/CVS_digest: Add descriptions abount only DES based crypt is available for a passwd of the cvs account. Change slighly descriptions about making encrypted passwd. Debian Linux -> Debian GNU/Linux. Reorganize structure of sections. 1999-11-21 Tsukamoto Tetsuo * skk.el (skk-mode): Set cursor color if `skk-mode-invoked' is nil and the function is called interactively. 1999-11-21 Mikio Nakajima * READMEs/CVS_digest: Add descriptions about creating encrypted passwd. 1999-11-18 Mikio Nakajima * READMEs/AUTHORS: Add descriptions for Daredeveil branch. * READMEs/CVS_digest: New file. * READMEs/Codename: New file. * READMEs/Contributors: Filename typo fixed. 1999-11-18 TSUMURA Tomoaki * skk-cursor.el (skk-change-cursor-when-ovwrt): Renamed to `skk-cursor-change-when-ovwrt'. * skk-viper.el (skk-cursor-set-properly): Use `skk-cursor-change-when-ovwrt'. * skk.el (skk-mode): Put off setting `skk-mode-invoked'. 1999-11-14 Mikio Nakajima * skk-abbrev.el (skk-completion-original): Bug fixed. 1999-11-09 Shuhei KOBAYASHI * skk-look.el (skk-look): Use copy-sequence instead of `copy-list' not to depend on CL package on FSF Emacs. * skk-num.el (skk-num-flatten-list): Do not use `mapcan' not to depend on CL package on FSF Emacs. 1999-11-09 Mikio Nakajima * skk-develop.el: Remove def-edebug-spec for `skk-defun-cond', `skk-defsubst-cond', `skk-defmacro-cond'. (skk-submit-bug-report): Remove code for a certain specific version of Mew and Wanderlust. * skk-macs.el (skk-face-on): Use `defmacro' and `static-cond' instead of `skk-defmacro-cond' and `cond'. (skk-defun-cond): Removed. (skk-defsubst-cond): Removed. (skk-defmacro-cond): Removed. * skk-kcode.el (skk-display-code): Use `defun' and `static-cond' instead of `skk-defun-cond' and `cond'. Require static.el. * skk-cursor.el (skk-change-cursor-when-ovwrt): Use `defun' and `static-cond' instead of `skk-defun-cond' and `cond'. Require static.el. * skk.el (skk-detach-extent): Use `defun' and `static-cond' instead of `skk-defun-cond' and `cond'. (skk-jisx0208-to-ascii): Ditto. (skk-make-char): Ditto. * skk-macs.el (skk-str-length): Use `defsubst' and `static-cond' instead of `skk-defsubst-cond' and `cond'. (skk-substring): Ditto. (skk-read-event): Ditto. (skk-char-to-string): Ditto. (skk-ascii-char-p): Ditto. (skk-str-ref): Ditto. (skk-jisx0208-p): Ditto. (skk-char-octet): Ditto. (skk-charsetp): Ditto. 1999-11-07 Mikio Nakajima * skk-jisx0201.el (skk-jisx0201-cursor-color): Renamed to `skk-cursor-jisx0201-color'. * SKK-MK (SKK_MODULES): Arrange for new files. * skk.el (skk-terminal-face-p): Removed. (skk-mode): Require skk-xm20_4.el. * skk-viper.el: (viper-intercept-ESC-key): Remove cursor control and change class to before. (vip-intercept-ESC-key): Ditto. (skk-set-cursor-properly): Renamed to `skk-cursor-set-properly'. * skk-cursor.el: Revive to simplify skk.el. (skk-default-cursor-color): Renamed to `skk-cursor-default-color' (for grouping of customize). (skk-hiragana-cursor-color): Renamed to `skk-cursor-hiragana-color'. (skk-katakana-cursor-color): Renamed to `skk-cursor-katakana-color'. (skk-jisx0208-latin-cursor-color): Renamed to `skk-cursor-jisx0208-latin-color'. (skk-latin-cursor-color): Renamed to `skk-cursor-latin-color'. (skk-abbrev-cursor-color): Renamed to `skk-cursor-abbrev-color'. (skk-report-set-cursor-error): Renamed to `skk-cursor-report-set-error'. (skk-use-cursor-change): Renamed to `skk-cursor-change-width'. * skk.el (abort-recursive-edit): Remove cursor control. (exit-minibuffer): Ditto. (kill-buffer): Ditto. And change class to before. (skk-kakutei): Ditto. (skk-save-jisyo-original): Ditto. (minibuffer-keyboard-quit): Ditto (as to XEmacs advice only). (skk-auto-fill-mode): Ditto. (skk-toggle-kana): Ditto. (skk-katakana-region): Ditto. (skk-hiragana-region): Ditto. (skk-jisx0208-latin-region): Ditto. (skk-latin-region): Ditto. (skk-mode-off): Ditto. (skk-j-mode-on): Ditto. (skk-latin-mode-on): Ditto. (skk-jisx0208-latin-mode-on): Ditto. (skk-abbrev-mode-on): Ditto. (overwrite-mode): Moved to skk-cursor.el. (goto-line): Ditto. (yank): Ditto. (yank-pop): Ditto. (recenter): Ditto. (insert-file): Ditto. (bury-buffer): Ditto. (switch-to-buffer): Ditto. (hilit-yank): Ditto. (hilit-yank-pop): Ditto. (hilit-recenter): Ditto. (execute-extended-command): Ditto. (pop-to-buffer): Ditto. (other-window): Ditto. (skk-set-cursor-color): Ditto. (skk-set-cursor-properly): Ditto. (skk-change-cursor-when-ovwrt): Ditto. (kill-buffer): Ditto. (skk-default-cursor-color): Ditto. (skk-hiragana-cursor-color): Ditto. (skk-katakana-cursor-color): Ditto. (skk-jisx0208-latin-cursor-color): Ditto. (skk-latin-cursor-color): Ditto. (skk-abbrev-cursor-color): Ditto. (skk-report-set-cursor-error): Ditto. (skk-use-cursor-change): Ditto. (skk-mode): Require skk-cursor.el when `skk-use-color-cursor' or `skk-use-cursor-change' is non-nil. * skk-kakasi.el (skk-gyakubiki-region): Remove cursor control. (skk-gyakubiki-message): Ditto. (skk-gyakubiki-katakana-region): Ditto. (skk-gyakubiki-katakana-message): Ditto. (skk-hurigana-region): Ditto. (skk-hurigana-message): Ditto. (skk-hurigana-katakana-region): Ditto. (skk-hurigana-katakana-message): Ditto. (skk-romaji-region): Ditto. (skk-romaji-message): Ditto. * skk-develop.el (skk-submit-bug-report): Add `skk-share-private-jisyo' to BASE list. * skk.el (skk-emacs-id-file): New user option. (skk-share-private-jisyo): Ditto. (skk-mode): Add code for `skk-share-private-jisyo'. (skk-save-jisyo-original): Ditto. (skk-update-jisyo-original): Ditto. * experimental/skk-jisx0201.el (skk-jisx0201-mode-string): Change mode indicator to `jisx0201' and doc fixed. (skk-jisx0201-rule-list): Define latin-jisx0201 characters. (skk-setup-modeline): Change mode indicator to `jisx0201'. * skk-vars.el: Renamed to skk-xm20_4.el. * skk-vars.el: New file for definitions of user variables. (skk-emacs-id): New internal variable. (skk-jisyo-update-vector): Ditto. ;; Local Variables: ;; coding: iso-2022-jp ;; mode: change-log ;; End: ddskk-ddskk-16.3_Kutomatsunai/ChangeLog.3000066400000000000000000006655451361774317600203640ustar00rootroot000000000000002007-08-18 Tetsuo Tsukamoto * Version 13.1 Hattori released. 2007-08-18 Tetsuo Tsukamoto * skk-e21.el (skk-e21-prepare-modeline-properties): Ignore errors in `file-name-directory'. * skk-vars.el: Require `poem' instead of `poe'. * skk-version.el (skk-version): Bump to 13.1. 2007-08-17 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Fix for nested
    s. (skk-annotation-url-package-available-p): Require un-define for Emacs 20, 21 or XEmacs 21.4. 2007-08-16 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Workaround for nested
      s. * skk.el (backward-kill-sentence): New advice. 2007-08-15 Tetsuo Tsukamoto * skk-vars.el (skk-annotation-en-wiktionary-part-of-speech-regexp): Add "Quasi-Adjective", "Proverb" "Personal pronoun" and "Counter". (skk-annotation-en-wiktionary-lang-regexp): Typo. 2007-08-14 Tetsuo Tsukamoto * skk-tankan.el (skk-search-tankanji): Try to talk to a server. 2007-08-13 Tetsuo Tsukamoto Suggested by Tatsuya Kinoshita . * skk-vars.el (skk-show-inline): (skk-show-tooltip): Update docstring. * skk-macs.el (skk-erase-prefix): Call `redraw-frame' under Emacs 20.7. * skk.el (skk-inline-show): Do not call `propertize' if face is nil. (skk-setup-delete-selection-mode): Always put property for delsel or pending-del. 2007-08-11 Tetsuo Tsukamoto * Makefile (clean): Don't remove skk-dic.el. 2007-08-10 Tetsuo Tsukamoto Suggested by Eiji Obata . * skk-comp.el (skk-search-lisp-symbol): Modify doc string. * skk-comp.el (skk-smart-find): Load "smart-find" only if function `smart-find-file' is not defined. * skk-vars.el (skk-annotation-en-wiktionary-part-of-speech-regexp): Add "Letter". * skk.el (skk-search-jisx0208-romaji): Modify doc string. 2007-08-09 Kitamoto Tsuyoshi * doc/skk.texi: Typo. 2007-08-08 Tetsuo Tsukamoto * Makefile (tar): Copy skk-dic.el.in to skk-dic.el. * tut-code/README.tut: .skk -> ~/.skk. 2007-08-05 Eiji Obata * skk-server-completion.el (skk-server-completion-search-midasi): Treat 2nd character as separator. 2007-08-05 Tetsuo Tsukamoto Suggested by Kitamoto Tsuyoshi and Tatsuya Kinoshita * doc/skk.texi: Always use "openlab.jp" for Open Laboratory URLs. 2007-08-04 Eiji Obata * skk-vars.el (skk-server-disable-completion): New variable. * skk-server-completion.el (skk-server-completion-search-midasi): If SKK server doesn't respond for server completion, set `skk-server-disable-completion'. * skk.el (skk-restart): Clear `skk-server-disable-completion'. 2007-08-03 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Refer to skk-annotation-ja-wiktionary-lang-regexp and skk-annotation-ja-wiktionary-part-of-speech-regexp. Ignore "Badtitle" page. Deal with simple.wikipedia. * skk-tankan.el (skk-search-tankanji): New function. * skk-vars.el (skk-search-prog-list-5): Set default value for skk-tankan. (skk-annotation-wikipedia-sources): Add simple.wikipedia. (skk-annotation-en-wiktionary-lang-regexp): (skk-annotation-en-wiktionary-part-of-speech-regexp): Update. (skk-annotation-ja-wiktionary-lang-regexp): (skk-annotation-ja-wiktionary-part-of-speech-regexp): New variables. * skk.el (skk-setup-verbose-messages): Show "$BC14A;z(B" for C-5. 2007-08-02 Eiji Obata * skk.el (skk-kakutei): Add optional argument `ARG' so that C-u C-j doesn't raise error. (skk-henkan): Remove redundant code. 2007-08-02 Tetsuo Tsukamoto * skk-isearch.el (skk-isearch-buffer-string): New function. (skk-isearch-search-string): (skk-isearch-delete-char): Call it instead of `buffer-string'. * skk-macs.el (skk-erase-prefix): (skk-insert-prefix): Don't insert skk-prefix to the current buffer. Instead, display it using overlay. * skk-vars.el (skk-prefix-overlay): New local variable. * skk.el (skk-delete-backward-char): Don't call `skk-kakutei' if skk-prefix is present. * skk-act.el: Update URL. * skk-comp.el: Add autoload cookie. * doc/skk.texi: List new elisp files. 2007-08-01 Eiji Obata * skk-server-completion.el (skk-server-completion-search-midasi): Workaround for defect of protocol about SERVER COMPLETION. 2007-07-31 Tetsuo Tsukamoto * ccc.el (ccc-setup-new-frame): Name anonymous function for after-make-frame-functions. 2007-07-29 Tetsuo Tsukamoto Suggested by Eiji Obata . * skk-vars.el (skk-look-completion-arguments): By default, do not pass "-d" to look command. 2007-07-27 Eiji Obata * skk-look.el (skk-look-completion): If `skk-comp-use-prefix' is non-nil, restrict result using `skk-comp-prefix'. * skk-server-completion.el (skk-comp-by-server-completion): Ditto. * skk-vars.el (skk-server-completion-words): Stop being buffer local. * skk-comp.el (skk-comp-restrict-by-prefix): Update docstring. 2007-07-21 Eiji Obata * skk-vars.el (skk-kakutei-prog-list): Abolish. * skk.el (skk-kakutei-program-p): Ditto. * experimental/rdbms/skk-rdbms.el (skk-rdbms-search-kakutei-jisyo-table): Set skk-kakutei-henkan-flag instead of skk-kakutei-flag. * doc/skk.texi: skk-kakutei-flag -> skk-kakutei-henkan-flag. Update lisp code using `when', etc. Update description about usage of skkserv. * skk-vars.el (skk-kakutei-jisyo): Update docstring. 2007-07-18 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-normalize-word): Don't call `upcase-initials'. Instead, upcase only the first letter of WORD. 2007-07-17 Tetsuo Tsukamoto * skk-tankan.el: Modify comments considering the position of skk-search-kakutei-jisyo-file in skk-search-prog-list. 2007-07-16 Eiji Obata * skk.el (skk-undo-kakutei-subr): Consider skk-search-prog-list-[0-9]. 2007-07-16 Kitamoto Tsuyoshi * doc/skk.texi: Add ~/ to init file names. Add spaces around ascii words. 2007-07-15 IRIE Tetsuya * skk-vars.el (skk-undo-kakutei-flag): New variable. * skk.el (skk-undo-kakutei-subr): New function. (skk-undo-kakutei): Use it. (skk-previous-candidate): Ditto. Update docstring. (skk-kakutei-initialize): Clear `skk-undo-kakutei-flag'. (skk-henkan-1): Disable kakutei henkan if `skk-undo-kakutei-flag' is non-nil. 2007-07-14 Kitamoto Tsuyoshi * doc/skk.texi: X -> X Window System. 2007-07-14 Eiji Obata * skk-vars.el (skk-kakutei-henkan-flag): New variable. (skk-kakutei-flag): Update docstring. (skk-kakutei-unique-candidate-flag): Abolish. * skk.el (skk-henkan-1): Check for `skk-kakutei-henkan-flag'. (skk-kakutei-initialize): Clear `skk-kakutei-henkan-flag'. (skk-search-kakutei-jisyo-file): Update docstring. 2007-07-10 Tetsuo Tsukamoto Suggested by IRIE Tetsuya . * doc/skk.texi: Fix documentation for private dictionary. 2007-06-30 IRIE Tetsuya * skk-vars.el (skk-undo-kakutei-return-previous-point): New user option. (skk-undo-kakutei-previous-point) (skk-undo-kakutei-previous-length): New variable. * skk.el (skk-kakutei, skk-undo-kakutei): Use them. * skk-vars.el (skk-kakutei-end-function, skk-last-henkan-data): Fix docstring. 2007-06-28 Tetsuo Tsukamoto * skk-isearch.el (skk-isearch-mode-cleanup): Do not remove `skk-pre-command' from pre-command-hook. * skk-isearch.el (skk-isearch-mode-cleanup): * skk-macs.el (skk-mode-off): * skk-viper.el (viper-read-string-with-history): Use `skk-add-pre-command' or `skk-remove-pre-command' instead of an expression with `add-hook' or `remove-hook'. * skk-vars.el (skk-egg-like-newline): Modify custom group to skk-kakutei. 2007-06-28 Eiji Obata * skk.el (skk-search): Undo the last change. (skk-henkan-1): Handle `skk-kakutei-when-unique-candidate' here. 2007-06-27 Eiji Obata * skk-vars.el (skk-kakutei-when-unique-candidate): New user option. (skk-kakutei-unique-candidate-flag): New variable. * skk.el (skk-henkan-1, skk-search): Consider them. * skk-vars.el (skk-kakutei-prog-list): New variable. * skk.el (skk-kakutei-program-p): New function. (skk-henkan-1, skk-undo-kakutei): Use it. (skk-search-kakutei-jisyo-file): Update docstring. 2007-06-26 Eiji Obata * skk.el (skk-cancel-undo-boundary): Call `cancel-undo-boundary' after `skk-kakutei-henkan'. 2007-06-19 Tetsuo Tsukamoto * skk.el (skk-henkan-in-minibuff): Restore point after exiting minibuffer. 2007-06-18 Kenichi Kurihara * experimental/bayesian/bskk (DB::marshal): Remove an unused line. 2007-06-15 Tetsuo Tsukamoto * SKK-CFG: Distinguish Carbon Emacs Package from generic Carbon Emacs. 2007-06-14 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Add "h5" to html2text-remove-tag-list. Do not show "Inflection" in en.wiktionary. * skk-vars.el (skk-annotation-en-wiktionary-part-of-speech-regexp): Support "Demonstrative adjective" and "Phrase". (skk-annotation-en-wiktionary-lang-regexp): Support Albanian, Balinese, Lithuanian, Lojban, and Old Prussian. 2007-06-14 Eiji Obata * skk-comp.el (skk-comp-do): Fix order of candidates after user displayed previous candidate. * skk-vars.el (skk-comp-use-prefix): Update docstring. 2007-06-14 IRIE Tetsuya * skk.el (skk-delete-backward-char): * skk-viper.el (viper-del-backward-char-in-insert): Consider okurigana length when comparing `skk-henkan-end-point' with current point. 2007-06-13 Tetsuo Tsukamoto * SKK-MK: Distinguish Carbon Emacs Package from generic Carbon Emacs. * skk-xemacs.el (skk-tooltip-resize-text): Decide max lines according to `display-pixel-height' and the size of the default font. 2007-06-12 Eiji Obata * skk-vars.el (skk-use-look): Fix value. 2007-06-12 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Remove span with interProject class. * skk-e21.el (skk-tooltip-resize-text): Decide max lines according to `display-pixel-height' and `frame-char-height'. * skk-vars.el (skk-kana-cleanup-command-list): Add `skk-try-completion' and `skk-completion-wrapper'. 2007-06-10 Tetsuo Tsukamoto * skk-vars.el (skk-annotation-en-wiktionary-lang-regexp): (skk-annotation-en-wiktionary-part-of-speech-regexp): New variables. * skk-annotation.el (skk-annotation-wikipedia-1): Use variables above. Remove all
      s for wikipedia. * skk-isearch.el (skk-isearch-turn-off-skk-mode): (skk-isearch-turn-on-skk-mode): (skk-isearch-skk-kakutei): (skk-isearch-skk-turn-on-hiragana-mode): (skk-isearch-skk-turn-on-katakana-mode): (skk-isearch-skk-turn-on-jix0208-latin-mode): (skk-isearch-skk-turn-on-latin-mode): Bind skk-use-color-cursor to nil. * skk-e21.el (skk-e21-prepare-modeline-properties): Use `locate-data-file' under Emacs 22.1 or later. Do not call `find-image' if SKK data director is not found. 2007-06-07 IRIE Tetsuya * experimental/bayesian/skk-bayesian.el (skk-bayesian-save-history): Improve log message. 2007-05-23 IRIE Tetsuya * skk.el (skk-delete-okuri-mark): Accept optional argument NOCLEAR. Do not clear okurigana data if it is non-nil. (skk-kakutei-cleanup-buffer): When skk-okurigana is set, keep okurigana data. 2007-05-20 IRIE Tetsuya * skk.el (skk-henkan): Fix typo in comment. (skk-undo-kakutei): Ditto. 2007-05-14 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-message): Call `keyboard-quit' unless skk-henkan-mode is active. 2007-05-13 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-message): * skk.el (skk-henkan-on-message): Undo previous change. * skk.el (skk-search-function-usage): Noop unless under FSF Emacs 22. * skk-annotation.el (skk-annotation-message): Unread event for `skk-previous-candidate' instead of calling `keyboard-quit'. 2007-05-10 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Recognize "Min Nan". (skk-annotation-message): Fix nonlocal exit codes. 2007-05-09 Tetsuo Tsukamoto * ccc.el: Remove advices to interactive functions. Do not use isearch-mode-end-hook, minibuffer-setup-hook or minibuffer-exit-hook. Use post-command-hook instead. (ccc-defadvice): Abolish. (ccc-read-color): (ccc-color-equal): Support only Emacsen with facemenu. * skk-annotation.el (skk-annotation-message): * skk.el (skk-henkan-on-message): Noop unless under FSF Emacs 22 or later. 2007-05-08 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Support Latin. Remove Kurdish, Korean, Breton, Murrinh-Patha and Scots. Support more parts of speech. Remove more
      s. (skk-annotation-wikipedia-remove-nested): Accept optional argument IBTAG. 2007-05-03 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-message): * skk.el (skk-henkan-on-message): Do not show verbose message when skk-isearch is on or point is in minibuffer. 2007-05-02 Tetsuo Tsukamoto * skk-annotation.el: Rename `skk-annotation-wikipedia-message' to `skk-annotation-message'. (skk-annotation-message): Show skk-annotation-message as well as skk-annotation-wikipedia-message. * skk-e21.el (skk-tooltip-show-at-point): * skk-xemacs.el (skk-tooltip-show-at-point): Call `skk-annotation-message'. * skk-vars.el (skk-annotation-message): New variable. 2007-04-29 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-message): New function. (skk-annotation-wait-for-input): Call it unless digit is set. (skk-annotation-wikipedia-1): Remove tags. (skk-annotation-show-buffer): Call 'skk-annotation-wikipedia-message'. * skk-dcomp.el (skk-dcomp-after-delete-backward-char): Call `skk-henkan-on-message'. * skk-e21.el (skk-tooltip-show-at-point): * skk-xemacs.el (skk-tooltip-show-at-point): Rename optional 2nd argument. Call `skk-annotation-wikipedia-message' for annotation. * skk-vars.el (skk-verbose): (skk-verbose-wait): (skk-henkan-on-message): (skk-annotation-wikipedia-message): New variables. * skk.el (skk-setup-verbose-messages): (skk-henkan-on-message): New functions. (skk-insert): (skk-previous-candidate): Call `skk-henkan-on-message'. 2007-04-27 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Remove "Wikipedia has an article on sth" descriptions for en.wiktionary. * skk-comp.el (skk-comp-lisp-symbol): Bind completion-ignore-case to nil. (skk-search-lisp-symbol): (skk-search-smart-find): (skk-completion-search): Take optional argument WITHOUT-CHAR-MAYBE. * skk-macs.el (skk-eval-string): Format the eval result into string. * skk.el (skk-search-function-usage): New function. 2007-04-26 Tetsuo Tsukamoto * skk-comp.el (skk-comp-do): Modify message when skk-current-completion-prog-list does not contain `skk-comp-by-history'. (skk-comp-get-candidate): When FIRST is integer from 0 to 9, use skk-completion-prog-list-{0-9} instead of skk-completion-prog-list. * skk-dcomp.el (skk-comp): When FIRST is integer, reset completion data. * skk-vars.el (skk-completion-prog-list-0): (skk-completion-prog-list-1): (skk-completion-prog-list-2): (skk-completion-prog-list-3): (skk-completion-prog-list-4): (skk-completion-prog-list-5): (skk-completion-prog-list-6): (skk-completion-prog-list-7): (skk-completion-prog-list-8): (skk-completion-prog-list-9): New user options. * skk.el (skk-insert): Pass PARG as is to `skk-comp'. (skk-start-henkan): If PARG is nil, set it to current-prefix-arg. 2007-04-25 Tetsuo Tsukamoto * skk.el (skk-search-romaji): Search romaji even when the key contains non-hiragana characters. 2007-04-24 Tetsuo Tsukamoto * skk-isearch.el (skk-isearch-start-henkan): Modify the 1st arg of `skk-start-henkan' from 0 to 1. * skk.el (skk-insert): (skk-start-henkan): (skk-henkan): Rename the 2nd arg. Distinguish C-u and other prefix arguments for skk-comp-first and skk-katakana. 2007-04-23 NAKAMURA Toshikazu * skk-vars.el (skk-tut-file): (skk-large-jisyo): (skk-aux-large-jisyo): The 2nd arg of `locate-file' must be list of directories. Fix. 2007-04-23 Tetsuo Tsukamoto * skk-e21.el (skk-tooltip-show-at-point): * skk-xemacs.el (skk-tooltip-show-at-point): In skk-isearch, refer to `minibuffer-window' instead of `selected-window'. * skk-isearch.el (skk-isearch-mode-map): Under FSF Emacs, define keys for digit argument conversion. (skk-isearch-wrapper-1): (skk-isearch-start-henkan): New functions. (digit-argument): Advise XEmacs to call `skk-isearch-start-henkan'. 2007-04-22 Tetsuo Tsukamoto * ptexinfmt.el: Sync with emacs-w3m, keeping workarounds for `texinfo-format-separate-node' and `texinfo-format-end-node'. * context-skk.el (context-skk-insert): When `this-command-keys' are translated via function-key-map or key-translation-map, refer to the keymap. * skk-annotation.el (skk-annotation-wikipedia-1): Just stop retrieval on C-g. (skk-annotation-wait-for-input): No longer wait when SKK exits henkan active mode. * skk-vars.el (skk-search-prog-list-0): (skk-search-prog-list-1): (skk-search-prog-list-2): (skk-search-prog-list-3): (skk-search-prog-list-4): (skk-search-prog-list-5): (skk-search-prog-list-6): (skk-search-prog-list-7): (skk-search-prog-list-8): (skk-search-prog-list-9): New user options. * skk.el (skk-search-hankaku-katakana): (skk-search-jisx0208-romaji): New functions. (skk-searc-romaji): Accept optional arg JISX0208. (skk-insert): (skk-start-henkan): Accept optional argument PREFIX-ARG. (skk-henkan): If digit is specified with prefix argument, use skk-search-prog-list-{0-9} instead of skk-search-prog-list. 2007-04-22 Tetsuo Tsukamoto Suggested by Tatsuya Kinoshita . * SKK-CFG, SKK-MK, *.el: Specify coding at the first line of each file containing non-ASCII characters. * skk-jisyo-edit-mode.el (skk-edit-private-jisyo): Take optional argument CODING-SYSTEM, default to one implied with skk-jisyo-code. Bind coding-system-for-read to CODING-SYSTEM for avoiding misdecoding of skk-jisyo. 2007-04-20 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia): Catch `skk-annotation-wikipedia-suspended'. (skk-annotation-wikipedia-1): (skk-annotation-wikipedia-retrieved): Throw `skk-annotation-wikipedia-suspended' when user seems to have started editing before retrieval is complete. 2007-04-19 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wait-for-input): Workaround for XEmacs 21.4. Explicitly call `keyboard-quit'. 2007-04-18 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Support for nested
        or
        . 2007-04-17 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): Abolish function. (skk-annotation-show): Include it. Take optional argument SOURCES. (skk-annotation-wait-for-input): Take optional argument SOURCES. browse wikipedia/wiktionary URL for SOURCES. Workaround for XEmacs event handling. (skk-annotation-wikipedia-1): Support "$B1Q8l(B", "$BA0CV;l(B" and "$B@\B3;l(B" for ja.wiktionary. Use `skk-annotation-wikipedia-remove-nested' for removing uls, dls, and tables. (skk-annotation-wikipedia-remove-nested): New function. (skk-annotation-wikipedia-normalize-word): Downcase WORD for wiktionary if WORD doesn't seem consist of only upper case characters. * skk-macs.el (skk-event-key): Under XEmacs, give 2nd, 3rd and 4th args to `event-to-character' with non-nil values. * skk-e21.el (skk-e21-coding-system): Set default value for Carbon Emacs. * skk-vars.el (skk-show-japanese-menu): Set default value for Carbon Emacs. (skk-tooltip-parameters): Add sample setting for customize. * skk.el (skk-preload): Confirm `stringp' of JISYO. 2007-04-16 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wait-for-input): (skk-annotation-wikipedia-region): Allow user to use prefix argument (digit-argument) and limit wikipedia/wiktionary sources. This means source is limited to `(1- prefix-arg)'th element of skk-annotation-wikipedia-sources. (skk-annotation-wikipedia-cache): (skk-annotation-wikipedia): (skk-annotation-treat-wikipedia): Take optional argument SOURCES. * skk-vars.el (skk-show-inline): Also add to skk-basic group. 2007-04-15 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-clean-sup): (skk-annotation-wikipedia-clean-sub): New functions. (skk-annotation-wikipedia-1): Bind `html2text-format-tag-list' to use functions above for tags and . 2007-04-14 Tetsuo Tsukamoto * SKK-MK (SKK_MODULES): Remove duplicate `skk-azik'. * skk-act.el: * skk-azik.el: Move definitions of user options to skk-vars.el. * skk-vars.el (skk-input-basic): Rename group from `skk-input'. (skk-input-enhanced): New custom group. (skk-act): (skk-azik): New groups that belong to `skk-input-enhanced'. (skk-use-act): (skk-use-azik): New user options. * skk.el (skk-mode-invoke): Setup skk-act, skk-azik, skk-tutcode or skk-kanagaki when requested. * tut-code/README.tut: Modify installtation instructions. * tut-code/skk-tutcode.el: Set parent of group `skk-tutcode' to `skk-input-enhanced'. 2007-04-12 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Check for "Cantonese". Pick up "Han character". 2007-04-11 Tetsuo Tsukamoto * doc/skk.texi: Update for supported Emacsen and setup. * skk-macs.el (skk-string-lessp-in-coding-system): (skk-string<): New functions. These provide workaround for the unicode branch of Emacs. * skk-auto.el (skk-okuri-search-subr-original): * skk-macs.el (skk-string<=): * skk-study.el (skk-study-save): * skk.el (skk-search-jisyo): Use `skk-string<' instead of `string<'. * skk-hint.el (skk-hint-limit): Do not take matching of ?\;. 2007-04-10 Tetsuo Tsukamoto * skk-cus.el (skk-customize-group-skk): New function. * skk-e21.el: * skk-xemacs.el: Add popup menu item for `skk-customize-group-skk'. * skk-vars.el: Explicitly call `set-face-foreground' for skk-tut faces. (skk-kcode-charset): (skk-tankan-search-key): Also list in group skk-jisx0213. (skk-treat-candidate-appearance-function): Allow a user to select sample settings. (skk-treat-candidate-sample1): (skk-treat-candidate-sample2): New functions. * skk.el: Under GNU Emacs 20 and XEmacs 21.4, always ignore `skk-tooltip-show-at-point'. (skk-henkan-show-candidate-subr): Don't call `skk-tooltip-show-at-point' for GNU Emacs 20 and XEmacs 21.4. 2007-04-09 Tetsuo Tsukamoto * skk-e21.el (skk-tooltip-show-at-point): More carefully place tooltip frame, so that mouse pointer will not interfere near bottom of the screen. * skk-xemacs.el (skk-tooltip-show-at-point): Likewise. 2007-04-08 Tetsuo Tsukamoto * skk-comp.el (skk-comp-smart-find): Return nil unless skk-abbrev-mode. Set skk-smart-find-file-path to nil when skk-abbrev-mode is nil. (skk-comp-lisp-symbol): (skk-search-lisp-symbol): New functions. * skk-cus.el (skk-cus-update): (skk-cus-save-file): New functions. (custom-save-variables): Advise to call `skk-cus-update'. * skk-e21.el (skk-tooltip-show-at-point): Adjust mouse position in non-follow mode. * skk-vars.el: Custom-related modifications to skk-init-file, skk-large-jisyo, skk-aux-large-jisyo, skk-jisyo, skk-backup-jisyo, skk-show-icon, skk-use-kana-keyboard, and skk-tut-file. Define groups skk-kanagaki and akk-nicola here. (skk-comp-lisp-symbols): New variable. 2007-04-07 Tetsuo Tsukamoto * SKK-MK: Add APEL_DIR to load-path before loading install.el. (SKK_DICTIONARIES): Add dictionaries. * context-skk.el: Modify parent group for "context-skk" group. * skk-annotation.el (skk-annotation-wait-for-input): Suppress warning caused by `split-string' incompatibility. (skk-annotation-wikipedia): For Wiktionary, downcase WORD when needed. (skk-annotation-wikipedia-1): Support for Translingual Symbols such as Greek alphabet. Remove unnecessary local bindings. * skk-comp.el (skk-comp-smart-find): (skk-smart-find): (skk-search-smart-find): New functions. * skk-e21.el: Suppress warnings for Emacs 21. * skk-vars.el: Whole review and update for custom groups and widget types. (skk-smart-find-file-path): (skk-smart-find-ignored-file-regexp): (skk-comp-smart-find-files): New variables. * skk.el (skk-search-identity): New function. (skk-completion-wrapper): Rename from anonymous function assigned to [tab]. 2007-04-07 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Code cleanups. Remove unnecessary variables and procedures. Add "Acronym" as a Category. * skk-vars.el (skk-annotation-wikipedia-sources): (skk-annotation-wikipedia-key): (skk-tooltip-parameters): Fix for custom types. 2007-04-06 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Support for en.wiktionary.org and en.wikipedia.org. Use process buffer as cache buffer. (skk-annotation-wikipedia-cache): If cache for Upcased WORD is not found, lookup cache for WORD itself (un-upcased). (skk-annotation-wikipedia-region): If region is not active, pick up word at point. (skk-annotation-wikipedia-normalize-word): Don't upcase for wiktionary. (skk-annotation-insert): Go to the beginning of buffer after inserting text. * skk-e21.el (skk-tooltip-size): Abolish. (skk-tooltip-resize-text): New function. Resize text when it is too large. * skk-vars.el (skk-tooltip-mouse-behavior): Defaults to `banish' under XEmacs. (skk-annotation-wikipedia-sources): add en.wikipedia and en.wiktionary. * skk-xemacs.el (skk-tooltip-show-at-point): Add missing support for skk-tooltip-x-offset, skk-tooltip-y-offset and skk-tooltip-mouse-behavior. 2007-04-05 Tetsuo Tsukamoto * skk-annotations.el (skk-annotation-find-url): Intended `point-min', not `point-max'. * skk-comp.el (skk-comp-get-regexp): * skk-isearch.el (skk-isearch-search-string-regexp): * skk.el (skk-kana-input): (skk-add-rule): (skk-delete-rule): * tut-code/skk-mkmgk.el (skk-make-mazegaki-dic-1): Use `string-to-list' instead of `string-to-char-list'. * skk-e21.el (skk-e21-mouse-position): Refer to skk-henkan-start-point only when skk-henkan-mode is active. 2007-04-04 Tetsuo Tsukamoto * skk-annotations.el (skk-annotation-wikipedia-1): Regexp fix. Remove tables and bigs. Remove "A > B > C"-like hierarchy. Modify the cache buffer name. (skk-annotation-wikipedia-cache): Return pair of cached annotation and the cache buffer name. (skk-annotation-wait-for-input): Also browse wikipedia/wiktionary URLs. (skk-annotation-find-url): Discard URL that does not contain a domain name. (skk-annotation-wikipedia-normalize-word): New function. 2007-04-03 Tatsuya Kinoshita * skk-server.el (skk-search-server-1): Workaround for a problem where Emacs tries to accept replies from SKK server too fast and too often. Just call `sit-for' with 10 milliseconds interval after `accept-process-output' to avoid the problem. 2007-04-03 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-url-package-available-p): Also support Emacs 20.7 with unofficial MULE 4.1 patch. (skk-annotation-find-and-show): (skk-annotation-display-p): (skk-annotation-wikipedia-region): Clear existing messages. * skk-e21.el (skk-tooltip-size): New function. (skk-tooltip-show-at-point): Implement mouse pointer-indepent decision of tooltip frame position. (skk-tooltip-show-1): When skk-tooltip-mouse-behavior is follow, refer to skk-tooltip-x-offset and skk-tooltip-y-offset instead of default offset variables. Clear existing messages. Use `mouse-avoidance-set-mouse-position'. * skk-vars.el (skk-tooltip-mouse-behavior): (skk-tooltip-x-offset): (skk-tooltip-y-offset): New variables. * skk-xemacs.el (skk-tooltip-show-at-point): (skk-xemacs-balloon-help-resize-help-frame): Adjust size and position of tooltip frame. 2007-04-02 Tetsuo Tsukamoto * skk-xemacs.el (multibyte-string-p): Typo. (skk-tooltip-show-1): Bind parameters fail-safe. (skk-tooltip-show-at-point): (skk-xemacs-balloon-help-resize-help-frame): Adjust size and position of tooltip frame. 2007-04-01 Tetsuo Tsukamoto * skk-annotation.el: Wikipedia support for XEmacs. (skk-annotation-generate-url): url-util.el is mandatory. (skk-annotation-wikipedia-1): Use `get-buffer' instead of 'buffer-live-p'. (skk-annotation-url-package-available-p): Properly advise XEmacs or Emacs 21. * skk-e21.el (skk-tooltip-show-at-point): When `mouse-position' does not return a valid position, find position with `mouse-avoidance-point-position'. (skk-tooltip-hide): New alias to `tooltip-hide'. * skk-vars.el (skk-tooltip-parameters): Update comment for XEmacs. * skk-xemacs.el (multibyte-string-p): New alias to `stringp'. (current-pixel-row): New maybe-alias to `ignore'. (skk-tooltip-hide): New alias to `balloon-help-undisplay-help'. (skk-tooltip-show-at-point): New function definition for XEmacs. (skk-xemacs-balloon-help-resize-help-frame): New function. (minibuffer-setup-hook): Remove `skk-add-skk-pre-command' from minibuffer-setup-hook. * skk.el (skk-henkan-show-candidate-subr): Avoid using multiple methods for candidate display. (skk-add-skk-pre-command): (skk-remove-skk-pre-command): New functions, used by many functions. 2007-04-01 Kitamoto Tsuyoshi * makeit.bat: Typo. 2007-04-01 Tetsuo Tsukamoto * skk-e21.el (skk-e21-modeline-menu): New variable. (skk-e21-prepare-menu): New function. (skk-e21-modeline-menu): Pop up skk-e21-modeline-menu instead of skk-e21-modeline-menu-items. * skk-server-completion.el: Require skk-server. * skk-vars.el (skk-show-japanese-menu): Set the default value. * skk-viper.el: Check function `sentence-end' at compile time. * skk.el (skk-mode-invoke): Call `skk-e21-prepare-menu'. 2007-03-31 Tetsuo Tsukamoto * doc/skk.texi: Update for required APEL version. * skk-annotation.el (skk-annotation-wait-for-input): Store wikipedia annotation in local variable ANNOTATION for the following events. * skk.el: Add comments for APEL and `make-temp-file'. (widget-field-activate): Advise with`skk-wrap-newline-command'. 2007-03-30 Tetsuo Tsukamoto * SKK-CFG: Update. 2007-03-29 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): (skk-annotation-show-2): Inhibit `skk-annotation-wait-for-input' when `skk-annotation-display-p' fails for minibuf or skk-isearch-switch is on. * skk-e21.el (skk-tooltip-show-at-point): Disable the Elscreen workaround in minibuffer. * skk-vars.el (skk-jisx0201-mode-string): Modify the default value. 2007-03-28 Tetsuo Tsukamoto * skk-version.el (skk-version): Bump to 13.0.91. * SKK-MK: Fix installation paths for Carbon Emacs. * skk-annotation.el: Load skk-macs.el and skk-vars.el within 'eval-and-compile'. 2007-03-28 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-generate-url): (skk-annotation-url-package-available-p): (skk-annotation-find-and-show): New functions. * skk-vars.el (skk-annotation-url-package-available-p): New variable. * skk.el (skk-henkan): (skk-henkan-in-minibuff): (skk-previous-candidate): Call `skk-annotation-find-and-show'. 2007-03-27 Tetsuo Tsukamoto * etc/NICOLA-SKK.tut: * etc/SKK.tut: * etc/SKK.tut.E: Use `skktut-user-name' instead of `user-full-name'. * SKK-CFG: Update comments and examples. * SKK-MK: Set APEL_DIR and EMU_DIR instead of APEL_SPECIFIC_LISPDIR and EMU_PREFIX. No longer support customization with enviromental variables. * skk-tut.el (skktut-user-name): New function. * tinyinstall.el: No longer in repository. 2007-03-25 Tetsuo Tsukamoto * SKK-MK: Remove functions for detecting APEL installation paths. (SKK-MK-generate-autoloads-el-package): Under XEmacs 21.5, call `autoload-featurep-protect-autoloads' instead of `fixup-autoload-buffer'. Now requires APEL 10.7 or later. * skk-macs.el (skk-event-key): Under XEmacs, when there exists a character that is relevant to EVENT, return the character. * skk-tankan.el: Convert coding system (euc-jp -> iso-2022-jp). * tinyinstall.el: Remove codes, except one for setting install-prefix. 2007-03-20 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Fix patterns for wiktionary. (skk-annotation-wikipedia-region): New command. * skk-e21.el (skk-tooltip-show-at-point): Modify so that it also works when skk-henkan-mode is not active. 2007-03-19 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia): Also refer to Wiktionary. (skk-annotation-wikipedia-1): New function. * skk-vars.el (skk-annotation-wikipedia-sources): New user option. 2007-03-17 Masatake YAMATO * skk.el (skk-wrap-newline-command): New macro. Don't do defadvice `commint-send-input' directly. Use `skk-wrap-newline-command' to do defadvice instead. Wrap `ielm-return' and `rcirc-send-input' with `skk-wrap-newline-command'. 2007-03-12 Tetsuo Tsukamoto * skk.el (skk-setup-keymap): Workaround for Emacs key translation. If TAB is assigned as the completion key, also assign . 2007-03-09 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show): (skk-annotation-show-1): (skk-annotation-wait-for-input): Accept optional arg WORD. (skk-annotation-wikipedia-cache): New function. (skk-annotation-wikipedia): Modify regexp. * skk-vars.el (skk-annotation-show-wikipedia): (skk-annotation-wikipedia-wait-before-retrieval): Abolish variables. (skk-annotation-show-wikipedia-url): New variable. * skk.el (skk-henkan): (skk-henkan-in-minibuff): (skk-previous-candidate): Use wikipedia cache. 2007-03-09 Tetsuo Tsukamoto Suggested by KOIE Hidetaka . * skk-vars.el (skk-annotation-wikipedia-key): New variable. 2007-03-08 KOIE Hidetaka * skk-annotation.el (skk-annotation-treat-wikipedia): Fix for local variable name. 2007-03-08 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia): Decode data before searching. Check if value of skk-treat-candidate-appearance-function is a function. * skk-e21.el (skk-tooltip-show-at-point): When elscreen is loaded, also check variable elscreen-display-tab. 2007-03-07 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-treat-wikipedia): New function. * skk-e21.el (skk-tooltip-show-at-point): When elscreen is loaded, move mouse pointer 1 more position downward. * skk.el (skk-henkan): (skk-henkan-in-minibuff): (skk-previous-candidate): Call `skk-annotation-treat-wikipedia'. 2007-03-04 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia) (skk-annotation-wikipedia-retrieved): New functions. * skk-vars.el (skk-annotation-show-wikipedia) (skk-annotation-wikipedia-wait-before-retrieval): New user options. * skk.el (skk-henkan): When WORD has no note and `skk-annotation-show-wikipedia' is set, use Wikipedia for annotation. (skk-search-upcase): If optional arg INITIAL is non-nil, only upcase initials. 2007-02-17 Tetsuo Tsukamoto Suggested by Kitamoto Tsuyoshi . * doc/skk.texi: Modify example for skk-tut-file. Accurately write the term "X Window System". 2007-02-02 Tetsuo Tsukamoto * skk-obsolete.el: Update for abolished functions `skk-jisx0208-latin-henkan' and `skk-latin-henkan'. * skk-vars.el (skk-allow-spaces-newlines-and-tabs): Docstring update. * skk.el (skk-define-jisx0208-latin-mode-map): Define C-q to call `skk-toggle-characters' instead of abolished function `skk-latin-henkan'. 2006-12-29 IRIE Tetsuya * skk-act.el: Fixed comment. (skk-delete-implies-kakutei): Don't modify value. 2006-12-10 IRIE Tetsuya * skk-kakasi.el: Require `skk-vars' at toplevel. 2006-11-19 Eiji Obata * skk.el (skk-henkan-show-candidate-subr): Fixed disposition when `skk-show-tooltip' and `skk-henkan-show-candidates-rows' > 1. (skk-henkan-show-candidates-buffer): Enlarge candidates-buffer if needed. (skk-henkan-show-candidates): Replace ?\040 with `skk-start-henkan-char', ?x with `skk-previous-candidate-char'. (skk-henkan-in-minibuff): Redisplay note after exiting from registration mode. 2006-11-18 Eiji Obata * skk-kcode.el (skk-input-by-code-or-menu-1): Bug fixed. (skk-input-by-code-or-menu-jump, skk-input-by-code-or-menu-1): Replace ?\040 with `skk-start-henkan-char'. 2006-10-10 Tetsuo Tsukamoto Suggested by IRIE Tetsuya . * skk-tankan.el: Modify comments, i.e. use `add-hook' for skk-search-excluding-word-pattern-function. 2006-10-10 Kenichi Kurihara * experimental/bayesian/bskk (serve): Bug fixed. * experimental/bayesian/skk-bayesian.el (skk-bayesian-search): Bug fixed. 2006-09-11 Tatsuya Kinoshita * skk.el (skk-count-jisyo-candidates-original): Typo. 2006-08-07 Tatsuya Kinoshita * tinyinstall.el (install-detect-elisp-directory): Sync with install.el in APEL CVS head. Ignore nils in default-load-path. 2006-08-03 Tetsuo Tsukamoto * skk-macs.el (skk-sit-for): 2nd arg of `sit-for' is MILLISECONDS under Emacs 21.4 or earlier, but it is NODISP under Emacs 22. Fix. 2006-07-17 Yoichi NAKAYAMA * skk-hint.el: Move (require 'skk-vars) to top level. 2006-05-31 Tetsuo Tsukamoto * skk.el (skk-henkan-show-candidate-subr): When skk-show-inline is non-nil and the pointer is in minibuffer, show the classic candidate list. 2006-03-12 Eiji Obata * skk.el (skk-henkan-candidate-list): Don't call `skk-annotation-get' when `skk-show-annotation' is nil. (skk-compile-rule-list): Don't modify rule-list. Use `dolist'. 2006-03-11 Eiji Obata * skk-server-completion.el: Modify comments. 2006-03-08 Eiji Obata * skk.el (skk-henkan-show-candidates): Bugfix related to `skk-henkan-show-candidates-rows'. E.g., ignore "q" if `skk-henkan-show-candidates-rows' is 1. 2006-02-24 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): Also call `skk-eval-string' for updating ANNOTATION. 2006-02-23 Eiji Obata * skk.el (abort-recursive-edit): While completing key in minibuffer, back to the original input by typing C-g. 2006-02-22 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): split ANNOTATION before `skk-eval-string' is called. (skk-annotation-wait-for-input): Take 2nd argument NOTES. 2006-02-21 Eiji Obata * skk.el (skk-search-kakutei-jisyo-file): Modify docstring. * skk-look.el (skk-look-completion): More readable. * skk-server-completion.el (skk-server-completion-search) (skk-comp-by-server-completion): Ditto. 2006-02-21 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-2): New function. (skk-annotation-wait-for-input, skk-annotation-find-url): New functions. Browse sites in the current notes using URLs that `thing-at-point' finds. (skk-annotation-show-1): Call `skk-annotation-show-2' and `skk-annotation-wait-for-input'. 2006-02-20 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): Also browse URL within the current note. 2006-02-16 Tetsuo Tsukamoto * skk-server.el (skk-open-server, skk-open-server-1): Don't call `skk-open-network-stream' for the same host twice. First add information for skk-server-host or environment variable SKKSERVER to skk-servers-list. After that try to open the connection according to skk-servers-list. After that unsetenv SKKSERVER i.e. won't connect to SKKSERVER again. Fix the bad conditional statement by skk-server-inhibit-startup-server. (skk-open-network-stream): Take optional arguments HOST and PORT. (skk-startup-server): Take arguments HOST, PROG, JISYO and PORT. Use `sleep-for' instead of `sit-for' for actually waiting for the invoked service. 2006-02-14 Eiji Obata * skk-vars.el (skk-delete-implies-kakutei): Accept value `dont-update'. * skk.el (skk-delete-backward-char): If `skk-delete-implies-kakutei' is `dont-update', bind `skk-update-jisyo-function' to `ignore'. * skk-isearch.el (skk-isearch-delete-char): Ditto. * skk-viper.el (viper-del-backward-char-in-insert) (vip-del-backward-char-in-insert): Ditto. 2006-02-13 Eiji Obata * skk.el (skk-restart): Arrange order. * skk-vars.el: Modify docstrings. * skk.el: Ditto. 2006-02-12 Eiji Obata * context-skk.el (context-skk-mode): Change autoload cookie for XEmacs. 2006-02-11 Eiji Obata * experimental/bayesian/skk-bayesian.el (skk-bayesian-search): Use `mapconcat'. (skk-bayesian-update): Suppress message. 2006-02-10 Eiji Obata * skk.el (skk-search-with-suffix): Remove note. * skk-vars.el (skk-aux-large-jisyo, skk-search-prog-list) (skk-server-prog, skk-server-jisyo): Modify docstrings. 2006-02-09 Eiji Obata * skk-server-completion.el (skk-server-completion-search): Merge with `skk-server-completion-search-recursive'. Consider `skk-use-numeric-conversion'. (skk-server-completion-search-recursive): Abolish. 2006-02-08 Eiji Obata * skk-num.el (skk-num-compute-henkan-key): Don't convert "." which is not part of float. 2006-02-05 Eiji Obata * skk-comp.el (skk-comp-restrict-by-prefix): New function. * skk-look.el (skk-look-completion): Consider `skk-use-numeric-conversion'. * skk-server-completion.el (skk-comp-by-server-completion): Ditto. * skk-comp.el (skk-comp-re-search-current-buffer): Bug fixed. * skk-num.el (skk-num-compute-henkan-key): Remove "," only when surrounded by number. 2006-02-04 Eiji Obata * skk-vars.el (skk-comp-prefix-regexp-alist) (skk-comp-kana-list-filter-function): New variables. * skk-comp.el (skk-comp-get-regexp, skk-comp-collect-kana) (skk-comp-arrange-kana-list): New functions. (skk-comp-re-search-current-buffer): New function. (skk-comp-from-jisyo): Use it. 2006-02-03 Eiji Obata * skk-vars.el (skk-annotation-function): Update doc string. 2006-02-01 Eiji Obata * skk-annotation.el (skk-annotation-get): Use `defun' instead of `defsubst'. Handle empty string properly. * skk.el (skk-henkan-candidate-list): Use `skk-annotation-get'. Eval candidate and note only once. 2006-01-30 Eiji Obata * skk-vars.el (skk-show-num-type-info): New user option. * skk.el (skk-show-num-type-info): New function. (skk-henkan-in-minibuff): Use it. 2006-01-26 Eiji Obata * skk.el (skk-search): Change order of numeric and non-numeric search. * skk-jisyo-edit-mode.el (skk-henkan-in-minibuff@before@notify-no-effect) (skk-purge-from-jisyo@around@notify-no-effect): New advices. (skk-edit-private-jisyo): Use them. 2006-01-24 Eiji Obata * skk-jisyo-edit-mode.el (skk-jisyo-edit-original-window-configuration): New variable. (skk-edit-private-jisyo): New command. 2006-01-23 Eiji Obata * skk-comp.el (skk-comp-get-all-candidates): Bug fixed. 2006-01-16 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-1): Never throw. Just ignore quit signal. * skk.el (skk-insert-new-word): Don't show the note here. (skk-henkan, skk-previous-candidate): Show the note there. 2006-01-16 Eiji Obata * skk-comp.el (skk-comp-get-all-candidates): Remove duplicate. * skk-vars.el (skk-annotation-target-data): Rename from `skk-annotation-annotated-word'. Now, it's 3rd element is candidate, not copy of skk-henkan-list. * skk-annotation.el (skk-annotation-remove) (skk-annotation-last-word-1): Update. (skk-annotation-setup): Handle numeric candidate correctly. (skk-annotation-add): Don't remove too much `*'. (skk-annotation-save-and-quit): Allow annotation which start with `;'. When new annotation is null, remove old annotation. 2006-01-15 Eiji Obata * skk-comp.el (skk-comp-do): Even if input pattern is irregular, don't clear it. 2006-01-14 Eiji Obata * skk-vars.el (skk-comp-use-prefix): Accept value `kakutei-first'. * skk-macs.el (skk-kana-cleanup): Return data. * skk-comp.el (skk-comp-do): When `skk-comp-use-prefix' is not `kakutei-first' and non-nil, keep original key and prefix. (skk-comp-prefix-unnecessary-p): Abolish. 2006-01-13 Eiji Obata * skk-act.el, skk-azik.el: Modification for `skk-restart'. * skk-comp.el (skk-completion-search): Bind `skk-comp-use-prefix' to nil. 2006-01-12 Tetsuo Tsukamoto Suggested by Eiji Obata * skk-develop.el: More highlighting (e.g. `skk-save-point', `skk-with-point-move', etc). Put `doc-string-elt' for `skk-deflocalvar', `skk-defadvice', `defun-maybe', `defmacro-maybe' and `defalias-maybe'. 2006-01-11 Tetsuo Tsukamoto * skk-vars.el (skk-show-candidates-toggle-display-place-char): Rename from skk-show-candidates-toggle-display-char. * skk.el (skk-henkan-show-candidates): Modify for it. 2006-01-11 Eiji Obata * skk.el (skk-search-progs): Rename from `skk-search-all-progs'. Add optional arguments PROG-LIST, REMOVE-NOTE. (skk-search-sagyo-henkaku, skk-search-with-suffix): Update. * skk-vars.el (skk-completion-search-char): New variable. * skk-comp.el (skk-completion-search): New function. (skk-comp-by-history): Add doc-string. * skk.el (skk-update-jisyo-original): When `skk-numeric-p' and `skk-lisp-prog-p' return non-nil, treat candidate as numeric entry. 2006-01-11 Tetsuo Tsukamoto * skk-vars.el (skk-show-candidates-toggle-display-char): New variable. * skk.el (skk-henkan-show-candidates): Toggle skk-show-candidates-always-pop-to-buffer by typing skk-show-candidates-toggle-display-char. 2006-01-10 Eiji Obata * skk-look.el (skk-look): Add optional arguments CONVERSION-ARGUMENTS, NOT-ABBREV-ONLY, EXPAND-NULL. Add doc-string. (skk-look-completion): Add optional argument EXPAND-NULL. Update doc-string. Don't downcase key. 2006-01-10 IRIE Tetsuya * skk-act.el: New file. 2006-01-10 Tetsuo Tsukamoto * skk-azik.el: From experimental. * SKK-MK (SKK_MODULES): Add skk-act and skk-azik. 2006-01-09 Eiji Obata * skk-comp.el (skk-comp-get-all-candidates): Autoload. * skk-server-completion.el (skk-server-completion-search): Merge `skk-server-completion-search-1' and simplify. (skk-server-completion-search-1): Abolish. (skk-server-completion-search-midasi): Simplify. 2006-01-08 Eiji Obata * skk-look.el (skk-look-completion): When `skk-comp-key' is "", do nothing. 2006-01-08 Tetsuo Tsukamoto * skk-look.el (skk-look-1): Accept null word. 2006-01-08 Eiji Obata * skk-vars.el (skk-server-completion-search-char): Variable from skk-server-completion.el. Rename -key to -char. (skk-server-completion-words): New internal variable. * skk-server-completion.el (skk-comp-do-1@after@skk-server-completion-advice-skk-comp-do-1): Abolish. (skk-comp-by-server-completion): New function. (skk-server-completion-search-1): Use `skk-server-completion-search-char' instead of `skk-server-completion-search-key'. * skk-look.el (skk-look-completion): Bug fixed. 2006-01-07 Eiji Obata * skk-vars.el (skk-comp-use-prefix, skk-completion-prog-list): New variables. (skk-comp-prefix, skk-current-completion-prog-list) (skk-comp-first): New internal variables. * skk-comp.el (skk-comp-get-candidate) (skk-comp-prefix-unnecessary-p): New functions. (skk-comp-do): Use them. Now, completion programs can be controlled by `skk-completion-prog-list'. (skk-comp-previous): Modify message. (skk-comp-do-1): Abolish. (skk-comp-from-jisyo): New function. (skk-comp-by-history): Update for new spec. (skk-comp-get-all-candidates): New function. For test use. * skk-look.el (skk-look-completion): Update for new spec. Add optional arguments COMPLETION-ARGUMENTS, NOT-ABBREV-ONLY. (skk-try-completion@before@skk-look-ad): Abolish. 2006-01-06 Tetsuo Tsukamoto * Makefile: Don't set SKK_DEFAULT_JISYO. (tar): (snapshot): No longer depend on rb-skk-dic. (clean): Remove skk-dic.el. * SKK-MK (SKK_DEFAULT_JISYO): Default to nil. (SKK-MK-skk-dic): If user does not specify SKK_DEFAULT_JISYO, just copy skk-dic.el.in to skk-dic.el. * skk.el (skk-kakutei): When combining words, always strip notes from all words. * skk-vars.el (skk-look-dictionary): (skk-look-ignore-case): (skk-look-dictionary-order): (skk-look-termination-character): Abolish variables. (skk-look-conversion-arguments): (skk-look-completion-arguments): New variables. (skk-search-prog-list): Remove `skk-search-small-dic'. * skk-look.el (skk-look-1): (skk-look-ispell): Abolish 2nd arg ignore-case. Instead, take new 2nd arg situation. Simplify. (skk-look): Pass `conversion' as the 2nd arg for them. (skk-look-completion): Pass `completion' as the 2nd arg for them. * skk-comp.el (skk-comp-do): No longer refer to skk-look-ignore-case. Check skk-look-completion-arguments instead. 2006-01-05 Tetsuo Tsukamoto * skk-develop.el: Use before-init-hook for setting lisp-font-lock-keywords-2. Separate patterns of func declarations, var declarations and other declarations. Fix matching number. * skk-macs.el (substring-no-properties): Define for XEmacs and FSF Emacs 21 or older. (next-command-event): Do not use definition in APEL 10.6. Redefine for FSF Emacs. * skk-vars.el (skk-learn-combined-word): New user option, default to nil. * skk.el (skk-kakutei): Do not learn combind word if skk-learn-combined-word is nil. Before combining prefix and word, strip note from word. (skk-insert-new-word): Do not call `skk-treat-candidate-appearance-function' when skk-kakutei-flag is on. 2006-01-04 Eiji Obata * skk.el (skk-insert): Don't call `skk-process-prefix-or-suffix' when point is immediately following `$B"&(B'. (skk-restart): Use `set-default' to re-initialize variables. * skk-annotation.el (skk-annotation-insert) (skk-annotation-show-as-message): Don't call `skk-eval-string' here. 2006-01-04 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): Allow user browse and copy simultaneously. Handle quit signal. * skk-dcomp.el (skk-dcomp-activate-p): Use `save-match-data'. 2005-12-29 Eiji Obata * skk-server-completion.el (skk-server-completion-search-recursive): Optimize using `nconc'. 2005-12-29 Fumihiko MACHIDA * SKK-MK (SKK_MODULES): Add skk-server-completion. * skk-server-completion.el: New file. 2006-01-04 Tetsuo Tsukamoto * *: Update FSF address. * skk-annotation.el (skk-annotation-show-1): While showing a note, allow users to make use of it. If skk-annotation-copy-key is typed, save it to kill ring. If skk-annotation-browse-key is typed, browse it as URL. * skk-vars.el (skk-annotation-copy-key): (skk-annotation-browse-key): New variables. 2005-12-29 Eiji Obata * skk-vars.el (skk-share-private-jisyo-internal) (skk-jisyo-save-count-internal): Abolish variables. * skk-macs.el (skk-share-private-jisyo-p): New inline function. * skk.el (skk-adjust-user-option): Undo the last change. (skk-save-jisyo-original, skk-update-jisyo-original): Use `skk-share-private-jisyo-p'. 2005-12-28 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-setup): Set skk-kakutei-flag to nil after `skk-henkan-in-minibuff'. * skk-gadget.el (skk-ignore-dic-word): Do not return new-word. Instead, throw new-word to `skk-insert-new-word'. When no new-word, throw `none'. * skk.el (skk-henkan): Do not set skk-henkan-in-minibuff-nest-level here. (skk-henkan-in-minibuff): Set skk-henkan-in-minibuff-nest-level here. (skk-insert-new-word): If `skk-ignore-dic-word' skips current word and throws the next word, do everything from the beginning. If `skk-ignore-dic-word' throws `none', do nothing. When skk-kakutei-flag is on, call `skk-kakutei'. 2005-12-28 Tetsuo Tsukamoto * skk-e21.el (skk-e21-mouse-position): Undo previous workaround for Emacs 22. Use (cddr P) for position y. 2005-12-27 Masatake YAMATO * context-skk.el (context-skk-on-vowel-key-reserved-p) (context-skk-in-read-only-area-p): Don't call `car' on a return value from `get-char-property'. 2005-12-27 Masatake YAMATO * context-skk.el (context-skk-on-vowel-key-reserved-p): Use `get-char-property' instead of `get-char-property-and-overlay'. (context-skk-in-read-only-area-p): Ditto. 2005-12-26 Tetsuo Tsukamoto * Makefile (VERSION): 13.0.90. (CP): Abolish. * doc/skk.texi: Remove antique questions. * skk-e21.el (skk-tooltip-show-at-point): Refer to emacs-major-version instead of emacs-version. Do not use `sit-for'. Use `next-command-event' and `skk-unread-event' instead with inhibit-quit bound to t. Call `tooltip-hide'. 2005-12-25 Tetsuo Tsukamoto * doc/skk.texi: Update news chapter. * skk-isearch.el (isearch-repeat): Call `replace-regexp-in-string'. * skk-macs.el (skk-replace-regexp-in-string): Abolish. (skk-minibuffer-origin): Undo the last change. * skk-vars.el (skk-henkan-in-minibuff-nest-level): Declare as a global variable. (skk-deflocalvar): Do not pass docstring to `defvar' if it is nil. (skk-minibuffer-origin): Abolish variable. * skk-version.el (skk-version): Pre-release version 13.0.90. * skk.el (skk-henkan): At the first entry into minibuffer registration, set skk-henkan-in-minibuff-nest-level to `minibuffer-depth' - 1. (skk-henkan-in-minibuff): Create "`minibuffer-depth' - skk-henkan-in-minibuff-nest-level" pairs of parens. Do not set skk-minibuffer-origin. (skk-exit-henkan-in-minibuff): When exiting minibuffer registration, set skk-henkan-in-minibuff-nest-level to nil. Do not set skk-minibuffer-origin. 2005-12-24 Tetsuo Tsukamoto * SKK-MK: Temporarily do not install context-skk.el if `define-minor-mode' is not available. * skk-e21.el: Move inline candidate display method to skk.el and skk-vars.el. * skk-macs.el (skk-minibuffer-origin): Return value of skk-minibuffer-origin if it is set. (propertize): (replace-regexp-in-string): defun-maybe. * skk-server.el (skk-disconnect-server): Autoload. * skk-vars.el (skk-minibuffer-origin): New variable. (skk-inline-overlay): From skk-e21.el. * skk-xemacs.el (minibuffer-keyboard-quit): Call `skk-exit-henkan-in-minibuff'. * skk.el: Autoload `skk-jisx0213-henkan-list-filter'. Do not show compile time warning for migemo-isearch-enable-p. (skk-mode-exit): XEmacs only. Call `delete-menu-item' instead of `easy-menu-remove'. (skk-henkan): Set skk-minibuffer-origin before entering minibuffer. Set skk-henkan-in-minibuff-nest-level in buffer returned by `skk-minibuffer-origin'. Call `skk-inline-hide' even if Emacs is not FSF Emacs 21 or greater. (skk-exit-henkan-in-minibuff): Avoid too much decrement of skk-henkan-in-minibuff-nest-level [incomplete]. Set skk-minibuffer-origin to nil when minibuffer edit is totally over. (minibuffer-exit-hook): Call `skk-exit-henkan-in-minibuff'. (skk-henkan-show-candidate-subr): (skk-henkan-in-minibuff): Call `skk-inline-show' even if Emacs is not FSF Emacs 21 or greater. (skk-inline-show): (skk-inline-hide): From skk-e21.el. 2005-12-24 Tetsuo Tsukamoto * skk-dcomp.el (skk-abbrev-comma): (skk-abbrev-period): Advices. 2005-12-23 Tetsuo Tsukamoto * skk-macs.el (skk-deflocalvar): Remove duplicate. * skk-vars.el (skk-deflocalvar): Use the new style backquote. Do not describe "buffer local" in doc string for FSF Emacs 22 and XEmacs. * skk.el (skk-set-henkan-point): Fix for 2005-02-27 commitment. Bind skk-dcomp-activate. Not set. (skk-get-current-candidate): Validate if `skk-get-current-candidate-1' returns a cons cell before calling `car' or `cdr' for it. (skk-henkan-candidate-list): Set note to nil at the beginning of every step of the loop. 2005-12-23 Masatake YAMATO * context-skk.el: Rewrite. Use custom for customising context-skk.el. Introduce on-the-fly skk customising framework. Delte `lisp-interaction-mode' from `context-skk-programming-mode'. *scratch* is not for emacs lisp programming. 2005-12-22 Eiji Obata * skk-vars.el (skk-share-private-jisyo, skk-jisyo-save-count): Update doc string. (skk-share-private-jisyo-internal, skk-jisyo-save-count-internal): New internal variables. * skk.el (skk-restart): Call `skk-save-jisyo' first. Re-initialize SKK related variables, except for `skk-init-file', which has `standard-value' property. Disconnect server. (skk-adjust-user-option): Copy `skk-jisyo-save-count' to `skk-jisyo-save-count-internal', `skk-share-private-jisyo' to `skk-share-private-jisyo-internal'. (skk-save-jisyo-original): Use `skk-share-private-jisyo-internal' instead of `skk-share-private-jisyo'. (skk-update-shared-jisyo): Use length of `skk-jisyo-update-vector' instead of `skk-jisyo-save-count'. (skk-update-jisyo-original): Use `skk-share-private-jisyo-internal' instead of 'skk-share-private-jisyo'. Use `skk-jisyo-save-count-internal' but don't affect users who don't share private jisyo. 2005-12-20 Eiji Obata * skk-macs.el (skk-lisp-prog-p): Call `read-from-string' for STRING and validate the length of the returned expression. 2005-12-20 Tetsuo Tsukamoto * skk-comp.el (skk-comp-do): No longer treat skk-use-look and skk-look-ignore-case as boolean. Check if it is t, nil, conversion, completion or sth. * skk-e21.el (skk-tooltip-show-at-point): Take optional argument LISTING. * skk-look.el (skk-look): Do nothing when skk-look is nil or completion. Disable skk-look-ignore-case if its value is nil or completion. (skk-look-completion): Disable skk-look-ignore-case if its value is nil or conversion. (skk-look-1): (skk-look-ispell): Accept optional argument IGNORE-CASE. * skk-vars.el: Update doc strings. * skk.el (skk-henkan-show-candidate-subr): Call `skk-tooltip-show-at-point' with its 2nd arg LISTING non-nil. 2005-12-19 TAKAHASHI Kaoru * doc/skk.texi: Fix @xref{} nodename. 2005-12-18 Tetsuo Tsukamoto * skk-dcomp.el (skk-dcomp-activate-p): New function. (skk-dcomp-do-completion): Call it. (skk-comp-start-henkan): Advice. * skk.el: Add comments. (skk-henkan-candidate-list): (skk-henkan-show-candidates-buffer): New functions. (skk-henkan-show-candidate-subr): Call them. 2005-12-16 Tetsuo Tsukamoto * skk-vars.el (skk-henkan-in-minibuff-nest-level): Declare as a buffer local variable. * skk.el (skk-exit-henkan-in-minibuff): New function. (skk-henkan): Call it from minibuffer-exit-hook to decrement skk-henkan-in-minibuff-nest-level. (skk-henkan-in-minibuff): When skk-show-tooltip is non-nil, call `tooltip-hide'. 2005-12-16 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): Call `skk-eval-string' for ANNOTATION. * skk-macs.el (skk-eval-string): No longer inline function. If STRING contains note, split it into candidate and note, eval each of them and concatenate again. Always check for `skk-lisp-prog-p'. Preserve face property of STRING. * skk.el (skk-henkan-show-candidate-subr): When skk-treat-candidate-appearance-function is called and user returns a cons cell of candidate and note, call `skk-eval-string' for each of them. Do not check e for consp twice. Do not check for `skk-lisp-prog-p' here, just call `skk-eval-string'. 2005-12-15 Tetsuo Tsukamoto * skk.el (skk-henkan-show-candidate-subr): When skk-treat-candidate-appearance-function is called and user returns note without separator string, add ";". 2005-12-15 Tetsuo Tsukamoto * skk-e21.el (skk-tooltip-show-1): New function. (skk-tooltip-show): Call it. Temporarily do not call `tooltip-hide' here. * skk-vars.el (skk-tooltip-parameters): New variable. * skk.el (skk-kakutei): Temporarily call `tooltip-hide' here. 2005-12-15 Tetsuo Tsukamoto * experimental/bayesian/skk-bayesian.el (skk-bayesian-update): In the current henkan buffer, before calculating how many characters the point should move backward, strip note from WORD to avoid moving too many characters backward. * skk-e21.el (skk-inline-show): If FACE is nil, do not set face property of STRING. * skk-vars.el (skk-inline-show-face): New variable. * skk.el (skk-henkan-show-candidate-subr): If candidate e is a cons cell, set e to the cdr of e instead of the car of it. When skk-treat-candidate-appearance-function is called and note is set, do not check e for ";" again. Pass skk-inline-show-face to `skk-inline-show' as the second argument. Do not display the classic candidate list if skk-show-inline is non-nil. (skk-insert-new-word): Get face property of WORD and erase the face property from it before insertion. When skk-treat-candidate-appearance-function is called and note is set, do not check e for ";" again. (skk-treat-strip-note-from-word): New function. 2005-12-14 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): Undo the last change. * skk-vars.el (skk-treat-candidate-appearance-function): Rename from skk-annotation-propertize-function. Update doc string according to new specifications. (skk-non-numeric-prog-list): Rename from skk-non-numeric-program-list. (skk-show-candidates-always-pop-to-buffer): New variable. * skk.el (skk-henkan-show-candidate-subr): If candidate e is a cons cell, set e to the car of e. Call skk-treat-candidate-appearance-function before treating annotation. If skk-show-candidates-always-pop-to-buffer is non-nil, always call `pop-to-buffer'. (skk-insert-new-word): Call skk-treat-candidate-appearance-function before treating annotation. Pass the face property of WORD to `skk-henkan-face-on'. (skk-henka-face-on): Accept optional argument FACE. Use it if set instead of skk-henkan-face. Always clear skk-henkan-overlay. (skk-numeric-program-p): Modify skk-non-numeric-program-list to skk-non-numeric-prog-list. 2005-12-13 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): When skk-annotation-propertize-function is a function, call it and modify ANNOTATION. * skk-vars.el (skk-annotation-propertize-function): New variable. * skk.el (skk-henkan-show-candidate-subr): When candidate contains a note and skk-annotation-propertize-function is a function, call it and modify the note. 2005-12-13 Tetsuo Tsukamoto * skk-vars.el (skk-non-numeric-program-list): New variable. * skk.el (skk-numeric-program-p): New function. (skk-search): Do not do numeric search if `skk-numeric-program-p' returns nil for prog. 2005-12-11 Masatake YAMATO * skk-vars.el (skk-henkan-in-minibuff-nest-level): New variable. * skk.el (skk-henkan): Bind `skk-henkan-in-minibuff-nest-level'. If it is not bount to a number i.e. SKK is yet to enter henkan in minibuff mode, bind it to 0, otherwise increment it. (skk-henkan-in-minibuff): When skk-show-inline is non-nil, modify the inline prompt to "$B"-<-=qEPO?Cf"-(B". Create prompt so that it have `skk-henkan-in-minibuff-nest-level + 1' pairs of parens, i.e. number of pairs of parens shows the recursive depth of the word registration mode in progress. 2005-01-23 MITA Yuusuke Modified on 2005-12-11 by Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-display-p): (skk-annotation-toggle-display-p): New functions. (skk-annotation-show-1): When `skk-annotation-display-p' returns nil for minibuf and SKK is in minibuffer, do not show notes. * skk-cus.el (skk-cus-params-visual): Modify custom type for skk-show-annotation. * skk-vars.el (skk-show-annotation): Modify custom type. Accept (not list) (not minibuf) or (not list minibuf). (skk-annotation-toggle-display-char): New variable. * skk.el (skk-henkan-show-candidates): If the last event is skk-annotation-toggle-display-char, call `skk-annotation-toggle-display-p'. (skk-henkan-show-candidate-subr): When `skk-annotation-display-p' returns nil for list, turn off notes. 2005-12-11 Tetsuo Tsukamoto * context-skk.el: From experimental to the top directory. * experimental/bayesian/skk-bayesian.el: * experimental/skk-exserv.el: Use `kill-emacs-hook' instead of `skk-before-kill-emacs-hook'. * ccc.el: Describe why we need to give interactive specs to advices to interactive subrs. This is againt our will. * skk-e21.el (skk-e21-mouse-position): Pass `w' to `window-width', `windows-height', `window-hscroll' and `compute-motion'. (skk-tooltip-show-at-point): Emacs 22.0.50 only. Move mouse pointer slightly up to avoid tooltip partly off the screen. (tooltip-hide): Advice. Call `update-buffer-local-frame-params'. * skk-server.el: Use `kill-emacs-hook' instead of `skk-before-kill-emacs-hook'. * skk-study.el: Use `kill-emacs-hook' instead of `skk-before-kill-emacs-hook'. * skk-tut.el (skktut-adviced-alist): Do not check for `kill-buffer' and `save-buffers-kill-emacs'. (kill-buffer): (save-buffers-kill-emacs): Abolish advices. Use kill-buffer-hook and kill-emacs-hook instead. (skktut-init-variables-alist): Use `skk-search-jisyo-buf' instead of `skk-search-jisyo-file'. Bind `skk-show-tooltip' and `skk-show-inline' to nil. (skk-get-jisyo-buffer): Advice. Return skktut-jisyo-buffer in SKK tutorial. (skktut-setup-jisyo-buffer): Do not set buffer-file-name. (skktut-before-move-to-other-frame): Temporarily abolish function. (other-frame): Temporarily abolish advice. (skk-tutorial): (skk-tutorial-quit): Temporarily remove `skktut-before-move-to-other-frame' call in before-make-frame-hook. * skk.el: Use `kill-emacs-hook' instead of `skk-before-kill-emacs-hook'. (newline): (newline-and-indent): (undo): `defadvice' instead of `skk-defadvice'. (kill-buffer): (save-buffers-kill-emacs): Abolish advices. Use kill-buffer-hook and kill-emacs-hook instead. (skk-kill-emacs-without-saving-jisyo): Don't care for advice to `save-buffers-kill-emacs'. 2005-12-10 Tetsuo Tsukamoto * skk-tankan.el: Modify comments. Use `add-hook' to modify skk-search-excluding-word-pattern-function. * skk-vars.el (skk-search-excluding-word-pattern-function): Customize as a hook variable. * skk.el (skk-update-jisyo-p): Use `run-hook-with-args-until-success'. 2005-12-09 Tetsuo Tsukamoto * skk-tankan.el: Comments update. * skk-vars.el (skk-search-excluding-word-pattern-function): Allow a list of functions as its value. * skk.el (skk-kakutei): If `skk-update-jisyo-p' returns non-nil, update the private jisyo. (skk-update-jisyo-p): New function. Decide whether the entered word should be included in the private jisyo or not. 2005-12-04 Tetsuo Tsukamoto * skk-comp.el (skk-comp-search-current-buffer): In skk-abbrev-mode, check c-word only when it is set. * skk-dcomp.el (skk-dcomp-do-completion): (skk-dcomp-after-delete-backward-char): (skk-kana-input): Do not modify markers if skk-hint-inhibit-dcomp is non-nil. (skk-kana-input): Do not do completion if last-command-char belongs to skk-set-henkan-point-key. (skk-dcomp-marked-p): (skk-dcomp-before-kakutei): Autoload. * skk-hint.el: From experimental to the top directory. (skk-insert): Clean up dcomp string and inihibit further dynamic completion before setting skk-hint-start-point. * skk-jisyo-edit-mode.el (skk-jisyo-edit-font-lock-keywords): Modify regexps for fontifying every note. * skk-vars.el (skk-hint-start-char): (skk-hint-henkan-hint): (skk-hint-start-point): (skk-hint-end-point): (skk-hint-okuri-char): (skk-hint-state): (skk-hint-inhibit-kakutei): Variables from skk-hint.el. (skk-hint-inhibit-dcomp): New variable. * skk.el (skk-set-henkan-point): Delete dcomp marker before setting skk-okurigana-start-point. 2005-12-03 Tetsuo Tsukamoto * SKK-MK (SKK_MODULES): Add context-skk. 2005-12-02 Tetsuo Tsukamoto * skk-comp.el (skk-comp-do): Check for skk-abbrev-mode as well as skk-use-look and skk-look-ignore-case before calling `downcase'. (skk-comp-do-1): (skk-comp-search-current-buffer): In skk-abbrev-mode, do not pick up words containing non-ascii characters. * skk-dcomp.el (skk-dcomp-do-completion): Value of skk-dcomp-activate is now used as a test to decide whether to do completion or not. If its value is a function, funcall it. If it is a list, eval it. Otherwise if it is non-nil, always do completion. * skk-look.el (skk-look-1): Don't use user option `skk-look-use-alternate-dictionary' since "-a" option is not accepted by look command except for GNU/Linux. * skk-vars.el (skk-look-use-alternate-dictionary): Abolish variable. (skk-look-dictionary): Give default value properly since look command changes behavior when dictionary file name is not passed, in which case 2 user options `skk-look-ignore-case' and `skk-look-dictionary-order' doesn't function. 2005-12-01 Tetsuo Tsukamoto * skk-comp.el (skk-comp-do): When skk-use-look and skk-look-ignore-case are both non-nil, downcase skk-comp-key and midashi. * skk-cus.el (skk-cus-params-henkan): Use radio button instead of choice menu. * skk-dcomp.el (skk-dcomp-do-completion): If skk-dcomp-activate is eolp, do completion only when point is at the end of line. * skk-vars.el (skk-dcomp-activate): Accept value eolp. 2005-11-30 Tetsuo Tsukamoto * SKK-MK (SKK_MODULES): New module skk-tankan. * skk-cus.el (skk-custom-map): New variable. (skk-custom-mode): (skk-customize): Use `skk-custom-map' as local keymap. * skk-dcomp.el (skk-dcomp-after-delete-backward-char): Also do completion in skk-abbrev-mode. (skk-abbrev-insert): Advice for function. Do completion. * skk-server.el (skk-disconnect-server): When Emacs is NTEmacs and in noninteractive mode, do not call `accept-process-output'. * skk-tankan.el: From experimental to the top directory. Do not use `mapcar' where its return value is not referred to. Use `dolist' instead. (skk-tankan-get-char-annotation): (skk-tankan-set-char-annotaion): Under XEmacs, call `get-char-table' or `put-char-table' instead of `aref' or `aset'. (skk-tankan-search): Autoload. Use `product-provide'. * skk-tut.el (skktut-get-question-page): When skktut-question-count exceeds skktut-question-numbers, simply call `skktut-end-tutorial', i.e. no need to depend on SKK.tut for deciding whether to call it or not. * skk-vars.el (skk-look-use-ispell): Default to nil. (skk-tankan-search-key): (skk-tankan-get-char-data-functions): (skk-tankan-annotation-table): New variables from skk-tankan.el. * skk.el (skk-abbrev-insert): New command. Merely call `self-insert-command'. (skk-define-abbrev-mode-map): Define self insertion keys to call `skk-abbrev-insert'. (skk-henkan): Call `skk-inline-hide' only under FSF Emacs 21 or greater. (skk-search): Bind `skk-use-numeric-conversion' to nil for `skk-look', etc. 2005-11-27 Tetsuo Tsukamoto * doc/skk.texi: Update for $BF|IUF~NO(B. * skk-gadget.el (skk-current-date): The 3rd argument for PP-FUNCTION should be (not skk-date-ad), not skk-date-ad. * skk.el (skk-kakutei): Regexp fix for prefix conversion keys. (skk-search): When skk-use-numeric-conversion is non-nil, do not do duplicate search for `skk-look', etc. 2005-11-19 Tetsuo Tsukamoto * skk.el (skk-search): When skk-use-numeric-conversion is non-nil, also do non-numeric conversion. (skk-update-jisyo-original): Don't call `skk-num-compute-henkan-key' if WORD does not contain numeric characters. (skk-search-upcase): New function. 2005-11-14 Tetsuo Tsukamoto * skk.el (skk-search-romaji): New function. 2005-11-13 Tetsuo Tsukamoto * doc/skk.texi: Update. 2005-10-31 Tetsuo Tsukamoto * SKK-MK (SKK-MK-server-installed-p): Do not signal error. 2005-10-30 Tetsuo Tsukamoto * SKK-MK (SKK-MK-server-installed-p): Workaround for a problem in Emacs 21.4 or earlier, under GNU/Linux, where Emacs with a new shell process causes SIGPOLL in batch mode just after it calls `open-network-stream'. Do not check the server state in this case. 2005-10-20 Tetsuo Tsukamoto * skk.el (skk-henkan-in-minibuff): Modify prompt in skk-show-inline, "[$B"-<-=qEPO?(B]" -> "Echo area $B$r8+$F(B!". 2005-10-11 Tetsuo Tsukamoto * skk-vars.el (skk-kuten-touten-alist): Accept new pairs jp-en and en-jp. (skk-kutouten-type): Accept new values -- jp-en, en-jp or a cons cell of two strings. * skk.el (skk-toggle-kutouten): Toggle four pairs -- jp, en, jp-en and en-jp. (skk-current-kuten): If skk-kutouten-type is a cons cell, return car of it. (skk-current-touten): If skk-kutouten-type is a cons cell, return cdr of it. (skk-what-char-type): Recognize $B%t(B, $B%u(B, $B%v(B, $B!3(B and $B!4(B as katakana. (skk-toggle-characters): Set VEXPAND for `skk-hiragana-region'. 2005-10-05 Masatake YAMATO * skk-e21.el (skk-inline-show): New function. (skk-inline-hide): New function. (skk-inline-overlay): New variable. * skk-vars.el (skk-show-inline): New option. * skk.el (skk-henkan-in-minibuff): Call `skk-inline-show'. (skk-henkan-show-candidate-subr): Call `skk-inline-show'. (skk-henkan): call `skk-inline-hide'. 2005-10-02 Kitamoto Tsuyoshi * doc/skk.texi: Patch for unification of terminology. 2005-09-27 Tetsuo Tsukamoto * skk-kcode.el (skk-input-by-code-or-menu-jump): (skk-input-by-code-or-menu-1): Use `skk-previous-candidate-char' instead of ?x. * skk-vars.el (skk-default-current-date-function): Use skk-number-style as the 3rd argument of `skk-default-current-date'. 2005-09-25 Tetsuo Tsukamoto * SKK-MK: * skk-jisx0213.el: Do not require jisx0213 unless jisx0213 capable coding systems are present. This is a modification for the unicode branch of Emacs. * skk-vars.el (skk-kcode-charset-list): Under Emacs 21 or greater, do not call `charset-list'. Refer to variable `charset-list' instead. 2005-09-24 Tetsuo Tsukamoto * skk.el (skk-preload): Preload all dictionaries specified in `skk-search-prog-list'. 2005-09-23 Tetsuo Tsukamoto * skk-vars.el (skk-lookup-option-alist): Add rule for LIFE SCIENCE DICTIONARY (lsd). 2005-08-25 Tetsuo Tsukamoto Suggested by Masatake YAMATO * skk-e21.el (skk-e21-circulate-modes): New function. (skk-e21-modeline-property): Mouse-1 calls it and switch modes in order. * skk-vars.el (skk-server-portnum): Missing group parameter. Fix. 2005-05-25 Masatake YAMATO * skk-e21.el (skk-e21-modeline-property): Added mouse-face property for GNU Emacs in CVS. 2005-05-19 Tetsuo Tsukamoto Patch by Masao Takaku * skk.el (skk-search-jisyo): Exit binary search if `beginning-of-line' moves point to the search min, which means only one line is left for the search. 2005-02-27 Tetsuo Tsukamoto * skk.el (skk-set-henkan-point): In mistypes described on 2005-02-24, bind `skk-dcomp-activate' to nil. Call `skk-set-char-before-as-okurigana' even when last-command-char does not belong to [AEIOU] solely for avoiding deletion of the following character. Never use SKK this way. 2005-02-26 Tetsuo Tsukamoto * skk-isearch.el (skk-isearch-setup-keymap): Define [?\C-x t] after defining keys for `skk-isearch-skk-mode', for properly exiting isearch. * skk-server.el (skk-open-network-stream): For Emacs 22.0.50 or greater, call `set-process-query-on-exit-flag' instead of `process-kill-without-query'. 2005-02-24 Tetsuo Tsukamoto * skk-jisyo-edit-mode.el (skk-jisyo-edit-font-lock-keywords): `defvar' instead of `defconst'. * skk.el (skk-set-char-before-as-okurigana): New function. (skk-set-henkan-point): When user mistypes, e.g. "ArukU" for "AruKu", insert "Aruku" and call `skk-set-char-before-as-okurigana'. 2005-02-21 Kenichi Kurihara * experimental/bayesian/skk-bayesian.el (skk-bayesian-update): Bug fixed; when skk-undo-kakutei-word-only is non-nil. (skk-bayesian-add-to-history): Ditto. 2005-02-18 Kenichi Kurihara * experimental/bayesian/skk-bayesian.el (skk-bayesian-kill-process): Bug fixed. * experimental/bayesian/bskk (EBTCPServer::initialize): setsockopt SO_REUSEADDR. 2005-02-17 Kenichi Kurihara * experimental/bayesian/skk-bayesian.el : Use defcustom instead of defvar. (skk-bayesian-corpus-*): New. (skk-bayesian-corpus-save): Fix comments. * experimental/bayesian/bskk (IString): Remove. (DB::save): Bug fixed; set @dirty to false. 2005-02-12 TAKAHASHI Kaoru * doc/skk.texi: Use @pxref instead of @xref+@footnote. 2005-01-31 Kenichi Kurihara * experimental/bayesian/bskk (serve): Bug fixed. 2005-01-30 Kenichi Kurihara * experimental/bayesian/skk-bayesian.el (skk-bayesian-search): Bug fixed. (skk-bayesian-update): Ditto. (skk-bayesian-add-to-history): Ditto. (skk-bayesian-restart-process): Ditto. 2005-01-10 Kenichi Kurihara * skk-kakasi.el (skk-kakasi-region): Add options "-ieuc" and "-oeuc". 2004-12-31 KURIHARA Kenichi * experimental/bayesian/skk-bayesian.el (skk-bayesian-read-process-output): Change specifications. (skk-bayesian-kill-process): Ditto. (skk-bayesian-add-to-history): Bug fixed. * experimental/bayesian/bskk: Update comments. (Distribution::initialize): Dont either chomp or raise exceptions. (v_puts):Obsolete. (v_err_puts):New. (DB::initialize): Accept prefixes which have [:blank:]. (DB::initialize): Dont raise exceptions. (serve): Bug fixed. 2004-12-27 Kenichi Kurihara * experimental/bayesian/skk-bayesian.el (skk-bayesian-add-to-history): Bug fixed. 2004-12-26 Kenichi Kurihara * experimental/bayesian/skk-bayesian.el (skk-bayesian-make-pending-data-alist): Bug fixed. (skk-bayesian-get-pending-data-alist): Raise error if the key is invalid. (skk-bayesian-update): Bug fixed. (skk-bayesian-save-history): Finish the last pending if any. 2004-12-24 KURIHARA Kenichi * experimental/bayesian/skk-bayesian.el (skk-bayesian-make-pending-data-alist): Bug fixed. 2004-12-23 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): * skk.el (skk-henkan-show-candidate-subr): Do not show tooltip when window-system is nil. 2004-12-20 KURIHARA Kenichi * experimental/bayesian/skk-bayesian.el (skk-bayesian-make-pending-data-alist): New. (skk-bayesian-get-pending-data-alist): Ditto. 2004-12-20 KURIHARA Kenichi * experimental/bayesian/skk-bayesian.el: Rename some variables to use context instead of prefix. (skk-bayesian-make-context): New. (skk-bayesian-search): Use skk-bayesian-make-context. (skk-bayesian-last-okurigana): New variable. (skk-bayesian-last-henkan-point): New variable. (skk-bayesian-add-to-history): Bug fixed. * experimental/bayesian/bskk (split_line): New. (serve): Use split_line. 2004-12-08 KURIHARA Kenichi * experimental/bayesian/bskk (DB::save): Use File.copy instead of system("cp ..."). 2004-12-07 KURIHARA Kenichi * experimental/bayesian/skk-bayesian.el (skk-bayesian-number-of-command-after-kakutei): New variable. (skk-bayesian-last-kakutei-word): Ditto. (skk-bayesian-last-buffer): Ditto. (skk-bayesian-add-to-history-pending): Ditto. (skk-bayesian-max-commands-to-wait-for): Ditto. (skk-bayesian-search): Bug fixed. (skk-bayesian-update): Don't record new kakutei-word if the kakutei-word was deleted soon. (skk-bayesian-check-modification-after-kakutei): New function. (skk-bayesian-add-to-history): New function. (skk-bayesian-add-to-history): Bug fixed. (skk-bayesian-restart-process): Bug fixed. 2004-12-01 KURIHARA Kenichi * experimental/bayesian/skk-bayesian.el: Add comments more. (skk-bayesian-read-process-output): New. (skk-bayesian-search): Use `skk-bayesian-read-process-output'. (skk-bayesian-save-history): Ditto. (skk-bayesian-kill-process): Ditto. (skk-bayesian-restart-process): Use -d when `skk-bayesian-debug'. Add `skk-bayesian-kill-process' to `skk-before-kill-emacs-hook' * experimental/bayesian/bskk (DB): Add a flag `dirty'. (DB::add_history): Ditto. (DB::save): New. (DB::debug_log): New. (save_DB): Remove. (serve): Add an error handling. (mode_serve): Make more stable in hadling exceptions and signals. Add an opetion -d. Bug fixed. 2004-11-30 KURIHARA Kenichi * skk-viper.el: check whether function `sentence-end' exists. 2004-11-28 Tetsuo Tsukamoto * skk-macs.el (skk-replace-regexp-in-string): New function. * skk-isearch.el (isearch-repeat): Don't call `replace-regexp'. Call `skk-replace-regexp-in-string' instead. 2004-11-26 Masatake YAMATO Introduce a context to check whether the current buffer is read-only or not in context-skk. * experimental/context-skk.el (context-skk-mode): Rename the minor mode from `context-skk'. (context-skk-insert): Show a message when the skk is turned off by context-skk. (context-skk-in-read-only-buffer-p): New function. * skk.el (skk-insert): Don't use * in `interactive'. Use `barf-if-buffer-read-only' instead. (skk-jisx0208-latin-insert): Ditto. 2004-11-14 Tetsuo Tsukamoto * skk-e21.el (skk-e21-mouse-position): When skk-isearch is on, place mouse pointer on the minibuffer window. 2004-09-14 Tetsuo Tsukamoto * skk-isearch.el (skk-isearch-delete-char): Workaround for modification in Emacs 21.3.50 which uses a vector, instead of a list, for each element of `isearch-cmds'. 2004-08-19 Masatake YAMATO * skk-e21.el (skk-tooltip-show-at-point): Don't use ox and oy if they are nil. 2004-08-18 Kitamoto Tsuyoshi * doc/skk.texi: Typo fixed. 2004-07-30 Kitamoto Tsuyoshi * doc/skk.texi: Typo fixed. 2004-07-29 Kitamoto Tsuyoshi * doc/skk.texi: Typo fixed. 2004-07-23 Kitamoto Tsuyoshi * doc/skk.texi: Typo fixed. 2004-07-22 Kitamoto Tsuyoshi * doc/skk.texi: Typo fixed. 2004-07-17 Tetsuo Tsukamoto * skk-jisyo-edit-mode.el (skk-jisyo-edit-font-lock-keywords): Avoid highlighting part of comments by font-lock-type-face. 2004-06-07 Tetsuo Tsukamoto * skk.el (skk-emulate-original-map): When `key-binding' fails to find command for KEYS, translate KEYS according to function-key-map and call `key-binding' again. 2004-04-18 Tetsuo Tsukamoto * skk-e21.el (skk-e21-coding-system): Default to nil if window-system is nil. 2004-04-15 Tetsuo Tsukamoto Patch by KOSEKI Yoshinori * SKK-MK (SKK_MODULES): Add module skk-e21 for Emacs 22 or greater. 2004-04-12 KURIHARA Kenichi * experimental/bayesian/bskk (save_DB): Bug fixed. (Distribution::initialize): Bug fixed. * experimental/bayesian/skk-bayesian.el (skk-bayesian-search): Bug fixed. 2004-04-11 Tetsuo Tsukamoto * skk-e21.el (skk-tooltip-show-at-point): Don't require `avoid'. 2004-04-08 Masatake YAMATO * skk.el (skk-henkan-in-minibuff): Prepend "[$B<-=qEPO?(B]" on the prompt. 2004-04-04 Tetsuo Tsukamoto * skk-e21.el (skk-tooltip-show-at-point): Bind tooltip-hide-delay to skk-tooltip-hide-delay. * skk-vars.el (skk-tooltip-hide-delay): New user option. 2004-04-04 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): Under Emacs 21, call `skk-tooltip-show-at-point' if skk-show-tooltip is non-nil. * skk-e21.el (skk-e21-mouse-position): New function, almost identical to `mouse-avoidance-point-position' except that skk-henkan-start-point is used for stop pos when the marker is set. (skk-tooltip-show-at-point): Rename from `tooltip-show-at-point'. Call `skk-e21-mouse-position'. * skk-vars.el (skk-show-tooltip): Rename variable from skk-use-tooltip. * skk.el (skk-henkan-show-candidate-subr): Call `skk-tooltip-show-at-point'. 2004-04-03 Tetsuo Tsukamoto Patch by Masatake YAMATO . * skk-e21.el (tooltip-show-at-point): New function. * skk-vars.el (skk-show-tooltip): New user option. * skk.el (skk-henkan-show-candidate-subr): Under Emacs 21, call `tooltip-show-at-point' for showing candidates if skk-use-tooltip is non-nil. 2004-04-03 Tetsuo Tsukamoto * skk-e21.el (skk-e21-modeline-property): mouse-1 pops up menu. * skk-jisyo-edit-mode.el (skk-jisyo-edit-font-lock-keywords): Highlight okuri blocks. * skk-xemacs.el (skk-xemacs-prepare-modeline-properties): button1 pops up menu. 2004-04-01 Tetsuo Tsukamoto * skk-e21.el (skk-e21-coding-system): Default to nil if window-system is w32, otherwise default to the value of locale-coding-system. (skk-e21-encode-string): Do not encode if skk-e21-coding-system is nil. * skk.el (skk-mode-invoke): Find skk menus by "SKK" or "skk". 2004-03-31 Tetsuo Tsukamoto * skk-e21.el (skk-e21-menu-resource-ja): (skk-e21-coding-system): New variables. (skk-e21-encode-string): (skk-e21-menu-replace): New functions. * skk-macs.el (skk-indicator-to-string): (skk-mode-string-to-indicator): (skk-event-key): (skk-update-modeline): (skk-erase-prefix): (skk-kana-cleanup): (skk-mode-off): (skk-j-mode-on): (skk-latin-mode-on): (skk-jisx0208-latin-mode-on): (skk-abbrev-mode-on): (skk-put-last-henkan-data): (skk-find-coding-system): (skk-quote-char-1): (skk-key-binding-member): `defun' instead of `defsubst', since these functions are not very small. * skk-vars.el (skk-show-japanese-menu): New user option. * skk.el (skk-mode-invoke): Under Emacs 21, setup japanese menu if requested. 2004-03-09 Tetsuo Tsukamoto * skk-e21.el (skk-e21-prepare-modeline-properties): Don't copy face modeline. Simply call `make-face'. 2004-03-05 Tetsuo Tsukamoto * skk-jisyo-edit-mode.el (skk-jisyo-edit-mode): Set major-mode properly. 2004-03-04 Tetsuo Tsukamoto * skk-version.el (skk-version): Bump to 12.2.1. * ccc.el (ccc-defadvice): * skk-macs.el (skk-defadvice): Remove irregular format spec passed to `message'. * skk-comp.el (skk-comp-do-1): (skk-comp-search-current-buffer): (skk-comp-by-history): Add autoload cookie. * skk-dcomp.el (skk-dcomp-do-completion): Do not do complete if point is on `skk-henkan-start-point'. * skk-macs.el (skk-face-proportional-p): Under Emacs 21, return non-nil if FACE is equal to face `variable-pitch' or inherits the property of `variable-pitch'. 2004-02-29 KURIHARA Kenichi * experimental/bayesian/bskk (initialize): Use "/" as a separator instead of " ". (to_s): Ditto. (serve): Ditto. (serve): Bug fixed. Handle double quotations correctly. * experimental/bayesian/skk-bayesian.el (skk-bayesian-search): Use "/" as a separator instead of " ". 2004-02-29 NAKAJIMA Mikio * experimental/bayesian/skk-bayesian.el (skk-bayesian-save-history): Remove a kuten and a period from the message strings. (skk-bayesian-update): Remove a period from the message string. (skk-bayesian-restart-process): Ditto. (skk-bayesian-kill-process): Ditto. (skk-bayesian-debug-message): Declare with `defmacro' instead of `defsubst'. (skk-bayesian-process-live-p): Simplify. (skk-bayesian-kill-process): Slightly modify the message string. (skk-bayesian-update): Ditto. * SKK-MK (SKK_MODULES): Add skk-bayesian. * experimental/bayesian/skk-bayesian.el (skk-bayesian-search): Use `with-current-buffer'. (skk-bayesian-update): Ditto. (skk-bayesian-save-history): Ditto. (skk-bayesian-kill-process): Ditto. (skk-bayesian-prefer-server): Add `*' to the top of doc string. (skk-bayesian-port): Ditto. (skk-bayesian-host): Ditto. (skk-bayesian-prefix-len): Ditto. (skk-bayesian-last-prefix-str): Ditto. (skk-bayesian-history-file): Ditto. (skk-bayesian-debug): Ditto. (skk-bayesian-search): Use `buffer-substring-no-properties' instead of `buffer-substring'. 2004-02-26 KURIHARA Kenichi * experimental/bayesian/bskk: New file. 2004-02-21 NAKAJIMA Mikio * experimental/bayesian/skk-bayesian.el (skk-bayesian-restart-process): Bug fixed. 2004-02-21 Kenichi Kurihara * experimental/bayesian/skk-bayesian.el: New file. 2004-01-26 Tetsuo Tsukamoto * skk-macs.el (skk-get-current-candidate-1): Call `skk-henkan-count'. * skk.el (skk-henkan-count): (skk-set-henkan-count): (skk-exit-show-candidates): (skk-set-exit-show-candidates): New functions, workaround for XEmacs isearch. (skk-henkan-1): (skk-henkan-show-candidates): (skk-henkan-in-minibuff): (skk-previous-candidate): (skk-start-henkan): (skk-remove-common): (skk-process-prefix-or-suffix): (skk-set-okurigana): (skk-kakutei-initialize): (skk-undo-kakutei): (skk-set-henkan-point): (abort-recursive-edit): Call them. 2004-01-19 Tetsuo Tsukamoto * skk-setup.el.in (isearch-mode-end-hook): Check the value of `skk-isearch-mode-enable', not merely eval it. 2003-07-21 Tsuyoshi AKIHO * doc/skk.texi: Add description( skk-kutouten-type, skk-toggle-kutouten) in "Q.3-2 $B!V!%!W!"!V!$!W(B $B$,F~NO$G$-$k$h$&$K%+%9%?%^%$%:$7$?$$$N$G$9$,!#(B" 2003-07-21 NAKAJIMA Mikio * SKK-MK (SKK_DICTIONARIES): Add `SKK-JISYO.ML'. (SKK-MK-install-elc): Handle `SKK-JISYO.ML'. (SKK-MK-install-package): Ditto. 2003-07-19 NAKAJIMA Mikio * skk.el (skk-kakutei-initialize): Reuse marker in henkan-point. * skk-macs.el (skk-set-marker): Fix doc string. (skk-deflocalvar): Update doc string. * experimental/skk-study.el (skk-study-file-format-version): Bump up to 0.3. (skk-study-current-buffer-theme): New buffer local variable. (skk-study-get-current-alist): New inline function. (skk-study-search): Use `skk-study-get-current-alist'. (skk-study-update): Ditto. (skk-undo-kakutei): Ditto. (skk-study-switch-current-theme): New function. (skk-study-read-1): Modify to handle theme. (skk-study-check-alist-format): Ditto. (skk-study-check-alist-format-1): Ditto. (skk-study-switch-current-theme): Bug fixed. (skk-study-remove-theme): New function. (skk-study-copy-theme): Ditto. (skk-study-check-alist-format): Modified doc string. 2003-07-18 NAKAJIMA Mikio * skk.el (skk-select-words-from-list): Funcall each symbol of skk-search-end-function. (skk-update-jisyo-original): Funcall each symbol of skk-update-end-function. * skk-vars.el (skk-search-end-function, skk-update-end-function): Remove duplicated declarations. (skk-search-end-function): Change its type '(list symbol). (skk-update-end-function): Ditto. * skk-study.el: Require pym.el. (ring-elements): Declare with defun-maybe. 2003-07-13 NAKAJIMA Mikio * skk-study.el (skk-study-read): Use `when' instead of `if'. (skk-undo-kakutei): Ditto. (skk-study-check-alist-format-1): Ditto. (skk-study-read-1): Ditto. (skk-study-save): Ditto. (skk-study-read): Use `unless' instead of `or'. (skk-kakutei-initialize): Call `ring-insert' anyway without checking ring element duplication. * skk-vars.el (skk-study-check-alist-format): Change its default value to nil. * ptexinfmt.el (texinfo-format-separate-node): Declare with `ptexinfmt-broken-facility' and `ptexinfmt-defun-if-broken'. (texinfo-format-end-node): Ditto. * skk-study.el (skk-study-read): Require skk-macs.el, skk-vars.el and ring.el outside `eval-when-compile'. (skk-study-search): Use `when' instead of `if', simplified slightly and add doc string. (skk-study-update): Simplified slightly and add doc string. 2003-07-12 NAKAJIMA Mikio * skk-study.el: Move all variables and constants to skk-vars.el. (skk-study-update): Check if `skk-study-max-distance' is nil or not. Check if `skk-study-first-candidate' is nil or not. (skk-study-first-candidate): New user variable. * Makefile (VERSION): Change 12.2.0rc1 to 12.2.0. * skk-study.el: Move from experimental directory. (skk-kakutei-initialize): Simplified it by using `ring-elements'. (skk-study-search-times): Change its default value to 5. (skk-study-max-distance): New user variable. (skk-study-update): Bug fixed. Not to study henkan relationship when (i) buffer was changed since last henkan, (ii) distance from last henkan point was negative or (iii) such distance is longer than `skk-study-max-distance'. * skk.el (skk-kakutei-initialize): Store buffer and point (marker) data of last henkan. 2003-07-11 NAKAJIMA Mikio * experimental/skk-study.el (skk-kakutei-initialize): Bug fixed. (skk-study-update): Do not add/update data to `skk-study-alist' when KAKUTEI-WORD is equal to car of `skk-henkan-list'. (skk-study-save): Modify message string slightly. 2003-07-10 NAKAJIMA Mikio * experimental/skk-study.el (skk-search-end-function): Declared with defvar. (skk-update-end-function): Ditto. 2003-07-07 NAKAJIMA Mikio * experimental/skk-study.el (skk-kakutei-initialize): Bug fixed. 2003-07-06 NAKAJIMA Mikio * experimental/skk-hint.el (skk-hint-limit): Use `aref' instead of `skk-str-ref'. (skk-hint-member): Ditto. * experimental/skk-study.el (skk-study-check-alist-format-1): Ditto. (skk-kakutei-initialize): Do not add DATA to `skk-study-data-ring' when KAKUTEI-WORD is equal to car of `skk-henkan-list'. (skk-study-save): Bug fixed. (skk-study-sort-saving): Change its default value to nil. (skk-study-associates-number): Change its default value to 5. * experimental/rdbms/skk-rdbms.el (skk-rdbms-sahen-search-1): Ditto. * ptexinfmt.el: Sync up with the file in emacs-w3m 1.3. * Makefile (VERSION): Change 12.1.1rc1 to 12.2.0rc1. * skk-version.el (skk-version): Bump to 12.2.0 (Sone). 2003-07-05 NAKAJIMA Mikio * Makefile (VERSION): Change 11.6.0 to 12.1.1rc1. * SKK-MK: Change required APEL version to 10.6. 2003-06-25 Masatake YAMATO * experimental/context-skk.el (context-skk-in-programming-mode-p): (context-skk-out-of-string-or-comment-in-programming-mode-p): Fix a typo. (context-skk-in-mew-draft-attachments-region-p): New function. (context-skk-insert): Invoke (key-binding (this-command-keys)) instead of self-insert-command. (context-skk-context-check-hook): context-skk-in-mew-draft-attachments-region-p is added. 2003-06-21 NAKAJIMA Mikio * experimental/context-skk.el: New file (see [skk 4558]). (context-skk-in-programming-mode-p): Use `memq' instead of `member'. 2003-06-20 NAKAJIMA Mikio * skk.el (skk-make-temp-jisyo): Abolish. (skk-setup-shared-private-jisyo): Do not use `make-temp-name' (see [skk 4646]). 2003-03-28 Tetsuo Tsukamoto * skk.el (skk-toggle-characters): Function `skk-katakana-henkan' should be called with optional argument VCONTRACT non-nil. 2003-03-30 NAKAJIMA Mikio * skk-lookup.el (skk-lookup-search): Remove skk-henkan-key from return value in order to suppress a candidate that is equal to skk-henkan-key itself. 2003-03-30 YAGI Tatsuya * experimental/skk-tankan.el: Update annotations in accordance with JIS X0213 $B2~@50F(B. 2003-03-28 Tetsuo Tsukamoto * skk-jisx0201.el (skk-toggle-katakana): When `skk-henkan-mode' is active, perform kakutei. * skk-tut.el (skktut-abbrev-mode-map): Bind `skk-toggle-characters' instead of `skk-jisx0208-latin-henkan'. * skk.el (skk-setup-keymap): Check for `skk-try-completion-char' instead of `skk-kakutei-key'. 2003-03-28 Tetsuo Tsukamoto * skk.el (skk-henkan-skk-region-by-func): Rename from `skk-*-henkan-2'. Include function `skk-*-henkan-1'. (skk-toggle-chracters): Call `skk-henkan-skk-region-by-func' instead of `skk-katakana-henkan', `skk-hiragana-henkan', `skk-latin-henkan' or `skk-jisx0208-latin-henkan'. (skk-katakana-henkan): (skk-hiragana-henkan): (skk-latin-henkan): (skk-jisx0208-latin-henkan): (skk-*-henkan-1): Abolish these functions. * skk-jisx0201.el (skk-jisx0201-henkan): Call `skk-henkan-skk-region-by-func'. 2003-03-28 Tetsuo Tsukamoto * skk-var.el (skk-kakutei-history): Doc string update. * skk.el (skk-define-abbrev-mode-map): Define key for `skk-toggle-characters' instead of `skk-jisx0208-latin-henkan'. (skk-toggle-chracters): Refer to the local variable `skk-save-point' instead of `skk-henkan-end-point'. 2003-03-27 Tetsuo Tsukamoto * skk-xemacs.el (skk-xemacs-find-func-keys): Call `skk-remove-duplicates' only when KEY is a list. * skk.el (skk-kakutei): When `skk-henkan-mode' is on, check if the string consists of hiraganas, before updating `skk-kakutei-history'. (skk-define-abbrev-mode-map): Define key for `skk-toggle-character' instead of `skk-jisx0208-latin-henkan'. (skk-toggle-chracters): Don't set `skk-henkan-end-point' here. Call `skk-katakana-henkan', `skk-hiragana-region', `skk-latin-henkan' or `skk-jisx0208-latin-henkan' instead of `skk-katakana-region', `skk-hiragana-henkan', `skk-latin-region' or `skk-jisx0208-latin-region'. (skk-*-henkan-1): Update `skk-kakutei-history'. 2003-03-23 Tetsuo Tsukamoto * skk-e21.el (skk-e21-modeline-menu): When variable `skk-mode' is nil, find keys for function `skk-mode'. * skk-xemacs.el (skk-xemacs-find-func-keys): Do not show "linefeed" in menu. * skk.el (skk-remove-duplicates): New function. 2003-03-22 Tetsuo Tsukamoto * doc/skk.texi: Update for skkinput, SKKIME, and SKK95. 2003-03-16 Tsuyoshi AKIHO * doc/skk.texi: To avoid texinfo error on Emacs 21, following changes. Modify stirng from "$B>e5-$NNc$G$O!"(B" to "$B>e5-$NNc$O!"(B". Delete a space before @samp{$BN)$A>e$2$k(B}. 2003-02-25 Tetsuo Tsukamoto * doc/skk.texi: Insert a space before @samp{$BN)$A>e$2$k(B}. This is a workaround for Emacs 21.4. * skk-viper.el (viper-toggle-case): * skk.el (skk-multiple-line-message): Function `insert-string' will be obsolete in Emacs 21.4. Use `insert' instead. 2003-02-25 Tetsuo Tsukamoto * skk-jisyo-edit-mode.el: Use `add-to-list' for updating `auto-mode-alist'. 2003-02-08 YAGI Tatsuya * experimental/skk-tankan.el: New file. 2003-01-28 NAKAJIMA Mikio * skk-vars.el (skk-force-registration-mode-char): New user variable. * skk.el (skk-henkan-show-candidates): If input char is `skk-force-registration-mode-char', force to enter into word registration mode. Doc fixed. (skk-henkan-show-candidate-subr): Doc fixed. (skk-undo-kakutei): Ditto. 2002-11-30 NAKAJIMA Mikio * README.MacOSX.ja: New file. 2002-11-20 NAKAJIMA Mikio * Makefile (SNAPBASE, tar, snapshot): Add `-'. 2002-11-10 NAKAJIMA Mikio * skk-dic.el.in: Set buffer coding system to iso-2022-jp and specify the coding system in the header. 2002-11-09 NAKAJIMA Mikio * skk-dic.el.in (skk-search-small-dic): Add doc string. 2002-11-09 Akihiro Motoki * skk-comp.el (skk-comp-do): Keyword completion shows a candidate circularly. (After showing the last candidate, back to the first.) (skk-comp-previous): Ditto. * skk.el (keyboard-quit): While keyword completion in Midashi input mode, C-g terminates the completion and redisplay the original Midashi input. * skk-vars.el (skk-comp-circulate): New user variable. (skk-comp-search-done): New buffer local variable. 2002-11-09 NAKAJIMA Mikio * skk-setup.el.in (isearch-mode-end-hook): Check if `skk-isearch-mode-enable' is non-nil before invoking `skk-isearch-mode-cleanup' * skk.el (skk-toggle-isearch-mode): New command. 2002-11-03 NAKAJIMA Mikio * skk-vars.el (skk-isearch-mode-enable): New user variable. * skk-setup.el.in (isearch-mode-hook): Check if `skk-isearch-mode-enable' is non-nil before invoking `skk-isearch-mode-setup'. 2002-10-28 Tsuyoshi AKIHO * doc/skk.texi ($BM=HwCN<1(B): remove. ($B%U%!%$%k9=@.(B & $B%f!<%6!<%*%W%7%g%s$N@_DjJ}K!(B): move from ($BM=HwCN<1(B) to ($BJXMx$J1~MQ5!G=(B). ($B<-=q$N7A<0(B & $B<-=q$K4X$9$k@_Dj(B): move from ($BM=HwCN<1(B) to ($B<-=q4XO"(B). ($B<-=q$K4X$9$k@_Dj(B): Add subsubsection($BJ#?t<-=q$N8!:wJ}K!(B). ($B5l%P!<%8%g%s$+$i$NJQ99E@(B): Add section(SKK 11 $B$+$i$NJQ99E@(B). 2002-10-22 Yano Keisuke * skk-kcode.el (skk-display-code): Modified for JISX0213. Change display of KUTEN code in accordance with `$B5,3J6(2q!V(BJIS$B4A;z(B $B;zE5!W(B. (skk-jis2sjis2): New function. 2002-09-05 Akihiro MOTOKI * skk.el (skk-try-completion): Correct argument handling. 2002-09-01 Tetsuo Tsukamoto * skk-isearch.el: (skk-isearch-mode-setup): (skk-isearch-mode-cleanup): Do not consider MULE 3. 2002-08-03 Tetsuo Tsukamoto * SKK-MK: Signal error when Emacs is version 20.2 or older. 2002-08-02 Tetsuo Tsukamoto * SKK-MK: (SKK_MODULES): Always install `skk-leim'. * skk-isearch.el: No longer check if `register-input-method' is bound. Use `unless' for autoloaded expressions. 2002-08-01 Tetsuo Tsukamoto * skk-version.el: (skk-version): Bump to 12.1.1. 2002-07-31 Tetsuo Tsukamoto * doc/skk.texi: No longer refer to `skk-dabbrev-like-completion'. Describe how to use `C-u TAB' instead of `.' in completion. 2002-07-27 Tetsuo Tsukamoto * skk-comp.el: (skk-comp-do): Do not refer to `skk-dabbrev-like-completion'. * skk-tut.el: (skktut-init-variables-alist): Do not consider `skk-dabbrev-like-completion'. * skk-vars.el: (skk-dabbrev-like-completion): Abolish variable. * skk.el: (skk-try-completion): (skk-insert): When the user types C-u TAB instead of TAB solely, discard the current copmletion key, get new comletion key from the current buffer, and begin new completion. 2002-07-20 Tetsuo Tsukamoto * SKK-MK: (SKK-MK-skk-dic): Modify regexp. * skk-dic.el.in: (skk-small-dic): (skk-dic-buffer-name): Abolish variables. (skk-dic-buffer): New variable. (skk-search-small-dic): Search in `skk-dic-buffer'. (skk-dic-setup-buffer): Set `skk-dic-buffer' or return its value. 2002-07-16 Tetsuo Tsukamoto * skk.el: (skk-purge-from-jisyo): When `skk-henkan-mode' is active, call `skk-emulate-original-map'. (next-line@before@skk-ad): (previous-line@before@skk-ad): When `skk-henkan-mode' is active, perform kakutei before these commands. 2002-07-14 Tetsuo Tsukamoto * skk-vars.el: (skk-icon): (skk-modeline-input-mode): Mark variables risky-local-variable. 2002-07-13 Tetsuo Tsukamoto * skk-vars.el: (skk-after-prefix): New variable. * skk.el: (skk-process-prefix-or-suffix): When inserting prefix, turn `skk-after-prefix' on. (skk-search-katakana): When inserting prefix or suffix, remove ">" before conversion. (skk-kakutei): When the word before `kakutei-word' is a prefix, combine the prefix and the current `kakutei-word', and record the combined word in the private dictionary. 2002-07-06 Tetsuo Tsukamoto * skk-dcomp.el: (skk-kana-input@around@skk-dcomp-ad): Do not call `skk-dcomp-do-completion' in skk-abbrev-mode. * skk-look.el: (skk-look): (skk-look-completion): Do not call `skk-look-ispell' for a null string. 2002-06-22 Tetsuo Tsukamoto * skk.el: (skk-kakutei): When `kakutei-word' is a suffix, combine the previous `kakutei-word' and the current `kakutei-word', and record the combined word in the private dictionary. E.g. "$B$+$s$I$&(B /$B46F0(B/" + ">$B$F$-(B /$BE*(B/" ===> "$B$+$s$I$&$F$-(B /$B46F0E*(B/" (skk-update-kakutei-history): Record the buffer where the kakutei is performed. 2002-06-10 Eiji Obata * skk-annotation.el: Update comments. (skk-annotation-setup): Fix. 2002-06-02 Tetsuo Tsukamoto * skk-annotation.el: (skk-annotation-add): When `wholestring' does not contain annotation, then `realword' should be the same as `wholestring'. 2002-05-27 Eiji Obata * skk-tut.el (skktut-get-question-page): Trivial fix. 2002-05-12 Tsuyoshi AKIHO * etc/dot.skk (skk-hyphen): Bug fixed. * experimental/skk-exsearch (skk-grep-search): New function. 2002-05-06 Eiji Obata * experimental/skk-dinsert.el: Modify example code. 2002-04-27 Eiji Obata * skk-look.el (skk-try-completion@before@skk-look-ad): New advice. Clear `skk-look-completion-words' here. (skk-kakutei-initialize@after@skk-look-ad): Removed. 2002-04-12 Eiji Obata * skk.el (skk-multiple-line-message): Candidates should not be hidden by existing message. 2002-04-05 Eiji Obata * skk-num.el (skk-num-henkan-key): Call `skk-num-compute-henkan-key'. Update doc string. 2002-04-05 NAKAJIMA Mikio * skk-num.el (skk-num-convert): New arg INDEX (does not refer to SKK-HENKAN-COUNT). Update doc string. (skk-num-multiple-convert): Does not refer to SKK-HENKAN-COUNT. Call `skk-num-uniq'. * skk-macs.el (skk-get-current-candidate-1): New optional arg COUNT. 2002-04-03 Tetsuo Tsukamoto * skk-num.el: (skk-num-flatten-list): Local variable `dst' must be a list of strings. * skk-server.el: (skk-server-live-p): Do not refer to `skk-network-open-status'. * skk-vars.el: (skk-network-open-status): Abolish variable. 2002-04-01 Eiji Obata * skk.el (skk-henkan-show-candidate-subr): Fix bug that when `skk-numeric-p' returns t, lisp program was not evaluated. * skk-macs.el (skk-eval-string): Simplify. 2002-03-29 Eiji Obata * skk-vars.el (skk-buffer-undo-list): New variable. * skk.el (skk-multiple-line-message): Restore minibuffer at exit if `skk-emacs-type' is `mule4'. 2002-03-29 FURUE Hideyuki * skk.el: (skk-kakutei-cleanup-buffer): Fix bug that kakutei in $B"&(B mode inserts junk characters to the current bufffer when `skk-undo-kakutei-word-only' is t. (skk-set-henkan-point-subr): (skk-change-marker-to-white): Bind `skk-henkan-end-point' to nil after entering $B"&(B mode. (skk-undo-kakutei): Do nothing when `skk-henkan-end-point' is nil. 2002-03-22 FURUE Hideyuki * skk.el: (skk-kakutei-cleanup-buffer): Fix bug that `skk-undo-kakutei' does not treat the last okuri-ari kakutei correctly when `skk-undo-kakutei-word-only' is t. 2002-03-16 Tetsuo Tsukamoto * skk.el: (skk-update-jisyo-1): When PURGE, do not consider `skk-henkan-okuri-strictly' or `skk-henkan-strict-okuri-precedence'. I think it is a trial. It will be reverted to the original as soon as something is found to be wrong. 2002-03-16 Tetsuo Tsukamoto * skk-tut.el: (skktut-init-variables-alist): Bind `skk-dcomp-activate' nil. * skk.el: (skk-update-jisyo-1): 1st arg of `nthcdr' couldn't be a negative integer. So work around it. 2002-03-12 Tetsuo Tsukamoto * etc/Emacs.ad: * skk-e21.el: * skk-xemacs.el: Menu items update. * skk.el: (skk-search-all-progs): (skk-search-with-suffix): New functions. (skk-search-sagyo-henkaku): Call `skk-search-all-progs'. 2002-03-08 IIDA Yosiaki * skk-tut.el: Use \[] notation and call substitute-key-definition for guidance in answer buffer. 2002-03-07 Eiji Obata * skk.el (skk-setup-keymap): Use `skk-comp-start-henkan' instead of `skk-start-henkan-with-completion'. 2002-03-07 Tetsuo Tsukamoto * skk-isearch.el: (skk-isearch-setup-keymap): Key for `skk-previous-candidate-char' runs `skk-isearch-wrapper'. (skk-isearch-delete-char): Consider the behavior of `skk-delete-backward-char' when `skk-henkan-mode' is active. If `skk-delete-implies-kakutei' is non-nil, perform implicit kakutei, otherwise call `skk-previous-candidate'. 2002-03-07 IIDA Yosiaki * doc/skk.texi: GPL => GNU GPL. Fix IIDA's email address. 2002-03-06 IIDA Yosiaki * skk-tut.el: Use \[] notation in help strings. 2002-03-05 IIDA Yosiaki * skk-tut.el: Update initial dummy JISYO. See [skk 2809]. Russia ==> Cyrillic and other minor JISYO updates and typo fix. 2002-03-03 Tetsuo Tsukamoto * skk-vars.el: (skk-show-icon): New variable. * skk-e21.el: (skk-e21-prepare-modeline-properties): Set `skk-icon'. (skk-e21-modeline-property): mouse-3 instead of mouse-2 shows SKK menu. mouse-1 toggles SKK. * skk-xemacs.el: (skk-xemacs-prepare-modeline-properties): Set `skk-icon'. (skk-xemacs-modeline-map): button3 instead of button2 shows SKK menu. button1 toggles SKK. * skk-cus.el: (skk-cus-params-misc): Customize `skk-show-icon'. 2002-03-02 Daiki Ueno * skk.el (skk-henkan-show-candidate-subr): Select candidates buffer before centering point in window. [cf. ] 2002-03-02 Daiki Ueno * skk-vars.el (skk-henkan-show-candidates-rows): New user option. (skk-henkan-show-candidates-keys): Append 14 keys to default. * skk.el (skk-multiple-line-message-clear): New function. (skk-multiple-line-message): New function. (skk-multiple-line-string-width): New function. (skk-henkan-show-candidates): Take into account of `skk-henkan-show-candidates-rows'; bind `echo-keystrokes' to 0; clear out candidates in echo area each time one enters an interaction loop. (skk-henkan-show-candidate-subr): Take into account of `skk-henkan-show-candidates-rows'. 2002-02-26 Eiji Obata * skk.el (skk-remove-redundant-okurigana): Rename from `skk-remove-redundant-okurgana'. Update doc string and modify prompt string. 2002-02-17 Tetsuo Tsukamoto * skk.el (skk-save-jisyo-original): When `skk-share-private-jisyo', bind `buffer-file-name' and `buffer-file-truename' so that `set-buffer-modified-p' should unlock the file `skk-jisyo'. 2002-02-14 Tetsuo Tsukamoto * skk-num.el: Add doc strings. 2002-02-11 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-buffer): Alas, local variable WINDOW is needed. * skk-jisx0201.el: * skk-jisyo-edit-mode.el: * skk-server.el: Add or update doc strings. 2002-02-09 NAKAJIMA Mikio * experimental/skk-study.el (skk-study-check-alist-format-1): Use `length' instead of `skk-str-length'. * experimental/skk-hint.el (skk-hint-member, skk-hint-limit): Ditto. 2002-02-09 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-buffer): Abolish local variable WINDOW. * skk-macs.el Add or update doc strings. * skk.el Add or update doc strings. (skk-compile-init-file-maybe): Rename from `skk-setup-init-file'. (skk-preload): Call `skk-get-jisyo-buffer' if `skk-large-jisyo' is readable. 2002-02-06 Tetsuo Tsukamoto * READMEs/Contributors: Following person is added. YAMASHITA Junji 2002-02-04 YAMASHITA Junji * ccc.el (set-frame-cursor-color) (set-frame-foreground-color) (set-frame-background-color): New functions. (frame-cursor-color) (frame-foreground-color) (frame-background-color): make these variables frame-local. 2002-02-03 NAKAJIMA Mikio * skk-vars.el (skk-lookup-option-alist): Add regexp for KOJIEN. 2002-02-02 NAKAJIMA Mikio * skk-vars.el (skk-lookup-option-alist): Add regexp for KOUJIEN. 2002-01-29 NAKAJIMA Mikio * doc/skk.texi (Q.5-2 abbrev $B%b!<%I$G$b$C$H1QC18l$rMxMQ$7$?JQ49$,(B $B$G$-$^$;$s$+(B?): Write about `skk-look-use-ispell'. 2002-01-24 Tetsuo Tsukamoto * skk-gadget.el (skk-clock): Use common syntax for functions. * skk-macs.el: No longer work around for the invalid `dolist'. 2002-01-23 Tetsuo Tsukamoto * install-info.el (install-info-insert-file-contents): (install-info-write-region): (install-info-add-groups): Use common syntax for functions. * skk-comp.el (skk-comp-do): When no more comletion is left, don't increment `skk-comp-depth'. (skk-comp-do-1): When FIRST, move point to `skk-okuri-nasi-min' in all buffers for completion. Use `skk-loop-for-buffers'. (skk-comp-do-1-in-buf): Abolish function. (skk-comp-search-current-buffer): New function. * skk-macs.el: Require `skk-vars' at load time as well as at compile time. * skk-vars.el (skk-dic-comp-first): Abolish optional argument. * skk.el (after-init-hook): Avoid warning for `init-file-user'. 2002-01-22 Tetsuo Tsukamoto * SKK-MK: Always call `set-language-environment'. (SKK-MK-generate-autoloads-el): No longer check if `autoload' is valid. * skk.el (skk-mode-invoke): Call `skk-adjust-user-option' just after `skk-cus-setup'. (skk-adjust-user-option): If `skk-jisyo-save-count' is nil, set `skk-share-private-jisyo' nil. 2002-01-20 Tetsuo Tsukamoto * patch/e19/custom-1.9962.patch: No longer in the repository. * SKK-MK (SKK-MK-texinfo-coding-system): Always 'iso-2022-jp'. * doc/skk.texi: Update for Daredevil SKK 12. 2002-01-19 Tetsuo Tsukamoto * skk-cursor.el: * skk-isearch.el: * skk.el: Use #' for functions. * skk-vars.el (skk-background-mode): Use a little more simple conditions. * skk-macs.el (ignore-errors): (skk-defadvice): (skk-save-point): (skk-deflocalvar): (skk-with-point-move): (skk-face-on): (skk-cannot-be-undone): (skk-loop-for-buffers): Use common backquote style. * skk-jisyo-edit-mode.el (auto-mode-alist): Use `unless'. 2002-01-18 Tetsuo Tsukamoto No longer support Emacs 20.2 or earlier. * skk-version.el (skk-version): Bump to 12.1.0. * SKK-CFG: Remove examples for old Emacsen. * SKK-MK (SKK-MK-texinfo-Coding-system): (SKK-MODULES): (SKK-MK-install-elc): (SKK-MK-generate-autoloads-el): (SKK-MK-skk-dic): No longer support Mule 2. * skk-auto.el (skk-okuri-search-1): (skk-okuri-search-subr-original): Use 1 instead of `skk-kanji-len'. * skk-develop.el: No longer support hilit19. * skk-isearch.el (skk-isearch-conversion-start): (skk-isearch-wrapper): No longer refer to `skk-kanji-len'. * skk-jisx0201.el (skk-jisx0201-hankaku): (skk-jisx0201-zenkaku-region): No longer support Mule 2. * skk-kcode.el (skk-make-char): (skk-display-code): No longer support Mule 2. * skk-look.el (skk-look): Use `aref' instead of `skk-str-ref'. * skk-lookup.el (skk-lookup-process-okurigana): Use 1 instead of `skk-kanji-len'. * skk-macs.el (skk-str-length): (skk-substring): (skk-str-ref): Abolish functions. (skk-ascii-char-p): (skk-jisx0208-p): (skk-charsetp): (skk-local-variable-p): No longer support Mule 2. (skk-lisp-prog-p): Use `length' and `aref' instead of `skk-str-length' and `skk-str-ref'. * skk-setup.el.in: No longer support Mule 2, Emacs 20.2 and XEmacs 20.4. * skk-vars.el: (skk-emacs-type): (skk-kcode-charset): (skk-coding-system-alist): (skk-kcode-charset-list): Do not consider Mule 2 and MULE 3. (skk-kanji-len): (skk-hankaku-alist): Abolish variables. * skk-xemacs.el: No longer support XEmacs 20.4. * skk.el (skk-kill-emacs-without-saving-jisyo): (skk-jisx0208-to-ascii): Do not consider Mule 2. (skk-change-marker): (skk-change-marker-to-white): (skk-delete-henkan-markers): (keyboard-quit): (abort-recursive-edit): Do not refer to `skk-kanji-len'. (skk-compute-henkan-lists): (skk-remove-common): Use `aref' instead of `skk-str-ref'. (skk-remove-redundant-okurgana): (skk-search-sagyo-henkaku): (skk-remove-common): Use `length' instead of `skk-str-length'. * tinyinstall.el: No longer consider Mule 2. 2002-01-18 Tsuyoshi AKIHO * SKK-MK (SKK_MODULES): Add `skk-azik'. * READMEs/Contributors: Following person is added. ONODA Arata * READMEs/NEWS: Add AZIK's URL. 2002-01-17 Tetsuo Tsukamoto * leim-list.el.in: Do nothing when `noninteractive' is non-nil. * skk-e21.el (skk-icon): Don't bind `load-path'. * skk-cus.el (skk-cus-info): Use `if' instead of `and'. 2002-01-15 Tetsuo Tsukamoto * READMEs/Contributors: Following person is added. KIHARA Hideto * ccc.el (update-buffer-local-frame-params): Abolish optional argument FORCE-CURRENT-BUFFER. New optional argument BUFFER. (minibuffer-exit-hook): Don't bother setting buffer. * skk-tut.el (skktut-init-variables-alist): Set `skk-update-jisyo-function' to be `skktut-update-jisyo'. (skktut-update-jisyo): New function. It is intended not to autosave the dictionary for the tutorial. 2002-01-14 Tetsuo Tsukamoto * ccc.el (update-buffer-local-frame-params): New optional argument FORCE-CURRENT-BUFFER. (minibuffer-exit-hook): Force to refer to the values in the specified buffer. 2002-01-13 Eiji Obata * experimental/skk-azik.el: Require `skk-macs' and `skk-vars' and `alist'. Fix and re-indent. * experimental/skk-dinsert.el: Require `skk-macs' and `skk-vars'. 2002-01-13 ONODA Arata * experimental/skk-azik.el: Reset `skk-rom-kana-rule-list'. 2002-01-12 Eiji Obata * experimental/skk-dinsert.el Comments update. (skk-dinsert-mode): Doc update. (skk-dinsert): Deactivate when `skk-henkan-mode' is non-nil and cursor is at `skk-henkan-start-point'. 2002-01-12 NAKAJIMA Mikio * skk.el (skk-reread-private-jisyo): Modify prompt string. 2002-01-11 Tetsuo Tsukamoto * skk-e21.el (skk-icon): Set variable. * skk-xemacs.el (skk-icon): Set variable. (skk-setup-modeilne): Don't advise here. * skk-vars.el (skk-icon): Declare variable here. * skk.el (skk-setup-modeline): Add `skk-icon' if non-nil. 2002-01-11 Eiji Obata * skk.el (skk-save-jisyo-original): Always reset `skk-update-jisyo-count'. * experimental/skk-dinsert.el (skk-dinsert): Deactivate while isearch. (skk-dinsert-rule-list): Doc fixed. 2002-01-11 Tetsuo Tsukamoto * skk.el (skk-restart): Reset `skk-rom-kana-rule-list' and `skk-rule-tree'. (skk-preload): Call `skk-mode' in temporary buffer. (skk-adjust-user-option): Set `skk-use-color-cursor' nil when `skk-color-display-p' returns nil. 2002-01-10 Eiji Obata * experimental/skk-dinsert.el : New file. 2002-01-10 Tsuyoshi AKIHO * experimental/skk-azik.el : New file. 2002-01-09 Tetsuo Tsukamoto * ccc.el (update-buffer-local-frame-params): Set buffer to be the window buffer. * skk-cus.el (skk-custom-file) (skk-custom-alist): Autoload. (skk-cus-params-misc): Add `skk-preload'. * skk-vars.el (skk-preload): New variale. * skk.el (skk-preload): New function. This function is called on `after-init-hook' if variable `skk-preload' is non-nil. 2002-01-07 Tetsuo Tsukamoto * skk-xemacs.el Don't require skk-setup when XEmacs is started noninteractively. 2002-01-06 Tetsuo Tsukamoto * skk.el (skk-compile-rule-list): Don't add rule when key is not a string. 2002-01-03 Tetsuo Tsukamoto * etc/skk.xpm: New file. * SKK-MK (SKK_TUTORIALS): Add skk.xpm. * skk-xemacs.el (skk-icon): New variable. (skk-setup-modeline): Advise to display the icon. 2002-01-02 Tetsuo Tsukamoto * ccc.el (ccc-read-color): Typo. * skk-isearch.el (skk-isearch-really-early-advice): Don't quote. 2002-01-01 Tetsuo Tsukamoto * SKK-MK (SKK-MK-generate-autoloads-el-package): Don't add (require 'skk-setup) here. * skk-setup.el.in: Don't require skk-autoloads under XEmacs. * skk-xemacs.el: Add (require 'skk-setup) here. Don't need to check `skk-emacs-type'. 2001-12-23 Tetsuo Tsukamoto * ccc.el (update-buffer-local-cursor-color) (update-buffer-local-foreground-color) (update-buffer-local-background-color): Simplify. (ccc-read-color): Return nil if `read-string' returns null string. 2001-12-22 NAKAJIMA Mikio * etc/dot.skk (skk-hyphen): Remove interactive spec. * etc/dot.emacs: Move the example of skk-hyphen to etc/dot.skk. * READMEs/Contributors (Contributors): Add ISHIKAWA Naoya. * etc/dot.emacs: Add an example of skk-hyphen (suggested by ISHIKAWA Naoya ). 2001-12-16 Tetsuo Tsukamoto * skk-version.el (skk-version): Bump to 11.7.0. * SKK-MK (SKK-MK-server-installed-p): Use `skk-server-live-p'. 2001-12-16 Tsuyoshi AKIHO * Daredevil SKK 11.6.0 released. * Makefile (version): Change to 11.6.0. * READMEs/NEWS : Update. * doc/skk.texi (SKK$B$NNr;K(B): Update. 2001-12-16 Tetsuo Tsukamoto * *: Mega typo fix. * SKK-MK (SKK-MK-compile-package): Load auto-autoloads.el. * skk-dcomp.el (skk-dcomp-after-delete-backward-char): Don't complete in `skk-abbrev-mode'. * skk-server.el (skk-open-server-1): Refer to `skk-server-inhibit-startup-server' earlier. * skk-tut.el (skktut-init-variables-alist): Set `skk-kcode-charset' japanese-jisx0208 when feature `jisx0213' is found. 2001-12-15 Tetsuo Tsukamoto * SKK-MK (SKK_MOULES): For Emacsen without face support. Don't install ccc and skk-cursor. 2001-12-15 Tsuyoshi AKIHO * skk.texi (SKK-VERSION): Updated to 11.6.0. Add ($BAw$j2>L>$NM%@hE*$J%^%C%A(B). 2001-12-10 Tsuyoshi AKIHO * skk-vars.el Check if function `face-background' exists. 2001-12-09 Tetsuo Tsukamoto * skk-vars.el Check if variable `frame-background-mode' exists. * skk.el (skk-define-j-mode-map) (skk-define-jisx0208-mode-map): Use `lookup-key' instead of `skk-key-binding-member'. (skk-setup-keymap): Don't define keys many times. 2001-12-06 NAKAJIMA Mikio * skk.el (skk-make-plist): New function. (skk-make-plist-alist): Ditto. * skk-macs.el (skk-get): New inline function. (skk-put): Ditto. * skk.el (skk-after-point-move): Declare with `defun' instead of `defsubst'. (skk-pre-command): Ditto. 2001-12-05 Tetsuo Tsukamoto * skk-cursor.el (skk-cursor-off-1): New function. * skk-macs.el (skk-cursor-off): New function. (skk-mode-off): Call `skk-cursor-off'. 2001-12-05 NAKAJIMA Mikio * doc/skk.texi (FTP$B$rMxMQ$7$FF~ * skk.el Call `skk-define-abbrev-mode-map' before `skk-define-j-mode-map'. 2001-12-03 NAKAJIMA Mikio * skk-viper.el (skk-viper-advice-select): Put lisp-indent-function property `defun' to it. * READMEs/NEWS: Typo fixed. 2001-12-02 Tetsuo Tsukamoto * skk-version.el (skk-version): Bump to 11.6.0. * ccc.el (buffer-local-cursor-color-default) (buffer-local-foreground-color-default) (buffer-local-background-color-default): Abolish functions and variables. (frame-cursor-color) (frame-foreground-color) (frame-background-color): New variables. (buffer-local-cursor-color) (buffer-local-foreground-color) (buffer-local-background-color): Default values are nil. (ccc-read-color) (ccc-color-equal) (get-apparent-cursor-color) (get-apparent-foreground-color) (get-apparent-background-color) (set-cursor-color-buffer-local) (set-foreground-color-buffer-local) (set-background-color-buffer-local): New functions. (modify-frame-parameters): New advice. * skk-cursor.el (skk-cursor-default-color): New function. * skk-macs.el (skk-mode-off): For FSF Emacs. Call `set-cursor-color-buffer-local'. (ignore-errors) (dolist) (dotimes): Put property `defmacro-maybe'. 2001-12-02 Tsuyoshi AKIHO * Daredevil SKK 11.5.2 released. * Makefile (version): Change to 11.5.2. * doc/skk.texi (SKK$B$NNr;K(B): Update. (SKK 9 $B$+$i$NJQ99E@(B): Update. 2001-12-02 Eiji Obata * doc/skk.texi (XEmacs & Emacs 21 $B$N%b!<%I%i%$%s(B): Doc fixed. 2001-12-02 Tsuyoshi AKIHO * skk-annotation.el(skk-annotation-show): Fixed. * doc/skk.texi: Add $B<-=q$N%"%N%F!<%7%g%s(B($BCp * doc/skk.texi ($B"&%b!<%I$K$*$1$k<+F0%@%$%J%_%C%/%3%s%W%j!<%7%g%s(B): Update. ($B%5!<%P4XO"(B): Add description about `skk-server-inhibit-startup-server'. 2001-12-01 Tetsuo Tsukamoto * skk-dcomp.el (skk-set-henkan-point-subr): Pass one argument to `char-after'. 2001-11-29 Tetsuo Tsukamoto * skk.el (skk-setup-keymap): Don't define key for `skk-toggle-jisx0201'. 2001-11-27 Tetsuo Tsukamoto * skk-server.el (skk-server-live-p): New function. * skk.el (skk-mode): For Emacs 21. Don't call `make-local-hook'. 2001-11-27 NAKAJIMA Mikio * skk-viper.el (viper-forward-word-kernel@around@skk-ad, vip-forward-word-kernel@around@skk-ad): Use `ad-get-arg' instead of referring to temporary variable VAL. (viper-backward-word-kernel@around@skk-ad, vip-backward-word-kernel@around@skk-ad): Ditto. 2001-11-25 Tsuyoshi AKIHO * doc/skk.texi (APEL $B$N%$%s%9%H!<%k(B): Doc fixed. ($B:G$b4pK\E*$J@_Dj(B): Add doc about sample(etc/dot.emacs,etc/dot.skk) files. ($BAw$j2>L>$,M-$k>l9g$N<-=qEPO?(B): Add doc about skk-check-okurigana-on-touroku. ($B%U%!%$%k9=@.(B): Update doc. ($B%f!<%6!<%*%W%7%g%s$N@_DjJ}K!(B): Coment out skk-viper-load-hook. (skk-rom-kana-rule-list$B$NMxMQNc(B): Sample code fixed. ($B%+%?%+%J$N8+=P$78l(B): Update doc. ($B<-=qEPO?$N:]$KCm0U$9$Y$-$3$H(B): Update doc. ($B%W%m%0%i%` * skk-kakasi.el (skk-gyakubiki-katakana-region): Bug fixed. * skk-vars.el (skk-server-inhibit-startup-server): Set default variable to t. * skk-server.el (skk-open-server-1): Refer to `skk-server-inhibit-startup-server'. * skk-vars.el (skk-server-inhibit-startup-server): New user variable. 2001-11-25 Tetsuo Tsukamoto * skk-server.el (skk-server-version) (skk-search-server-1) (skk-disconnect-server): Refer to `skkserv-process'. (skk-open-server) (skk-open-server-1) (skk-open-network-stream) (skk-startup-server): Return a process object. (skk-open-server): Don't open a new process when `skkserv-process' is open. * skk.el (skk-mode): For XEmacs only. Call `easy-menu-add' here. 2001-11-25 NAKAJIMA Mikio * skk-vars.el (skk-dcomp-activate): Set default value to nil. 2001-11-25 Tetsuo Tsukamoto * skk.el (skk-abbrev-mode): Bind `skk-dcomp-activate' nil. 2001-11-25 NAKAJIMA Mikio * experimental/skk-w3m.el (skk-w3m-get-candidates-from-goo-daijirin): Filter out "$B!T(B" and "$B!U(B " from a candidate. Check if a candidate is redundant or not. Update comments. * skk-dcomp.el: Update comments. * skk.el (skk-require-module): Require skk-dcomp when `skk-dcomp-activate' is non-nil. 2001-11-24 NAKAJIMA Mikio * skk-server.el (skk-open-network-stream): Check if process status of "skkservd" is equal to `skk-network-open-status'. (skk-open-server): Omit process status. Do not use temporary variable PROC. (skk-open-server-1): Check if `skk-server-prog' is dbskkd-cdb or not before calling `skk-startup-server'. (skk-open-server-1): Update comment. (skk-open-server): Bug fixed. * experimental/skk-w3m.el: Update comments. (skk-w3m-search-by-emcas-w3m): Call `erase-buffer' after cutting off a candidate. * skk-vars.el (skk-menu-items): Replace skk-use-kakasi with t in "Ascii", "Hiragana", "Katakana", "Zenkaku" menu (submenu of "Convert Region and Replace"). * experimental/skk-w3m.el (skk-w3m-w3m-w3m-retrieve-has-new-argument-spec): New constant. (skk-w3m-w3m-retrieve): New function. (skk-w3m-search-by-emcas-w3m): Use `skk-w3m-w3m-retrieve'. (skk-w3m-with-work-buffer): New macro. (skk-w3m-search-by-backend): Use `skk-w3m-with-work-buffer'. (skk-w3m-search-by-emcas-w3m): Ditto. Do not bind `w3m-work-buffer-name' temporarily. (skk-w3m-get-candidates-from-goo-daijirin): Modify regexp. 2001-11-24 Tetsuo Tsukamoto * etc/dot.emacs: New file. * skk-dcomp.el (skk-set-henkan-point-subr): Don't call `skk-dcomp-do-completion' when `char-after' returns non-nil. * skk.el (skk-kakutei): Don't call `skk-j-mode-on' in `skk-jisx0201-mode'. 2001-11-24 NAKAJIMA Mikio * Makefile (TAGS): New target. * SKK-MK (SKK_MODULES): Add skk-w3m even if there is `w3m-search' in load-path. * skk-auto.el (skk-adjust-search-prog-list-for-auto-okuri): Check if MARK is non-nil. * skk.el (skk-set-henkan-point-subr): Slightly arrange doc string. (skk-toggle-characters): Convert region when CHAR is jisx0208-latin or ascii, too. 2001-11-23 Tetsuo Tsukamoto * etc/dot.skk: New file. * skk.el (skk-setup-keymap): Use conditions a little better. (skk-toggle-characters): Call `skk-j-mode-on' in `skk-j-mode'. (skk-kakutei): Don't call `skk-j-mode-on' in `skk-j-mode'. 2001-11-21 Tetsuo Tsukamoto * skk-jisyo-edit-mode.el: Use `if' instead of `unless'. * skk.el (skk-search-sagyo-henkaku): Bind `skk-okuri-char' nil. 2001-11-19 Tetsuo Tsukamoto * *: Comments fix. * skk.el (skk-get-jisyo-buffer): Bind `enable-character-translation' non-nil if main Japanese characters do not belong to JIS X 0208 Japanese Kanji. (skk-define-j-mode-map): Always define keys for `skk-jisx0201'. * doc/skk.texi: Remove a duplicate URL. 2001-11-19 Tsuyoshi AKIHO * skk-tut.el (skktut-end-tutorial) : Update for ml program change to ezmlm. * skk-vars.el (skk-ml-command-address) : Update for ml program change to ezmlm. * READMEs/NEWS : Add support for GNU Emacs 21. Add that archive include S dictoionary. * READMEs/README.win : Update site of tar.exe. * doc/skk.texi (EDITION): Updated to 1.7. (SKK-VERSION) : Updated to 11.5.2. ($B$O$8$a$K(B) : Add support for GNU Emacs 21. ($B<-=q$NF~ * SKK-MK: Require `pcustom'. (SKK_MODULES): Check the feature `tinycustom' by `featurep' instead of `module-installed-p'. 2001-11-17 Tetsuo Tsukamoto * *.el: Add keywords. 2001-11-16 Tetsuo Tsukamoto * *.el: Comments and strings update, and coding style fix. * skk-cus.el (skk-cus-set): New function. (skk-customize-done): Push all options into `skk-custom-alist'. 2001-11-15 Tetsuo Tsukamoto * SKK-MK (SKK-MK-skk-dic): Check if skk-dic.el is newer than skk-dic.el.in. 2001-11-14 Tetsuo Tsukamoto * skk-macs.el * skk-num.el: Add autoloads. * skk.el: Require `skk-autoloads' at the top level. (skk-search-sagyo-henkaku): New optional argument `anything'. 2001-11-13 Tetsuo Tsukamoto * skk-cus.el: New file. * SKK-MK (SKK_MODULES): Add `skk-cus'. * skk-e21.el (skk-e21-modeline-menu-items): Call `skk-customize' instead of `skk-e21-customize'. * skk-xemacs.el (skk-xemacs-modeline-menu-items): Call `skk-customize' instead of `skk-xemacs-customize'. * skk-jisx0201.el: Don't set `minor-mode-map-alist' here. * skk-macs.el (skk-j-mode-on) (skk-latin-mode-on) (skk-jisx0208-latin-mode-on) (skk-abbrev-mode-on): Call `skk-setup-keymap'. * skk.el (skk-define-j-mode-map) (skk-define-latin-mode-map) (skk-define-jisx0208-latin-mode-map) (skk-define-abbrev-mode-map): New functions. (skk-henkan): Use the candidate unmodified when `skk-numeric-p'. (skk-mode-invoke): Call `skk-cus-setup'. * skk-isearch.el (skk-isearch-initialize-working-buffer): Set `skk-dcomp-activate' nil. * skk-obsolete.el Define aliases to obsolete functions here. * skk-kcode.el: Typo. 2001-11-11 Tetsuo Tsukamoto * skk.el (skk-henkan-show-candidate-subr): When the current window is a minibuffer window, select anonther window before `delete-other-windows'. 2001-11-11 Eiji Obata * doc/skk.texi ($B5/F0$H=*N;(B): Doc fixed. 2001-11-11 Tetsuo Tsukamoto * READMEs/Contributors * doc/skk.texi: Following persons are added (a-b order). Eiji Obata Yukihiro Nakai * skk-vars.el (skk-indicator-use-cursor-color): New variable. * skk-e21.el (skk-e21-prepare-modeline-properties): Refer to `skk-indicator-use-cursor-color'. * skk-xemacs.el (skk-xemacs-prepare-modeline-properties): Refer to `skk-indicator-use-cursor-color'. 2001-11-10 Tetsuo Tsukamoto * skk-version.el (skk-version): Bump to 11.5.2. 2001-11-05 Tetsuo Tsukamoto * SKK-MK (SKK_INFODIR): Refer to `Info-default-directory-list' instead of `Info-directory-list'. Consider FHS. * skk-vars.el (skk-units-alist): Typo. From someone at 2ch. * tinyinstall.el (when) (unless): New macros. * install-info.el (install-info-1): Missing `set-buffer' when the section is `Miscellaneous'. 2001-11-04 Tetsuo Tsukamoto * skk-vars.el (skk-isearch-switch): Autoload. 2001-11-03 Tetsuo Tsukamoto * skk.el (skk-process-prefix-or-suffix): Bind `skk-kakutei-history' nil. * skk-macs.el: No need to declare `skk-emacs-type' here. * skk-vars.el (skk-emacs-type): No need to check if `mule-version' is bound for FSF Emacsen. 2001-11-02 Tetsuo Tsukamoto * skk.el (skk-try-completion): Use `skk-comp' instead of `skk-comp-do'. 2001-11-01 Tetsuo Tsukamoto * skk-jisx0201.el (skk-hiragana-to-jisx0201-region) (skk-katakana-to-jisx0201-region): Abolish the optional argument `vcontract'. Modify the regexp. (skk-jisx0201-roman-rule-list): Remove the rule for space. (skk-set-okurigana): Modify for okuri with dakuten. * SKK-MK: Check the versions of Emacs and APEL here. * skk.el (skk-search-katakana): Accept an optional argument `jisx0201-katakana'. 2001-10-31 Tetsuo Tsukamoto * ccc.el: Modification concerning specificity. * skk-vars.el (skk-henkan-on) (skk-henkan-active): Abolish. (skk-henkan-mode): New variable. (skk-isearch-overriding-local-map): Simplify. * experimental/skk-hint.el * skk-comp.el * skk-cursor.el * skk-dcomp.el * skk-isearch.el * skk-jisx0201.el * skk-kcode.el * skk-viper.el * skk-xemacs.el * skk.el * vip.el: Refer to `skk-henkan-mode'. * skk.el (skk-create-file): The first arg for `message' here should be "%s". 2001-10-29 Tetsuo Tsukamoto * SKK-MK * skk.el: More readable. * skk-dcomp.el (skk-dcomp-after-delete-backward-char): Call `skk-dcomp-do-comletion' even when `skk-marked-p' returns nil. (skk-set-henkan-point-subr): Advise to call `skk-dcomp-do-completion'. 2001-10-24 Tetsuo Tsukamoto * skk.el (skk-set-henkan-point): A little more readable. 2001-10-23 Tetsuo Tsukamoto * skk-vars.el (skk-viper-saved-cursor-color): Make sure `viper-insert-state-cursor-color' is bound. (skk-menu-items): Call `skk-latin-region' instead of `skk-ascii-region'. * skk.el (skk-latin-region): Search char category j instead of category A or S. * skk-e21.el * skk-xemacs.el * skk.el: More specific. 2001-10-21 Tetsuo Tsukamoto * skk-annotation.el * skk-develop.el * skk-lookup.el * skk-obsolete.el * skk-viper.el: Modification concerning specificity. * skk-macs.el (skk-loop-for-buffers): Use `save-current-buffer' instead of `with-current-buffer'. * skk-look.el (skk-search-prog-list): Don't call `skk-splice-in' when MARK is nil. * skk-vars.el: Doc strings update. 2001-10-20 Tetsuo Tsukamoto * install-info.el (install-info-add-groups): Use `when' instead of `if'. * skk-look.el * skk-macs.el: More specific. * skk.el (skk-search-sagyo-henkaku): Accept an optional argument. Use `skk-substring', not `substring'. (skk-backward-and-set-henkan-point): Use `when' instead of `if'. * skk-jisx0201.el (skk-search-sagyo-henkaku): Set the argument. 2001-10-19 Tetsuo Tsukamoto * skk.el (skk-katakana-henkan) (skk-hiragana-henkan) (skk-jisx0208-latin-henkan) (skk-latin-henkan): Call `skk-*-henkan-2'. (skk-*-henkan-2): New function. (skk-search-sagyo-henkaku): Use `skk-nunion' instead of `nconc'. * skk-jisx0201.el (skk-jisx0201-region): Call `skk-*-henkan-2'. * skk-abbrev.el * skk-kakasi.el * skk-dcomp.el * skk-num.el: More specific. * skk-dcomp.el (skk-dcomp-delete-completion) (skk-dcomp-do-completion) (skk-dcomp-before-kakutei) (skk-dcomp-after-kakutei): New functions. 2001-10-18 Tetsuo Tsukamoto * skk-comp.el (skk-comp-do): More specific. * skk.el (skk-setup-keymap): Check if `minibuffer-local-ns-map' is a keymap. 2001-10-16 Tetsuo Tsukamoto * READMES/Contributors * doc/skk.texi: Add the following person. SIMOYAMA Takasi * skk.el (skk-setup-delete-selection-mode): Bind functions. 2001-10-15 Tetsuo Tsukamoto * skk.el (skk-require-module): If the feature `skk-jisx0201' is present, set `skk-use-jisx0201-input-method' t. 2001-10-14 Tsuyoshi AKIHO * READMEs/README.Mac : Add note of byte compile. * Makefile : Modified argument of tar for old GNU tar 1.11.2. 2001-10-14 Tetsuo Tsukamoto * skk-macs.el (skk-quote-char-1): Don't use `format'. (skk-mode-string-to-indicator): For Emacs 21 -- don't call `propertize' if MODE is `default'. * skk.el (skk-quote-char) (skk-quote-semicolon): Use `format'. (skk-compose-ignore-word-sub-quote-char): Call `skk-quote-char-1'. (skk-make-indicator-alist) (skk-make-indicator-alist-1): Call `skk-mode-string-to-indicator'. 2001-10-13 Tetsuo Tsukamoto * skk-auto.el (skk-okuri-search) (skk-okuri-search-1): Rename the former to the latter. (skk-adjust-search-prog-list-for-auto-okuri): Never delete `skk-okuri-search' from `skk-search-prog-list'. * skk-server.el (skk-search-server): Move to skk.el (skk-adjust-search-prog-list-for-server-search): Never delete `skk-search-server' from `skk-search-prog-list'. * skk-vars.el (skk-search-prog-list): Add `skk-okuri-search' and `skk-search-server'. * skk.el (skk-search-server) (skk-okuri-search): New functions. (skk-search-sagyo-henkaku): Do not use `skk-search'. Bind `skk-auto-okuri-process' nil. * SKK-MK (SKK-MK-compile): Load skk-autoloads.el, not require. 2001-10-13 SIMOYAMA Takasi * skk-vars.el (skk-gyakubiki-jisyo-list): New variable. * skk-kakasi.el (skk-kakasi-region): Add reverse-dictionary argument to skk-kakasi-command. 2001-10-13 Tetsuo Tsukamoto * skk-isearch.el (isearch-message-prefix): Bind `current-input-method' nil when `skk-isearch-swtich' is on. * skk.el (skk-latin-mode) (skk-toggle-characters) (skk-jisx0208-latin-mode) (skk-set-henkan-point-subr) (skk-purge-from-jisyo) (skk-abbrev-mode): Return nil. (skk-define-menu-bar-map): Abolish. (skk-define-menu): New function. (skk-search-sagyo-henkaku): New funcion. * skk-vars.el (skk-menu-items): New variable. * skk-kcode.el: More specific. 2001-10-11 Tetsuo Tsukamoto * skk-macs.el * skk-tut.el * skk.el: Modification concerning specificity. * skk-cursor.el (skk-cursor-set-1): New function. (skk-cursor-set): Abolish. (skk-abbrev-mode) (skk-auto-fill-mode) (skk-jisx0208-latin-mode) (skk-kakutei) (skk-latin-mode) (skk-mode) (skk-toggle-kana): Don't advise. (skk-cursor-init-function): Abolish. * skk-macs.el (skk-cursor-set): New function. (skk-latin-mode-on) (skk-abbrev-mode-on) (skk-jisx0208-latin-mode-on): Call `skk-cursor-set'. * skk-jisx0201.el (skk-jisx0201-mode-on): Don't check the value of `skk-use-color-cursor'. * skk.el (skk-require-module): Don't require `skk-cursor'. 2001-10-10 Tetsuo Tsukamoto * SKK-MK * install-info.el * skk-e21.el * skk-gadget.el * skk-leim.el * skk-tut.el * skk-xemacs.el * skk.el: Modification concerning specificity. * skk-annotation.el (skk-annotation-show): Do nothing when `skk-kakutei-flag' is non-nil. * skk-dic.el.in (skk-dic-setup-buffer): Call `buffer-disable-undo' without an argument. * skk-gadget.el (skk-ignore-dic-word): If new-word contains a note, rip it off and return a cell of the word and the note. * skk.el (skk-insert-new-word): If word is a lisp program and it returns a cons cell, car of the return value is a word, while cdr is a note. (skk-compose-ignore-word-sub-quote-char): New function. (skk-compose-ignore-word): Quote characters in `skk-quote-char-alist'. 2001-10-09 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-as-message): Always use `message'. * install-info.el * skk-comp.el * skk-dic.el.in * skk-gadget.el * skk-isearch.el * skk-num.el * skk-xemacs.el * skk.el: Modification concerning specificity. * skk-gadget.el (skk-plus) (skk-minus) (skk-times): Use `skk-calc'. 2001-10-08 Tetsuo Tsukamoto * skk-gadget.el (skk-clock): More specific. * skk-isearch.el (isearch-message-prefix): Fix for hiding `current-input-method-title'. * skk-macs.el (ignore-errors): New macro. (skk-message) (skk-error): 1st argument for `message' or `error' should be a format string. * skk-num.el (skk-num-compute-henkan-key): Avoid duplicate processing. * skk-server.el (skk-server-version) (skk-search-server-subr) (skk-open-server) (skk-open-server-1) (skk-open-network-stream) (skk-startup-server) (skk-adjust-search-prog-list-for-server-search) (skk-disconnect-server): More specific. * skk.el (skk-jisx0208-latin-mode) (skk-misc-for-picture) (skk-kill-local-variables) (skk-kana-input): More specific. (skk-mode-invoke): No need to require `skk-kanagaki'. (skk-del-char-with-pad) (skk-cancel-undo-boundary) (skk-set-okurigana) (skk-toggle-kutouten) (skk-current-kuten) (skk-henkan-face-off) (skk-make-face) (abort-recursive-edit) (newline) (newline-and-indent) (exit-minibuffer) (undo) (kill-buffer) (commint-send-input): More specific. (skk-require-module): Don't require `skk-leim'. 2001-10-07 Tetsuo Tsukamoto * skk-cursor.el: Don't advise `skk-jisx0201-mode'. * skk-jisx0201.el (skk-toggle-jisx0201): Use one `cond'. * skk-look.el (skk-look-completion): Use `unless' instead of `or'. Use `pop' instead of `prog1'. * skk-macs.el (skk-erase-prefix) (skk-kana-cleanup): More specific. * skk.el (skk-henkan-show-candidates): Use `cdr-safe' instead of `consp' followed by `cdr'. (skk-insert-new-word): More specific. (skk-latin-mode-map) (skk-j-mode-map) (skk-jisx0208-latin-mode-map) (skk-abbrev-mode-map): Use `unless' instead of `or'. (skk-jisx0208-to-ascii): Use `if' instead of `and'. (skk-compute-henkan-lists): Thought this `catch' is useless. Call `skk-compute-henkan-lists-sub-adjust-okuri'. (skk-compute-henkan-lists-sub-adjust-okuri): New function. 2001-10-06 Tetsuo Tsukamoto * SKK-MK: Never remove skk-dic from `SKK_MODULES'. * skk-comp.el (skk-comp-by-history): Use `pop'. * skk-isearch.el (skk-isearch-current-mode): Use `case'. * skk.el (skk-after-point-move) (skk-pre-command): More specific. 2001-10-04 Tetsuo Tsukamoto * skk-jisx0201.el (newline) (newline-and-indent) (exit-minibuffer): Don't advise here. * skk.el (newline) (newline-and-indent) (exit-minibuffer): Advise in skk-jisx0201-mode as well as in skk-j-mode. 2001-10-03 Tetsuo Tsukamoto * skk-jisx0201.el (skk-hiragana-to-jisx0201-region) (skk-katakana-to-jisx0201-region): Don't consider JISX0201 Roman. Comments update. * skk-isearch.el: Comments update. 2001-10-02 Tetsuo Tsukamoto * skk-jisx0201.el: Don't define keys here. * skk.el (skk-require-module): If `skk-use-jisx0201-input-method' is non-nil, define keys instead of loading skk-jisx0201.el. 2001-09-30 Tetsuo Tsukamoto * install-info.el: Typo. * SKK-MK (SKK_MODULES): Do not add skk-xm20_4. (SKK-MK-skk-dic): Do not push skk-dic in SKK_MODULES. * skk-setup.el.in: On XEmacs 20.4, load skk-leim.el and skk-autoloads.el. * skk-xemacs.el: On XEmacs 20.4, load skk-leim.el and skk-autoloads.el. (skk-xemacs-prepare-modeline-properties): Do not set some face properties on XEmacs 20.4. * skk-xm20_4.el: No longer in the repository. * skk.el (skk-mode-invoke): Remove workaround for XEmacs 20.4. 2001-09-23 Tetsuo Tsukamoto * skk-viper.el (skk-cursor-current-color): Always set `ad-return-value'. (read-from-minibuffer): Add `skk-cursor-set' to `minibuffer-setup-hook'. * skk-vars.el (skk-viper-saved-cursor-color): Don't refer to `viper-insert-state-cursor-color' if viper is not required. 2001-09-23 NAKAJIMA Mikio * skk-viper.el: Check if `viper-insert-state-cursor-color' is bound using `if' instead of `static-if' (A user may replace Viper with its newer version after installing SKK). Check if `viper-insert-state-cursor-color' is bound instead of checking by `skk-color-display-p' for cursor support. (skk-cursor-current-color@around@skk-viper-cursor-ad): Check if `viper-current-state' and `vip-current-state' and are bound using `cond' instead of `static-cond'. (read-from-minibuffer@before@skk-viper-ad): Not advise if `skk-emacs-type' is `xemacs'. Change Murata-san's email address to `mrt@notwork.org'. (skk-viper-saved-cursor-color): Moved to skk-vars.el. (skk-color-display-p): Use `skk-cursor-set' instead of `set-buffer-local-cursor-color' for `vip-Append', `vip-Insert', `vip-insert', `vip-intercept-ESC-key', `vip-open-line', 'viper-Append', `viper-Insert' `viper-hide-replace-overlay', `viper-insert', `viper-intercept-ESC-key' and `viper-open-line'. (skk-viper-init-function): Set `viper-insert-state-cursor-color' value only when skk-viper.el is compiled on Emacs that has this variable. 2001-09-23 Tetsuo Tsukamoto * READMEs/Contributors * doc/skk.texi: Add the following person. TAKAHASHI Kaoru * SKK-MK (SKK-MK-skk-dic): Do nothing if skk-dic.el exists. * skk-jisyo-edit-mode.el (auto-mode-alist): Add association for private jisyo. * skk-xemacs.el (before-init-hook): Fill. * skk-cursor.el (skk-cursor-buffer-local-frame-params-ad-targets): Thought this variable is not needed. (isearch-mode-end-hook) (minibuffer-setup-hook): Don't call `lambda'. * skk-jisx0201.el (skk-jisx0201-mode-on) (skk-insert): Call `skk-cursor-set'. * skk-macs.el (skk-j-mode-on): Ditto. * skk-vars.el (skk-cursor-color-before-entering-minibuffer): This is obsolete. Abolish. 2001-09-22 Tetsuo Tsukamoto * READMEs/Contributors: Add the following person. Shigeru OKUMURA * doc/skk.texi: Sync with READMEs/Contributors. 2001-09-21 Tetsuo Tsukamoto * skk-vars.el: Do not consider MS-DOS. (skk-cursor-report-set-error, skk-cursor-change-width): These are not used. Abolish. * skk-tut.el (skktut-init-variables-alist): Do not set variables above. * skk-obsolete.el (skk-obsolete-variable-alist): Do not check them. 2001-09-20 Tetsuo Tsukamoto * etc/skk-dic.rb: Simplify. 2001-09-19 Tetsuo Tsukamoto * Makefile (rb-skk-dic): New target. (tar) (snapshot): Create skk-dic.el. * skk-jisyo-edit-mode.el (skk-jisyo-edit-font-lock-keywords): Regexp improvement. * etc/skk-dic.rb: New file. 2001-09-17 Tetsuo Tsukamoto * skk-macs.el: Put dotimes' value of lisp-indent-function. * skk-jisyo-edit-mode.el: New file. * SKK-MK: Setup Japanese environment on Emacs 20 or later. (SKK_MODULES): Add skk-jisyo-edit-mode. 2001-09-16 Tetsuo Tsukamoto * Makefile (clean): No, don't delete skk-dic.el. (skk-dic): First delete skk-dic.el * SKK-MK: Keep skk-dic.el. (SKK-MK-skk-dic): Check if JISYO is newer than skk-dic.el. Escape "\"". Escape "\\". 2001-09-16 Tetsuo Tsukamoto * skk-dic.el: No longer in the repository. * skk-dic.el.in: New file. * Makefile (clean): Delete skk-dic.el. * SKK-MK (SKK_DEFAULT_JISYO): New variable. (SKK-MK-skk-dic): Create skk-dic.el from SKK_DEFAULT_JISYO and skk-dic.el.in. 2001-09-15 Tetsuo Tsukamoto * skk-macs.el (dolist) (dotimes): New macros. From Emacs 21. (skk-put-last-henkan-datum) (skk-put-last-henkan-data): Use `push'. (skk-key-binding-member) (skk-loop-for-buffers): Use `dolist'. Workaround for the pseudo-`dolist' in egg.el. * skk-comp.el (skk-comp-do) (skk-comp-by-history): Use `dolist' and `push'. * skk-cursor.el (skk-cursor-set): New function. Advice, hooks and functions in this program will call it. * skk-isearch.el (skk-isearch-setup-keymap): Use `push'. * skk.el (skk-setup-emulation-commands): Use `dolist'. * install-info.el (install-info-1): Use `push' and `setcar'. Use `cond' instead of `if'. 2001-09-15 Tetsuo Tsukamoto * skk-comp.el: Re-indent and re-order cases. (skk-comp-do-1-in-buf): New function. (skk-comp-do-1): Call it. Refer to `skk-dic-comp-first'. (skk-comp-do): Add only new words. * skk-dic.el (skk-dic-setup-buffer): New function. (skk-search-small-dic): Call it. * skk-vars.el (skk-dic-comp-first): New variable. * skk-macs.el (skk-loop-for-buffers): Use `while'. Use `if'. 2001-09-14 Tetsuo Tsukamoto * skk-version.el (skk-version): Bump to 11.5.1. * READMEs/Contributors: Following persons are added (a-b order). Daiki Ueno EGUCHI Satoshi Martin Buchholz Norio Maeda Toru YANO Yoshiki Hayashi * Makefile (skk-dic): New target. * SKK-CFG: Modify examples for Windows. * SKK-MK (SKK-MK-skk-dic): New function. * skk-dic.el (skk-small-dic): Typo. (skk-search-small-dic): Call `buffer-size' with no argument. * skk-e21.el (skk-e21-modeline-property): Use `static-if'. (skk-e21-modeline-menu-items): nil under tty. * skk-macs.el (skk-loop-for-buffers): New macro. * skk-vars.el (skk-emacs-type): Use ordinary clauses. * skk.el: Re-indent. Make the 1st argment of `error' a format string. (skk-mode): The usage of term `entry' is not valid. Say `input'. (skk-update-jisyo-original) (skk-compute-henkan-lists) (skk-update-jisyo-1): The usage of term `entry' is not valid. Say `words'. (skk-public-jisyo-has-entry-p): Rename to ... (skk-public-jisyo-has-word-p): it. (skk-compose-ignore-entry): Rename to ... (skk-compose-ignore-word): it. (skk-setup-keymap): When `skk-kakutei-key' is a vector, bind it to `skk-kakutei'. (skk-mode-invoke): No need to check version number of XEmacs. 2001-09-13 Tetsuo Tsukamoto * SKK-MK: Re-indent. * skk.el (skk-search-jisyo-buf): New function. (skk-search-jisyo-file): Call it. (skk-select-words-from-list): New function. (skk-search-jisyo-file-1): Rename to ... (skk-search-jisyo): it. * skk-dic.el: New file. * skk-vars.el (skk-search-prog-list): Add `skk-search-small-dic'. 2001-09-12 Tetsuo Tsukamoto * etc/{NICOLA-SKK.tut, SKK.tut, SKK.tut.E}: Do not show `skk-today'. * skk-num.el (skk-num-get-kanji): Rename to ... (skk-num-get-suuji): it. (skk-num-jisx0208-latin, skk-num-type2-kanji, skk-num-shogi): Use it. (skk-num-int-p): New function. (skk-num-type2-kanji, skk-num-type3-kanji, skk-num-type5-kanji, skk-num-shogi): Use it. * skk-tut.el (skktut-init-variables-alist): Add `skk-kakutei-key' to `skk-rom-kana-base-rule-list'. (skktut-j-mode-map): Do not use `substitute-key-definition'. (skktut-setup-jisyo-buffer, skktut-end-tutorial): Do not use `concat'. * skk-vars.el (skk-check-okurigana-on-touroku, skk-rom-kana-base-rule-list, skk-rom-kana-rule-list, skk-rule-tree, skk-num-alist-type3, skk-num-alist-type5): Doc string update. (skk-quote-char-alist): New variable. * skk-macs.el (skk-quote-char-1): New function. * skk.el (skk-quote-char, skk-quote-semicolon): Call it. * skk-xemacs.el: Use #' for `function'. 2001-09-11 Tetsuo Tsukamoto * skk-dcomp.el (skk-dcomp-marked-p): New function. Each function should call it for checking if the word has been completed or not. (skk-kana-input, skk-kakutei, keyboard-quit, skk-comp): `ad-do-it' when skk-dcomp is not active. * skk-develop.el (lisp-font-lock-keywords-2): Highlight `skk-defadvice'. * skk-e21.el, skk-xemacs.el: Add `skk-submit-bug-report' to the popup menu. * skk-num.el (skk-num-type3-kanji-1, skk-num-type5-kanji): Abolish. (skk-num-to-kanji): New function. (skk-num-type3-kanji, skk-num-type5-kanji): Call it. (skk-num-get-kanji): New function. * skk-vars.el (skk-num-alist-type3): New variable. (skk-num-alist-type5): Add "$BNm(B". * READMEs/NEWS: Update. * etc/Emacs.ad: Add `skk-submit-bug-report'. * SKK-MK: Make Emacs 18 or older exit before loading tinyinstall.el. * skk.el (skk-check-size-and-do-save-jisyo): Call `princ' just once. (skk-make-temp-jisyo): If function `temp-directory' exists, call it. * tinyinstall.el: Remove codes for Emacs 18. 2001-09-10 NAKAJIMA Mikio * READMEs/CVS_digest (cvs $B$NF~ * *: Remove codes for Emacs 18. * skk-e18.el, skk-is-n.el: No longer in repository. * experimental/skk-dos.el: Ditto. * patch/e18: Ditto. * doc/skk.texi (SKK$B$NNr;K(B): New chapter. * skk.el (skk-kakutei): Always return nil. 2001-09-08 Tetsuo Tsukamoto * READMEs/NEWS: Update. * skk-dcomp.el (skk-dcomp-cleanup-buffer): Check if any completion should exist. 2001-09-07 Tetsuo Tsukamoto * skk-e18.el: Load skk-vars.el before skk-macs.el. * skk-jisx0201.el (skk-jisx0201-rule-list): Remove unnecessary rules. (skk-jisx0201-mode-on): Make local variable `skk-rule-tree'. (skk-kanagaki-toggle-katakana): Kill local variable `skk-rule-tree'. Toggle hankaku kana <-> hiragana. (skk-mode, skk-latin-mode, skk-jisx0208-latin-mode, skk-abbrev-mode): Kill local variable `skk-rule-tree'. Now these are before-advised. (skk-insert): Make sure kana prefix be clean. (skk-jisx0201-zenkaku-region): New function. * skk-macs.el (skk-mode-off, skk-j-mode-on, skk-latin-mode, skk-jisx0208-latin-mode, skk-abbrev-mode): Set `skk-jisx0201-mode' nil. 2001-09-06 Tetsuo Tsukamoto * skk-macs.el (skk-j-mode-on): Set cursor color both on FSF Emacs and XEmacs. * skk-e21.el (skk-e21-modeline-menu-items): Don't set cursor color. * skk-xemacs.el (skk-xemacs-modeline-menu-items): Ditto. * skk-jisx0201.el: Don't set the global value of a variable at local eval. (skk-jisx0201-insert, skk-jisx0201-kana-input, skk-jisx0201-set-henkan-point, skk-jisx0201-set-henkan-point-subr): Abolish. (skk-jisx0201-mode-map): Use `skk-j-mode-map' instead. (skk-jisx0201-orig-rule-tree): New variable. (skk-set-okurigana, skk-insert): Advise to do OKURI-ARI conversion. * skk-vars.el (skk-jisx0201-rule-tree, skk-jisx0201-current-rule-tree, jisx0201-mode-map): Abolish. (skk-jisx0201-orig-rule-tree): New variable. * skk.el (skk-emulate-original-map): Do emulation also in skk-jisx0201-mode. 2001-09-05 Tetsuo Tsukamoto * skk-isearch.el (isearch-repeat): Don't show `skk-isearch-whitespace-regexp' in regexp i-search. * skk.el (skk-j-mode-map): Don't use `substitute-key-definition'. Just get what are needed. (skk-henkan-in-minibuff): Bind `minibuffer-max-depth' to nil. 2001-09-04 Tetsuo Tsukamoto * skk-num.el (skk-num-type3-kanji-1, skk-num-type5-kanji-1): Return "" for "0". 2001-09-03 NAKAJIMA Mikio * skk-lookup.el: Require lookup after loading lookup.el and only when `lookup-use-bitmap' is non-nil. 2001-09-01 Tetsuo Tsukamoto * skk.el (skk-define-menu-bar-map): Fix menu commands. 2001-09-01 Tetsuo Tsukamoto * skk-e21.el (skk-e21-prepare-modeline-properties): Do nothing on tty. * skk-macs.el (skk-mode-string-to-indicator): Ditto. * skk.el (skk-make-indicator-alist-1): Ditto. 2001-09-01 YOSHIZAWA Masahiro * skk-e21.el (skk-e21-modeline-property): Fix for Emacs-21.0.105. 2001-09-01 Tetsuo Tsukamoto * etc/Emacs.ad: Add items for popup menu. * skk-e21.el: Popup menu improvements. (skk-e21-modeline-menu): Always use a new hash table so that key comparison should always fail. * skk-xemacs.el (skk-xemacs-find-func-keys): Show "C-j" if the key description is "LFD". 2001-08-31 Tetsuo Tsukamoto * *: Re-indent. * ChangeLog.1, ChangeLog.2, ChangeLog.2.daredevil: New files. * ChangeLog.daredevil: No longer here. * skk-dcomp.el (keyboard-quit@around@skk-dcomp-ad): Make sure `skk-dcomp-start-point' and `skk-dcomp-end-point' are markers. * skk-e21.el (skk-e21-property-alist): New variable. (skk-e21-prepare-modeline-properties): New function. * skk-macs.el (skk-mode-string-to-indicator): Refer to `skk-e21-property-alist'. * skk.el (skk-make-indicator-alist): Call `skk-e21-prepare-modeline-properties'. (skk-make-indicator-alist-1): Refer to `skk-e21-property-alist'. 2001-08-30 Tetsuo Tsukamoto * install-info.el (install-info-delete-entry): Regexp fix. * skk-macs.el (skk-j-mode-on): Call `set-buffer-local-cursor-color' under FSF Emacs. * skk-tut.el (skktut-setup-jisyo-buffer): Add "today" entry. * etc/NICOLA-SKK.tut: Modify for the latest version of NICOLA-DDSKK. 2001-08-27 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-buffer): Call `other-window' if no window for the minibuffer origin is found. 2001-08-26 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-show-1): Call `skk-annotation-show-buffer' in minibuffer. (skk-annotation-show-buffer): Switch to another window when the current window is the minibuffer window. Never signal quit. * skk-macs.el (skk-event-key, skk-key-binding-member): New functions. * skk.el (skk-henkan-show-candidates): Use them. 2001-08-25 Tetsuo Tsukamoto * SKK-MK (SKK-MK-collect-autoload-functions): Don't look at a newline. * skk.el (skk-henkan-show-candidates): Treat a key event for `skk-nicola-self-insert-rshift' as space. 2001-08-18 Tetsuo Tsukamoto * SKK-MK (SKK-MK-server-installed-p): Check for config files of xinetd. 2001-08-09 Tetsuo Tsukamoto * skk-macs.el (skk-quote-semicolon): Quote all problematic characters. 2001-07-31 NAKAJIMA Mikio * tut-code/skk-mkmgk.el (skk-make-mazegaki-dic-region): Add more doc string. (skk-mkmgk-filter): Bug fixed. (skk-mkmgk-binary-search): Ditto. 2001-07-30 NAKAJIMA Mikio * tut-code/skk-mkmgk.el (skk-make-mazegaki-dic): Bug fixed. (skk-make-mazegaki-dic-region): Erase OUTBUF before working. (skk-make-mazegaki-dic-1): Do not use `format'. Bug fixed. (skk-mkmgk-filter): Do not put out string that contains any katakana or hiragana. 2001-07-29 NAKAJIMA Mikio * tut-code/skk-mkmgk.el (skk-make-mazegaki-dic-1): Created new optional arg REFERENCE. (skk-make-mazegaki-dic): Use `unwind-protect' to secure kill working buffer. (skk-make-mazegaki-dic-region): Ditto. Not to pop up working buffer when no Mazegaki entries are there. Abolish optional arg NOMSG and created new optional arg REFERENCE. (skk-mkmgk-filter): New optional arg ONECHARACTER. Delete "" to avoid SKK-JISYO.L bug. (skk-mkmgk-binary-search): Use `skk-mkmgk-filter' with optional arg ONECHARACTER. 2001-07-28 NAKAJIMA Mikio * tut-code/skk-mkmgk.el: New file. (skk-mkmgk-filter): New function. (skk-make-mazegaki-dic-1): Use `skk-mkmgk-filter'. (skk-mkmgk-region-limit): New user variable. (skk-mkmgk-filter): Arrange conditions order. (skk-mkmgk-binary-search): New function. (skk-make-mazegaki-dic-1): Use `skk-mkmgk-binary-search' instead of renear search using `re-search-forward'. 2001-07-23 NAKAJIMA Mikio * READMEs/README.Mac: Updated. 2001-07-22 NAKAJIMA Mikio * doc/skk.texi (Q.5-2 abbrev $B%b!<%I$G$b$C$H1QC18l$rMxMQ$7$?JQ49$,(B $B$G$-$^$;$s$+(B?): Typo fixed. (Q.1-1 $B:G?7$N%P!<%8%g%s$O(B?): Sync up with skk/main/READMEs/FAQ.txt. (Q.1-3 SKK $B$O$I$N%P!<%8%g%s$N(B Emacs $B$G;H$($^$9$+(B?): Ditto. (Q.1-6 $B3+H/HG$O2?8N!"(BDaredevil $B$H8@$&$N$G$9$+(B?): Ditto. (Q.1-7 APEL $B$K0MB8$;$:$K(B SKK $B$@$1$G:Q$`$h$&$K3+H/$7$F$b$i$($^$;$s(B $B$+(B?): Ditto. (Q.1-6 $B3+H/HG$O2?8N!"(BDaredevil $B$H8@$&$N$G$9$+(B?): Change section name to `Daredevil SKK $B$C$F(B SKK $B$H$O0c$&$N$G$9$+(B?' and move to Q.1-2. (Q.1-4 SKK $B$O$I$N%P!<%8%g%s$N(B Emacs $B$G;H$($^$9$+(B?): Change section name to `Q.1-4 DDSKK $B$O$I$N%P!<%8%g%s$N(B Emacs $B$G;H$($^$9$+(B?'. (Q.1-5 SKK $B$O$I$s$J%*%Z%l!<%F%#%s%0%7%9%F%`$G;H$($^$9$+(B?): Change section name to `Q.1-5 DDSKK $B$O$I$s$J%*%Z%l!<%F%#%s%0%7%9%F%`$G;H(B $B$($^$9$+(B?' and sync up with skk/main/READMEs/FAQ.txt. (Q.2-6 Emacs 20 $B$K(B SKK 9.6 $B$,%$%s%9%H!<%k$G$-$^$;$s!#(B): Sync up with skk/main/READMEs/FAQ.txt. * READMEs/FAQ.txt ([Q.] $B:G?7$N%P!<%8%g%s$O(B?): Updated. ([Q.] SKK $B$O$I$N%P!<%8%g%s$N(B Emacs $B$G;H$($^$9$+(B?): Ditto. ([Q.] $B:G?7HG$N(B SKK $B$O$I$3$+$iF~$,$D$$$F$$(B $B$k$N$G$9$+(B?): Ditto. ($B3+H/HG$N(B SKK $B$O2?8N!"(B`Daredevil SKK' $B$J$I$H8@$&L>$,$D$$$F$$$k$N$G$9$+(B?): Change section name to `Daredevil SKK $B$C$F(B SKK $B$H$O0c$&$N$G$9$+(B?'. ([Q.] SKK $B$O$I$s$J%*%Z%l!<%F%#%s%0%7%9%F%`$G;H$($^$9$+(B?): Change section name to `[Q.] DDSKK $B$O$I$s$J%*%Z%l!<%F%#%s%0%7%9%F%`$G;H$((B $B$^$9$+(B?' ([Q.] Emacs 20 $B$K(B SKK 9.6 $B$,%$%s%9%H!<%k$G$-$^$;$s!#(B): Change URL. ([Q.] SKK $B$O$I$s$J%*%Z%l!<%F%#%s%0%7%9%F%`$G;H$($^$9$+(B?): Change section name to `[Q.] DDSKK $B$O$I$s$J%*%Z%l!<%F%#%s%0%7%9%F%`$G;H$((B $B$^$9$+(B?' and update sentences. * READMEs/PROPOSAL (Emacs $B$N%P!<%8%g%s4V:90[$N5[<}$O(B?): Updated. * READMEs/INSTALL (APEL): Updated. * skk-vars.el (skk-use-face): Set t when emacs-major-version is more than 21. (skk-tut-use-face): Set value of `skk-use-face'. 2001-07-20 NAKAJIMA Mikio * READMEs/PROPOSAL ($BJ,3d$7$?%U%!%$%k$KI,?\$N5-=R(B): Updated. Change section name to `skk.el $B0J30$N%U%!%$%k$KI,?\$N5-=R(B'. (SKK 10 $B$,F0:n$9$k(B Emacs $B$N%P!<%8%g%s$O(B?): Change section name to `Daredevil skk 11 $B$,F0:n$9$k(B Emacs $B$N%P!<%8%g%s$O(B?'. (Emacs $B$N%P!<%8%g%s4V:90[$N5[<}$O(B?): Updated. * READMEs/README: Updated. * skk-vars.el (skk-rom-kana-base-rule-list): Add an element whose car is skk-kakutei-key. * tut-code/skk-tutcdef.el: Not to define key even if running Emacs is XEmacs. (skk-rom-kana-base-rule-list): Add an element whose car is "\C-@". * tut-code/skk-tutcode.el (skk-tutcode-use-touch16+): Add `;;;###autoload' cookie. * skk.el (skk-setup-keymap): Not to bind `skk-kakutei-key' for `skk-j-mode-map'. (skk-compile-rule-list): Bind key to `skk-insert' for `skk-j-mode-map' when the rule list key is not bound to the function. (skk-create-file): Set file modes by `set-file-modes' when new optional argument MODES is specified. (skk-save-jisyo-1): Renamed to `skk-do-save-jisyo-as'. (skk-init-shared-jisyo): New function. (skk-jisyo-is-shared-p, skk-update-shared-jisyo): Ditto. (skk-save-jisyo-original): Use `skk-init-shared-jisyo', `skk-jisyo-is-shared-p' and `skk-update-shared-jisyo'. (skk-compute-henkan-lists): Remove skk-kanagaki specific transactions. (skk-make-temp-jisyo): Use `static-if' instead of `if'. Use `user-login-name' for defining prefix (skk-make-temp-file): Merged it into `skk-make-temp-jisyo'. * tut-code/README.tut: New file. * READMEs/README.Mac: New file (its original file is written by Yuh Ohmura ). * READMEs/FAQ.txt ([Q.] SKK $B$O$I$s$J%*%Z%l!<%F%#%s%0%7%9%F%`$G;H$((B $B$^$9$+(B?): Updated. ([Q.] APEL $B$K0MB8$;$:$K(B SKK $B$@$1$G:Q$`$h$&$K3+H/$7$F$b$i$($^$;$s$+(B?): Updated. 2001-07-10 NAKAJIMA Mikio * experimental/skk-hint.el: Require skk-macs and skk-vars instead of skk. (skk-hint-member, skk-hint-limit): Use `skk-str-length' instead of `length' and `skk-str-ref' instead of `aref' respectively. * skk-vars.el (skk-hint-start-char, skk-hint-henkan-hint) (skk-hint-start-point, skk-hint-end-point, skk-hint-okuri-char) (skk-hint-state, skk-hint-inhibit-kakutei): Move to experimental/skk-hint.el. 2001-07-06 NAKAJIMA Mikio * SKK-MK (SKK_MODULES): Add skk-hint. * skk-tut.el (skk-tutorial-quit, skktut-setup-answer-buffer) (skktut-setup-jisyo-buffer, skktut-setup-question-buffer): * skk-jisx0201.el (skk-jisx0201-string-conversion): Use `with-temp-buffer' instead of `save-excursion'. * skk.el (skk-setup-modeline): Use `with-current-buffer' instead of `save-excursion'. Do not use `save-current-buffer'. (skk-emulate-original-map): Use `with-current-buffer' instead of `save-excursion'. (skk-henkan-show-candidate-subr): Ditto. * experimental/skk-w3m.el (skk-w3m-search-by-emcas-w3m): Do not use `save-excursion'. * skk-lookup.el (skk-lookup-search): Ditto. 2001-07-05 Yoshiki Hayashi * experimental/skk-hint.el: New file. * skk-vars.el (skk-hint-start-char): New user variable. (skk-hint-henkan-hint): New internal variable. (skk-hint-start-point, skk-hint-end-point, skk-hint-okuri-char) (skk-hint-state, skk-hint-inhibit-kakutei): Ditto. 2001-07-02 NAKAJIMA Mikio * skk.el (skk-save-jisyo-original): Call `unlock-buffer' in JISYO-BUFFER. 2001-06-17 Takao KAWAMURA * experimental/skk-w3m.el (skk-w3m-get-candidates-from-quote-yahoo): Modified the regex for searching a candidate. 2001-06-16 NAKAJIMA Mikio * skk-gadget.el (skk-today): Call `skk-mode' if `skk-mode' is nil. (skk-current-date-1): New optional argument `SPECIFIED-TIME'. Remove space at the top of DATE. * skk-jisx0201.el (skk-hiragana-to-jisx0201-region) Shut byte-compiler up. (skk-katakana-to-jisx0201-region): Ditto. 2001-06-15 NAKAJIMA Mikio * experimental/skk-w3m.el (skk-w3m-get-candidates-from-goo-daijirin): Fixed regexp. * skk-tut.el (skktut-adviced-alist): Add `(skk-create-file . around)' and `(skk-save-jisyo-original . around)' cells to the alist. (skk-create-file@around@skktut-ad): New dummy advice. (skk-save-jisyo-original@around@skktut-ad): Ditto. * skk.el (skk-mode): Remove skk-tut.el related code. (skk-save-jisyo-original): Ditto. (skk-make-new-jisyo): Ditto. (skk-define-menu-bar-map): Change ENABLE `(or (not (boundp 'skktut-problem-count)) (eq skktut-problem-count 0))' to `skk-use-kakasi'. 2001-06-05 NAKAJIMA Mikio * skk.el (skk-update-jisyo-original): Remove skk-tut.el related code. * skk-tut.el (skktut-init-variables-alist): Add cons cell `(skk-share-private-jisyo . nil)'. * experimental/skk-w3m.el (skk-w3m-last-process-point): Removed. (skk-w3m-get-candidates-from-goo-daijirin): Not to refer to `skk-w3m-last-process-point'. (skk-w3m-init-w3m-backend): Ditto. (skk-w3m-run-command): Ditto. (skk-w3m-search-by-backend): Not to check whether POS is markerp or not. (skk-w3m-search): Do not call `skk-w3m-cache' when NO-CACHE is non-nil. (skk-w3m-search-engine-alist): Set nil to 3th of "quote-yahoo" header list. 2001-06-04 NAKAJIMA Mikio * tut-code/skk-tutcode.el: Remove unnecessary spaces between parens. * tut-code/skk-tutcdef.el: Ditto. 2001-06-03 NAKAJIMA Mikio * experimental/skk-w3m.el (skk-w3m-search-engine-alist): Add new entry "quote-yahoo". Optional new element 6th. Update doc. (skk-w3m-quote-yahoo-currency-symbol-alist): New user variable. (skk-w3m-currency-from, skk-w3m-currency-to): New internal variables. (skk-w3m-search-by-emcas-w3m, skk-w3m-search-by-backend): Funcall QUERY-STRING-FUNCTION when it is non-nil. (skk-w3m-get-candidates-from-quote-yahoo): New function. (skk-w3m-make-query-quote-yahoo, skk-w3m-query-quote-yahoo): Ditto. 2001-06-01 NAKAJIMA Mikio * skk-gadget.el (skk-gadget-units-conversion): New function. * skk-vars.el (skk-units-alist): New user variable. 2001-05-31 NAKAJIMA Mikio * experimental/skk-w3m.el (skk-w3m-search-escape-query-string): Bug fixed. * skk-gadget.el (skk-current-date): Add doc string. (skk-current-date-1): Ditto. (skk-default-current-date): Ditto. * skk-num.el (skk-num-exp): Add ;;;###autoload cookie. * skk-gadget.el (skk-current-date): New optional argument PP-FUNCTION and FORMAT. (skk-clock): Use new `skk-current-date' (specifying new arg PP-FUNCTION and FORMAT). (skk-today): Ditto. Insert "today" midasi and convert it. (skk-current-date-1): New function. (skk-default-current-date): Ditto. * skk-vars.el (skk-month-alist): Declare with `defcustom' instead of `defconst'. (skk-day-of-week-alist): New user variable. (skk-default-current-date-function): Ditto. (skk-week-alist): Removed. (skk-current-date-function): Removed. (skk-GYMDWHMS-list): Removed. * skk-viper.el (sentence-end): Add "$B!%(B". * skk-auto.el: Remove unnecessary spaces between parens. 2001-05-30 NAKAJIMA Mikio * skk-gadget.el (skk-ad-to-gengo-1, skk-gengo-to-ad-1): New functions. (skk-gengo-to-ad): Use `skk-gengo-to-ad-1'. New optional argument HEAD. (skk-ad-to-gengo): Use `skk-ad-to-gengo-1'. (skk-gengo-to-ad-1): Modified error message slightly. * skk-num.el (skk-num): Check C is a number representing character or not. * skk-dcomp.el (skk-dcomp-after-delete-backward-char): Do markerp check for `skk-dcomp-start-point' and `skk-dcomp-end-point'. * skk-vars.el (skk-gengo-alist): New user variable. (skk-look-termination-character): Doc shortened and simplified. (skk-henkan-face-default): Doc modified. 2001-05-28 NAKAJIMA Mikio * skk-vars.el (skk-current-date-function): New user variable. (skk-GYMDWHMS-list): Add symbol to and remove const t from its type. * skk-gadget.el (skk-current-date): Funcall `skk-current-date-function'. * skk-num.el (skk-num): Ignore white spaces. 2001-05-26 NAKAJIMA Mikio * experimental/skk-w3m.el (skk-w3m-run-command): Do not use catch and throw. * skk-vars.el (skk-GYMDWHMS-list): Add `*' to top of the document. 2001-05-25 NAKAJIMA Mikio * experimental/skk-w3m.el: Do not require w3m and w3m-search on top level. (skk-w3m-search-engine-alist): Set nil to 3th element of "goo-exceed-waei", "goo-exceed-eiwa" and "goo-daily-shingo" since skk-w3m-get-candidates-from-* function has not implemented yet. (skk-w3m-search): Search `skk-w3m-cache' first. Use `skk-w3m-search-by-backend', `skk-w3m-search-by-emcas-w3m' and `skk-w3m-cache'. (skk-w3m-use-w3m-backend): New user variable. (skk-w3m-command): Ditto. (skk-w3m-command-args): Ditto. (skk-w3m-backend-command-prompt): Ditto. (skk-w3m-default-process-coding-system): Ditto. (skk-w3m-kill-command): Ditto. (skk-w3m-no-wait): Ditto. (skk-w3m-process): New internal variable. (skk-w3m-last-process-point): Ditto. (skk-w3m-cache): Ditto. (skk-w3m-process-alive): New inline function. (skk-w3m-cache): New function. (skk-w3m-search-by-emcas-w3m): Ditto. (skk-w3m-search-by-backend): Ditto. (skk-w3m-set-process-coding-system): Ditto. (skk-w3m-init-w3m-backend): Ditto. (skk-w3m-kill): Ditto. (skk-w3m-run-command): Ditto. (skk-w3m-url-encode-string): Ditto. (skk-w3m-search-escape-query-string): Ditto. (skk-w3m-get-candidates-from-goo-daijirin): Modified in order to search w3m halfdump buffer. 2001-05-20 Tsuyoshi AKIHO * READMEs/Contributors: Update akiho's mail-address. * doc/skk.texi (SKK Ring Server Openlab $B%a!<%j%s%0%j%9%H(B): Update for ml program change to ezmlm. (SKK$B$N:n * skk-vars.el (skk-henkan-face-default): Use more simple definition. * skk-xemacs.el (before-init-hook): Use better key definition. 2001-05-19 Tetsuo Tsukamoto * skk-vars.el (skk-henkan-face): Default to skk-henkan-face-default. (skk-henkan-face-default): New face. 2001-05-18 YAMAUCHI Hitoshi * skk-vars.el (skk-GYMDWHMS-list): New user variable. * skk-gadget.el (skk-current-date): Use `skk-GYMDWHMS-list'. 2001-05-13 NAKAJIMA Mikio * experimental/skk-w3m.el (skk-w3m-working-buffer): Removed. (skk-w3m-search): Use `w3m-w3m-retrieve' and `w3m-search-escape-query-string' instead of `w3m'. Do not use `save-window-excursion'. Set w3m-work-buffer-name to " *skk-w3m-work*" temporarily to work around. Refer to skk-w3m-search-engine-alist directly. Do not bind `w3m-display-inline-image' to nil. (skk-w3m-get-candidates-from-goo-daijirin): Renewed to work in skk-w3m working buffer. (skk-w3m-get-candidates-from-goo-exceed-eiwa): Change to dummy function temporarily. (skk-w3m-get-candidates-from-goo-exceed-eiwa-1): Removed. 2001-04-29 NAKAJIMA Mikio * experimental/skk-w3m.el (skk-w3m-get-candidates): Removed. (skk-w3m-get-candidates-from-goo-daijirin): Do not use `skk-w3m-get-candidates'. Filter out "$B!R(B" and "$B!S(B". 2001-04-28 NAKAJIMA Mikio * experimental/skk-w3m.el (skk-w3m-search): Bind `w3m-async-exec' to nil temporarily. (skk-w3m-working-buffer): New constant. (skk-w3m-search): Set to `skk-w3m-working-buffer' and call `w3m-mode'. 2001-04-21 Tetsuo Tsukamoto * skk.el (skk-kana-input): Call `skk-emulate-original-map' when `this-command' is `skk-insert'. 2001-04-17 NAKAJIMA Mikio * experimental/skk-w3m.el: Require w3m. (skk-w3m-get-candidates-from-goo-exceed-eiwa-1): New function. (skk-w3m-get-candidates-from-goo-exceed-eiwa): Use `skk-w3m-get-candidates-from-goo-exceed-eiwa-1'. Call `w3m-view-this-url' when regexp "[0-9]+ $B?75,$G3+$/(B" is found in a *w3m* buffer. 2001-04-14 NAKAJIMA Mikio * experimental/skk-w3m.el (skk-w3m-search-engine-alist): Fix 4th of "goo-exceed-eiwa". (skk-w3m-filter-string): New function. (skk-w3m-get-candidates): Add optional argument split. Wrap around by save-match-data. (skk-w3m-get-candidates-from-goo-daijirin): Use optional argument split of `skk-w3m-get-candidates'. (skk-w3m-get-candidates-from-goo-exceed-eiwa): New function. Filter "([, a-z]+)" out to remove a string like a `(with, on, in)'. Bug fixed. (skk-w3m-working-buffer): Removed. (skk-w3m-search): Do not set to `skk-w3m-working-buffer'. (skk-w3m-get-candidates-from-goo-exceed-eiwa): Bug fixed. 2001-04-13 NAKAJIMA Mikio * experimental/skk-w3m.el (skk-w3m-search): Temporarily bind w3m-display-inline-image to nil. Do not do actual search when one of skk-num-list, skk-num-recompute-key or SEX is non-nil. Process HENKAN-KEY using a function of 5th element. (skk-w3m-search-engine-alist): Add doc string. Create new 4th and 5th element. (skk-w3m-get-candidates-from-goo-daijirin): Fix regexp. * skk-lookup.el (skk-lookup-search): Do not check if `skk-num-list' is bound or not (it is declared in skk-vars.el). 2001-04-12 NAKAJIMA Mikio * experimental/skk-w3m.el: New file. (skk-w3m-search): Wrap around by condition-case. * SKK-MK (SKK_MODULES): Add `skk-w3m'. 2001-04-10 NAKAJIMA Mikio * skk-lookup.el: Do not require bitmap when SKK-EMACS-TYPE is `mule5'. 2001-03-30 NAKAJIMA Mikio * doc/skk.texi ($B1QC18l$r$"$$$^$$$KJQ49$7$F * skk-kcode.el (skk-display-code): added SJIS encoding. 2001-03-28 NAKAJIMA Mikio * doc/skk.texi (SKK$B$N:n * skk-e21.el: Sync with skk-xemacs.el. (skk-e21-modeline-menu-items): Add new menu items - "Hiragana", "Katakana", "Hankaku alphabet" and "Zenkaku alphabet". (skk-e21-modeline-menu): Find keys for menu items above. (skk-e21-find-func-keys): New funcion. 2001-03-22 Masatake YAMATO * skk-xemacs.el (skk-xemacs-find-func-keys): Use sorted-key-descriptions instead of key-description. 2001-03-21 Masatake YAMATO * skk-xemacs.el (skk-xemacs-modeline-menu-items): Added :keys slot to "Hiragana" menu item vector. (skk-xemacs-modeline-menu): Change the value of :keys slot of skk-xemacs-modeline-menu-items according to the input mode. 2001-03-21 Tsuyoshi AKIHO * doc/skk.texi ($B%f!<%6!<%a!<%j%s%0%j%9%H(B): Removed. 2001-03-20 Tetsuo Tsukamoto * skk-xemacs.el (skk-xemacs-modeline-menu-items): Add new menu items - "Hiragana", "Katakana", "Hankaku alphabet" and "Zenkaku alphabet". (skk-xemacs-modeline-menu): Find keys for "Katakana". (skk-xemacs-find-func-keys); New function. From Masatake YAMATO 2001-03-12 Tetsuo Tsukamoto * doc/skk.texi: Typo. * skk.el (skk-kana-input): Don't call `skk-emulate-original-map' when `skk-henkan-on' is t. 2001-03-10 Tetsuo Tsukamoto * skk-comp.el (skk-comp-do): Don't signal error when `skk-comp-key' is null. (skk-comp-do-1): Call `skk-comp-by-history' when `skk-comp-key' is null. (skk-comp-by-history): New function. * skk-kcode.el (skk-input-by-code-or-menu): Call `skk-update-kakutei-history' when `skk-kakutei-history' is positive. * skk-vars.el (skk-kakutei-history-limit): New customizable variable. (skk-kakutei-history, skk-comp-kakutei-midasi-list): New variables. * skk.el (skk-kakutei, skk-update-jisyo): Call `skk-update-kakutei-history' when `skk-kakutei-history' is positive. (skk-update-kakutei-history): New function. 2001-03-04 NAKAJIMA Mikio * skk-vars.el (skk-server-host): Set "localhost" to its default value if "SKKSERVER" environment value is not found. (skk-server-portnum): Set 1178 to its default value on MS-DOS variants. 2001-02-14 NAKAJIMA Mikio * skk.el (skk-toggle-characters): Move point forward not until the end of buffer but until SKK-HENKAN-END-POINT to determine a character type. Set SKK-KATAKANA value (not change midasi strings) when SKK-HENKAN-ACTIVE is non-nil. Update doc string. 2001-02-04 NAKAJIMA Mikio * skk-vars.el (skk-lookup-default-option-list): Doc fixed. (skk-lookup-option-alist): Ditto. * skk-vars.el (skk-lookup-option-alist): Update doc string. (skk-lookup-default-option-list): Ditto. * skk-lookup.el (skk-lookup-process-heading): Handle multipule matched string. Set HEADING to CANDIDATES-LIST as its initial value when PICKUP is null. * skk-vars.el (skk-lookup-option-alist): Add regexp symbol '$' for each regexp of "KOJIEN" and "KOUJIEN". As to "KOUJIEN" and "KOJIEN", use number list for `match-string' argument in order to pick up a pattern like `$B%"%j%9%H%F%l%9!>$7$e$.!Z!=%V%C%/!ZEE;R!=![(B'. 2001-02-03 NAKAJIMA Mikio * skk-dcomp.el: Update install notes. * skk-annotation.el: Ditto. * skk-vars.el (skk-lookup-option-alist): Change 4th and 7th value of "KOUJIEN" and "KOJIEN" to pick up composed word properly. * skk-lookup.el (skk-lookup-process-heading): Eval MATCH and set that value to MATCH itself. 2001-01-27 NAKAJIMA Mikio * skk-dcomp.el (skk-dcomp-cleanup-buffer): New function. (skk-henkan@before@skk-dcomp-ad): Removed. (skk-start-henkan@before@skk-dcomp-ad): Revive. Use `skk-dcomp-cleanup-buffer'. (skk-process-prefix-or-suffix@before@skk-dcomp-ad): New advice. 2001-01-25 NAKAJIMA Mikio * skk-dcomp.el (skk-start-henkan@before@skk-dcomp-ad): Change its advice for `skk-henkan@before@skk-dcomp-ad' (Thanks for Hiroya Murata 's patch of Message-ID: ) 2001-01-24 Yuh Ohmura *make.bat : delete. *makeit.bat : rename from make.bat and sync with cmail *make1.bat : sync with cmail 2001-01-16 Yuh Ohmura * make1.bat: rename from make.bat and delete enviroment definition. * make.bat: new configuration get from cmail's make.bat. 2001-01-10 Tetsuo Tsukamoto * skk.el (skk-toggle-characters): Do not signal error when point reaches eob. (skk-search-katakana): New function. 2001-01-07 Tetsuo Tsukamoto * install-info.el (install-info-delete-entry): Rename from `install-info-delete-groups'. (install-info-1): Call it when DELETE is non-nil. 2001-01-02 NAKAJIMA Mikio * skk-version.el (skk-version): Change version to 11.5 and Codename to `Hotarugaike' respectively. * Makefile (VERSION): Change to 11.5. 2001-01-02 NAKAJIMA Mikio * Daredevil SKK 11.4 released. * Makefile (VERSION): Change to 11.4. * READMEs/Codename ($BJQ998D=j(B): Updated. 2000-12-30 NAKAJIMA Mikio * READMEs/CVS_digest: Sync up with skk/web/cvs-ja.html. * SKK-MK: Set nil to of load NOSUFFIX argument in order to load SKK-CFG.el instead of SKK-CFG when SKK-CFG.el exists. 2000-12-28 NAKAJIMA Mikio * experimental/skk-exsearch.el (setup-synchronous-engine): Check if `synchronous-search-engine' object has a `program' slot value. 2000-12-27 NAKAJIMA Mikio * dic/README: New file. 2000-12-22 Tetsuo Tsukamoto * skk-e18.el (skk-e18-pre-command): Do not set char. (get-minibuffer): Use `with-current-buffer'. 2000-12-21 Tetsuo Tsukamoto * skk-e18.el: No longer work around problems solved in APEL 10.2 or earlier. (skk-e18-adjust-local-variables-in-minibuffer): New function. * skk-tut.el (skk-tutorial): No longer work aronud problems under Emacs 18. 2000-12-21 NAKAJIMA Mikio * skk-e18.el (exit-minibuffer@around@skk-e18-ad): Revive. * skk.el (exit-minibuffer@around@skk-ad): Remove nemacs and mule1 part of advices. Defined for non-`nemacs' and non-`mule1' Emacsen using static-unless. 2000-12-20 Tetsuo Tsukamoto * skk-e18.el: Call `require' at toplevel for the feature `advice'. From Shuhei KOBAYASHI . (get-minibuffer, safe-run-hooks): New functions. (read-from-minibuffer): Use them. (skk-kana-input): Advise to work around a bug {until debugged}. 2000-12-19 Tetsuo Tsukamoto * skk-e18.el (read-from-minibuffer): Set the minibuffer window's buffer to the new buffer which is to be a next minibuffer. * skk-macs.el (skk-in-minibuffer-p): No longer work around a bug in `read-from-minibuffer' defined in skk-e18.el. 2000-12-18 Tetsuo Tsukamoto * skk-e18.el (read-from-minibuffer): Call `kill-all-local-variables', and store the keymap just after `minibuffer-setup-hook' is called. (skk-insert, skk-previous-candidate): Advise to call `skk-e18-pre-command'. (skk-kakutei): Advise to call `skk-after-point-move'. (skk-e18-pre-command, skk-e18-advise-skk-functions): New function. * skk-macs.el (skk-in-minibuffer-p): Compare buffers instead of windows, but also compare windows under Emacs 18 {perhaps for a bug}. * skk-vars.el (skk-kana-rom-vector): Modify the value so that `skk-okurigana-prefix' returns "t" for "$B$C(B". * skk.el (skk-mode-invoke): Call `skk-e18-advise-skk-functions' under Emacs 18. (skk-henkan-in-minibuff): Changes for Emacs 18. No longer {perhaps} need to give a keymap here. 2000-12-17 NAKAJIMA Mikio * skk.el (exit-minibuffer@around@skk-ad): Define piece of advice for Emacs 18 that was exit-minibuffer@around@skk-e18-ad. (minibuffer-exit-hook): Use ' instead of `function'. (skk-henkan-in-minibuff): Use ' instead of `function' for `minibuffer-setup-hook'. (abort-recursive-edit@around@skk-ad): Use ' instead of `function' for `skk-remove-minibuffer-setup-hook'. (exit-minibuffer@around@skk-ad): Ditto. (abort-recursive-edit@around@skk-ad): Bug fixed. * skk-e18.el (exit-minibuffer@around@skk-e18-ad): Removed. 2000-12-16 NAKAJIMA Mikio * READMEs/CVS_on_Windows: Sync up with web/cvswin-ja.html. * skk-e18.el (read-from-minibuffer@around@skk-e18-ad): Put an advice if apel version is 10.2 or earlier (10.3 will have read-from-minibuffer that call `minibuffer-setup-hook' and `minibuffer-exit-hook'. * skk-dcomp.el (viper-del-backward-char-in-insert@after@skk-dcomp-ad): Call `skk-dcomp-after-delete-backward-char' only when `skk-mode' and `skk-dcomp-activate' are non-nil. (vip-del-backward-char-in-insert@after@skk-dcomp-ad): Ditto. 2000-12-15 NAKAJIMA Mikio * skk-e18.el (skk-latin-mode-map): Do not declare with defconst. (skk-j-mode-map): Ditto. (skk-jisx0208-latin-mode-map): Ditto. (skk-abbrev-mode-map): Ditto. 2000-12-15 Hiroya Murata * skk.el (skk-mode-invoke): Call `skk-setup-auto-paren' before compiling skk-rule-tree. 2000-12-14 Tetsuo Tsukamoto * install-info.el (install-info-1): New function. * skk-server.el (skk-adjust-search-prog-list-for-server-search): Use `setq-default' instead of `setq'. * skk-tut.el (skk-tutorial): Work for Emacs 18. 2000-12-14 Mikio Nakajima * skk-viper.el (skk-viper-init-function): New function. (skk-mode-hook): Add `skk-viper-init-function' to this hook. (skk-cursor-current-color@around@skk-viper-cursor-ad): Use `ad-return-value' to set `viper-insert-state-cursor-color'. * skk-cursor.el (skk-cursor-init-function): New function. (skk-mode-hook): Add `skk-cursor-init-function' to this hook. (skk-cursor-buffer-local-frame-params-ad-targets): Remove `skk-j-mode' from this variable. * skk.el (skk-mode-once-again): Removed. (skk-require-module): Require skk-cursor first and skk-viper second. (skk-setup-modeline): Use `save-current-buffer'. 2000-12-13 Tetsuo Tsukamoto * skk-macs.el (skk-modify-indicator-alist): New function. (skk-update-modeline): Call it when optional 2nd arg STRING is non-nil. * skk-xemacs.el (skk-xemacs-extent-alist): Add default extent. (skk-xemacs-prepare-modeline-properties): Refer to the symbol values of `skk-cursor-%s-face'. * skk.el (skk-make-indicator-alist): Refer to `skk-xemacs-extent-alist' for the default extent. (skk-make-indicator-alist-1): Under Emacs 21, return the propertized string. 2000-12-13 Mikio Nakajima * experimental/dbm/skk-dbm.el: Require skk-macs and skk-vars instead of skk. Remove unnecessary spaces between parens. * skk-abbrev.el: Remove unnecessary spaces between parens. * experimental/rdbms/skk-rdbms.el: Require skk-macs instead of skk-forword. Remove unnecessary spaces between parens. * tut-code/skk-tutcode.el (skk-tutcode-display-code-1): Declare with defun using `static-cond' instead of `skk-defun-cond'. Recognize jisx0213 charset characters. Recognize skk-emacs-type mule5. * skk-kcode.el (skk-display-code): Recognize jisx0213 charset characters. * skk.el (skk-make-indicator-alist): Bug fixed. * skk-e18.el: Require pces.el. (skk-latin-mode-map): Declare as a constant for dummy purpose. (skk-j-mode-map): Ditto. (skk-jisx0208-latin-mode-map): Ditto. (skk-abbrev-mode-map): Ditto. (insert-file-contents-as-coding-system): Declare with `defun-maybe' instead of `defun' (APEL 10.2 has it already). (auto-fill-function): Declare with `defvar-maybe' instead of `defvar' (APEL 10.2 has it already). * skk.el (skk-e18-self-insert-keys): Move to skk-e18.el (skk-current-local-map): Ditto. (skk-e18-setup): Ditto. * skk-xemacs.el (skk-xemacs-prepare-modeline-properties): Bug fixed. Set `skk-xemacs-modeline-map' value in this function. (skk-xemacs-hiragana-extent): Removed. (skk-xemacs-katakana-extent): Ditto. (skk-xemacs-jisx0208-latin-extent): Ditto. (skk-xemacs-latin-extent): Ditto. (skk-xemacs-jisx0201-extent): Ditto. * skk.el (skk-exit): Rename to `skk-mode-exit'. (skk-invoke): Rename to `skk-mode-invoke'. * skk-xemacs.el: Bug fixed. (skk-xemacs-prepare-modeline-properties): Simplify. 2000-12-12 Mikio Nakajima * skk-jisx0201.el (skk-toggle-katakana): Use new `skk-update-modeline'. (skk-jisx0201-mode-on): Ditto. * tut-code/skk-def.el (skk-kana-rom-vector): Removed. (skk-latin-mode-string): Removed. (skk-hiragana-mode-string): Ditto. (skk-katakana-mode-string): Ditto. (skk-jisx0208-latin-mode-string): Ditto. * tut-code/skk-tutcdef.el (skk-kana-rom-vector): Removed. (skk-latin-mode-string): Comment out. (skk-hiragana-mode-string): Ditto. (skk-katakana-mode-string): Ditto. (skk-jisx0208-latin-mode-string): Ditto. (skk-abbrev-mode-string): Ditto. (skk-auto-insert-paren): Removed. * experimental/tut-code/skk-tutcode.el: Moved to skk-11/tut-code directory. * experimental/tut-code/skk-tutcdef.el: Ditto. * experimental/tut-code/skk-def.el: Ditto. * skk-xemacs.el (skk-xemacs-extent-alist): New internal variable. (skk-xemacs-hiragana-extent): Comment out. (skk-xemacs-katakana-extent): Ditto. (skk-xemacs-jisx0208-latin-extent): Ditto. (skk-xemacs-latin-extent): Ditto. (skk-xemacs-jisx0201-extent): Ditto. (skk-xemacs-prepare-modeline-properties): Refer to `skk-xemacs-extent-alist' to set extent face. Do not set `skk-default-indicator', `skk-latin-mode-indicator', `skk-hiragana-mode-indicator', `skk-katakana-mode-indicator', `skk-jisx0208-latin-mode-indicator', `skk-jisx0201-mode-indicator' and `skk-abbrev-mode-indicator'. * skk-e21.el (skk-e21-prepare-modeline-properties): Comment out. * skk.el (skk-invoke): New function. (skk-exit): Ditto. Use new `skk-update-modeline'. (skk-require-module): New function. (skk-setup-shared-private-jisyo): Ditto. (skk-setup-keymap): Ditto. (skk-make-indicator-alist): Ditto. (skk-make-indicator-alist-1):Ditto. (skk-regularize): Merged into `skk-invoke'. (skk-setup-modeline): Delete null string and symbol `skk-modeline-input-mode' from `mode-line-format' when `skk-status-indicator' is not equal to 'left. Change conditions order (smaller body should be first). (skk-mode): Use new `skk-update-modeline'. Use `skk-exit', `skk-invoke', `skk-require-module' and `skk-setup-keymap'. * vip.el (vip-skk-mode-off): Do not use `skk-mode-string-to-indicator'. * skk-macs.el (skk-mode-string-to-indicator): Comment out. (skk-update-modeline): Change macro to inline function. New optional argument MODE. Call `force-mode-line-update'. (skk-mode-off): Use new `skk-update-modeline'. (skk-j-mode-on): Ditto. (skk-latin-mode-on): Ditto. (skk-jisx0208-latin-mode-on): Ditto. (skk-abbrev-mode-on): Ditto. * skk-vars.el (skk-latin-mode-string): Remove space in the top of its default value. (skk-hiragana-mode-string): Ditto. (skk-katakana-mode-string): Ditto (skk-jisx0208-latin-mode-string): Ditto (skk-abbrev-mode-string): Ditto (skk-status-indicator): Change its default value to 'left. Add symbol to :type. (skk-indicator-alist): New internal variable. (skk-default-indicator): Removed. (skk-latin-mode-indicator): Ditto. (skk-hiragana-mode-indicator): Ditto. (skk-katakana-mode-indicator): Ditto. (skk-jisx0208-latin-mode-indicator): Ditto. (skk-jisx0201-mode-indicator): Ditto. (skk-abbrev-mode-indicator): Ditto. 2000-12-10 Mikio Nakajima * skk-dcomp.el (skk-dcomp): Move to skk-vars.el (skk-dcomp-face): Ditto. (skk-dcomp-activate): Ditto. (skk-dcomp-face-priority): Ditto. (skk-dcomp-keep-completion-keys): Ditto. (skk-dcomp-start-point): Ditto. (skk-dcomp-end-point): Ditto. (skk-dcomp-extent): Ditto. * experimental/skk-annotation.el: Move to top directory. * experimental/skk-dcomp.el: Ditto. 2000-12-10 Takao KAWAMURA * skk-vars.el (skk-okuri-char-alist): Fix typo in the doc-string. 2000-12-08 Mikio Nakajima * skk.el (skk-translate-okuri-char): Removed. * skk-vars.el (skk-kana-rom-vector): Use `defconst' instead of `defcustom' to declare its as an internal constant. Modify doc string. 2000-12-08 Murata Shuuichirou * skk.el (skk-set-okurigana): Use `skk-okurigana-prefix' instead of `skk-translate-okuri-char'. 2000-12-05 Tetsuo Tsukamoto * skk-jisx0201.el (skk-jisx0201-insert): Modify for skk-comp. * skk.el (skk-compute-henkan-lists): Modify okuriganas in blocks when `skk-use-kana-keyboard' and `skk-henkan-okuri-strictly' are both non-nil. (skk-set-henkan-point): When `skk-process-okuri-early' is non-nil, Set `skk-okuri-char' according to `skk-okuri-char-alist'. 2000-12-04 Tetsuo Tsukamoto * install-info.el: Modify Comments. * skk-vars.el (skk-init-file, skk-special-midashi-char-list): Modify doc strings. * skk.el (skk-process-prefix-or-suffix): New function. (skk-insert): Call it. 2000-12-04 Mikio Nakajima * skk-vars.el (skk-okuri-char-alist): Doc updated. * skk.el (skk-translate-okuri-char): Use `skk-okurigana-prefix' instead of `skk-substring-head-character'. (skk-okurigana-prefix): Do not refer to `skk-henkan-okurigana'. (skk-remove-common): Calculate NEW-SKK-OKURI-CHAR by `(skk-okurigana-prefix skk-henkan-okurigana)' instead of `(skk-okurigana-prefix okuri-first)'. * skk-macs.el (skk-substring): Make second arg POS2 optional. (skk-substring-head-character): Comment out. * experimental/skk-dcomp.el (skk-extentp): Comment out. (skk-dcomp-face-on): Make it inline function. (skk-dcomp-face-off): Ditto. (skk-dcomp-activate): New user variable. (skk-kana-input@around@skk-dcomp-ad): Refer to `skk-dcomp-activate'. (skk-kakutei@around@skk-dcomp-ad): Ditto. (skk-start-henkan@before@skk-dcomp-ad): Ditto. (keyboard-quit@around@skk-dcomp-ad): Ditto. (skk-comp@around@skk-dcomp-ad): Ditto. (skk-delete-backward-char@after@skk-dcomp-ad): Ditto. (viper-del-backward-char-in-insert@after@skk-dcomp-ad): Ditto. (vip-del-backward-char-in-insert@after@skk-dcomp-ad): Ditto. * experimental/skk-dcomp.el (skk-kakutei): Check if skk-dcomp-start-point and skk-dcomp-end-point are markers before entering into an actual work. (skk-start-henkan): Ditto. (skk-dcomp-after-delete-backward-char): New function. (skk-delete-backward-char@after@skk-dcomp-ad): New advice. (viper-del-backward-char-in-insert@after@skk-dcomp-ad): Ditto. (vip-del-backward-char-in-insert@after@skk-dcomp-ad): Ditto. 2000-12-02 Mikio Nakajima * Makefile (tar): Use tar 's --exclude-from option. (snapshot): Ditto. 2000-12-02 Mikio Nakajima * Makefile (tar): Do not use tar 's --exclude-from option. (snapshot): Ditto. 2000-12-01 Mikio Nakajima * skk.el (skk-insert): Arrange order of conditions. * skk-xm20_4.el: Load "skk-autoloads.el" instead of specifying all autoloads definitions of functions. * skk-vars.el (skk-completion-word): Renamed to `skk-comp-key'. (skk-completion-depth): Renamed to `skk-comp-depth'. (skk-completion-function): Abolish. (skk-previous-completion-function): Ditto. * skk-comp.el (skk-completion-1): Renamed to `skk-comp-do-1'. (skk-completion): Renamed to `skk-comp-do'. (skk-previous-completion): Renamed to `skk-comp-previous'. (skk-start-henkan-with-completion): Renamed to `skk-comp-start-henkan'. * experimental/skk-dcomp.el (skk-dcomp-toggle-key): Abolish. (skk-dcomp-keep-completion-keys): New user variable. (skk-dcomp-face): Add group skk-dcomp. (skk-kana-input): When error occurred in the completion stage, just initialize `skk-completion-stack' and echo area (not to put on markers and face and move to `skk-dcomp-start-point'). Initialize `skk-dcomp-end-point', too. 2000-11-30 Tetsuo Tsukamoto * install-info.el (install-info-point-at-eol): Use `prog1'. * skk.el (skk-setup-modeline): Don't use unnecessary extents. 2000-11-29 Mikio Nakajima * experimental/skk-dcomp.el (skk-kana-input): Go to `skk-dcomp-start-point' after the hairy work finishes. 2000-11-28 Tetsuo Tsukamoto * skk-e18.el, skk-is-n.el: From "experimental". * SKK-MK: Modify according to it. 2000-11-28 Mikio Nakajima * experimental/skk-dcomp.el (skk-dcomp-end-point): New variable. (skk-dcomp-toggle-key): New variable. (skk-kana-input): Set `skk-dcomp-end-point'. Set `skk-dcomp-start-point' value as a marker. Do not remove a completed part of SKK-HENKAN-KEY if this command key is equal to `skk-toggle-character' (or `skk-toggle-kana'). (skk-kakutei): Set `skk-dcomp-start-point' and `skk-dcomp-end-point' to nil. (skk-start-henkan): New advice. (keyboard-quit): Ditto. 2000-11-28 Tetsuo Tsukamoto * skk-tut.el (skk-tutorial): Call `skk-nicola-setup-tutorial' for skk-nicola. 2000-11-28 Mikio Nakajima * experimental/skk-dcomp.el (skk-kana-input): Use second argument SILENT for `skk-completion'. * skk-comp.el (skk-completion): New optional argument SILENT. 2000-11-27 Tetsuo Tsukamoto * skk-isearch.el (skk-isearch-setup): Remember the current buffer. * skk-tut.el (skktut-init-variables-alist): Set `skk-rule-tree' for skk-nicola. * skk-vars.el: Modify group dependencies for skk-tut. (skk-isearch-current-buffer): New variable. * skk.el (skk-mode): Call `skk-kanagaki-initialize'. 2000-11-27 FURUE Hideyuki * skk.el (skk-emulate-original-map): Remove `skk-cancel-undo-boundary'. (skk-kana-input): Reset `skk-kana-start-point' when ``NEXT have at least one branch''. Do `skk-cancel-undo-boundary' only when kana insertion. (skk-delete-backward-char): kana cleanup. (skk-undo): kana cleanup. (skk-kakutei-cleanup-buffer): Enable undo again if `skk-undo-kakutei-word-only' is set. (skk-undo-kakutei): Disable undo temporarily if `skk-undo-kakutei-word-only' is set. (skk-set-henkan-point-subr): Disable undo temporarily if `skk-undo-kakutei-word-only' is set. (newline): Do `undo-boundary'. (newline-and-indent): Do `undo-boundary'. * skk-vars.el (skk-kana-cleanup-command-list): Add `skk-undo' and `skk-kakutei'. (skk-undo-kakutei-word-only): New user variable. (skk-last-buffer-modified): New buffer local variable. (skk-last-buffer-modified): New buffer local variable. * skk-macs.el (skk-cannot-be-undone): New macro. (skk-erase-prefix): Use `skk-cannot-be-undone'. (skk-insert-prefix): Use `skk-cannot-be-undone'. 2000-11-26 Mikio Nakajima * experimental/skk-dcomp.el: Remove unnecessary spaces between parens. Add year 2000 to the copyright notice. * skk.el (skk-nunion): Bug fixed. 2000-11-25 Tetsuo Tsukamoto * experimental/skk-e18.el: (exit-minibuffer@around@skk-e18-ad): New advice. (read-from-minibuffer@before@skk-e18-ad): Ditto. * skk-macs.el (skk-ding): Use the first arg under FSF Emacs. * skk-setup.el.in: Use `add-path' instead of `add-latest-path'. * skk-tut.el (skk-tutorial): Work around for Emacs 18. * skk-xemacs.el (minibuffer-keyboard-quit@arond@skk-xemacs-ad): From skk.el. * skk.el: Modify preface. (skk-henkan-show-candidate-subr): Use `string-width', not `string-bytes' {mm.el is broken}. (minibuffer-keyboard-quit@arond@skk-ad): Move to skk-xemacs.el. (exit-minibuffer@around@skk-ad): Don't advise Emacs 18. * vip.el: Use `skk-modeline-input-mode' instead of `skk-input-mode-string'. 2000-11-24 Tetsuo Tsukamoto * etc/NICOLA-SKK.tut: New file. * etc/SKK.tut: Typo. * install-info.el: Add comments. * skk-comp.el (skk-completion, skk-previous-completion): Don't signal error. Just show the message. * skk-tut.el (skktut-nicola-tut-file): New variable. (skk-tutorial): Use it for `skk-tut-file' when `skk-nicola' is used. (skktut-setup-working-buffer): Count how many questions the tutorial file contains. * skk-vars.el: Require "pcustom" also at the load time. * skk.el (skk-update-jisyo-original): Don't consider private dictionary sharing in tutorial. 2000-11-22 Tetsuo Tsukamoto * SKK-MK (SKK-MK-generate-autoloads-el-package): Eval the temporary buffer. (SKK-MK-detect-shadow-directory): Do not signal error. (SKK-MK-compile): Disable local eval. * install-info.el (install-info-add-groups): Detect the next section more correctly. * leim-list.el.in: Do nothing when `site-run-file' is nil. 2000-11-22 Mikio Nakajima * skk-jisx0201.el: Put in a comment at the bottom to eval the form which makes Emacs not to translate characters. * ChangeLog.daredevil: Put in a comment at the top to specify change-log major mode. * READMEs/AUTHORS: Updated. * READMEs/Contributors: Ditto. 2000-11-21 Mikio Nakajima * SKK-MK (SKK-MK-detect-shadow-directory): New function. (SKK-MK-install-elc): Use `SKK-MK-detect-shadow-directory'. (SKK-MK-install-package): Ditto. 2000-11-21 Tetsuo Tsukamoto * Makefile (clean): Undo the last change. * SKK-MK (SKK-MK-install-elc): Install leim-list.el.in as leim-list.el. * leim-list.el.in: Rename from leim-list.el. 2000-11-20 Tetsuo Tsukamoto * *: Plenty of `goodbye-warning's. * Makefile (clean): Don't delete leim-list.el * SKK-MK (SKK-MK-install-elc): Now leim-list.el and skk-setup.el are not the same files. * leim-list.el: New file. * skk-macs.el (skk-mode-string-to-indicator): New function. * skk-setup.el.in: Move XEmacs related codes to skk-xemacs.el. Move isearch related codes to skk-isearch.el. * skk-vars.el (skk-input-mode-string): Abolish. * skk.el (skk-setup-modeline): Always use `skk-modeline-input-mode'. 2000-11-19 Tetsuo Tsukamoto * SKK-MK (SKK_MODULES): Add `skk-e21'. * skk-e21.el: New file. * skk-jisx0201.el, skk-macs.el: Modify for skk-e21.el. * skk-macs.el (skk-update-modeline): New function. (skk-update-modeline-with-extent): Abolish. * skk-vars.el (skk-modeline-input-mode, skk-default-indicator, skk-latin-mode-indicator, skk-hiragana-mode-indicator, skk-katakana-mode-indicator, skk-jisx0208-latin-mode-indicator, skk-jisx0201-mode-indicator, skk-abbrev-mode-indicator): New variables. * skk-xemacs.el (skk-xemacs-prepare-modeline-properties): Rename from `skk-xemacs-prepare-extents'. * skk.el (skk-setup-modeline): Add `skk-modeline-input-mode' instead of `skk-input-mode-string' to `mode-line-format'. 2000-11-19 Mikio Nakajima * skk-version.el (skk-version): Change its argument meaning. If WITHOUT-CODENAME is non-nil, simply return SKK version. If nil return the version with its codename. * SKK-MK (SKK-MK-what-where-package): Remove skk-autoloads from SKK_MODULES. (SKK-MK-install-elc): Set up setup.el.in for SKK_TUTORIALS even if SKK_DICTIONARIES is nil. (SKK-MK-install-package): Ditto. Call error in the top of the function if running emacs does not have feature xemacs. (SKK-MK-make-setup-file): Do not eval 1th of SPEC. * Makefile (tar): Change ddskk-$(VERSION) to ddskk$(VERSION) for file name of tar ball. (SNAPBASE): Replace ddskk-`$(DATE) '+%Y%m%d' with `ddskk`$(DATE) '+%Y%m%d'`. 2000-11-19 Tetsuo Tsukamoto * SKK-MK (SKK_MODULES): Add `skk-xemacs'. * skk-jisx0201.el, skk-macs.el: Modify for skk-xemacs.el. * skk-xemacs.el: New file. * skk.el (skk-mode): Call `skk-xemacs-prepare-extents'. 2000-11-19 Mikio Nakajima * doc/skk.texi (skk-lookup): Replace VERSION_SPECIFIC_LISPDIR with ADDITIONAL_LISPDIR. * READMEs/FAQ.txt ([Q.] SKK $B$N8!:w$G!";THN$N(B CD-ROM $B<-=q$d%M%C%H%o!<(B $B%/$N<-=q%5!<%P$,MxMQ$G$-$^$9$+!)(B): Replace VERSION_SPECIFIC_LISPDIR with ADDITIONAL_LISPDIR. * experimental/skk-annotation.el (skk-annotation-quote): Bug fixed. * SKK-CFG: Add documents about ADDITIONAL_LISPDIR. * SKK-MK: Removed modules which do not exist in top directory from SKK_MODULES. (ADDITIONAL_LISPDIR): New variable. (LISPDIR): Sync up with VERSION_SPECIFIC_LISPDIR in relation to the part which detects directory on ms-dos system. (SKK_LISPDIR): Refer to VERSION_SPECIFIC_LISPDIR instead of LISPDIR. * skk-macs.el (skk-detect-emacs): Removed. 2000-11-18 Tetsuo Tsukamoto * install-info.el (install-info-skip-blank-lines): New function. (install-info-add-groups): Skip blank lines until point reaches the next section. * skk-setup.el.in: Modify for Emacs 18. Quite ugly works for Emacs 21. Don't call `defadvice' when leim-list.el is loaded. Use `before-init-hook' or `after-init-hook'. 2000-11-16 Tetsuo Tsukamoto * READMEs/FAQ.txt: Update for version 11.4. * doc/skk.texi: Ditto. * skk-setup.el.in: Make sure dired/auto-autoloads.el exists. * skk.el (skk-remove-redundant-okurgana): Make sure str2 is non-nil. 2000-11-15 Tetsuo Tsukamoto * SKK-MK (SKK-MK-install-elc): Under Emacs 20.2 or earlier, copy skk-setup.el to a directory in `default-load-path', not to a subdirectory "skk". * skk-macs.el (skk-update-modeline-with-extent): New function. (skk-mode-off, skk-j-mode-on, skk-latin-mode-on, skk-jisx0208-latin-mode-on, skk-abbrev-mode-on): Call it under XEmacs. * skk-setup.el.in: Emacs 20.2 or earlier, load "path-util" and add subdirectory "skk" to load-path. * skk-vars.el (skk-check-okurigana-on-touroku): Accpept the value `auto'. * skk.el (skk-remove-redundant-okurgana): Don't ask if `skk-check-okurigana-on-touroku' is auto. Also check the okurigana which consists of two characters. (skk-henkan-show-candidates): Show previous candidates if the read event is for `skk-delete-backward-char'. * tinyinstall.el: Under Emacs 18, override `member' defined in cl.el with a valid one. 2000-11-14 Tetsuo Tsukamoto * doc/skk-faq.texi: No longer in the repository. * doc/skk.texi: Integrate skk-faq.texi. * etc/SKK.tut: Don't use more than 19 lines. * experimental/skk-e18.el (skk-e18-make-local-map): New function. * skk-macs.el (skk-j-mode-on, skk-latin-mode-on, skk-jisx0208-latin-mode-on, skk-abbrev-mode-on): Call it. (skk-local-variable-p): New function. * skk-setup.el.in: Call `ad-remove-advice' under XEmacs. * skk-tut.el: Bug fixes, and modifications for Emacs 18. (skktut-setup-delete-backward-char): New function. (skk-tutorial): Call it. Invoke `skk-mode' at least once before starting tutorial. (skktut-original-local-map): New variable for Emacs 18. (skktut-make-windows): Keep at least 20 lines for the upper window. * skk.el (skk-mode, skk-save-jisyo-original, skk-make-new-jisyo): Don't create or save `skk-jisyo' file, if it is one for tutorial. 2000-11-13 Tetsuo Tsukamoto * doc/skk-faq.texi: Typo. * skk.el (skk-henkan-show-candidates): Signal quit when the read event is for `keyboard-quit', `skk-kanagaki-bs' or `skk-kanagaki-esc'. 2000-11-13 Mikio Nakajima * skk-vars.el (skk-coding-system-alist): Use `iso-2022-jp-3-strict' instead of `iso-2022-jp-3-compatible' for "jis". 2000-11-12 Mikio Nakajima * skk-auto.el (skk-okuri-search): Convert hiragana of each element into katakana. * skk-tut.el (skktut-init-variables-alist): Remove `(skk-convert-okurigana-into-katakana . nil)' element. * skk-vars.el (skk-convert-okurigana-into-katakana): Removed. * skk.el (skk-start-henkan): When SKK-KATAKANA is non-nil and ARG is equal to 1, not convert a string of a region to hiragana but convert a string in SKK-HENKAN-KEY itself. (skk-set-okurigana): Ditto. Also convert SKK-HENKAN-OKURIGANA. (skk-hiragana-to-katakana): Bug fixed. (skk-katakana-to-hiragana): Ditto. (skk-toggle-characters): Convert region even if SKK-HENKAN-ACTIVE is non-nil. Try to recognize characters type by checking second characters and more even if type of first character is `unknown'. Doc updated. (skk-previous-candidate): Put out katakana when SKK-KATAKANA is non-nil. (skk-kakutei-cleanup-buffer): Not to convert okurigana into katakana. * doc/skk.texi: Call `texinfo-every-node-update' and `texinfo-all-menus-update'. * doc/skk.texi ($BAw$j$"$jJQ49Cf$N(BC-g): Doc fixed. ($B%+%J%b!<%I$G$NJQ49$NAw$j2>L>$N=hM}(B): Removed. 2000-11-11 Mikio Nakajima * skk.el (skk-quote-char): Use `format' instead of `concat'. (skk-henkan): Hand NEW-WORD to `skk-kakutei'. (skk-henkan-in-minibuff): Use `skk-quote-semicolon' if NEW-ONE contains `;'. (skk-nunion): Recognize annotated word. * skk-macs.el (skk-annotation-quote-1): Rename to `skk-quote-semicolon'. * experimental/skk-annotation.el (skk-annotation-add): Use `start-closed' property for XEmacs. (skk-annotation-quote-1): Use `format' instead of `concat'. Export to `skk-macs.el'. (skk-henkan-in-minibuff): Removed. (skk-nunion): Removed. 2000-11-08 Mikio Nakajima * skk-macs.el (skk-eval-string): Remove unnecessary STRING when error occured. * experimental/skk-annotation.el (skk-annotation-add): Bug fixed. (skk-annotation-insert): Use `skk-string-eval' instead of `eval'. (skk-annotation-show-as-message): Use `skk-string-eval' for ANNOTATION. * skk.el (skk-quote-char): Do not quote if WORD has an annotation. 2000-11-08 Tetsuo Tsukamoto * SKK-MK (SKK_INFODIR): See `Info-directory-list' only when $INFOPATH is set. * skk.el: Fix for invalid condition handler. 2000-11-06 Mikio Nakajima * experimental/skk-annotation.el (skk-henkan-in-minibuff): Bug fixed. * experimental/skk-annotation.el (skk-annotation-update-jisyo-format): Add autoload cookie. Bug fixed. * skk.el (skk-henkan-show-candidate-subr): Use `(message "%s" str)' instead of `(message str)'. * skk-vars.el (skk-annotation-show-message): Rename to `skk-annotation-show-as-message'. (skk-annotation-function): Doc updated. * experimental/skk-annotation.el: Comment (document) updated. (skk-update-jisyo-format): Renamed to `skk-update-jisyo-format'. Call `(skk-setup-jisyo-buffer)' first. Make it interactive. (skk-update-jisyo-format-1): Renamed to `skk-annotation-update-jisyo-format-1'. (skk-annotation-remove): Added user confirmation. (skk-henkan-in-minibuff): New advice. (skk-annotation-save-and-quit): Remove zenkaku spaces from ANNOTATION, too. If ANNOTATION is null string set it to nil. Show "Added annotation" message only when ANNOTATION is actually added. (skk-annotation-show): Funcall with argument ANNOTATION. Use skk-annotation-get'. (skk-annotation-get): New inline function. (skk-annotation-show-1): Do not cut off top `*' character. (skk-annotation-kill): Call `(skk-annotation-erase-buffer)' before killing current buffer. (skk-annotation-show-message): Rename to `skk-annotation-show-as-message'. * skk.el (skk-quote-char): Do not quote `;'. (skk-update-jisyo-format): Export to experimental/skk-annotation.el. (skk-update-jisyo-format-1): Ditto. * SKK-MK (SKK_INFODIR): Get car of `Info-directory-list'. * skk.el (skk-update-jisyo-format-1): Use temporary variable CANDIDATE. (skk-get-jisyo-buffer): Do not call `skk-update-jisyo-format'. (skk-quote-char): Remove `;' from the first regexp. * experimental/skk-annotation.el: Require static.el. (skk-annotation-show-message): When echo area is occupied by candidates, open other window and show annotation. (skk-annotation-erase-buffer): New inline function. (skk-annotation-insert): Use `skk-annotation-erase-buffer'. (skk-annotation-add): Ditto. Bug fixed. (skk-annotation-last-word-1): Remove unnecessary temporary variable CANDIDATE. (skk-annotation-save-and-quit): Trim whitespaces, newlines and tabs in head of the annotation. * skk.el: Require product.el first for APEL version check. * skk.el (skk-update-jisyo-format): New function. (skk-update-jisyo-format-1): New function. (skk-get-jisyo-buffer): Use `skk-update-jisyo-format'. (skk-quote-char): Bug fixed. * experimental/skk-annotation.el (skk-annotation-show-1): Do nothing when ANNOTATION is a null string. 2000-11-03 Mikio Nakajima * skk-server.el (skk-search-server): Add `;;;###autoload' cookie. 2000-11-01 Tetsuo Tsukamoto * skk-isearch.el, etc/SKK.tut.E: Typos. Reported by Yoshiki Hayashi . 2000-10-31 Tetsuo Tsukamoto * ptexinfmt.el: Sync with Wanderlust. 2000-10-31 Mikio Nakajima * doc/skk.texi: Add 2000 year to Copyright notice. ($B1QC18l$r$"$$$^$$$KJQ49$7$F * Version 14.4 Nakatsu Released. * doc/skk.texi, Makefile, skk-version.el: Bump SKK verison to 14.4. 2011-12-30 Tsuyoshi Kitamoto * doc/skk.texi (skk-verbose-intention-face): $B!V$I$N(Bwiki$B!W$r!V$I$l$r;2>H!W(B $B$H=$@0(B. (skk-check-okurigana-on-touroku): footnote $B$+$i(B defvr $B$XJQ99(B. * skk-vars.el (skk-verbose-intention-face): $B!V$I$N(Bwiki$B!W$r!V$I$l$r;2>H!W(B $B$H=$@0(B. (skk-undo-kakutei-return-previous-point): docstring $B$r=$@0(B. 2011-12-27 Tsuyoshi Kitamoto * doc/skk.texi ($BJ8;z%3!<%I$rCN$kJ}K!(B): M-x skk-display-code-for-char-at-point $B$r5-:\(B. * skk-macs.el (skk-split-char): Add comment. 2011-12-24 Tsuyoshi Kitamoto * doc/skk.texi ($B>iD9$J0FFb%a%C%;!<%8$NI=<((B): $B99?7(B. 2011-12-23 Tetsuo Tsukamoto * skk-vars.el: Set coding to iso-2022-7bit-ss2. (skk-annotation-python-program) (skk-annotation-dict-coding-system): In docstrings, modify charset of some characters from chinese-gb2312 to japanese-jisx0208. 2011-12-23 Tsuyoshi Kitamoto * doc/skk.texi: @documentlanguage $B$rDI2C(B. @subsection $B9T$NCf$G;H$o$l$F$$$?(B @code{}, @key{}, @kbd{} $B$r:o=|(B. @subsubsection $B9T$bF1MM(B. 2011-12-18 Tsuyoshi Kitamoto * skk-tut.el (skktut-init-variables-alist): Add skk-show-mode-show. * skk-vars.el (skk-show-mode-invoked): New variable. (skk-show-mode-show): $B%f!<%6%*%W%7%g%s2=(B. (skk-show-mode-style): docstring $B$rJQ99(B. * skk-show-mode.el (skk-cursor-set): $BH=Dj$K(B skk-show-mode-invoked $B$r(B $B2C$($?(B. (skk-show-mode): $B?7$?$J%3%^%s%I(B. * skk.el (skk-require-module): skk-show-mode $B$r(B require. * doc/skk.texi: $B99?7(B. 2011-12-17 Tetsuo Tsukamoto * doc/skk.texi: Set coding to iso-2022-jp-3. 2011-12-17 Tsuyoshi Kitamoto * skk-kcode.el (skk-kcode-read-code-string): RET $B$N%?%$%W$G(B char-list $B$,5/F0$9$k$N$+(B menu $B$,5/F0$9$k$N$+$r!"$"$i$+$8$aI=<((B. 2011-12-15 Tetsuo Tsukamoto * skk-kcode.el (skk-display-code): Check function `char-to-ucs' also at run time. 2011-12-14 Tetsuo Tsukamoto * doc/skk.texi: Set coding to iso-2022-7bit. Replace invisible chars with correct ones. * SKK-MK (SKK-MK-texinfo-coding-system): Default to iso-2022-7bit. (SKK-MK-texinfo-pre-formart, SKK-MK-texinfo-post-format): New functions. (SKK-MK-texinfo-format): Call them. * skk-annotation.el (skk-annotation-lookup-region-or-at-point): Now this is defined with defun, while `skk-annotation-wikipedia-region-or-at-point' is treated as an alias. * skk-emacs.el (skk-emacs-menu-resource-ja): Typo. * skk-setup.el.in (skk-isearch-setup-maybe) (skk-isearch-cleanup-maybe): Requie skk-vars. * skk-vars.el (skk-kcode-charset): Update the custom type. (skk-list-chars-mode-map): Define for the cursor keys. 2011-12-13 Tetsuo Tsukamoto * doc/skk.texi: Update. * skk-annotation.el, skk-isearch.el: Update comments. * skk-emacs.el (skk-emacs-modeline-menu-items): Typo. * skk-setup.el.in (skk-isearch-setup-maybe) (skk-isearch-cleanup-maybe): New functions. (isearch-mode-hook, isearch-mode-end-hook): Call them. * skk-vars.el (skk-isearch-mode-enable): Always enable skk-isearch if value is `always'. 2011-12-10 Tsuyoshi Kitamoto * skk-kcode.el (skk-list-chars): $B%3!<%I$r@0M}(B. 2011-12-08 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wait-for-input): Call `lookup-word' if user try to browse the source for a lookup entry. 2011-12-08 Tsuyoshi Kitamoto * doc/skk.texi, Makefile, skk-version.el: Bump SKK version to 14.3.92. 2011-12-07 Tetsuo Tsukamoto * doc/skk.texi: Update. * skk-annotation.el (skkannot-wikipedia-format-buffer): Remove uls in ja.wiktionary. * skk-vars.el (skk-annotation-wiktionary-preferred-lang-alist): Add "$B8EE5F|K\8l(B". (skkannot-ja-wiktionary-part-of-speech-regexp): Add "$BOB8l$N4A;zI=(B $B5-(B". * skk-emacs.el (skk-emacs-modeline-menu-items): Add new items for skk-tankan, skk-list-chars, skk-annotation-lookup-region-or-at-point, and skk-clock. (skk-emacs-menu-resource-ja): Update. 2011-12-07 Tsuyoshi Kitamoto * skk-vars.el (skk-search-state, skk-search-ex-state): New internal variables. * skk.el (skk-search, skk-search-extra-jisyo-files): Use it. (skk-search-state): New command. * doc/skk.texi: Update. 2011-12-06 Tetsuo Tsukamoto * doc/skk.texi: Update. * skk-lookup.el (skk-lookup-get-content): Simplify just slightly. * skk.el (skk-backward-and-set-henkan-point-1): Ditto. 2011-12-06 Tsuyoshi Kitamoto * skk-lookup.el (skk-lookup-get-content): Remove message(). (skk-lookup-get-content-setup-dic): Add message() and interactive(). * doc/skk.texi: $B99?7(B. 2011-12-05 Tsuyoshi Kitamoto * skk-tankan.el (skk-tankan-name-radical-alist): $B?7$?$J%j%9%H(B. (skk-tankan-yomi-compread): $B?7$?$J4X?t(B. (skk-tankan): $BIt * skk-vars.el (skk-annotation-other-sources): Add lookup.el. (skkannot-cached-srcs): Renamed from skk-annotation-wikimedia-srcs. * skk-annotation.el (skkannot-in-normal-buffer-p) (skkannot-clear-msg, skkannot-check-lookup): New functions. (skkannot-cache, skk-annotation-wikipedia): Call `skk-lookup-get-content' if source is lookup.el. (skk-annotation-find-and-show): Pass skkannot-cached-srcs to `skk-annotation-show' if skk-annotation-lookup-lookup is nil. 2011-12-04 Tetsuo Tsukamoto * skk-vars.el (skk-annotation-lookup-lookup): New user option. (skk-treat-candidate-sample2): If it is set to `always', call `skk-lookup-get-content'. * skk.el (skk-check-treat-candidate-appearance-function): Check it. * skk-annotation.el (skk-annotation-find-and-show): Call `skk-lookup-get-content' if `skk-annotation-lookup-lookup' is non-nil. * skk-lookup.el (skk-lookup-get-content): If content is a null string, then return nil. Take optional arg listing-p. 2011-12-04 Tsuyoshi Kitamoto * skk-vars.el (skk-tankan-radical-name-face): $B?7$?$J(B FACE. * skk-tankan.el (skk-tankan-radical-name): $B?7$?$JG[Ns(B. (skk-tankan-bushu-compread): skk-tankan-radical-name $B$H(B skk-tankan-radical-name-face $B$r;HMQ(B. * doc/skk.texi: $B99?7(B. 2011-12-03 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2011-11-30 Tetsuo Tsukamoto * skk-annotation.el (skkannot-DictServ-cache) (skk-annotation-lookup-DictionaryServices): Remove unused local variables. 2011-11-28 Tetsuo Tsukamoto * skk-vars.el (skk-annotation-wiktionary-preferred-lang-alist): Modify the default value for en.wiktionary. (skkannot-en-wiktionary-part-of-speech-regexp): Add Kanji, Hanzi, and Hanja. 2011-11-27 Tsuyoshi Kitamoto * skk-show-mode.el (skk-cursor-set): $B%$%s%/%j%a%s%?%k!&%5!<%ACf$N(B $BF~NO%b!<%I@Z$jBX$(;~$K$OI=<($7$J$$!#JQ?t(B skk-isearch-switch $B$GH=CG(B. 2011-11-26 Tetsuo Tsukamoto * skk-annotation.el (skkannot-DictServ-command): New function. (skk-annotation-lookup-DictionaryServices): Accept an optional third arg force. (skk-annotation-wikipedia-1): Call it with the 3rd arg non-nil. * skk-vars.el (skk-annotation-lookup-DictionaryServices): Update doc string. (skkannot-py-none-regexp, skkannot-DictServ-cmd-format-str): New constant variables. * skk.el (skk-check-treat-candidate-appearance-function) (skk-treat-candidate-appearance): New functions. (skk-henkan-candidate-list, skk-treat-new-word): Call them. 2011-11-26 Tetsuo Tsukamoto * skk-version.el: Bump skk-version to 14.3.91. * skk-vars.el (skk-annotation-show-wikipedia-url): Abolish variable. (skk-annotation-lookup-DictionaryServices): Accept `always'. (skk-treat-candidate-sample2): If it is set to `always', call `skk-annotation-lookup-DictionaryServices'. * skk-annotation.el: Update comments. (skk-skkannot-treat-wikipedia): Abolish function. (skk-annotation-find-and-show, skk-annotation-wait-for-input): Do not refer to skk-annotation-show-wikipedia-url. * doc/skk.texi: Update. 2011-11-23 Tsuyoshi Kitamoto * doc/skk.texi, Makefile, skk-version.el: Bump SKK version to 14.3.90. 2011-11-23 Tsuyoshi Kitamoto * skk-vars.el (skk-annotation-delay): $BC10L$,IC$G$"$k;]$r5-:\(B. * doc/skk.texi (skk-annotation-delay): $BDI2C(B. (VIP/VIPER$B$H$NJ;MQ(B): $B!V(BI-search$B4XO"!W$H=g$rF~$lBX$((B. * skk.el (skk-check-size-and-do-save-jisyo): skk-yes-or-no-p() $B$N(B $B0z?t(B JAPANESE $B$H(B ENGLISH $B$N@8@.$,0[$J$C$F$$$?$N$r=$@5(B. 2011-11-21 Tsuyoshi Kitamoto * doc/skk.texi (skk-show-mode-style): $B99?7(B. ($BJ8;z%3!<%I4XO"(B): $B99?7(B. * experimental/skk-search-web.el: $BDI2C(B. * SKK-MK (SKK_MODULES): skk-search-web $B$rDI2C(B. 2011-11-20 Tsuyoshi Kitamoto * skk-show-mode.el (skk-show-mode-inline): New file. * SKK-MK (SKK_MODULES): Add skk-show-mode. * skk-vars.el (skk-show-mode-show, skk-show-mode-functions): New internal variables. (skk-show-mode-style): New user option. * doc/skk.texi (skk-show-mode-style): $BDI2C(B. 2011-11-19 Tsuyoshi Kitamoto * doc/skk.texi (SKK$B$H$O$J$K$+(B): $B99?7(B. * skk-inline.el (skk-add-background-color): docstring $B$r=$@5(B. (skk-inline-show-vertically): $B%=!<%9%3!<%I>e$N%$%s%G%s%HI}8m$j(B $B$r=$@5(B. 2011-11-18 Tetsuo Tsukamoto * skk-vars.el (skk-annotation-wiktionary-preferred-lang-alist): New user option. * skk-annotation.el (skkannot-wikt-preferred-lang-regexp) (skkannot-wikt-find-preferred-langs): New functions. (skkannot-wikipedia-format-buffer): In wiktionary, prefer word langs found in skk-annotation-wiktionary-preferred-lang-alist. 2011-11-15 Tetsuo Tsukamoto * skk-annotation.el (skkannot-dict-exec-find, skkannot-sit-for) (skkannot-py-send-string skkannot-py-send-command) (skkannot-DictServ-cache, skkannot-dict-buffer-format) (skkannot-start-dict-process, skkannot-wikipedia-clean-sup) (skkannot-wikipedia-clean-sub, skkannot-wikipedia-format-buffer) (skkannot-wikipedia-remove-nested, skkannot-wikipedia-retrieved) (skkannot-wikipedia-test-html-tag, skkannot-treat-wikipedia) (skkannot-cache, skkannot-generate-url) (skkannot-wikipedia-normalize-word, skkannot-url-installed-p): Abbreviate function names. (skkannot-treat-wikipedia): Remove autoload cookie. (skk-annotation-show-buffer): Use `skk-reset-henkan-count'. * skk-vars.el (skkannot-remaining-delay, skkannot-buffer-origin) (skkannot-py-buffer, skkannot-url-installed-p) (skkannot-en-wiktionary-lang-regexp) (skkannot-en-wiktionary-part-of-speech-regexp) (skkannot-ja-wiktionary-lang-regexp) (skkannot-ja-wiktionary-part-of-speech-regexp): Abbreviate internal variable names. 2011-11-14 Tsuyoshi Kitamoto * skk-vars.el (skk-lookup-get-content-nth-dic): docstring $B$r=$@5(B. * doc/skk.texi ($B%"%N%F!<%7%g%s$H$7$F(BEPWING$B<-=q$rI=<($9$k(B): $BDI2C(B. 2011-11-14 Tetsuo Tsukamoto * skk-annotation.el: Autoload `run-python'. (skk-annotation-start-python): Abolish the 2nd optional arg. 2011-11-13 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-lookup-DictionaryServices): Update the rule for truncating annotations. * skk-annotation.el (skk-annotation-exclude-dict-maybe): Abolish function. (skk-annotation-send-python-string) (skk-annotation-send-python-command): New functions. (skk-annotation-start-python): Rename the newly created buffer to an skk specific one. Restore the original value of python-buffer after that. * skk-vars.el (skk-annotation-other-sources): Remove `dict' from the default value. Move `ja.wiktionary' to the top. * skk-macs.el (skk-reset-henkan-count) (skk-escape-from-show-candidates): New functions. * skk-annotation.el (skk-annotation-sit-for) (skk-annotation-wait-for-input) * skk.el (skk-henkan-show-candidate-subr): Use them. * skk-vars.el (skk-annotation-python-program): Simply find "python" executable. * skk-annotation.el (skk-annotation-start-python): Call `set-buffer-process-coding-system'. (skk-annotation-lookup-DictionaryServices): Make command a little bit simple. Insert the command if it has not been echoed. Output a header line. (skk-annotation-DictionaryServices-cache): Take word instead of command as an argument. Take optional arg truncate. 2011-11-13 Tsuyoshi Kitamoto * skk-vars.el (skk-lookup-get-content-nth-dic) : New user option. (skk-lookup-get-content-default-dic) (skk-lookup-get-content-default-dic-name): New internal variables. * skk-lookup.el (skk-lookup-pickup-headings): Fix docstring. (skk-lookup-get-content, skk-lookup-get-content-setup-dic): New Function. 2011-11-12 Tetsuo Tsukamoto * skk-vars.el (skk-annotation-lookup-DictionaryServices) (skk-annotation-loop-interval): New user options. (skk-annotation-python-program, skk-annotation-process-buffer): New variables. (skk-annotation-dict-program): Default to skk-annotation-python-program under Darwin. (skk-annotation-other-sources): Add `DictionaryServices'. Move `ja.wikitionary' next to `ja.wikipedia'. * skk-annotation.el (skk-annotation-start-python) (skk-annotation-DictionaryServices-cache) (skk-annotation-lookup-DictionaryServices): New functions. (skk-annotation-find-and-show, skk-annotation-wikipedia) (skk-annotation-wikipedia-1, skk-annotation-wikipedia-cache): Modify to accept `DictionaryServices'. (skk-annotation-lookup-region-or-at-point): Alias to `skk-annotation-wikipedia-region-or-at-point'. (skk-annotation-wait-for-input): Modify according to it. * skk.el (skk-mode-invoke, skk-preload): Call `skk-annotation-start-python' if skk-annotation-lookup-DictionaryServices is non-nil. 2011-11-11 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-lookup-dict): Accept an optional arg truncate for candidate listing. Add autoload cookie. Do not kill or erase buffer before the throw. (skk-annotation-preread-dict): Take an optional arg nowait. (skk-annotation-wikipedia-format-buffer): Avoid a loop in ja.wikitionary articles. (skk-annotation-find-and-show): Fix the order in skk-annotation-wikimedia-srcs. * skk-vars.el (skk-annotation-dict-program) (skk-annotation-dict-program-arguments): Check the system type darwin instead of the feature ns. 2011-11-10 Tetsuo Tsukamoto * skk-vars.el (skk-annotation-dict-coding-system): New user option. * skk-annotation.el (skk-annotation-dict-exec-find) (skk-annotation-exclude-dict-maybe): New functions. (skk-annotation-find-and-show) (skk-annotation-wikipedia-region-or-at-point): Use them. (skk-annotation-start-dict-process): Call `skk-process-kill-without-query' here. Set coding-system-for-read according to skk-annotation-dict-coding-system. 2011-11-10 Tsuyoshi Kitamoto * doc/skk.texi: $BHy=$@5(B. 2011-11-10 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-start-process): Locally set coding-system-for-read. Encode word in utf-8. (skk-annotation-preread-dict): Set skk-annotation-remaining-delay. (skk-annotation-lookup-dict): Do not reset skk-annotation-remaining-delay here. 2011-11-07 Tetsuo Tsukamoto * skk-macs.el (skk-process-kill-without-query): New function. * skk-server.el (skk-open-network-stream): Use it. * skk-annotation.el (skk-annotation-find-and-show): Always call `skk-annotation-show'. (skk-annotation-find-and-show) (skk-annotation-wikipedia-region-or-at-point): Return nil even if `executable-find' causes an error. (skk-annotation-lookup-dict): Call `skk-process-kill-without-query'. 2011-11-07 Tsuyoshi Kitamoto * doc/skk.texi ($BNN0h$NA`:n(B): skk-romaji-*-by-hepburn $B$r(B @defvr. ($BF0E*Jd40(B): skk-dcomp-multiple-activate $B$r99?7(B. ($B30It%3%^%s%I$+$i%"%N%F!<%7%g%s$r * skk-vars.el (skk-annotation-original-buffer): New internal variable. * skk-annotation.el (skk-annotation-sit-for): New function. (skk-annotation-find-and-show, skk-annotation-preread-dict) (skk-annotation-lookup-dict): Use it. Always set process. 2011-11-06 Tetsuo Tsukamoto * skk-vars.el (skk-annotation-delay, skk-annotation-lookup-dict) (skk-annotation-dict-program) (skk-annotation-dict-program-arguments): New user options. (skk-annotation-other-sources): Rename from skk-annotation-wikipedia-sources, which is now defined as an obsolete variable alias. (skk-annotation-remaining-delay, skk-annotation-first-candidate): New variables. * skk.el (skk-start-henkan): When entering henkan-active mode, set skk-annotation-first-candidate to t. * skk-annotation.el (skk-annotation-dict-buffer-format) (skk-annotation-start-dict-process, skk-annotation-preread-dict) (skk-annotation-lookup-dict): New functions. (skk-annotation-find-and-show): If skk-annotation-lookup-dict is non-nil, call them to find an annotation. Wait for skk-annotation-delay before showing the annotation when user is acting quickly. (skk-annotation-wait-for-input): Browse "dict://" instead of "http://" for `dict' annotations. (skk-annotation-message): Modify message. (skk-annotation-wikipedia-1, skk-annotation-wikipedia-cache): When source is `dict', call `skk-annotation-lookup-dict'. (skk-annotation-wikipedia-region-or-at-point): When skk-annotation-dict-program is not available, delete `dict' from skk-annotation-other-sources. 2011-11-06 Tsuyoshi Kitamoto * doc/skk.texi ($B$3$N%P!<%8%g%s$N(BSKK$B$K$D$$$F(B, skk-tut-lang) (skk-tooltip-mouse-behavior): $B99?7(B. (skk-tut-use-face, skk-show-num-type-info) (skk-tooltip-parameters): $BDI2C(B. 2011-11-06 Tetsuo Tsukamoto * skk-jisx0201.el: Update comments for JIS X 0201 Roman. 2011-11-05 Tsuyoshi Kitamoto * skk-vars.el (skk-share-private-jisyo): doc string $B$r99?7(B. * doc/skk.texi ($BFI$_$NJd40(B): $B99?7(B. 2011-11-04 Tsuyoshi Kitamoto * doc/skk.texi (skk-extra-jisyo-file-list) ($B<-=q8!:w$N@_Dj$N6qBNNc(B): $B99?7(B. 2011-11-03 Tsuyoshi Kitamoto * skk.el (skk-kana-input): $B%$%s%G%s%H$r=$@5(B. 2011-11-02 Tsuyoshi Kitamoto * doc/skk.texi (skk-read-from-minibuffer-function) ($B%5JQF0;l$N<-=qEPO?$K4X$9$kCm0U(B, $B:F5"E*<-=qEPO?(B) ($B3NDj<-=q(B, $BJQ49$N3X=,(B): $B99?7(B. 2011-11-01 Tsuyoshi Kitamoto * doc/skk.texi: $B99?7(B. 2011-10-31 Tsuyoshi Kitamoto * doc/skk.texi: $B99?7(B. 2011-10-30 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-format-buffer): Fix regexp to detect disambiguation pages. 2011-10-30 Tsuyoshi Kitamoto * doc/skk.texi: $B99?7(B. 2011-10-28 Tsuyoshi Kitamoto * skk-cus.el (skk-cus-params-visual): docstring $B$N(B "$B=u8@E*(B" $B$r(B "$B>iD9$J(B" $B$X(B. * doc/skk.texi (skk-server-portnum): $B5-=R8m$j$r=$@5(B. (skk-customize$B$K$h$k@_DjJQ99(B): @subsection $B2=$7$?(B. (skk-gyakubiki-jisyo-list, $BF0E*Jd40(B): $B=$@5(B. 2011-10-28 Tetsuo Tsukamoto * skk-var.el (skk-verbose, skk-verbose-wait) (skk-verbose-message-interval, skk-verbose-intention-face) (skk-verbose-kbd-face, skk-henkan-on-message): Replace in docstrings "$B=u8@E*(B" to "$B>iD9$J(B" to be more accurate. {These are rather reversions than modifications.} 2011-10-27 Tsuyoshi Kitamoto * doc/skk.texi: $B99?7(B. 2011-10-25 Tsuyoshi Kitamoto * skk-tut.el (skktut-init-variables-alist): $B%A%e!<%H%j%"%k$N5/F0(B $B;~$K(B skk-kcode-method $B$r=i4|2=(B. 2011-10-24 Tsuyoshi Kitamoto * doc/skk.texi (skk-isearch-use-previous-mode): $B5-=R$r99?7(B. * skk.el (skk-setup-shared-private-jisyo): $B%$%s%G%s%H$r@0M}(B. * skk-vars.el (skk-record-file): docstring $B$r99?7(B. 2011-10-23 Tsuyoshi Kitamoto * skk-vars.el (skk-init-file, skk-count-private-jisyo-candidates-exactly) (skk-auto-insert-paren, skk-auto-start-henkan-keyword-list) (skk-delete-implies-kakutei, skk-verbose): docstring $B$r99?7(B. * doc/skk.texi (skk-jisyo-fix-order): $B5-=R$r99?7(B. * skk-annotation.el (skk-annotation-message): (split-string ...) $B$r(B (delete "" (split-string ...)) $B$XJQ99(B [skk 7513]. 2011-10-22 Tsuyoshi Kitamoto * SKK-MK (SKK-MK-what-where): interactive-p() $B$KBe$($F(B noninteractive $B$r;HMQ(B. 2011-10-22 Tsuyoshi Kitamoto * skk-hint.el (skk-hint-setup-hint): $B%a%C%;!<%8$NFbMF$r=$@5(B. * skk-kakasi.el (skk-kakasi-region): $BF1>e(B. * skk.el (skk-record-jisyo-data): docstring $B$r=$@5(B. * doc/skk.texi: $BHy=$@5(B. 2011-10-21 Tsuyoshi Kitamoto * doc/skk.texi: $BHy=$@5(B. 2011-10-18 Tsuyoshi Kitamoto * doc/skk.texi: $BHy=$@5(B. 2011-10-04 Tsuyoshi Kitamoto * doc/skk.texi: $BHy=$@5(B. 2011-08-14 Tetsuo Tsukamoto * skk-emacs.el (skk-tooltip-relative-p): New function. (skk-tooltip-show-at-point): Use it to detect Cocoa Emacs 23. 2011-08-10 Tsuyoshi Kitamoto * bayesian/README.ja: $B%I%-%e%a%s%H$NHy=$@5(B. * bayesian/bskk: $B%I%-%e%a%s%H$NHy=$@5(B. RCS $B$N%-!<%o!<%IE83+(B Id $B$H(B Date $B$rA^F~(B. 2011-07-21 Tsuyoshi Kitamoto * skk-study.el (skk-study-remove-theme): skk-error() $B$KBe$($F(B skk-message() $B$r;HMQ(B. 2011-07-19 Tsuyoshi Kitamoto * skk-azik.el (skk-azik-additional-rom-kana-rule-list): $B!V;R2;(B + $B%T%j%*%I!W$NAH$_9g$;!"6qBNE*$K$O $B$5$s!"(BTeika Kazura $B$5$s$+$i$NDs0F(B [skk 7485]. 2011-07-15 Tsuyoshi Kitamoto * skk-tut.el (skktut-make-windows, skktut-end-tutorial): switch-to-buffer() $B$KBe$($F(B pop-to-buffer() $B$r;HMQ(B. (skktut-end-tutorial): $B=*N;;~%a%C%;!<%8$NJ88@$rHy=$@5(B. 2011-07-14 Tsuyoshi Kitamoto * skk-vars.el (skk-tankan-mode-original-window-configuration): $B?7$?$JJQ?t(B. * skk-tankan.el (skk-tankan): M-x skk-tankan $B * skk-vars.el (skk-update-jisyo-function) (skk-save-jisyo-function): docstring $B$r99?7(B. 2011-07-10 Tsuyoshi Kitamoto * skk.el (skk-kakutei, skk-search-jisyo): $B%3%a%s%H$rDI2C(B. * doc/skk.texi (skk-search-jisyo-file): $B99?7(B. 2011-07-09 Tetsuo Tsukamoto * skk-emacs.el (skk-tooltip-show-at-point): Workaround for NTEmacs with its frame maximized. Eval the frame parameters left and top. 2011-07-09 Tsuyoshi Kitamoto * skk.el (skk-save-jisyo-original, skk-create-file) (skk-get-jisyo-buffer, skk-search-jisyo-file) (skk-compose-ignore-word): $B%3%a%s%H$d(B docstring $B$K5-:\$N$"$C$?C18l(B $B!V%*%W%7%g%s0z?t!W$r!V%*%W%7%g%J%k0z?t!W$XE}0l$7$?(B. * skk-macs.el (skk-erase-prefix): $BF1>e(B. * skk-jisyo-edit-mode.el (skk-edit-private-jisyo): $BF1>e(B. * skk-gadget.el (skk-ad-to-gengo, skk-gengo-to-ad): $BF1>e(B. 2011-07-08 Tsuyoshi Kitamoto * skk-server.el (skk-server-version): skk-error() $B$N0z?t$N=g=x$,5U$G(B $B$"$C$?$?$a!"$3$l$r=$@5(B. 2011-07-02 Tsuyoshi Kitamoto * doc/skk.texi: $B99?7(B. * skk-kcode.el (skk-display-code-for-char-at-point): if() $B$K$D$$$F!"(Bthen $B$G$b(B else $B$G$b(B t $B$rJV$9%3!<%I$G$"$k$?$a!"(Bif() $B$r(B $BH4$1$?$"$H$K(B t $B$rI>2A$9$k$h$&$K$7$?(B. (skk-display-code): "$BH=JL$G$-$J$$J8;z$G$9(B" $B$K$D$$$F!"(Bskk-error() $B$r(B $B$d$a$F%a%C%;!<%82=$7$?(B. $B$3$l$^$G$NI=<(J}K!!J%D!<%k%A%C%W$^$?$O%(%3!<%(%j%"!K$K2C$(!"JL%&%#%s(B $B%I%&$G$NI=<($r%5%]!<%H$7$?(B. skk-show-candidates-always-pop-to-buffer $B$HO"F0$9$k(B. 2011-07-02 Tsuyoshi Kitamoto * doc/skk.texi, Makefile, skk-version.el: Bump SKK version to 14.3.50. 2011-07-01 Tsuyoshi Kitamoto * Version 14.3 Juso released. * doc/skk.texi, Makefile, skk-version.el: Bump SKK version to 14.3. 2011-06-28 Tsuyoshi Kitamoto * skk-tankan.el (skk-tankan-get-char-data-internal): let $B$G:Q$`2U=j(B $B$r(B let* $B$+$i(B let $B$XJQ99(B. * skk-look.el (skk-look-1): $BF1>e(B. * skk-kcode.el (skk-display-code) (skk-list-chars-find-char-string-for-code): $BF1>e(B. * skk-jisx0201.el (skk-set-okurigana): $BF1>e(B. * skk.el (newline, newline-and-indent): use skk-called-interactively-p instead of interactive-p. 2011-06-26 Tsuyoshi Kitamoto * Makefile (VERSION): * doc/skk.texi: * skk-version.el (skk-version): Bump to 14.2.94. 2011-06-26 Tsuyoshi Kitamoto * doc/skk.texi (skk-server-version): ($B%5!<%P%3%s%W%j!<%8%g%s(B): $BDI2C(B. * skk-vars.el (skk-kcode-method): 'this-key $B$rDI2C(B. (skk-server-report-response): docstring $B$r=$@5(B. * skk-kcode.el (skk-input-by-code-or-menu): skk-kcode-method $B$NF0:n$K(B 'this-key $B$rDI2C(B. 2011-06-25 Tsuyoshi Kitamoto * skk-macs.el (skk-fit-window): New function. * skk-annotation.el (skk-annotation-show-buffer): Use it. * skk.el (skk-henkan-show-candidates-buffer) (skk-show-num-type-info): Use it. 2011-06-23 Tsuyoshi Kitamoto * doc/skk.texi (skk-henkan-face): $B2CI.(B. (skk-make-face): $B=$@5(B. 2011-06-21 Tsuyoshi Kitamoto * doc/skk.texi (skk-kcode-method): $BDI2C(B. * skk-kcode.el (skk-list-chars-next-line) (skk-list-chars-previous-line): $B%3!<%I$N8+D>$7(B. 2011-06-19 Tetsuo Tsukamoto * skk-kcode.el (skk-list-chars): Move to skk-list-chars-default-charstr if it is set. (skk-list-chars-jump): Rename from `skk-list-chars-move-to-char'. (skk-list-chars-move-to-char): Redefine as a function to just move point. * skk-vars.el (skk-list-chars-mode-map): Modify for `skk-list-chars-jump'. (skk-list-chars-default-charstr): New variable. 2011-06-19 Tetsuo Tsukamoto * skk-kcode.el (skk-input-by-code-or-menu): Redefine to check skk-kcode-method. (skk-kcode-read-code-string, skk-kcode-parse-code-string) (skk-kcode-find-char-string, skk-list-chars-move-to-char): New functions. (skk-list-chars-code-input): Call `skk-list-chars-move-to-char' with the optional arg non-nil. (skk-display-code): Use `skk-char-charset'. * skk-macs.el (skk-char-charset): New function. * skk-vars.el (skk-kcode-method): New user option. (skk-list-chars-mode-map): Define "g" for `skk-list-chars-move-to-char'. 2011-06-18 Tsuyoshi Kitamoto * skk-vars.el (skk-tooltip-x-offset, skk-tooltip-y-offset) (skk-tut-lang): docstring $B$r=$@5(B. * doc/skk.texi (skk-tut-lang, skk-hint-start-char) (skk-tooltip-hide-delay): $BDI2C(B. ($BJQ490LCV$N;XDjJ}K!(B): $B99?7(B. 2011-06-16 Tsuyoshi Kitamoto * doc/skk.texi (skk-annotation-browse-key): $BDI2C(B. 2011-06-15 Tetsuo Tsukamoto * doc/skk.texi: Modify for ja-dic. 2011-06-12 Tetsuo Tsukamoto * skk-cus.el (skk-cus-set): Accept an optional arg ALIST. * skk-jisyo-edit-mode.el: Require skk-cus instead of custom and cus-edit. (skk-edit-private-jisyo): Call `skk-cus-set' instead of directly calling `custom-save-all'. (skk-jisyo-edit-mode): Move the previous docstring change describing the local key bindings to the docstring of `skk-edit-private-jisyo' which actually binds these keys. 2011-06-12 Tetsuo Tsukamoto * skk-vars.el (skk-jisyo-edit-user-accepts-editing): New Variable. * skk-jisyo-edit-mode.el: Require custom, cus-edit and skk-vars. Require skk-macs at compile time. (skk-edit-private-jisyo): Check skk-jisyo-edit-user-accepts-editing to know if user really wants to edit the private dictionary at her/his own risk. 2011-06-12 Tsuyoshi Kitamoto * skk-jisyo-edit-mode.el (skk-edit-private-jisyo):$B * Makefile (VERSION): * doc/skk.texi: * skk-version.el (skk-version): Bump to 14.2.93. 2011-06-11 Tsuyoshi Kitamoto * skk-setup.el.in: 2011-05-20 $B$N!V%-!<%P%$%s%I(B C-f10 $B$K(B skk-edit-private-jisyo $B$r3d$jEv$F!W$OC$7$^$9(B. * skk-vars.el (skk-tooltip-face): docstring $B$r=$@5(B. (skk-display-code-tankan-radical-face) (skk-display-code-tankan-annotation-face) (skk-list-chars-face, skk-list-chars-table-header-face): New face. (skk-verbose-kbd-face): $BB0@-(B inverse-video $B$rC$7!"%G%U%)%k%H(B $B?'$rM?$($?(B. (skk-verbose-intention-face): $BB0@-(B bold $B$r(B t $B$H$7$F$_$?(B. * skk-kcode.el: require font-lock $B$rL58z2=(B($B%3%a%s%H2=(B). (skk-display-code): skk-display-code-tankan-radical-face, skk-display-code-tankan-annotation-face $B$rF3F~(B. (skk-list-chars-sub): skk-list-chars-table-header-face $B$rF3F~(B. (skk-list-chars): skk-list-chars-face $B$rF3F~(B. * doc/skk.texi: skk-jisyo-registration-badge-face, skk-display-code-tankan-radical-face, skk-display-code-tankan-annotation-face, skk-list-chars-face, skk-list-chars-table-header-face $B$K4X$9$k5-=R$rDI2C(B. skk-input-by-code-or-menu $B$K4X$9$k5-=R$rI|3h(B. 2011-06-10 Tsuyoshi Kitamoto * skk-vars.el (skk-jisyo-registration-badge-face) :New face. (skk-verbose-kbd-face): $BB0@-(B inverse-video $B$r(B t $B$H$7$F$_$?(B. * skk.el (skk-henkan-in-minibuff): Use skk-jisyo-registration-badge-face. * context-skk.el (context-skk-insert): message $B4X?t$N;H$$J}$r=$@5(B. * skk-vars.el (skk-rom-kana-base-rule-list): 2010-12-09 $B$N(B commit $B$rD{@5!#(B\ $B$N%?%$%W$O(B skk-input-by-code-or-menu $B$N5/F0$KLa$9(B. 2011-06-10 Tetsuo Tsukamoto * skk.el (skk-toggle-isearch-mode): message $B4X?t$N;H$$J}$r=$@5(B. [skk 7438]. 2011-06-09 Tetsuo Tsukamoto * skk-kcode.el (skk-display-code, skk-input-by-code-or-menu-jump): Add missing format strings to `message'. * skk-vars.el (skk-menu-items): Ditto. 2011-06-09 Tsuyoshi Kitamoto * skk-vars.el (skk-verbose-intention-face, skk-verbose-kbd-face): New face. * skk-annotation.el (skk-annotation-message): Use new face. * skk.el (skk-setup-verbose-messages): Use new face. * doc/skk.texi: $B>e5-(B face $B$K4X$9$k5-=R$rDI2C(B. * skk.el (skk-toggle-isearch-mode): $B4X?t(B message $B$NBh(B1$B0z?t$K(B "%s" $B$r(B $BIU2C(B. * skk-annotation.el (skk-annotation-save-and-quit) (skk-annotation-quote): $BF1>e(B. * skk-macs.el (ignore-errors): 2011-06-04 $B$NJQ99$rC$7(B. [skk 7427]. 2011-06-08 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia): Also search "Word" for "word". This is needed for proper nouns. (skk-annotation-wikipedia-1) (skk-annotation-wikipedia-normalize-word): Take an optional arg PRESERVE-CASE. 2011-06-08 Tsuyoshi Kitamoto * skk-vars.el (skk-kakutei-jisyo, skk-search-prog-list) (skk-jisyo-updated, skk-rom-kana-rule-list): docstring $B$r=$@5(B. 2011-06-06 Tsuyoshi Kitamoto * skk-inline.el (skk-add-background-color): $B0z?t(B COLOR $B$N%A%'%C%/$r(B $B873J$K$9$k$?$a(B color-defined-p $B$rDI2C(B. 2011-06-05 Tsuyoshi Kitamoto * skk-annotation.el (skk-annotation-save-and-quit) (skk-annotation-quote): $BM>J,$J(B %s $B$r:o=|(B. * skk-macs.el (skk-message, skk-error, skk-yes-or-no-p) (skk-y-or-n-p): Update docstring. * Makefile (VERSION): * doc/skk.texi: * skk-version.el (skk-version): Bump to 14.2.92. 2011-06-05 Tsuyoshi Kitamoto * doc/skk.texi (skk-search-excluding-word-pattern-function): $BDI2C(B. * skk-vars.el (skk-search-excluding-word-pattern-function): Update docstring. * skk.el (skk-update-jisyo-p): Update docstring. 2011-06-04 Tsuyoshi Kitamoto * skk-macs.el (ignore-errors): GNU Emacs 22 $B0J2<$N>l9g$K(B defmacro $B$7$F$$$^$7$?$,!"(BGNU Emacs 21.4 (cl-macs.el) $B$K$bB8:_$7$F$*$jIaDL$K(B $B;H$($k$3$H$+$i!"(Bskk-macs.el $B$+$i$O:o=|$7$?!#(B * skk-vars.el (skk-read-from-minibuffer-function): Update docstring. * skk-macs.el (skk-downcase): Update docstring. * doc/skk.texi (skk-read-from-minibuffer-function): $BDI2C(B. * skk-tut.el (skktut-init-variables-alist): $B=i4|2=BP>]$NJQ?t$H$7$F(B skk-dcomp-multiple-activate, skk-read-from-minibuffer-function, skk-verbose, debug-on-error $B$rDI2C(B. * skk.el (skk-ovwrt-len, skk-compute-henkan-lists): Use line-end-position instead of (progn (end-of-line) (point)). * skk-tut.el (skktut-next-answer-buffer, skktut-today): Ditto. * skk-server-completion.el (skk-server-completion-search-midasi): Ditto. * skk-auto.el (skk-okuri-search-subr-original): Ditto. * skk-annotation.el (skk-annotation-last-word-1): Ditto. * skk-auto.el, skk-isearch.el, skk-lookup.el, skk-num.el, skk-study.el: * skk-tankan.el, skk-vars.el, skk.el: function foo $B$r(B #'foo $B$X$H=q$-49$((B. * skk-annotation.el, skk-comp.el, skk-cursor.el, skk-cus.el: * skk-develop.el, skk-gadget.el: * skk-isearch.el, skk-jisx0201.el, skk-jisyo-edit-mode.el: * skk-kcode.el, skk-macs.el, skk-num.el, skk-server-completion.el: * skk-tankan.el, skk-tut.el, skk-vars.el, skk.el: lambda $B$O%^%/%mE83+$G(B function $BIU2C$5$l$k$?$a(B #' $B$OITMW(B. 2011-06-02 Tsuyoshi Kitamoto * skk-emacs.el (skk-emacs-menu-replace, skk-tooltip-resize-text): $B%3!<%I$N@0M}(B. * skk-tankan.el (skk-tankan-select-tankanji-kouho): Use cddr instead of cdr cdr. * skk-kcode.el (skk-input-by-code-or-menu-jump): Ditto. * skk-emacs.el (skk-emacs-mouse-position): Ditto. * skk-study.el (skk-study-check-alist-format-1): Use cdar instead of cdr car. * skk-num.el (skk-num-convert): Ditto. * skk.el (skk-current-kuten, skk-nunion): Use cadr instead of car cdr. * skk-macs.el (eval-when-compile, eval-when-compile): Ditto. * skk-kcode.el (skk-input-by-code-or-menu-jump): Ditto. * skk-emacs.el (skk-emacs-mouse-position): Ditto. * skk-study.el (skk-study-check-alist-format-1): Use caar instead of car car. * skk-kcode.el (skk-input-by-code-or-menu-jump): Ditto. * skk-gadget.el (skk-default-current-date): Ditto. 2011-06-01 Tsuyoshi Kitamoto * skk.el (skk-setup-jisyo-buffer, skk-kana-input) (skk-jisx0208-latin-insert, skk-henkan-show-candidate-subr) (skk-check-size-and-do-save-jisyo): Use zerop instead of `= foo 0'. * skk-xemacs.el (skk-xemacs-balloon-help-resize-help-frame): ditto. * skk-tankan.el (skk-tankan-select-tankanji-kouho): ditto. * skk-study.el (skk-study-search-1, skk-study-read-1): ditto. * skk-lookup.el (skk-lookup-process-okurigana): ditto. * skk-look.el (skk-look-1): ditto. * skk-kcode.el (skk-list-chars-sub): ditto. * skk-isearch.el (skk-isearch-redo-function): ditto. * skk-hint.el (skk-previous-candidate): ditto. * skk-dcomp.el (skk-dcomp-multiple-get-candidates) (skk-dcomp-multiple-show): ditto. * skk-comp.el (skk-comp-do): ditto. 2011-05-31 Tsuyoshi Kitamoto * skk-macs.el (skk-key-binding-member): $BITMW$J(B lambda $B$r:o=|(B. * skk-tankan.el (skk-tankan-select-tankanji-kouho): lambda $B$r(B #'lambda $B$XJQ99(B. 2011-05-30 Tsuyoshi Kitamoto * skk-macs.el (skk-delete-overlay): New macro. (skk-inline-hide): Remove function. * skk-dcomp.el (skk-dcomp-multiple-hide): Remove function. (skk-dcomp-cleanup-buffer, skk-dcomp-multiple-show) (skk-dcomp-before-kakutei, skk-dcomp-after-delete-backward-char): Use macro skk-delete-overlay. * skk-inline.el (skk-inline-hide-1): Remove function. (skk-inline-show): Use macro skk-delete-overlay. * skk.el (skk-henkan, skk-henkan-in-minibuff): Use macro skk-delete-overlay. 2011-05-29 Tsuyoshi Kitamoto * skk-develop.el (before-init-hook): $BITI,MW$J%-!<%o!<%I$r:o=|(B. * skk-comp.el (skk-comp-search-current-buffer) (skk-comp-re-search-current-buffer): $B%$%s%G%s%H$r@07A(B. (skk-comp-by-history): Use function skk-remove-duplicates. * skk-emacs.el (skk-emacs-prepare-menu) (skk-emacs-prepare-modeline-properties): $B%$%s%G%s%H$r@07A(B. * skk-vars.el (skk-list-chars-original-window-configuration): New Variable. * skk-kcode.el (skk-list-chars-quit): Use skk-list-chars-original-window-configuration. (skk-list-chars-insert): $BA^F~@h%P%C%U%!$r(B buffer-live-p $B$G3NG'(B. * skk-annotation.el (skk-annotation-message): $B=u8@E*%a%C%;!<%8$r(B face $B$G?'IU$1$7$?(B. (skk-annotation-insert): docstring $B$rIU2C$7$?(B. (skk-annotation-get): $B%3!<%I8+D>$7(B. * skk.el (skk-setup-verbose-messages): $B=u8@E*%a%C%;!<%8$r(B face $B$G?'IU$1$7$?(B. 2011-05-28 Tsuyoshi Kitamoto * Makefile (VERSION): * doc/skk.texi: * skk-version.el (skk-version): Bump to 14.2.91. 2011-05-28 Tsuyoshi Kitamoto * skk-vars.el (XXX workaround): while $B$+$i(B dolist $B$XJQ99(B. * skk-tankan.el (skk-tankan): while $B$+$i(B dolist $B$XJQ99(B. * skk-num.el (skk-num-flatten-list): while $B$+$i(B dolist $B$XJQ99(B. * skk-kcode.el (skk-list-chars): while $B$+$i(B dotimes $B$XJQ99(B. * skk-gadget.el (skk-today-execute-char): while $B$+$i(B dolist $B$XJQ99(B. * skk.el (skk-remove-minibuffer-setup-hook, skk-setup-auto-paren) (skk-kill-local-variables, skk-search-extra-jisyo-files) (skk-remove-duplicates): while $B$+$i(B dolist $B$XJQ99(B. (skk-define-j-mode-map, skk-define-jisx0208-latin-mode-map) (skk-define-abbrev-mode-map): while $B$+$i(B dotimes $B$XJQ99(B. (skk-mode-exit, skk-setup-charset-list, skk-setup-verbose-messages): $B%3!<%I8+D>$7(B. 2011-05-27 Tsuyoshi Kitamoto * skk.el (skk-get-jisyo-buffer): $B%$%s%G%s%H$r@07A(B. (skk-search, skk-numeric-program-p, skk-search-server) (skk-update-jisyo-original, skk-quote-char): docstring $B$r=$@5(B. (skk-undo-kakutei): skk-error $B$r=|5n(B. (skk-mode-exit): $B%3!<%I8+D>$7(B. 2011-05-25 Tsuyoshi Kitamoto * skk.el (skk-mode-exit): $B%3!<%I8+D>$7(B. (skk-ovwrt-len): $BITMW$J(B let $B$r:o=|(B. (skk-insert-str): skk-ovwrt-len $B$N8F$S=P$7J}K!$rJQ99(B. (skk-kakutei-cleanup-buffer): skk-ovwrt-len $B$N8F$S=P$7J}K!$rJQ99(B. (skk-show-num-type-info): Use fit-window-to-buffer except XEmacs 21.4. 2011-05-24 Tsuyoshi Kitamoto * skk.el (skk-toggle-kutouten): $B%a%C%;!<%8=g$r!V6gE@(B $BFIE@!W$+$i(B $B!VFIE@(B $B6gE@!W$X(B $BJQ99(B. (skk-search-jisyo): $BITMW$J(B progn $B$r:o=|(B. (skk-mode-exit): skk-mode $B$rH4$1$?:]$O(B *$B8uJd(B*$B%P%C%U%!$H(B *SKK annotation*$B%P%C%U%!$r:o=|$9$k$h$&JQ99$7$?(B. 2011-05-23 Tsuyoshi Kitamoto * skk-macs.el (skk-multiple-line-string-width): $B:o=|(B. * skk.el (skk-henkan-show-candidate-subr): skk-multiple-line-string-width $B$KBe$($F(B skk-max-string-width $B$r;HMQ(B. 2011-05-22 Tsuyoshi Kitamoto * skk.el (skk-multiple-line-string-width): skk-macs.el $B$X0\F0(B. (skk-kakutei-cleanup-buffer): $B%$%s%G%s%H$r@07A(B. * skk-macs.el (skk-max-string-width): New function. (skk-multiple-line-string-width): skk.el $B$+$i0\F0(B. * skk-inline.el (skk-inline-show-vertically): Use skk-max-string-width. (skk-inline-show-vertically): $B%$%s%G%s%H$r@07A(B. * skk-dcomp.el (skk-dcomp-multiple-show): Use skk-max-string-width. (skk-dcomp-do-completion, skk-kana-input, skk-comp-previous) (skk-comp, skk-comp-do): $B%$%s%G%s%H$r@07A(B. * skk-kcode.el (skk-display-code): Use replace-regexp-in-string. 2011-05-22 Tsuyoshi Kitamoto * Makefile (VERSION): * doc/skk.texi: * skk-version.el (skk-version): Bump to 14.2.90. 2011-05-22 Tsuyoshi Kitamoto * doc/skk.texi (skk-tooltip-face): $B5-=R$r=$@5(B. * skk-vars.el (skk-tooltip-face): docstring $B$r=$@5(B. * skk-emacs.el (skk-tooltip-show-at-point, skk-tooltip-show-1): docstring $B$rDI2C(B. * skk.el (skk-henkan-show-candidates) (skk-henkan-show-candidate-subr, skk-henkan-in-minibuff) (skk-show-num-type-info, skk-kakutei-initialize): $B%=!<%9%3!<%I$N%$%s%G%s%H$r=$@5(B. 2011-05-21 Tsuyoshi Kitamoto * skk-dcomp.el (skk-dcomp-multiple-show): $B%3%a%s%H$r=$@5(B. * skk.el (skk-kill-emacs-without-saving-jisyo): docstring $B$H(B $B%a%C%;!<%8$r=$@5(B. (skk-multiple-line-string-width): $B5!G=$OJQ$($:%=!<%9%3!<%I$r8+D>$7$?(B. 2011-05-20 Tsuyoshi Kitamoto * skk-vars.el (skk-auto-okuri-process): docstring $B$r99?7(B. * skk-jisyo-edit-mode.el (skk-jisyo-edit-mode): docstring $B$r99?7(B. (skk-edit-private-jisyo): $B4J0W$J%,%$%@%s%9$rI=<((B. * skk-setup.el.in: $B%-!<%P%$%s%I(B C-f10 $B$K(B skk-edit-private-jisyo $B$r(B $B3d$jEv$F(B. 2011-05-19 Tsuyoshi Kitamoto * skk.el (skk-mode): docstring $B$r99?7(B. * skk-vars.el (skk-background-mode): docstring $B$r99?7(B. (skk-auto-start-henkan-keyword-list): docstring $B$r99?7(B. 2011-05-18 Tsuyoshi Kitamoto * SKK-MK (SKK-MK-generate-autoloads-el): kill-buffer $B$NA0$K(B set-buffer-modified-p $B$r(B nil $B$H$7$?(B. 2011-05-16 Tetsuo Tsukamoto * SKK-MK (SKK-MK-generate-autoloads-el): Undo the previous changes. instead, set buffer-file-name. 2011-05-15 Tetsuo Tsukamoto * SKK-MK (SKK-MK-generate-autoloads-el): Call `autoload-generate-file-autoloads' if it is defined instead of `generat-file-autoloads'. * skk-comp.el (skk-comp-get-regexp): Add autoload cookie. 2011-05-15 Tsuyoshi Kitamoto * doc/skk.texi: $B?7JQ?t(B context-skk-mode-off-message $B$K4X$9$k5-=R(B. * context-skk.el: RCS $B$N%-!<%o!<%IE83+(B Id $B$H(B Date $B$rA^F~(B. (context-skk-mode-off-message): New variable. 2011-05-08 Tetsuo Tsukamoto * SKK-MK (SKK-MK-generate-autoloads-el): Set generated-autoload-file under Emacs 24 or later. * skk-annotation.el (skk-annotation-wikipedia-1): If `url-queue-retrieve' is defined, call it instead of `url-retrieve'. 2011-05-04 Tsuyoshi Kitamoto * skk.el (skk-henkan-skk-region-by-func): typo docstring. (skk-setup-modeline, skk-henkan-1, skk-henkan-show-candidates) (skk-previous-candidate, skk-kakutei, skk-update-jisyo-1) (skk-katakana-region, skk-hiragana-region) (skk-jisx0208-latin-region, skk-latin-region) (skk-henkan-skk-region-by-func): $B%=!<%9%3!<%I$N%$%s%G%s%H$r=$@5(B. (skk-make-face): $B5!G=$OJQ$($:!"%=!<%9%3!<%I$r8+D>$7$?(B. 2011-05-03 Tsuyoshi Kitamoto * skk-vars.el (skk-inhibit-ja-dic-search, skk-jisyo-save-count) (skk-jisyo-updated, skk-kuten-touten-alist): docstring $B$r99?7(B. * skk-tankan.el (skk-tankan-search, skk-tankan-bushu-compread): docstring $B$r99?7(B. * skk-server.el (skk-search-server-1): docstring $B$r99?7(B. * skk-macs.el (skk-string<=): docstring $B$r99?7(B. * skk-kcode.el (skk-make-string): docstring $B$r99?7(B. * skk-kakasi.el (skk-hurigana-1): $B%$%s%G%s%H$r@07A(B. (skk-romaji-region, skk-romaji-message): docstring $B$r99?7(B. * skk-gadget.el (skk-clock): docstring $B$r99?7(B. (skk-ad-to-gengo-1): typo (Unkown -> Unknown). * doc/skk.texi: skk-comp-lisp-symbol $B$N5-=R$rDI2C(B. * skk-comp.el (skk-comp-lisp-symbol, skk-search-smart-find) (skk-search-lisp-symbol): docstring $B$r99?7(B. * skk-annotation.el (skk-annotation-add) (skk-annotation-wikipedia-region-or-at-point): docstring $B$r99?7(B. 2011-05-01 Tsuyoshi Kitamoto * doc/skk.texi ($BJQ495Z$S8D?M<-=q$K4X$9$kE}7W(B): $B99?7(B. * skk-vars.el (skk-dcomp-multiple-activate, skk-gengo-alist) (skk-month-alist, skk-day-of-week-alist, skk-isearch-mode-enable) (skk-isearch-mode-string-alist, skk-isearch-start-mode) (skk-isearch-initial-mode-when-skk-mode-disabled) (skk-show-inline, skk-inline-show-face) (skk-inline-show-background-color, skk-delete-okuri-when-quit) (skk-kakutei-early, skk-henkan-okuri-strictly, skk-keep-record) (skk-record-file, skk-preload, skk-status-indicator) (skk-latin-mode-string, skk-hiragana-mode-string) (skk-katakana-mode-string, skk-jisx0208-latin-mode-string) (skk-abbrev-mode-string, skk-emacs-id): docstring $B$r99?7(B. 2011-05-01 Tsuyoshi Kitamoto * doc/skk.texi: skk-share-private-jisyo $B$N5-=R$rDI2C(B. * skk-vars.el: docstring $BFb$NMQ8l!V<-=q%5!<%P!e(B. * skk-server-completion.el: $BF1>e(B. 2011-04-30 Tetsuo Tsukamoto * skk-macs.el (skk-called-interactively-p): Update. 2011-04-26 Tsuyoshi Kitamoto * skk-vars.el (skk-inhibit-ja-dic-search): docstring $B$r99?7(B. * doc/skk.texi: $BJQ?t(B skk-inhibit-ja-dic-search $B$H(B $B4X?t(B skk-search-ja-dic $B$K$D$$$F!"5-=R$rDI2C(B. docstring $B$+$i@Z$jE=$j$7$?$@$1$G$9$N$G!"$b$&>/$78+D>$7$^$9!#(B 2011-04-23 Tsuyoshi Kitamoto * skk-server.el (skk-server-version): skk-called-interactively-p $B$N0z?t$r(B 'any $B$+$i(B 'interactive $B$X$HJQ99(B [skk 7420]. * skk-tut.el (kill-buffer-hook): Ditto. * skk-version.el (skk-version): Ditto. * skk.el (skk-toggle-kutouten, skk-count-jisyo-candidates) (skk-count-jisyo-candidates-original): Ditto. 2011-04-20 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2011-04-18 Tsuyoshi Kitamoto * skk.el (skk-start-henkan, skk-backward-and-set-henkan-point): Fix docstring (use \\[universal-argument] instead of C-u). * skk-vars.el (skk-tut-lang): Ditto. * skk-tankan.el (skk-tankan): Ditto. * skk-annotation.el (skk-annotation-add): Ditto. 2011-04-17 Tsuyoshi Kitamoto * skk-study.el (skk-study-switch-current-theme): Fix docstring. 2011-04-17 Tsuyoshi Kitamoto * skk-macs.el (skk-called-interactively-p): New macro. interactive-p is an obsolete function (as of Emacs 23.2). use called-interactively-p instead. * skk-server.el (skk-server-version): use skk-called-interactively-p instead of interactive-p. * skk-tut.el (kill-buffer-hook): Ditto. * skk-version.el (skk-version): Ditto. * skk.el (skk-toggle-kutouten): Ditto. (skk-count-jisyo-candidates): Ditto. (skk-count-jisyo-candidates-original): Ditto. 2011-04-14 Tsuyoshi Kitamoto * doc/skk.texi: Add skk-study-switch-current-theme, skk-study-remove-theme, skk-study-copy-theme. 2011-04-09 Tsuyoshi Kitamoto * SKK-MK: Fix [skk 7393] remove-hook 'kill-emacs-hook 'skk-save-jisyo. 2011-03-27 Tetsuo Tsukamoto Suggested by Tatsuya Kinoshita . * experimental/skk-study.el: No longer in the repository. * skk-study.el: Install the experimental version. * experimental/GUIDELINE: Update. 2011-03-22 Tetsuo Tsukamoto * skk-vars.el (skk-tut-file): Fix docstring so as to advise users to specify the Japanese tutorial file. (skk-tut-lang): New user option. (skk-tut-file-alist): Abolish. (skk-tut-file-suffix-alist, skk-tut-current-lang): New variables. * skk-tut.el (skk-tut-find-tut-file, skk-tut-nicola-p): New functions. (skktut-init-variables-alist): Use `skk-tut-nicola-p'. (skktut-enable-tutmap): Ditto. (skk-tutorial): Set skk-tut-current-lang. Call `skk-tut-find-tut-file'. (skktut-nicola-tut-file): Specify file name sans directory. (skktut-setup-working-buffer): Accept an argument. 2011-03-21 Tetsuo Tsukamoto * skk-cdb.el (skk-search-cdb-jisyo): Check cdb-path instead of skk-cdb-large-jisyo. * skk-tankan.el (skk-search-tankanji): Do not try to find SKK-JISYO.L or SKK-JISYO.L.cdb. Call `skk-search-ja-dic-maybe' if no other methods are available. 2011-02-21 Tatsuya Kinoshita * experimental/skk-study.el: Do not require pym. Add defvar for jka-compr-compression-info-list and print-quoted at compile time. Use kill-emacs-hook instead of skk-before-kill-emacs-hook. (ring-elements): Remove definition for Emacs 20. (skk-study-save, skk-study-read-1): Remove APEL dependencies. Use `skk-string<' instead of `string<'. 2011-01-23 Tsuyoshi Kitamoto * doc/skk.texi: $B8m;z$N=$@5!"%=!<%9$N@07A(B. 2011-01-15 Tsuyoshi Kitamoto * skk.el (skk-insert-str): Docstring $B$r=$@5(B. (skk-auto-start-henkan): Docstring $B$r=$@5(B. (skk-what-char-type): Docstring $B$r=$@5(B. 2010-01-13 Tetsuo Tsukamoto * skk.el (skk-preload): Rewrite the docstring bacause 1) the original one was based on the old version of the function and was not complete, and 2) the previous modification by Mr. Tsuyoshii Kitamoto contains some misunderstandings. Of course I appreciate his efforts on improvement of the document so much. Please consult me if there remains any issue about it. (skk-preload-jisyo): Undo the previous indent fix which I believe is unnecessary, even though I really appreciate his attitude toward better and more readble codes. Please feel free to consult me if anyone still thinks it is important. 2011-01-12 Tsuyoshi Kitamoto * skk.el (skk-preload): modify docstring. (skk-preload-jisyo): modify indent. (skk-make-face): modify indent. 2011-01-10 Tsuyoshi Kitamoto * skk-kcode.el (skk-display-code-for-char-at-point): interactive. (skk-list-chars): interactive. 2011-01-08 Teika Kazura * doc/skk.texi: Update. 2011-01-07 Tsuyoshi Kitamoto * SKK-CFG: Update comment. * doc/skk.texi: Add $BBPOCE*$J%$%s%9%H!<%k(B. * SKK-MK (SKK_INFO_DIR_FILE): New variable. (SKK-MK-install-info-1): Separate from SKK-MK-install-info. (DDSKK_Interactive_Installer): New. 2011-01-05 Tsuyoshi Kitamoto * SKK-MK (SKK-MK-make-setup-file): search-forward $B<:GT$N860x$G$"$C$?(B STRING $B0c$$(B "Initial setup for SKK" $B$r(B "initial setup for SKK" $B$X=$@5(B. skk-setup.el.in $B$H$N@09g@-$r?^$C$?(B. (SKK-MK-install-info): Fix indent. 2011-01-03 Tsuyoshi Kitamoto * skk-tankan.el (skk-tankan-bushu-compread): introduce skk-tankan-face. * skk.el (skk-insert): Add comment. 2011-01-03 Tsuyoshi Kitamoto * doc/skk.texi, Makefile, skk-version.el: Bump SKK version to 14.2.50. 2011-01-01 Tsuyoshi Kitamoto * Version 14.2 Mikuni released. * doc/skk.texi, Makefile, skk-version.el: Bump SKK version to 14.2. 2010-12-29 Tsuyoshi Kitamoto * SKK-CFG: Update comment. * doc/skk.texi: Update. 2010-12-26 Tsuyoshi Kitamoto * skk-jisyo-edit-mode.el (skk-edit-private-jisyo): Fix string. * doc/skk.texi: Update. * skk.el (skk-start-henkan): Fix docstring. (skk-backward-and-set-henkan-point): Fix docstring. (skk-check-size-and-do-save-jisyo): Fix docstring. * skk-vars.el (skk-cursor-abbrev-color): Fix string. (skk-kcode): Fix string. * skk-emacs.el (skk-emacs-menu-resource-ja): Fix string. 2010-12-25 Tsuyoshi Kitamoto * skk-vars.el: Update comment. * skk-comp.el: Update comment. * doc/skk.texi: Update. 2010-12-25 Tsuyoshi Kitamoto * doc/skk.texi, Makefile, skk-version.el: Bump SKK version to 14.1.93. 2010-12-23 Tsuyoshi Kitamoto * skk.el (skk-latin-mode): Fix docstring. (skk-jisx0208-latin-mode): Fix docstring. (skk-toggle-characters): Fix docstring. (skk-henkan-in-minibuff): Fix prompt message. * doc/skk.texi (skk-dcomp-multiple-activate): Update. 2010-12-21 Tsuyoshi Kitamoto * skk-kcode.el (skk-list-chars-forward, skk-list-chars-backward): Remove. (skk-list-chars-sub): Propertize mouse-face 'highlight when insert char. * skk-vars.el (skk-list-chars-skip-chars): Remove. (skk-list-chars-mode-map): Use next-completion/previous-completion instead of skk-list-chars-forward/skk-list-chars-backward. (skk-display-code-[prompt|char]-face): Update docstring. * doc/skk.texi: Add skk-tankan-face, skk-display-code-prompt-face and skk-display-code-char-face. 2010-12-19 Tsuyoshi Kitamoto * skk-vars.el (skk-tankan-face): New face. (skk-tankan-overlay): New variable. (skk-display-code-prompt-face): New face. (skk-display-code-char-face): New face. * skk-tankan.el (skk-tankan-overlay): New function. (skk-tankan-mode-prev, skk-tankan-mode-next): Use skk-tankan-overlay. (skk-tankan): Use skk-tankan-face. * skk-kcode.el (skk-display-code): Use skk-display-code-prompt-face and skk-display-code-char-face. 2010-12-17 Tsuyoshi Kitamoto * skk-vars.el (skk-search-prog-list): $BI8=`$K(B skk-tankan-search $B$r2C$($?(B. * doc/skk.texi: Add skk-save-jisyo-instantly. Update FAQ. 2010-12-17 Yu-ji Hosokawa * skk-vars.el (skk-save-jisyo-instantly, skk-jisyo-updated): New variable. (skk-inhibit-ja-dic-search): Fix docstring. * skk.el (skk-henkan-in-minibuff, skk-update-jisyo): Use it. 2010-12-16 Tsuyoshi Kitamoto * doc/skk.texi: Update. * skk-macs.el (skk-find-coding-system): Add docstring. 2010-12-12 Tsuyoshi Kitamoto * doc/skk.texi: Update. * skk-annotation.el: Update comment. * skk-vars: Insert new line for legible. * skk-tankan.el (skk-search-by-stroke-or-radical): Update Docstring. * skk-kcode.el (skk-list-chars-mode): Update comment. (skk-list-chars-other-charset): intern $B$KBe$($F(B intern-soft $B$r;HMQ(B. 2010-12-12 Tsuyoshi Kitamoto * doc/skk.texi, Makefile, skk-version.el: Bump SKK version to 14.1.92. 2010-12-12 Tsuyoshi Kitamoto * skk-kcode.el (skk-list-chars-next-line): Skip separate line. (skk-list-chars-previous-line): Ditto. * skk-vars.el (skk-list-chars-mode-map): Add C-f, C-b, C-n, C-p. 2010-12-11 Tetsuo Tsukamoto * skk-kcode.el: Require font-lock at compile time. (skk-display-code, skk-list-chars): Require font-lock. (skk-list-chars): Workaround for XEmacs. Refer to variable font-lock-doc-face instead of directly using the face with the same name. 2010-12-11 Tsuyoshi Kitamoto * doc/skk.texi: Update for $BJ8;z%3!<%IF~NO(B. * skk-tankan.el (skk-search-by-stroke-or-radical): $BIt * skk-tankan.el (skk-tankan): $B%3!<%I8+D>$7!#(B * skk-kcode.el (skk-list-chars-code-input): New function. (skk-list-chars-code-input-1): New function. (skk-list-chars): C-u \ $B$G(B $B%+!<%=%k0LCV$NJ8;z$r0z?t$K(B skk-list-chars $B$r * skk-vars.el (skk-rom-kana-base-rule-list): \ $B$N * skk-kcode.el (skk-list-chars): New function. to execute with type C-u $. 2010-12-05 Tsuyoshi Kitamoto * skk-kcode.el (skk-input-by-code-or-menu): $B7ZHy$J=$@5!#(B (skk-display-code): $B7ZHy$J=$@5!#(B 2010-12-04 Tsuyoshi Kitamoto * doc/skk.texi: Replace string from $B4A;z%3!<%I(B to $BJ8;z%3!<%I(B. * skk-kcode.el (skk-input-by-code-or-menu): JIS X 0213 $B$N#2LL$N6hE@(B $BHV9f$rF~NO2DG=$H$7$?!#7A<0(B 00-00-00 $B$r#2LL$H$_$J$9!#(B Unicode $B$NId9f0LCV$rF~NO2DG=$H$7$?!#7A<0(B U+nnnnn $B!#(B (skk-char-to-hex): $B%3!<%I8+D>$7!#(B (skk-display-code): $B?'IU$1(B (font-lock-keyword-face) $B$7$F8+$d$9$/$7$?!#(B 2010-12-02 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-test-html-tag): Bind coding-system-for-write while calling gzip. * skk-inline.el (skk-inline-hide-1): Rename from `skk-inline-hide'. * skk-macs.el (skk-inline-hide): New function. Call `skk-inline-hide-1'. 2010-12-02 Tetsuo Tsukamoto * doc/skk.texi: Update for skk-search-katakana, skk-search-sagyo-henkaku, skk-extra-jisyo-file-list, and ja-dic. * skk-annotation.el (skk-annotation-wikipedia-test-html-tag): New function separated from skk-annotation-wikipedia-retrieved. Check if the html data ends with . Prior to the test gunzip the data if it is gzipped. 2010-12-02 Tsuyoshi Kitamoto * skk-kcode.el (skk-display-code): Display UNICODE. 2010-12-01 Tetsuo Tsukamoto * doc/skk.texi: Update. * Makefile, SKK-MK: Remove codes related to skk-dic.el.in. * skk-dic.el.in: No longer in the repository. * skk-emacs.el (skk-search-ja-dic): New function. * skk-vars.el (skk-inhibit-ja-dic-search) (skk-extra-jisyo-file-list, skk-search-katakana) (skk-search-sagyo-henkaku): New user options. (skk-search-prog-list): Add `skk-search-ja-dic-maybe', `skk-search-extra-jisyo-files', `skk-search-katakana-maybe' and `skk-search-sagyo-henkaku-maybe'. (skk-tooltip-face): Change group to `skk-tooltip'. * skk.el (skk-search-extra-jisyo-files, skk-search-katakana-maybe) (skk-search-sagyo-henkaku-maybe, skk-search-ja-dic-maybe) (skk-preload-jisyo): New functions. (skk-preload): Also preload jisyo files specified in skk-extra-jisyo-file-list. (skk-search-katakana, skk-search-romaji): Do not do search when user inputs prefix/suffix. 2010-12-01 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-11-30 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-11-29 Tsuyoshi Kitamoto * skk-tankan.el: Update comment. * doc/skk.texi: Update. * skk-gadget.el (skk-today): $B%3!<%I8+D>$7!#(B * skk-kakasi.el (skk-gyakubiki-and-henkan): Typo function name. 2010-11-28 Tsuyoshi Kitamoto * skk-kakasi.el (skk-gyakubiki-and-hankan): New command. * skk-gadget.el (skk-today-execute-char): New function. (skk-today): Return this-command-keys's value if skk-henkan-mode on ($B"&(Bmode). Use function skk-today-execute-char. 2010-11-27 Tetsuo Tsukamoto * skk.el (skk-treat-new-word): Fix for the previous change in function where note and word were incorrectly set. 2010-11-27 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-11-26 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-11-25 Tetsuo Tsukamoto * skk.el (skk-treat-new-word): Swap car and cdr of return value. (skk-insert-new-word): Modify according to it. 2010-11-24 Tsuyoshi Kitamoto * doc/skk.texi: Update. * skk.el: Update docstring. 2010-11-24 Kiyoka Nishiyama * skk-azik.el (skk-azik-additional-rom-kana-rule-list): $BJQ49%k!<%k$r=$@5(B [skk 7327]$B!#(B 2010-11-23 Tsuyoshi Kitamoto * doc/skk.texi: Update. * skk.el (skk-henkan-show-candidate-subr): 2010-11-14 $B$N(B commit $B!J%D!<%k%F%#%C%W$G$N(B [$B;D$j(B99++] $B$N1&4s$;I=<(!K$O!"(BXEmacs $B$G$OL58z(B $B$H$7$^$7$?!#(B 2010-11-22 Tetsuo Tsukamoto * skk.el (skk-undo-kakutei): Do not call `skk-j-mode-on' here. (skk-undo-kakutei-subr): Call `skk-j-mode-on' when skk-mode is nil. (skk-kakutei): Call `skk-j-mode-on' when skk-undo-kakutei-prev-state indicates that the previous state was skk-j-mode. This is needed for the kakutei after user returns to skk-abbrev-mode with M-x skk-undo-kakutei. * skk-xemacs.el: Disable `skk-tooltip-show-at-point' for XEmacs 21.4. 2010-11-22 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-11-21 Tsuyoshi Kitamoto * skk.el (skk-henkan-show-candidates-buffer): little modify. (skk-undo-kakutei): skk-mode $B$G$O$J$$$H$-$K3NDj%"%s%I%%$rl9g!"(B $B3NDj%"%s%I%%$NK\=hM}$NA0$K(B skk-j-mode-on $B$rDI2C$7$?!#(B[skk 7319]$B!#(B * skk-vars.el: Update docstring. * doc/skk.texi: Update. 2010-11-20 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-11-19 Tetsuo Tsukamoto * doc/skk.texi, Makefile, skk-version.el: Bump SKK version to 14.1.91. 2010-11-18 Tsuyoshi Kitamoto * skk.el (skk-restart): little modify docstring. * skk-vars.el (skk-menu-items): Add menu item "Restart SKK". * skk-emacs.el (skk-emacs-menu-resource-ja): Ditto. * doc/skk.texi (skk-restart): Add description. * skk-tankan.el (skk-tankan): Modify the interactive spec. 2010-11-17 Tetsuo Tsukamoto * skk-isearch.el: Sort isearch-commands (at the last part of the file). 2010-11-16 Tsuyoshi Kitamoto * skk-cus.el: Modify strings. 2010-11-16 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-1): Update docstring. * skk-kcode.el (skk-input-by-code-or-menu): Improve readability. (skk-input-by-code-or-menu-jump, skk-input-by-code-or-menu-1): Enable tooltip. Improve readability. * skk.el (skk-setup-keymap): Fix typo in "skk-abbrev-mode". (skk-toggle-characters): Use `case'. (skk-ovwrt-len, skk-kana-input, skk-jisx0208-latin-insert): Improve readability. 2010-11-14 Tetsuo Tsukamoto * Pre-release 14.1.90. 2010-11-14 Tsuyoshi Kitamoto * skk.el (skk-henkan-show-candidate-subr): $B%D!<%k%F%#%C%W$G$b(B $B%$%s%8%1!<%?!J(B[$B;D$j(B99++]$B!K$r1&4s$;I=<(2DG=$H$7$?!#(B $B$[$+!"(Bdocstring $B$NHy=$@5!#(B * doc/skk.texi (skk-previous-candidate-keys): Add description. 2010-11-14 Tetsuo Tsukamoto * experimental/skk-ja-names.el: Update. * skk-vars.el (skk-previous-candidate-keys): Fix doc string. (skk-previous-candidate-char): Default to nil. 2010-11-14 Tsuyoshi Kitamoto * skk-vars.el (skk-previous-completion-use-backtab): Change default value. * doc/skk.texi: Ditto. 2010-11-13 Tetsuo Tsukamoto * experimental/skk-ja-names.el: New file. * skk-vars.el (skk-previous-candidate-keys): New variable. (skk-previous-candidate-char): Make obsolete. * skk.el (skk-setup-j-mode-map-options): Define keys in skk-previous-candidate-keys. (skk-henkan-show-candidates): Do not refer to skk-previous-candidate-char. Check key binding of the current input instead. (skk-previous-candidate): Update doc string. (skk-henan-off-by-quit): Temporarily check both last-command and this-command. * skk-isearch.el (skk-isearch-setup-keymap): Set keys in skk-previous-candidate-keys instead of skk-previous-candidate-char. * skk-kcode.el (skk-input-by-code-or-menu-jump) (skk-input-by-code-or-menu-1): Do not refer to skk-previous-candidate-char. Check key binding of the current input instead. * skk-macs.el (skk-region-active-p): Check feature xemacs at compile time. 2010-11-13 Tsuyoshi Kitamoto * skk-vars.el :Update Docstring. 2010-11-12 Tsuyoshi Kitamoto * doc/skk.texi: Add skk-inline.el. 2010-11-11 Tetsuo Tsukamoto * skk-comp.el (skk-comp-previous/next): Use `cond' instead of `case'. * skk.el (skk-henkan-off-by-quit): Rename from `skk-henkan-off'. Temporarily set both last-command and this-command. 2010-11-10 Tetsuo Tsukamoto * SKK-MK (SKK_MODULES): Add skk-inline. * doc/skk.texi: Update for skk-previous-completion-backtab-key. * skk-emacs.el: Modify copyright notice. * skk-inline.el: New file. * skk-comp.el (skk-try-completion, skk-completion-wrapper): Move functions from skk.el. (skk-previous-comp-maybe): Give name to anonymous funtion in `skk-setup-keymap'. (skk-comp-do, skk-comp-previous): Add an optional arg set-this-command. * skk-macs.el (skk-color-cursor-display-p): Check skk-running-gnu-emacs at compile time. * skk-tankan.el (skk-tankan): Modify the interactive spec. * skk-tut.el (skktut-init-variables-alist): Bind skk-try-completion-char, skk-next-completion-char and skk-previous-completion-char. * skk-vars.el (skk-quit-commands): New internal variable. (skk-previous-completion-backtab-key): Rename from `skk-previous-completion-backtab-key-description' and change custom type to `key-sequence', allowing users to customize it by C-q [key] in M-x customize-variable. * skk.el (skk-define-minibuffer-maps) (skk-setup-j-mode-map-options, skk-setup-latin-mode-map-options) (skk-setup-jisx0208-latin-mode-map-options) (skk-setup-abbrev-mode-map-options): New functions sepatated from `skk-setup-keymap'. (skk-start-henkan-prog-i): New function. (skk-define-start-henkan-progs): New macro to define `skk-start-henkan-prog-{0-9}'. (skk-inline-show, skk-inline-show-vertical, skk-inline-hide) (skk-add-background-color): Move to skk-inline.el. (skk-henkan-inactivate, skk-henkan-off): New functions called from advised `keyboard-quit' and `abort-recursive-edit'. 2010-11-08 Tsuyoshi Kitamoto * doc/skk.texi: Add description for skk-previous-completion-use-backtab. 2010-11-08 Tetsuo Tsukamoto * skk-vars.el (skk-large-jisyo, skk-aux-large-jisyo) (skk-cdb-large-jisyo, skk-tut-file): Provide some strings even when `locate-file' fails. 2010-11-07 Tsuyoshi Kitamoto * skk-vars.el (skk-previous-completion-use-backtab): New variable. (skk-previous-completion-backtab-key-description): Rename from skk-previous-completion-backtab. * skk.el (skk-setup-keymap): Use it. 2010-11-06 Tsuyoshi Kitamoto * SKK-MK (SKK_MODULES): remove skk-obsolete. * skk-emacs.el (skk-tooltip-resize-text): $B6XB'=hM}$N$7$?!#(B * skk-vars.el (skk-previous-completion-backtab): New variable. * skk.el (skk-setup-keymap): Use it. * doc/skk.texi: Add description for skk-try-completion-char, skk-next-completion-char, skk-previous-completion-char and skk-previous-completion-backtab. 2010-11-05 Tetsuo Tsukamoto * doc/skk.texi: Refer to changes in DDSKK 14.2. * skk-emacs (skk-tooltip-show-1): Avoid modifying tooltip-frame-parameters by side effect. * skk.el (skk-save-jisyo): Do not save in the batch mode. 2010-11-05 Tsuyoshi Kitamoto * skk-emacs.el (skk-tooltip-resize-text): skk-auto-start-henkan-keyword-list $B$rN.MQ$7$?6XB'=hM}!#(B * doc/skk.texi: Remove description with reference to skk-obsolete.el. 2010-11-04 Tsuyoshi Kitamoto * skk-obsolete.el: Remove file. * doc/skk.texi: Remove description with reference to skk-obsolete.el. * skk.el (skk-setup-keymap): Define key in skk-j-mode-map for skk-comp-previous/next. 2010-11-03 Tsuyoshi Kitamoto * skk-kcode.el (skk-input-by-code-or-menu): Modify prompt message. 2010-11-02 Tetsuo Tsukamoto * Makefile (VERSION): * doc/skk.texi (SKK-VERSION): * skk-version.el (skk-version): Bump to 14.1.90. * skk-emacs.el (skk-tooltip-resize-text): Use `memq' and `eq' for char comparisons to determine indent. 2010-11-02 Tsuyoshi Kitamoto * skk-emacs.el (skk-tooltip-resize-text): Bug fix [skk 7297]. 2010-10-29 Tetsuo Tsukamoto * skk-emacs.el: Workaround for Cocoa Emacs 23.2 where variable x-max-tooltip-size is not defined. (skk-emacs-max-tooltip-size): New variable. (skk-tooltip-max-tooltip-size): New function. (skk-tooltip-resize-text): Use it. Under Cocoa Emacs, set top and left as positions on the current frame. 2010-10-27 Tetsuo Tsukamoto * skk-cus.el (skk-custom-mode): Use custom faces. 2010-10-18 Tetsuo Tsukamoto * leim-list.el.in: Remove old codes for Emacs 20. 2010-10-10 Tsuyoshi Kitamoto * skk-emacs.el (skk-tooltip-resize-text): $BF~NO$,D9Bg$J>l9g!"(B $BE,EY$K2~9T$rA^F~$9$k(B [skk 7291]. 2010-10-05 Tsuyoshi Kitamoto * doc/skk.texi (Emacs21.4): Add restriction for Emacs21.4. (skk-dcomp-multiple-activate): Update. (skk-dcomp-multiple-face): Update. (skk-dcomp-multiple-trailing-face): Update. (skk-dcomp-multiple-selected-face): Update. 2010-09-28 Tsuyoshi Kitamoto * doc/skk.texi (skk-comp-circulate): Add new describe. 2010-09-27 Tsuyoshi Kitamoto * doc/skk.texi (skk-tooltip-mouse-behavior): Update. 2010-09-27 Tetsuo Tsukamoto * skk-vars.el (skk-find-window-system): Under Emacs 22 or older, just check the value of window-system. Under Emacs 23 or later, check the return values of function `window-system'. 2010-09-26 Tsuyoshi Kitamoto * doc/skk.texi (skk-dcomp-activate): Add new describe. (skk-show-annotation): Modify message. 2010-09-26 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-message): Modify message. * skk-emacs.el (skk-emacs-tool-bar-height) (skk-emacs-menu-bar-height): New variables. (skk-tooltip-show-at-point): Use them. Modify y-axis calculation. * skk-vars.el (skk-tooltip-y-offset): Default to zero. (skk-find-window-system): New function. (skk-use-color-cursor): Use it. * skk-macs.el (skk-color-cursor-display-p): Ditto. 2010-09-25 Tetsuo Tsukamoto * skk-macs.el (skk-region-active-p): New function. * skk-annotation.el (skk-annotation-wikipedia-region-or-at-point): Use it. 2010-09-23 Tsuyoshi Kitamoto * doc/skk.texi (skk-search-lisp-symbol): Add new describe. 2010-09-22 Tsuyoshi Kitamoto * doc/skk.texi (skk-byte-compile-init-file): Update. * skk-vars.el (skk-preload): Update docstring. 2010-09-21 Tetsuo Tsukamoto * SKK-MK (running-gnu-emacs): New variable. Use it instead of "(not (featurep 'xemacs)". (SKK_MODULES): Always include ccc, skk-cursor and context-skk for GNU Emacs. 2010-09-20 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-09-19 Tsuyoshi Kitamoto * SKK-MK: Update error message. * doc/skk.texi: Update. 2010-09-18 Tsuyoshi Kitamoto * skk.el (skk-setup-verbose-messages): insert a white space between words. * skk-vars.el (skk-verbose, skk-verbose-wait) (skk-verbose-message-interval, skk-henkan-on-message): Unified from $B$-$b$AB?$a$J%a%C%;!<%8(B to $B=u8@E*%a%C%;!<%8(B. * skk-annotation.el (skk-annotation-show-buffer): Use fit-window-to-buffer except XEmacs 21.4. (skk-annotation-insert): *SKK annotation* buffer changed to read only. * skk-macs.el (skk-in-minibuffer-p): Update docstring. * skk-obsolete.el (skk-obsolete-variable-alist): Add obsolete-variables skk-e21-*-face. * doc/skk.texi: typo, and update. 2010-09-17 Tsuyoshi Kitamoto * Makefile (VERSION): 14.1.50. * doc/skk.texi: Update. 2010-09-16 Tsuyoshi Kitamoto * skk-annotation.el (skk-annotation-wikipedia-region-or-at-point): Update docstring. * SKK-MK: Add comment. * SKK-CFG (SKK-MK-debugging): Add comment. 2010-09-13 Tsuyoshi Kitamoto * skk-setup.el.in: 2010-09-12 $B$N(B commit $B$O * SKK-MK, skk-xemacs.el: Require APEL for XEmacs. * skk-cus.el (skk-cus-params-visual): Support skk-show-inline's value `vertical'. * skk.el: Remove unnecessary defaliases. 2010-09-12 Tetsuo Tsukamoto * skk-macs.el, skk.el: Use `case' instead of `cond' where it is suitable. * skk-macs.el (string-to-int-list): Fix definition for XEmacs. (skk-update-minor-mode-map-alist): Use `add-to-list'. * skk.el (skk-setup-modeline): Make `left' precede. (skk-henkan-show-candidate-subr): Fix the condition to call `skk-show-inline'. 2010-09-12 Tsuyoshi Kitamoto * skk-setup.el.in (before-init-hook): add-hook 'before-init-hook for display skk-version on emacs startup screen. * skk-version.el (skk-startup-screen): Remove function. 2010-09-11 Tetsuo Tsukamoto * bayesian/skk-bayesian.el, skk-dcomp.el, skk-tankan.el: Do not use static.el. Use `eval-when-compile' instead. * skk-cus.el: Fix indents. * skk-kakasi.el: Do not require path-util. * skk-lookup.el, skk-vars.el, skk-xemacs.el: Do not use `defalias-maybe'. * skk-macs.el (characterp, int-char, set-buffer-multibyte): Add definitions for Emacsen missing these functions. (skk-string<): Defun instead of defsubst. * skk.el (skk-mode-invoke): Do not check for Emacs 21. * skk-annotation.el (skk-annotation-wikipedia-normalize-word): Make sure word is not a null string. * install.el: Import from APEL 10.8 with minimal modifications. * SKK-MK: Use it. Do not check for APEL except for Emacs 21. Do not require poem. * SKK-CFG: Remove descriptions on APEL_DIR and EMU_DIR. 2010-09-11 Tsuyoshi Kitamoto * skk-kcode.el (skk-display-code-for-char-at-point):code reviewd. (skk-display-code): code reviewd. * doc/skk.texi: Update. 2010-09-10 Tetsuo Tsukamoto * SKK-MK: Do not require poem here. No longer use `write-region-as-coding-system' and `insert-file-contents-as-coding-system'. (SKK_MODULES): Remove skk-e21. * ccc.el: Temporarily disable loading poe here. * skk-act.el, skk-azik.el: Use `skk-put-alist' and `skk-del-alist' instead of `put-alist' and `del-alist'. * skk-cus.el (custom-quote): Remove definition. * skk-e21.el: Remove file. * skk-emacs.el: Move contens of skk-e21.el to this file. * skk-lookup.el: static.el is not used. Do not require it. * skk-macs.el: Do not require static.el. Do not use `defun-maybe', `defmacro-maybe'. Use `eval-when-compile' instead. (string-to-char-list, string-to-int-list, character-to-event) (event-to-character, cancel-undo-boundary, skk-put-alist) (skk-del-alist, skk-remove-alist): Define here. (skk-update-minor-mode-map-alist): New function. * skk-num.el (skk-num-initialize): Use `skk-put-alist' instead of `put-alist'. * skk-server.el (skk-open-network-stream): Use skk-running-gnu-emacs. * skk-study.el: Temporarily disable loading pym here. * skk-tut.el (skktut-enable-tutmap, skktut-disable-tutmap): * skk-viper.el (skk-viper-normalize-map): Use `skk-update-minor-mode-map-alist' instead of `set-modified-alist'. * skk-vars.el: Do not use static.el. Use `eval-when-compile' instead (if needed). Also do not use `exec-installed-p' in path-util.el. Use `executable-find' instead. * skk-xemacs.el: Do not require poe. Require overlay. * skk.el: Temporarily disable loading poe, poem, pces, and alist. Use `skk-update-minor-mode-map-alist' instead of `set-modified-alist'. Use `executable-find' instead of `exec-installed-p'. Use skk-running-gnu-emacs. * skk-annotation.el, skk-cursor.el, skk-gadget.el, skk-isearch.el, * skk-jisx0201.el, skk-jisyo-edit-mode.el, skk-kakasi.el, * skk-kcode.el, skk-server.el, skk-viper.el: Do not require static.el. Use `eval-when-compile' instead. 2010-09-10 Tsuyoshi Kitamoto * skk-version.el (skk-startup-screen): Add new function. insert skk-version on emacs startup screen. * doc/skk.texi: Update. 2010-09-09 Tetsuo Tsukamoto * skk-cursor.el (skk-cursor-default-color): Defsubst. * skk-hint.el, skk-jisyo-edit-mode.el: Modify coding system to iso-2022-jp. * skk-var.el (skk-emacs-type): Abolish variable. (skk-running-gnu-emacs): New variable. * skk-kcode.el, skk-macs.el, skk.el: Use skk-running-gnu-emacs. * skk-annotation.el, skk-dcomp.el, skk-lookup.el, skk-macs.el, * skk.el: Remove codes for GNU Emacs 20. * skk-study.el, skk.el: No longer use `write-region-as-coding-system' and `insert-file-contents-as-coding-system'. * skk.el (skk-inline-show-vertical): Make sure beg-col is not negative. 2010-09-09 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-09-08 Tsuyoshi Kitamoto * skk-tankan.el (skk-tankan-get-char-data, skk-tankan-encode-0213-2): GNU Emacs 23 $B8~$1(B japanese-jisx0213-2 $BBP1~!#(B * skk-kcode.el (skk-display-code): tooltip $B;~$N(B `$' $B%a%C%;!<%8FbMF(B $B$KE,592~9T$r2C$($?!#(B 2010-09-07 Tsuyoshi Kitamoto * skk-kcode.el (skk-display-code): `$' $B$NI=<($r(B tooltip $B2=(B. 2010-09-07 Tetsuo Tsukamoto * SKK-MK: Define and use variable EMACS_SELF_CONTAINED for NTEmacs, Meadow, Carbon and Cocoa Emacsen. 2010-09-06 Tetsuo Tsukamoto * skk-version.el (skk-version): Bump to 14.1.50. 2010-09-05 Tetsuo Tsukamoto * Version 14.1 Syounai released. 2010-09-05 Tetsuo Tsukamoto * Makefile (VERSION) * skk-version.el (skk-version): Bump to 14.1. 2010-09-04 Tsuyoshi Kitamoto * skk-tankan.el (skk-tankan): Code update. * doc/skk.texi: Update. * skk-macs.el: Update docstring. 2010-09-03 Tsuyoshi Kitamoto * context-skk.el: Insert white space for comment and docstring. 2010-09-02 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-09-01 Tetsuo Tsukamoto * SKK-MK (SKK_DICTIONARIES): Also install cdb dictionaries. * doc/skk.texi: Update. 2010-08-31 Tetsuo Tsukamoto * Makefile (cdb): New target to create dic/SKK-JISYO.L.cdb. 2010-08-31 Yusuke Shinyama * etc/skk2cdb.py: New file. 2010-08-30 Tetsuo Tsukamoto * skk-tankan.el (skk-tankan): Add autoload cookie. 2010-08-29 Tsuyoshi Kitamoto * skk-kcode.el (skk-display-code): Add displaying skk-tankan-get-char-annotation. * skk-tankan.el: Update docstring. 2010-08-28 Tsuyoshi Kitamoto * skk-tankan.el (skk-tankan): New interactive function `M-x skk-tankan'. 2010-08-27 Tsuyoshi Kitamoto * skk-tankan.el (skk-tankan-search): $BAm2h?tJQ49$HIt * skk-annotation.el, skk-cursor.el, skk-dcomp.el, skk-gadget.el, skk-isearch.el, skk-kcode.el, skk-macs.el, skk-tankan.el, skk-tut.el, skk-vars.el, skk-viper.el, skk.el, tut-code/skk-tutcdef.el: Reduce usage of skk-emacs-type. * doc/skk.texi: Update. * skk-kcode.el (skk-display-code): For GNU Emacs 23.1 or later, call `char-charset' with skk-charset-list as the second arg. * skk.el (skk-setup-charset-list): Modify charsets' order. 2010-08-27 Tsuyoshi Kitamoto * skk-kcode.el (skk-display-code): $B%-!<(B `$' $B$r%?%$%W$7$?:]$N%a%C%;!<%8(B $B$K(B "$BAm(B%d$B2h(B(%s$BIt(B%d$B2h(B)" $B$rDI2C!#(B 2010-08-26 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-08-26 Tetsuo Tsukamoto * doc/skk.texi: Update. * bayesian/skk-bayesian.el (skk-bayesian-history-file) (skk-bayesian-corpus-file): Save in skk-user-directory if it is specified. * skk-tankan.el (skk-search-tankanji): Read a CDB dictionary when available. * skk-vars.el (skk-jisyo-update-vector): Update doc string. (skk-verbose-message-interval): New user option. * skk-annotation.el (skk-annotation-message): Use it. * skk.el (skk-setup-shared-private-jisyo): Make skk-jisyo-update-vector a bit longer than skk-jisyo-save-count. (skk-update-shared-jisyo): Do not call `skk-update-jisyo-1' for null entries. (skk-update-jisyo-original): Call `skk-save-jisyo' when skk-update-jisyo-count reaches skk-jisyo-save-count, i.e. usually before it reaches the length of skk-jisyo-update-vector. 2010-08-25 Tetsuo Tsukamoto * doc/skk.texi: Update. * skk-var.sl (skk-verbose-wait): Change default value to 1.5. * skk.el (skk-update-jisyo-original): Ensure that skk-jisyo-save-count is smaller than the length of skk-jisyo-update-vector. (skk-search-server): Check if file is readable. 2010-08-24 Tetsuo Tsukamoto * bayesian/README.ja, patches/README.ja: Convert to junet. * skk-annotation.el (skk-annotation-wikipedia-format-buffer): Check wgCategories to find disambiguation pages. (skk-annotation-wikipedia): Maybe search upcased word. (skk-annotation-wikipedia-1): Remove unused local variable note. * skk-comp.el: Don' warn for dont-bind-my-keys. * skk-gadget.el (skk-ignore-dic-word): Remove unused local variable save-okurigana. * skk-kcode.el (skk-jis2sjis2): Alias to `ignore' for XEmacs. * skk-server.el (skk-search-server-1): Check if file is readable. * skk-study.el: Don't warn for print-quoted. (skk-study-save): Remove unused local variable last-time. * skk-xemacs.el (skk-xemacs-balloon-help-resize-help-frame): Modify calculation of frame size. (skk-xemacs-need-redraw-tooltip, skk-xemacs-redraw-interval): New variables. (skk-tooltip-show-1): Redraw tooltip when skk-xemacs-need-redraw-tooltip is non-nil. * skk.el (skk-setup-delete-selection-mode): Remove unused local variable feature. (skk-compile-rule-list): Remove unused local variable rule. (skk-get-jisyo-buffer): Remove unused local variable obj. * tut-code/skk-tutcode.el (skk-tutcode-display-code-1): Remove codes written for Mule 2. 2010-08-23 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-region-or-at-point): Rename from `skk-annotation-wikipedia-region-or-at-point'. (skk-annotation-wikipedia-region): Redefine as an alias to it. (skk-annotation-wait-for-input): Modify according to the above changes. (skk-annotation-wikipedia-1): Also throw `skk-annotation-wikipedia-suspended' on quit. * skk-vars.el (skk-annotation-en-wiktionary-lang-regexp): Update. (skk-annotation-ja-wiktionary-part-of-speech-regexp): Fix doc string. * skk-xemacs.el (skk-tooltip-default-font-pixel-size): Change the default value to 12. 2010-08-22 Tetsuo Tsukamoto * bayesian: From experimental. * SKK-MK: Modify according to it. * doc/skk.texi: Update. * skk-tut.el (skktut-init-variables-alist): Bind skk-previous-char. (skktut-end-tutorial): Update message. 2010-08-22 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-08-21 Tetsuo Tsukamoto * Makefile (TAR): Use gtar, assuming the FreeBSD system. 2010-08-21 Tetsuo Tsukamoto * Pre-release 14.0.92. 2010-08-21 Tetsuo Tsukamoto * Makefile (VERSION): Bump to 14.0.92. * skk-tut.el (skktut-update-jisyo): Bind skk-jisyo-update-vector. * skk.el (skk-adjust-user-option): Check the default value of skk-share-private-jisyo. * skk-version.el (skk-version): Bump to 14.0.92. 2010-08-21 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-08-20 Tetsuo Tsukamoto * skk-tut.el (skktut-init-variables-alist): Bind skk-henkan-show-candidates-rows, skk-show-candidates-always-pop-to-buffer, skk-show-annotation and skk-verbose. (skktut-make-windows): Increase the height of the question window. (skktut-next-answer-buffer): In skktut-question-buffer, move point to bob. * skk-vars.el (skk-show-japanese-menu): Find Cocoa Emacs by checking the feature ns. (skk-candidate-buffer-background-color, skk-henkan-rest-indicator) (skk-henkan-show-candidates-keys-face) (skk-henkan-rest-indicator-face): Modify custom types and/or groups. * patches/README.ja: * patches/emacs22-gtk-fix-dynamic-menus.diff: * patches/emacs23_1-gtk-fix-dynamic-menus.diff: Add patches which fix the menu update problem in Emacs 22/23.1 with GTK 2.18 or later. 2010-08-19 Tetsuo Tsukamoto * doc/skk.texi: Update. * cdb.el: Undo previous changes for Emacs 20. * skk-e21.el (skk-tooltip-show-1): Bind x-gtk-use-system-tooltips to nil in order to use the Emacs' own tooltips and thus preserve text properties. * skk-obsolete.el (skk-obsolete-put-obsolete-mark): Under Emacs 20, call `make-obsolete-variable' with only 2 args. * skk-vars.el (skk-cdb-coding-system): Modify the custom type. * skk.el (skk-henkan-show-candidates-buffer): Do not call `fit-window-to-buffer' under Emacs 20 or XEmacs 21.4. 2010-08-19 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-08-18 Tetsuo Tsukamoto Suggested by Takeru Naito * skk-e21.el (skk-e21-prepare-menu): Find Cocoa Emacs by checking the feature ns. 2010-08-18 Tetsuo Tsukamoto * *: Update copyright notices. * doc/skk.texi: Update. * skk-emacs.el: New file. * SKK-MK (SKK_MODULES): Add skk-emacs for GNU Emacs. * cdb.el: Require cl at the compile time. (cdb-test-simple): Uncomment. (cdb-hash): Under Emacs 20, call mapcar instead of mapc. * skk-cdb.el: Add comments. * skk-e21.el (skk-jis2sjis2): Move function to skk-emacs.el. * skk-jisyo-edit-mode.el: Don't register "SKK-JISYO" to auto-mode-alist under Emacs 20. * skk-kcode.el: Update comments. * skk-vars.el (skk-show-inline, skk-dcomp-multiple-activate): Update docstrings. (skk-background-mode): defcustom. * skk-macs.el (skk-color-cursor-display-p): Rename from `skk-color-display-p'. (skk-cursor-set, skk-cursor-off): Check `skk-color-cursor-display-p'. * skk-cursor.el: Modify according to it. * skk.el: Require skk-emacs under GNU Emacs. (skk-add-background-color): Workaround for Emacs 21 where :inherit attribute does not always work correctly. (skk-adjust-user-option): Check `skk-color-cursor-display-p'. 2010-08-18 Tsuyoshi Kitamoto * doc/skk.texi: Remove remove README.Mac.ja related. 2010-08-17 Yusuke Shinyama * cdb.el, skk-cdb.el: New files. * SKK-MK (SKK_MODULES): Add cdb and skk-cdb. * skk-vars.el (skk-cdb-large-jisyo, skk-cdb-coding-system): New user options. (skk-search-prog-list): Add `skk-search-cdb-jisyo'. 2010-08-17 Tetsuo Tsukamoto * doc/skk.texi: Update. * skk-kcode.el (skk-jis2sjis2): Move funtion to skk-e21.el simply to avoid a compile error in XEmacs. * skk-xemacs.el (skk-tooltip-default-font-pixel-size): New variable. (skk-tooltip-resize-text): Use it. * skk-vars.el (skk-menu-items): Rename and reorder items. (skk-large-jisyo, skk-aux-large-jisyo, skk-cdb-large-jisyo): Make custom types compatible with Emacs 21. * skk-e21.el (skk-e21-prepare-menu): Avoid a warning for gtk-version-string in Emacs 21. (skk-e21-menu-resource-ja): Modify according to changes in skk-menu-items. * skk-cus.el: Require `cus-edit' instead of `wid-edit'. 2010-08-15 Tsuyoshi Kitamoto * doc/skk.texi: update. 2010-08-14 Tsuyoshi Kitamoto * skk-vars.el (skk-show-japanese-menu): Fix docstring. * doc/skk.texi: update. 2010-08-12 Tsuyoshi Kitamoto * doc/skk.texi: From @code{} to @command{}, @option{} or @env{} replaced. 2010-08-10 Tsuyoshi Kitamoto * skk-vars.el (skk-delete-okuri-when-quit): Fix docstring. * doc/skk.texi: update. 2010-08-09 Tsuyoshi Kitamoto * doc/skk.texi: update. 2010-08-08 Tsuyoshi Kitamoto * doc/skk.texi: update. 2010-08-07 Tsuyoshi Kitamoto * skk-vars.el (skk-candidate-buffer-background-color): Rename option name from `skk-kouho-window-background'. * skk.el (skk-henkan-show-candidates-buffer): Ditto. * doc/skk.texi: Ditto. 2010-08-06 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-08-02 Tetsuo Tsukamoto * *.el: Never provide product.el. * skk-isearch.el (skk-isearch-delete-char): Use `delete-char' intead of `delete-backward-char'. * skk.el (skk-set-henkan-point, keyboard-quit@around@skk-ad) (abort-recursive-edit@around@skk-ad): Ditto. 2010-08-02 Tsuyoshi Kitamoto * skk.el: Fix docstring. * doc/skk.texi: Update. 2010-08-01 Tsuyoshi Kitamoto * skk-vars.el: Fix docstring. 2010-07-31 Tsuyoshi Kitamoto * doc/skk.texi: Update. 2010-07-29 Tsuyoshi Kitamoto * skk-e21.el (skk-e21-visit-openlab): fix url. * skk-xemacs.el (skk-xemacs-visit-openlab): fix url. 2010-07-25 Tsuyoshi Kitamoto * skk.el (skk-kill-emacs-without-saving-jisyo): Fix doc. * doc/skk.texi: Fix. * skk-vars.el (skk-rom-kana-base-rule-list): Add new rule. 2010-07-22 Tsuyoshi Kitamoto * skk-vars.el: tiny fix docstring. 2010-07-21 Tsuyoshi Kitamoto * skk-vars.el (skk-henkan-show-candidates-keys-face) (skk-henkan-rest-indicator-face, skk-kouho-window-background): Change the default value. 2010-07-20 Tsuyoshi Kitamoto * skk-vars.el (skk-kouho-window-background): fix. 2010-07-19 Tsuyoshi Kitamoto * skk-vars.el: tiny fix docstring. * doc/skk.texi: tiny fix. 2010-07-18 Tsuyoshi Kitamoto * skk-vars.el: tiny fix docstring. * skk.el: tiny fix docstring. 2010-07-18 Tetsuo Tsukamoto * doc/skk.texi: Add Fumihiko MACHIDA and Yano Keisuke in Contributors. Update entry for Yuh Ohmura. * skk-jisx0201.el (skk-jisx0201-roman-rule-list): Broken at the last commitment. Fix. 2010-07-17 Tsuyoshi Kitamoto * skk-vars.el (skk-tooltip-function): New variable. * skk.el (skk-henkan-show-candidate-subr): Use it. Switching function that allows user to use to draw a tip. 2010-07-16 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-message): Modify messages. 2010-07-16 Tsuyoshi Kitamoto * skk-obsolete.el (skk-obsolete-put-obsolete-mark): give nil to make-obsolete-variable's 3rd argument. * doc/skk.texi: some update. 2010-07-14 Tetsuo Tsukamoto * skk-annotation.el (skk-annotation-wikipedia-format-buffer): Simplify for wikipedia. Don't remove
        tags explicitly. 2010-07-11 Tsuyoshi Kitamoto * skk-vars.el (skk-henkan-rest-indicator-face): New face. * skk.el (skk-henkan-show-candidate-subr): Use it. * doc/skk.texi: Update. 2010-07-10 Tsuyoshi Kitamoto * skk-vars.el (skk-henkan-show-candidates-keys-face): New face. * skk.el (skk-henkan-show-candidate-subr): Use it. * skk-kcode.el (skk-input-by-code-or-menu-jump) (skk-input-by-code-or-menu-1): Use it. * skk-vars.el (skk-henkan-rest-indicator): New user option. * skk.el (skk-henkan-show-candidate-subr) (skk-henkan-show-candidates-buffer): Use it. * skk.el (skk-henkan-show-candidates-buffer): Add `fit-window-to-buffer'. * skk-vars.el (skk-kouho-window-background): New user option. * skk.el (skk-henkan-show-candidates-buffer): Use it. * doc/skk.texi: Update. 2010-07-04 Tsuyoshi Kitamoto * skk-vars.el: $BMQ8l$NE}0l!#$=$N$[$+(B. * make1.bat (install-info): new argument. 2010-07-03 Tsuyoshi Kitamoto * make1.bat (clean): add "goto end". 2010-05-15 Kazuhiro NISHIYAMA * SKK-MK: EMU_DIR $B$N(B load-path $B$X$NDI2C$r(B (requre 'install) $B$NA0$K0\F0(B. 2010-03-07 Tsuyoshi Kitamoto * skk-tankan.el (skk-tankan-search): update indent. 2010-02-26 Tsuyoshi Kitamoto * skk.el: Misc updates. * skk-vars.el: ditto. 2010-02-22 Tsuyoshi Kitamoto * skk.el: s/(SKK)?($B<-=q(B)?$B%5!<%P(B/$B<-=q%5!<%P(B/g * skk-vars.el: ditto. * skk-server.el: ditto. * skk-server-completion.el: ditto * doc/skk.texi: ditto. 2010-02-22 Tsuyoshi Kitamoto * skk-vars.el: s/$B%f!<%6<-=q(B/$B8D?M<-=q(B/g 2010-02-21 Tsuyoshi Kitamoto * skk-macs.el: s/$BHs(Bnil/non-nil/g * skk.el: ditto. * doc/skk.texi: ditto. 2010-02-21 Tsuyoshi Kitamoto * doc/skk.texi (skk-search-jisyo-file): Add content. some function/variable are ditto. 2010-02-18 Tsuyoshi Kitamoto * skk-macs.el (skk-screen-column, skk-move-to-screen-column): Add docstring. 2010-02-14 Tsuyoshi Kitamoto * doc/skk.texi: Tiny Fix. 2010-02-13 Tsuyoshi Kitamoto * doc/skk.texi: some CODE redefined from @example to @lisp. 2010-02-13 Tsuyoshi Kitamoto * doc/skk.texi: some variables defined by @defvr. 2010-02-10 Tsuyoshi Kitamoto * make1.bat: Add 'info' option. 2010-02-10 Tetsuo Tsukamoto * Pre-release 14.0.91. 2010-02-06 Teika Kazura * doc/skk.texi: $B%j%s%/@Z$l$r=$@5!#(Bmakeinfo $B$K$h$k%3%s%Q%$%k$NJ}K!!#(B $B$3$N%U%!%$%k$K4^$^$l$kHs(B Unicode $BJ8;z$K$D$$$F%3%a%s%H!#(B 2010-02-01 Kitamoto Tsuyoshi * doc/skk.texi: Tiny fix. 2010-01-30 Tetsuo Tsukamoto * skk-tut.el (skktut-next-answer-buffer): Use `with-current-buffer' instead of `save-excursion'. 2010-01-28 Tetsuo Tsukamoto * doc/skk.texi: Update for the copyright page i.e. add missing Kitamoto Tsuyoshi's name. * skk-cursor.el (skk-cursor-set-1, skk-cursor-off-1): Modifications for FSF Emacs. Do not set cursor color when default-cursor-color is not yet set. * skk-e21.el (skk-tooltip-show-at-point): Also call `skk-tooltip-resize-text' when skk-tooltip-mouse-behavior is `follow'. 2010-01-27 Tetsuo Tsukamoto * doc/skk.texi: Move footnote for Viper with skk-annotation to subsection "$B%"%N%F!<%7%g%s$N;HMQ(B". * skk-annotation.el (skk-annotation-wikipedia): Do not call `upcase-initials' for wikipedia here. * skk-jisyo-edit-mode.el: Add "SKK-JISYO" to the last of auto-mode-alist. * skk-version.el (skk-version): Bump to 14.0.91. 2010-01-25 Tetsuo Tsukamoto * Pre-release 14.0.90. * doc/skk.texi: Add author Teika Kazura. 2010-01-20 Tetsuo Tsukamoto * skk-e21.el (skk-e21-menu-replace): Workaround for an NTEmacs problem where names of menu items with widget properties do not appear correctly. Encode strings in shift_jis here. Note that this workaround is not needed for Meadow 3 (based on Emacs 22). * skk-version.el (skk-version): Bump to 14.0.90. 2009-12-26 Teika Kazura * doc/skk.texi: Major rewritements, mostly in the chapter $BJXMx$J(B $B1~MQ5!G=(B. Reorganizations. Improvements in various descriptions. 2009-12-16 Tetsuo Tsukamoto * doc/skk.texi: Update email info. 2009-12-16 Teika Kazura * READMEs/NEWS.ja: Minor correction & notice addition. * skk.el (skk-show-num-type-info): Minor doc correction. 2009-11-14 Teika Kazura * doc/skk.texi: Add description for skk-jisyo-fix-order. Also edit skk-edit-private-jisyo. 2009-09-23 Teika Kazura * skk-vars.el (skk-jisyo-fix-order): New user option. * skk.el (skk-update-jisyo-1): When skk-jisyo-fix-order is non-nil, do not modify word order. 2009-11-02 Tetsuo Tsukamoto * skk-macs.el (skk-char-to-unibyte-string): New function. Call `string-make-unibyte' under Emacs 23. (skk-char-to-string): Abolish function. * skk-hint.el (skk-insert@around@skk-hint-ad): * skk-isearch.el (skk-isearch-message, skk-isearch-setup-keymap): * skk-kcode.el (skk-input-by-code-or-menu-jump) (skk-input-by-code-or-menu-1): * skk-tut.el: * skk.el (skk-setup-keymap, skk-define-jisx0208-latin-mode-map) (skk-define-abbrev-mode-map, skk-process-prefix-or-suffix) (skk-kana-input, skk-henkan-show-candidates) (skk-set-henkan-point): Call `skk-char-to-unibyte-string' for key definitions etc, where unibyte strings are expected. * skk-var.el (skk-annotation-en-wiktionary-lang-regexp) (skk-annotation-en-wiktionary-part-of-speech-regexp) (skk-annotation-ja-wiktionary-lang-regexp) (skk-annotation-ja-wiktionary-part-of-speech-regexp): Update. * skk-annotation.el (skk-annotation-wikipedia-1): Remove ") ;; $B$r=|5n(B (skkannot-wikipedia-remove-nested "" "
        ") ;; (goto-char (point-min)) (when (or (when (re-search-forward "

        \\(
        \n\\|[^\n]*\\)?[^\n]+[^\n]+" nil t) (goto-char (match-beginning 0)) (if (and (save-excursion (re-search-forward "

        " nil t)) (string-match (cond ((eq source 'ja.wikipedia) "$B!#(B\\|$B!%(B") (t "\\.")) (buffer-substring (point) (match-beginning 0)))) t (setq point (point) continue t) nil)) (when (progn (goto-char (point-min)) (re-search-forward "<\\(u\\|o\\)l>" nil t)) (goto-char (if continue point (match-beginning 0))) (setq nop t))) (delete-region (point-min) (point)) (goto-char (point-min)) ;; (cond ((or aimai nop) (setq pt1 (if (re-search-forward "<\\(u\\|o\\)l>" nil t) (match-end 0) nil) pt2 nil) (while (and (not end) (re-search-forward "" nil t)) (setq pt2 (match-end 0)) (save-excursion (goto-char (or pt1 (1+ (point-min)))) (when (re-search-forward "<\\(u\\|o\\)l>" nil t) (setq pt1 (match-end 0)))) (when (or (null pt1) (> pt1 pt2)) (setq end t)))) (t (re-search-forward "

        " nil t))) (delete-region (point) (point-max)))))) ;; (setq point nil) (when (> (buffer-size) 0) (html2text) (goto-char (point-min)) (cond ((memq source '(ja.wiktionary en.wiktionary)) ;; wiktionary $B$N@07A7k2L$O6u9T$@$i$1$K$J$k(B... (goto-char (point-min)) (while (re-search-forward "\n[\n]+" nil t) (replace-match "\n")) (goto-char (point-min)) (while (not (eobp)) (beginning-of-line) (setq point (point)) (forward-line 1) (fill-region point (point)))) (t (while (looking-at "^[ \t]*$") (kill-line 1)) (cond ((or aimai nop) (while (not (eobp)) (beginning-of-line) (setq point (point)) (forward-line 1) (fill-region point (point)))) (t (fill-paragraph nil))))) ;; (when aimai (insert (if (eq source 'ja.wikipedia) "\n($B[#Kf$52sHr$N%Z!<%8(B)" "\n(Disambiguation page)"))) ;; (goto-char (point-max)) (while (and (looking-at "^$") (not (string= "" (buffer-string)))) (delete-char -1)) ;; (when (and (not (equal (buffer-string) "")) (not (get-text-property 1 'face))) (put-text-property 1 2 'face 'default)) (setq note (buffer-string))))) ;; (cond ((stringp note) (if (equal note "") nil note)) (t nil)))) (defun skkannot-wikipedia-remove-nested (btag etag &optional ibtag) "
          $B$J$I$NF~$l;R9=B$$r=|5n$9$k!#(B" (unless ibtag (setq ibtag btag)) (let (point pt1 pt2 orig-btag) (setq point nil) (goto-char (point-min)) (while (re-search-forward btag nil t) (setq point (match-beginning 0)) (goto-char point) (cond ((not (search-forward etag nil t)) (delete-region point (match-end 0)) (goto-char (point-min))) (t (setq pt2 (match-end 0)) (goto-char (1+ point)) (cond ((not (re-search-forward ibtag nil t)) (delete-region point pt2) (when orig-btag (setq btag orig-btag orig-btag nil)) (goto-char (point-min))) (t (setq pt1 (match-beginning 0)) (cond ((< pt2 pt1) (delete-region point pt2) (setq point nil) (when orig-btag (setq btag orig-btag orig-btag nil)) (goto-char (point-min))) (t (unless orig-btag (setq orig-btag btag btag ibtag)) (goto-char pt1)))))))))) (defun skkannot-wikipedia-retrieved (&rest args) (cond ((or (member "deleted\n" (assq 'error (memq :error (car args)))) (< (buffer-size) 7) (not (skkannot-wikipedia-test-html-tag))) ;; $BIT40A4$J(B retrieval $B$K$*$$$F$b(B STATUS $B$,(B nil $B$H$J$k$3$H$,$"$k$N$G(B ;; $B$3$3$GD4@0$9$k!#(B (kill-buffer (current-buffer)) (ignore-errors (throw 'skkannot-wikipedia-suspended (cadr args)))) (t (throw 'skkannot-wikipedia-retrieved (current-buffer))))) (defun skkannot-wikipedia-test-html-tag () ;; html $B%G!<%?$,:G8e$N(B $B%?%0$r;}$D$3$H$r3NG'$9$k(B (goto-char (point-min)) (when (re-search-forward "^Content-Encoding: gzip$" nil t) ;; html $B$,(B gzip $B05=L$GAw$i$l$FMh$?>l9g(B (unless (fboundp 'url-handle-content-transfer-encoding) ;; Emacs 24.3 or earlier (let ((gzip (executable-find "gzip"))) (unless gzip (error "$B$3$NFbMF$rI=<($9$k$K$O(B %s $B$,I,MW$G$9(B" "gzip")) (while (and (not (looking-at "^\n")) (not (eobp))) (forward-line 1)) (forward-line 1) (when (< (point) (point-max)) (let ((coding-system-for-write 'binary)) (call-process-region (point) (point-max) gzip t t t "-cd")))))) (goto-char (point-max)) (search-backward "" nil t)) ;;;###autoload (defalias 'skk-annotation-wikipedia-region-or-at-point 'skk-annotation-lookup-region-or-at-point) (defun skkannot-generate-url (format-string &rest args) (condition-case nil (require 'url-util) (error (error "%s" "$B?7$7$$(B URL $B%Q%C%1!<%8$,I,MW$G$9(B"))) (if (skkannot-url-installed-p) (apply #'format format-string (mapcar (lambda (element) (if (stringp element) (url-hexify-string element) element)) args)) (error "%s" "URL $B%Q%C%1!<%8$^$?$O(B Mule-UCS $B$,MxMQ$G$-$^$;$s(B"))) (defun skkannot-wikipedia-normalize-word (word &optional method preserve-case) ;; $B%9%Z!<%9$O(B %20 $B$G$O$J$/!"%"%s%@!<%9%3%"$KJQ49$9$k(B (replace-regexp-in-string " " "_" (cond ((memq method '(ja.wiktionary en.wiktionary)) (if (and (not preserve-case) (> (length word) 1) (skk-ascii-char-p (aref word 0)) (skk-lower-case-p (aref word 1))) ;; $BFsJ8;z$a$,(B lower case $B$J$i(B downcase (downcase word) ;; $B0lJ8;z$@$C$?$i85$N(B case ;; $BFsJ8;z$a$,(B upper case $B$J$i85$N(B case ;; $B1Q8l0J30$OL$BP1~(B word)) ((eq method 'upcase-initials) (upcase-initials word)) (t (if (> (length word) 1) (concat (vector (upcase (aref word 0))) (substring word 1)) word))))) (defun skkannot-url-installed-p () ;; skkannot-url-installed-p $B$N=i4|CM$O(B skk-vars.el $B$GDj5A(B ;; - featurep 'emacs $B$J$i(B t ;; - $B0J30$O(B 'untested (when (eq skkannot-url-installed-p 'untested) ;; GNU Emacs $B0J30$G(B URL $B%Q%C%1!<%8$r%F%9%H$9$k(B (cond ((and (featurep 'xemacs) (= emacs-major-version 21) (= emacs-minor-version 4) (not (featurep 'un-define))) ; Mule-UCS ;; XEmacs 21.4 $B$+$D(B Mule-UCS $BL$%$%s%9%H!<%k$N>l9g(B (setq skkannot-url-installed-p nil)) (t ;; $B>e5-0J30(B (defadvice url-hexify-string (around multibyte-char activate) (setq ad-return-value (mapconcat (lambda (byte) (if (memq byte url-unreserved-chars) (char-to-string byte) (format "%%%02x" byte))) (if (multibyte-string-p (ad-get-arg 0)) (encode-coding-string (ad-get-arg 0) 'utf-8) (ad-get-arg 0)) ""))) ;; (setq skkannot-url-installed-p t)))) ;; skkannot-url-installed-p) ;;; $B3F (length string) 0) (throw 'found (cons string ccache-buffer)) (setq string (if (and cccache-buffer (get-buffer cccache-buffer)) ;; Word Word (with-current-buffer (get-buffer cccache-buffer) (buffer-string)) "")) (if (> (length string) 0) (throw 'found (cons string cccache-buffer)) (setq string (if (get-buffer cache-buffer) ;; word word (with-current-buffer (get-buffer cache-buffer) (buffer-string)) "")) (if (string= string "") nil (throw 'found (cons string cache-buffer)))))))))))) (provide 'skk-annotation) ;;; skk-annotation.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-auto.el000066400000000000000000000113471361774317600205120ustar00rootroot00000000000000;;; skk-auto.el --- $BAw$j2>L>$N<+F0=hM}$N$?$a$N%W%m%0%i%`(B -*- coding: iso-2022-jp -*- ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, ;; 1998, 1999, 2001 ;; Masahiko Sato ;; Author: Masahiko Sato ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars)) ;;;###autoload (defun skk-okuri-search-1 () (when (and (not (or skk-abbrev-mode skk-process-okuri-early skk-henkan-okurigana)) ;; we don't do auto-okuri-process ;; if henkan key contains numerals. (not (skk-numeric-p)) (> (length skk-henkan-key) 1)) (let (l) (setq skk-okuri-index-min (length skk-henkan-list) l (funcall skk-okuri-search-function) skk-okuri-index-max (+ skk-okuri-index-min (length l))) (if (not skk-katakana) l (mapcar 'skk-hiragana-to-katakana l))))) (defun skk-okuri-search-subr-original () ;; skk-okuri-search $B$N%5%V%k!<%A%s!#8+$D$1$?%(%s%H%j$N%j%9%H$rJV$9!#(B (let* ((henkan-key skk-henkan-key) (key (substring henkan-key 0 1)) (len (length henkan-key)) (key1 (concat "\n" key)) key2 len2 key3 len3 okuri3 ;; case-fold-search $B$O!"<-=q%P%C%U%!$G$O>o$K(B nil$B!#(B ;;case-fold-search (inhibit-quit t) key-cand-alist p q r) (save-match-data (with-current-buffer (skk-get-jisyo-buffer skk-jisyo) (goto-char skk-okuri-ari-min) (while (search-forward key1 skk-okuri-ari-max t) (setq p (point) key2 (concat key (buffer-substring-no-properties p (- (search-forward " ") 2))) len2 (length key2)) (when (and (<= len2 len) (string= key2 (substring henkan-key 0 len2))) (let ((cont t)) (setq q (line-end-position)) (while (and cont (search-forward "/[" q t)) (setq r (point)) (setq okuri3 (buffer-substring-no-properties r (1- (search-forward "/"))) key3 (concat key2 okuri3) len3 (length key3)) (when (and (<= len3 len) (string= key3 (substring henkan-key 0 len3))) ;; finally found a candidate! (let ((okuri (concat okuri3 (substring henkan-key len3 len))) cand) (while (not (eq (following-char) ?\])) (setq cand (concat (buffer-substring-no-properties (point) (1- (search-forward "/" skk-okuri-ari-max t))) okuri)) ;; $B8+=P$78l$,0c$C$F$b8uJd$,F1$8$3$H$,$"$jF@$k!#(B ;; $B$+$s(Bz /$B46(B/[$B$8(B/$B46(B/]/ ;; $B$+$s(Bj /$B46(B/[$B$8(B/$B46(B/]/ ;; $B$J$I!#(B (unless (rassoc cand key-cand-alist) (setq key-cand-alist (cons (cons key3 cand) key-cand-alist)))) ;; it is not necessary to seach for "\[" on this line ;; any more (setq cont nil))))))) ;; key3 $B$ND9$$$b$N=g$K%=!<%H$7$FJV$9!#(B (mapcar 'cdr (sort (nreverse key-cand-alist) (lambda (x y) (skk-string< (car y) (car x))))))))) ;;;###autoload (defun skk-adjust-search-prog-list-for-auto-okuri () ;; `skk-auto-okuri-process' $B$,(B non-nil $B$G$"$l$P(B ;; `skk-search-prog-list' $B$K(B `skk-okuri-search' $B$r2C$($k!#(B ;; ;; `skk-okuri-search' $B$r2C$($k0LCV$K$D$$$F$O!"(Bskk-jisyo $B$N(B ;; $B8e$,:GNI$+$I$&$+$OJ,$i$J$$$N$G!"%*%W%7%g%s$GJQ99$G$-$k(B ;; $B$h$&$K$9$Y$-$@$,(B...$B!#(B (unless (member '(skk-okuri-search) (default-value 'skk-search-prog-list)) (let ((pl (default-value 'skk-search-prog-list)) (n 0) dic mark) (while pl (setq dic (car pl)) (if (memq (nth 1 dic) '(skk-jisyo skk-rdbms-private-jisyo-table)) (setq mark n pl nil) (setq pl (cdr pl) n (1+ n)))) (when mark (skk-splice-in (default-value 'skk-search-prog-list) (1+ mark) '((skk-okuri-search))))))) ;;(add-hook 'skk-mode-hook 'skk-adjust-search-prog-list-for-auto-okuri) (run-hooks 'skk-auto-load-hook) (provide 'skk-auto) ;;; skk-auto.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-azik.el000066400000000000000000000653401361774317600205020ustar00rootroot00000000000000;;; skk-azik.el --- $B3HD%%m!<%^;zF~NO(B "AZIK" $B$r(B SKK $B$G;H$&$?$a$N@_Dj(B -*- coding: iso-2022-jp -*- ;; Copyright (C) 2002 ONODA Arata ;; Author: ONODA Arata ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; Created: Jan. 9, 2002 ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; $B3HD%%m!<%^;zF~NO(B "AZIK" $B$r(B SKK $B$G;H$&$?$a$N@_Dj$G$9!#(B ;; "AZIK"$B$K$D$$$F$O!"0J2<$N(B URL $B$r;2>H$7$F2<$5$$!#(B ;; http://hp.vector.co.jp/authors/VA002116/azik/azikindx.htm ;; ;; $B;H$$J}(B - $B2<5-$N@_Dj$r(B .skk $B$K2C$($F$/$@$5$$!#(B ;; $B$=$N8e(B Emacs(Mule) $B$r:F5/F0$9$l$P(B skk $B$K$h$k(B AZIK $B$G$N(B ;; $BF~NO$,2DG=$G$9!#(B ;; ;; (setq skk-use-azik t) ;; (setq skk-azik-keyboard-type 'jp106) ;; ;; $BJQ?t(B skk-azik-keyboard-type $B$K$*;H$$$N%-!<%\!<%I$N%?%$%W$r(B ;; $B;XDj$7$F2<$5$$!#(Bskk-azik-keyboard-type $B$O%7%s%\%k$G(B ;; 'jp106 $B$b$7$/$O(B 'jp-pc98 $B!"$^$?$O!"(B 'en $B$r;XDj$7$^$9!#(B ;; ;; ;; $BCm0U(B 1 - AZIK $B$G$O(B "q" $B$r(B "$B$s(B" $B$NF~NO$K;H$&$N$G!"(B"q" $B$N$b$H$b$H(B ;; $B$N5!G=$G$"$k(B "skk-toggle-kana" $B$K$O!"F|K\8l%-!<%\!<%I(B ;; $B$G$"$l$P(B "@" $B$r!"1Q8l%-!<%\!<%I$G$"$l$P!"(B"[" $B$GBeMQ$7$^$9!#(B ;; SKK $BI8=`$N(B "@"($BF|K\8l%-!<%\!<%I(B) $B$d(B "["($B1Q8l%-!<%\!<%I(B) $B$O!"(B ;; $B$O!"(B x $B$rIU$1$F!"$=$l$>$l(B "x@" $B$H(B "x[" $B$G;HMQ$G$-$^$9!#(B ;; ;; 2 - $B=c@5$N(B AZIK $B$G$O(B "la" $B$G(B "$B$!(B" $B$rF~NO$7$^$9!#$7$+$7(B ;; SKK $B$G$O(B L $B$r(B ASCII/$BA41Q%b!<%I$N@Z$jBX$(%-!<$H$7$F(B ;; $B;HMQ$9$k$N$G!"(B "xxa" $B$G(B "$B$!(B" $B$,F~NO$G$-$k$h$&$K$7$F(B ;; $B$$$^$9!#(B ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars) (defvar skk-jisx0201-rule-list) (defvar skk-jisx0201-base-rule-list)) (defvar skk-azik-unnecessary-base-rule-list '("cha" "che" "chi" "cho" "chu" "dha" "dhe" "dhi" "dho" "dhu" "sha" "she" "shi" "sho" "shu" "tha" "the" "thi" "tho" "thu")) (defvar skk-azik-additional-rom-kana-rule-list '((";" nil ("$B%C(B" . "$B$C(B")) ("x;" nil ";") ("bd" nil ("$B%Y%s(B" . "$B$Y$s(B")) ("bh" nil ("$B%V%&(B" . "$B$V$&(B")) ("bj" nil ("$B%V%s(B" . "$B$V$s(B")) ("bk" nil ("$B%S%s(B" . "$B$S$s(B")) ("bl" nil ("$B%\%s(B" . "$B$\$s(B")) ("bn" nil ("$B%P%s(B" . "$B$P$s(B")) ("bp" nil ("$B%\%&(B" . "$B$\$&(B")) ("bq" nil ("$B%P%$(B" . "$B$P$$(B")) ("br" nil ("$B%P%i(B" . "$B$P$i(B")) ("bt" nil ("$B%S%H(B" . "$B$S$H(B")) ("bw" nil ("$B%Y%$(B" . "$B$Y$$(B")) ("bx" nil ("$B%Y%$(B" . "$B$Y$$(B")) ("byd" nil ("$B%S%'%s(B" . "$B$S$'$s(B")) ("byh" nil ("$B%S%e%&(B" . "$B$S$e$&(B")) ("byj" nil ("$B%S%e%s(B" . "$B$S$e$s(B")) ("byl" nil ("$B%S%g%s(B" . "$B$S$g$s(B")) ("byn" nil ("$B%S%c%s(B" . "$B$S$c$s(B")) ("byp" nil ("$B%S%g%&(B" . "$B$S$g$&(B")) ("byq" nil ("$B%S%c%$(B" . "$B$S$c$$(B")) ("byw" nil ("$B%S%'%$(B" . "$B$S$'$$(B")) ("byz" nil ("$B%S%c%s(B" . "$B$S$c$s(B")) ("bz" nil ("$B%P%s(B" . "$B$P$s(B")) ("ca" nil ("$B%A%c(B" . "$B$A$c(B")) ("cc" nil ("$B%A%c(B" . "$B$A$c(B")) ("cd" nil ("$B%A%'%s(B" . "$B$A$'$s(B")) ("ce" nil ("$B%A%'(B" . "$B$A$'(B")) ("cf" nil ("$B%A%'(B" . "$B$A$'(B")) ("ch" nil ("$B%A%e%&(B" . "$B$A$e$&(B")) ("ci" nil ("$B%A(B" . "$B$A(B")) ("cj" nil ("$B%A%e%s(B" . "$B$A$e$s(B")) ("ck" nil ("$B%A%s(B" . "$B$A$s(B")) ("cl" nil ("$B%A%g%s(B" . "$B$A$g$s(B")) ("cn" nil ("$B%A%c%s(B" . "$B$A$c$s(B")) ("co" nil ("$B%A%g(B" . "$B$A$g(B")) ("cp" nil ("$B%A%g%&(B" . "$B$A$g$&(B")) ("cq" nil ("$B%A%c%$(B" . "$B$A$c$$(B")) ("cu" nil ("$B%A%e(B" . "$B$A$e(B")) ("cv" nil ("$B%A%c%$(B" . "$B$A$c$$(B")) ("cw" nil ("$B%A%'%$(B" . "$B$A$'$$(B")) ("cx" nil ("$B%A%'%$(B" . "$B$A$'$$(B")) ("cz" nil ("$B%A%c%s(B" . "$B$A$c$s(B")) ("dch" nil ("$B%G%e!<(B" . "$B$G$e!<(B")) ("dci" nil ("$B%G%#(B" . "$B$G$#(B")) ("dck" nil ("$B%G%#%s(B" . "$B$G$#$s(B")) ("dcp" nil ("$B%I%%!<(B" . "$B$I$%!<(B")) ("dcu" nil ("$B%G%e(B" . "$B$G$e(B")) ("dd" nil ("$B%G%s(B" . "$B$G$s(B")) ("df" nil ("$B%G(B" . "$B$G(B")) ("dg" nil ("$B%@%,(B" . "$B$@$,(B")) ("dh" nil ("$B%E%&(B" . "$B$E$&(B")) ("dj" nil ("$B%E%s(B" . "$B$E$s(B")) ("dk" nil ("$B%B%s(B" . "$B$B$s(B")) ("dl" nil ("$B%I%s(B" . "$B$I$s(B")) ("dm" nil ("$B%G%b(B" . "$B$G$b(B")) ("dn" nil ("$B%@%s(B" . "$B$@$s(B")) ("dp" nil ("$B%I%&(B" . "$B$I$&(B")) ("dq" nil ("$B%@%$(B" . "$B$@$$(B")) ("dr" nil ("$B%G%"%k(B" . "$B$G$"$k(B")) ("ds" nil ("$B%G%9(B" . "$B$G$9(B")) ("dt" nil ("$B%@%A(B" . "$B$@$A(B")) ("dv" nil ("$B%G%s(B" . "$B$G$s(B")) ("dw" nil ("$B%G%$(B" . "$B$G$$(B")) ("dy" nil ("$B%G%#(B" . "$B$G$#(B")) ("dz" nil ("$B%@%s(B" . "$B$@$s(B")) ("fd" nil ("$B%U%'%s(B" . "$B$U$'$s(B")) ("fh" nil ("$B%U%&(B" . "$B$U$&(B")) ("fj" nil ("$B%U%s(B" . "$B$U$s(B")) ("fk" nil ("$B%U%#%s(B" . "$B$U$#$s(B")) ("fl" nil ("$B%U%)%s(B" . "$B$U$)$s(B")) ("fm" nil ("$B%U%`(B" . "$B$U$`(B")) ("fn" nil ("$B%U%!%s(B" . "$B$U$!$s(B")) ("fp" nil ("$B%U%)!<(B" . "$B$U$)!<(B")) ("fq" nil ("$B%U%!%$(B" . "$B$U$!$$(B")) ("fr" nil ("$B%U%k(B" . "$B$U$k(B")) ("fs" nil ("$B%U%!%$(B" . "$B$U$!$$(B")) ("fw" nil ("$B%U%'%$(B" . "$B$U$'$$(B")) ("fz" nil ("$B%U%!%s(B" . "$B$U$!$s(B")) ("gd" nil ("$B%2%s(B" . "$B$2$s(B")) ("gh" nil ("$B%0%&(B" . "$B$0$&(B")) ("gj" nil ("$B%0%s(B" . "$B$0$s(B")) ("gk" nil ("$B%.%s(B" . "$B$.$s(B")) ("gl" nil ("$B%4%s(B" . "$B$4$s(B")) ("gn" nil ("$B%,%s(B" . "$B$,$s(B")) ("gp" nil ("$B%4%&(B" . "$B$4$&(B")) ("gq" nil ("$B%,%$(B" . "$B$,$$(B")) ("gr" nil ("$B%,%i(B" . "$B$,$i(B")) ("gt" nil ("$B%4%H(B" . "$B$4$H(B")) ("gw" nil ("$B%2%$(B" . "$B$2$$(B")) ("gyd" nil ("$B%.%'%s(B" . "$B$.$'$s(B")) ("gyh" nil ("$B%.%e%&(B" . "$B$.$e$&(B")) ("gyj" nil ("$B%.%e%s(B" . "$B$.$e$s(B")) ("gyl" nil ("$B%.%g%s(B" . "$B$.$g$s(B")) ("gyn" nil ("$B%.%c%s(B" . "$B$.$c$s(B")) ("gyp" nil ("$B%.%g%&(B" . "$B$.$g$&(B")) ("gyq" nil ("$B%.%c%$(B" . "$B$.$c$$(B")) ("gyw" nil ("$B%.%'%$(B" . "$B$.$'$$(B")) ("gyz" nil ("$B%.%c%s(B" . "$B$.$c$s(B")) ("gz" nil ("$B%,%s(B" . "$B$,$s(B")) ("hd" nil ("$B%X%s(B" . "$B$X$s(B")) ("hf" nil ("$B%U(B" . "$B$U(B")) ("hga" nil ("$B%R%c(B" . "$B$R$c(B")) ("hgd" nil ("$B%R%'%s(B" . "$B$R$'$s(B")) ("hge" nil ("$B%R%'(B" . "$B$R$'(B")) ("hgh" nil ("$B%R%e%&(B" . "$B$R$e$&(B")) ("hgj" nil ("$B%R%e%s(B" . "$B$R$e$s(B")) ("hgl" nil ("$B%R%g%s(B" . "$B$R$g$s(B")) ("hgn" nil ("$B%R%c%s(B" . "$B$R$c$s(B")) ("hgo" nil ("$B%R%g(B" . "$B$R$g(B")) ("hgp" nil ("$B%R%g%&(B" . "$B$R$g$&(B")) ("hgq" nil ("$B%R%c%$(B" . "$B$R$c$$(B")) ("hgu" nil ("$B%R%e(B" . "$B$R$e(B")) ("hgw" nil ("$B%R%'%$(B" . "$B$R$'$$(B")) ("hgz" nil ("$B%R%c%s(B" . "$B$R$c$s(B")) ("hh" nil ("$B%U%&(B" . "$B$U$&(B")) ("hj" nil ("$B%U%s(B" . "$B$U$s(B")) ("hk" nil ("$B%R%s(B" . "$B$R$s(B")) ("hl" nil ("$B%[%s(B" . "$B$[$s(B")) ("hn" nil ("$B%O%s(B" . "$B$O$s(B")) ("hp" nil ("$B%[%&(B" . "$B$[$&(B")) ("hq" nil ("$B%O%$(B" . "$B$O$$(B")) ("ht" nil ("$B%R%H(B" . "$B$R$H(B")) ("hw" nil ("$B%X%$(B" . "$B$X$$(B")) ("hyd" nil ("$B%R%'%s(B" . "$B$R$'$s(B")) ("hyh" nil ("$B%R%e%&(B" . "$B$R$e$&(B")) ("hyl" nil ("$B%R%g%s(B" . "$B$R$g$s(B")) ("hyp" nil ("$B%R%g%&(B" . "$B$R$g$&(B")) ("hyq" nil ("$B%R%c%$(B" . "$B$R$c$$(B")) ("hyw" nil ("$B%R%'%$(B" . "$B$R$'$$(B")) ("hyz" nil ("$B%R%c%s(B" . "$B$R$c$s(B")) ("hz" nil ("$B%O%s(B" . "$B$O$s(B")) ("jd" nil ("$B%8%'%s(B" . "$B$8$'$s(B")) ("jf" nil ("$B%8%e(B" . "$B$8$e(B")) ("jh" nil ("$B%8%e%&(B" . "$B$8$e$&(B")) ("jj" nil ("$B%8%e%s(B" . "$B$8$e$s(B")) ("jk" nil ("$B%8%s(B" . "$B$8$s(B")) ("jl" nil ("$B%8%g%s(B" . "$B$8$g$s(B")) ("jn" nil ("$B%8%c%s(B" . "$B$8$c$s(B")) ("jp" nil ("$B%8%g%&(B" . "$B$8$g$&(B")) ("jq" nil ("$B%8%c%$(B" . "$B$8$c$$(B")) ("jv" nil ("$B%8%e%&(B" . "$B$8$e$&(B")) ("jw" nil ("$B%8%'%$(B" . "$B$8$'$$(B")) ("jz" nil ("$B%8%c%s(B" . "$B$8$c$s(B")) ("kA" nil ("$B%u(B" . "$B%u(B")) ("kE" nil ("$B%v(B" . "$B%v(B")) ("kd" nil ("$B%1%s(B" . "$B$1$s(B")) ("kf" nil ("$B%-(B" . "$B$-(B")) ("kga" nil ("$B%-%c(B" . "$B$-$c(B")) ("kgd" nil ("$B%-%'%s(B" . "$B$-$'$s(B")) ("kge" nil ("$B%-%'(B" . "$B$-$'(B")) ("kgh" nil ("$B%-%e%&(B" . "$B$-$e$&(B")) ("kgl" nil ("$B%-%g%s(B" . "$B$-$g$s(B")) ("kgn" nil ("$B%-%c%s(B" . "$B$-$c$s(B")) ("kgo" nil ("$B%-%g(B" . "$B$-$g(B")) ("kgp" nil ("$B%-%g%&(B" . "$B$-$g$&(B")) ("kgq" nil ("$B%-%c%$(B" . "$B$-$c$$(B")) ("kgu" nil ("$B%-%e(B" . "$B$-$e(B")) ("kgw" nil ("$B%-%'%$(B" . "$B$-$'$$(B")) ("kgz" nil ("$B%-%c%s(B" . "$B$-$c$s(B")) ("kh" nil ("$B%/%&(B" . "$B$/$&(B")) ("kj" nil ("$B%/%s(B" . "$B$/$s(B")) ("kk" nil ("$B%-%s(B" . "$B$-$s(B")) ("kl" nil ("$B%3%s(B" . "$B$3$s(B")) ("km" nil ("$B%+%b(B" . "$B$+$b(B")) ("kn" nil ("$B%+%s(B" . "$B$+$s(B")) ("kp" nil ("$B%3%&(B" . "$B$3$&(B")) ("kq" nil ("$B%+%$(B" . "$B$+$$(B")) ("kr" nil ("$B%+%i(B" . "$B$+$i(B")) ("kt" nil ("$B%3%H(B" . "$B$3$H(B")) ("kv" nil ("$B%-%s(B" . "$B$-$s(B")) ("kw" nil ("$B%1%$(B" . "$B$1$$(B")) ("kyd" nil ("$B%-%'%s(B" . "$B$-$'$s(B")) ("kyh" nil ("$B%-%e%&(B" . "$B$-$e$&(B")) ("kyj" nil ("$B%-%e%s(B" . "$B$-$e$s(B")) ("kyl" nil ("$B%-%g%s(B" . "$B$-$g$s(B")) ("kyn" nil ("$B%-%c%s(B" . "$B$-$c$s(B")) ("kyp" nil ("$B%-%g%&(B" . "$B$-$g$&(B")) ("kyq" nil ("$B%-%c%$(B" . "$B$-$c$$(B")) ("kyw" nil ("$B%-%'%$(B" . "$B$-$'$$(B")) ("kyz" nil ("$B%-%c%s(B" . "$B$-$c$s(B")) ("kz" nil ("$B%+%s(B" . "$B$+$s(B")) ("md" nil ("$B%a%s(B" . "$B$a$s(B")) ("mf" nil ("$B%`(B" . "$B$`(B")) ("mga" nil ("$B%_%c(B" . "$B$_$c(B")) ("mgd" nil ("$B%_%'%s(B" . "$B$_$'$s(B")) ("mge" nil ("$B%_%'(B" . "$B$_$'(B")) ("mgh" nil ("$B%_%e%&(B" . "$B$_$e$&(B")) ("mgj" nil ("$B%_%e%s(B" . "$B$_$e$s(B")) ("mgl" nil ("$B%_%g%s(B" . "$B$_$g$s(B")) ("mgn" nil ("$B%_%c%s(B" . "$B$_$c$s(B")) ("mgo" nil ("$B%_%g(B" . "$B$_$g(B")) ("mgp" nil ("$B%_%g%&(B" . "$B$_$g$&(B")) ("mgq" nil ("$B%_%c%$(B" . "$B$_$c$$(B")) ("mgu" nil ("$B%_%e(B" . "$B$_$e(B")) ("mgw" nil ("$B%_%'%$(B" . "$B$_$'$$(B")) ("mgz" nil ("$B%_%c%s(B" . "$B$_$c$s(B")) ("mh" nil ("$B%`%&(B" . "$B$`$&(B")) ("mj" nil ("$B%`%s(B" . "$B$`$s(B")) ("mk" nil ("$B%_%s(B" . "$B$_$s(B")) ("ml" nil ("$B%b%s(B" . "$B$b$s(B")) ("mn" nil ("$B%b%N(B" . "$B$b$N(B")) ("mp" nil ("$B%b%&(B" . "$B$b$&(B")) ("mq" nil ("$B%^%$(B" . "$B$^$$(B")) ("mr" nil ("$B%^%k(B" . "$B$^$k(B")) ("ms" nil ("$B%^%9(B" . "$B$^$9(B")) ("mt" nil ("$B%^%?(B" . "$B$^$?(B")) ("mv" nil ("$B%`%s(B" . "$B$`$s(B")) ("mw" nil ("$B%a%$(B" . "$B$a$$(B")) ("myd" nil ("$B%_%'%s(B" . "$B$_$'$s(B")) ("myh" nil ("$B%_%e%&(B" . "$B$_$e$&(B")) ("myj" nil ("$B%_%e%s(B" . "$B$_$e$s(B")) ("myl" nil ("$B%_%g%s(B" . "$B$_$g$s(B")) ("myn" nil ("$B%_%c%s(B" . "$B$_$c$s(B")) ("myp" nil ("$B%_%g%&(B" . "$B$_$g$&(B")) ("myq" nil ("$B%_%c%$(B" . "$B$_$c$$(B")) ("myw" nil ("$B%_%'%$(B" . "$B$_$'$$(B")) ("myz" nil ("$B%_%c%s(B" . "$B$_$c$s(B")) ("mz" nil ("$B%^%s(B" . "$B$^$s(B")) ("nb" nil ("$B%M%P(B" . "$B$M$P(B")) ("nd" nil ("$B%M%s(B" . "$B$M$s(B")) ("nf" nil ("$B%L(B" . "$B$L(B")) ("nga" nil ("$B%K%c(B" . "$B$K$c(B")) ("ngd" nil ("$B%K%'%s(B" . "$B$K$'$s(B")) ("nge" nil ("$B%K%'(B" . "$B$K$'(B")) ("ngh" nil ("$B%K%e%&(B" . "$B$K$e$&(B")) ("ngj" nil ("$B%K%e%s(B" . "$B$K$e$s(B")) ("ngl" nil ("$B%K%g%s(B" . "$B$K$g$s(B")) ("ngn" nil ("$B%K%c%s(B" . "$B$K$c$s(B")) ("ngo" nil ("$B%K%g(B" . "$B$K$g(B")) ("ngp" nil ("$B%K%g%&(B" . "$B$K$g$&(B")) ("ngq" nil ("$B%K%c%$(B" . "$B$K$c$$(B")) ("ngu" nil ("$B%K%e(B" . "$B$K$e(B")) ("ngw" nil ("$B%K%'%$(B" . "$B$K$'$$(B")) ("ngz" nil ("$B%K%c%s(B" . "$B$K$c$s(B")) ("nh" nil ("$B%L%&(B" . "$B$L$&(B")) ("nj" nil ("$B%L%s(B" . "$B$L$s(B")) ("nk" nil ("$B%K%s(B" . "$B$K$s(B")) ("nl" nil ("$B%N%s(B" . "$B$N$s(B")) ("np" nil ("$B%N%&(B" . "$B$N$&(B")) ("nq" nil ("$B%J%$(B" . "$B$J$$(B")) ("nr" nil ("$B%J%k(B" . "$B$J$k(B")) ("nt" nil ("$B%K%A(B" . "$B$K$A(B")) ("nv" nil ("$B%L%s(B" . "$B$L$s(B")) ("nw" nil ("$B%M%$(B" . "$B$M$$(B")) ("nyd" nil ("$B%K%'%s(B" . "$B$K$'$s(B")) ("nyh" nil ("$B%K%e%&(B" . "$B$K$e$&(B")) ("nyj" nil ("$B%K%e%s(B" . "$B$K$e$s(B")) ("nyl" nil ("$B%K%g%s(B" . "$B$K$g$s(B")) ("nyn" nil ("$B%K%c%s(B" . "$B$K$c$s(B")) ("nyp" nil ("$B%K%g%&(B" . "$B$K$g$&(B")) ("nyq" nil ("$B%K%c%$(B" . "$B$K$c$$(B")) ("nyw" nil ("$B%K%'%$(B" . "$B$K$'$$(B")) ("nyz" nil ("$B%K%c%s(B" . "$B$K$c$s(B")) ("nz" nil ("$B%J%s(B" . "$B$J$s(B")) ("pd" nil ("$B%Z%s(B" . "$B$Z$s(B")) ("pf" nil ("$B%]%s(B" . "$B$]$s(B")) ("pga" nil ("$B%T%c(B" . "$B$T$c(B")) ("pgd" nil ("$B%T%'%s(B" . "$B$T$'$s(B")) ("pge" nil ("$B%T%'(B" . "$B$T$'(B")) ("pgh" nil ("$B%T%e%&(B" . "$B$T$e$&(B")) ("pgj" nil ("$B%T%e%s(B" . "$B$T$e$s(B")) ("pgl" nil ("$B%T%g%s(B" . "$B$T$g$s(B")) ("pgn" nil ("$B%T%c%s(B" . "$B$T$c$s(B")) ("pgo" nil ("$B%T%g(B" . "$B$T$g(B")) ("pgp" nil ("$B%T%g%&(B" . "$B$T$g$&(B")) ("pgq" nil ("$B%T%c%$(B" . "$B$T$c$$(B")) ("pgu" nil ("$B%T%e(B" . "$B$T$e(B")) ("pgw" nil ("$B%T%'%$(B" . "$B$T$'$$(B")) ("pgz" nil ("$B%T%c%s(B" . "$B$T$c$s(B")) ("ph" nil ("$B%W%&(B" . "$B$W$&(B")) ("pj" nil ("$B%W%s(B" . "$B$W$s(B")) ("pk" nil ("$B%T%s(B" . "$B$T$s(B")) ("pl" nil ("$B%]%s(B" . "$B$]$s(B")) ("pn" nil ("$B%Q%s(B" . "$B$Q$s(B")) ("pp" nil ("$B%]%&(B" . "$B$]$&(B")) ("pq" nil ("$B%Q%$(B" . "$B$Q$$(B")) ("pv" nil ("$B%]%&(B" . "$B$]$&(B")) ("pw" nil ("$B%Z%$(B" . "$B$Z$$(B")) ("pyd" nil ("$B%T%'%s(B" . "$B$T$'$s(B")) ("pyh" nil ("$B%T%e%&(B" . "$B$T$e$&(B")) ("pyj" nil ("$B%T%e%s(B" . "$B$T$e$s(B")) ("pyl" nil ("$B%T%g%s(B" . "$B$T$g$s(B")) ("pyn" nil ("$B%T%c%s(B" . "$B$T$c$s(B")) ("pyp" nil ("$B%T%g%&(B" . "$B$T$g$&(B")) ("pyq" nil ("$B%T%c%$(B" . "$B$T$c$$(B")) ("pyw" nil ("$B%T%'%$(B" . "$B$T$'$$(B")) ("pyz" nil ("$B%T%c%s(B" . "$B$T$c$s(B")) ("pz" nil ("$B%Q%s(B" . "$B$Q$s(B")) ("q" nil ("$B%s(B" . "$B$s(B")) ("rd" nil ("$B%l%s(B" . "$B$l$s(B")) ("rh" nil ("$B%k%&(B" . "$B$k$&(B")) ("rj" nil ("$B%k%s(B" . "$B$k$s(B")) ("rk" nil ("$B%j%s(B" . "$B$j$s(B")) ("rl" nil ("$B%m%s(B" . "$B$m$s(B")) ("rn" nil ("$B%i%s(B" . "$B$i$s(B")) ("rp" nil ("$B%m%&(B" . "$B$m$&(B")) ("rq" nil ("$B%i%$(B" . "$B$i$$(B")) ("rr" nil ("$B%i%l(B" . "$B$i$l(B")) ("rw" nil ("$B%l%$(B" . "$B$l$$(B")) ("ryd" nil ("$B%j%'%s(B" . "$B$j$'$s(B")) ("ryh" nil ("$B%j%e%&(B" . "$B$j$e$&(B")) ("ryj" nil ("$B%j%e%s(B" . "$B$j$e$s(B")) ("ryk" nil ("$B%j%g%/(B" . "$B$j$g$/(B")) ("ryl" nil ("$B%j%g%s(B" . "$B$j$g$s(B")) ("ryn" nil ("$B%j%c%s(B" . "$B$j$c$s(B")) ("ryp" nil ("$B%j%g%&(B" . "$B$j$g$&(B")) ("ryq" nil ("$B%j%c%$(B" . "$B$j$c$$(B")) ("ryw" nil ("$B%j%'%$(B" . "$B$j$'$$(B")) ("ryz" nil ("$B%j%c%s(B" . "$B$j$c$s(B")) ("rz" nil ("$B%i%s(B" . "$B$i$s(B")) ("sd" nil ("$B%;%s(B" . "$B$;$s(B")) ("sf" nil ("$B%5%$(B" . "$B$5$$(B")) ("sh" nil ("$B%9%&(B" . "$B$9$&(B")) ("sj" nil ("$B%9%s(B" . "$B$9$s(B")) ("sk" nil ("$B%7%s(B" . "$B$7$s(B")) ("sl" nil ("$B%=%s(B" . "$B$=$s(B")) ("sm" nil ("$B%7%b(B" . "$B$7$b(B")) ("sn" nil ("$B%5%s(B" . "$B$5$s(B")) ("sp" nil ("$B%=%&(B" . "$B$=$&(B")) ("sq" nil ("$B%5%$(B" . "$B$5$$(B")) ("sr" nil ("$B%9%k(B" . "$B$9$k(B")) ("ss" nil ("$B%;%$(B" . "$B$;$$(B")) ("st" nil ("$B%7%?(B" . "$B$7$?(B")) ("sv" nil ("$B%5%$(B" . "$B$5$$(B")) ("sw" nil ("$B%;%$(B" . "$B$;$$(B")) ("syd" nil ("$B%7%'%s(B" . "$B$7$'$s(B")) ("syh" nil ("$B%7%e%&(B" . "$B$7$e$&(B")) ("syj" nil ("$B%7%e%s(B" . "$B$7$e$s(B")) ("syl" nil ("$B%7%g%s(B" . "$B$7$g$s(B")) ("syp" nil ("$B%7%g%&(B" . "$B$7$g$&(B")) ("syq" nil ("$B%7%c%$(B" . "$B$7$c$$(B")) ("syw" nil ("$B%7%'%$(B" . "$B$7$'$$(B")) ("syz" nil ("$B%7%c%s(B" . "$B$7$c$s(B")) ("sz" nil ("$B%5%s(B" . "$B$5$s(B")) ("tU" nil ("$B%C(B" . "$B$C(B")) ("tb" nil ("$B%?%S(B" . "$B$?$S(B")) ("td" nil ("$B%F%s(B" . "$B$F$s(B")) ("tgh" nil ("$B%F%e!<(B" . "$B$F$e!<(B")) ("tgi" nil ("$B%F%#(B" . "$B$F$#(B")) ("tgk" nil ("$B%F%#%s(B" . "$B$F$#$s(B")) ("tgp" nil ("$B%H%%!<(B" . "$B$H$%!<(B")) ("tgu" nil ("$B%F%e(B" . "$B$F$e(B")) ("th" nil ("$B%D%&(B" . "$B$D$&(B")) ("tj" nil ("$B%D%s(B" . "$B$D$s(B")) ("tk" nil ("$B%A%s(B" . "$B$A$s(B")) ("tl" nil ("$B%H%s(B" . "$B$H$s(B")) ("tm" nil ("$B%?%a(B" . "$B$?$a(B")) ("tn" nil ("$B%?%s(B" . "$B$?$s(B")) ("tp" nil ("$B%H%&(B" . "$B$H$&(B")) ("tq" nil ("$B%?%$(B" . "$B$?$$(B")) ("tr" nil ("$B%?%i(B" . "$B$?$i(B")) ("tsU" nil ("$B%C(B" . "$B$C(B")) ("tsa" nil ("$B%D%!(B" . "$B$D$!(B")) ("tse" nil ("$B%D%'(B" . "$B$D$'(B")) ("tsi" nil ("$B%D%#(B" . "$B$D$#(B")) ("tso" nil ("$B%D%)(B" . "$B$D$)(B")) ("tt" nil ("$B%?%A(B" . "$B$?$A(B")) ("tw" nil ("$B%F%$(B" . "$B$F$$(B")) ("tyd" nil ("$B%A%'%s(B" . "$B$A$'$s(B")) ("tyh" nil ("$B%A%e%&(B" . "$B$A$e$&(B")) ("tyj" nil ("$B%A%e%s(B" . "$B$A$e$s(B")) ("tyl" nil ("$B%A%g%s(B" . "$B$A$g$s(B")) ("tyn" nil ("$B%A%c%s(B" . "$B$A$c$s(B")) ("typ" nil ("$B%A%g%&(B" . "$B$A$g$&(B")) ("tyq" nil ("$B%A%c%$(B" . "$B$A$c$$(B")) ("tyw" nil ("$B%A%'%$(B" . "$B$A$'$$(B")) ("tyz" nil ("$B%A%c%s(B" . "$B$A$c$s(B")) ("tz" nil ("$B%?%s(B" . "$B$?$s(B")) ("vd" nil ("$B%t%'%s(B" . "$B$&!+$'$s(B")) ("vk" nil ("$B%t%#%s(B" . "$B$&!+$#$s(B")) ("vl" nil ("$B%t%)%s(B" . "$B$&!+$)$s(B")) ("vn" nil ("$B%t%!%s(B" . "$B$&!+$!$s(B")) ("vp" nil ("$B%t%)!<(B" . "$B$&!+$)!<(B")) ("vq" nil ("$B%t%!%$(B" . "$B$&!+$!$$(B")) ("vw" nil ("$B%t%'%$(B" . "$B$&!+$'$$(B")) ("vya" nil ("$B%t%c(B" . "$B$&!+$c(B")) ("vye" nil ("$B%t%'(B" . "$B$&!+$'(B")) ("vyo" nil ("$B%t%g(B" . "$B$&!+$g(B")) ("vyu" nil ("$B%t%e(B" . "$B$&!+$e(B")) ("vz" nil ("$B%t%!%s(B" . "$B$&!+$!$s(B")) ("wA" nil ("$B%n(B" . "$B$n(B")) ("wd" nil ("$B%&%'%s(B" . "$B$&$'$s(B")) ("wf" nil ("$B%o%$(B" . "$B$o$$(B")) ("wha" nil ("$B%&%!(B" . "$B$&$!(B")) ("whe" nil ("$B%&%'(B" . "$B$&$'(B")) ("whi" nil ("$B%&%#(B" . "$B$&$#(B")) ("who" nil ("$B%&%)(B" . "$B$&$)(B")) ("whu" nil ("$B%&(B" . "$B$&(B")) ("wk" nil ("$B%&%#%s(B" . "$B$&$#$s(B")) ("wl" nil ("$B%&%)%s(B" . "$B$&$)$s(B")) ("wn" nil ("$B%o%s(B" . "$B$o$s(B")) ("wp" nil ("$B%&%)!<(B" . "$B$&$)!<(B")) ("wq" nil ("$B%o%$(B" . "$B$o$$(B")) ("wr" nil ("$B%o%l(B" . "$B$o$l(B")) ("wso" nil ("$B%&%)(B" . "$B$&$)(B")) ("wt" nil ("$B%o%?(B" . "$B$o$?(B")) ("wz" nil ("$B%o%s(B" . "$B$o$s(B")) ("xa" nil ("$B%7%c(B" . "$B$7$c(B")) ("xc" nil ("$B%7%c(B" . "$B$7$c(B")) ("xd" nil ("$B%7%'%s(B" . "$B$7$'$s(B")) ("xe" nil ("$B%7%'(B" . "$B$7$'(B")) ("xf" nil ("$B%7%'%$(B" . "$B$7$'$$(B")) ("xh" nil ("$B%7%e%&(B" . "$B$7$e$&(B")) ("xi" nil ("$B%7(B" . "$B$7(B")) ("xj" nil ("$B%7%e%s(B" . "$B$7$e$s(B")) ("xk" nil ("$B%7%s(B" . "$B$7$s(B")) ("xl" nil ("$B%7%g%s(B" . "$B$7$g$s(B")) ("xn" nil ("$B%7%c%s(B" . "$B$7$c$s(B")) ("xo" nil ("$B%7%g(B" . "$B$7$g(B")) ("xp" nil ("$B%7%g%&(B" . "$B$7$g$&(B")) ("xq" nil ("$B%7%c%$(B" . "$B$7$c$$(B")) ("xt" nil ("$B%7%e%D(B" . "$B$7$e$D(B")) ("xu" nil ("$B%7%e(B" . "$B$7$e(B")) ("xv" nil ("$B%7%c%$(B" . "$B$7$c$$(B")) ("xw" nil ("$B%7%'%$(B" . "$B$7$'$$(B")) ("xxa" nil ("$B%!(B" . "$B$!(B")) ("xxe" nil ("$B%'(B" . "$B$'(B")) ("xxi" nil ("$B%#(B" . "$B$#(B")) ("xxo" nil ("$B%)(B" . "$B$)(B")) ("xxu" nil ("$B%%(B" . "$B$%(B")) ("xxh" nil "$B"+(B") ("xxj" nil "$B"-(B") ("xxk" nil "$B",(B") ("xxl" nil "$B"*(B") ("xz" nil ("$B%7%c%s(B" . "$B$7$c$s(B")) ("y<" nil "$B"+(B") ("y>" nil "$B"*(B") ("y^" nil "$B",(B") ("yf" nil ("$B%f(B" . "$B$f(B")) ("yh" nil ("$B%f%&(B" . "$B$f$&(B")) ("yi" nil ("$B%p(B" . "$B$p(B")) ("yj" nil ("$B%f%s(B" . "$B$f$s(B")) ("yl" nil ("$B%h%s(B" . "$B$h$s(B")) ("yn" nil ("$B%d%s(B" . "$B$d$s(B")) ("yp" nil ("$B%h%&(B" . "$B$h$&(B")) ("yq" nil ("$B%d%$(B" . "$B$d$$(B")) ("yr" nil ("$B%h%k(B" . "$B$h$k(B")) ("yv" nil ("$B%f%&(B" . "$B$f$&(B")) ("yz" nil ("$B%d%s(B" . "$B$d$s(B")) ("zc" nil ("$B%6(B" . "$B$6(B")) ("zd" nil ("$B%<%s(B" . "$B$<$s(B")) ("zf" nil ("$B%<(B" . "$B$<(B")) ("zh" nil ("$B%:%&(B" . "$B$:$&(B")) ("zj" nil ("$B%:%s(B" . "$B$:$s(B")) ("zk" nil ("$B%8%s(B" . "$B$8$s(B")) ("zl" nil ("$B%>%s(B" . "$B$>$s(B")) ("zn" nil ("$B%6%s(B" . "$B$6$s(B")) ("zp" nil ("$B%>%&(B" . "$B$>$&(B")) ("zq" nil ("$B%6%$(B" . "$B$6$$(B")) ("zr" nil ("$B%6%k(B" . "$B$6$k(B")) ("zv" nil ("$B%6%$(B" . "$B$6$$(B")) ("zw" nil ("$B%<%$(B" . "$B$<$$(B")) ("zx" nil ("$B%<%$(B" . "$B$<$$(B")) ("zyd" nil ("$B%8%'%s(B" . "$B$8$'$s(B")) ("zyh" nil ("$B%8%e%&(B" . "$B$8$e$&(B")) ("zyj" nil ("$B%8%e%s(B" . "$B$8$e$s(B")) ("zyl" nil ("$B%8%g%s(B" . "$B$8$g$s(B")) ("zyn" nil ("$B%8%c%s(B" . "$B$8$c$s(B")) ("zyp" nil ("$B%8%g%&(B" . "$B$8$g$&(B")) ("zyq" nil ("$B%8%c%$(B" . "$B$8$c$$(B")) ("zyw" nil ("$B%8%'%$(B" . "$B$8$'$$(B")) ("zyz" nil ("$B%8%c%s(B" . "$B$8$c$s(B")) ("zz" nil ("$B%6%s(B" . "$B$6$s(B")))) (defvar skk-azik-keyboard-specific-additional-rom-kana-rule-list nil) ;; $B%-!<%\!<%I0MB8ItJ,!#(B ;; skk-azik-keyboard-type $B$,@_Dj$5$l$F$$$l$P0J2<$r ;; Author: Yusuke Shinyama ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method, cdb ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; Usage: Set skk-cdb-large-jisyo in your ~/.skk like the following. ;; ;; (setq skk-cdb-large-jisyo "/usr/share/skk/SKK-JISYO.L.cdb") ;; (require 'cdb) (eval-when-compile (require 'skk-macs) (require 'skk-vars)) (defconst skk-cdb-version "20100719+") ;; skk-cdb-working-buffer ;; (defvar skk-cdb-working-buffer " *skk-cdb*") ;; skk-search-cdb-jisyo ;; ;;;###autoload (defun skk-search-cdb-jisyo (cdb-path) (unless cdb-path (setq cdb-path skk-cdb-large-jisyo)) (when (and (stringp cdb-path) (file-readable-p cdb-path)) (cdb-init cdb-path) (let* ((key (if skk-use-numeric-conversion (skk-num-compute-henkan-key skk-henkan-key) skk-henkan-key)) (bkey (encode-coding-string key skk-cdb-coding-system)) (bval (cdb-get cdb-path bkey)) l) (when bval (with-current-buffer (get-buffer-create skk-cdb-working-buffer) (erase-buffer) (insert (decode-coding-string bval skk-cdb-coding-system)) (goto-char (point-min)) (when (eq (following-char) ?/) (let ((okurigana (or skk-henkan-okurigana skk-okuri-char))) (forward-char 1) (setq l (skk-compute-henkan-lists okurigana)) (when l (cond ((and okurigana skk-henkan-okuri-strictly) (nth 2 l)) ((and okurigana skk-henkan-strict-okuri-precedence) (skk-nunion (nth 2 l) (car l))) (t (car l))))))))))) (provide 'skk-cdb) ;;; skk-cdb.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-comp.el000066400000000000000000000506361361774317600205040ustar00rootroot00000000000000;;; skk-comp.el --- $BJd40$N$?$a$N%W%m%0%i%`(B -*- coding: iso-2022-jp -*- ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 ;; 1999, 2000 ;; Masahiko Sato ;; Author: Masahiko Sato ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; $B"&$5(B (TAB) -> $B"&$5$H$&(B (.) -> $B"&$5$$$H$&(B (,) -> $B"&$5$H$&(B(.) -> $B"&$5$$$H$&(B ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars) (defvar smart-find-file-path) (defvar dont-bind-my-keys) (condition-case nil (let ((dont-bind-my-keys t)) (load "smart-find")) (error (defalias 'smart-find-file-all 'ignore)))) ;;;###autoload (defun skk-comp-start-henkan (arg) "$B"&%b!<%I$GFI$_$rJd40$7$?8e!"JQ49$9$k!#(B $B$=$l0J30$N%b!<%I$G$O%*%j%8%J%k$N%-!<%^%C%W$K3d$jIU$1$i$l$?%3%^%s%I$r%(%_%e%l!<(B $B%H$9$k!#(B" (interactive "*P") (cond ((eq skk-henkan-mode 'on) (skk-comp-do (not (eq last-command 'skk-comp-do))) (skk-start-henkan arg)) (t (skk-emulate-original-map arg)))) ;;;###autoload (defun skk-comp (first &optional silent) (setq this-command 'skk-comp-do) (skk-comp-do first silent)) ;;;###autoload (defun skk-comp-do (first &optional silent set-this-command) ;; main completion engine. (when set-this-command (setq this-command 'skk-comp-do)) (let ((inhibit-quit t) ;; skk-num $B$,(B require $B$5$l$F$J$$$H(B ;; buffer-local $BCM$r2u$962$l$"$j!#(B skk-num-list tmp-key data orig-key c-word) (when first (setq skk-comp-search-done nil skk-comp-stack nil skk-comp-depth 0 skk-comp-prefix skk-prefix) ;; key \ use-prefix nil kakutei-first non-nil # data ;; "$B$+(Bk" "$B$+(B" , "" "$B$+(B" , "k" "$B$+(B", "k" # t ;; "$B$+(Bn" "$B$+$s(B", "" "$B$+$s(B", "" "$B$+(B", "n" # non-t (setq tmp-key (buffer-substring-no-properties skk-henkan-start-point (point))) ;; skk-kana-cleanup() $B$r8F$VA0$N(B key $B$re8uJd$,$J$$$N$G(B c-word = nil (if skk-comp-circulate (setq skk-comp-depth (length skk-comp-stack))) (setq skk-comp-depth (1- skk-comp-depth)) (setq c-word (nth skk-comp-depth skk-comp-stack)))) ;; ($BL$C5:w8uJd$,;D$C$F$$$k2DG=@-M-$j(B) (t (cond ;; $B:G8e$KF@$i$l$?8uJd$rI=<($7$F$$$k(B ((zerop skk-comp-depth) (setq c-word (let ((word (skk-comp-get-candidate first))) (while (member word skk-comp-stack) (setq word (skk-comp-get-candidate))) word)) (if c-word ;; $B?75,$K8+$D$1$?$H$-$@$1(B push $B$9$k!#(B (push c-word skk-comp-stack) (setq skk-comp-search-done t) (if skk-comp-circulate (setq skk-comp-depth (length skk-comp-stack))))) (t ;; "," $B$J$I$GA08uJd$KLa$C$F$$$k(B (setq skk-comp-depth (1- skk-comp-depth) c-word (nth skk-comp-depth skk-comp-stack)))))) (cond (c-word (delete-region skk-henkan-start-point (point)) (insert c-word)) (t ;; When skk-comp-circulate, return to the keyword. (when skk-comp-circulate (delete-region skk-henkan-start-point (point)) (insert orig-key)) (unless silent (ding) (cond ((and (string= skk-comp-key "") (assq 'skk-comp-by-history skk-completion-prog-list) (or (not skk-comp-use-prefix) (string= skk-comp-prefix ""))) (skk-message "$B$3$l0J>e$NMzNr$O$"$j$^$;$s(B" "No more words in history")) (t (if skk-japanese-message-and-error (message "\"%s\" $B$GJd40$9$Y$-8+=P$78l$O(B%s$B$"$j$^$;$s(B" (if skk-comp-use-prefix (concat orig-key skk-comp-prefix) orig-key) (if first "" "$BB>$K(B")) (message "No %scompletions for \"%s\"" (if first "" "more ") (if skk-comp-use-prefix (concat orig-key skk-comp-prefix) orig-key)))))))))) ;;;###autoload (defun skk-comp-get-candidate (&optional first) (when first (setq skk-comp-first t skk-current-completion-prog-list (cond ((and (integerp first) (<= 0 first) (<= first 9)) (let ((list (symbol-value (intern (format "skk-completion-prog-list-%d" first))))) (or list skk-completion-prog-list))) (t skk-completion-prog-list)))) (let (cand prog) (while (and (null cand) skk-current-completion-prog-list) (setq prog (car skk-current-completion-prog-list)) (setq cand (eval prog) ; `skk-comp-key' $B$r%-!<$H$7$F!"J8;zNs$R$H$D$,La$k(B skk-comp-first nil) (unless cand (setq skk-current-completion-prog-list (cdr skk-current-completion-prog-list)) (setq skk-comp-first t))) (if (and skk-katakana cand) (skk-hiragana-to-katakana cand) cand))) ;; for test or backend use ;;;###autoload (defun skk-comp-get-all-candidates (key prefix prog-list) (let ((skk-comp-key key) (skk-comp-prefix prefix) (skk-completion-prog-list prog-list) skk-current-completion-prog-list skk-comp-first cand ret) (setq cand (skk-comp-get-candidate 'first)) (when cand (setq ret (list cand)) (while (setq cand (skk-comp-get-candidate)) (unless (member cand ret) (setq ret (cons cand ret))))) (nreverse (if skk-katakana (mapcar 'skk-hiragana-to-katakana ret) ret)))) ;;;###autoload (defun skk-comp-get-regexp (prefix) ;; $B%W%l%U%#%C%/%9$KBP1~$9$k@55,I=8=$rJV$9!#(B ;; $B0lEY@8@.$7$?@55,I=8=$O(B skk-comp-prefix-regexp-alist $B$KJ]B8$7$F$*$/!#(B (or (cdr (assoc prefix skk-comp-prefix-regexp-alist)) (let ((regexp (if (string= prefix "") "" (let ((tree skk-rule-tree) kana-list) (dolist (c (string-to-list prefix)) (setq tree (skk-select-branch tree c))) (setq kana-list (skk-comp-arrange-kana-list (skk-comp-collect-kana tree) prefix)) (condition-case nil (regexp-opt kana-list 'with-paren) (error (if kana-list (concat "\\(" (mapconcat #'regexp-quote kana-list "\\|") "\\)") ""))))))) (add-to-list 'skk-comp-prefix-regexp-alist (cons prefix regexp)) regexp))) ;;;###autoload (defun skk-comp-collect-kana (tree) ;; skk-rule-tree $B$NItJ,LZ$KB0$9$k(B "$B$+$J(B" $B$r=8$a$k(B (let ((data (skk-get-kana tree)) (branches (skk-get-branch-list tree)) kana kana-list) (when data (setq kana (if (consp data) (cdr data) data)) (when (stringp kana) (setq kana-list (list kana)))) (nconc kana-list (apply #'nconc (mapcar #'skk-comp-collect-kana branches))))) ;;;###autoload (defun skk-comp-arrange-kana-list (kana-list prefix) ;; skk-comp-collect-kana $B$+$iF@$?(B "$B$+$J(B" $B$N%j%9%H$r85$K(B ;; $B%W%l%U%#%C%/%9$KBP1~$7$?D4@0$r$9$k(B (let (short-list long-list tmp) (dolist (kana kana-list) (if (= (length kana) 1) (add-to-list 'short-list kana) (add-to-list 'long-list kana))) ;; "$B$K(B" $B$,$"$k;~$K(B "$B$K$c(B" $B$H$+$O$$$i$J$$(B (dolist (s-kana short-list) (dolist (l-kana long-list) (when (string= s-kana (substring l-kana 0 1)) (setq long-list (delete l-kana long-list))))) (setq tmp (nconc short-list long-list)) (if skk-comp-kana-list-filter-function (funcall skk-comp-kana-list-filter-function tmp prefix) tmp))) ;;;###autoload (defun skk-comp-from-jisyo (file) ;; skk-comp-prefix $B$r;H$($k(B "SKK $B<-=q%U%)!<%^%C%H$N(B FILE $B$+$iJd408uJd$rF@$k!#(B" (let ((buffer (skk-get-jisyo-buffer file 'nomsg)) (abbrev skk-abbrev-mode) (key skk-comp-key) (prefix skk-comp-prefix) (first skk-comp-first) (use-prefix skk-comp-use-prefix)) (with-current-buffer buffer (when first (goto-char skk-okuri-nasi-min)) (if use-prefix (unless (and (string= key "") (string= prefix "")) (skk-comp-re-search-current-buffer key prefix abbrev)) (unless (string= key "") (skk-comp-search-current-buffer key abbrev)))))) ;;;###autoload (defun skk-comp-search-current-buffer (key &optional abbrev) (let (c-word) (save-match-data ;; `case-fold-search' $B$O!"<-=q%P%C%U%!$G$O>o$K(B nil$B!#(B (while (and (not c-word) (search-forward (concat "\n" (if skk-use-numeric-conversion (skk-num-compute-henkan-key key) key)) nil t)) (unless (eq (following-char) ?\040) ;SPC (setq c-word (concat key (buffer-substring-no-properties ;; $B8+=P$78l$K6uGr$O4^$^$l$J$$!#(B ;; " /" $B$r%5!<%A$9$kI,MW$O$J$$!#(B (point) (1- (search-forward " "))))) (when (and abbrev (string-match "\\Ca" c-word)) ;; abbrev $B%b!<%I$G!V(B3$B$M$s!W$J$I$NJd40$O$7$J$$(B (setq c-word nil)))) c-word))) ;;;###autoload (defun skk-comp-re-search-current-buffer (key prefix &optional abbrev) ;; $BLdBj$N$"$k%1!<%9$,$"$k$+$b$7$l$J$$$N$G(B ;; skk-comp-search-current-buffer $B$H$N0lK\2=$O$H$j$"$($:J]N1(B (let (c-word regexp-key) (setq regexp-key (concat (regexp-quote (if skk-use-numeric-conversion (skk-num-compute-henkan-key key) key)) (skk-comp-get-regexp prefix))) (save-match-data ;; `case-fold-search' $B$O!"<-=q%P%C%U%!$G$O>o$K(B nil$B!#(B (while (and (not c-word) (re-search-forward (concat "\n" regexp-key) nil t)) (beginning-of-line) (search-forward (if skk-use-numeric-conversion (skk-num-compute-henkan-key key) key)) (unless (eq (following-char) ?\040) ;SPC (setq c-word (concat key (buffer-substring-no-properties (point) (1- (search-forward " "))))) (when (and abbrev (string-match "\\Ca" c-word)) ;; abbrev $B%b!<%I$G!V(B3$B$M$s!W$J$I$NJd40$O$7$J$$(B (setq c-word nil)))) c-word))) ;;;###autoload (defun skk-comp-previous (&optional set-this-command) ;; skk-abbrev-comma, skk-insert-comma $B$N%5%V%k!<%A%s!#(B ;; $BD>A0$KJd40$r9T$C$?8+=P$7$rA^F~$9$k!#(B (when set-this-command (setq this-command 'skk-comp-do)) (let ((inhibit-quit t) (stack-length (length skk-comp-stack)) c-word) (if (and skk-comp-circulate (= skk-comp-depth stack-length)) (setq skk-comp-depth 0) (setq skk-comp-depth (1+ skk-comp-depth))) (setq c-word (nth skk-comp-depth skk-comp-stack)) (cond (c-word (delete-region skk-henkan-start-point (point)) (insert c-word)) (t (if (null skk-comp-circulate) ;; non-circulate $B$J$i$P(B skk-comp-depth $B$,HO0O30$J$N$G(B 1 $BLa$9(B (setq skk-comp-depth (1- skk-comp-depth)) (delete-region skk-henkan-start-point (point)) (insert skk-comp-key)) ;;(setq skk-comp-depth (1- skk-comp-depth)) (ding) (skk-message "\"%s\"$B$GJd40$9$Y$-8+=P$78l$OB>$K$"$j$^$;$s(B" "No more previous completions for \"%s\"" (if skk-comp-use-prefix (concat skk-comp-key skk-comp-prefix) skk-comp-key)))))) ;;;###autoload (defun skk-comp-previous/next (ch) (cond ((eq ch skk-next-completion-char) (skk-comp-do nil nil t)) ((eq ch skk-previous-completion-char) (skk-comp-previous t)))) ;;;###autoload (defun skk-try-completion (arg) "$B"&%b!<%I$G8+=P$78l$rJd40$9$k!#(B $B$=$l0J30$N%b!<%I$G$O!"%*%j%8%J%k$N%-!<3d$jIU$1$N%3%^%s%I$r%(%_%e%l!<%H$9$k!#(B" (interactive "P") (skk-with-point-move (if (eq skk-henkan-mode 'on) (skk-comp (or arg (not (eq last-command 'skk-comp-do)))) (skk-emulate-original-map arg)))) ;;;###autoload (defun skk-comp-wrapper (&optional arg) "Character $B$G$J$$%-!<$KJd40$r3d$jEv$F$k$?$a$N%3%^%s%I!#(B" (interactive "p") (skk-bind-last-command-char skk-try-completion-char (call-interactively #'skk-insert))) ;;;###autoload (defun skk-previous-comp-maybe (&optional arg) "Character $B$G$J$$%-!<$KJd40A08uJd$r3d$jEv$F$k$?$a$N%3%^%s%I!#(B $B"&%b!<%I$G$OJd40A08uJd!"$5$b$J$1$l$P%*%j%8%J%k$N%-!]$O8=:_$N(B Emacs $B$N%;%C%7%g%s$K$*$$$F9T$C$?Aw$jL5$7JQ49$N$&$A!"(B `skk-kakutei-history-limit' $B$G;XDj$5$l$k:G6a$N$b$N$G$"$k!#(B" (when (and (string= skk-comp-key "") (or (not skk-comp-use-prefix) (string= skk-comp-prefix ""))) (when skk-comp-first (setq skk-comp-kakutei-midasi-list (skk-remove-duplicates (mapcar #'car skk-kakutei-history)))) (pop skk-comp-kakutei-midasi-list))) ;;;###autoload (defun skk-comp-smart-find (&optional path) "`smart-find' $B$,8+$D$1$?%U%!%$%kL>$GJd40$9$k(B" (cond (skk-abbrev-mode (when skk-comp-first (setq skk-comp-smart-find-files (skk-smart-find skk-comp-key path))) (if skk-comp-smart-find-files (pop skk-comp-smart-find-files) nil)) (t (setq skk-comp-smart-find-files nil)))) ;;;###autoload (defun skk-search-smart-find (&optional path not-abbrev-only without-char-maybe) "`smart-find'$B$rMxMQ$7$?JQ49$r9T$&!#(B SKK abbrev $B%b!<%I$K$F!"1QJ8;z(B + `skk-completion-search-char' (~)$B$G(B $BL$40%9%Z%k$r;XDj$7$FJQ49$9$k$H!"Jd408uJd$,JQ498uJd$H$7$F=P8=$9$k!#(B $B%G%U%)%k%H$G$O(B SKK abbrev $B%b!<%I$N$_$GM-8z$J5!G=$@$,!"(B NOT-ABBREV-ONLY $B$r;XDj$9$k;v$G>o$KM-8z$H$J$k!#(B" (when (and (or not-abbrev-only skk-abbrev-mode)) (skk-completion-search `((skk-comp-smart-find ',path)) '((skk-search-identity)) 'without-midasi without-char-maybe))) ;;;###autoload (defun skk-smart-find (key &optional path) ;; smart-find $B$O(B provide $B$5$l$F$$$J$$(B (unless (fboundp 'smart-find-file) (let ((dont-bind-my-keys t)) (load-library "smart-find")) (message "")) ;; (unless path (setq path skk-smart-find-file-path)) (setq skk-comp-smart-find-files nil) ;; (let ((smart-find-file-path (or path smart-find-file-path)) results files) (unless (string= key "") (setq results (if (fboundp 'smart-find-file-all) (smart-find-file-all key))) (while results (if (string-match skk-smart-find-ignored-file-regexp (car results)) (setq results (cdr results)) (setq files (cons (pop results) files))))) (when files (setq files (sort files #'string-lessp))))) ;;;###autoload (defun skk-comp-lisp-symbol (&optional predicate) "Lisp symbol $BL>$GJd40$9$k!#(B PREDICATE $B$K0z?t(B 1 $B8D$N4X?t$r;XDj$9$l$P!"(BPREDICATE $B$rK~$?$9%7%s%\%k(B $B$K8B$C$FJd40$9$k!#(BPREDICATE $B$K$O(B `fboundp', `boundp', `commandp' $B$J$I$,;XDj$G$-$k!#;XDj$7$J$1$l$P4X?t$^$?$OJQ?t$K8B$C$FJd40$9$k!#(B `skk-completion-prog-list' $B$XDI2C$9$k$HM-8z$H$J$k!#(B \(add-to-list 'skk-completion-prog-list '\(skk-comp-lisp-symbol\) t\)" (cond (skk-abbrev-mode (when skk-comp-first (let (temp) (unless predicate (setq predicate (lambda (symbol) (or (fboundp symbol) (boundp symbol))))) (setq temp (sort (let ((completion-ignore-case nil)) (all-completions skk-comp-key obarray predicate)) #'string-lessp)) (when temp ;; read-only $B$J(B object $B$J$I$b$"$k$N$G$=$N$^$^;H$o$J$$(B (setq skk-comp-lisp-symbols (mapcar #'copy-sequence temp))))) (if skk-comp-lisp-symbols (pop skk-comp-lisp-symbols) nil)) (t (setq skk-comp-lisp-symbols nil)))) ;;;###autoload (defun skk-search-lisp-symbol (&optional predicate not-abbrev-only without-char-maybe) "Lisp symbol $BL>$GJd40$7$?7k2L$r8!:w7k2L$H$7$FJV$9!#(B PREDICATE $B$K0z?t(B 1 $B8D$N4X?t$r;XDj$9$l$P!"(BPREDICATE $B$rK~$?$9%7%s%\%k(B $B$K8B$C$FJd40$9$k!#(BPREDICATE $B$K$O(B `fboundp', `boundp', `commandp' $B$J$I$,;XDj$G$-$k!#;XDj$7$J$1$l$P4X?t$^$?$OJQ?t$K8B$C$FJd40$9$k!#(B SKK abbrev $B%b!<%I$K$F!"1QJ8;z(B + `skk-completion-search-char' (~)$B$G(B $BL$40%9%Z%k$r;XDj$7$FJQ49$9$k$H!"Jd408uJd$,JQ498uJd$H$7$F=P8=$9$k!#(B $B%G%U%)%k%H$G$O(B SKK abbrev $B%b!<%I$N$_$GM-8z$J5!G=$@$,!"(B NOT-ABBREV-ONLY $B$r;XDj$9$k;v$G>o$KM-8z$H$J$k!#(B $B@_DjNc(B \(add-to-list 'skk-search-prog-list '\(skk-search-lisp-symbol\) t\)" (when (and (or not-abbrev-only skk-abbrev-mode)) (skk-completion-search `((skk-comp-lisp-symbol ',predicate)) '((skk-search-identity)) 'without-midasi without-char-maybe))) (defun skk-comp-restrict-by-prefix (comp-prog) "$BJd40%W%m%0%i%`$K$h$jF@$i$l$?8uJd$r(B `skk-comp-prefix' $B$G9J$j9~$`!#(B `skk-comp-prefix' $B$KBP1~$7$F$$$J$$Jd40%W%m%0%i%`$rJ$+$l$k!#(B" (let (search-char) (when (or (setq search-char (eq (aref skk-henkan-key (1- (length skk-henkan-key))) skk-completion-search-char)) without-char-maybe) (let* ((key (if search-char (substring skk-henkan-key 0 (1- (length skk-henkan-key))) skk-henkan-key)) (skk-comp-use-prefix nil) (midasi-list (skk-comp-get-all-candidates key "" comp-prog-list)) tmp words) (dolist (midasi midasi-list) (setq tmp (skk-search-progs midasi (or search-prog-list skk-search-prog-list))) (when tmp ; $BJd40BP>]$H8!:wBP>]$OFHN)$J$N$GB8:_$7$J$$;v$b(B (unless without-midasi (setq words (nconc words (list midasi)))) ;; SKK $BK\BN$G(B skk-nunion $B$7$F$k$N$G$3$3$G$O9bB.@-=E;k(B (setq words (nconc words tmp)))) words)))) (defalias 'skk-start-henkan-with-completion 'skk-comp-start-henkan) (run-hooks 'skk-comp-load-hook) (provide 'skk-comp) ;;; skk-comp.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-cursor.el000066400000000000000000000075711361774317600210630ustar00rootroot00000000000000;;; skk-cursor.el --- SKK cursor control -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000 ;; Masatake YAMATO ;; Author: Masatake YAMATO ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (unless (skk-color-cursor-display-p) (error "%s" "SKK-CURSOR requires color display")) (eval-when-compile (require 'skk-macs) (require 'skk-vars)) (eval-and-compile (when (featurep 'emacs) (require 'ccc))) ;; Functions. (defun skk-cursor-default-color () (cond ((eval-when-compile (featurep 'xemacs)) (frame-property (selected-frame) 'cursor-color)) (t (ccc-frame-cursor-color)))) ;;;###autoload (defun skk-cursor-current-color () ;; $B%+%l%s%H%P%C%U%!$N(B SKK $B$N%b!<%I$+$i!"%+!<%=%k$N?'$r8e$KF~NO$9$kJ8(B ;; $B;z$,85$NF~NO%b!<%I$K$F9T$o$l$k$h$&$K(B)$B!#=>$$!"(Bskk-abbrev-mode ;; $B%U%i%0$N%A%'%C%/$NM%@hEY$r>e$2$k!#(B (skk-abbrev-mode skk-cursor-abbrev-color) (skk-jisx0208-latin-mode skk-cursor-jisx0208-latin-color) (skk-katakana skk-cursor-katakana-color) (skk-j-mode skk-cursor-hiragana-color) (skk-jisx0201-mode skk-cursor-jisx0201-color) (t skk-cursor-latin-color))) ;;;###autoload (defun skk-cursor-set-1 (color) (cond ((eval-when-compile (featurep 'xemacs)) ;;At 10 Jul 2000 16:37:49 +0900, ;;Yoshiki Hayashi wrote: ;;> foreground $B$r(B background $B$KJQ$($kI,MW$,$"$k$3$H0J30$O!":#$N(B ;;> $B$H$3$m$=$N$^$^$GF0$$$F$$$k$h$&$G$9!#$7$P$i$/(B test $B$7$F$_$^$9!#(B ;;> $B$I$&$b!"(Btext-cursor $B$bIaDL$N(B face $B$N$h$&$G!"(Bforeground $B$,J8(B ;;> $B;z$N?'$r!"(Bbackground $B$,J8;z$NGX7J$N?'$rI=$7$F$$$k$h$&$G$9!#(B (set-face-property 'text-cursor 'background (or color (skk-cursor-current-color)) (current-buffer))) (t (when ccc-default-cursor-color (ccc-set-buffer-local-cursor-color (or color (skk-cursor-current-color))))))) ;;;###autoload (defun skk-cursor-off-1 () (cond ((eval-when-compile (featurep 'xemacs)) (skk-cursor-set)) (t (when ccc-default-cursor-color (ccc-set-cursor-color-buffer-local nil))))) ;; advices. (when (eval-when-compile (featurep 'xemacs)) (defadvice minibuffer-keyboard-quit (before skk-cursor-ad activate) (unless skk-henkan-mode (skk-cursor-set (skk-cursor-default-color))))) ;; Hooks (when (eval-when-compile (featurep 'xemacs)) (add-hook 'isearch-mode-end-hook #'skk-cursor-set 'append) (add-hook 'minibuffer-setup-hook #'skk-cursor-set 'append) (add-hook 'minibuffer-exit-hook (lambda () (with-current-buffer (skk-minibuffer-origin) (skk-cursor-set)) (skk-cursor-set skk-cursor-default-color 'force)) 'append)) (provide 'skk-cursor) ;;; skk-cursor.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-cus.el000066400000000000000000000255561361774317600203430ustar00rootroot00000000000000;;; skk-cus.el --- SKK $B$N4JC1$+$9$?$^$$$:;n:nIJ(B -*- coding: iso-2022-jp -*- ;; Copyright (C) 2001 SKK Development Team ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; SKK $B5/F08e(B M-x skk-customize $B$G@_Dj$9$k!#(B ;;; Code: (eval-when-compile (require 'skk-macs)) (require 'skk-vars) (require 'cus-edit) (require 'custom) (defvar skk-custom-params nil) (defvar skk-custom-alist nil) (defvar skk-custom-buffer-original nil) (defvar skk-custom-map (let ((map (make-keymap))) (set-keymap-parent map widget-keymap) (define-key map [mouse-1] 'widget-move-and-invoke) map)) (defconst skk-cus-params-visual '((skk-use-face (const :tag "$BJQ49Cf$K?'$r$D$1$k(B" t) "") (skk-use-color-cursor (const :tag "$B%+!<%=%k$K?'$r$D$1$k(B" t) "") (skk-japanese-message-and-error (const :tag "$B%a%C%;!<%8$OF|K\8l$GDLCN$9$k(B" t) "") (skk-verbose (const :tag "$B>iD9$J%a%C%;!<%8$rI=<($9$k(B" t) "") (skk-show-japanese-menu (const :tag "$B%a%K%e!<%P!<$rF|K\8l$GI=<($9$k(B" t) "") (skk-show-annotation (radio :tag "$BJQ49;~$KCpo$KI=<((B" t) (const :tag "$B8uJd0lMw$G$OHsI=<((B" (not list)) (const :tag "$B%_%K%P%C%U%!$G$OHsI=<((B" (not minibuf)) (const :tag "$B8uJd0lMw$H%_%K%P%C%U%!$G$OHsI=<((B" (not list minibuf)) (const :tag "$BHsI=<((B" nil)) "") (skk-show-inline (radio :tag "$B8uJd0lMw$r%$%s%i%$%sI=<($9$k!)(B" (const :tag "$B=D$KJB$Y$FI=<((B" vertical) (const :tag "$B0lNs$KI=<((B" t) (const :tag "$B%$%s%i%$%sI=<($7$J$$(B" nil)) "") (skk-show-tooltip (const :tag "$B8uJd0lMw!&CmJN,2DG=$K$9$k(B" t) "") (skk-delete-implies-kakutei (const :tag "$B"'%b!<%I$G(B BS $B$r2!$7$?$i3NDj$9$k(B" t) "") (skk-auto-insert-paren (const :tag "$BJD3g8L$r<+F0E*$KA^F~$9$k(B" t) ""))) (defconst skk-cus-params-henkan '((skk-auto-start-henkan (const :tag "$BFCDj$NJ8;z$NF~NO;~$K<+F0E*$KJQ49$r3+;O$9$k(B" t) "") (skk-henkan-okuri-strictly (const :tag "$BAw$j2>L>$,87L)$K@5$7$$8uJd$N$_I=<($9$k(B" t) "") (skk-henkan-strict-okuri-precedence (const :tag "$BAw$j2>L>$,87L)$K@5$7$$8uJd$rM%@h$7$FI=<($9$k(B" t) "") (skk-check-okurigana-on-touroku (radio :tag "$B<-=qEPO?;~$NM>7W$JAw$j2>L>$N<+F0=hM}$O!)(B" (const :tag "$B<+F0=hM}$9$k(B" auto) (const :tag "$B%f!<%6$N;X<($K$h$k(B" ask) (const :tag "$B<+F0=hM}$7$J$$(B" nil)) "") (skk-j-mode-function-key-usage (radio :tag "$B$+$J%b!<%I$G%U%!%s%/%7%g%s%-!<$r;H$&!)(B" (const :tag "$BFC3Q%+%J$rF~NO2DG=$K$9$k(B" t) ""))) (defconst skk-cus-params-misc '((skk-share-private-jisyo (const :tag "$BJ#?t$N(B SKK $B$,8D?M<-=q$r6&M-$9$k(B" t) "") (skk-show-icon (const :tag "SKK $B$N%"%$%3%s$rI=<($9$k(B" t) "") (skk-preload (const :tag "SKK $B$r$"$i$+$8$a%m!<%I$7$F=i2s5/F0$r9bB.$K$9$k(B" t) ""))) (defun skk-custom-mode () (kill-all-local-variables) (setq major-mode 'skk-custom-mode mode-name "SKK $B$N@_Dj(B") (use-local-map skk-custom-map) (when (and (facep 'custom-button-face) (facep 'custom-button-pressed-face)) (set (make-local-variable 'widget-button-face) 'custom-button-face) (set (make-local-variable 'widget-button-pressed-face) 'custom-button-pressed-face) (set (make-local-variable 'widget-mouse-face) 'custom-button-pressed-face)) (when (and (boundp 'custom-raised-buttons) (symbol-value 'custom-raised-buttons)) (set (make-local-variable 'widget-push-button-prefix) "") (set (make-local-variable 'widget-push-button-suffix) "") (set (make-local-variable 'widget-link-prefix) "") (set (make-local-variable 'widget-link-suffix) "")) (run-hooks 'skk-custom-mode-hook)) (defun skk-cus-info (params) (delq nil (mapcar (lambda (el) (let ((val (symbol-value (car el)))) (if val (cons (car el) val) nil))) params))) ;;;###autoload (defun skk-customize-group-skk () (interactive) (customize-group 'skk)) ;;;###autoload (defun skk-customize () (interactive) (dolist (param (append skk-cus-params-visual skk-cus-params-ui skk-cus-params-henkan skk-cus-params-search skk-cus-params-input skk-cus-params-misc)) (let ((var (car param))) (when (and (eq 'const (caadr param)) (symbol-value var)) (set var t)))) (setq skk-custom-buffer-original (current-buffer)) (let ( (visual (mapcar (lambda (entry) `(cons :format "%v%h\n" :doc ,(nth 2 entry) (const :format "" ,(nth 0 entry)) ,(nth 1 entry))) skk-cus-params-visual)) (ui (mapcar (lambda (entry) `(cons :format "%v%h\n" :doc ,(nth 2 entry) (const :format "" ,(nth 0 entry)) ,(nth 1 entry))) skk-cus-params-ui)) (henkan (mapcar (lambda (entry) `(cons :format "%v%h\n" :doc ,(nth 2 entry) (const :format "" ,(nth 0 entry)) ,(nth 1 entry))) skk-cus-params-henkan)) (search (mapcar (lambda (entry) `(cons :format "%v%h\n" :doc ,(nth 2 entry) (const :format "" ,(nth 0 entry)) ,(nth 1 entry))) skk-cus-params-search)) (input (mapcar (lambda (entry) `(cons :format "%v%h\n" :doc ,(nth 2 entry) (const :format "" ,(nth 0 entry)) ,(nth 1 entry))) skk-cus-params-input)) (misc (mapcar (lambda (entry) `(cons :format "%v%h\n" :doc ,(nth 2 entry) (const :format "" ,(nth 0 entry)) ,(nth 1 entry))) skk-cus-params-misc)) (info (append (skk-cus-info skk-cus-params-visual) (skk-cus-info skk-cus-params-ui) (skk-cus-info skk-cus-params-henkan) (skk-cus-info skk-cus-params-search) (skk-cus-info skk-cus-params-input) (skk-cus-info skk-cus-params-misc)))) (kill-buffer (get-buffer-create "*SKK $B$N4pK\@_Dj(B*")) ;; (switch-to-buffer (get-buffer-create "*SKK $B$N4pK\@_Dj(B*")) (set-window-buffer (selected-window) (get-buffer-create "*SKK $B$N4pK\@_Dj(B*")) (set-buffer "*SKK $B$N4pK\@_Dj(B*") (skk-custom-mode) (widget-insert "SKK $B$N4pK\@_Dj!#=*$o$C$?$i(B ") (widget-create 'push-button :tag "done" :help-echo "$B=*$o$C$?$i%\%/$r2!$7$F!#(B" :action 'skk-customize-done) (widget-insert " $B$r2!$7$F$/$@$5$$!#(B\n\n") (widget-insert "$BCm0U(B: $B$$$/$D$+$N@_Dj$O:F5/F0$,I,MW$G$9!#(B\n\n") (setq skk-custom-params (list (widget-create 'group :value info `(set :inline t :greedy t :tag "$BI=<($K4X$9$k@_Dj(B" :format "%t:\n%h%v" :doc "" ,@visual)) (widget-create 'group :value info `(set :inline t :greedy t :tag "$B4pK\E*$J%f!<%6!&%$%s%?!<%U%'!<%9(B" :format "%t:\n%h%v" :doc "" ,@ui)) (widget-create 'group :value info `(set :inline t :greedy t :tag "$BJQ49$K4X$9$k@_Dj(B" :format "%t:\n%h%v" :doc "" ,@henkan)) (widget-create 'group :value info `(set :inline t :greedy t :tag "$B<-=q8!:w$K4X$9$k@_Dj(B" :format "%t:\n%h%v" :doc "" ,@search)) (widget-create 'group :value info `(set :inline t :greedy t :tag "$BF~NOJ}<0$K4X$9$k@_Dj(B" :format "%t:\n%h%v" :doc "" ,@input)) (widget-create 'group :value info `(set :inline t :greedy t :tag "$B$=$NB>$N@_Dj(B" :format "%t:\n%h%v" :doc "" ,@misc)))) (use-local-map skk-custom-map) (local-set-key "q" 'bury-buffer) (widget-setup) (goto-char (point-min)))) (defun skk-customize-done (&rest args) (interactive) (setq skk-custom-alist nil) (dolist (group skk-custom-params) (setq skk-custom-alist (append skk-custom-alist (widget-value group)))) (dolist (param (append skk-cus-params-visual skk-cus-params-ui skk-cus-params-henkan skk-cus-params-search skk-cus-params-input skk-cus-params-misc)) (unless (assq (car param) skk-custom-alist) (push (cons (car param) nil) skk-custom-alist))) (skk-cus-set) (bury-buffer) (unless (eq skk-custom-buffer-original (current-buffer)) ;; (switch-to-buffer skk-custom-buffer-original)) (set-window-buffer (selected-window) (get-buffer skk-custom-buffer-original))) (skk-adjust-user-option)) ;;;###autoload (defun skk-cus-setup () ;; obsolete (when (and (boundp 'skk-custom-file) (ignore-errors (file-readable-p (symbol-value 'skk-custom-file)))) (let* ((old-name (expand-file-name (symbol-value 'skk-custom-file))) (new-name (concat old-name ".not_used"))) (load-file old-name) (copy-file old-name new-name 'ok-if-already-exists) (delete-file old-name)) (skk-cus-set))) ;;;###autoload (defun skk-cus-set (&optional alist) (unless alist (setq alist skk-custom-alist)) (dolist (param alist) (let ((variable (car param)) (value (cdr param))) (funcall (or (get variable 'custom-set) 'set-default) variable value) (put variable 'saved-value (list (custom-quote value))) (custom-push-theme 'theme-value variable 'user 'set (custom-quote value)) (put variable 'customized-value nil) (put variable 'customized-variable-comment nil))) (custom-save-all) ;; (when (eq alist skk-custom-alist) (setq skk-custom-alist nil))) (provide 'skk-cus) ;;; skk-cus.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-dcomp.el000066400000000000000000000575521361774317600206540ustar00rootroot00000000000000;;; skk-dcomp.el --- SKK dynamic completion -*- coding: iso-2022-jp -*- ;; Copyright (C) 1999, 2000, 2001 NAKAJIMA Mikio ;; Copyright (C) 2008, 2009 IRIE Tetsuya ;; Author: NAKAJIMA Mikio ;; Author: IRIE Tetsuya ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary ;; $B$3$l$O"&%b!<%I$K$*$1$k8+=P$78l$NF~NO$r!"<+F0E*$K%@%$%J%_%C%/$K%3%s%W(B ;; $B%j!<%7%g%s$9$k%W%m%0%i%`$G$9!#(B ;; ;; MS Excel $B$N%;%kF~NO$N<+F0Jd40(B ($BF1$8Ns$K4{$KF~NO$7$F$$$kJ8;zNs$,$"$C(B ;; $B$?$H$-$K$=$l$r;2>H$7$FJd40$7$h$&$H$9$k5!G=(B) $B$r8+$F$$$F!"$3$lJXMx$@$J$!(B ;; $B$H;W$C$?$N$,!"3+H/$N$-$C$+$1$G$9!#(B ;; ;; $B$=$N8e!"A}0f=SG7(B $B$5$s$,3+H/$7$F$$$k(B POBox $B$r8+$F!"(BMS Excel $B$r8+$?:]$K(B ;; $B;W$C$?$3$H$r;W$$=P$7!"(BSKK $B$N(B skk-comp.el $B$GDs6!$5$l$F$$$k%3%s%W%j!<%7(B ;; $B%g%s$N5!G=$r<+F0E*$KDs6!$9$kJ}8~$G/$7F0:n$,CY$$$N$,FqE@$G$9!#(Bskk-dcomp.el ;; $B$O0l$D$7$+8uJd$r=P$7$^$;$s$,!"%f!<%6$N8+=P$78l$NF~NO$KDI=>$7%@%$%J%_%C(B ;; $B%/$K%3%s%W%j!<%7%g%s$9$k5!G=$O(B POBox $BF1MM;}$C$F$$$^$9$7!"$^$?F0:n$O$+$J(B ;; $B$j9bB.$G!"(Bskk-dcomp.el $B$r;H$&$3$H$K$h$k%*!<%P!<%X%C%I$rBN46$9$k$3$H$O$J(B ;; $B$$$H;W$$$^$9!#(B ;; ;; ;; ;; ;; SKK $B$rIaDL$K(B make $B$7$F2<$5$$!#FC$K:n6H$OITMW$G$9!#(B ;; ;; ;; ;; ~/.emacs.d/init.el $B$b$7$/$O(B ~/.skk $B$K(B (setq skk-dcomp-activate t) $B$H=q$-(B ;; $B$^$7$g$&!#(B ;; SKK $B5/F08e$K%@%$%J%_%C%/%3%s%W%j!<%7%g%s$N5!G=$r;_$a$?$+$C$?$i!"(B ;; (setq skk-dcomp-activate nil) $B$rI>2A$7$^$7$g$&!#(B ;; ;; ;; ;; ;; $B"&%b!<%I$KF~$j8+=P$78l$rF~NO$9$k$H!"8D?M<-=q$r<+F0E*$K8!:w$7!"8+=P(B ;; $B$78l$r(B $B%3%s%W%j!<%7%g%s$7$^$9!#2<5-$N$h$&$KF0:n$7$^$9(B ($B%+%C%3Fb$O%-!<(B ;; $BF~NO$r!"(B-!- $B$O%]%$%s%H0LCV$rI=$7$^$9(B)$B!#(B ;; ;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B ;; ;; * SKK $B$N%3%s%W%j!<%7%g%s$O!"85Mh8D?M<-=q$N$_$r;2>H$9$k;EMM$K$J$C$F$$(B ;; $B$k$N$G!"8D?M<-=q$K$J$$8+=P$78l$O%3%s%W%j!<%7%g%s$5$l$^$;$s!#(B ;; * $B%3%s%W%j!<%7%g%s$O!"Aw$j$J$7JQ49$N>l9g$7$+9T$o$l$^$;$s!#(B ;; * Ho $B$NF~NO$KBP$7!"!V$[$s$H$&!W$,%3%s%W%j!<%7%g%s$5$l$k$+$I$&$+$O8D(B ;; $B?M<-=q$N%(%s%H%j$N=gHV$l0c$&$O$:$G$9!#(B ;; ;; $B<+F0E*$K%3%s%W%j!<%7%g%s$5$l$?8+=P$78l$,!"<+J,$N0U?^$7$?$b$N$G$"$l$P(B TAB ;; $B$r2!$9$3$H$G%]%$%s%H0LCV$rF0$+$7!"%3%s%W%j!<%7%g%s$5$l$?8+=P$78l$rA*Br$9(B ;; $B$k$3$H$,$G$-$^$9!#$=$N$^$^(B SPC $B$r2!$7$FJQ49$9$k$J$j!"(Bq $B$r2!$7$F%+%?%+%J(B ;; $B$K$9$k$J$j(B SKK $BK\Mh$NF0:n$r2?$G$b9T$&$3$H$,$G$-$^$9!#(B ;; ;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B (TAB) -> $B"&$[$s$H$&(B-!- (TAB) ;; ;; $B%3%s%W%j!<%7%g%s$5$l$?8+=P$78l$,<+J,$N0U?^$7$?$b$N$G$J$$>l9g$O!"$+$^(B ;; $B$o$: $B"&$[(B-!-$B$s$H$&(B (ka) -> $B"&$[$+(B-!-$B$s(B ;; ;; $B%3%s%W%j!<%7%g%s$5$l$J$$>uBV$,<+J,$N0U?^$7$?$b$N$G$"$k>l9g$b!"%3%s%W%j!<(B ;; $B%7%g%s$5$l$?ItJ,$rC1$KL5;k$9$k$@$1$G(B OK $B$G$9!#(B ;; ;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B (C-j) -> $B$[(B ;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B (SPC) -> $B"'J](B ($B!V$[!W$r8+=P$78l$H$7$?JQ49$,(B ;; $B9T$o$l$k(B) ;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B (q) -> $B%[(B ;; ;; $B%3%s%W%j!<%7%g%s$5$l$?>uBV$+$i(B BS $B$r2!$9$H!">C$5$l$?%3%s%W%j!<%7%g%sA0$N(B ;; $B8+=P$78l$+$i:FEY%3%s%W%j!<%7%g%s$r9T$$$^$9!#(B ;; ;; (Ho) $B"&$[(B -> $B"&$[(B-!-$B$s$H$&(B (ka) -> $B"&$[$+(B-!-$B$s(B (BS) -> $B"&$[(B-!-$B$s$H$&(B ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars)) (require 'skk-comp) (eval-when-compile (require 'cl)) ;;; functions. ;; (defsubst skk-extentp (object) ;; (static-cond ;; ((featurep 'xemacs) (extentp object)) ;; (t (overlayp object)))) (defsubst skk-dcomp-face-on (start end) (skk-face-on skk-dcomp-extent start end skk-dcomp-face skk-dcomp-face-priority)) (defsubst skk-dcomp-face-off () (skk-detach-extent skk-dcomp-extent)) (defsubst skk-dcomp-delete-completion () (ignore-errors (delete-region skk-dcomp-start-point skk-dcomp-end-point))) ;;;###autoload (defun skk-dcomp-marked-p () (and (eq skk-henkan-mode 'on) (markerp skk-dcomp-start-point) (markerp skk-dcomp-end-point) (marker-position skk-dcomp-start-point) (marker-position skk-dcomp-end-point) (< skk-dcomp-start-point skk-dcomp-end-point))) (defun skk-dcomp-cleanup-buffer () (skk-delete-overlay skk-dcomp-multiple-overlays) (when (and (or skk-dcomp-activate skk-dcomp-multiple-activate) (skk-dcomp-marked-p)) (skk-dcomp-face-off) (delete-region skk-dcomp-end-point (point)) (skk-set-marker skk-dcomp-end-point (point)) (setq skk-dcomp-multiple-select-index -1))) (defun skk-dcomp-activate-p () (and skk-dcomp-activate (cond ((functionp skk-dcomp-activate) (save-match-data (funcall skk-dcomp-activate))) ((listp skk-dcomp-activate) (save-match-data (eval skk-dcomp-activate))) (skk-hint-inhibit-dcomp nil) (t t)))) (defun skk-dcomp-multiple-activate-p () (and skk-dcomp-multiple-activate (cond ((functionp skk-dcomp-multiple-activate) (save-match-data (funcall skk-dcomp-multiple-activate))) ((listp skk-dcomp-multiple-activate) (save-match-data (eval skk-dcomp-multiple-activate))) (skk-hint-inhibit-dcomp nil) (t t)))) (defun skk-dcomp-do-completion (pos) (when (and (eq skk-henkan-mode 'on) (not skk-okurigana)) (when (and (not (eq (marker-position skk-henkan-start-point) (point))) (skk-dcomp-activate-p)) (condition-case nil (progn (skk-comp-do 'first 'silent) (skk-set-marker skk-dcomp-start-point pos) (skk-set-marker skk-dcomp-end-point (point)) (skk-dcomp-face-on skk-dcomp-start-point skk-dcomp-end-point) (goto-char skk-dcomp-start-point)) (error (setq skk-comp-stack nil) (message nil)))) (when (and (skk-dcomp-multiple-activate-p) (skk-dcomp-multiple-available-p)) (skk-dcomp-multiple-show (skk-dcomp-multiple-get-candidates (and (string= skk-dcomp-multiple-key (buffer-substring-no-properties skk-henkan-start-point (point))) (string= skk-dcomp-multiple-prefix skk-prefix))))))) ;; $BJ#?tI=<($N$?$a$K8!:w$7$F<-=q%P%C%U%!$N(B point $B$rF0$+$9$H!"(Bskk-comp $B$N(B ;; $BJd408uJd$,68$C$F$7$^$&$N$G0lC6J]B8$7$F$*$-:G8e$K85$KLa$9(B (defmacro skk-dcomp-save-point-in-jisyo-buffer (form) `(let (alist) (dolist (buf skk-dcomp-multiple-keep-point-buffer-list) (when (get-buffer buf) (with-current-buffer buf (setq alist (cons (cons buf (point)) alist))))) ,form (dolist (pair alist) (with-current-buffer (car pair) (goto-char (cdr pair)))))) (defun skk-dcomp-multiple-available-p () (cond ((eval-when-compile (featurep 'xemacs)) nil) (t (< (1+ skk-dcomp-multiple-rows) (skk-window-body-height))))) (defun skk-dcomp-multiple-increase-index (index &optional ignore-search-done) (cond ((and skk-comp-circulate (or ignore-search-done skk-dcomp-multiple-search-done skk-comp-search-done) (<= (1- (length skk-dcomp-multiple-candidates)) index)) -1) ((and skk-dcomp-multiple-search-done (<= (1- (length skk-dcomp-multiple-candidates)) index)) index) (t (1+ index)))) (defun skk-dcomp-multiple-extract-candidates (candidates index) (let ((i 0) head extract) (setq head (cond ((< index skk-dcomp-multiple-rows) candidates) (t (nthcdr (* (/ index skk-dcomp-multiple-rows) skk-dcomp-multiple-rows) candidates)))) (while (and (< i skk-dcomp-multiple-rows) head) (push (pop head) extract) (incf i)) (nreverse extract))) (declare-function skk-comp-get-candidate "skk-comp") (defun skk-dcomp-multiple-get-candidates (&optional same-key) (let (candidates) (cond ;; (1) $B?75,8!:w(B ((not same-key) (setq skk-dcomp-multiple-select-index ;; skk-comp $B$N(B C-u TAB $B$r9MN8$9$k(B (if (and current-prefix-arg (listp current-prefix-arg)) 0 -1)) (setq skk-dcomp-multiple-key ;; skk-comp $B$N(B C-u TAB $B$r9MN8$9$k(B (if (and current-prefix-arg (listp current-prefix-arg)) skk-comp-key (let ((key (buffer-substring-no-properties skk-henkan-start-point (point)))) (if skk-katakana (skk-katakana-to-hiragana key) key)))) (setq skk-dcomp-multiple-prefix skk-prefix) (setq skk-dcomp-multiple-search-done nil) (let ( ;; `skk-comp-get-candidate' $B$KI,MW$J%G!<%?$rB+G{(B (skk-comp-key skk-dcomp-multiple-key) (skk-comp-prefix skk-dcomp-multiple-prefix) ;; `skk-comp-get-candidate' $B$GCM$,JQ$o$C$F$7$^$&$?$aB+G{(B (skk-current-completion-prog-list skk-current-completion-prog-list) (skk-server-completion-words skk-server-completion-words) (skk-look-completion-words skk-look-completion-words) (i 0) cand) (when (or skk-comp-use-prefix ;; skk-comp-use-prefix $B$,(B nil $B$N>l9g!""&(Bn $B$J$I$O(B ;; $BJd408uJd$r8!:w$7$J$$(B (not (skk-get-kana skk-current-rule-tree))) (skk-dcomp-save-point-in-jisyo-buffer (while (and (< i skk-dcomp-multiple-rows) (setq cand (skk-comp-get-candidate (zerop i)))) (unless (member cand candidates) (push cand candidates) (incf i))))) (setq candidates (nreverse candidates)) (when (< i skk-dcomp-multiple-rows) (setq skk-dcomp-multiple-search-done t)) (setq skk-dcomp-multiple-candidates candidates))) ;; (2) $BA4$F8!:w:Q(B (skk-dcomp-multiple-search-done (setq candidates (skk-dcomp-multiple-extract-candidates skk-dcomp-multiple-candidates skk-dcomp-multiple-select-index))) ;; (3) $BA48!:w$9$k(B (TAB $BO"BG$G7+$j1[$7$?$H$-(B) ((and same-key (< (1- (length skk-dcomp-multiple-candidates)) skk-dcomp-multiple-select-index)) (skk-dcomp-save-point-in-jisyo-buffer (let ( ;; `skk-comp-get-all-candidates' $B$G6u$K$J$C$F$7$^$&$?$aB+G{(B (skk-comp-kakutei-midasi-list skk-comp-kakutei-midasi-list) (skk-server-completion-words skk-server-completion-words) (skk-look-completion-words skk-look-completion-words)) (setq skk-dcomp-multiple-candidates (skk-comp-get-all-candidates skk-dcomp-multiple-key skk-dcomp-multiple-prefix skk-completion-prog-list)))) (setq skk-dcomp-multiple-search-done t) (setq skk-dcomp-multiple-select-index (min skk-dcomp-multiple-select-index (1- (length skk-dcomp-multiple-candidates)))) (setq candidates (skk-dcomp-multiple-extract-candidates skk-dcomp-multiple-candidates skk-dcomp-multiple-select-index))) ;; (4) $BC1$J$k(B TAB $BBG80(B (t (setq candidates skk-dcomp-multiple-candidates))) (when candidates (append candidates (list (format " [ %s / %s ]" (if (< skk-dcomp-multiple-select-index 0) "-" (1+ skk-dcomp-multiple-select-index)) (if skk-dcomp-multiple-search-done (length skk-dcomp-multiple-candidates) "??"))))))) (defun skk-dcomp-multiple-show (candidates) (skk-delete-overlay skk-dcomp-multiple-overlays) (unless (skk-in-minibuffer-p) (let* ((margin 1) (beg-col (save-excursion (goto-char skk-henkan-start-point) (max 0 (- (skk-screen-column) margin)))) (i 0) max-width bottom col ol invisible) (when candidates (when (zerop beg-col) (setq margin 0)) (setq max-width (skk-max-string-width candidates)) (dolist (str candidates) (setq str (concat (make-string margin ? ) str (make-string (+ (- max-width (string-width str)) margin) ? ))) (cond ((and (< -1 skk-dcomp-multiple-select-index) (= i (mod skk-dcomp-multiple-select-index skk-dcomp-multiple-rows))) (setq str (propertize str 'face 'skk-dcomp-multiple-selected-face))) (t (setq str (propertize str 'face 'skk-dcomp-multiple-face)) (unless (string= "" skk-dcomp-multiple-key) (let ((beg (string-match skk-dcomp-multiple-key str)) (end (progn (string-match "[^ ]+" str) (match-end 0)))) (when beg (put-text-property (+ beg (length skk-dcomp-multiple-key)) end 'face 'skk-dcomp-multiple-trailing-face str)))))) (save-excursion (scroll-left (max 0 (- (+ beg-col margin max-width margin 1) (window-width) (window-hscroll)))) (unless (zerop (window-hscroll)) (setq beg-col (save-excursion (goto-char skk-henkan-start-point) (- (current-column) margin)))) (setq bottom (> (1+ i) (vertical-motion (1+ i)))) (cond (bottom ;; $B%P%C%U%!:G=*9T$G$OIaDL$K(B overlay $B$rDI2C$7$F$$$/J}(B ;; $BK!$@$H(B overlay $B$NI=<($5$l$k=gHV$,68$&$3$H$,$"$C$F(B ;; $B$&$^$/$J$$!#$7$?$,$C$FA02s$N(B overlay $B$N(B ;; after-string $B$KDI2C$9$k!#$?$@$7!"(BEOB $B$N>l9g$O(B ;; prefix $B$N(B overlay $B$H>WFM$9$k$?$a(B ;; `skk-prefix-overlay' $B$KDI2C$9$k(B (setq ol (if (zerop i) (cond ((or (not skk-echo) (string= "" skk-prefix) (< (overlay-end skk-prefix-overlay) (point))) (make-overlay (point) (point))) (t skk-prefix-overlay)) (pop skk-dcomp-multiple-overlays))) (setq str (concat (overlay-get ol 'after-string) "\n" (make-string beg-col ? ) str))) (t (setq col (skk-move-to-screen-column beg-col)) (cond ((> beg-col col) ;; $B7e9g$o$;$N6uGr$rDI2C(B (setq str (concat (make-string (- beg-col col) ? ) str))) ;; overlay $B$N:8C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B ((< beg-col col) (backward-char) (setq col (skk-screen-column)) (setq str (concat (make-string (- beg-col col) ? ) str)))))) ;; $B$3$N;~E@$G(B overlay $B$N3+;O0LCV$K(B point $B$,$"$k(B (unless bottom (let ((ol-beg (point)) (ol-end-col (+ col (string-width str))) base-ol) (setq col (skk-move-to-screen-column ol-end-col)) ;; overlay $B$N1&C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B (when (< ol-end-col col) (setq str (concat str (make-string (- col ol-end-col) ? )))) (setq ol (make-overlay ol-beg (point))) ;; $B85%F%-%9%H$N(B face $B$r7Q>5$7$J$$$h$&$K(B1$B$D8e$m$K(B ;; overlay $B$r:n$C$F!"$=$N(B face $B$r(B 'default $B$K;XDj$7$F$*$/(B (setq base-ol (make-overlay (point) (1+ (point)))) (overlay-put base-ol 'face 'default) (push base-ol skk-dcomp-multiple-overlays) ;; $B8uJd$,2D;k$+$I$&$+%A%'%C%/(B (unless (pos-visible-in-window-p (point)) (setq invisible t))))) (overlay-put ol 'invisible t) (overlay-put ol 'after-string str) (push ol skk-dcomp-multiple-overlays) (incf i)) (when (or invisible (and bottom (> (+ 2 skk-dcomp-multiple-rows) (- (skk-window-body-height) (count-screen-lines (window-start) (point)))))) (recenter (- (+ 2 skk-dcomp-multiple-rows)))))))) ;;;###autoload (defun skk-dcomp-before-kakutei () (skk-delete-overlay skk-dcomp-multiple-overlays) (when (and (or skk-dcomp-activate skk-dcomp-multiple-activate) (eq skk-henkan-mode 'on) (skk-dcomp-marked-p)) (skk-dcomp-face-off) (skk-dcomp-delete-completion))) (defun skk-dcomp-after-kakutei () (when (or skk-dcomp-activate skk-dcomp-multiple-activate) (skk-set-marker skk-dcomp-start-point nil) (skk-set-marker skk-dcomp-end-point nil) (setq skk-comp-stack nil) (setq skk-dcomp-multiple-select-index -1))) ;;;###autoload (defun skk-dcomp-after-delete-backward-char () (when (and (or skk-dcomp-activate skk-dcomp-multiple-activate) skk-mode (eq skk-henkan-mode 'on) (not skk-hint-inhibit-dcomp)) (skk-delete-overlay skk-dcomp-multiple-overlays) (setq skk-dcomp-multiple-select-index -1) (when (skk-dcomp-marked-p) (skk-dcomp-face-off) (skk-dcomp-delete-completion)) (when (and skk-abbrev-mode skk-use-look) (setq skk-look-completion-words nil)) (skk-dcomp-do-completion (point))) ;; dcomp $B$H$N=gHV@)8f$N$?$a!"$3$3$G8F$V(B (skk-henkan-on-message)) ;;; advices. ;; main dynamic completion engine. (defadvice skk-kana-input (around skk-dcomp-ad activate) (cond ((or skk-hint-inhibit-dcomp (not (and (or skk-dcomp-activate skk-dcomp-multiple-activate) skk-henkan-mode))) ad-do-it) (t (cond ((or (eq skk-henkan-mode 'active) ; $B"'%b!<%I(B (skk-get-prefix skk-current-rule-tree) (not skk-comp-stack)) (skk-set-marker skk-dcomp-start-point nil) (skk-set-marker skk-dcomp-end-point nil)) ;; experimental/skk-pre-henkan.el ((and (featurep 'skk-pre-henkan) (eq last-command 'skk-comp-do)) (skk-kakutei)) ((skk-dcomp-marked-p) (skk-dcomp-face-off) (unless (member (this-command-keys) skk-dcomp-keep-completion-keys) (skk-dcomp-delete-completion)))) ad-do-it (when (and skk-j-mode (or skk-use-kana-keyboard ;; $BAw$j$"$jJQ49$,;O$^$C$?$iJd40$7$J$$(B (not (memq (skk-last-command-char) skk-set-henkan-point-key)))) (if (skk-get-prefix skk-current-rule-tree) (when (and (skk-dcomp-multiple-activate-p) (skk-dcomp-multiple-available-p)) (skk-dcomp-multiple-show (skk-dcomp-multiple-get-candidates))) (skk-dcomp-do-completion (point))))))) (defadvice skk-set-henkan-point-subr (around skk-dcomp-ad activate) (cond ((or skk-dcomp-activate skk-dcomp-multiple-activate) (let ((henkan-mode skk-henkan-mode)) ad-do-it (unless (or henkan-mode (char-after (point))) (skk-dcomp-do-completion (point))))) (t ad-do-it))) (defadvice skk-abbrev-insert (around skk-dcomp-ad activate) (cond ((or skk-dcomp-activate skk-dcomp-multiple-activate) (when (skk-dcomp-marked-p) (skk-dcomp-face-off) (skk-dcomp-delete-completion)) ad-do-it (when skk-use-look (setq skk-look-completion-words nil)) (unless (memq (skk-last-command-char) '(?*)) (skk-dcomp-do-completion (point)))) (t ad-do-it))) (defadvice skk-abbrev-comma (around skk-dcomp-ad activate) (cond ((and (or skk-dcomp-activate skk-dcomp-multiple-activate) (not (eq last-command 'skk-comp-do))) (when (skk-dcomp-marked-p) (skk-dcomp-face-off) (skk-dcomp-delete-completion)) ad-do-it (when skk-use-look (setq skk-look-completion-words nil)) (unless (memq (skk-last-command-char) '(?*)) (skk-dcomp-do-completion (point)))) (t ad-do-it))) (defadvice skk-abbrev-period (around skk-dcomp-ad activate) (cond ((and (or skk-dcomp-activate skk-dcomp-multiple-activate) (not (eq last-command 'skk-comp-do))) (when (skk-dcomp-marked-p) (skk-dcomp-face-off) (skk-dcomp-delete-completion)) ad-do-it (when skk-use-look (setq skk-look-completion-words nil)) (unless (memq (skk-last-command-char) '(?*)) (skk-dcomp-do-completion (point)))) (t ad-do-it))) (defadvice skk-comp-previous (after skk-dcomp-ad activate) (when (and (skk-dcomp-multiple-activate-p) (skk-dcomp-multiple-available-p) (or skk-comp-circulate (< 0 skk-dcomp-multiple-select-index))) (skk-kana-cleanup 'force) (setq skk-dcomp-multiple-select-index (cond ((and skk-comp-circulate (< skk-dcomp-multiple-select-index 0)) (1- (length skk-comp-stack))) (t (1- skk-dcomp-multiple-select-index)))) (skk-dcomp-multiple-show (skk-dcomp-multiple-get-candidates t)))) (defadvice skk-kakutei (around skk-dcomp-ad activate) (skk-dcomp-before-kakutei) ad-do-it (skk-dcomp-after-kakutei)) (defadvice keyboard-quit (around skk-dcomp-ad activate) (skk-dcomp-before-kakutei) ad-do-it (skk-dcomp-after-delete-backward-char)) ;;(defadvice skk-henkan (before skk-dcomp-ad activate) (defadvice skk-start-henkan (before skk-dcomp-ad activate) (skk-dcomp-cleanup-buffer)) (defadvice skk-process-prefix-or-suffix (before skk-dcomp-ad activate) (when skk-henkan-mode (skk-dcomp-cleanup-buffer))) (defadvice skk-comp (around skk-dcomp-ad activate) (cond ((and (or skk-dcomp-activate skk-dcomp-multiple-activate) (skk-dcomp-marked-p)) (cond ((integerp (ad-get-arg 0)) (skk-dcomp-cleanup-buffer) ad-do-it) (t (goto-char skk-dcomp-end-point) (setq this-command 'skk-comp-do) (skk-dcomp-face-off) (skk-set-marker skk-dcomp-start-point nil) (skk-set-marker skk-dcomp-end-point nil) (when (and (skk-dcomp-multiple-activate-p) (skk-dcomp-multiple-available-p) (or skk-comp-circulate (< skk-dcomp-multiple-select-index (1- (length skk-dcomp-multiple-candidates))))) (setq skk-dcomp-multiple-select-index (skk-dcomp-multiple-increase-index skk-dcomp-multiple-select-index t)) (skk-dcomp-multiple-show (skk-dcomp-multiple-get-candidates t)))))) (t ad-do-it (when (and (skk-dcomp-multiple-activate-p) (skk-dcomp-multiple-available-p)) (setq skk-dcomp-multiple-select-index (skk-dcomp-multiple-increase-index skk-dcomp-multiple-select-index)) (skk-dcomp-multiple-show (skk-dcomp-multiple-get-candidates ;; skk-comp $B$N(B C-u TAB $B$r9MN8$9$k(B (not (and current-prefix-arg (listp current-prefix-arg))))))))) (defadvice skk-comp-do (before skk-dcomp-ad activate) (when (and skk-comp-use-prefix (not (string= "" skk-prefix)) (eq (skk-last-command-char) skk-next-completion-char)) (ad-set-arg 0 t))) (defadvice skk-comp-do (after skk-dcomp-ad activate) (when (and (skk-dcomp-multiple-activate-p) (skk-dcomp-multiple-available-p) ;;(not (ad-get-arg 0)) (eq (skk-last-command-char) skk-next-completion-char)) (skk-kana-cleanup 'force) (setq skk-dcomp-multiple-select-index (skk-dcomp-multiple-increase-index skk-dcomp-multiple-select-index)) (skk-dcomp-multiple-show (skk-dcomp-multiple-get-candidates t)))) (defadvice skk-comp-start-henkan (around skk-dcomp-ad activate) (cond ((and (eq skk-henkan-mode 'on) (or skk-dcomp-activate skk-dcomp-multiple-activate) (skk-dcomp-marked-p)) (goto-char skk-dcomp-end-point) (setq this-command 'skk-comp-do) (skk-dcomp-face-off) (skk-set-marker skk-dcomp-start-point nil) (skk-set-marker skk-dcomp-end-point nil) (skk-start-henkan (ad-get-arg 0))) (t ad-do-it))) (defadvice skk-delete-backward-char (after skk-dcomp-ad activate) (skk-dcomp-after-delete-backward-char)) (defadvice skk-undo (after skk-dcomp-ad activate) (skk-dcomp-after-delete-backward-char)) (defadvice viper-del-backward-char-in-insert (after skk-dcomp-ad activate) (skk-dcomp-after-delete-backward-char)) (defadvice vip-del-backward-char-in-insert (after skk-dcomp-ad activate) (skk-dcomp-after-delete-backward-char)) (defadvice skk-previous-candidate (around skk-dcomp-ad activate) (let ((active (eq skk-henkan-mode 'active))) ad-do-it (when active (skk-dcomp-after-delete-backward-char)))) (provide 'skk-dcomp) ;;; skk-dcomp.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-develop.el000066400000000000000000000220621361774317600211740ustar00rootroot00000000000000;;; skk-develop.el --- support SKK developper -*- coding: iso-2022-jp -*- ;; Copyright (C) 1999, 2000 NAKAJIMA Mikio ;; Author: NAKAJIMA Mikio ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'skk-macs) (require 'tar-util) (require 'url)) (eval-and-compile (require 'skk-vars)) (eval-when-compile (defvar skk-exserv-list)) ;;;###autoload (defun skk-submit-bug-report () "SKK $B$N%P%0%l%]!<%H$r=q$/%a!<%k%P%C%U%!$rMQ0U$9$k!#(B mail-user-agent $B$r@_Dj$9$k$3$H$K$h$j9%$_$N%a!<%k%$%s%?!<%U%'%$%9$r;HMQ$9$k$3$H(B $B$,$G$-$k!#Nc$($P!"(BWanderlust $B$r;HMQ$7$?$$>l9g$O2<5-$N$h$&$K@_Dj$9$k!#(B \(setq mail-user-agent 'wl-user-agent\) " (interactive) (require 'reporter) (when (skk-y-or-n-p "SKK $B$K$D$$$F$N%P%0%l%]!<%H$r=q$-$^$9$+!)(B " "Do you really want to write a bug report on SKK? ") (reporter-submit-bug-report skk-ml-address (concat (skk-version 'with-codename) ", " (cond ((or (and (boundp 'skk-servers-list) skk-servers-list) (or (and (boundp 'skk-server-host) skk-server-host) (getenv "SKKSERVER")) ;; refer to DEFAULT_JISYO when skk-server-jisyo is nil. ;;(or (and (boundp 'skk-server-jisyo) skk-server-jisyo) ;; (getenv "SKK_JISYO")))) ) (require 'skk-server) (concat "skkserv; " (skk-server-version) (when (getenv "SKKSERVER") (concat ",\nSKKSERVER; " (getenv "SKKSERVER"))) (when (getenv "SKKSERV") (concat ", SKKSERV; " (getenv "SKKSERV"))))) ((and (boundp 'skk-exserv-list) skk-exserv-list) (require 'skk-exserv) (skk-server-version)))) (let ((base (list 'window-system 'isearch-mode-hook 'isearch-mode-end-hook 'skk-auto-okuri-process 'skk-auto-start-henkan 'skk-egg-like-newline 'skk-henkan-okuri-strictly 'skk-henkan-strict-okuri-precedence 'skk-kakutei-early 'skk-process-okuri-early 'skk-search-prog-list 'skk-share-private-jisyo 'skk-use-viper))) (when (boundp 'skk-server-host) (setq base (append base '(skk-server-host)))) (when (boundp 'skk-server-prog) (setq base (append base '(skk-server-prog)))) (when (boundp 'skk-servers-list) (setq base (append base '(skk-servers-list)))) (when (boundp 'skk-exserv-list) (setq base (append base '(skk-exserv-list)))) base))) (message "")) (defvar skk-get-files '("SKK-JISYO.JIS2.gz" "SKK-JISYO.JIS2004.gz" "SKK-JISYO.JIS3_4.gz" "SKK-JISYO.L.gz" "SKK-JISYO.assoc.gz" "SKK-JISYO.edict.tar.gz" "SKK-JISYO.fullname.gz" "SKK-JISYO.geo.gz" "SKK-JISYO.itaiji.gz" "SKK-JISYO.jinmei.gz" "SKK-JISYO.law.gz" "SKK-JISYO.lisp.gz" "SKK-JISYO.mazegaki.gz" "SKK-JISYO.okinawa.gz" "SKK-JISYO.propernoun.gz" "SKK-JISYO.pubdic+.gz" "SKK-JISYO.station.gz" "zipcode.tar.gz") "") (defun skk-get-delete-files (dir) "DIR." (let ((files (cons "edict_doc.txt" skk-get-files)) p) (dolist (filename files) (dolist (file (list filename (replace-regexp-in-string ".gz" "" filename) (replace-regexp-in-string ".tar.gz" "" filename))) (setq p (expand-file-name file dir)) (when (file-exists-p p) (cond ((null (car (file-attributes p))) (delete-file p)) (t (delete-directory p) ; GNU Emacs23.1 $B$^$G(B ;;; (delete-directory p t) ; GNU Emacs23.2 $B$+$i(B ))))))) (defun skk-get-mkdir (dir) "DIR." (if (file-exists-p dir) (skk-get-delete-files dir) (make-directory dir t))) (defun skk-get-download (dir) "DIR." (let ((url "https://skk-dev.github.io/dict/") fn) (dolist (f skk-get-files) (setq fn (expand-file-name f dir)) (unless (file-exists-p fn) (url-copy-file (format "%s%s" url f) fn))))) (defun skk-get-generate-gzip-d (dir) "$BB(@J(B gzip -d" (and (not (executable-find "gzip")) (eq system-type 'windows-nt) (not (file-exists-p (expand-file-name "gzip-d.ps1" dir))) (skk-get-generate-gzip-d-1 dir))) (defun skk-get-generate-gzip-d-1 (dir) "$BMW(B powershell" (with-temp-buffer (insert "$infile = $args[0]" 10) (insert "$outfile = ( $infile -replace '\.gz$','' )" 10) (insert "$input = New-Object System.IO.FileStream $inFile, ( [IO.FileMode]::Open ), ( [IO.FileAccess]::Read ), ( [IO.FileShare]::Read )" 10) (insert "$gzipStream = New-Object System.IO.Compression.GzipStream $input, ( [IO.Compression.CompressionMode]::Decompress )" 10) (insert "$output = New-Object System.IO.FileStream $outFile, ( [IO.FileMode]::Create ), ( [IO.FileAccess]::Write ), ( [IO.FileShare]::None )" 10) (insert "$buffer = New-Object byte[](1024)" 10) (insert "while( $true ) {" 10) (insert " $read = $gzipstream.Read( $buffer, 0, 1024 )" 10) (insert " if ( $read -le 0 ) {break}" 10) (insert " $output.Write( $buffer, 0, $read )" 10) (insert "}" 10) (insert "$input.Close()" 10) (insert "$gzipStream.Close()" 10) (insert "$output.Close()" 10) (write-region (point-min) (point-max) (expand-file-name "gzip-d.ps1" dir)))) (defun skk-get-expand-gzip (dir) "DIR." (let* ((ps (convert-standard-filename (expand-file-name "gzip-d.ps1" dir))) (cmd (cond ((executable-find "gzip") "gzip -d") ((file-exists-p ps) (message "skk-get: Use powershell version of the simple gzip.") (format "powershell -executionpolicy remotesigned %s" ps)) (t (error "skk-get: gzip command could not be found. Aborts."))))) (dolist (f (directory-files dir t ".gz")) (let ((fn (convert-standard-filename f))) (message "skk-get: expand %s..." fn) (shell-command (format "%s %s" cmd fn)) (when (file-exists-p fn) (delete-file fn)))))) (defun skk-get-expand-tar (dir) "DIR." ;; (let (fn) ;; (dolist (f (directory-files dir t "tar")) ;; (setq fn (convert-standard-filename f)) ;; (shell-command (format "tar -xf %s -C %s && rm %s" ;; fn dir fn)))) (let ((list '(("SKK-JISYO.edict.tar" . "SKK-JISYO.edict") ("zipcode.tar" . "SKK-JISYO.zipcode") ("zipcode.tar" . "SKK-JISYO.office.zipcode")))) (dolist (c list) (tar-salvage-file (expand-file-name (car c) dir) (cdr c) (expand-file-name (cdr c) dir))))) ;;;###autoload (defun skk-get (dir) "DIR." (interactive (list (read-directory-name "skk-get directory: " (expand-file-name skk-get-jisyo-directory)))) (let ((jisyo-dir (expand-file-name dir))) (skk-get-mkdir jisyo-dir) (skk-get-download jisyo-dir) (skk-get-generate-gzip-d jisyo-dir) (skk-get-expand-gzip jisyo-dir) (when (fboundp 'tar--extract) ; GNU Emacs 24.4 $B$+$i(B (skk-get-expand-tar jisyo-dir))) (message "skk-get...done") nil) ;;;###autoload (add-hook 'before-init-hook (lambda () (eval-after-load "font-lock" ;; `lisp-font-lock-keywords-2' is an alias for `lisp-el-font-lock-keywords-2'. ;; `lisp-font-lock-keywords-2' is obsolete since 24.4; ;; use `lisp-el-font-lock-keywords-2' instead. '(set (if (boundp 'lisp-el-font-lock-keywords-2) 'lisp-el-font-lock-keywords-2 'lisp-font-lock-keywords-2) (nconc (list (list (concat "(\\(\\(skk-\\)?def\\(" ;; Function type declarations. "\\(un-cond\\|subst-cond\\|advice\\|" "macro-maybe\\|alias-maybe\\|un-maybe\\)\\|" ;; Variable type declarations. "\\(var\\|localvar\\)" "\\)\\)\\>" ;; Any whitespace and defined object. "[ \t'\(]*" "\\(\\sw+\\)?") '(1 font-lock-keyword-face) '(6 (cond ((match-beginning 4) font-lock-function-name-face) ((match-beginning 5) font-lock-variable-name-face)) nil t))) (list (list (concat "(" (regexp-opt '("skk-save-point" "skk-with-point-move" "skk-loop-for-buffers") t) "\\>") '(1 font-lock-keyword-face))) (list (list "(\\(skk-error\\)\\>" '(1 font-lock-warning-face))) (symbol-value (if (boundp 'lisp-el-font-lock-keywords-2) 'lisp-el-font-lock-keywords-2 'lisp-font-lock-keywords-2)) ))) ;; (put 'skk-deflocalvar 'doc-string-elt 3) (put 'skk-defadvice 'doc-string-elt 3) )) (provide 'skk-develop) ;;; skk-develop.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-emacs.el000066400000000000000000000632301361774317600206300ustar00rootroot00000000000000;;; skk-emacs.el --- GNU Emacs support for SKK -*- coding: iso-2022-jp -*- ;; Copyright (C) 2004 Masatake YAMATO ;; Copyright (C) 2004-2010 SKK Development Team ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'cl) (require 'ja-dic-utl) (require 'tooltip) (require 'skk-vars) (require 'skk-macs) (defvar tool-bar-border)) (eval-and-compile (autoload 'mouse-avoidance-banish-destination "avoid") (autoload 'mouse-avoidance-point-position "avoid") (autoload 'mouse-avoidance-set-mouse-position "avoid") (autoload 'Info-goto-node "info") (autoload 'browse-url "browse-url")) ;; Variables. (defvar skk-emacs-modeline-menu-items (when window-system '("Daredevil SKK Menu" ["Hiragana" (skk-j-mode-on) :selected (and skk-j-mode (not skk-katakana)) :style radio :keys nil :key-sequence nil] ["Katakana" (skk-j-mode-on t) :selected (and skk-j-mode skk-katakana) :style radio :keys nil :key-sequence nil] ["Hankaku alphabet" skk-latin-mode :selected skk-latin-mode :style radio :keys nil :key-sequence nil] ["Zenkaku alphabet" skk-jisx0208-latin-mode :selected skk-jisx0208-latin-mode :style radio :keys nil :key-sequence nil] "--" ["Find kanji by radicals" skk-tankan t] ["Show list of characters" (skk-list-chars nil) t] ["Lookup word in region or at point" skk-annotation-lookup-region-or-at-point t] ["SKK Clock" (skk-clock nil t) t] "--" ["Read Manual" skk-emacs-info t] ["Start Tutorial" skk-tutorial t] ["Customize SKK" skk-customize-group-skk t] ["Customize SKK (simple)" skk-customize t] "--" ["Send a Bug Report" (let (skk-japanese-message-and-error) (skk-submit-bug-report)) t] ["About Daredevil SKK.." skk-version t] ["Visit Daredevil Web Site" skk-emacs-visit-openlab t]))) (defvar skk-emacs-menu-resource-ja '(("Daredevil SKK Menu" . "Daredevil SKK $B%a%K%e!<(B") ("Convert Region and Echo" . "$BNN0h$rJQ49$7$F%_%K%P%C%U%!$KI=<((B") ("Gyakubiki" . "$B5U0z$-(B") ("to Hiragana" . "$B$R$i$,$J$KJQ49(B") ("to Hiragana, All Candidates" . "$B$R$i$,$J$KJQ49!"A4$F$N8uJd$rI=<((B") ("to Katakana" . "$B%+%?%+%J$KJQ49(B") ("to Katakana, All Candidates" . "$B%+%?%+%J$KJQ49!"A4$F$N8uJd$rI=<((B") ("Hurigana" . "$B$U$j$,$J(B") ("Convert Region and Replace" . "$BNN0h$rJQ49$7$FCV$-49$($k(B") ("Hiragana" . "$B$R$i$,$J(B") ("Katakana" . "$B%+%?%+%J(B") ("Hiragana to Katakana" . "$B$R$i$,$J$r%+%?%+%J$KJQ49(B") ("Katakana to Hiragana" . "$B%+%?%+%J$r$R$i$,$J$KJQ49(B") ("Kana and Zenkaku to Romaji" . "$B$+$J!&%+%J!&A43Q$r%m!<%^;z$KJQ49(B") ("Ascii to Zenkaku" . "ASCII $B$rA43Q1Q?t$KJQ49(B") ("Zenkaku to Ascii" . "$BA43Q1Q?t$r(B ASCII $B$KJQ49(B") ("Count Jisyo Candidates" . "$B<-=qCf$N8uJd?t$r?t$($k(B") ("Save Jisyo" . "$B<-=q$rJ]B8$9$k(B") ("Undo Kakutei" . "$B3NDj$rC$9(B ($B%"%s%I%%(B)") ("Restart SKK" . "SKK $B$N:F5/F0(B") ("Version" . "SKK $B$N%P!<%8%g%s(B") ("Daredevil SKK Menu" . "Daredevil SKK $B%a%K%e!<(B") ("Hankaku alphabet" . "$BH>3Q1Q?t(B") ("Zenkaku alphabet" . "$BA43Q1Q?t(B") ("Read Manual" . "$B%^%K%e%"%k$rFI$`(B") ("Start Tutorial" . "$B%A%e!<%H%j%"%k(B") ("Customize SKK" . "SKK $B$r%+%9%?%^%$%:(B") ("Customize SKK (simple)" . "SKK $B$r%+%9%?%^%$%:(B ($B4J0WHG(B)") ("Find kanji by radicals" . "$B4A;z$rItJ,(B (ex.512) (frame-char-height)) ;$B$N9T?t(B(ex.16) => 32 2)) ;$B4p=`$H$9$k:GBg9b(B => 16 (max-columns (- (car (skk-tooltip-max-tooltip-size)) 2)) ;ex.78 (columns 0) current-column indent) (with-temp-buffer (set-buffer-multibyte t) (insert text) (setq indent (if (and (memq (downcase (char-after (point-min))) skk-henkan-show-candidates-keys) (eq ?: (char-after (1+ (point-min))))) " " "")) (goto-char (point-min)) (while (not (eobp)) (setq lines (1+ lines)) (cond ((= lines max-lines) ;$BD9$9$.$k(B (beginning-of-line) (insert "($BD9$9$.$k$N$G>JN,$5$l$^$7$?(B)") (delete-region (point) (point-max)) (goto-char (point-max))) ;; (t (when (> (progn (end-of-line) (current-column)) max-columns) (move-to-column max-columns) (backward-char) (if (member (char-to-string (following-char)) skk-auto-start-henkan-keyword-list) (forward-char)) (insert "\n" indent) (forward-line -1)) (end-of-line) (setq current-column (current-column)) (when (> current-column columns) (setq columns current-column)) (forward-line 1)))) (goto-char (point-min)) (while (re-search-forward "\n *\n" nil t) (replace-match "\n" nil t)) (setq text (buffer-string))) ;; (text . (x . y)) (cons text (cons columns lines)))) (defun skk-tooltip-relative-p () (and (featurep 'ns) (< emacs-major-version 24))) (defun skk-tooltip-show-at-point (text &optional situation) "TEXT $B$r(B tooltip $B$GI=<($9$k!#(B" (require 'tooltip) (let* ((P (cdr (skk-emacs-mouse-position))) (oP (cdr (mouse-position))) event parameters (avoid-destination (if (memq skk-tooltip-mouse-behavior '(avoid avoid-maybe banish)) (mouse-avoidance-banish-destination))) win tip-destination fontsize left top tooltip-info tooltip-size spacing border-width internal-border-width text-width text-height screen-width screen-height (inhibit-quit t)) ;; (when (null (car P)) (unless (memq skk-tooltip-mouse-behavior '(avoid-maybe banish nil)) (setq oP (cdr (mouse-avoidance-point-position))))) ;; (when (eq skk-tooltip-mouse-behavior 'follow) (mouse-avoidance-set-mouse-position P)) ;; (when (or (and (memq skk-tooltip-mouse-behavior '(avoid banish)) (not (equal (mouse-position) avoid-destination))) (and (eq skk-tooltip-mouse-behavior 'avoid-maybe) (cadr (mouse-position)) (not (equal (mouse-position) avoid-destination)))) (set-mouse-position (selected-frame) (car avoid-destination) ;; XXX pending ;; $B%^%&%9%]%$%s%?$O$I$3$X$$$/$Y$-$+(B ;; (cdr avoid-destination) 0)) ;; (cond ((eq skk-tooltip-mouse-behavior 'follow) (setq tooltip-info (skk-tooltip-resize-text text) text (car tooltip-info))) (t ;; $B%^%&%9%]%$%s%?$K0MB8$;$:(B tooptip $B$N0LCV$r7hDj$9$k!#(B (setq win (if skk-isearch-switch (minibuffer-window) (selected-window)) tip-destination (posn-x-y (if skk-isearch-switch (posn-at-point (with-current-buffer (window-buffer (minibuffer-window)) (point-min)) (minibuffer-window)) (posn-at-point (point)))) fontsize (frame-char-height) spacing (let ((val (or (cdr-safe (assq 'line-spacing skk-tooltip-parameters)) (cdr-safe (assq 'line-spacing tooltip-frame-parameters)) (frame-parameter (selected-frame) 'line-spacing) (default-value 'line-spacing) 0))) (if (integerp val) val (truncate (* fontsize spacing)))) border-width (or (cdr-safe (assq 'border-width skk-tooltip-parameters)) (cdr-safe (assq 'border-width tooltip-frame-parameters)) (frame-parameter (selected-frame) 'border-width) 0) internal-border-width (or (cdr-safe (assq 'internal-border-width skk-tooltip-parameters)) (cdr-safe (assq 'internal-border-width tooltip-frame-parameters)) (frame-parameter (selected-frame) 'internal-border-width) 0) ;; $B0J2<(B left $B$H(B top $B$O!"(BX Window System $B2<$G$O2hLLA4BN$NCf$G$N:BI8$r(B ;; $B;XDj$9$k!#(B Apple OS X $B$K$*$$$F$b!"(BCarbon Emacs 22.3 $B$G$OF1MM$@$,(B ;; Cocoa Emacs 23.2 $B$G$O(B Emacs $B%U%l!<%`Fb$G$N:BI8$r;XDj$9$kI,MW$,$"$k!#(B ;; x $B:BI8(B ($B:8$+$i$N(B) left (+ (car tip-destination) (nth 0 (window-inside-pixel-edges win)) (if (skk-tooltip-relative-p) 0 (eval (frame-parameter (selected-frame) 'left))) skk-tooltip-x-offset) ;; y $B:BI8(B ($B>e$+$i$N(B) top (+ (cdr tip-destination) (nth 1 (window-inside-pixel-edges win)) (if (skk-tooltip-relative-p) 0 (+ (if tool-bar-mode skk-emacs-tool-bar-height 0) (if (and menu-bar-mode (not (or (boundp 'mac-carbon-version-string) (featurep 'ns)))) skk-emacs-menu-bar-height 0) (eval (frame-parameter (selected-frame) 'top)) (+ fontsize spacing))) skk-tooltip-y-offset) tooltip-info (skk-tooltip-resize-text text) text (car tooltip-info) tooltip-size (cdr tooltip-info) text-width (+ (* (/ (1+ fontsize) 2) (car tooltip-size)) (* 2 (+ border-width internal-border-width))) text-height (+ (* (+ fontsize spacing) (cdr tooltip-size)) (* 2 (+ border-width internal-border-width))) screen-width (display-pixel-width) screen-height (display-pixel-height)) ;; (unless (skk-tooltip-relative-p) (when (> (+ left text-width) screen-width) ;; $B1&$K4s$j$9$.$F7g$1$F$7$^$o$J$$$h$&$K(B (setq left (- left (- (+ left text-width ;; $B>/$7M>7W$K:8$K4s$;$J$$$H(B avoid ;; $B$7$?%^%&%9%]%$%s%?$H43>D$9$k(B (* 2 fontsize)) screen-width)))) (when (> (+ top text-height) screen-height) ;; $B2<$K4s$j$9$.$F7g$1$F$7$^$o$J$$$h$&$K(B (setq top (- top ;; $B==J,>e$2$J$$$H%F%-%9%H$H=E$J$k$N$G!"(B ;; $B$$$C$=%F%-%9%H$N>e$K$7$F$_$k(B text-height (* 2 (+ fontsize spacing)))) ;; $B$5$i$K(B X $B:BI8$r(B... (let ((right (+ left text-width skk-tooltip-x-offset)) (mouse-x (+ (frame-parameter (selected-frame) 'left) (* (frame-pixel-width))))) (when (and (<= left mouse-x) (<= mouse-x right)) ;; $B%^%&%9%]%$%s%?$HHo$j$=$&$J$H$-(B (setq left (- left (- right mouse-x) fontsize)))))) )) ; END **$B%^%&%9%]%$%s%?$K0MB8$;$:(B tooptip $B$N0LCV$r7hDj$9$k(B** ;; (setq parameters (if (eq skk-tooltip-mouse-behavior 'follow) skk-tooltip-parameters (append skk-tooltip-parameters (list (cons 'top top) (cons 'left left))))) ;; (skk-tooltip-show-1 text parameters) ;; (when (eq situation 'annotation) (skk-annotation-message situation)) ;; (setq event (next-command-event)) (cond ((skk-key-binding-member (skk-event-key event) '(keyboard-quit skk-kanagaki-bs skk-kanagaki-esc) skk-j-mode-map) (tooltip-hide) (when (and (not (memq skk-tooltip-mouse-behavior '(banish nil))) (car oP)) (mouse-avoidance-set-mouse-position oP)) (skk-set-henkan-count 0) (cond ((eq skk-henkan-mode 'active) (skk-unread-event (character-to-event (aref (car (where-is-internal 'skk-previous-candidate skk-j-mode-map)) 0))) (when (eq situation 'listing) ;; skk-henkan $B$^$G0l5$$K(B throw $B$9$k!#(B (throw 'unread nil))) (t (skk-unread-event event)))) (t (when (and (not (memq skk-tooltip-mouse-behavior '(banish nil))) (car oP)) (mouse-avoidance-set-mouse-position oP)) (tooltip-hide) (skk-unread-event event))))) (defun skk-tooltip-show-1 (text skk-params) "TEXT $B$r(B tooltip $B$GI=<($9$k!#(B SKK-PARAMS $B$O(B `skk-tooltip-parameters' $BKt$O(B `tooltip-frame-parameters' $B$N$$$:$l$+!#(B TEXT $B$K$O(B `skk-tooltip-face' $B$,E,MQ$5$l$k!#(B" (condition-case error (let ((params (or skk-params tooltip-frame-parameters)) fg bg) (if skk-params ;; $B%f!<%6$,FH<+$K(B tooltip $BI=<(@_Dj$9$k(B (dolist (cell tooltip-frame-parameters) (unless (assq (car cell) skk-params) (setq params (cons cell params)))) ;; tooltip $B$N%G%U%)%k%H$N@_Dj$r$9$k(B (setq fg (face-attribute 'tooltip :foreground)) (setq bg (face-attribute 'tooltip :background)) (when (stringp fg) (setq params (skk-put-alist 'foreground-color fg params)) (setq params (skk-put-alist 'border-color fg params))) (when (stringp bg) (setq params (skk-put-alist 'background-color bg params)))) ;; (when (facep skk-tooltip-face) (setq text (propertize text 'face skk-tooltip-face))) ;; $B%_%K%P%C%U%!$K$$$k$H$-M>7W$J%a%C%;!<%8$r%/%j%"$9$k(B (when (or skk-isearch-switch (skk-in-minibuffer-p)) (message nil)) ;; (let ((x-gtk-use-system-tooltips nil)) ;; GTK $BIU(B Emacs $B$G!"(BGTK $B$N%D!<%k%F%#%C%W$rMxMQ$9$k$H(B ;; $B8=>u%U%'%$%9B0@-$,E,MQ$5$l$J$$$N$G!"(BEmacs $B$N%D!<%k(B ;; $B%F%#%C%W$rMQ$$$k!#(B (x-show-tip text (selected-frame) params skk-tooltip-hide-delay ;; (if (eq skk-tooltip-mouse-behavior 'follow) skk-tooltip-x-offset tooltip-x-offset) ;; (if (eq skk-tooltip-mouse-behavior 'follow) skk-tooltip-y-offset tooltip-y-offset)))) (error (message "Error while displaying tooltip: %s" error) (sit-for 1) (message "%s" text)))) (defalias 'skk-tooltip-hide 'tooltip-hide) ;;@@ Other functions. ;;;###autoload (defun skk-search-ja-dic () "GNU Emacs $B$KIUB0$9$k$+$J4A;zJQ49<-=q$rMQ$$$F8!:w$9$k!#(B $B8=:_$N(B Emacs $B$K$O(B SKK-JISYO.L $B$r4p$KJQ49$5$l$?(B ja-dic.el $B$,IUB0$7$F$$$k!#(B $B$3$N<-=q%G!<%?$rMQ$$$FAw$j$"$j!"Aw$j$J$7!"@\F,<-!"@\Hx<-$NJQ49$r9T$&!#(B $B$?$@$7!"(BSKK-JISYO.L $B$N$h$&$J1Q?tJQ49!"?tCMJQ49$J$I$O$G$-$J$$!#(B" (require 'ja-dic-utl) ;; Mostly from ja-dic-utl.el. (when (and (locate-library "ja-dic/ja-dic") (not skkdic-okuri-nasi)) (ignore-errors (load-library "ja-dic/ja-dic"))) (when skkdic-okuri-nasi (let* ((len (length skk-henkan-key)) (vec (make-vector len 0)) (i 0) entry result) ;; At first, generate vector VEC from SEQ for looking up SKK ;; alists. Nth element in VEC corresponds to Nth element in SEQ. ;; The values are decided as follows. ;; If SEQ[N] is `$B!<(B', VEC[N] is 0, ;; else if SEQ[N] is a Hiragana character, VEC[N] is: ;; ((The 2nd position code of SEQ[N]) - 32), ;; else VEC[N] is 128. (while (< i len) (let ((ch (aref skk-henkan-key i)) code) (cond ((= ch ?$B!<(B) (aset vec i 0)) ((and (eval-when-compile (>= emacs-major-version 23)) (>= ch (car skkdic-jisx0208-hiragana-block)) (<= ch (cdr skkdic-jisx0208-hiragana-block)) (setq code (encode-char ch 'japanese-jisx0208))) (aset vec i (- (logand code #xFF) 32))) (t (aset vec i 128)))) (setq i (1+ i))) (cond (skk-henkan-okurigana ; $BAw$j$"$jJQ49(B (let ((okurigana (assq (aref skk-henkan-okurigana 0) skkdic-okurigana-table)) orig-element) (when okurigana (setq orig-element (aref vec (1- len))) (aset vec (1- len) (- (cdr okurigana))) (when (and (setq entry (lookup-nested-alist vec skkdic-okuri-ari len 0 t)) (consp (car entry))) (setq entry (nreverse (copy-sequence (car entry)))))))) ((string-match ">$" skk-henkan-key) ; $B@\F,<-(B (setq entry (lookup-nested-alist vec skkdic-prefix (1- len) 0 t))) ((string-match "^>" skk-henkan-key) ; $B@\Hx<-(B (setq entry (lookup-nested-alist vec skkdic-postfix len 1 t))) (t ; $BDL>o$NAw$j$J$7JQ49(B (setq entry (lookup-nested-alist vec skkdic-okuri-nasi len 0 t)))) ;; (when (consp (car entry)) (setq entry (car entry))) (while entry (when (stringp (car entry)) (setq result (nconc result (list (car entry))))) (setq entry (cdr entry))) result))) ;; skk-kcode.el $B$h$j!#(B ;; XEmacs $B$G$N%(%i!<2sHr$N$?$a$K$3$N4X?t$r0l;~B`Hr$7$F$$$k!#(B ;; 2$BLL(B ;;;###autoload (defun skk-jis2sjis2 (char1 char2) (let* ((ch2 (if (eq (* (/ char1 2) 2) char1) (+ char2 125) (+ char2 31))) (c2 (if (>= ch2 127) (+ ch2 1) ch2)) (ku (- char1 32)) (c1 (if (<= ku 15) (- (/ (+ ku ?\x1df) 2) (* (/ ku 8) 3)) (/ (+ ku ?\x19b) 2)))) (list c1 c2))) ;; advices. (defadvice tooltip-hide (after ccc-ad activate) (ccc-update-buffer-local-frame-params)) (provide 'skk-emacs) ;;; skk-emacs.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-gadget.el000066400000000000000000000476571361774317600210120ustar00rootroot00000000000000;;; skk-gadget.el --- $B ;; Author: Masahiko Sato ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; 2014.12.30 SKK-JISYO.lisp ;; SKK-JISYO.L $B$+$i%W%m%0%i%`L>$N$J$$<-=q$NJQ49$N8uJd$K(B Emacs Lisp $B$N%3!<%I$,=q$$$F$"$l$P!"(BSKK ;; $B$O$=$N%3!<%I$r(B Lisp $B$N%W%m%0%i%`$H$7$FeIU$1$i$l$?!#(B ;; $BM>CL$@$,!"(BX Window $B$G;HMQ$5$l$k(B `Widget' $B$H$$$&8@MU$O!"(B`window'+`gadget' ;; $B$+$i:n$i$l$?B$8l$i$7$$!#(B ;; $B<-=q%(%s%H%j(B today $B$N2r@b(B ;; ====================== ;; today /(skk-current-date (lambda (date-information format gengo and-time) (skk-default-current-date date-information nil 0 'gengo 0 0 0)) )/ ;; 1. lambda() $BA4BN$r0z?t$H$7$F(B skk-current-date() $B$r ("2013" "Jan" "29" "Tue" "22" "59" "50") ;; b. format => nil ;; c. (not skk-date-ad) => t=$B@>Nq(B, nil=$B859f(B ;; d. and-time => nil ;; $B$r0z?t$H$7$F(B lambda() $B$r(B funcall $B$9$k(B ;; 3. $B$9$J$o$A!"(Blambda() $B<+?H$N0z?t(B `date-information' `format' `gengo' `and-time' $B$O!"(B ;; $B>e5-$N(B a $B!A(B d $B$G$"$k(B ;; 4. $B:G=*E*$K(B skk-default-current-date() $B$, $B4A?t;z(B ;; h. 'gengo [gengo] ... non-nil => $BJ?@.Fs==8^G/(B ;; nil => $BFs@i==;0G/(B ;; i. 0 [gengo-index] ... ;; j. 0 [month-alist-index] ... ;; k. 0 [dayofweek-alist-index] ... ;; opt. and-time ;; 5. *scratch* $B$GI>2A$7$F$_$k(B ;; (skk-default-current-date ;; '("2013" "Jan" "29" "Tue" "22" "59" "50") nil 3 t 0 0 0) [C-j] ;; => "$BJ?@.Fs==8^G/0l7nFs==6eF|(B($B2P(B)" ;; $B$3$l",$,!"H/C<$G$"$k(B skk-current-date() $B$NLa$jCM$G$"$k(B ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars) (require 'cl)) ;; -- programs ;;;###autoload (defun skk-current-date (&optional pp-function format and-time) "`current-time-string' $B$N=PNO$r2C9)$7!"8=:_$NF|;~(B \(string\) $B$rJV$9!#(B $B%*%W%7%g%J%k0z?t$N(B PP-FUNCTION $B$r;XDj$9$k$H!"(B `skk-current-date-1' $B$NJV$jCM!"(B FORMAT $B!"(B AND-TIME $B$r0z?t$K$7$F(B PP-FUNCTION $B$r(B `funcall' $B$9$k!#(B PP-FUNCTION $B$,(B nil $B$N>l9g$O(B `skk-default-current-date-function' $B$r(B `funcall' $B$9$k!#(B FORMAT $B$O(B `format' $B$NBh#10z?t$NMM<0(B \(string\) $B$K$h$k=PNO;XDj%F%s%W%l!<%H!#(B AND-TIME \(boolean\) $B$r;XDj$9$k$H;~9o$bJV$9!#(B `skk-today' $B$H(B `skk-clock' $B$N%5%V%k!<%A%s$G$"$k!#(B" (funcall (if pp-function pp-function skk-default-current-date-function) (skk-current-date-1) format (not skk-date-ad) and-time)) (defun skk-current-date-1 (&optional specified-time) "`current-time-string' $B$N=PNO$r2C9)$7!"F|IU!&;~9o>pJs$r%j%9%H$K$7$FJV$9!#(B \(year month day day-of-week hour minute second\) \(\"2013\" \"Jan\" \"29\" \"Tue\" \"22\" \"41\" \"11\"\) $B%*%W%7%g%J%k0z?t$N(B SPECIFIED-TIME $B$O(B `current-time-string' $B$N(B docstring $B$r;2>H$N$3$H!#(B" (multiple-value-bind (dow month day time year) (split-string (current-time-string specified-time)) (append (list year month day dow) (split-string time ":")))) ;;;###autoload (defun skk-default-current-date (date-information format num-type gengo gengo-index month-alist-index dayofweek-alist-index &optional and-time) "\ $BF|IU>pJs$NI8=`E*$J=PNO$r$9$kB>!"%f!<%6$K$"$kDxEY$N%+%9%?%^%$%:5!G=$rDs6!$9$k!#(B $B$3$N4X?t$N0z?t$G%+%9%?%^%$%:$G$-$J$$=PNO$r4uK>$9$k>l9g$O!"(B `skk-default-current-date-function' $B$K<+A0$N4X?t$r;XDj$9$k!#(B DATE-INFORMATION $B$O(B \(year month day day-of-week hour minute second\) $B$N7A<0$N%j%9%H!#3FMWAG$OJ8;zNs!#(B`skk-current-date-1' $B$N=PNO$r;HMQ!#(B FORMAT $B$O(B `format' $B$NBh#10z?t$NMM<0$K$h$k=PNO7ABV$r;XDj$9$kJ8;zNs!#(B nil $B$G$"$l$P(B \"%s$BG/(B%s$B7n(B%s$BF|(B\(%s\)%s$B;~(B%s$BJ,(B%s$BIC(B\" \($B$b$7$/$O(B \"%s$BG/(B%s$B7n(B%s$BF|(B\(%s\)\" $B$,;H$o$l$k!#(B NUM-TYPE \(number\) $B$O(B 0 -> $BL5JQ49(B 1 -> $BA43Q?t;z$XJQ49(B 2 -> $B4A?t;z$XJQ49(B \($B0L $B4A?t;z$XJQ49(B \($B0L $B$=$N?t;z$=$N$b$N$r%-!<$K$7$F<-=q$r:F8!:w(B 5 -> $B4A?t;z(B \($B $B>-4}$G;HMQ$9$k?t;z(B \(\"$B#3;M(B\" $B$J$I(B\) $B$KJQ49(B GENGO $B$O859fI=<($9$k$+$I$&$+(B \(boolean\)$B!#(B GENGO-INDEX $B$O(B `skk-gengo-alist' $B$N3FMWAG$N(B cadr $B$r(B 0 $B$H$9$k(B index \(number\)$B!#(Bnil $B$G$"$l$P(B `current-time-string' $B$N=PNO$N$^$^L5JQ49!#(B MONTH-ALIST-INDEX $B$O(B `skk-month-alist' $B$N3FMWAG$N(B cadr $B$r(B 0 $B$H$9$k(B index \(number\)$B!#(Bnil $B$G$"$l$P(B `current-time-string' $B$N=PNO$N$^$^L5JQ49!#(B DAYOFWEEK-ALIST-INDEX $B$O(B `skk-day-of-week-alist' $B$N3FMWAG$N(B cadr $B$r(B 0 $B$H$9$k(B index \(number\)$B!#(Bnil $B$G$"$l$P(B `current-time-string' $B$N=PNO$N$^(B $B$^L5JQ49!#(B AND-TIME $B$O;~9o$bI=<($9$k$+$I$&$+(B \(boolean\)$B!#(B" (multiple-value-bind (year month day day-of-week hour minute second v) date-information (when gengo (setq v (skk-ad-to-gengo-1 (string-to-number year) nil (string-to-number (nth 0 (cdr (assoc month skk-month-alist)))) (string-to-number day)))) (setq year (if gengo (concat (if gengo-index (nth gengo-index (car v)) (caar v)) (if (numberp (cdr v)) (skk-num-exp (number-to-string (cdr v)) num-type) (cdr v))) (skk-num-exp year num-type))) (when month-alist-index (setq month (skk-num-exp (nth month-alist-index (cdr (assoc month skk-month-alist))) num-type))) (setq day (skk-num-exp day num-type)) (when dayofweek-alist-index (setq day-of-week (nth dayofweek-alist-index (cdr (assoc day-of-week skk-day-of-week-alist))))) (when and-time (setq hour (skk-num-exp hour num-type)) (setq minute (skk-num-exp minute num-type)) (setq second (skk-num-exp second num-type))) (if and-time (format (or format "%s$BG/(B%s$B7n(B%s$BF|(B(%s)%s$B;~(B%s$BJ,(B%s$BIC(B") year month day day-of-week hour minute second) (format (or format "%s$BG/(B%s$B7n(B%s$BF|(B(%s)") year month day day-of-week)))) ;;;###autoload (defun* skk-relative-date (pp-function format and-time &key (yy 0) (mm 0) (dd 0)) "`skk-current-date' $B$N3HD%HG!#(BPP-FUNCTION, FORMAT, AND-TIME $B$O(B `skk-current-date' $B$r;2>H$N$3$H!#(B $B \"$BJ?@.(B25$BG/(B2$B7n(B03$BF|(B($BF|(B)\" (skk-relative-date (lambda (arg) body) nil nil :dd -1) => \"$BJ?@.(B25$BG/(B2$B7n(B02$BF|(B($BEZ(B)\" (skk-relative-date (lambda (arg) body) nil nil :mm -1) => \"$BJ?@.(B25$BG/(B1$B7n(B03$BF|(B($BLZ(B)\" (skk-relative-date (lambda (arg) body) nil nil :yy 2) => \"$BJ?@.(B27$BG/(B2$B7n(B03$BF|(B($B2P(B)\" " (let ((specified-time (multiple-value-bind (sec min hour day month year dow dst zone) (decode-time) (encode-time sec min hour (+ day dd) (+ month mm) (+ year yy))))) (funcall (if pp-function pp-function skk-default-current-date-function) (skk-current-date-1 specified-time) format (not skk-date-ad) and-time))) (defun skk-today-execute-char () (let (char) (dolist (list (nth 4 skk-rule-tree)) (when (memq 'skk-today list) (setq char (char-to-string (car list))))) char)) ;;;###autoload (defun skk-today (arg) "\ `current-time-string' $B$N=PNO$r2C9)$7!"8=:_$NF|;~$rI=$9J8;zNs$r:n$j!"A^F~(B $B$9$k!#!"(B\"clock /(skk-clock)/\" $B$J$I$N%(%s%H%j$r(B SKK $B$N<-=q(B $B$K2C$(!"(B\"/clock\"+ SPC $B$GJQ49$9$k$3$H$K$h$C$F$b5/F02D!#(B\\[keyboard-quit] $B$G;_$^$k!#(B $Bl9g$O!"(B\\[keyboard-quit] $B$7$?;~E@$N;~E@$NF|;~$rA^F~$9$k!#(B $B%*%W%7%g%J%k0z?t$N(B KAKUTEI-WHEN-QUIT $B$,(B non-nil $B$G$"$l$P(B \\[keyboard-quit] $B$7$?$H$-$K3NDj$9$k!#(B $B%*%W%7%g%J%k0z?t$N(B TIME-SIGNAL $B$,(B non-nil $B$G$"$l$P!"(BNTT $B$N;~JsIw$K(B ding $B$9$k!#(B $B$=$l$>$l(B \"clock /(skk-clock nil t)/\" $B$N$h$&$J%(%s%H%j$r<-=q$KA^F~$9$l$PNI$$!#(B `skk-date-ad' $B$H(B `skk-number-style' $B$K$h$C$FI=<(J}K!$N%+%9%?%^%$%:$,2DG=!#(B" (interactive "*") (let ((start (current-time)) end mes expr1 expr2 sec snd) (cond ((or (not skk-number-style) (eq skk-number-style 0)) (setq expr1 "[789]$BIC(B" expr2 "0$BIC(B")) ((or (eq skk-number-style t) ;; skk-number-style $B$K(B $B?t;z$H(B t $B0J30$N(B non-nil $BCM$rF~$l$F$$$k>l(B ;; $B9g!"(B= $B$r;H$&$H(B Wrong type argument: number-or-marker-p, xxxx ;; $B$K$J$C$F$7$^$&!#(B (eq skk-number-style 1)) (setq expr1 "[$B#7#8#9(B]$BIC(B" expr2 "$B#0IC(B")) (t (setq expr1 "[$B<7H,6e(B]$BIC(B" expr2 "$B!;IC(B"))) ;; (when (eval-when-compile (featurep 'xemacs)) ;; XEmacs $B$G(B sound $B$,%m!<%I$5$l$F$$$k$+$I$&$+!#(B (when (setq snd (and (boundp 'sound-alist) (eq t (catch 'tag (mapc (lambda (list) (when (eq 'drum (cadr (memq :sound list))) (throw 'tag t))) sound-alist))))) (unless (assq 'clink sound-alist) (load-sound-file "clink" 'clink)))) ;; (save-match-data (condition-case nil (let (case-fold-search inhibit-quit visible-bell) (while (not quit-flag) (setq mes (skk-current-date nil nil t) sec 0) (message "%s Hit any key to quit" mes) (when time-signal (cond ((string-match expr1 mes) ;; [7890] $B$N$h$&$K@55,I=8=$r;H$o$:!"(B7 $B$@$1$GA4$F$N%^%7%s$,(B ;; $BCe$$$F$f$1$PNI$$$N$@$,(B...$B!#CzEY$3$N4X?tl9g$,$"$k!#(B (skk-ding nil 'drum)) ((string-match expr2 mes) ;; 0 $B$@$1!V%]!A%s!W$H$$$-$?$$$H$3$m$G$9$,!"%^%7%s$K$h$C(B ;; $B$F:9$,$"$k!#(B ;; 386SX 25Mhz + Mule-2.x $B$@$H!V%T%C!"%T%C!W$H$$$&46$8!#(B ;; $BIU$$$F$f$/$N$,Hs>o$K?I$$!#(B68LC040 33Mhz + NEmacs $B$@$H(B ;; $B!V%T%T%C!W$H$J$j!"2;$N%?%$%_%s%0$ONI$$$N$@$,!"$H$-(B ;; $B$I$-(B 1 $BICJ,$D$$$F$$$1$J$/$J$k!#(BPentium 90Mhz + ;; Mule-2.x$B$@$H!V%T%C!W$H$$$&C12;$K$J$C$F$7$^$&(B... (;_;)$B!#(B (if snd (skk-ding nil 'clink) (ding) (unless (sit-for (setq sec (+ sec 0.16)) 'nodisplay) (next-command-event) (signal 'quit nil)) (ding))))) (unless (sit-for (- 1 sec) 'nodisplay) (next-command-event) (signal 'quit nil)))) (quit (prog2 (setq end (current-time)) (skk-current-date nil nil t) (when kakutei-when-quit (setq skk-kakutei-flag t)) (message "$B7P2a;~4V(B: %s $BIC(B" (skk-time-difference start end)))))))) ;;;###autoload (defun skk-ad-to-gengo (gengo-index &optional divider tail not-gannen) ;; $B@>Nq$r859f$KJQ49$9$k!#%*%W%7%g%J%k0z?t$N(B DIVIDER $B$,;XDj$5$l$F$$$l$P!"G/9f(B ;; $B$H?t;z$N4V$K!"(BTAIL $B$,;XDj$5$l$F$$$l$P!"?t;z$NKvHx$K!"$=$l$>$l$NJ8;zNs$rO"(B ;; $B7k$9$k!#(B ;; $B<-=q8+=P$7Nc(B; ;; $B$;$$$l$-(B#$B$M$s(B /(skk-ad-to-gengo 0 nil "$BG/(B")/(skk-ad-to-gengo 0 " " " $BG/(B")/ (let ((v (skk-ad-to-gengo-1 (string-to-number (car skk-num-list)) not-gannen))) (concat (nth gengo-index (car v)) divider (if (not (stringp (cdr v))) (number-to-string (cdr v)) (cdr v)) tail))) ;;;###autoload (defun skk-ad-to-gengo-1 (ad &optional not-gannen month day) ;; AD is a number and NOT-GANNEN is a boolean optional ;; arg. ;; return a cons cell of which car is a Gengo list ;; gotten from `skk-gengo-alist', and cdr is a number ;; of year. ;; if NOT-GANNEN is non-nil and calculated year is 1, ;; return a value of which cdr is "$B85(B" (string). (when (>= 1866 ad) (skk-error "$BJ,$j$^$;$s(B" "Unknown year")) (cons (cond ((or (< ad 1912) (and (= ad 1912) month (< month 7)) (and (= ad 1912) month (= month 7) day (< day 30))) (setq ad (- ad 1867)) (cdr (assq 'meiji skk-gengo-alist))) ((or (< ad 1926) (and (= ad 1926) month (< month 12)) (and (= ad 1926) month (= month 12) day (< day 25))) (setq ad (- ad 1911)) (cdr (assq 'taisho skk-gengo-alist))) ((or (< ad 1989) (and (= ad 1989) month (= month 1) day (< day 8))) (setq ad (- ad 1925)) (cdr (assq 'showa skk-gengo-alist))) ((or (< ad 2019) (and (= ad 2019) month (< month 5))) (setq ad (- ad 1988)) (cdr (assq 'heisei skk-gengo-alist))) (t (setq ad (- ad 2018)) (cdr (assq 'reiwa skk-gengo-alist)))) (cond (not-gannen ad) ((= ad 1) "$B85(B") (t ad)))) ;;;###autoload (defun skk-gengo-to-ad (&optional head tail) ;; $B859f$r@>Nq$KJQ49$9$k!#%*%W%7%g%J%k0z?t$N(B HEAD, TAIL $B$,;XDj$5$l$F$$(B ;; $B$l$P!"$=$NJ8;zNs$r@hF,!"KvHx$KO"7k$9$k!#(B ;; $B<-=q8+=P$7Nc(B; ;; $B$7$g$&$o(B#$B$M$s(B /(skk-gengo-to-ad "" "$BG/(B")/(skk-gengo-to-ad "" " $BG/(B")/\ ;; (skk-gengo-to-ad "$B@>Nq(B" "$BG/(B")/(skk-gengo-to-ad "$B@>Nq(B" " $BG/(B")/ (save-match-data (when (string-match (car skk-num-list) skk-henkan-key) (let ((v (skk-gengo-to-ad-1 (substring skk-henkan-key 0 (match-beginning 0)) (string-to-number (car skk-num-list))))) (when v (concat head (number-to-string v) tail)))))) ;;;###autoload (defun skk-gengo-to-ad-1 (gengo number) ;; GENGO is a string and NUMBER is a number. ;; return a year (number) equal to GENGO-NUMBER. (+ number (cond ((eq number 0) (skk-error "0 $BG/$O$"$jF@$J$$(B" "Cannot convert 0 year")) ((member gengo '("$B$l$$$o(B" "$BNaOB(B")) 2018) ((member gengo '("$B$X$$$;$$(B" "$BJ?@.(B")) 1988) ((member gengo '("$B$7$g$&$o(B" "$B>C$9!#>C$9$Y$-8uJd$O(B ;; skk-henkan-list $B$+$iD>@\Cj=P$7$F$$$k$N$G(B delete $B$G$O$J$/(B delq $B$G==J,!#(B (setq skk-henkan-list (delq (nth skk-henkan-count skk-henkan-list) skk-henkan-list)) ;; $BA48uJd$r(B skk-henkan-list $B$KF~$l$k!#(B (while skk-current-search-prog-list (setq skk-henkan-list (skk-nunion skk-henkan-list (skk-search)))) ;; $BITMW$J8uJd$rC$7$?$N$G!"(B ;; skk-henkan-count $B$OuBV$KLa$9!#(B ;; (nth -1 '(A B C)) $B$O!"(BA $B$rJV$9$N$G!"(Bn $B$,Ii$N?t$G$J$$$3$H$r%A%'%C%/(B ;; $B$7$F$*$/I,MW$,$"$k!#(B (if (> skk-henkan-count 0) (setq skk-henkan-count (- skk-henkan-count 1) new-word (nth skk-henkan-count skk-henkan-list)) ;; (1- skk-henkan-count) == -1 $B$K$J$k!#"&%b!<%I$KLa$9!#(B (throw 'next-word 'none))) ;; (throw 'next-word new-word))) ;;;###autoload (defun skk-henkan-face-off-and-remove-itself () ;; skk-insert-new-word-function $B$K%;%C%H$9$k$?$a$N4X?t!#%+%l%s%H%P%C%U%!$N(B ;; $BJQ49ItJ,$,(B Overlay $B$N(B face $BB0@-$K$h$C$FI=<($,JQ99$5$l$F$$$k$N$rLa$7!"$=$N(B ;; $B8e<+J,<+?H$r(B skk-insert-new-word-function $B$+$iH$7!"49;;$r9T$&!#(B NUMBER $B$K$D$$$F(B UNIT-FROM $B$+$i(B UNIT-TO $B$X$N49;;$r9T$&!#(B" (let ((v (assoc unit-to (cdr (assoc unit-from skk-units-alist))))) (when v (concat (number-to-string (* number (cdr v))) (car v))))) (run-hooks 'skk-gadget-load-hook) (provide 'skk-gadget) ;;; skk-gadget.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-hint.el000066400000000000000000000167171361774317600205120ustar00rootroot00000000000000;;; skk-hint.el --- SKK conversion with hints -*- coding: iso-2022-jp -*- ;; Copyright (C) 2001, 2003 Yoshiki Hayashi ;; Author: Yoshiki Hayashi ;; Keywords: japanese ;; This file is part of Daredevil SKK. ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; This program is distributed in the hope that it will be useful ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to the ;; Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, ;; MA 02110-1301, USA. ;;; Commentary ;; $B$3$l$O"&%b!<%I$H"'%b!<%I$GFI$_$N@Q=89g(B ($B$_$?$$$J$b$N(B) $B$ruBV$K$J$j$^$9!#(B ;; ;; $B87L)$K@Q=89g$ruBV$K$J$j$^$9!#(B ;; ;; $B$D$^$j!"DL>o$NJQ498uJd$N$J$+$G!"%R%s%H$H$7$FM?$($i$l$?FI$_$r4^$s$@(B ;; $B4A;z$r;}$D$b$N$K8uJd$r9J$j$^$9!#(B ;; ;; -- Tips -- ;; ;; skk-hint.el $B$OC14A;z$N8uJd$,$?$/$5$s$"$k>l9g$K!"$=$3$+$i8uJd$r9J$j(B ;; $B$3$`o$KM-8z$G$9!#Nc$($P(B ;; ;; $B"&$+(B ;; ;; $B$rJQ49$9$k$H!"2c!"2=!"2D!"2!W$K4^$^$l$k(B ;; ;; $B"'2_(B ;; ;; $B$,>e0L$K8=$l$^$9!#(B ;;;Code (eval-when-compile (require 'skk-macs)) (require 'skk-vars) ;; is this necessary? (require 'skk-comp) (defadvice skk-search (around skk-hint-ad activate) ;; skk-current-search-prog-list $B$NMWAG$K$J$C$F$$$k%W%m%0%i%`$rI>2A$7$F!"(B ;; skk-henkan-key $B$r%-!<$K$7$F8!:w$r9T$&!#(B (if (null skk-hint-henkan-hint) ad-do-it (let (l kouho hint) (while (and (null l) skk-current-search-prog-list) (setq l (eval (car skk-current-search-prog-list))) (let ((skk-henkan-key (nth 0 skk-hint-henkan-hint)) (skk-henkan-okurigana (nth 1 skk-hint-henkan-hint)) (skk-okuri-char (nth 2 skk-hint-henkan-hint))) (setq hint (skk-nunion hint (eval (car skk-current-search-prog-list))))) (setq kouho (skk-nunion kouho l)) (setq l (skk-hint-limit kouho hint)) (setq skk-current-search-prog-list (cdr skk-current-search-prog-list))) (setq ad-return-value l)))) (defun skk-hint-setup-hint () (cond ((eq skk-hint-state 'kana) (skk-kana-cleanup t) (let ((hint (buffer-substring-no-properties skk-hint-start-point (point)))) (unless (string= hint "") (setq skk-hint-henkan-hint (list (if skk-katakana (skk-katakana-to-hiragana hint) hint)))))) ((eq skk-hint-state 'okuri) (let ((henkan-key (buffer-substring-no-properties skk-hint-start-point skk-hint-end-point)) (okurigana (buffer-substring-no-properties skk-hint-end-point (point)))) (unless (or (string= henkan-key "") (string= okurigana "")) (when skk-katakana (setq henkan-key (skk-katakana-to-hiragana henkan-key) okurigana (skk-katakana-to-hiragana okurigana))) (setq skk-hint-henkan-hint (list (concat henkan-key skk-hint-okuri-char) okurigana skk-hint-okuri-char))))) (t (skk-error "$BM=4|$7$J$$>uBV$G(B %s $B$,8F$P$l$^$7$?(B" "%s is called from unexpected place" "skk-hint-setup-hint"))) (setq skk-hint-inhibit-kakutei nil)) (defadvice skk-insert (around skk-hint-ad activate) (cond ((and skk-henkan-mode (eq (skk-last-command-char) skk-hint-start-char) (not skk-hint-state)) (skk-with-point-move (when (featurep 'skk-dcomp) (skk-dcomp-before-kakutei)) (setq skk-hint-inhibit-dcomp t) (skk-set-marker skk-hint-start-point (point)) (setq skk-hint-state 'kana skk-hint-inhibit-kakutei t))) ((and (eq skk-hint-state 'kana) (eq (skk-last-command-char) skk-start-henkan-char)) (skk-with-point-move (skk-hint-setup-hint) (delete-region skk-hint-start-point (point)) (setq skk-hint-state 'henkan) (setq skk-henkan-count -1) (setq skk-henkan-list nil) (skk-start-henkan arg))) ((and (eq skk-hint-state 'kana) (memq (skk-last-command-char) skk-set-henkan-point-key)) (skk-with-point-move (setq skk-hint-end-point (point)) (setq skk-hint-state 'okuri) (skk-set-last-command-char (skk-downcase (skk-last-command-char))) (setq skk-hint-okuri-char (skk-char-to-unibyte-string (skk-last-command-char))) (skk-kana-input arg) (when (skk-jisx0208-p (char-before)) (skk-hint-setup-hint) (delete-region skk-hint-start-point (point)) (setq skk-hint-state 'henkan) (setq skk-henkan-count -1) (setq skk-henkan-list nil) (skk-start-henkan arg)))) ((eq skk-hint-state 'okuri) (skk-with-point-move (skk-kana-input arg) (skk-hint-setup-hint) (delete-region skk-hint-start-point (point)) (setq skk-hint-state 'henkan) (setq skk-henkan-count -1) (setq skk-henkan-list nil) (skk-start-henkan arg))) (t ad-do-it))) (defadvice keyboard-quit (before skk-hint-ad activate) (setq skk-hint-inhibit-kakutei nil)) (defadvice abort-recursive-edit (before skk-hint-ad activate) (setq skk-hint-inhibit-kakutei nil)) (defadvice skk-previous-candidate (before skk-hint-ad activate) (when (and (eq skk-henkan-mode 'active) (not (string= skk-henkan-key "")) (zerop skk-henkan-count)) (setq skk-hint-henkan-hint nil skk-hint-state nil)) (setq skk-hint-inhibit-kakutei nil)) (defadvice skk-kakutei (around skk-hint-ad activate) (unless skk-hint-inhibit-kakutei ad-do-it)) (defadvice skk-kakutei-initialize (after skk-hint-ad activate) (setq skk-hint-henkan-hint nil skk-hint-start-point nil skk-hint-state nil skk-hint-inhibit-dcomp nil skk-hint-inhibit-kakutei nil)) (defadvice skk-delete-backward-char (before skk-hint-ad activate) (when (and (markerp skk-hint-start-point) (or (eq (1+ skk-hint-start-point) (point)) (eq skk-hint-start-point (point)))) (setq skk-hint-state nil skk-hint-inhibit-kakutei nil))) (defun skk-hint-member (char kouho) ;; $BJ8;zNs$N%j%9%H(B KOUHO $B$NCf$KJ8;z(B CHAR $B$r4^$`$b$N$,$"$l$P!"$=$NJ8;zNs$rJV$9(B (catch 'found (dolist (word kouho) (let ((length (length word))) (dotimes (i length) (if (eq char (aref word i)) (throw 'found word))))))) (defun skk-hint-limit (kouho hint) ;; $BJQ498uJd(B KOUHO $B$r!"J8;zNs$N%j%9%H(B HINT $B$NCf$N$I$l$+$NJ8;z$,(B ;; $B4^$^$l$F$$$k$b$N$N$_$K@)8B$9$k!#(B (let ((kouho (copy-sequence kouho)) result) (dolist (string hint) (let ((length (length string))) (dotimes (i length) (let (ret) (when (setq ret (skk-hint-member (aref string i) kouho)) (unless (eq (aref string i) ?\;) (setq result (cons ret result)) (delete ret kouho))))))) (nreverse result))) (provide 'skk-hint) ;;; Local Variables: ;;; End: ;;; skk-hint.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-inline.el000066400000000000000000000154721361774317600210230ustar00rootroot00000000000000;;; skk-inline.el --- Inline candidate display support for SKK -*- coding: iso-2022-jp -*- ;; Copyright (C) 2005 Masatake YAMATO ;; Copyright (C) 2007 IRIE Tetsuya ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'cl) (require 'skk-vars) (require 'skk-macs)) ;; Functions. (defun skk-add-background-color (string color) "STRING $B$N$&$AGX7J?'$,;XDj$5$l$F$$$J$$J8;z$K8B$C$F(B COLOR $B$NGX7J?'$r(B $BE,MQ$9$k!#(B" (when (eval-when-compile (featurep 'emacs)) (when (and string color (color-defined-p color)) (let ((start 0) (end 1) (len (length string)) orig-face) (while (< start len) (setq orig-face (get-text-property start 'face string)) (while (and (< end len) (eq orig-face (get-text-property end 'face string))) (incf end)) (cond ((not orig-face) (put-text-property start end 'face `(:background ,color) string)) ;; ((and (facep orig-face) (not (face-background orig-face))) (put-text-property start end 'face `(:inherit ,orig-face :background ,color) string)) ;; ((and (listp orig-face) (not (plist-get (get-text-property start 'face string) :background)) (not (and (plist-get (get-text-property start 'face start) :inherit) (face-background (plist-get (get-text-property start 'face start) :inherit))))) (put-text-property start end 'face (cons `(:background ,color) orig-face) string))) (setq start (max (1+ start) end) end (1+ start))))) string)) ;;;###autoload (defun skk-inline-show (str face &optional vertical-str text-max-height) (skk-delete-overlay skk-inline-overlays) (if (and (eq 'vertical skk-show-inline) ;; window $B$,8uJd72$rI=<($G$-$k9b$5$,$"$k$+%A%'%C%/(B (stringp vertical-str) (integerp text-max-height) (< (1+ text-max-height) (skk-window-body-height))) (skk-inline-show-vertically vertical-str face) (skk-inline-show-horizontally str face))) (defun skk-inline-show-horizontally (string face) (unless (skk-in-minibuffer-p) (let ((ol (make-overlay (point) (point))) (base-ol (make-overlay (point) (1+ (point))))) (overlay-put base-ol 'face 'default) (push base-ol skk-inline-overlays) (push ol skk-inline-overlays) (when face (setq string (propertize string 'face face))) (when skk-inline-show-background-color (setq string (skk-add-background-color string skk-inline-show-background-color))) (overlay-put ol 'after-string string)))) (defun skk-inline-show-vertically (string face) (unless (skk-in-minibuffer-p) (let* ((margin 2) ;; XXX beg-col $B$,(B -1 $B$K$J$C$F(B `make-string' $B$G%(%i!<$K$J$k(B ;; $B>l9g$"$j(B ? (beg-col (max 0 (- (skk-screen-column) margin))) (candidates (split-string string "\n")) (max-width (skk-max-string-width candidates)) (i 0) bottom col ol invisible) (dolist (str candidates) (setq str (concat (when (/= 0 i) (make-string margin ? )) str (make-string (+ (- max-width (string-width str)) margin) ? ))) (when face (setq str (propertize str 'face face))) (when skk-inline-show-background-color (setq str (skk-add-background-color str (if (zerop (mod i 2)) skk-inline-show-background-color skk-inline-show-background-color-odd)))) (save-excursion (scroll-left (max 0 (- (+ beg-col margin max-width margin 1) (window-width) (window-hscroll)))) (unless (zerop (window-hscroll)) (setq beg-col (save-excursion (goto-char skk-henkan-start-point) (- (current-column) margin)))) (case i (0 (setq col (skk-screen-column))) (t (setq bottom (> i (vertical-motion i))) (cond (bottom ;; $B%P%C%U%!:G=*9T$G$OIaDL$K(B overlay $B$rDI2C$7$F$$$/J}K!$@(B ;; $B$H(B overlay $B$NI=<($5$l$k=gHV$,68$&$3$H$,$"$C$F$&$^$/$J(B ;; $B$$!#$7$?$,$C$FA02s$N(B overlay $B$N(B after-string $B$KDI2C$9(B ;; $B$k!#(B (setq ol (cond ((< (overlay-end (car skk-inline-overlays)) (point)) (make-overlay (point) (point))) (t (pop skk-inline-overlays)))) (setq str (concat (overlay-get ol 'after-string) "\n" (make-string beg-col ? ) str))) (t (setq col (skk-move-to-screen-column beg-col)) (cond ((> beg-col col) ;; $B7e9g$o$;$N6uGr$rDI2C(B (setq str (concat (make-string (- beg-col col) ? ) str))) ;; overlay $B$N:8C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B ((< beg-col col) (backward-char) (setq col (skk-screen-column)) (setq str (concat (make-string (- beg-col col) ? ) str)))))))) ;; $B$3$N;~E@$G(B overlay $B$N3+;O0LCV$K(B point $B$,$"$k(B (unless bottom (let ((ol-beg (point)) (ol-end-col (+ col (string-width str))) base-ol) (setq col (skk-move-to-screen-column ol-end-col)) ;; overlay $B$N1&C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B (when (< ol-end-col col) (setq str (concat str (make-string (- col ol-end-col) ? )))) (setq ol (make-overlay ol-beg (point))) ;; $B85%F%-%9%H$N(B face $B$r7Q>5$7$J$$$h$&$K(B1$B$D8e$m$K(B overlay ;; $B$r:n$C$F!"$=$N(B face $B$r(B 'default $B$K;XDj$7$F$*$/(B (setq base-ol (make-overlay (point) (1+ (point)))) (overlay-put base-ol 'face 'default) (push base-ol skk-inline-overlays) ;; $B8uJd$,2D;k$+$I$&$+%A%'%C%/(B (unless (pos-visible-in-window-p (point)) (setq invisible t))))) (overlay-put ol 'invisible t) (overlay-put ol 'after-string str) (push ol skk-inline-overlays) (incf i)) (when (or invisible (and bottom (> (1+ skk-henkan-number-to-display-candidates) (- (skk-window-body-height) (count-screen-lines (window-start) (point)))))) (recenter (- (1+ skk-henkan-number-to-display-candidates))))))) (provide 'skk-inline) ;;; skk-inline.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-isearch.el000066400000000000000000000732031361774317600211570ustar00rootroot00000000000000;;; skk-isearch.el --- isearch mode for SKK -*- coding: iso-2022-jp -*- ;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999 ;; Enami Tsugutomo ;; Author: Enami Tsugutomo ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; Hook functions are defined in skk-setup.el. ;; ;; 1. always invoke skk isearch. ;; ;; (setq skk-isearch-mode-enable 'always) ;; ;; 2. invoke only if skk-mode is on. ;; ;; (setq skk-isearch-mode-enable t) ;; ;; 3. invoke if current buffer has japanese characters. ;; ... ;; ;; skk-isearch-initial-mode examine the variable of skk before calling ;; skk-mode. ;;; Code: (eval-when-compile (require 'cl) (require 'skk-macs)) (require 'skk) (require 'skk-vars) ;; interface to skk.el ;; (defsubst skk-isearch-turn-off-skk-mode () "Turn off skk mode." (let ((skk-use-color-cursor nil)) (skk-mode 0))) (defsubst skk-isearch-turn-on-skk-mode () "Turn on skk mode." (let ((skk-use-color-cursor nil)) (skk-mode 1))) (defsubst skk-isearch-conversion-active-p () "Non-nil if skk conversion is active." skk-henkan-mode) (defsubst skk-isearch-conversion-start () "Point where conversion is start. Includes skk marker." (1- skk-henkan-start-point)) (defsubst skk-isearch-skk-kakutei () "Perform kakutei." (let ((skk-use-color-cursor nil)) (skk-kakutei))) (defsubst skk-isearch-skk-hiragana-mode-p () "Non-nil if skk is hiragana input mode." (and (not skk-katakana) skk-j-mode)) (defsubst skk-isearch-skk-turn-on-hiragana-mode () "Set current skk mode to hiragana input mode." (let ((skk-use-color-cursor nil)) (skk-j-mode-on))) (defsubst skk-isearch-skk-katakana-mode-p () "Non-nil if skk is katakana input mode." (and skk-j-mode skk-katakana)) (defsubst skk-isearch-skk-turn-on-katakana-mode () "Set current skk mode to katakana input mode." (let ((skk-use-color-cursor nil)) (skk-j-mode-on 'katakana))) (defsubst skk-isearch-skk-jisx0208-latin-mode-p () "Non-nil if skk is jisx0208 latin (zenkaku) input mode." skk-jisx0208-latin-mode) (defsubst skk-isearch-skk-abbrev-mode-p () "Non-nil if skk is Abbrev mode." skk-abbrev-mode) (defsubst skk-isearch-skk-turn-on-jix0208-latin-mode () "Set current skk mode to jisx0208 latin (zenkaku) input mode." (let ((skk-use-color-cursor nil)) (skk-jisx0208-latin-mode-on))) (defsubst skk-isearch-skk-turn-on-latin-mode () "Set current skk mode to normal latin input mode." (let ((skk-use-color-cursor nil)) (skk-latin-mode-on))) (defun skk-isearch-buffer-string () (if (and skk-echo skk-prefix) (concat (buffer-string) skk-prefix) (buffer-string))) ;;;###autoload (defun skk-isearch-message () "Show isearch message." (skk-isearch-incomplete-message (if (string= skk-prefix "") (skk-char-to-unibyte-string (skk-last-command-char)) skk-prefix))) (defun skk-isearch-current-mode () "Return the symbolic current mode of skk for skk-isearch." (cond ((not skk-mode) nil) ((skk-isearch-skk-katakana-mode-p) 'katakana) ((skk-isearch-skk-hiragana-mode-p) 'hiragana) ((skk-isearch-skk-jisx0208-latin-mode-p) 'jisx0208-latin) ((skk-isearch-skk-abbrev-mode-p) 'abbrev) (t 'latin))) (defun skk-isearch-set-initial-mode (mode) "Set up the initial condition according to given symbolic MODE. The MODE should be canonical." ;; following code is highly depends on internal of skk. ;; (skk-isearch-turn-on-skk-mode) ;; (skk-isearch-skk-kakutei) (case mode (hiragana (skk-isearch-skk-turn-on-hiragana-mode)) (katakana (skk-isearch-skk-turn-on-katakana-mode)) (jisx0208-latin (skk-isearch-skk-turn-on-jix0208-latin-mode)) (latin (skk-isearch-skk-turn-on-latin-mode)) (t (skk-isearch-turn-off-skk-mode)))) (defun skk-isearch-symbolic-mode (mode) "Return symbolic skk isearch mode for given numerical MODE." (car (rassq mode skk-isearch-mode-canonical-alist))) (defun skk-isearch-numerical-mode (mode) "Return numerical skk isearch mode for given symbolic MODE." (cdr (assq mode skk-isearch-mode-canonical-alist))) (defun skk-isearch-mode-string () "Return the current skk mode string for prompting." (with-current-buffer (get-buffer-create skk-isearch-working-buffer) (cdr (assq (skk-isearch-current-mode) skk-isearch-mode-string-alist)))) (defun skk-isearch-current-numerical-mode () "Return the symbolic skk isearch mode according to the current skk internal condition." (skk-isearch-numerical-mode (or (skk-isearch-current-mode) 'latin))) (defun skk-isearch-canonical-start-mode (mode) "Canonicalize the symbolic skk isearch MODE." ;; alias, canonical, or error. (cond ((cdr (rassq mode skk-isearch-mode-alias-alist))) ((cdr (assq mode skk-isearch-mode-alias-alist))) ((skk-isearch-numerical-mode mode) mode) (t (error "Unknown skk-isearch-start-mode: %s" mode)))) (defun skk-isearch-initial-mode () "Return a symbol that represents a skk-isearch mode name. It is used to initialize the working buffer." (cond ((and skk-isearch-use-previous-mode skk-isearch-mode) ;; use the mode when last isearch is done. note that the ;; `skk-isearch-mode' is numerical, so convert it to symbolic ;; mode. (skk-isearch-symbolic-mode skk-isearch-mode)) (skk-isearch-start-mode ;; always start with the specified mode. ;; `skk-isearch-start-mode' is symbolic. (skk-isearch-canonical-start-mode skk-isearch-start-mode)) (skk-isearch-state ;; after `isearch-edit-string'. skk-isearch-state) ;; guess the current buffer. note that if skk-mode is off, ;; skk-isearch-current-mode returns symbol `nil' and control ;; falls through to next cond clause. ((skk-isearch-current-mode)) ;; skk-mode is off in this buffer. (t skk-isearch-initial-mode-when-skk-mode-disabled))) (defun skk-isearch-initialize-working-buffer () "Initialize the current buffer as working buffer for skk isearch. More precicely, turn on skk-mode, put into kana mode, make sure kakutei'ed and erase the buffer contents." (skk-isearch-turn-on-skk-mode) (skk-isearch-skk-kakutei) (make-local-variable 'skk-dcomp-activate) (setq skk-dcomp-activate nil) (erase-buffer)) ;;;###autoload (defun skk-isearch-mode-setup () "hook function called when skk isearch begin." ;; setup working buffer. initial skk mode for isearch should be ;; determined in the original buffer and set in working buffer. (let ((initial (skk-isearch-initial-mode))) (with-current-buffer (get-buffer-create skk-isearch-working-buffer) (skk-erase-prefix 'clean) (skk-isearch-initialize-working-buffer) (skk-isearch-set-initial-mode initial))) ;; setup variables and keymap (unless (keymapp skk-isearch-mode-map) (cond ((eval-when-compile (featurep 'xemacs)) (setq skk-isearch-mode-map (skk-isearch-setup-keymap (make-keymap))) (set-keymap-parents skk-isearch-mode-map isearch-mode-map)) (t (setq skk-isearch-mode-map (skk-isearch-setup-keymap (cons 'keymap isearch-mode-map)))))) (set skk-isearch-overriding-local-map skk-isearch-mode-map) ;; Input Method $B$H$7$F(B SKK $B$r;H$C$F$$$k>l9g$NBP:v(B (when (eval-when-compile (featurep 'emacs)) (when (and current-input-method (string-match "^japanese-skk" current-input-method)) (let* ((method current-input-method) (func (if (string= "japanese-skk" method) 'skk-inactivate 'skk-auto-fill-inactivate))) (with-current-buffer (get-buffer-create skk-isearch-working-buffer) (unless current-input-method (skk-set-deactivate-im-func func) (setq current-input-method method)))))) ;; skk-isearch $B$N>uBV$rI=$9FbItJQ?t$N@_Dj(B (setq skk-isearch-switch t) (setq skk-isearch-in-editing nil) (setq skk-isearch-current-buffer (current-buffer)) ;; (setq skk-isearch-incomplete-message "" ;; set skk-isearch-message non-nil to call skk-isearch-message. skk-isearch-message "") (skk-isearch-mode-message) (skk-isearch-incomplete-message)) ;;;###autoload (defun skk-isearch-mode-cleanup () "Hook function called when skk isearch is done." ;; remember the current skk mode for next use. (let ((mode (skk-current-input-mode))) (when skk-isearch-use-previous-mode (setq skk-isearch-mode (with-current-buffer (get-buffer-create skk-isearch-working-buffer) (skk-isearch-current-numerical-mode)))) ;; reset the overrinding-local-map. (set skk-isearch-overriding-local-map nil) (setq skk-isearch-message nil skk-isearch-last-mode-string "" skk-isearch-last-mode-regexp "") ;; $B%5!<%ACf$KF~NO%b!<%I$rJQ99$7$?$i!"%b!<%I%i%$%s$NI=<($b$=$l$K=>$$(B ;; $BJQ99$5$l$k$N$G!"%+%l%s%H%P%C%U%!$NF~NO%b!<%I$H%b!<%I%i%$%s$NI=<((B ;; $B$H$,(B sync $B$7$J$/$J$k!#=>$$!"%5!<%A$,=*N;$7$?:]!"%b!<%I%i%$%s$r%+(B ;; $B%l%s%H%P%C%U%!$NF~NO%b!<%I$H(B sync $B$5$;$k!#(B (case mode (hiragana (skk-j-mode-on)) (katakana (skk-j-mode-on t)) (abbrev (skk-abbrev-mode-on)) (latin (skk-latin-mode-on)) (jisx0208-latin (skk-jisx0208-latin-mode-on)))) ;; Input Method $B$H$7$F(B SKK $B$r;H$C$F$$$k>l9g$NBP:v(B (when (eval-when-compile (featurep 'emacs)) (when (string-match "^japanese-skk" (format "%s" default-input-method)) (with-current-buffer (get-buffer-create skk-isearch-working-buffer) (skk-deactivate-input-method)))) ;; skk-isearch $B$N>uBV$rI=$9FbItJQ?t$N@_Dj(B (setq skk-isearch-switch nil) (unless skk-isearch-in-editing (setq skk-isearch-state nil)) (setq skk-isearch-current-buffer nil) ;; (skk-remove-minibuffer-setup-hook 'skk-j-mode-on 'skk-setup-minibuffer 'skk-add-skk-pre-command)) (defun skk-isearch-incomplete-message (&optional prefix) "Show message when kana kanji conversion is in progress. Optional argument PREFIX is appended if given." (let ((isearch-message (concat isearch-message skk-isearch-incomplete-message prefix))) (isearch-message))) ;; ;; define keymap ;; (defun skk-isearch-find-keys-define (map commands command) ;; COMMANDS $B$N$$$:$l$+$K%P%$%s%I$5$l$F$$$k%-!<$rA4$FD4$Y$k!#(B ;; skk-isearh $B$NCf$G$=$l$i$N%-!<$r(B COMMAND $B$K%P%$%s%I$9$k!#(B (let (prefs) (dolist (c commands) (dolist (key (where-is-internal c (current-global-map))) (when (and (= (length key) 2) (not (member (aref key 0) prefs))) (define-key map (vector (aref key 0)) (make-sparse-keymap)) (push (aref key 0) prefs)) (when (<= (length key) 2) (define-key map key command)))))) ;; XXX should be more generic (defun skk-isearch-setup-keymap (map) ;; printable chars. (do ((c ?\040 (1+ c))) ((>= c ?\177)) (define-key map (skk-char-to-unibyte-string c) 'skk-isearch-wrapper)) (when skk-j-mode-function-key-usage (define-key map [f1] 'skk-isearch-wrapper) (define-key map [f2] 'skk-isearch-wrapper) (define-key map [f3] 'skk-isearch-wrapper) (define-key map [f4] 'skk-isearch-wrapper) (define-key map [f5] 'skk-isearch-wrapper) (define-key map [f6] 'skk-isearch-wrapper) (define-key map [f7] 'skk-isearch-wrapper) (define-key map [f8] 'skk-isearch-wrapper) (define-key map [f9] 'skk-isearch-wrapper) (define-key map [f10] 'skk-isearch-wrapper)) ;; control chars for skk. (define-key map "\C-g" 'skk-isearch-keyboard-quit) (define-key map skk-kakutei-key 'skk-isearch-newline) (define-key map "\C-m" 'skk-isearch-exit) (dolist (key skk-previous-candidate-keys) (define-key map key 'skk-isearch-wrapper)) ;; C-x map for skk. (define-key map "\C-x" (make-sparse-keymap)) ;; Keys for `skk-isearch-skk-mode'. (let ((commands '(skk-mode skk-auto-fill-mode))) (unless (eval-when-compile (featurep 'xemacs)) (when (string-match "^japanese-skk" (format "%s" default-input-method)) (push 'toggle-input-method commands))) (skk-isearch-find-keys-define map commands 'skk-isearch-skk-mode)) (unless (eval-when-compile (featurep 'xemacs)) ;; XEmacs $B$K$O$J$$%3%^%s%I(B (if (fboundp 'isearch-other-control-char) ;2013-10-08 Remove functions (define-key map [?\C-x t] 'isearch-other-control-char)) ; GNU Emacs 24.4 $B$+$iGQ;_(B (define-key map [?\C-0] 'skk-isearch-start-henkan) (define-key map [?\C-1] 'skk-isearch-start-henkan) (define-key map [?\C-2] 'skk-isearch-start-henkan) (define-key map [?\C-3] 'skk-isearch-start-henkan) (define-key map [?\C-4] 'skk-isearch-start-henkan) (define-key map [?\C-5] 'skk-isearch-start-henkan) (define-key map [?\C-6] 'skk-isearch-start-henkan) (define-key map [?\C-7] 'skk-isearch-start-henkan) (define-key map [?\C-8] 'skk-isearch-start-henkan) (define-key map [?\C-9] 'skk-isearch-start-henkan) (define-key map [?\M-0] 'skk-isearch-start-henkan) (define-key map [?\M-1] 'skk-isearch-start-henkan) (define-key map [?\M-2] 'skk-isearch-start-henkan) (define-key map [?\M-3] 'skk-isearch-start-henkan) (define-key map [?\M-4] 'skk-isearch-start-henkan) (define-key map [?\M-5] 'skk-isearch-start-henkan) (define-key map [?\M-6] 'skk-isearch-start-henkan) (define-key map [?\M-7] 'skk-isearch-start-henkan) (define-key map [?\M-8] 'skk-isearch-start-henkan) (define-key map [?\M-9] 'skk-isearch-start-henkan)) ;; Keys for `skk-isearch-delete-char'. (let ((commands '(backward-delete-char-untabify backward-delete-char backward-or-forward-delete-char delete-backward-char))) (skk-isearch-find-keys-define map commands 'skk-isearch-delete-char)) ;; map) ;; ;; wrapper functions ;; (defun skk-isearch-redo-function () "Execute the command of given key sequence in skk environment." ;; with saving value of old binding. (let ((local-map (symbol-value skk-isearch-overriding-local-map))) (unwind-protect (progn ;; temporarily disable the overriding-local-map. this ;; should be done in ther buffer isearch is performed, i.e., ;; before entering skk-isearch-working-buffer. (set skk-isearch-overriding-local-map nil) ;; don't change the current buffer during save/restore the ;; overriding-local-map, because it is buffer local in some ;; version of emacs. (with-current-buffer (get-buffer-create skk-isearch-working-buffer) ;; listify this-command-keys. this works only if it is ;; string. (setq unread-command-events (append (if (zerop (length (this-command-keys))) (list last-command-event) (this-command-keys)) nil)) (condition-case error ;; setup last-command-event and this-command because ;; some command refers them. (let* ((keys (read-key-sequence nil)) (this-command (key-binding keys)) ;; $BD>8e$N(B command-execute() $B$K$F!"(Bskk-insert() $B7PM3$G(B ;; skk-dcomp-multiple-show() $B$, start 1) (prog1 (buffer-substring 1 start) (delete-region 1 start))))) ;; a conversion is in progress ((not (string= skk-prefix "")) nil) ;;(skk-current-rule-tree nil) ;; whole string in the buffer is fixed. ((not (zerop (buffer-size))) (prog1 (skk-isearch-buffer-string) (erase-buffer)))) ;; update incomplete-message with contents of working buffer. (setq skk-isearch-incomplete-message (skk-isearch-buffer-string)) ;; update echo area. (skk-isearch-incomplete-message)))) ;; ;; regexp search supports. ;; (defun skk-isearch-last-char (string) (when (string-match ".\\'" string) (string-to-char (substring string (match-beginning 0))))) (defun skk-isearch-breakable-p (char) (and char (funcall skk-isearch-breakable-character-p-function char))) (defun skk-isearch-search-string-regexp (string) (if isearch-regexp (do ((prev (skk-isearch-last-char isearch-string) (car chars)) (result "" (concat result (char-to-string (car chars)))) (chars (string-to-list string) (cdr chars))) ((null chars) result) (when (and (skk-isearch-breakable-p prev) (skk-isearch-breakable-p (car chars))) (setq result (concat result skk-isearch-whitespace-regexp)))) ;; else string)) (defun skk-isearch-mode-message () "Prepend the skk isearch mode string to `isearch-message'. If the current mode is different from previous, remove it first." (let ((mode-string (skk-isearch-mode-string))) (unless (string= mode-string skk-isearch-last-mode-string) (if (string-match skk-isearch-last-mode-regexp isearch-message) (setq isearch-message (substring isearch-message (match-end 0)))) (setq skk-isearch-last-mode-string mode-string skk-isearch-last-mode-regexp (concat "^" (regexp-quote mode-string))) (setq isearch-message (concat mode-string isearch-message))))) (defun skk-isearch-process-search-string (string) (isearch-process-search-string (skk-isearch-search-string-regexp string) string)) ;; ;; interactive functions. ;; (defun skk-isearch-delete-char (&rest args) (interactive "P") (unless (with-current-buffer (get-buffer-create skk-isearch-working-buffer) ;; following code is highly depends on internal of skk. (when (skk-isearch-conversion-active-p) (prog1 t (cond ((save-excursion (ignore-errors (goto-char (point-max))) (>= skk-henkan-start-point (point))) (setq skk-henkan-count 0) (skk-kakutei) (isearch-message)) ((and (eq skk-henkan-mode 'active) skk-delete-implies-kakutei) (if (eq skk-delete-implies-kakutei 'dont-update) (let ((skk-update-jisyo-function #'ignore)) (skk-kakutei)) (skk-kakutei)) (delete-char -1) (setq isearch-string (concat isearch-string (skk-isearch-buffer-string)) isearch-message (concat (skk-isearch-mode-string) (mapconcat #'isearch-text-char-description isearch-string ""))) (isearch-push-state) (isearch-update) (erase-buffer)) (t (cond ((eq skk-henkan-mode 'active) ;; In this case, `skk-delete-implies-kakutei' is nil. (skk-previous-candidate)) ((string= skk-prefix "") ;; now, we can't pass the universal argument within ;; the isearch-mode. so hard code the value `1'. (delete-char -1)) (t (skk-erase-prefix 'clean))) (setq skk-isearch-incomplete-message (skk-isearch-buffer-string)) (skk-isearch-incomplete-message)))))) ;; isearch-cmds ... Stack of search status sets. ;; '(["test" "test" 198 198 t 194 nil nil nil 192 t nil] ;; ["tes" "tes" 197 197 t 194 nil nil nil 192 t nil] ;; ["te" "te" 196 196 t 194 nil nil nil 192 t nil] ;; ["t" "t" 195 195 t 194 nil nil nil 192 t nil] ;; ["" "" 192 t t nil nil nil nil 192 t nil]) ;; or ;; '([cl-struct-isearch--state "test" "[aa] test" 196 196 t ..] ;; [cl-struct-isearch--state "tes" "[aa] tes" 195 195 t ..] ;; [cl-struct-isearch--state "te" "[aa] te" 102 102 t ..] ;; [cl-struct-isearch--state "t" "[aa] t" 92 92 t ..] ;; [cl-struct-isearch--state "" "[$B$+(B] " 78 t t ..] (let* ((cmd (nth 1 isearch-cmds)) (oldmsg (cond ((null cmd) "") ((stringp (aref cmd 0)) (aref cmd 1)) ; GNU Emacs 24.2 $B$^$G(B (t (aref cmd 2)))) ; GNU Emacs 24.3 $B$+$i(B (prompt (skk-isearch-mode-string)) newmsg) (unless (or (null cmd) (string-match (concat "^" (regexp-quote prompt)) oldmsg)) ;; `skk-isearch-delete-char' $B$,8F$P$l$kA0$K(B `skk-isearch-working-buffer' ;; $BFb$N%b!<%I$,@Z$jBX$($i$l$F$$$?>l9g!"(B isearch-cmds $B$NBh(B 2 $BMWAG$K$D$$(B ;; $B$F!"(B messege $B$NFbMF$r(B update $B$7$J$$$H(B [DEL] $B$7$?$H$-$N%b!<%I$NI=<($,(B ;; $B$*$+$7$/$J$k!#(B (do ((alist skk-isearch-mode-string-alist (cdr alist)) (msg nil (when (string-match (concat "^" (regexp-quote (cdar alist))) oldmsg) (substring oldmsg (match-end 0))))) ((or msg (null alist)) (setq newmsg (concat prompt (or msg oldmsg))) (if (stringp (aref cmd 0)) (aset cmd 1 newmsg) ;GNU Emacs 24.2 $B$^$G(B (aset cmd 2 newmsg)) ;GNU Emacs 24.3 $B$+$i(B )))) (isearch-delete-char))) (defun skk-isearch-kakutei (isearch-function) "Special wrapper for skk-kakutei or newline." (if (with-current-buffer (get-buffer-create skk-isearch-working-buffer) ;; following code is highly depends on internal of skk. (when (skk-isearch-conversion-active-p) (prog1 t (skk-isearch-skk-kakutei)))) (skk-isearch-process-search-string (skk-isearch-search-string)) (funcall isearch-function))) (defun skk-isearch-exit (&rest args) (interactive "P") (skk-isearch-kakutei #'isearch-exit)) (defun skk-isearch-newline (&rest args) (interactive "P") ;; following code is highly depends on internal of skk. (cond ((with-current-buffer (get-buffer-create skk-isearch-working-buffer) (when (memq (skk-isearch-current-mode) '(latin jisx0208-latin nil)) (prog1 t ;; if the working buffer is latin or jisx0208-latin ;; mode, default behaviour of C-j is set current mode ;; to kana mode. (skk-isearch-turn-on-skk-mode) (skk-isearch-mode-message)))) (isearch-message)) ((event-to-character last-command-event) (skk-isearch-kakutei #'isearch-printing-char)) (t (skk-isearch-mode-message) (isearch-message)))) ;;;###autoload (defun skk-isearch-skk-mode (&rest args) (interactive "P") (skk-isearch-redo-function) (isearch-message)) (defun skk-isearch-keyboard-quit (&rest args) (interactive "P") (condition-case () (progn (skk-isearch-redo-function) ;; update echo area message. (skk-isearch-search-string)) (quit (isearch-abort)))) (defun skk-isearch-wrapper (&rest args) (interactive "P") (skk-isearch-redo-function) (skk-isearch-wrapper-1)) (defun skk-isearch-wrapper-1 () (let ((string (skk-isearch-search-string))) (when string ; nil means on the way to converting to kanji. ;; with saving value of old binding... (let ((local-map (symbol-value skk-isearch-overriding-local-map)) (current-buffer (current-buffer))) ;; because the overrinding local map may be buffer local, keep the ;; current buffer, but we can't use save-excursion. ... (unwind-protect (progn (set skk-isearch-overriding-local-map isearch-mode-map) (let ((command (key-binding string))) (cond ((not (commandp command)) ;; just search literally. (skk-isearch-process-search-string string)) ;; internationalized isearch.el ((fboundp 'isearch-process-search-multibyte-characters) ;; internationalized isearch.el binds all ;; multibyte characters to `isearch-printing-char'. (skk-isearch-process-search-string string)) ;; non internationalized isearch.el (t (command-execute command))))) ;; restore the overriding local map. (set-buffer current-buffer) (set skk-isearch-overriding-local-map local-map)))))) (defun skk-isearch-start-henkan (&optional digit last-event) "skk-isearch $B$N"&%b!<%I$GJQ49$r3+;O$9$k!#(B $B$3$N%3%^%s%I$O(B digit-argument $B$N(B 0-9 $B$KBP1~$9$k%-!<$K3d$jEv$F$i$l$k!#(B $BJQ49$K$O(B skk-search-prog-list $B$NBe$o$j$K(B skk-search-prog-list-{0-9} $B$,;2>H$5$l$k!#(B" (interactive) (let ((digit (or digit (- (logand (skk-last-command-char) ?\177) ?0))) (event (next-command-event nil (skk-isearch-incomplete-message)))) (cond ((equal event (character-to-event ?\ )) ;; XEmacs $B$G$O(B eq $B$K$O$J$i$J$$(B (with-current-buffer (get-buffer-create skk-isearch-working-buffer) (when (eq skk-henkan-mode 'on) (skk-bind-last-command-char skk-start-henkan-char (skk-start-henkan 1 digit)))) (skk-isearch-mode-message) (skk-isearch-wrapper-1)) (t (cond ((eval-when-compile (featurep 'xemacs)) (let ((search-nonincremental-instead nil)) (isearch-exit)) (skk-unread-event last-event) ;; XXX $B$J$<(B 2 $B2s(B unread $B$9$k(B...? (skk-unread-event event) (skk-unread-event event)) (t (skk-unread-event event) (if (fboundp 'isearch-other-control-char) ; 2013-10-08 Remove functions. (isearch-other-control-char))) ; GNU Emacs 24.4 $B$+$iGQ;_(B ))))) ;; ;; advices. ;; (defadvice isearch-repeat (after skk-isearch-ad activate compile) "`isearch-message' $B$rE,@Z$K@_Dj$9$k!#(B" (when skk-isearch-switch (unless (string-match (concat "^" (regexp-quote (skk-isearch-mode-string))) isearch-message) (setq isearch-message (concat (skk-isearch-mode-string) (mapconcat #'isearch-text-char-description isearch-string ""))) (setq isearch-cmds (cdr isearch-cmds)) (isearch-push-state) (isearch-update)) ;; (when isearch-regexp (let ((regexp (regexp-quote (mapconcat 'isearch-text-char-description skk-isearch-whitespace-regexp "")))) (when (string-match regexp isearch-message) (setq isearch-message (replace-regexp-in-string regexp "" isearch-message)) (setq isearch-cmds (cdr isearch-cmds)) (isearch-push-state) (isearch-update)))))) (defadvice isearch-edit-string (before skk-isearch-ad activate compile) "`isearch-message' $B$rE,@Z$K@_Dj$9$k!#(B" (when skk-isearch-switch (with-current-buffer (get-buffer-create skk-isearch-working-buffer) (setq skk-isearch-state (skk-isearch-current-mode)) (setq skk-isearch-in-editing t)) (when (string-match (concat "^" (regexp-quote (skk-isearch-mode-string))) isearch-message) (setq isearch-message (substring isearch-message (match-end 0)))))) (defadvice isearch-search (before skk-isearch-ad activate compile) "`isearch-message' $B$rE,@Z$K@_Dj$9$k!#(B" (when skk-isearch-switch (unless (or isearch-nonincremental (string-match (concat "^" (regexp-quote (skk-isearch-mode-string))) isearch-message)) (setq isearch-message (concat (skk-isearch-mode-string) (mapconcat 'isearch-text-char-description isearch-string "")))))) (when (eval-when-compile (featurep 'xemacs)) (defadvice digit-argument (around skk-isearch activate) "isearch $BFb$G(B digit-argument $B$r3hMQ$G$-$k$h$&D4@0$9$k!#(B" (if (and skk-isearch-switch (with-current-buffer skk-isearch-working-buffer (eq skk-henkan-mode 'on))) (let* ((event last-command-event) (key (and (key-press-event-p event) (event-key event))) (digit (and key (characterp key) (>= key ?0) (<= key ?9) (- key ?0)))) (skk-isearch-start-henkan digit event)) ad-do-it))) ;;; This advice will be enabled before skk-isearch is loaded. ;;;###autoload (defconst skk-isearch-really-early-advice (lambda () (defadvice isearch-message-prefix (around skk-isearch-ad activate) (let ((current-input-method (unless (and (boundp 'skk-isearch-switch) skk-isearch-switch) current-input-method))) ad-do-it)) (defadvice isearch-toggle-input-method (around skk-isearch-ad activate) ;; Needed for calling skk-isearch via isearch-x. (cond ((string-match "^japanese-skk" (format "%s" default-input-method)) (let ((skk-isearch-initial-mode-when-skk-mode-disabled 'latin)) (skk-isearch-mode-setup) (skk-isearch-skk-mode))) ((null default-input-method) ad-do-it (when (string-match "^japanese-skk" (format "%s" default-input-method)) (let ((skk-isearch-initial-mode-when-skk-mode-disabled 'latin)) (skk-isearch-mode-setup)) (skk-deactivate-input-method))) (t ad-do-it))))) ;;;###autoload (unless (featurep 'xemacs) (define-key isearch-mode-map [(control \\)] 'isearch-toggle-input-method) (cond ((and (featurep 'advice) (assq 'skk-isearch-ad (assq 'around (ad-get-advice-info 'isearch-toggle-input-method)))) ;; Already advised. nil) ((locate-library "advice") ;; Advise now. (funcall skk-isearch-really-early-advice)) (t ;; Emacs 21 loads "leim-list" files before `load-path' is prepared. (add-hook 'before-init-hook skk-isearch-really-early-advice)))) (put 'digit-argument 'isearch-command t) (if (fboundp 'isearch-other-control-char) ; 2013-10-08 Remove functions (put 'isearch-other-control-char 'isearch-command t)) ; GNU Emacs 24.4 $B$+$iGQ;_(B (put 'skk-isearch-delete-char 'isearch-command t) (put 'skk-isearch-exit 'isearch-command t) (put 'skk-isearch-keyboard-quit 'isearch-command t) (put 'skk-isearch-newline 'isearch-command t) (put 'skk-isearch-skk-mode 'isearch-command t) (put 'skk-isearch-start-henkan 'isearch-command t) (put 'skk-isearch-wrapper 'isearch-command t) (provide 'skk-isearch) ;;; skk-isearch.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-jisx0201.el000066400000000000000000000413271361774317600210230ustar00rootroot00000000000000;;; skk-jisx0201.el --- JIS X 0201 (I6E(B, Roman -*- coding: iso-2022-7bit -*- ;; Copyright (C) 1999-2007 SKK Development Team ;; Author: Tsukamoto Tetsuo ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; Created: Oct. 30, 1999. ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; <$B4JC1$J@bL@(B> ;; ;; ~/.skk $B$K(B ;; ;; (setq skk-use-jisx0201-input-method t) ;; ;; $B$H=q$/$3$H$G%$%s%9%H!<%k$5$l$^$9!#;H$$J}$O0J2<$N$h$&$K$J$j$^$9!#(B ;; ;; $B!}%+%?%+%J%b!<%I$K$*$$$F!"(B ;; $B!&(B"C-q" $B$GA43Q%+%J%b!<%I$HH>3Q%+%J%b!<%I$r@Z$j$+$($^$9!#(B ;; ;; $B!}$R$i$,$J(B/$B%+%?%+%JN>%b!<%IFb$G$N"&%b!<%I$K$*$$$F!"(B ;; $B!&(B"C-q" $B$r2!$9$H(I$$B8+=P$78l$H$7$FF~NO$5$l$?$R$i$,$J(B/$B%+%?%+%J$r(IJ]686@6E$B$KJQ(B ;; $B49$7$^$9!#(B ;; ;; `skk-jisx0201-roman-rule-list' $B$K(B JISX0201.1976 Japanese Roman ;; (latin-jisx0201) $B$NJ8;zNs$rDj5A$7$F$$$^$9!#$?$@$7(B GNU Emacs 23 $B0J9_!"%U%!(B ;; $B%$%kJ]B8;~$K(B JIS X 0201 Roman $B$H(B ASCII $B$N6hJL$,$5$l$J$/$J$C$?$h$&$G$9(B ($B1_(B ;; $B5-9f$*$h$S%*!<%P!<%i%$%s$r=|$/(B)$B!#$7$?$,$C$F$3$N%U%!%$%k$N8=9THG$G$O!"$3$l(B ;; $B$i$N(B 2 $BJ8;z0J30$O(B ASCII $B$NJ8;z$,Dj5A$5$l$F$$$^$9!#(B ;; ;; (I6E(B $B$H(B roman $B$r@Z$jBX$($k5!G=(B `skk-toggle-jisx0201' $B$K$O%-! ;; ;; GNU Emacs 20.3 $B!A(B 22 $B$G$3$N%U%!%$%k$rJT=8$9$k>l9g$O!"%U%!%$%k$r3+$/A0$K(B ;; ;; (setq standard-translation-table-for-decode (make-translation-table nil)) ;; ;; $B$rI>2A$7$F$/$@$5$$!#(B ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars)) (require 'japan-util) ;; $B=tHL$N;v>p$K$h$j(B skk-vars.el $B$KF~$l$k$Y$-$G$J$$JQ?t(B (defvar skk-jisx0201-base-rule-list '(("a" nil "(I1(B") ("bb" "b" "(I/(B") ("ba" nil "(IJ^(B") ("be" nil "(IM^(B") ("bi" nil "(IK^(B") ("bo" nil "(IN^(B") ("bu" nil "(IL^(B") ("bya" nil "(IK^,(B") ("bye" nil "(IK^*(B") ("byi" nil "(IK^((B") ("byo" nil "(IK^.(B") ("byu" nil "(IK^-(B") ("cc" "c" "(I/(B") ("cha" nil "(IA,(B") ("che" nil "(IA*(B") ("chi" nil "(IA(B") ("cho" nil "(IA.(B") ("chu" nil "(IA-(B") ("cya" nil "(IA,(B") ("cye" nil "(IA*(B") ("cyi" nil "(IA((B") ("cyo" nil "(IA.(B") ("cyu" nil "(IA-(B") ("dd" "d" "(I/(B") ("da" nil "(I@^(B") ("de" nil "(IC^(B") ("dha" nil "(IC^,(B") ("dhe" nil "(IC^*(B") ("dhi" nil "(IC^((B") ("dho" nil "(IC^.(B") ("dhu" nil "(IC^-(B") ("di" nil "(IA^(B") ("do" nil "(ID^(B") ("du" nil "(IB^(B") ("dya" nil "(IA^,(B") ("dye" nil "(IA^*(B") ("dyi" nil "(IA^((B") ("dyo" nil "(IA^.(B") ("dyu" nil "(IA^-(B") ("e" nil "(I4(B") ("ff" "f" "(I/(B") ("fa" nil "(IL'(B") ("fe" nil "(IL*(B") ("fi" nil "(IL((B") ("fo" nil "(IL+(B") ("fu" nil "(IL(B") ("fya" nil "(IL,(B") ("fye" nil "(IL*(B") ("fyi" nil "(IL((B") ("fyo" nil "(IL.(B") ("fyu" nil "(IL-(B") ("gg" "g" "(I/(B") ("ga" nil "(I6^(B") ("ge" nil "(I9^(B") ("gi" nil "(I7^(B") ("go" nil "(I:^(B") ("gu" nil "(I8^(B") ("gya" nil "(I7^,(B") ("gye" nil "(I7^*(B") ("gyi" nil "(I7^((B") ("gyo" nil "(I7^.(B") ("gyu" nil "(I7^-(B") ("ha" nil "(IJ(B") ("he" nil "(IM(B") ("hi" nil "(IK(B") ("ho" nil "(IN(B") ("hu" nil "(IL(B") ("hya" nil "(IK,(B") ("hye" nil "(IK*(B") ("hyi" nil "(IK((B") ("hyo" nil "(IK.(B") ("hyu" nil "(IK-(B") ("i" nil "(I2(B") ("jj" "j" "(I/(B") ("ja" nil "(I<^,(B") ("je" nil "(I<^*(B") ("ji" nil "(I<^(B") ("jo" nil "(I<^.(B") ("ju" nil "(I<^-(B") ("jya" nil "(I<^,(B") ("jye" nil "(I<^*(B") ("jyi" nil "(I<^((B") ("jyo" nil "(I<^.(B") ("jyu" nil "(I<^-(B") ("kk" "k" "(I/(B") ("ka" nil "(I6(B") ("ke" nil "(I9(B") ("ki" nil "(I7(B") ("ko" nil "(I:(B") ("ku" nil "(I8(B") ("kya" nil "(I7,(B") ("kye" nil "(I7*(B") ("kyi" nil "(I7((B") ("kyo" nil "(I7.(B") ("kyu" nil "(I7-(B") ("mm" "c" "(I/(B") ("ma" nil "(IO(B") ("me" nil "(IR(B") ("mi" nil "(IP(B") ("mo" nil "(IS(B") ("mu" nil "(IQ(B") ("mya" nil "(IP,(B") ("mye" nil "(IP*(B") ("myi" nil "(IP((B") ("myo" nil "(IP.(B") ("myu" nil "(IP-(B") ("n" nil "(I](B") ("n'" nil "(I](B") ("na" nil "(IE(B") ("ne" nil "(IH(B") ("ni" nil "(IF(B") ("nn" nil "(I](B") ("no" nil "(II(B") ("nu" nil "(IG(B") ("nya" nil "(IF,(B") ("nye" nil "(IF*(B") ("nyi" nil "(IF((B") ("nyo" nil "(IF.(B") ("nyu" nil "(IF-(B") ("o" nil "(I5(B") ("pp" "p" "(I/(B") ("pa" nil "(IJ_(B") ("pe" nil "(IM_(B") ("pi" nil "(IK_(B") ("po" nil "(IN_(B") ("pu" nil "(IL_(B") ("pya" nil "(IK_,(B") ("pye" nil "(IK_*(B") ("pyi" nil "(IK_((B") ("pyo" nil "(IK_.(B") ("pyu" nil "(IK_-(B") ("rr" "r" "(I/(B") ("ra" nil "(IW(B") ("re" nil "(IZ(B") ("ri" nil "(IX(B") ("ro" nil "(I[(B") ("ru" nil "(IY(B") ("rya" nil "(IX,(B") ("rye" nil "(IX*(B") ("ryi" nil "(IX((B") ("ryo" nil "(IX.(B") ("ryu" nil "(IX-(B") ("ss" "s" "(I/(B") ("sa" nil "(I;(B") ("se" nil "(I>(B") ("sha" nil "(I<,(B") ("she" nil "(I<*(B") ("shi" nil "(I<(B") ("sho" nil "(I<.(B") ("shu" nil "(I<-(B") ("si" nil "(I<(B") ("so" nil "(I?(B") ("su" nil "(I=(B") ("sya" nil "(I<,(B") ("sye" nil "(I<*(B") ("syi" nil "(I<((B") ("syo" nil "(I<.(B") ("syu" nil "(I<-(B") ("tt" "t" "(I/(B") ("ta" nil "(I@(B") ("te" nil "(IC(B") ("tha" nil "(IC'(B") ("the" nil "(IC*(B") ("thi" nil "(IC((B") ("tho" nil "(IC.(B") ("thu" nil "(IC-(B") ("ti" nil "(IA(B") ("to" nil "(ID(B") ("tsu" nil "(IB(B") ("tu" nil "(IB(B") ("tya" nil "(IA,(B") ("tye" nil "(IA*(B") ("tyi" nil "(IA((B") ("tyo" nil "(IA.(B") ("tyu" nil "(IA-(B") ("u" nil "(I3(B") ("vv" "v" "(I/(B") ("va" nil "(I3^'(B") ("ve" nil "(I3^*(B") ("vi" nil "(I3^((B") ("vo" nil "(I3^+(B") ("vu" nil "(I3^(B") ("ww" "w" "(I/(B") ("wa" nil "(I\(B") ("we" nil "(I3*(B") ("wi" nil "(I3((B") ("wo" nil "(I&(B") ("wu" nil "(I3(B") ("xx" "x" "(I/(B") ("xa" nil "(I'(B") ("xe" nil "(I*(B") ("xi" nil "(I((B") ("xka" nil "(I6(B") ("xke" nil "(I9(B") ("xo" nil "(I+(B") ("xtsu" nil "(I/(B") ("xtu" nil "(I/(B") ("xu" nil "(I)(B") ("xwa" nil "(I\(B") ("xwe" nil "(I*(B") ("xwi" nil "(I((B") ("xya" nil "(I,(B") ("xyo" nil "(I.(B") ("xyu" nil "(I-(B") ("yy" "y" "(I/(B") ("ya" nil "(IT(B") ("ye" nil "(I2*(B") ("yo" nil "(IV(B") ("yu" nil "(IU(B") ("zz" "z" "(I/(B") ("z," nil "$B!E(B") ("z-" nil "$B!A(B") ("z." nil "$B!D(B") ("z/" nil "(I%(B") ("z[" nil "$B!X(B") ("z]" nil "$B!Y(B") ("za" nil "(I;^(B") ("ze" nil "(I>^(B") ("zh" nil "$B"+(B") ("zi" nil "(I<^(B") ("zj" nil "$B"-(B") ("zk" nil "$B",(B") ("zl" nil "$B"*(B") ("zo" nil "(I?^(B") ("zu" nil "(I=^(B") ("zya" nil "(I<^,(B") ("zye" nil "(I<^*(B") ("zyi" nil "(I<^((B") ("zyo" nil "(I<^.(B") ("zyu" nil "(I<^-(B") ("," nil "(I$(B") ("." nil "(I!(B") ("-" nil "(I0(B") (":" nil ":") (";" nil ";") ("?" nil "?") ("[" nil "(I"(B") ("]" nil "(I#(B") ("l" nil skk-latin-mode) ("q" nil skk-toggle-katakana) ("L" nil skk-jisx0208-latin-mode) ("Q" nil skk-set-henkan-point-subr) ("X" nil skk-purge-from-jisyo) ("/" nil skk-abbrev-mode) ("$" nil skk-display-code-for-char-at-point) ("@" nil skk-today) ("\\" nil skk-input-by-code-or-menu) (skk-kakutei-key nil skk-kakutei)) "*SKK JISX0201 $B%b!<%I$N%Y!<%9$N%k!<%k!#(B") (defvar skk-jisx0201-roman-rule-list '(("!" nil "!") ("\"" nil "\"") ("#" nil "#") ("$" nil "$") ("%" nil "%") ("&" nil "&") ("'" nil "'") ("\(" nil "(") ("\)" nil ")") ("*" nil "*") ("+" nil "+") ("," nil ",") ("-" nil "-") ("." nil ".") ("/" nil "/") ("0" nil "0") ("1" nil "1") ("2" nil "2") ("3" nil "3") ("4" nil "4") ("5" nil "5") ("6" nil "6") ("7" nil "7") ("8" nil "8") ("9" nil "9") (":" nil ":") (";" nil ";") ("<" nil "<") ("=" nil "=") (">" nil ">") ("?" nil "?") ("@" nil "@") ("A" nil "A") ("B" nil "B") ("C" nil "C") ("D" nil "D") ("E" nil "E") ("F" nil "F") ("G" nil "G") ("H" nil "H") ("I" nil "I") ("J" nil "J") ("K" nil "K") ("L" nil "L") ("M" nil "M") ("N" nil "N") ("O" nil "O") ("P" nil "P") ("Q" nil "Q") ("R" nil "R") ("S" nil "S") ("T" nil "T") ("U" nil "U") ("V" nil "V") ("W" nil "W") ("X" nil "X") ("Y" nil "Y") ("Z" nil "Z") ("[" nil "[") ("\\" nil "\(J\(B") ("]" nil "]") ("^" nil "^") ("_" nil "_") ("`" nil "`") ("a" nil "a") ("b" nil "b") ("c" nil "c") ("d" nil "d") ("e" nil "e") ("f" nil "f") ("g" nil "g") ("h" nil "h") ("i" nil "i") ("j" nil "j") ("k" nil "k") ("l" nil "l") ("m" nil "m") ("n" nil "n") ("o" nil "o") ("p" nil "p") ("q" nil "q") ("r" nil "r") ("s" nil "s") ("t" nil "t") ("u" nil "u") ("v" nil "v") ("w" nil "w") ("x" nil "x") ("y" nil "y") ("z" nil "z") ("{" nil "{") ("|" nil "|") ("}" nil "}") ("~" nil "(J~(B")) "*SKK JISX0201 $B%b!<%I$N(B Roman $B$N%k!<%k!#(B") (defvar skk-jisx0201-rule-list '(("\(" nil "(") ("{" nil "{")) "*SKK JISX0201 $B%b!<%I$NDI2C$N%k!<%k!#(B") (setq skk-jisx0201-base-rule-tree (skk-compile-rule-list skk-jisx0201-base-rule-list skk-jisx0201-rule-list)) (setq skk-jisx0201-roman-rule-tree (skk-compile-rule-list skk-jisx0201-roman-rule-list)) ;; Hooks. ;; inline functions. (defsubst skk-jisx0201-mode-on (&optional arg) "SKK JIS X 0201 ($B%+%J(B) $B%b!<%I$r5/F0$9$k!#(B" (make-local-variable 'skk-rule-tree) (setq skk-mode t skk-jisx0201-mode t skk-jisx0201-roman arg skk-rule-tree (if arg skk-jisx0201-roman-rule-tree skk-jisx0201-base-rule-tree) skk-abbrev-mode nil skk-latin-mode nil skk-j-mode nil skk-jisx0208-latin-mode nil skk-katakana nil) (skk-update-modeline 'jisx0201) (skk-cursor-set)) ;; Pieces of advice. (defadvice skk-mode (before skk-jisx0201-ad activate) (setq skk-jisx0201-mode nil) (kill-local-variable 'skk-rule-tree)) (defadvice skk-kakutei (around skk-jisx0201-ad activate) (let ((jisx0201 skk-jisx0201-mode)) ad-do-it (when jisx0201 (skk-jisx0201-mode-on skk-jisx0201-roman)))) (defadvice skk-latin-mode (before skk-jisx0201-ad activate) (setq skk-jisx0201-mode nil) (kill-local-variable 'skk-rule-tree)) (defadvice skk-jisx0208-latin-mode (before skk-jisx0201-ad activate) (setq skk-jisx0201-mode nil) (kill-local-variable 'skk-rule-tree)) (defadvice skk-abbrev-mode (before skk-jisx0201-ad activate) (setq skk-jisx0201-mode nil) (kill-local-variable 'skk-rule-tree)) (defadvice skk-set-okurigana (around skk-jisx0201-ad activate) "$BH>3Q%+%J$NAw$j2>L>$r@5$7$/L>$rH>3Q%+%J$K$9$k!#(B" (when skk-jisx0201-mode (ad-set-arg 0 '("(I;(B" "(I<(B" "(I=(B" "(I>(B")))) ;; functions. ;;;###autoload (defun skk-jisx0201-mode (arg) "SKK $B$N%b!<%I$r(B JIS X 0201 $B%b!<%I$KJQ99$9$k!#(B" (interactive "P") (skk-kakutei) (skk-jisx0201-mode-on)) (defun skk-toggle-jisx0201 (arg) "$BH>3Q%+%J%b!<%I$H%m!<%^;z%b!<%I$r@Z$jBX$($k!#(B" (interactive "P") (cond ((eq skk-henkan-mode 'on) (skk-jisx0201-henkan arg)) (skk-jisx0201-roman (setq skk-rule-tree skk-jisx0201-base-rule-tree skk-jisx0201-roman nil)) (t (setq skk-rule-tree skk-jisx0201-roman-rule-tree skk-jisx0201-roman t)))) (defun skk-jisx0201-string-conversion (str func) (with-temp-buffer (insert str) (funcall func 1 (point)) (buffer-string))) (defun skk-jisx0201-zenkaku (str) "STR $B$N(B JIS X 0201 $B%+%JJ8;z$rBP1~$9$k(B JIS X 0208 $B$NJ8;z$GCV$-49$($k!#(B" (skk-jisx0201-string-conversion str #'skk-jisx0201-zenkaku-region)) (defun skk-jisx0201-hankaku (str) "STR $B$N(B JIS X 0208 $BJ8;z$rBP1~$9$k(B JIS X 0201 $B%+%J$NJ8;z$GCV$-49$($k!#(B" (skk-jisx0201-string-conversion str #'japanese-hankaku-region)) ;;;###autoload (defun skk-toggle-katakana (arg) (interactive "P") (cond ((eq skk-henkan-mode 'on) (skk-jisx0201-henkan arg)) (skk-jisx0201-mode (when (eq skk-henkan-mode 'active) (skk-kakutei)) (setq skk-jisx0201-mode nil) (skk-j-mode-on) (kill-local-variable 'skk-rule-tree)) (t (when (eq skk-henkan-mode 'active) (skk-kakutei)) (skk-jisx0201-mode-on)))) (defun skk-jisx0201-zenkaku-region (start end) (japanese-zenkaku-region start end 'katakana-only)) (defun skk-jisx0201-henkan (arg) "$B"&%b!<%I$G$"$l$P!"NN0h$N$R$i$,$J(B/$B%+%?%+%J$r(B (IJ]686@6E(B $B$KJQ49$9$k!#(B $B"'%b!<%I$G$O2?$b$7$J$$!#(B $B$=$NB>$N%b!<%I$G$O!"%*%j%8%J%k$N%-!<3d$jIU$1$G%P%$%s%I$5$l$F$$$k%3%^%s%I$r ;; Author: NAKAJIMA Mikio ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; Created: Sep. 30, 2000. ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars)) (unless (find-coding-system 'euc-jisx0213) (require 'jisx0213)) ; Mule-UCS ;;(require 'un-define) ;;;###autoload (defun skk-jisx0213-henkan-list-filter () ;; remove candidate that contains jisx0213 characters from ;; SKK-HENKAN-LIST. (let ((henkan-list (nthcdr skk-henkan-count skk-henkan-list)) e charset) (while (setq e (car henkan-list)) (setq charset (find-charset-string (if (consp e) (cdr e) e))) (if (or (memq 'japanese-jisx0213-1 charset) (memq 'japanese-jisx0213-2 charset)) (setq skk-henkan-list (delq e skk-henkan-list) henkan-list (delq e henkan-list)) (setq henkan-list (cdr henkan-list)))))) (provide 'skk-jisx0213) ;;; skk-jisx0213.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-jisyo-edit-mode.el000066400000000000000000000167451361774317600225530ustar00rootroot00000000000000;;; skk-jisyo-edit-mode.el --- major mode for editing SKK dictionaries -*- coding: iso-2022-jp -*- ;; Copyright (C) 2001-2010 SKK Development Team ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; This is a major mode for editing SKK dictionaries. ;;; Code: (eval-when-compile (require 'skk-macs)) (require 'skk-cus) (require 'skk-vars) (eval-when-compile (defvar font-lock-defaults)) (defvar skk-jisyo-edit-map nil "Keymap for SKK JISYO Edit mode.") (defvar skk-jisyo-edit-mode-hook nil "Hook run on entry in `skk-jisyo-edit-mode'.") (defvar skk-jisyo-edit-syntax-table nil) (unless skk-jisyo-edit-map (setq skk-jisyo-edit-map (make-sparse-keymap 'skk-jisyo-edit-map))) (defvar skk-jisyo-edit-font-lock-keywords '(("\\(\\[[^]]*/\\]\\)" 1 font-lock-constant-face) ("^\\([^; ]+ \\)/" 1 font-lock-function-name-face) ("/[^;\n]+\\(;[^/\n]*\\)" 1 font-lock-type-face t) ("^\\(;.+\\)$" 1 font-lock-comment-face t) ("^\\(;; okuri-ari entries\\.\\)$" 1 font-lock-keyword-face t) ("^\\(;; okuri-nasi entries\\.\\)$" 1 font-lock-keyword-face t) ("/\\([^/\n]+\\)$" 1 highlight) ("\\(/\\)" 1 font-lock-warning-face)) "Additional expressions to highlight in SKK JISYO edit mode.") (put 'skk-jisyo-edit-mode 'font-lock-defaults '(skk-jisyo-edit-font-lock-keywords)) (defvar skk-jisyo-edit-original-window-configuration nil) ;;;###autoload (defun skk-jisyo-edit-mode () "Major mode for editing SKK JISYO." (interactive) (kill-all-local-variables) (setq mode-name "SKK JISYO Edit") (setq major-mode #'skk-jisyo-edit-mode) (make-local-variable 'font-lock-defaults) (setq font-lock-defaults '(skk-jisyo-edit-font-lock-keywords)) (make-local-variable 'skk-jisyo-edit-syntax-table) (setq skk-jisyo-edit-syntax-table (make-syntax-table)) (set-syntax-table skk-jisyo-edit-syntax-table) (let ((map (make-sparse-keymap))) (cond ((eval-when-compile (featurep 'xemacs)) (set-keymap-parents map (list skk-jisyo-edit-map)) (use-local-map map)) (t (use-local-map (nconc map skk-jisyo-edit-map))))) (modify-syntax-entry ?\" "w" skk-jisyo-edit-syntax-table) (modify-syntax-entry ?/ "w" skk-jisyo-edit-syntax-table) (run-hooks 'skk-jisyo-edit-mode-hook)) ;;;###autoload (add-to-list 'auto-mode-alist '("SKK-JISYO" . skk-jisyo-edit-mode) t) ;;;###autoload (add-to-list 'auto-mode-alist '("\\.skk-jisyo\\(\\.BAK\\|\\.bak\\|~\\)?$" . skk-jisyo-edit-mode)) ;;;###autoload (add-to-list 'auto-mode-alist '("\\..*skk/jisyo\\(\\.BAK\\|\\.bak\\|~\\)?$" . skk-jisyo-edit-mode)) ;;;###autoload (defun skk-edit-private-jisyo (&optional coding-system) "$B8D?M<-=q%U%!%$%k(B `skk-jisyo' $B$rJT=8$9$k!#(B $BG$0U$G$N8D?M<-=qJ]B8$N$"$H!"(B`skk-jisyo' $B$r3+$-!"(B`skk-jisyo-edit-mode' $B$KF~$k!#(B $B%m!<%+%k$K(B $B0J2<$N%-!l9g$O(B SKK $B$K$h$k8D?M<-=q%P%C%U%!$N99?7$,6X;_$5$l$k!#(B $B%*%W%7%g%J%k0z?t(B CODING-SYSTEM $B$K$F8D?M<-=q$N%3!<%I7O$r;XDj2DG=!#(B $B$3$N5!G=$O=>Mh$N ;; Author: NAKAJIMA Mikio ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; skk-kakasi.el $B$O(B KAKASI $B$r(B SKK $B$NCf$+$i;H$&%$%s%?!<%U%'%$%9$G$9!#(BKAKASI $B$O!"(B ;; $B9b66M5?.$5$s(B $B$K$h$k!"!V4A;z$+$J$^$8$jJ8$r$R$i$,(B ;; $B$JJ8$d%m!<%^;zJ8$KJQ49$9$k$3$H$rL\E*$H$7$F:n@.$7$?%W%m%0%i%`$H<-=q$NAm>N!W(B ;; $B$G$9!#;d<+?H$,%K%e!<%9$d%a!<%k$rFI$s$G$$$F!"F|>oFI$_$,J,$i$J$/$FCQ$:$+$7$$(B ;; $B;W$$$r$9$k$3$H$,B?$$$N$G!"5U0z$-$r$7$?$/$F:n$j$^$7$?!#(B ;; ;; KAKASI $B$O!"(B ;; ;; ftp://kakasi.namazu.org/pub/kakasi/ ;; ;; $B$K$"$j(B anonymous ftp $B$GF~L>$rA4$F$R$i$,$J$KJQ49$9$k!#(B $B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B $B$/$C$FI=<($9$k!#(B $BNc$($P!"(B $BCfEg(B -> {$B$J$+$7$^(B|$B$J$+$8$^(B}" (interactive "*r\nP") (let ((str (skk-gyakubiki-1 start end all))) (delete-region start end) (goto-char start) (insert-and-inherit str))) ;;;###autoload (defun skk-gyakubiki-and-henkan (start end) "$BNN0h$N4A;z$r$R$i$,$J$KJQ49$7!"$=$N$R$i$,$J$r8+=P$78l$H$7$F$+$J4A;zJQ49$rL>$rA4$F$R$i$,$J$KJQ498e!"%(%3!<$9$k!#(B $B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B $B$/$C$FI=<($9$k!#(B $BNc$($P!"(B $BCfEg(B -> {$B$J$+$7$^(B|$B$J$+$8$^(B}" (interactive "r\nP") (let ((str (skk-gyakubiki-1 start end all))) (save-match-data (when (string-match "^[ $B!!(B\t]+" str) ;; $B@hF,$N6uGr$rL>$rA4$F%+%?%+%J$KJQ49$9$k!#(B $B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B $B$/$C$FI=<($9$k!#(B $BNc$($P!"(B $BCfEg(B -> {$B%J%+%7%^(B|$B%J%+%8%^(B}" (interactive "*r\nP") (let ((str (skk-gyakubiki-1 start end all 'katakana))) (delete-region start end) (goto-char start) (insert-and-inherit str))) ;;;###autoload (defun skk-gyakubiki-katakana-message (start end &optional all) "$BNN0h$N4A;z!"Aw$j2>L>$rA4$F%+%?%+%J$KJQ498e!"%(%3!<$9$k!#(B $B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B $B$/$C$FI=<($9$k!#(B $BNc$($P!"(B $BCfEg(B -> {$B%J%+%7%^(B|$B%J%+%8%^(B}" (interactive "r\nP") (let ((str (skk-gyakubiki-1 start end all 'katakana))) (save-match-data (when (string-match "^[ $B!!(B\t]+" str) ;; $B@hF,$N6uGr$r \"$BJQ49A0(B[$B$X$s$+$s$^$((B]$B$N4A;z(B[$B$+$s$8(B]$B$NOF(B[$B$o$-(B]$B$K(B\" $B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B $B$/$C$FI=<($9$k!#(B $BNc$($P!"(B \"$BCfEg(B\" -> \"$BCfEg(B[{$B$J$+$7$^(B|$B$J$+$8$^(B}]\"" (interactive "*r\nP") (let ((str (skk-hurigana-1 start end all))) (delete-region start end) (goto-char start) (insert-and-inherit str))) ;;;###autoload (defun skk-hurigana-message (start end &optional all) "$BNN0h$N4A;z$KA4$F$U$j$,$J$rIU$1!"%(%3!<$9$k!#(B $BNc$($P!"(B \"$BJQ49A0$N4A;z$NOF$K(B\" -> \"$BJQ49A0(B[$B$X$s$+$s$^$((B]$B$N4A;z(B[$B$+$s$8(B]$B$NOF(B[$B$o$-(B]$B$K(B\" $B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B $B$/$C$FI=<($9$k!#(B $BNc$($P!"(B \"$BCfEg(B\" -> \"$BCfEg(B[{$B$J$+$7$^(B|$B$J$+$8$^(B}]\"" (interactive "r\nP") (message "%s" (skk-hurigana-1 start end all))) ;;;###autoload (defun skk-hurigana-katakana-region (start end &optional all) "$BNN0h$N4A;z$KA4$F%U%j%,%J$rIU$1$k!#(B $BNc$($P!"(B \"$BJQ49A0$N4A;z$NOF$K(B\" -> \"$BJQ49A0(B[$B%X%s%+%s%^%((B]$B$N4A;z(B[$B%+%s%8(B]$B$NOF(B[$B%o%-(B]$B$K(B\" $B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B $B$/$C$FI=<($9$k!#(B $BNc$($P!"(B \"$BCfEg(B\" -> \"$BCfEg(B[{$B%J%+%7%^(B|$B%J%+%8%^(B}]\"" (interactive "*r\nP") (let ((str (skk-hurigana-1 start end all 'katakana))) (delete-region start end) (goto-char start) (insert-and-inherit str))) ;;;###autoload (defun skk-hurigana-katakana-message (start end &optional all) "$BNN0h$N4A;z$KA4$F%U%j%,%J$rIU$1!"%(%3!<$9$k!#(B $BNc$($P!"(B \"$BJQ49A0$N4A;z$NOF$K(B\" -> \"$BJQ49A0(B[$B%X%s%+%s%^%((B]$B$N4A;z(B[$B%+%s%8(B]$B$NOF(B[$B%o%-(B]$B$K(B\" $B%*%W%7%g%J%k0z?t$N(B ALL $B$,(B non-nil $B$J$i$P!"J#?t$N8uJd$,$"$k>l9g$O!"(B\"{}\" $B$G$/(B $B$/$C$FI=<($9$k!#(B $BNc$($P!"(B \"$BCfEg(B\" -> \"$BCfEg(B[{$B%J%+%7%^(B|$B%J%+%8%^(B}]\"" (interactive "r\nP") (message "%s" (skk-hurigana-1 start end all 'katakana))) (defun skk-hurigana-1 (start end all &optional katakana) ;; skk-hurigana-* $B$N%5%V%k!<%A%s!#(B ;; $B%*%W%7%g%J%k0z?t$N(B KATAKANA $B$,(B non-nil $B$G$"$l$P!"%+%?%+%J$XJQ49$9$k!#(B (let ((arg (if katakana '("-JK" "-f") '("-JH" "-f")))) (when skk-allow-spaces-newlines-and-tabs (setq arg (cons "-c" arg))) (when all (setq arg (cons "-p" arg))) (skk-kakasi-region start end arg))) ;;;###autoload (defun skk-romaji-region (start end) "$BNN0h$N4A;z!"$R$i$,$J!"%+%?%+%J!"A41QJ8;z$rA4$F%m!<%^;z$KJQ49$9$k!#(B $BJQ49$K$O!"%X%\%s<0$rMQ$$$k!#(B $BNc$($P!"(B \"$B4A;z$+$J:.$8$jJ8$r%m!<%^;z$KJQ49(B\" -> \" kan'zi kana ma ziri bun' woro-ma zi ni hen'kan' \" `skk-romaji-*-by-hepburn' $B$,(B nil $B$G$"$l$P!"%m!<%^;z$X$NJQ49MM<0$r71Na<0$KJQ99$9(B $B$k!#Nc$($P!"(B\"$B$7(B\" $B$O%X%\%s<0$G$O(B \"shi\" $B$@$,!"71Na<0$G$O(B \"si\" $B$H$J$k!#(B" (interactive "*r") (let ((arg '("-Ha" "-Ka" "-Ja" "-Ea" "-ka" "-s")) str) (when skk-allow-spaces-newlines-and-tabs (setq arg (cons "-c" arg))) (unless skk-romaji-*-by-hepburn (setq arg (cons "-rk" arg))) (setq str (skk-kakasi-region start end arg)) (delete-region start end) (goto-char start) (insert-and-inherit str))) ;;;###autoload (defun skk-romaji-message (start end) "$BNN0h$N4A;z!"$R$i$,$J!"%+%?%+%J!"A41QJ8;z$rA4$F%m!<%^;z$KJQ49$7!"%(%3!<$9$k!#(B $BJQ49$K$O!"%X%\%s<0$rMQ$$$k!#(B $BNc$($P!"(B \"$B4A;z$+$J:.$8$jJ8$r%m!<%^;z$KJQ49(B\" -> \" kan'zi kana ma ziri bun' woro-ma zi ni hen'kan' \" `skk-romaji-*-by-hepburn' $B$,(B nil $B$G$"$l$P!"%m!<%^;z$X$NJQ49MM<0$r71Na<0$KJQ99$9(B $B$k!#Nc$($P!"(B\"$B$7(B\" $B$O%X%\%s<0$G$O(B \"shi\" $B$@$,!"71Na<0$G$O(B \"si\" $B$H$J$k!#(B" (interactive "r") (let ((arg '("-Ha" "-Ka" "-Ja" "-Ea" "-ka" "-s"))) (when skk-allow-spaces-newlines-and-tabs (setq arg (cons "-c" arg))) (unless skk-romaji-*-by-hepburn (setq arg (cons "-rk" arg))) (message "%s" (skk-kakasi-region start end arg)))) (defun skk-kakasi-region (start end arglist) ;; START $B$H(B END $B4V$NNN0h$KBP$7(B kakasi $B%3%^%s%I$rE,MQ$9$k!#(BARGLIST $B$r(B ;; kakasi $B$N0z?t$H$7$FEO$9!#(Bkakasi $B$N=PNO$rJV$9!#(B (unless (or skk-use-kakasi skk-kakasi-command) (skk-error "KAKASI $B$,%$%s%9%H!<%k$5$l$F$$$J$$$+!";HMQ$7$J$$@_Dj(B(%s)$B$K$J$C$F$$$^$9(B" "KAKASI was not installed, or %s is nil" "skk-use-kakasi")) ;; $BJ#?t<-=qBP1~(B (dolist (jisyo skk-gyakubiki-jisyo-list) (setq arglist (append arglist (list (expand-file-name jisyo))))) (let ((str (buffer-substring-no-properties start end))) ;; $BIQEY>pJs$r;H$C$F2?$+$*$b$7$m$$;H$$J}$,$G$-$k$+$J!)(B $B8=>u$G$O;H$C$F(B ;; $B$$$J$$!#(B ;;(hindo-file (skk-make-temp-file "skkKKS")) (with-temp-buffer ;; current buffer $B$,(B read-only $B$N$H$-$K(B current buffer $B$G(B call-process ;; $B$r8F$V$H(B destination buffer $B$rJL$K;XDj$7$F$$$F$b%(%i!<$K$J$k$N$G!"%j!<(B ;; $B%8%g%s$NJ8;zNs$r%o!<%/%P%C%U%!$KB`Hr$9$k!#(B (insert str) (unless (and (eq (apply 'call-process-region (point-min) (point) skk-kakasi-command ;; kakasi-2.2.5.hindo.diff $B$,Ev$C$F$$$k$H(B ;; $BI8=`%(%i!<=PNO$KIQEY>pJs$,=PNO$5$l$k!#(B 'delete-original-text ;;(list t hindo-file) '(t nil) nil (cons "-ieuc" (cons "-oeuc" arglist))) 0) (> (buffer-size) 0)) (skk-error "$BJQ49$G$-$^$;$s(B" "Cannot convert!")) (buffer-string)))) (run-hooks 'skk-kakasi-load-hook) (provide 'skk-kakasi) ;;; skk-kakasi.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-kcode.el000066400000000000000000000612301361774317600206230ustar00rootroot00000000000000;;; skk-kcode.el --- $BJ8;z%3!<%I$r;H$C$?JQ49$N$?$a$N%W%m%0%i%`(B -*- coding: iso-2022-jp -*- ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, ;; 1998, 1999, 2000 ;; Masahiko Sato ;; Copyright (C) 1998-2010 SKK Development Team ;; Author: Masahiko Sato ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'cl) (require 'skk-macs) (require 'skk-vars) (defvar enable-recursive-minibuffers) (defvar message-log-max)) (require 'skk-tankan) ;;;###autoload (defun skk-input-by-code-or-menu (&optional arg) "$BJQ?t(B `skk-kcode-method' $B$G;XDj$5$l$?5!G=$rMQ$$$FJ8;z$rA^F~$9$k!#(B" ;; `skk-rom-kana-base-rule-list' $B$,;X$7$F$$$k$N$O$3$N4X?t!#(B (interactive "*P") (let (list) (case skk-kcode-method (char-list (skk-list-chars arg)) (code-or-char-list (and (setq list (skk-input-by-code arg)) (skk-list-chars arg))) (this-key (insert (format "%s" (this-command-keys)))) (t (and (setq list (skk-input-by-code arg)) (insert (apply #'skk-input-by-code-or-menu-0 list)))))) (when (eq skk-henkan-mode 'active) (skk-kakutei))) (defun skk-input-by-code (&optional arg) "7/8 bit JIS $B%3!<%I(B $B$b$7$/$O(B $B6hE@HV9f$KBP1~$9$kJ8;z$rA^F~$9$k!#(B" (interactive "*P") (when arg (setq skk-kcode-charset (intern (completing-read "Character set: " '(("japanese-jisx0213-1") ("japanese-jisx0213-2") ("japanese-jisx0208")) nil t (symbol-name skk-kcode-charset))))) (let* ((enable-recursive-minibuffers t) (codestr (skk-kcode-read-code-string)) (list (skk-kcode-parse-code-string codestr)) (flag (nth 0 list)) (n1 (nth 1 list)) (n2 (nth 2 list)) (char (nth 3 list))) (cond ((> n1 160) (insert (skk-kcode-find-char-string flag n1 n2 char)) nil) (t (list n1 n2))))) (defun skk-kcode-read-code-string () (read-string (format (if skk-japanese-message-and-error "\ `%s' $B$NJ8;z$r;XDj$7$^$9!#(B7/8 $B%S%C%H(B JIS $B%3!<%I(B (00nn), $B6hE@%3!<%I(B (00-00),\ UNICODE (U+00nn), $B$^$?$O(B [RET] (%s): " "\ To find a character in `%s', type 7/8 bits JIS code (00nn),\ KUTEN code (00-00), UNICODE (U+00nn), or [RET] for %s: ") skk-kcode-charset (if (eq skk-kcode-method 'code-or-char-list) "char-list" "menu")))) (defun skk-kcode-parse-code-string (str) (let* ((list (split-string str "-")) (len (length list)) n1 n2 flag char) (cond ((eq len 2) ;; $B%O%$%U%s(B `-' $B$G6h@Z$i$l$?!V6h(B-$BE@!W(B (setq n1 (+ (string-to-number (nth 0 list)) 32 128) n2 (+ (string-to-number (nth 1 list)) 32 128))) ((eq len 3) ;; $B%O%$%U%s(B `-' $B$G6h@Z$i$l$?!VLL(B-$B6h(B-$BE@!W(B (setq flag (if (equal "2" (nth 0 list)) 'x0213-2 'x0213-1) n1 (+ (string-to-number (nth 1 list)) 32 128) n2 (+ (string-to-number (nth 2 list)) 32 128))) ((string-match "^[uU]\\+\\(.*\\)$" str) ;; `U+' $B$G;O$^$l$P%f%K%3!<%I(B (setq flag 'unicode n1 161 n2 0 char (string-to-number (match-string-no-properties 1 str) 16))) (t ;; $B>e5-0J30$O(B JIS $B%3!<%I$H$_$J$9(B (setq n1 (if (string= str "") 128 (+ (* 16 (skk-char-to-hex (aref str 0) 'jis)) (skk-char-to-hex (aref str 1)))) n2 (if (string= str "") 128 (+ (* 16 (skk-char-to-hex (aref str 2) 'jis)) (skk-char-to-hex (aref str 3))))))) ;; (when (or (> n1 256) (> n2 256)) (skk-error "$BL58z$J%3!<%I$G$9(B" "Invalid code")) (list flag n1 n2 char))) (defun skk-kcode-find-char-string (flag n1 n2 char) (case flag (x0213-1 (char-to-string (skk-make-char 'japanese-jisx0213-1 n1 n2))) (x0213-2 (char-to-string (skk-make-char 'japanese-jisx0213-2 n1 n2))) (unicode (char-to-string (if (fboundp 'ucs-representation-decoding-backend) (funcall #'ucs-representation-decoding-backend 'ucs char nil) char))) (t (skk-make-string n1 n2)))) (defun skk-char-to-hex (char &optional jischar) "CHAR $B$r(B 16 $B?J?t$H$_$J$7$F!"BP1~$9$k?tCM$r(B 10 $B?J?t$GJV$9!#(B" (cond ;; a(97) -- f(102) ((and (<= 97 char) (<= char 102)) (- char 87)) ; a $B$J$i(B 10 $B$,!"(Bf $B$J$i(B 15 $B$,JV$k!#(B ;; A(65) -- F(70) ((and (<= 65 char) (<= char 70)) (- char 55)) ; A $B$J$i(B 10 $B$,!"(BF $B$J$i(B 15 $B$,JV$k!#(B ;; 0(48) -- 9(57) ((and (<= 48 char) (<= char 57)) (if jischar (- char 40) ; 0 $B$J$i(B 8 $B$,!"(B9 $B$J$i(B 17 $B$,JV$k!#(B (- char 48))) ; 0 $B$J$i(B 0 $B$,!"(B9 $B$J$i(B 9 $B$,JV$k!#(B (t (skk-error "`%c' $B$r(B 16 $B?J?t$KJQ49$G$-$^$;$s(B" "Cannot convert `%c' to hexadecimal number" char)))) (defun skk-make-string (n1 n2) "`skk-kcode-charset' $B$,<($9J8;z=89g$K=>$C$F(B n1 n2 $B$KBP1~$9$k(B STRING $B$rJV$9(B" (char-to-string (skk-make-char skk-kcode-charset n1 n2))) ;; tiny function, but called once in skk-kcode.el. So not make it inline. (defun skk-make-char (charset n1 n2) (cond ((eval-when-compile (featurep 'xemacs)) (make-char charset (logand (lognot 128) n1) (logand (lognot 128) n2))) (t (make-char charset n1 n2)))) (defun skk-next-n2-code (n) (if (<= (setq n (1+ n)) skk-code-n2-max) n skk-code-n2-min)) (defun skk-previous-n2-code (n) (if (<= skk-code-n2-min (setq n (1- n))) n skk-code-n2-max)) (defun skk-next-n1-code (n) (if (<= (setq n (1+ n)) skk-code-n1-max) n skk-code-n1-min)) (defun skk-previous-n1-code (n) (if (<= skk-code-n1-min (setq n (1- n))) n skk-code-n1-max)) (defun skk-input-by-code-or-menu-0 (n1 n2) (if (= n1 skk-code-null) (skk-input-by-code-or-menu-jump n2) (skk-input-by-code-or-menu-1 n1 n2))) (defun skk-input-by-code-or-menu-jump (n) (let ((menu-keys1 (mapcar (lambda (char) ; $BI=<(MQ$N%-!<%j%9%H(B (skk-char-to-unibyte-string (upcase char))) skk-input-by-code-menu-keys1)) kanji-char) (when (< n skk-code-n1-min) (setq n skk-input-by-code-or-menu-jump-default)) (while (not kanji-char) (let ((n-org n) (chars (list (list (skk-make-string n skk-code-n1-min) n skk-code-n1-min) (list (skk-make-string n 177) n 177) (list (skk-make-string n 193) n 193) (list (skk-make-string n 209) n 209) (list (skk-make-string n 225) n 225) (list (skk-make-string n 241) n 241) (progn (setq n (skk-next-n1-code n)) (list (skk-make-string n skk-code-n1-min) n skk-code-n1-min)) (list (skk-make-string n 177) n 177) (list (skk-make-string n 193) n 193) (list (skk-make-string n 209) n 209) (list (skk-make-string n 225) n 225) (list (skk-make-string n 241) n 241)))) (skk-save-point (let ((i 0) message-log-max str) (while (< i 12) (setq str (concat str (propertize (nth i menu-keys1) 'face 'skk-henkan-show-candidates-keys-face) ":" (car (nth i chars)) (if (and skk-show-tooltip (= i 5)) "\n" " ")) i (1+ i))) (if skk-show-tooltip (funcall skk-tooltip-function str) (message "%s" str))) ;; (let* ((event (next-command-event)) (char (event-to-character event)) (key (skk-event-key event)) rest ch) (cond ((skk-key-binding-member key skk-quit-commands skk-j-mode-map) (signal 'quit nil)) ;; ((not (characterp char)) (skk-message "`%s' $B$OL58z$J%-!<$G$9!*(B" "`%s' is not valid here!" (or (key-description key) (key-description char))) (sit-for 1) (message "") (setq n n-org)) ;; ((setq rest (or (memq char skk-input-by-code-menu-keys1) (if (skk-lower-case-p char) (memq (upcase char) skk-input-by-code-menu-keys1) (memq (downcase char) skk-input-by-code-menu-keys1))) ch (if rest ;; 12 == (length skk-input-by-code-menu-keys1) (nth (- 12 (length rest)) chars) nil)) (setq kanji-char ch)) ;; ((or (skk-key-binding-member (skk-char-to-unibyte-string char) '(skk-previous-candidate)) (and (not skk-delete-implies-kakutei) (eq 'skk-delete-backward-char (lookup-key skk-j-mode-map (vector char))))) (when (< (setq n (- n-org 2)) skk-code-n1-min) (setq n skk-code-n1-max))) ;; ((eq char skk-start-henkan-char) ; space (setq n (skk-next-n1-code n))) ;; ((eq char ?\?) (skk-message "\ `%s' EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) [$B2?$+%-!<$r2!$7$F$/$@$5$$(B]" "\ `%s' EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) [Hit any key to continue]" (caar chars) n-org skk-code-n1-min n-org skk-code-n1-min (- n-org 128) (- skk-code-n1-min 128) (- n-org 128) (- skk-code-n1-min 128)) (next-command-event) (setq n n-org)) ;; (t (skk-message "`%c' $B$OL58z$J%-!<$G$9!*(B" "`%c' is not valid here!" char) (sit-for 1) (message "") (setq n n-org) nil)))))) (setq skk-input-by-code-or-menu-jump-default (cadr kanji-char)) (skk-input-by-code-or-menu-1 (cadr kanji-char) (car (cddr kanji-char))))) (defun skk-input-by-code-or-menu-1 (n1 n2) (let ((menu-keys2 (mapcar (lambda (char) ; $BI=<(MQ$N%-!<%j%9%H(B (skk-char-to-unibyte-string (upcase char))) skk-input-by-code-menu-keys2)) kanji-char) (while (not kanji-char) (let ((n1-org n1) (n2-org n2) (i 0) (chars (list (skk-make-string n1 n2)))) ;; 16 == (length skk-input-by-code-menu-keys2) (while (< i (1- 16)) (nconc chars (list (progn (setq n2 (skk-next-n2-code n2)) (if (= n2 skk-code-n2-min) (setq n1 (skk-next-n1-code n1))) (skk-make-string n1 n2)))) (setq i (1+ i))) (skk-save-point (let ((i 0) message-log-max str) (while (< i 16) (setq str (concat str (propertize (nth i menu-keys2) 'face 'skk-henkan-show-candidates-keys-face) ":" (nth i chars) (if (and skk-show-tooltip (= i 8)) "\n" " ")) i (1+ i))) (if skk-show-tooltip (funcall skk-tooltip-function str) (message "%s" str))) (let* ((event (next-command-event)) (char (event-to-character event)) (key (skk-event-key event)) rest ch) (cond ((skk-key-binding-member key skk-quit-commands skk-j-mode-map) (signal 'quit nil)) ((not (characterp char)) (skk-message "`%s' $B$OL58z$J%-!<$G$9!*(B" "`%s' is not valid here!" (or (key-description key) (key-description char))) (sit-for 1) (message "") (setq n1 n1-org n2 n2-org)) ((setq rest (or (memq char skk-input-by-code-menu-keys2) (if (skk-lower-case-p char) (memq (upcase char) skk-input-by-code-menu-keys2) (memq (downcase char) skk-input-by-code-menu-keys2))) ch (when rest ;; 16 == (length skk-input-by-code-menu-keys2) (nth (- 16 (length rest)) chars))) (setq kanji-char ch)) ((or (skk-key-binding-member (skk-char-to-unibyte-string char) '(skk-previous-candidate)) (and (not skk-delete-implies-kakutei) (eq 'skk-delete-backward-char (lookup-key skk-j-mode-map(vector char))))) (when (< (setq n2 (- n2 31)) skk-code-n2-min) (setq n2 (+ n2 94) n1 (skk-previous-n1-code n1)))) ;; ((eq char skk-start-henkan-char) ; space (if (= (setq n2 (skk-next-n2-code n2)) skk-code-n2-min) (setq n1 (skk-next-n1-code n1)))) ;; ((eq char ?\?) (skk-message "\ `%s' EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) [$B2?$+%-!<$r2!$7$F$/$@$5$$(B]" "\ `%s' EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d) [Hit any key to continue]" (car chars) n1-org n2-org n1-org n2-org (- n1-org 128) (- n2-org 128) (- n1-org 128) (- n2-org 128)) (next-command-event) (setq n1 n1-org n2 n2-org)) ;; ((eq char ?>) (if (= (setq n2 (skk-next-n2-code n2-org)) skk-code-n2-min) (setq n1 (skk-next-n1-code n1-org)) (setq n1 n1-org))) ;; ((eq char ?<) (if (= (setq n2 (skk-previous-n2-code n2-org)) skk-code-n2-max) (setq n1 (skk-previous-n1-code n1-org)) (setq n1 n1-org))) ;; (t (skk-message "`%c' $B$OL58z$J%-!<$G$9!*(B" "`%c' is not valid here!" char) (sit-for 1) (message "") (setq n1 n1-org n2 n2-org))))))) kanji-char)) ;;;###autoload (defun skk-display-code-for-char-at-point (&optional arg) "$B%]%$%s%H$K$"$kJ8;z$N6hE@HV9f!"(BJIS $B%3!<%I!"(BEUC $B%3!<%I!"%7%U%H(B JIS $B%3!<%I(B\ $B5Z$S%f%K%3!<%I$rI=<($9$k!#(B" (interactive) (cond ((not skk-display-code-method) (insert (format "%s" (this-command-keys)))) ((eobp) (skk-message "$B%+!<%=%k$,%P%C%U%!$N=*C<$K$"$j$^$9(B" "Cursor is at the end of the buffer")) (t (skk-display-code (following-char) (point)))) t) ; $B%(%3!<$7$?J8;zNs$r%+%l%s%H%P%C%U%!$KA^F~$7$J$$$h$&$K!#(B (defun skk-display-code (char p) (let ((charset (skk-char-charset char skk-charset-list)) mesg) (cond ((memq charset '(japanese-jisx0213-1 japanese-jisx0213-2 japanese-jisx0208 japanese-jisx0208-1978)) (let* ((char1-j (skk-char-octet char 0)) (char1-k (- char1-j 32)) (char1-e (+ char1-j 128)) (char2-j (skk-char-octet char 1)) (char2-k (- char2-j 32)) (char2-e (+ char2-j 128)) (sjis (if (eq charset 'japanese-jisx0213-2) (skk-jis2sjis2 char1-j char2-j) (skk-jis2sjis char1-j char2-j))) (char1-s (car sjis)) (char2-s (cadr sjis)) (char-data (skk-tankan-get-char-data char)) (anno (skk-tankan-get-char-annotation char)) (unicode (cond ((eval-when-compile (featurep 'emacs)) (concat ", " (propertize "UNICODE:" 'face 'skk-display-code-prompt-face) (format "U+%04x" char))) ((and (eval-when-compile (fboundp 'char-to-ucs)) (fboundp 'char-to-ucs) (char-to-ucs char)) (concat ", " (propertize "UNICODE:" 'face 'skk-display-code-prompt-face) (format "U+%04x" (char-to-ucs char)))) ;; Mule-UCS ((and (eval-when-compile (fboundp 'encode-char)) (fboundp 'encode-char) (encode-char char 'ucs)) (concat ", " (propertize "UNICODE:" 'face 'skk-display-code-prompt-face) (format "U+%04x" (encode-char char 'ucs)))) (t ""))) (composition (find-composition p nil nil t))) (setq mesg (concat (propertize (char-to-string char) 'face 'skk-display-code-char-face) "\t" (propertize "KUTEN:" 'face 'skk-display-code-prompt-face) (if (eq charset 'japanese-jisx0213-2) "(plane2)" "") (format "%02d-%02d, " char1-k char2-k) (propertize "JIS:" 'face 'skk-display-code-prompt-face) (format "#x%2x%2x, " char1-j char2-j) (propertize "EUC:" 'face 'skk-display-code-prompt-face) (format "#x%2x%2x, " char1-e char2-e) (propertize "SJIS:" 'face 'skk-display-code-prompt-face) (format "#x%2x%2x" char1-s char2-s) unicode (if composition (format " (Composed with U+%x)" (string-to-char (buffer-substring (1+ p) (nth 1 composition))))) (unless (zerop (nth 2 char-data)) (concat ", " (propertize (format "$BAm(B%d$B2h!J(B%s$BIt(B %d$B2h!K(B" (nth 2 char-data) (aref skk-tankan-radical-vector (nth 0 char-data)) (nth 1 char-data)) 'face 'skk-display-code-tankan-radical-face))) (if anno (concat ", " (propertize anno 'face 'skk-display-code-tankan-annotation-face))) )))) ;; ((memq charset '(ascii latin-jisx0201)) (setq mesg (concat (format "`%c', " char) (propertize "HEX:" 'face 'skk-display-code-prompt-face) (format "#x%2x, " (skk-char-octet char 0)) (propertize "DECIMAL:" 'face 'skk-display-code-prompt-face) (format "%3d" (skk-char-octet char 0))))) ;; ((eq (char-charset char) 'unicode) (setq mesg (format "UNICODE: U+%04x" char))) ;$BMW(Bmule-ucs(emacs22)$BBP1~(B ;; (t (setq mesg (format (if skk-japanese-message-and-error "$BJ8;z=89g(B %s $B$O%5%]!<%H$7$F$$$^$;$s(B" "%s character set is not supported") (char-charset char))))) ;; (cond ((and window-system skk-show-tooltip (not (eq (symbol-function 'skk-tooltip-show-at-point) 'ignore))) (skk-tooltip-show-at-point (replace-regexp-in-string ", " "\n\t" mesg) 'annotation)) (skk-show-candidates-always-pop-to-buffer (skk-annotation-show (replace-regexp-in-string ", " "\n\t" mesg))) (t (message "%s" mesg))))) (defun skk-jis2sjis (char1 char2) (let* ((ch2 (if (eq (* (/ char1 2) 2) char1) (+ char2 125) (+ char2 31))) (c2 (if (>= ch2 127) (+ ch2 1) ch2)) (ch1 (+ (/ (- char1 33) 2) 129)) (c1 (if (> ch1 159) (+ ch1 64) ch1))) (list c1 c2))) (defun skk-sjis2jis (char1 char2) (let* ((ch1 (if (<= char1 159) (+ (* (- char1 113) 2) 1) (+ (* (- char1 177) 2) 1))) (ch2 (if (> char2 127) (- char2 1) char2)) (c2 (if (>= ch2 158) (- ch2 125) (- ch2 31))) (c1 (if (> ch2 127) (+ ch1 1) ch1))) (list c1 c2))) ;; 2$BLL(B ;; XEmacs $B$G$N%(%i!<2sHr$N$?$a$K$3$N4X?t$r0l;~(B skk-emacs.el $B$KB`Hr$9$k!#(B ;; (autoload 'skk-jis2sjis2 "skk-emacs") (when (eval-when-compile (featurep 'xemacs)) (defalias 'skk-jis2sjis2 'ignore)) ;;;; skk-list-chars ;; TODO ;; o mode-line $B$K8=:_(B charset $B$rI=<($7$?$$(B ;; o $BA^F~@h$N%P%C%U%!(B skk-list-chars-destination-buffer $B$,B8:_$7$J$$>l9g$NBP=h(B ;; o $B%-! $B$G@hF,(B/$BKvHx$X(B (defun skk-list-chars-mode () "Major mode for skk-list-chars. \\{skk-list-chars-mode-map}" (kill-all-local-variables) (use-local-map skk-list-chars-mode-map) (setq mode-name "skk-list-chars" major-mode 'skk-list-chars-mode) (setq tab-width 4)) (defun skk-list-chars-sub (high charset) "Docstring." (let ((min 33) ;?\x21 (max 126) ;?\x7e i ch) (insert "\n" (propertize (format "%02d-#x--- 0-- 1-- 2-- 3-- 4-- 5-- 6-- 7-- 8-- 9-- A-- B-- C-- D-- E-- F" (- high 32)) 'face 'skk-list-chars-table-header-face)) (setq i (* (/ min 16) 16)) ; i $B$O(B $B2<0L%P%$%H(B (while (<= i max) ; 0x21 .. 0x7e (when (zerop (% i 16)) (insert (propertize (format "\n %5X0" (/ (+ (* high 256) i) 16)) 'face 'skk-list-chars-table-header-face))) (setq ch (if (< i min) 32 (or (make-char charset (/ (* high 256) 256) i) 32))) (insert "\t" (propertize (char-to-string ch) 'mouse-face 'highlight)) (setq i (1+ i))))) ;;;###autoload (defun skk-list-chars (arg) "$BJQ?t(B `skk-kcode-charset' $B$K=>$C$FJ8;z0lMw$rI=<($9$k(B. \\[universal-argument] $BIU$-$Gl9g(B (skk-kakutei)) (setq skk-list-chars-destination-buffer (current-buffer)) (set-buffer buf) (setq buffer-read-only nil) (erase-buffer) (set-buffer-multibyte t) (insert (format "Characters in the coded character set `%s'.\n" charset)) (dotimes (high 94) ; from ?\x21 to ?\x7e (skk-list-chars-sub (+ high 33) charset)) (pop-to-buffer buf) (search-backward (char-to-string char)) (setq skk-list-chars-point (point)) (put-text-property skk-list-chars-point (progn (forward-char) (point)) 'face 'skk-list-chars-face) (goto-char skk-list-chars-point) (set-buffer-modified-p nil) (setq buffer-read-only t) (skk-list-chars-mode) ;; (when skk-list-chars-default-charstr (skk-list-chars-move-to-charstr skk-list-chars-default-charstr)))) (defun skk-list-chars-quit () (interactive) (kill-buffer (current-buffer)) (set-window-configuration skk-list-chars-original-window-configuration)) (defun skk-list-chars-display-code () (interactive) (let ((c (following-char))) (if (eq 'ascii (car (split-char c))) ;; $B6h@Z$j9T$J$I$G(B $ $B$5$l$?>l9g(B (next-completion 1) (skk-display-code c (point))))) (defun skk-list-chars-copy () (interactive) (unless (eobp) (message "`%s' copied." (kill-new (char-to-string (following-char)))))) (defun skk-list-chars-next-line () (interactive) (let ((col (current-column))) (when (< col 8) (setq col 8)) (unless (zerop (mod col 4)) (setq col (- col 2))) (forward-line) (move-to-column col) (when (eq 'ascii (car (split-char (following-char)))) (forward-line) (move-to-column col) (when (eq 'ascii (car (split-char (following-char)))) (forward-line) (move-to-column col))))) (defun skk-list-chars-previous-line () (interactive) (let ((col (current-column))) (when (< col 8) (setq col 8)) (unless (zerop (mod col 4)) (setq col (- col 2))) (if (< (count-lines (point-min) (point)) 5) (progn (goto-char (point-min)) (search-forward (char-to-string (make-char skk-kcode-charset 33 33))) (move-to-column col)) (forward-line -1) (move-to-column col) (when (eq 'ascii (car (split-char (following-char)))) (forward-line -1) (move-to-column col) (when (eq 'ascii (car (split-char (following-char)))) (forward-line -1) (move-to-column col)))))) (defun skk-list-chars-goto-point () (interactive) (goto-char skk-list-chars-point)) (defun skk-list-chars-insert () (interactive) (when (buffer-live-p skk-list-chars-destination-buffer) (if (eobp) (forward-char -1) (if (eq 'ascii (car (split-char (following-char)))) ;; $B6h@Z$j9T$J$I$G(B RET $B$5$l$?>l9g(B (next-completion 1) (let ((c (following-char))) (set-buffer skk-list-chars-destination-buffer) (insert c) (setq skk-list-chars-default-charstr (char-to-string c))))))) (defun skk-list-chars-other-charset () (interactive) (setq skk-kcode-charset (intern-soft (completing-read "Character set: " '(("japanese-jisx0213-1") ("japanese-jisx0213-2") ("japanese-jisx0208")) nil t (symbol-name skk-kcode-charset)))) (skk-list-chars-quit) (skk-list-chars nil)) (defun skk-list-chars-code-input () (interactive) (skk-list-chars-jump 'insert)) (defun skk-list-chars-jump (&optional insert) (interactive) (let ((code (skk-kcode-read-code-string)) str) (unless (string= code "") (setq str (skk-list-chars-find-char-string-for-code code)) (when str (when insert (save-current-buffer (set-buffer skk-list-chars-destination-buffer) (insert str)) (setq skk-list-chars-default-charstr str)) (skk-list-chars-move-to-charstr str))))) (defun skk-list-chars-move-to-charstr (charstr) (when (memq (skk-char-charset (string-to-char charstr) skk-charset-list) (list 'japanese-jisx0208 skk-kcode-charset)) (goto-char (point-min)) (let ((case-fold-search nil)) (search-forward charstr nil t)) (forward-char -1))) (defun skk-list-chars-find-char-string-for-code (code) (let ((list (skk-kcode-parse-code-string code))) (if (> (nth 1 list) 160) (apply #'skk-kcode-find-char-string list) nil))) (run-hooks 'skk-kcode-load-hook) (provide 'skk-kcode) ;;; skk-kcode.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-leim.el000066400000000000000000000043501361774317600204640ustar00rootroot00000000000000;;; skk-leim.el --- SKK related code for LEIM ;; Copyright (C) 1997, 1999, 2000 ;; Murata Shuuichirou ;; Author: Murata Shuuichirou ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars)) ;;;###autoload (defun skk-activate (&optional name) (skk-set-deactivate-im-func 'skk-inactivate) (skk-mode 1) (when (eq (selected-window) (minibuffer-window)) (add-hook 'minibuffer-exit-hook 'skk-leim-exit-from-minibuffer))) ;;;###autoload (defun skk-auto-fill-activate (&optional name) (skk-set-deactivate-im-func 'skk-auto-fill-inactivate) (skk-auto-fill-mode 1) (when (eq (selected-window) (minibuffer-window)) (add-hook 'minibuffer-exit-hook 'skk-leim-exit-from-minibuffer))) ;;;###autoload (defun skk-inactivate () (skk-mode -1)) ;;;###autoload (defun skk-auto-fill-inactivate () (skk-auto-fill-mode -1)) (defun skk-leim-exit-from-minibuffer () (skk-deactivate-input-method) (when (<= (minibuffer-depth) 1) (remove-hook 'minibuffer-exit-hook 'skk-leim-exit-from-minibuffer))) ;;;###autoload (register-input-method "japanese-skk" "Japanese" 'skk-activate "" "Simple Kana to Kanji conversion program") ;;;###autoload (register-input-method "japanese-skk-auto-fill" "Japanese" 'skk-auto-fill-activate "" "Simple Kana to Kanji conversion program with auto-fill") (provide 'skk-leim) ;;; skk-leim.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-look.el000066400000000000000000000276471361774317600205200ustar00rootroot00000000000000;;; skk-look.el --- UNIX look command interface for SKK -*- coding: iso-2022-jp -*- ;; Copyright (C) 1998, 1999, 2000 NAKAJIMA Mikio ;; Author: NAKAJIMA Mikio ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; ;; ~/.skk $B$+(B ~/.emacs.d/init.el $B$G(B `skk-use-look' $B$r(B t $B$K%;%C%H$7$F$3$l$r(B ;; $BI>2A$7$F2<$5$$!#$=$N8e(B skk-mode $B$rN)$A>e$2$k$+!"(BM-x skk-restart $B$9$k$H!"(B ;; $B2<5-$N$h$&$J7]Ev$,2DG=$K$J$j$^$9!#(B ;; ;; (1)$B1QC18l$rJd40$,$G$-$^$9!#(B ;; ;; $B"&(Babstr(TAB) ---> $B"&(Babstract ;; ;; $BDL>o$NJd405!G=F1MM!"(B`.' $B$G $B"'(Babstract ;; ;; $B8+=P$78l$K%"%9%?%j%9%/(B (`*') $B$rF~$l$k$N$r$*K:$l$J$/!#(B ;; ;; $B3NDj$9$k$H!"(B`abstr*' $B$r8+=P$78l!"(B`abstract' $B$r8uJd$H$9$k%(%s%H%j$,8D?M<-(B ;; $B=q$KDI2C$5$l$^$9!#$3$N$h$&$J%(%s%H%j$rDI2C$7$?$/$J$$>l9g$O!"(B ;; $B%f!<%6!\$7$/$O!"(B ;; `skk-search-excluding-word-pattern-function' $B$N%I%-%e%a%s%H$r$4Mw2<$5$$!#(B ;; ;; (3)(2)$B$GJQ49$7$?8e!"99$K:F5"E*$J1QOBJQ49$r9T$&$3$H$,$G$-$^$9!#(B ;; ;; $B$^$:!"(B`skk-look-recursive-search' $B$NCM$r(B non-nil $B$K%;%C%H$7$F2<$5(B ;; $B$$!#(BEmacs/SKK $B$r:F5/F0$9$kI,MW$O$"$j$^$;$s!#(B ;; ;; $B$9$k$H!"Nc$($P!"(B ;; ;; $B"&(Babstr* (SPC) ;; ;; ---> $B"'(Babstract (SPC) -> $B"'%"%V%9%H%i%/%H(B (SPC) -> $B"'Cj>](B (SPC) ;; -> $B"'(Babstraction (SPC) -> $B"'%"%V%9%H%i%/%7%g%s(B ;; ;; $B$3$N$h$&$K1QC18l(B + $B$=$N1QC18l$r8+=P$78l$K$7$?8uJd$N!V%;%C%H!W$rJQ49(B ;; $B7k2L$H$7$F=PNO$9$k$3$H$,$G$-$^$9!#(B ;; ;; $B$3$N:]!"(B`skk-look-expanded-word-only' $B$NCM$,(B non-nil $B$G$"$l$P!":F5"(B ;; $B8!:w$K@.8y$7$?1QC18l$N!V%;%C%H!W$@$1$r=PNO$9$k$3$H$,$G$-$^$9(B ($B:F5"(B ;; $B8!:w$G8!=P$5$l$J$+$C$?1QC18l$OL5;k$7$F=PNO$7$^$;$s(B) $B!#(B ;; ;; $B$b$A$m$s!"(BSKK $B<-=q$K(B ;; ;; abstract /$B%"%V%9%H%i%/%H(B/$BCj>](B/ ;; abstraction /$B%"%V%9%H%i%/%7%g%s(B/ ;; ;; $B$H$$$&%(%s%H%j$,$"$k$3$H$rA0Ds$H$7$F$$$^$9!#(Bedict $B$r(B SKK $B<-=q7A<0$K(B ;; $BJQ49$9$k$HNI$$$G$9$M!#(B ;; ;; $BF0:n$r3NG'$7$?(B look $B$O!"(BSlackware 3.5 $B$KF~$C$F$$$?!"(Bman page $B$K(B ;; `BSD Experimental June 14, 1993' $B$H5-:\$N$"$k$b$N(B ($B%P!<%8%g%s>pJs$,$J$$(B) ;; $B$G$9!#%*%W%7%g%s$N;XDj$J$I$,0[$J$k(B look $B$,$"$l$P!"$40lJs2<$5$$!#(B ;; $B$h$m$7$/$*4j$$$$$?$7$^$9!#(B ;; ;; ftp://ftp.u-aizu.ac.jp:/pub/SciEng/nihongo/ftp.cc.monash.edu.au/ ;; $B$KCV$$$F$"$k(B edict $B$rMxMQ$9$k$H temp ;; % skkdic-expr temp | skkdic-sort > SKK-JISYO.E2J ;; % rm temp ;; ;; $B$G$-$?(B SKK-JISYO.E2J $B$NMxMQJ}K!$O?'!9$"$j$^$9$,!"(B ;; ;; % skkdic-expr SKK-JISYO.E2J + /usr/local/share/skk/SKK-JISYO.L\ ;; | skkdic-sort > SKK-JISYO.L ;; ;; $B$J$I$H$7$F!"(BSKK-JISYO.L $B$H%^!<%8$7$F;H$&$N$, ;; $B$3$N%W%m%0%i%`$O!"(BeWnn for Linux/FreeBSD $B$N9-9p$KN`;w$N5!G=>R2p$,$"$C$?$N$r(B ;; $B8+$F!"!V$3$s$J5!G=$J$i(B SKK $B>e$K$9$0%$%s%W%j%a%s%H$G$-$k$5!W$H;W$&$H$?$^$i$/(B ;; $B$J$C$F=q$$$F$7$^$$$^$7$?!#(BeWnn $B$KIi$1$k$J!"(BSKK! ;; ;; $B@N!"(BSeiichi Namba $B$5$s$H0l=o$K(B Emacs Lisp $B$G(B ;; look interface $B$r=q$$$?$3$H$,$"$k$N$G$9$,!":#2s$O$=$N:]$N7P83$r@8$+$9$3$H$,(B ;; $B$G$-$^$7$?!#FqGH$5$s$K46\$7$/$O(B skk-look.el $B%U%!%$%k$N%3%a%s%H$d(B Info $B$r;2>H$N;v!#(B CONVERSION-ARGUMENTS $B$O(B `skk-look-conversion-arguments' $B$r(B $B0l;~E*$KCV$-49$($?$$;~$K;XDj$9$k!#(B $B%G%U%)%k%H$G$O(B SKK abbrev $B%b!<%I$N$_$GM-8z$J5!G=$@$,!"(B NOT-ABBREV-ONLY $B$r;XDj$9$k;v$G>o$KM-8z$H$J$k!#(B EXPAND-NULL $B$r;XDj$9$k$H!"F~NO$,(B \"*\" $B$N$_$N;~$O(B words $B%U%!%$%k$K$"$kA4$F$N8+=P$7$,BP>]$H$J$k!#(B `skk-look-recursive-search', `skk-look-expanded-word-only', `skk-look-use-ispell' $B$r0l;~E*$KJQ99$7$?$$>l9g$K$O(B `let' $B$K$h$jB+G{$7$F;H$&;v!#(B" (when (and (not (memq skk-use-look '(nil completion))) (or not-abbrev-only skk-abbrev-mode) (or expand-null (not (string= skk-henkan-key "*"))) (eq (aref skk-henkan-key (1- (length skk-henkan-key))) ?*)) (let* ((skk-look-conversion-arguments (or conversion-arguments skk-look-conversion-arguments)) (substr (substring skk-henkan-key 0 (1- (length skk-henkan-key)))) (v (if (and (not (memq skk-look-use-ispell '(nil completion))) (> (length substr) 0)) (skk-look-ispell substr 'conversion) (skk-look-1 substr 'conversion))) skk-henkan-key skk-use-look v2 v3) (cond ((not skk-look-recursive-search) v) (t (dolist (key v) (let ((skk-current-search-prog-list (copy-sequence skk-search-prog-list))) (setq skk-henkan-key key) (while skk-current-search-prog-list (setq v3 (let (skk-use-numeric-conversion) (skk-search)) v2 (if (or (not skk-look-expanded-word-only) v3) (skk-nunion v2 (cons key v3)) v2))))) v2))))) (defun skk-look-1 (word situation) ;; core search engine (let ((format-string (cond ((eq situation 'conversion) skk-look-conversion-arguments) ((eq situation 'completion) skk-look-completion-arguments) (t "%s"))) args preargs postargs) (if (string= format-string "%s") (setq args (list word)) (save-match-data (when (string-match "%s" format-string) (setq preargs (substring format-string 0 (match-beginning 0)) postargs (substring format-string (match-end 0)) args (append (delete "" (split-string preargs " ")) (list word) (delete "" (split-string postargs " "))))))) (with-temp-buffer (when (and (zerop (apply #'call-process skk-look-command nil t nil args)) (> (buffer-size) 0)) (delete word (split-string (buffer-substring-no-properties (point-min) (1- (point-max))) "\n")))))) ;;;###autoload (defun skk-look-completion (&optional completion-arguments not-abbrev-only expand-null) "look $B%3%^%s%I$rMxMQ$7$FJd408uJd$rF@$k!#(B COMPLETION-ARGUMENTS $B$O(B `skk-look-completion-arguments' $B$r(B $B0l;~E*$KCV$-49$($?$$;~$K;XDj$9$k!#(B $B%G%U%)%k%H$G$O(B SKK abbrev $B%b!<%I$N$_$GM-8z$J5!G=$@$,!"(B NOT-ABBREV-ONLY $B$r;XDj$9$k;v$G>o$KM-8z$H$J$k!#(B EXPAND-NULL $B$r;XDj$9$k$H!"F~NO$,6u$G$"$k;~$K(B words $B%U%!%$%k$K$"$kA4$F$N8+=P$7$rJV$9!#(B `skk-look-use-ispell' $B$r0l;~E*$KJQ99$7$?$$>l9g$K$O(B `let' $B$K$h$jB+G{$7$F;H$&;v!#(B" (let* ((numericp (and skk-use-numeric-conversion (save-match-data (string-match "[0-9$B#0(B-$B#9(B]" skk-comp-key)))) (conv-key (and numericp (skk-num-compute-henkan-key skk-comp-key))) (comp-key (or conv-key skk-comp-key)) word) (when (and (not (memq skk-use-look '(nil conversion))) (or not-abbrev-only skk-abbrev-mode) (or expand-null (not (string= comp-key "")))) (let ((skk-look-completion-arguments (or completion-arguments skk-look-completion-arguments))) (when skk-comp-first ;; look $B$OJ#?t$N8uJd$rEG$/$N$G!"0lC6Cy$a$F$*$$$F!"(B ;; $B0l$D$:$D(B complete $B$9$k!#(B (setq skk-look-completion-words (if (and (not (memq skk-look-use-ispell '(nil conversion))) (> (length comp-key) 0)) (skk-look-ispell comp-key 'completion) (skk-look-1 comp-key 'completion)))) (setq word (pop skk-look-completion-words)) (when (and skk-comp-use-prefix (not (string= skk-comp-prefix ""))) (save-match-data (let ((regexp-key (concat "^" (regexp-quote comp-key) (skk-comp-get-regexp skk-comp-prefix)))) (while (and word (not (string-match regexp-key word))) (setq word (pop skk-look-completion-words)))))) (when word (if numericp (concat skk-comp-key (substring word (length comp-key))) word)))))) ;;;###autoload (defun skk-look-ispell (word &optional situation) (require 'ispell) (ispell-accept-buffer-local-defs) (message "") (process-send-string ispell-process "%\n") ;put in verbose mode (process-send-string ispell-process (concat "^" word "\n")) (while (progn (accept-process-output ispell-process) (not (string= "" (car ispell-filter))))) (setq ispell-filter (cdr ispell-filter)) ; remove extra \n (let ((poss (when (and ispell-filter (listp ispell-filter)) ;; 1: t for an exact match. ;; 2: A string containing the root word matched via suffix ;; removal. ;; 3: A list of possible correct spellings of the format: ;; (ORIGINAL-WORD OFFSET MISS-LIST GUESS-LIST) ;; ORIGINAL-WORD is a string of the possibly misspelled ;; word. ;; OFFSET is an integer giving the line offset of the word. ;; MISS-LIST and GUESS-LIST are possibly null lists of ;; guesses and misses. ;; 4: Nil when an error has occurred." (or (ispell-parse-output (car ispell-filter)) 'error))) ret var) (setq ispell-filter nil) (cond ((eq poss 'error) (skk-message "ispell process $B$G%(%i!<$,H/@8$7$^$7$?(B" "error in ispell process") (sit-for 1) (message "") nil) ((or (eq poss t) ;; root word $B$KBP$7$F(B skk-look-1 $B$+$1$A$c$*$&$+!)(B ;; $B$G$b$A$C$H$bJd40$B$c$J$/$J$C$A$^$$$^$9$M(B... (^^;;$B!#(B (stringp poss) (null (or (nth 2 poss) (nth 3 poss)))) (skk-look-1 word situation)) (t (setq var (nconc (nth 2 poss) (nth 3 poss))) (dolist (key var) ;; call look command by each candidate put out by ispell. (setq ret (skk-nunion ret (cons key (skk-look-1 key situation))))) (delete word (skk-nunion (skk-look-1 word situation) ret)))))) (provide 'skk-look) ;;; skk-look.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-lookup.el000066400000000000000000000427411361774317600210550ustar00rootroot00000000000000;;; skk-lookup.el --- SKK lookup gateway -*- coding: iso-2022-jp -*- ;; Copyright (C) 1999, 2000, 2001 NAKAJIMA Mikio ;; Author: NAKAJIMA Mikio ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; Created: Sep. 23, 1999 ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary ;; Keisuke Nishida $B$5$s$N:n$i$l$?<-=q8!:w%D!<%k(B ;; Lookup $B$H(B SKK $B$H$N(B gateway $B$r9T$$!"(BLookup $B$G8!:w$G$-$k<-=q$r;H$C(B ;; $B$F8uJd$r=PNO$9$k%W%m%0%i%`$G$9!#(B ;; ;; ;; make $B$r ;; $BEvA3$G$9$,!"(BLookup $B$,%$%s%9%H!<%k$5$l$F$$$F!"$+$D!"BP1~$9$k<-=q$,(B ;; $B%^%&%s%H$5$l$F$$$J$$$H;H$($^$;$s!#(B ;; ;; $BJF2(B $B%K%e!<%;%s%A%e%j!<1QOB!&?7%/%i%&%sOB1Q<-E5(B ;; "GENIUS" ; $B%8!<%K%"%91QOB(B, $B%8!<%K%"%91QOB!&OB1Q<-E5(B ;; "GN99EP01" ;Super$BE}9g<-=q(B99 Disk1/$B8=BeMQ8l$N4pACCN<1(B ;; "GN99EP02" ;Super$BE}9g<-=q(B99 Disk2/$B8=BeMQ8l$N4pACCN<1(B ;; "IWAKOKU" ;$B4dGH9q8l<-E5(B ;; "KANJIGEN"; Super$BE}9g<-=q(B99 Disk2/$B4A;z8;(B : EPWING ;; "KANWA"; ;; "KOJIEN" ; $B9-<-1qBh(B5$BHG(B($B4dGH(B,EPWING) ;; "KOKUGO" ;$B;0>JF2(B $BF|K\8l<-E5!J8=Be9q8l!"30Mh8l!K(B ;; "KOUJIEN"; $B9-<-1qBh(B4$BHG(B($B4dGH(B,EPWING) $B%^%k%A%a%G%#%"HG(B ;; "MYPAEDIA" ;$B!V<-!&E5!&HW!WImB0$N%^%$%Z%G%#%"(B ;; ; mypaedia-fpw $B$+$i@8@.$7$?(B PC Success $BHG%^%$%Z%G%#%"(B ;; (FreePWING $B<-=q(B) ;; "NEWANC" ; $B%K%e!<%"%s%+!<1QOB(B ;; "PLUS"; ;; "RIKAGAKU" ;$BM}2=3X<-E5(B ;; "WAEI"; ;; "ispell"; ;; "jedict"; ;; ;; $B$4<+J,$G;HMQ$7$F$$$k<-=q$N=PNO$,>e2A$7$F(B ("$B$3$7$g$&(B" $B$NJ8;zNsItJ,$OLdBj$H$J$C$F$$$k8!:wBP>]$H(B ;; $BF~$lBX$($^$7$g$&(B) `lookup-dictionary-name' $B$H(B ;; `lookup-entry-heading' $B$,JV$9CM$r;29M$K!"(B`skk-lookup-option-alist' ;; $B$KI,MW$J%j%9%H$r2C$($^$7$g$&!#?7$?$J%j%9%H$r2C$($i$l$?$i@'Hs(B ;; skk@ring.gr.jp $B08$F$KCN$;$F2<$5$$!#(Bdefault value $B$K $B$5$s!"3+H/$N=i4|(B ;; $B$+$i%G%P%C%0$r $B$5$s!"(Bsphere $B$5(B ;; $B$s$K?<$/46' is put out. ;;(lookup-enable-gaiji nil) (lookup-gaiji-alternate "") (henkan-key skk-henkan-key) okuri-process v) (cond ((not (or skk-henkan-okurigana skk-okuri-char)) ;; okuri-nasi (setq okuri-process 0)) ;; okuri-ari and `skk-lookup-process-henkan-key-function' is non-nil. (skk-lookup-process-henkan-key-function (setq v (funcall skk-lookup-process-henkan-key-function henkan-key) henkan-key (car v) okuri-process (cdr v))) ;; okuri-ari and (not skk-process-okuri-early) (skk-henkan-okurigana ;; $BAw$j2>L>$N$+$J(B prefix $B$rL>$rB-$7$F(B lookup $B$KEO$9!#(B (setq henkan-key (concat (substring henkan-key 0 (1- (length henkan-key))) skk-henkan-okurigana) okuri-process 1)) ;; okuri-ari and skk-process-okuri-early (skk-okuri-char ;; $BAw$j2>L>$N$+$J(B prefix $B$r$-!Z??LZ!&(B(GAIJI)$B!&Kj![(B' ;; As GAIJI cannot be processed by skk-lookup.el, the heading ;; is equal to `$B$^!>$-!Z??LZ!&!&Kj![(B' for skk-lookup.el. ;; It causes to produce a null string candidate. ;; (split-string "$B??LZ!&!&Kj(B" "$B!&(B") -> ("$B??LZ(B" "" "$BKj(B") ;; So return nil if STRING is a null string. nil) ;; okuri-nasi ((zerop process-type) string) ;; okuri-ari (t (let* ((okuri-length (cond ;; has `skk-henkan-okurigana'. ((= process-type 1) (length skk-henkan-okurigana)) ;; `skk-process-okuri-early' is non-nil. ((= process-type 2) ;; don't know exactly how long okurigana is. ;; truncate length of one character anyway. 1))) (okurigana (and (> (length string) okuri-length) (substring string (- okuri-length))))) (cond ( ;; cannot detect okurigana in STRING. (not okurigana) nil) (skk-henkan-okuri-strictly (and (string= skk-henkan-okurigana okurigana) ;; cut okurigana off. (substring string 0 (- okuri-length)))) ;; `skk-process-okuri-early' or not `skk-henkan-okuri-strictly'. ((string= (skk-okurigana-prefix okurigana) skk-okuri-char) ;; cut okurigana off. (substring string 0 (- okuri-length)))))))) (defun skk-lookup-process-heading (name heading okuri-process-type) ;; heading $B$7$+$K$b>pJs$rH$9$k$+!)(B (save-match-data (do* ((pickup (skk-lookup-get-pickup-regexp name)) (pickup-regexp (if (consp pickup) (car pickup))) (match (if (consp pickup) (cdr pickup) 1)) (split-regexp (skk-lookup-get-split-regexp name)) (cleanup-regexp (skk-lookup-get-cleanup-regexp name)) (candidates-list (if (not pickup) (list heading))) candidates-string) ;; `$B$@$7!Z=P$7![!Z=P$7!&!R=P=A!S![!Z!P;3l9g(B ;; $B$,$"$k$N$G%k!<%W$G:n6H$9$k!#(B ((or (string= heading "") (and pickup-regexp (not (string-match pickup-regexp heading)))) candidates-list) (setq match (eval match)) (cond ((and pickup-regexp (listp match)) (setq candidates-string (mapconcat (lambda (num) (match-string-no-properties num heading)) match "") ;; XXX MATCH $B$,J#?t$@$C$?$i!"(Bheading $B@Z$j=P$7$O(B ;; $B0lEY$@$1$7$+$G$-$J$$(B...$B!#(B heading "")) (pickup-regexp (setq candidates-string (match-string-no-properties match heading) heading (substring heading (min (1+ (match-end match)) (length heading))))) (t ;; XXX never be used? (setq candidates-string heading heading ""))) (when cleanup-regexp (while (string-match cleanup-regexp candidates-string) (setq candidates-string (concat (substring candidates-string 0 (match-beginning 0)) (substring candidates-string (match-end 0)))))) (cond (split-regexp (lookup-foreach (lambda (c) (unless (string= lookup-search-pattern c) (setq c (skk-lookup-process-okurigana c okuri-process-type)) (when c (setq candidates-list (cons c (delete c candidates-list)))))) (split-string candidates-string split-regexp))) ((string= lookup-search-pattern candidates-string) nil) (t (setq candidates-string (skk-lookup-process-okurigana candidates-string okuri-process-type)) (when candidates-string (setq candidates-list (cons candidates-string (delete candidates-string candidates-list))))))))) ;; The following four functions were imported from lookup.el and ;; lookup-types.el. (defun skk-lookup-default-module () (or skk-lookup-default-module (setq skk-lookup-default-module (car (skk-lookup-module-list))))) (defun skk-lookup-module-list () (or skk-lookup-module-list (setq skk-lookup-module-list (mapcar 'skk-lookup-new-module (or skk-lookup-search-modules '(("%SKK-EVERY" ""))))))) (defun skk-lookup-new-module (spec) (let ((name (car spec)) (id-list (cdr spec)) module agents match start) ;; get agent list (lookup-foreach (lambda (id) ;; get the list of agents matched with ID (setq match (concat "^" (regexp-quote id)) start agents) (lookup-foreach (lambda (e) (when (string-match match (lookup-agent-id e)) (setq agents (cons e agents)))) (skk-lookup-agent-list)) (when (eq start agents) (error "No match agent: %s" id))) ;; get a list of agent-IDs (lookup-nunique (mapcar (lambda (id) (string-match "^[^:]*" id) (substring id 0 (match-end 0))) id-list))) (setq agents (nreverse (lookup-nunique agents 'eq))) ;; construct module (setq module (lookup-make-module name nil)) (lookup-module-put-property module 'agents agents) (lookup-module-put-property module 'id-list id-list) (lookup-module-init module))) (defun skk-lookup-agent-list () (or skk-lookup-agent-list (progn (unless skk-lookup-search-agents ;; copy-list is a C primitive of XEmacs, but FSFmacs has it ;; in cl.el. (setq skk-lookup-search-agents (let ((agents (copy-sequence lookup-search-agents)) e) ;; use `skk-kakasi.el' instead of ndkks. (setq agents (delete '(ndkks) agents)) (while (setq e (assq 'ndcookie agents)) (setq agents (delq e agents))) (while (setq e (assq 'ndnmz agents)) (setq agents (delq e agents))) agents))) (setq skk-lookup-agent-list (mapcar 'lookup-new-agent skk-lookup-search-agents))))) ;; the following two are to check dictionary output of heading for ;; creating new regexp. (defun skk-lookup-test-regexp (regexp place string) "Search STRING by REGEXP and pick up a part of STRING in PLACE." (string-match regexp string) (match-string-no-properties place string)) (defun skk-lookup-pickup-headings (pattern method) "Search PATTERN by METHOD. METHOD $B$OJQ?t(B`lookup-search-methods'$B$r;2>H$N$3$H(B." (let ((module (skk-lookup-default-module)) (lookup-gaiji-alternate "") ;;lookup-enable-gaiji ; not to put out gaiji. var) (lookup-module-setup module) (lookup-foreach (lambda (dictionary) (lookup-foreach (lambda (entry) (setq var (nconc (list (list (lookup-dictionary-name dictionary) (lookup-dictionary-id dictionary) (lookup-entry-heading entry) ;;(lookup-dictionary-command dictionary 'content entry) )) var))) (lookup-vse-search-query dictionary (lookup-make-query method pattern)))) (lookup-module-dictionaries module)) var)) (defun skk-lookup-map-prefix-and-kana () (let ((lenv (length skk-lookup-kana-vector)) (n 0) kana prefix prefix-kana alist) (while (> lenv n) (setq kana (aref skk-lookup-kana-vector n) prefix (aref skk-kana-rom-vector n) prefix-kana (assoc prefix alist) n (1+ n)) (if prefix-kana (setcdr prefix-kana (cons kana (cdr prefix-kana))) (setq alist (cons (cons prefix (list kana)) alist)))) alist)) ;; ;; (defun skk-lookup-get-content-setup-dic () (interactive) (let ((module (skk-lookup-default-module))) (lookup-module-setup module) (setq skk-lookup-get-content-default-dic-name (lookup-dictionary-name (setq skk-lookup-get-content-default-dic (nth skk-lookup-get-content-nth-dic (lookup-module-dictionaries module)))))) (message "skk-lookup-get-content: %s" skk-lookup-get-content-default-dic-name)) ;;;###autoload (defun skk-lookup-get-content (word &optional listing-p) (unless skk-lookup-get-content-default-dic (skk-lookup-get-content-setup-dic)) (let* ((query (lookup-vse-search-query skk-lookup-get-content-default-dic (lookup-make-query 'exact word))) (content (if query (lookup-dictionary-command skk-lookup-get-content-default-dic 'content (car query)) nil))) (when content (setq content (replace-regexp-in-string "<[^>]*>" "" (if listing-p (nth 1 (split-string content "\n")) content)) content (format "%s [%s]" content skk-lookup-get-content-default-dic-name))) content)) (provide 'skk-lookup) ;;; skk-lookup.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-macs.el000066400000000000000000001107471361774317600204710ustar00rootroot00000000000000;;; skk-macs.el --- macros and inline functions commonly used in SKK -*- coding: iso-2022-jp -*- ;; Copyright (C) 1999-2010 SKK Development Team ;; Copyright (C) 1993-2000 Free Software Foundation, Inc. ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (defvar mule-version) (defvar skk-emacs-modeline-property)) (eval-when-compile (require 'advice)) (eval-and-compile (require 'skk-vars)) ;;;; macros (defmacro skk-defadvice (function &rest everything-else) "Defines a piece of advice for FUNCTION (a symbol). This is like `defadvice', but warns if FUNCTION is a subr command and advice doesn't give arguments of `interactive'. See `interactive' for details." (let ((origfunc (and (fboundp function) (if (ad-is-advised function) (ad-get-orig-definition function) (symbol-function function)))) interactive) (unless (or (not origfunc) (not (subrp origfunc)) (memq function ; XXX possibilly Emacs version dependent ;; built-in commands which do not have interactive specs. '(abort-recursive-edit bury-buffer delete-frame delete-window exit-minibuffer))) ;; check if advice definition has a interactive call or not. (setq interactive (cond ((and (stringp (nth 1 everything-else)) ; have document (eq 'interactive (car-safe (nth 2 everything-else)))) (nth 2 everything-else)) ((eq 'interactive (car-safe (nth 1 everything-else))) (nth 1 everything-else)))) (cond ((and (commandp origfunc) (not interactive)) (message "\ *** WARNING: Adding advice to subr %s\ without mirroring its interactive spec ***" function)) ((and (not (commandp origfunc)) interactive) (setq everything-else (delq interactive everything-else)) (message "\ *** WARNING: Deleted interactive call from %s advice\ as %s is not a subr command ***" function function)))) `(defadvice ,function ,@everything-else))) ;;;###autoload (put 'skk-defadvice 'lisp-indent-function 'defun) (def-edebug-spec skk-defadvice defadvice) (defmacro skk-save-point (&rest body) `(let ((skk-save-point (point-marker))) (unwind-protect (progn ,@body) (goto-char skk-save-point) (skk-set-marker skk-save-point nil)))) (def-edebug-spec skk-save-point t) (defmacro skk-message (japanese english &rest arg) "$B%a%C%;!<%8$rI=<($9$k!#(B `skk-japanese-message-and-error' $B$,(B non-nil $B$G$"$l$P(B JAPANESE $B$r!"(B nil $B$G(B $B$"$l$P(B ENGLISH $B$r%(%3!<%(%j%"$KI=<($9$k!#(B ARG $B$O(B `message' $B4X?t$NBh#20z?t0J9_$N0z?t$H$7$FEO$5$l$k!#(B" (append (if arg `(message (if skk-japanese-message-and-error ,japanese ,english)) `(message "%s" (if skk-japanese-message-and-error ,japanese ,english))) arg)) (defmacro skk-error (japanese english &rest arg) "$B%a%C%;!<%8$rI=<($7$F!"%(%i!<$rH/@8$5$;$k!#(B `skk-japanese-message-and-error' $B$,(B non-nil $B$G$"$l$P(B JAPANESE $B$r!"(B nil $B$G(B $B$"$l$P(B ENGLISH $B$r%(%3!<%(%j%"$KI=<($7!"%(%i!<$rH/@8$5$;$k!#(B ARG $B$O(B `error' $B4X?t$NBh#20z?t0J9_$N0z?t$H$7$FEO$5$l$k!#(B" (append (if arg `(error (if skk-japanese-message-and-error ,japanese ,english)) `(error "%s" (if skk-japanese-message-and-error ,japanese ,english))) arg)) (defmacro skk-yes-or-no-p (japanese english) "$B%f!<%6$K(B yes-or-no $B$rl9g$O(B `skk-yes-or-no-p' $B$r(B $B;H$&$h$j$b%*%j%8%J%k$N(B `yes-or-no-p' $B$r;HMQ$7$?J}$,%3!<%I$,J#;($K$J$i$J$$>l9g(B $B$,$"$k!#(B" `(yes-or-no-p (if skk-japanese-message-and-error ,japanese ,english))) (defmacro skk-y-or-n-p (japanese english) "$B%f!<%6$K(B \"y or n\" $B$rl9g$K;H$&!#(B" `(unwind-protect (progn ,@form) (setq skk-previous-point (point)))) (def-edebug-spec skk-with-point-move t) (defmacro skk-face-on (object start end face &optional priority) (cond ((eval-when-compile (featurep 'xemacs)) `(let ((inhibit-quit t)) (if (not (extentp ,object)) (progn (setq ,object (make-extent ,start ,end)) (if (not ,priority) (set-extent-face ,object ,face) (set-extent-properties ,object (list 'face ,face 'priority ,priority)))) (set-extent-endpoints ,object ,start ,end)))) (t `(let ((inhibit-quit t)) (if (not (overlayp ,object)) (progn (setq ,object (make-overlay ,start ,end)) (when ,priority (overlay-put ,object 'priority ,priority)) (overlay-put ,object 'face ,face) ;;(overlay-put (, object) 'evaporate t) ) (move-overlay ,object ,start ,end)))))) ;;;###autoload (put 'skk-loop-for-buffers 'lisp-indent-function 1) (defmacro skk-loop-for-buffers (buffers &rest body) "BUFFERS $B$,;XDj$9$k3F%P%C%U%!$K0\F0$7$F(B BODY $B$r= emacs-major-version 24) (and (= emacs-major-version 23) (>= emacs-minor-version 2))) ;; GNU Emacs 23.2 or later ;; `called-interactively-p' takes one argument. `(called-interactively-p ,kind)) (t ;; GNU Emacs 23.1 ;; `called-interactively-p' takes no argument and is equivalent ;; to (called-interactively-p 'any) in later Emacs versions. `(if (eq ,kind 'interactive) (interactive-p) (called-interactively-p))))) (defmacro skk-delete-overlay (list) ;; skk-dcomp-multiple-hide $B$H(B skk-inline-hide $B$rE}9g$7$?!#(B `(when ,list (dolist (o ,list) (delete-overlay o)) (setq ,list nil))) (defmacro skk-set-deactivate-im-func (func) (cond ((boundp 'deactivate-current-input-method-function) ;; GNU Emacs 24.2 $B$+$i(B `(setq deactivate-current-input-method-function ,func)) (t ;; GNU Emacs 24.1 $B$^$G(B `(setq inactivate-current-input-method-function ,func)) )) (defmacro skk-deactivate-input-method () (cond ((fboundp 'deactivate-input-method) ;; GNU Emacs 24.2 $B$+$i(B '(deactivate-input-method)) (t ;; GNU Emacs 24.1 $B$^$G(B '(inactivate-input-method)) )) (defmacro skk-facep (face) (cond ((featurep 'xemacs) `(find-face ,face)) (t `(facep ,face)))) (defmacro skk-help-make-usage (symbol arglist) (cond ((fboundp 'help--make-usage) ;; GNU Emacs 25.1 $B$+$i(B `(help--make-usage ,symbol ,arglist)) (t ;; GNU Emacs 24.1 $B$^$G(B `(help-make-usage ,symbol ,arglist)))) ;;; functions. ;; version dependent ;; Many functions are derived from emu (APEL). (when (eval-when-compile (featurep 'emacs)) ;; int-char() $B$,=P8=$9$k$N$O(B skk-compute-henkan-lists() $B$N$_(B ;; XEmacs $B$G$O(B int-char() $B$OI8=`!)(B (defalias 'int-char 'identity)) ;;; string-to-char-list $B$,=P8=$9$k$N$O(B 9 $B9T2<$N(B defalias $B$N$_(B ;;; $B$h$C$F(B string-to-int-list $B$NDj5A$rJQ99$7$F$7$^$&(B ;; (when (eval-when-compile (featurep 'emacs)) ;; (defun string-to-char-list (string) ;; "Return a list of which elements are characters in the STRING." ;; (mapcar #'identity string))) ;;; string-to-int-list() $B$NDj5A$r(B macro $B$XJQ99(B ;; (when (eval-when-compile (featurep 'emacs)) ;; ;; (defalias 'string-to-int-list 'string-to-char-list)) ;; (defun string-to-int-list (string) ;; "Return a list of which elements are characters in the STRING." ;; (mapcar #'identity string))) ;; ;; (when (eval-when-compile (featurep 'xemacs)) ;; (defun string-to-int-list (string) ;; (mapcar #'char-int string))) (defmacro string-to-int-list (string) (cond ((featurep 'xemacs) `(mapcar #'char-int ,string)) ; XEamcs (t `(mapcar #'identity ,string)))) ; GNU Emacs (when (eval-when-compile (featurep 'emacs)) (defun character-to-event (ch) "Convert keystroke CH into an event structure, replete with bucky bits. Note that CH (the keystroke specifier) can be an integer, a character or a symbol such as 'clear." ch)) (when (eval-when-compile (featurep 'emacs)) (defun event-to-character (event) "Return the character approximation to the given event object. If the event isn't a keypress, this returns nil." (cond ((symbolp event) ;; mask is (BASE-TYPE MODIFIER-BITS) or nil. (let ((mask (get event 'event-symbol-element-mask))) (if mask (let ((base (get (car mask) 'ascii-character))) (if base (logior base (cadr mask))))))) ((integerp event) event)))) (when (eval-when-compile (featurep 'emacs)) (defun cancel-undo-boundary () "Cancel undo boundary." (if (and (consp buffer-undo-list) (null (car buffer-undo-list))) (setq buffer-undo-list (cdr buffer-undo-list))))) (when (eval-when-compile (featurep 'xemacs)) (defun substring-no-properties (string &optional from to) "Return a substring of string, without text properties. It starts at index from and ending before to. to may be nil or omitted; then the substring runs to the end of string. If from is nil or omitted, the substring starts at the beginning of string. If from or to is negative, it counts from the end. With one argument, just copy string without its properties." (let ((substr (copy-sequence (substring string (or from 0) to)))) (set-text-properties 0 (length substr) nil substr) substr))) ;; From GNU Emacs 22.1. (when (eval-when-compile (and (featurep 'xemacs) (= emacs-major-version 21) (= emacs-minor-version 4))) (defun replace-regexp-in-string (regexp rep string &optional fixedcase literal subexp start) "Replace all matches for REGEXP with REP in STRING. Return a new string containing the replacements. Optional arguments FIXEDCASE, LITERAL and SUBEXP are like the arguments with the same names of function `replace-match'. If START is non-nil, start replacements at that index in STRING. REP is either a string used as the NEWTEXT arg of `replace-match' or a function. If it is a function, it is called with the actual text of each match, and its value is used as the replacement text. When REP is called, the match-data are the result of matching REGEXP against a substring of STRING. To replace only the first match (if any), make REGEXP match up to \\' and replace a sub-expression, e.g. (replace-regexp-in-string \"\\\\(foo\\\\).*\\\\'\" \"bar\" \" foo foo\" nil nil 1) => \" bar foo\" " ;; To avoid excessive consing from multiple matches in long strings, ;; don't just call `replace-match' continually. Walk down the ;; string looking for matches of REGEXP and building up a (reversed) ;; list MATCHES. This comprises segments of STRING which weren't ;; matched interspersed with replacements for segments that were. ;; [For a `large' number of replacements it's more efficient to ;; operate in a temporary buffer; we can't tell from the function's ;; args whether to choose the buffer-based implementation, though it ;; might be reasonable to do so for long enough STRING.] (let ((l (length string)) (start (or start 0)) matches str mb me) (save-match-data (while (and (< start l) (string-match regexp string start)) (setq mb (match-beginning 0) me (match-end 0)) ;; If we matched the empty string, make sure we advance by one char (when (= me mb) (setq me (min l (1+ mb)))) ;; Generate a replacement for the matched substring. ;; Operate only on the substring to minimize string consing. ;; Set up match data for the substring for replacement; ;; presumably this is likely to be faster than munging the ;; match data directly in Lisp. (string-match regexp (setq str (substring string mb me))) (setq matches (cons (replace-match (if (stringp rep) rep (funcall rep (match-string 0 str))) fixedcase literal str subexp) (cons (substring string start mb) ; unmatched prefix matches))) (setq start me)) ;; Reconstruct a string from the pieces. (setq matches (cons (substring string start l) matches)) ; leftover (apply #'concat (nreverse matches)))))) ;; For GNU Emacs. (when (eval-when-compile (featurep 'emacs)) (defun next-command-event (&optional event prompt) "Read an event object from the input stream. If EVENT is non-nil, it should be an event object and will be filled in and returned; otherwise a new event object will be created and returned. If PROMPT is non-nil, it should be a string and will be displayed in the echo area while this function is waiting for an event." (read-event prompt))) (when (eval-when-compile (featurep 'xemacs)) (defun set-buffer-multibyte (flag) "Set the multibyte flag of the current buffer to FLAG. If FLAG is t, this makes the buffer a multibyte buffer. If FLAG is nil, this makes the buffer a single-byte buffer. The buffer contents remain unchanged as a sequence of bytes but the contents viewed as characters do change. \[Emacs 20.3 emulating function]" flag)) (defun skk-ding (&optional arg sound device) "`ding' $B$N(B Emacsen $B$K$h$k0c$$$r5[<}$9$k!#(B" (cond ((eval-when-compile (featurep 'xemacs)) (ding arg sound device)) (t (ding arg)))) (defun skk-color-cursor-display-p () (cond ((eval-when-compile (featurep 'xemacs)) (eq (device-class (selected-device)) 'color)) ((eval-when-compile (featurep 'emacs)) (and (skk-find-window-system) (fboundp 'x-display-color-p) (x-display-color-p))))) (defun skk-char-to-unibyte-string (char) (ignore-errors (cond ;; XEmacs ((eval-when-compile (featurep 'xemacs)) (char-to-string char)) ;; Warning: `string-make-unibyte' is an obsolete function (as of 26.1). ;; use `encode-coding-string'. ((eval-when-compile (>= emacs-major-version 26)) (encode-coding-string (char-to-string char) 'iso-8859-1)) ;; GNU Emacs 25 $B$^$G(B (t (string-make-unibyte (char-to-string char)))))) (defun skk-ascii-char-p (char) (cond ((eval-when-compile (featurep 'emacs)) ;; GNU Emacs (eq (char-charset char skk-charset-list) 'ascii)) ;; XEmacs (t (eq (char-charset char) 'ascii)))) (defun skk-jisx0208-p (char) (cond ((eval-when-compile (featurep 'emacs)) ;; GNU Emacs (eq (char-charset char skk-charset-list) 'japanese-jisx0208)) ;; XEmacs (t (eq (char-charset char) 'japanese-jisx0208)))) (defun skk-jisx0213-p (char) (cond ((eval-when-compile (featurep 'emacs)) ;; GNU Emacs (memq (char-charset char skk-charset-list) '(japanese-jisx0213-1 japanese-jisx0213.2004-1 japanese-jisx0213-2))) (t (and (featurep 'jisx0213) ; Mule-UCS (memq (char-charset char) '(japanese-jisx0213-1 japanese-jisx0213-2)))))) (defun skk-split-char (ch) ;; http://mail.ring.gr.jp/skk/200908/msg00006.html (cond ((eval-when-compile (featurep 'emacs)) ;; C $B$N(B split-char() $B$HF1MM$N5!G=$@$,!"(Bchar-charset() $B$N8F=P$7$K$*$$$F(B ;; $BJ8;z=89g$NA*Br;h$r(B skk-charset-list $B$K4^$^$l$k$b$N$K@)8B$9$k!#(B ;; $B$3$l$ONc$($P!"(Bjapanese-jisx0208 $B$NJ8;z$,(B unicode-bmp $B$KB0$9$k!"(B ;; $B$HH=Dj$5$l$k$h$&$J>u67$r2sHr$9$k!#(B (let* ((charset (char-charset ch skk-charset-list)) (code (encode-char ch charset)) (dimension (charset-dimension charset)) val) (while (> dimension 0) (setq val (cons (logand code 255) ;; 0xFF val)) (setq code (lsh code -8)) (setq dimension (1- dimension))) (cons charset val))) ;; XEmacs (t (split-char ch)))) (defun skk-char-charset (ch &optional restriction) (cond ((eval-when-compile (featurep 'emacs)) ;; GNU Emacs (char-charset ch restriction)) ;; XEmacs (t (char-charset ch)))) ;; this one is called once in skk-kcode.el, too. (defun skk-charsetp (object) (cond ((eval-when-compile (featurep 'xemacs)) (find-charset object)) (t (charsetp object)))) (defun skk-indicator-to-string (indicator &optional no-properties) "SKK $B%$%s%8%1!<%?7?%*%V%8%'%/%H(B INDICATOR $B$rJ8;zNs$KJQ49$9$k!#(B" (cond ((eval-when-compile (featurep 'xemacs)) (if (stringp indicator) indicator (cdr indicator))) (t (if no-properties (with-temp-buffer (insert indicator) (buffer-substring-no-properties (point-min) (point-max))) indicator)))) (defun skk-mode-string-to-indicator (mode string) "$BJ8;zNs(B STRING $B$r(B SKK $B%$%s%8%1!<%?7?%*%V%8%'%/%H$KJQ49$9$k!#(B" (cond ((eval-when-compile (featurep 'xemacs)) (cons (cdr (assq mode skk-xemacs-extent-alist)) string)) (t (if (and window-system (not (eq mode 'default))) (apply 'propertize string (cdr (assq mode skk-emacs-property-alist))) string)))) (defun skk-local-variable-p (variable &optional buffer afterset) "Non-nil if VARIABLE has a local binding in buffer BUFFER. BUFFER defaults to the current buffer." (cond ((eval-when-compile (featurep 'xemacs)) (local-variable-p variable (or buffer (current-buffer)) afterset)) (t (local-variable-p variable (or buffer (current-buffer)))))) (defun skk-face-proportional-p (face) (cond ((eval-when-compile (featurep 'xemacs)) (face-proportional-p face)) (t (or (face-equal face 'variable-pitch) (eq (face-attribute face :inherit) 'variable-pitch))))) (defun skk-event-key (event) "$B%$%Y%s%H(B EVENT $B$rH/@8$7$?F~NO$N>pJs$rC$9!#(B $B%*%W%7%g%J%k0z?t$N(B CLEAN $B$,;XDj$5$l$k$H!"JQ?t$H$7$F$N(B `skk-prefix' $B$r6uJ8;z$K!"(B `skk-current-rule-tree' $B$r(B nil $B$K=i4|2=$9$k!#(B" ;; $B$+$JJ8;z$NF~NO$,$^$@40@.$7$F$$$J$$>l9g$K$3$N4X?t$,8F$P$l$?$H$-$J$I$O(B ;; $BI=<($5$l$F$$$k(B skk-prefix $B$O:o=|$7$?$$$,!"JQ?t$H$7$F$N(B skk-prefix $B$O(B ;; null $BJ8;z$K$7$?$/$J$$!#(B (when (overlayp skk-prefix-overlay) (condition-case nil (delete-overlay skk-prefix-overlay) (error (skk-set-marker skk-kana-start-point nil) (setq skk-prefix "" skk-current-rule-tree nil)))) (when clean (setq skk-prefix "" skk-current-rule-tree nil))) ; fail safe (defun skk-kana-cleanup (&optional force) (let ((data (cond ((and skk-current-rule-tree (null (skk-get-nextstate skk-current-rule-tree))) (skk-get-kana skk-current-rule-tree)) (skk-kana-input-search-function (car (funcall skk-kana-input-search-function))))) kana) (when (or force data) (skk-erase-prefix 'clean) (setq kana (if (functionp data) (funcall data nil) data)) (when (consp kana) (setq kana (if skk-katakana (car kana) (cdr kana)))) (when (stringp kana) (skk-insert-str kana)) (skk-set-marker skk-kana-start-point nil) (or data t)))) ; skk-prefix $B$KBP1~$9$k%G!<%?$,$"$C$?$J$i$=$l$rJV$9(B (defsubst skk-numeric-p () (and skk-use-numeric-conversion (require 'skk-num) skk-num-list)) (defsubst skk-file-exists-and-writable-p (file) (and (setq file (expand-file-name file)) (file-exists-p file) (file-writable-p file))) (defsubst skk-share-private-jisyo-p () (vectorp skk-jisyo-update-vector)) (defsubst skk-lower-case-p (char) "CHAR $B$,>.J8;z$N%"%k%U%!%Y%C%H$G$"$l$P!"(Bt $B$rJV$9!#(B" (and (<= ?a char) (>= ?z char))) (defsubst skk-downcase (char) "$BO"A[%j%9%H(B `skk-downcase-alist' $B$K3:Ev$"$l$P(B (assq)$B!"MWAG(B($B;R%j%9%H(B)$B$N(B cdr $B$rJV$9!#(B $B3:Ev$J$1$l$P(B $B4X?t(B `downcase'$B$N7k2L$rJV$9!#(B $B4X?t(B `skk-set-henkan-point' $B$+$i8F$P$l$F$$$k!#(B" (or (cdr (assq char skk-downcase-alist)) (downcase char))) (defun skk-mode-off () (setq skk-mode nil skk-abbrev-mode nil skk-latin-mode nil skk-j-mode nil skk-jisx0208-latin-mode nil skk-jisx0201-mode nil ;; sub mode of skk-j-mode. skk-katakana nil) ;; initialize (skk-update-modeline) (skk-cursor-off) (skk-remove-skk-pre-command)) (defun skk-j-mode-on (&optional katakana) (setq skk-mode t skk-abbrev-mode nil skk-latin-mode nil skk-j-mode t skk-jisx0208-latin-mode nil skk-jisx0201-mode nil ;; sub mode of skk-j-mode. skk-katakana katakana) (skk-setup-keymap) (skk-update-modeline (if skk-katakana 'katakana 'hiragana)) (skk-cursor-set)) (defun skk-latin-mode-on () (setq skk-mode t skk-abbrev-mode nil skk-latin-mode t skk-j-mode nil skk-jisx0208-latin-mode nil skk-jisx0201-mode nil ;; sub mode of skk-j-mode. skk-katakana nil) (skk-setup-keymap) (skk-update-modeline 'latin) (skk-cursor-set)) (defun skk-jisx0208-latin-mode-on () (setq skk-mode t skk-abbrev-mode nil skk-latin-mode nil skk-j-mode nil skk-jisx0208-latin-mode t skk-jisx0201-mode nil ;; sub mode of skk-j-mode. skk-katakana nil) (skk-setup-keymap) (skk-update-modeline 'jisx0208-latin) (skk-cursor-set)) (defun skk-abbrev-mode-on () (setq skk-mode t skk-abbrev-mode t skk-latin-mode nil skk-j-mode nil skk-jisx0208-latin-mode nil skk-jisx0201-mode nil ;; skk-abbrev-mode $B$O0l;~E*$J(B ascii $BJ8;z$K$h$kJQ49$J$N$G!"JQ498e$O85$N(B ;; $BF~NO%b!<%I(B ($B$+$J%b!<%I$+%+%J%b!<%I(B) $B$KLa$k$3$H$,4|BT$5$l$k!#(B ;; skk-katakana $B$O(B minor-mode $B%U%i%0$G$O$J$/!"(Bskk-j-mode $B%^%$%J!<%b!<%I(B ;; $B$NCf$G$3$N%U%i%0$K$h$jF~NOJ8;z$r7hDj$9$k%]%$%s%?$rJQ99$9$k$@$1$J$N$G(B ;; skk-abbrev-mode $B%^%$%J!<%b!<%I2=$9$k$N$K(B skk-katakana $B%U%i%0$r=i4|2=(B ;; $B$7$J$1$l$P$J$i$J$$I,A3@-$O$J$$!#(B ;; sub mode of skk-j-mode. ;;skk-katakana nil ) (skk-setup-keymap) (skk-update-modeline 'abbrev) (skk-cursor-set)) (defsubst skk-in-minibuffer-p () "$B%+%l%s%H%P%C%U%!$,%_%K%P%C%U%!$G$"$l$P(B t $B$rJV$9!#(B" (eq (current-buffer) (window-buffer (minibuffer-window)))) (defun skk-window-body-height () (cond ((eval-when-compile (featurep 'xemacs)) nil) ; XEmacs $B$G%5%]!<%H$5$l$J$$5!G=(B (t (window-body-height)))) ; emacs21 $B$K$O$J$$(B (defun skk-screen-column () "$B%9%/%j!<%s9T$+$iF@$?%+!<%=%k0LCV$N7e?t$rJV$9!#(B $B%F%-%9%H9T!J2~9TJ8;z$G6h@Z$i$l$?%F%-%9%H!K$,%&%#%s%I%&I}$r1[$($F@^$jJV$7$FI=<((B $B$5$l$F$$$k>l9g$K$bBP1~$9$k!#(B" (- (current-column) (save-excursion (vertical-motion 0) ;$B%9%/%j!<%s9T$N9TF,$K0\F0$9$k(B (current-column)))) ;$B",$3$N7k2L!"%9%/%j!<%s9T$N9TF,$J$N$+(B ;$B%F%-%9%H9T$N9TF,$J$N$+(B (defun skk-move-to-screen-column (col) "$B%9%/%j!<%s9T$+$i8+$?(B COL $B7e0LCV$K%]%$%s%H$r0\F0$9$k!#(B $B%F%-%9%H9T!J2~9TJ8;z$G6h@Z$i$l$?%F%-%9%H!K$,%&%#%s%I%&I}$r1[$($F@^$jJV$7$FI=<((B $B$5$l$F$$$k>l9g$K$bBP1~$9$k$,!"2~9TJ8;z$r1[$($k0\F0$O9T$o$J$$!#(B" (move-to-column (+ (current-column) ;$B%F%-%9%H9T$+$i8+$?7e?t(B (- col (skk-screen-column)))) (skk-screen-column)) (defun skk-max-string-width (list) "LIST $B$N3FMWAG$NCf$+$i!":GD9$N%3%i%`I}(B (string-width) $B$rJV$9!#(B" (apply 'max (mapcar 'string-width list))) (defun skk-insert-prefix (&optional char) "`skk-echo' $B$,(B non-nil $B$G$"$l$P%+%l%s%H%P%C%U%!$K(B `skk-prefix' $B$rA^F~$9$k!#(B" (when skk-echo ;; skk-prefix $B$O%"%s%I%%$NBP>]$H$J$i$J$$$N$G(B ;; $B%P%C%U%!$KA^F~$5$l$kI,MW$,$J$$!#(B (setq skk-prefix-overlay (make-overlay (point) (point))) (let ((prefix (or char skk-prefix))) (when (and skk-use-face (not skk-henkan-mode)) (setq prefix (propertize prefix 'face (cond ((and skk-j-mode (not skk-katakana)) 'skk-prefix-hiragana-face) (skk-katakana 'skk-prefix-katakana-face) (skk-jisx0201-mode 'skk-prefix-jisx0201-face))))) (overlay-put skk-prefix-overlay 'after-string prefix)))) (defsubst skk-string-lessp-in-coding-system (str1 str2 coding-system) (string< (encode-coding-string str1 coding-system) (encode-coding-string str2 coding-system))) (defun skk-string< (str1 str2) "STR1 $B$H(B STR2 $B$H$rHf3S$9$k!#(B $BFbIt%3!<%I$,(B emacs-mule $B$G$J$$$J$I(B `stringp' $B$NJV$jCM$,0[$J$k(B Emacs $B$K(B $BBP$7$F(B emacs-mule $B$N(B encoded string $B$KJQ49$7$FHf3S$9$k!#(B $BHf3S$N7k2L(B str1 < str2 $B$J$i$P(B t $B$rJV$9!#(B" (cond ((eval-when-compile (featurep 'emacs)) ;; Emacs with coding system utf-8-emacs (skk-string-lessp-in-coding-system str1 str2 'emacs-mule)) (t (string< str1 str2)))) (defsubst skk-string<= (str1 str2) "STR1 $B$H(B STR2 $B$H$rHf3S$7$F!"(B`string<' $B$+(B `string=' $B$G$"$l$P!"(Bt $B$rJV$9!#(B" (or (skk-string< str1 str2) (string= str1 str2))) (defsubst skk-do-auto-fill () "`auto-fill-function' $B$KCM$,BeF~$5$l$F$$$l$P!"$=$l$r%3!<%k$9$k!#(B" (when auto-fill-function (funcall auto-fill-function))) (defsubst skk-current-input-mode () (cond (skk-abbrev-mode 'abbrev) (skk-latin-mode 'latin) (skk-jisx0208-latin-mode 'jisx0208-latin) (skk-katakana 'katakana) (skk-j-mode 'hiragana))) ;;(defsubst skk-substring-head-character (string) ;; (char-to-string (string-to-char string))) (defsubst skk-get-current-candidate-1 (&optional count) (setq count (or count (skk-henkan-count))) (when (> 0 count) (skk-error "$B8uJd$r ::= nil | ( . ) ;; ::= ( ) ;; ::= (<$B$R$i$,$JJ8;zNs(B> . <$B%+%?%+%JJ8;zNs(B>) | nil ;; ::= <$B1Q>.J8;z(B> ;; ::= <$B1Q>.J8;zJ8;zNs(B> | nil (defsubst skk-make-raw-arg (arg) (case arg (1 nil) (-1 '-) (t (if (numberp arg) (list arg) nil)))) (defsubst skk-unread-event (event) "Unread single EVENT." (setq unread-command-events (nconc unread-command-events (list event)))) (defsubst skk-get-last-henkan-datum (key) (cdr (assq key skk-last-henkan-data))) ;;; 2013-3-18 $B$I$3$+$i$b;2>H$5$l$F$*$i$:(B ;; (defsubst skk-put-last-henkan-datum (key val) ;; (let ((e (assq key skk-last-henkan-data))) ;; (if e ;; (setcdr e val) ;; (push (cons key val) skk-last-henkan-data)))) (defun skk-put-last-henkan-data (alist) (let (e) (dolist (kv alist) (if (setq e (assq (car kv) skk-last-henkan-data)) (setcdr e (cdr kv)) (push (cons (car kv) (cdr kv)) skk-last-henkan-data))))) (defun skk-find-coding-system (code) "CODE $B$,!"(BEmacs $B$,2r l 2) (eq (aref string 0) ?\() ;; second character is ascii or not. (skk-ascii-char-p (aref string 1)) (eq (aref string (1- l)) ?\)) ; $B$3$N9T!"$b$&ITMW$+$b(B (ignore-errors (= l (cdr (read-from-string string))))))) (defun skk-eval-string (string) "Eval STRING as a lisp program and return the result." (cond ((string-match ";" string) (concat (skk-eval-string (substring string 0 (match-beginning 0))) (substring string (match-beginning 0) (match-end 0)) (skk-eval-string (substring string (match-end 0))))) ((skk-lisp-prog-p string) (let (func face) ;; (^_^;) $B$N$h$&$JJ8;zNs$KBP$7!"(Bread-from-string $B$r8F$V$H(B ;; $B%(%i!<$K$J$k$N$G!"(Bignore-errors $B$G0O$`!#(B (ignore-errors (setq func (car (read-from-string string))) (when (and (listp func) (functionp (car func))) (setq face (get-text-property 0 'face string)) (setq string (if face (propertize (format "%s" (eval func)) 'face face) (format "%s" (eval func)))))) string)) (t string))) ;;;; from dabbrev.el. Welcome! ;; $BH=Dj4V0c$$$rHH$9>l9g$"$j!#MW2~NI!#(B (defsubst skk-minibuffer-origin () (nth 1 (buffer-list))) (defun skk-quote-char-1 (word alist) (mapconcat (lambda (char) (or (cdr (assq char alist)) (char-to-string char))) ;; $BJ8;zNs$rBP1~$9$k(B char $B$N%j%9%H$KJ,2r$9$k!#(B (append word nil) "")) (defun skk-key-binding-member (key commands &optional map) "$BF~NO(B KEY $B$,H/F0$9$k%3%^%s%I$,!"(BCOMMANDS $B$K4^$^$l$l$P(B non-nil $B$rJV$9!#(B MAP $B$OF~NO$,=q$+$l$F$$$k%-!<%^%C%W$r;XDj$9$k$,!";XDj$5$l$J$1$l$P(B `skk-j-mode-map' $B$r;2>H$9$k!#(B $B$3$N4X?t$O!"F~NO(B KEY $B$,(B `lookup-key' $B$GC5$;$J$$7A<0$G$"$j$&$k>l9g$KMQ$$$k!#(B" (unless map (setq map skk-j-mode-map)) (let (keys) (dolist (command commands) (setq keys (nconc keys (where-is-internal command map)))) (member (key-description key) (mapcar #'key-description keys)))) (defun skk-update-minor-mode-map-alist (mode map) (let ((element (assq mode minor-mode-map-alist))) (if element (setcdr element map) (add-to-list 'minor-mode-map-alist (cons mode map))))) ;; Functions from alist.el (APEL) (defun skk-put-alist (key value alist) "Set cdr of an element (KEY . ...) in ALIST to VALUE and return ALIST. If there is no such element, create a new pair (KEY . VALUE) and return a new alist whose car is the new pair and cdr is ALIST." (let ((elm (assoc key alist))) (if elm (progn (setcdr elm value) alist) (cons (cons key value) alist)))) (defun skk-del-alist (key alist) "Delete an element whose car equals KEY from ALIST. Return the modified ALIST." (let ((pair (assoc key alist))) (if pair (delq pair alist) alist))) (defun skk-remove-alist (symbol key) "Delete an element whose car equals KEY from the alist bound to SYMBOL." (and (boundp symbol) (set symbol (skk-del-alist key (symbol-value symbol))))) (defun skk-fit-window (&optional window) "$B%+%l%s%H%&%#%s%I%&(B ($BKt$O(B WINDOW) $B$r!"$=$NI=<(FbMF$K1~$8$?9b$5$KD4@a$9$k!#(B" (unless (eval-when-compile (and (featurep 'xemacs) (= emacs-major-version 21) (<= emacs-minor-version 4))) ;; XEmacs 21.4 $B$K$O$J$$4X?t(B (fit-window-to-buffer window))) (defun skk-reset-henkan-count (count) ;; $B"&%b!<%I$KLa$k$H$-$O(B 0 ;; $B"'%b!<%I$N$^$^8uJd0lMw$N ;; Author: Masahiko Sato ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars)) (defsubst skk-num-get-suuji (expression alist) (cdr (assq expression alist))) (defsubst skk-num-int-p (num) (not (string-match "\\.[0-9]" num))) ;;;###autoload (defun skk-num-compute-henkan-key (key) "KEY $B$NCf$NO"B3$9$k?t;z$r8=$o$9J8;zNs$r(B \"#\" $B$KCV$-49$($?J8;zNs$rJV$9!#(B \"12\" $B$d(B \"$B#0#9(B\" $B$J$IO"B3$9$k?t;z$r(B 1 $B$D$N(B \"#\" $B$KCV$-49$($k$3$H$KCm0U!#(B $BCV$-49$($??t;z$r(B `skk-num-list' $B$NCf$K%j%9%H$N7A$GJ]B8$9$k!#(B $BNc$($P!"(BKEY $B$,(B \"$B$X$$$;$$(B7$B$M$s(B12$B$,$D(B\" $B$G$"$l$P!"(B\"$B$X$$$;$$(B#$B$M$s(B#$B$,$D(B\" $B$HJQ49$7!"(B`skk-num-list' $B$K(B (\"7\" \"12\") $B$H$$$&%j%9%H$rBeF~$9$k!#(B $B<-=q$N8+=P$78l$N8!:w$K;HMQ$9$k!#(B" (let ((numexp (if skk-num-convert-float "[0-9]+\\(\\.[0-9]+\\)?" "[0-9]+"))) ;;(setq skk-noconv-henkan-key key) (save-match-data ;; $BA43Q?t;z$r(B ascii $B?t;z$KJQ49$9$k!#(B (while (string-match "[$B#0(B-$B#9(B]" key) (let ((zen-num (match-string 0 key))) (setq key (concat (substring key 0 (match-beginning 0)) (skk-jisx0208-to-ascii zen-num) (substring key (match-end 0)))))) ;; $B0L \(\"#2\" .\"$B0l(B\"\) $B$N$h$&$KJQ49$9$k!#(B" (let ((key (skk-get-current-candidate-1 index)) convlist current) (unless (consp key) (setq convlist (skk-num-convert-1 key)) (cond ((null convlist) nil) ;; CONV-LIST $B$NA4MWAG$,J8;zNs!#(B ((null (memq t (mapcar 'listp convlist))) (setq current (mapconcat 'identity convlist "")) (if (skk-get-current-candidate-1) ;; ("A" "#2" "C") -> ("A" ("#2" ."$B0l(B") "C") (setcar (nthcdr index skk-henkan-list) (cons key current)) (setq skk-henkan-list (nconc skk-henkan-list (list (cons key current)))))) ;; #4 (t (let ((l (mapcar (lambda (e) (cons key e)) (skk-num-flatten-list convlist)))) (setq current (cdar l)) (if (and (> index -1) (nth index skk-henkan-list)) (progn (setcar (nthcdr index skk-henkan-list) (car l)) (setq skk-henkan-list (skk-splice-in skk-henkan-list (1+ index) (cdr l)))) (setq skk-henkan-list (nconc skk-henkan-list l)) (skk-num-uniq)))))))) (defun skk-num-convert-1 (key) "KEY $B$r(B `skk-num-list' $B$K=>$$JQ49$9$k!#(B $BJQ498e$NJ8;zNs$N%Q!<%D$r=g$K$J$i$Y$?%j%9%H$rJV$9!#Nc$($P(B KEY ::= `$BJ?@.(B#0$BG/(B', return ::= (\"$BJ?@.(B\" \"13\" \"$BG/(B\")" (unless (or (not key) (consp key)) (let ((numexp (if skk-num-convert-float ;; "." $B$r4^$a$k0U?^$O(B? "#[.0-9]+" "#[0-9]+")) (n 0) (workkey key) num convnum string convlist beg) (save-match-data (while (and ;; $B6qBNE*$J?tCM$rJ];}$7$F$$$k%j%9%H$r;2>H$9$k!#(B (setq num (nth n skk-num-list)) (setq beg (string-match numexp workkey))) (setq convnum ; $B?tCMJQ49$5$l$?ItJ,$NJ8;zNs(B ;; $B6qBNE*$J?t;z$rJQ49%?%$%W$K=>$$JQ49$9$k!#(B (skk-num-exp num (string-to-number (substring workkey (1+ beg) (match-end 0)))) ;; $B=hM}$5$l$??tCM%-!<$^$G$N(B prefix $BJ8;zNs(B string (substring workkey 0 beg) ;; $BL$=hM}$NJ8;zNs(B workkey (substring workkey (match-end 0)) n (1+ n)) ;; $BJQ49$5$l$?J8;z$H?tCMJQ49$K4X78$N$J$$L5JQ49$NJ8;z$rJB$Y$?%j%9%H(B (setq convlist (nconc convlist (list string convnum)))) (delete "" (nconc convlist (list workkey))))))) ;;;###autoload (defun skk-num-multiple-convert (&optional count) (let ((index skk-henkan-count)) (catch 'break (while (nth index skk-henkan-list) (when (and count (> 0 count)) (throw 'break nil)) (skk-num-convert index) (setq index (1+ index)) (when count (setq count (1- count))))) (skk-num-uniq))) (defun skk-num-rawnum-exp (string) (setq string (skk-num-rawnum-exp-1 string "[$B#0(B-$B#9(B][$B!;0l6e8^;0;M<7FsH,O;(B]" "#9" 0)) (setq string (skk-num-rawnum-exp-1 string "\\(^\\|[^#0-9]\\)\\([0-9]+\\)" "#0" 2)) (setq string (skk-num-rawnum-exp-1 string "[$B#0(B-$B#9(B]+" "#1" 0)) (setq string (skk-num-rawnum-exp-1 string "\\([$B!;0l6e8^;0;M<7FsH,O;==(B][$B==I4@iK|2/C{5~(B]\\)+" "#3" 0)) ;; (mapcar 'char-to-string ;; (sort ;; '(?$B0l(B ?$BFs(B ?$B;0(B ?$B;M(B ?$B8^(B ?$BO;(B ?$B<7(B ?$BH,(B ?$B6e(B ?$B!;(B) '<)) ;; --> ("$B!;(B" "$B0l(B" "$B6e(B" "$B8^(B" "$B;0(B" "$B;M(B" "$B<7(B" "$BFs(B" "$BH,(B" "$BO;(B") ;; ;; [$B!;(B-$B6e(B] $B$H$$$&@55,I=8=$,;H$($J$$$N$G!"@8$N$^$^$D$C$3$s$G$*$/!#(B (skk-num-rawnum-exp-1 string "[$B!;0l6e8^;0;M<7FsH,O;(B]+" "#2" 0)) (defun skk-num-rawnum-exp-1 (string key type place) (save-match-data (while (string-match key string) (setq string (concat (substring string 0 (match-beginning place)) type (substring string (match-end place))))) string)) (defun skk-num-flatten-list (list) "$BM?$($i$l$?%j%9%H$N3FMWAG$+$iAH$_9g$;2DG=$JJ8;zNs$NO"@\$r:n$k!#(B $B7k2L$O%j%9%H$GJV$9!#Nc$($P(B ((\"A\" \"B\") \"1\" (\"X\" \"Y\")) -> (\"A1X\" \"A1Y\" \"B1X\" \"B1Y\")" (let ((dst (car list))) (unless (listp dst) (setq dst (list dst))) (dolist (elt (cdr list)) (setq dst (cond ((consp elt) (apply #'nconc (mapcar (lambda (str0) (mapcar (lambda (str1) (concat str0 str1)) elt)) dst))) (t (mapcar (lambda (str0) (concat str0 elt)) dst))))) dst)) ;;;###autoload (defun skk-num-exp (num type) "ascii $B?t;z(B (string) $B$N(B NUM $B$r(B TYPE $B$K=>$C$FJQ49$7$?J8;zNs$rJV$9!#(B TYPE $B$O2<5-$NDL$j!#(B 0 -> $BL5JQ49(B 1 -> $BA43Q?t;z$XJQ49(B 2 -> $B4A?t;z(B ($B0L $B0l!;Fs;M(B 3 -> $B4A?t;z(B ($B0L $B@iFs==;M(B 4 -> $B$=$N?t;z$=$N$b$N$r%-!<$K$7$F<-=q$r:F8!:w(B 5 -> $B4A?t;z(B ($B $B7e6h@Z$j$XJQ49(B (1,234,567) 9 -> $B>-4}$G;HMQ$9$k?t;z(B (\"$B#3;M(B\" $B$J$I(B) $B$XJQ49(B" (save-match-data (let ((fun (cdr (assq type skk-num-type-alist)))) (when fun (funcall fun num))))) (defun skk-num-jisx0208-latin (num) "ascii $B?t;z$N(B NUM $B$rA43Q?t;z$NJ8;zNs$KJQ49$7!"JQ498e$NJ8;zNs$rJV$9!#(B $BNc$($P(B \"45\" $B$r(B \"$B#4#5(B\" $B$KJQ49$9$k!#(B" (let ((candidate (mapconcat (lambda (c) (skk-num-get-suuji c skk-num-alist-type1)) num ""))) (unless (string= candidate "") candidate))) (defun skk-num-type2-kanji (num) "ascii $B?t;z(B NUM $B$r4A?t;z$NJ8;zNs(B ($B0L.?tE@$r4^$^$J$$?t(B (skk-num-to-kanji num 'type3)))) (defun skk-num-type5-kanji (num) "ascii $B?t;z(B NUM $B$r4A?t;z$NJ8;zNs$KJQ49$7!"JQ498e$NJ8;zNs$rJV$9!#(B $BNc$($P(B \"1021\" $B$r(B \"$B0motFu=&0m(B\" $B$KJQ49$9$k!#(B" (save-match-data (when (skk-num-int-p num) ;; $B>.?tE@$r4^$^$J$$?t(B (skk-num-to-kanji num 'type5)))) (defun skk-num-to-kanji (num type &optional alist) "NUM $B$r(B TYPE $B$N7A<0$N4A?t;z$K$9$k!#0L$J$I$rI=$94A;z$O(B ALIST $B$+$i len 20) (skk-error "$B0L$,Bg$-$9$.$^$9!*(B" "Too big number!")) (setq num (append num nil)) (cond ((<= len 4) (while (setq char (car num)) ;; $B0L(B: $B0l(B $B==(B $BI4(B $B@i(B ;; len: 1 2 3 4 (cond ((= len 1) ;; $B0L$rI=$o$94A?t;z0J30$N4A?t;z!#(B (unless (eq char ?0) ;; $B0l$N0L$G(B 0 $B$G$J$$?t!#(B (setq v (concat v (skk-num-get-suuji char alist))))) (t ;; $B0L$rI=$o$94A?t;z0J30$N4A?t;z!#(B (unless (or (and (eq type 'type3) (memq char '(?0 ?1))) (and (eq type 'type5) (eq char ?0))) ;; type3 $B$N$H$-$O!"==$N0L0J>e$G!"$+$D(B 0, 1 $B0J30$N?t;z!#(B ;; type5 $B$N$H$-$O!"==$N0L0J>e$G!"$+$D(B 0 $B0J30$N?t;z!#(B (setq v (concat v (skk-num-get-suuji char alist)))) ;; $B0L$rI=$o$94A?t;z!#(B (when (and (not (eq char ?0)) (< 1 len)) (setq v (concat v (skk-num-get-suuji (cond ((eq len 2) 'ju) ; $B==(B ((eq len 3) 'hyaku) ; $BI4(B (t 'sen)) ; $B@i(B alist)))))) (setq len (1- len) num (cdr num)))) (t (setq num (nreverse num)) (while num (setq num1 nil) (while (and (< (length num1) 4) num) (setq num1 (cons (car num) num1) num (cdr num))) (when num1 (setq v1 (skk-num-to-kanji num1 type alist)) (when (string= v1 (skk-num-get-suuji ?0 alist)) (setq v1 "")) (when (and (eq type 'type3) (eq i 1) (equal v1 "$B@i(B")) ;; $BF|K\8l$G$O!V@i2/!W$H$$$&I=8=$O$H$-$K;H$o$l$k$,!"!V@iK|!W$H$$$&I=(B ;; $B8=$O$^$:;H$o$l$J$$$N$G!"!V0l@iK|!W$KD>$9!#(B (setq v1 (concat "$B0l(B" v1))) (setq v (concat v1 (when v1 (skk-num-get-suuji (cond ((eq i 0) ?\ ) ((eq i 1) 'man) ; $BK|(B ((eq i 2) 'oku) ; $B2/(B ((eq i 3) 'cho) ; $BC{(B ((eq i 4) 'kei)) ; $B5~(B alist)) v))) (setq i (1+ i))))) ;; (or v (skk-num-get-suuji ?0 alist)))) (defun add-number-grouping (number &optional separator places) ;; http://www.emacswiki.org/cgi-bin/wiki/AddCommasToNumbers ;; and $B6LLn7r0l(B "Add commas to NUMBER and return it as a string. Optional SEPARATOR is the string to use to separate groups. It defaults to a comma. PLACES is the number of places of a group. It defaults to three." (let ((num (number-to-string number)) (op (or separator ",")) (pl (or (if (< places 1) 3 places) 3))) (while (string-match (concat "\\(.*[0-9]\\)\\([0-9]\\{" (number-to-string pl) "\\}.*\\)") num) (setq num (concat (match-string 1 num) op (match-string 2 num)))) num)) (defun skk-num-grouping (num) "ascii $B?t;z$N(B NUM $B$r7e6h@Z$j$XJQ49$7!"JQ498e$NJ8;zNs$rJV$9!#(B $BNc$($P(B \"1234567\" $B$r(B \"1,234,567\" $B$XJQ49$9$k!#(B $B6h@Z$k5-9f$O(B `skk-num-grouping-separator' $B$G!"6h@Z$k7e?t$O(B `skk-num-grouping-places' $B$G;XDj$9$k!#(B" (add-number-grouping (string-to-number num) ; number skk-num-grouping-separator ; `,' skk-num-grouping-places ; 3 )) (defun skk-num-shogi (num) "ascii $B?t;z$N(B NUM $B$r>-4}$G;HMQ$5$l$k?t;zI=5-$KJQ49$9$k!#(B $BNc$($P(B \"34\" $B$r(B \"$B#3;M(B\" $B$KJQ49$9$k!#(B" (save-match-data (when (and (= (length num) 2) (skk-num-int-p num)) (let ((candidate (concat (skk-num-get-suuji (aref num 0) skk-num-alist-type1) (skk-num-get-suuji (aref num 1) skk-num-alist-type2)))) (unless (string= candidate "") candidate))))) (defun skk-num-recompute (num) "#4 $B$N8+=P$7$KBP$7(B `skk-henkan-key' $B$KBeF~$5$l$??t;z$=$N$b$N$r:FEY8!:w$9$k!#(B" (let (result) (setq skk-num-recompute-key num) (with-temp-buffer ;; $B%+%l%s%H%P%C%U%!$N%P%C%U%!%m!<%+%kJQ?t$K1F6A$r5Z$\$5$J$$$h$&!"(B ;; $B%o!<%-%s%0%P%C%U%!$X0lC6F($2$k(B (let ((skk-current-search-prog-list skk-search-prog-list) (skk-henkan-key num) ;; $B%+%l%s%H$NJQ49$OAw$j$J$7(B (skk-henkan-okurigana $B$H(B ;; skk-okuri-char $B$O$$$:$l$b(B nil) $B$@$,!"JL%P%C%U%!(B ;; (work $B%P%C%U%!(B) $B$KF~$C$F$$$k$N$G!"G0$N$?$a!"(Bnil $B$r(B ;; $BF~$l$F$*$/!#(B skk-henkan-okurigana skk-okuri-char skk-use-numeric-conversion) (while skk-current-search-prog-list (setq result (skk-nunion result (skk-search)))))) ;; $B$3$3$G(B temp-buffer $B$r=P$FJQ49$r9T$C$F$$$k%+%l%s%H%P%C%U%!$KLa$k(B ;; ($B%P%C%U%!%m!<%+%kCM$G$"$k(B skk-henkan-list $B$rA`:n$7$?$$$?$a(B)$B!#(B (cond ((not result) ;; $BJQ49$G$-$J$+$C$?$i85$N?t;z$r$=$N$^$^JV$7$F$*$/!#(B num) ((null (cdr result));;(= (length result) 1) (car result)) (t result)))) ;;;###autoload (defun skk-num-uniq () (when (and skk-num-uniq skk-henkan-list) (save-match-data (let ((n1 -1) n2 e1 e2 e3 ;; 1 $B$D$G$b(B 2 $B7e0J>e$N?t;z$,$"$l$P!"(B#2 $B$H(B #3 $B$G$O(B uniq $B$7$J$$!#(B (type2and3 (> 2 (apply 'max (mapcar 'length skk-num-list)))) type2 type3 index2 index3 head2 head3 tail2 tail3 case-fold-search) (while (setq n1 (1+ n1) e1 (nth n1 skk-henkan-list)) ;; cons cell $B$G$J$1$l$P(B skk-nunion $B$G=hM}:Q$_$J$N$G!"=EJ#$O$J$$!#(B (when (consp e1) (setq skk-henkan-list (delete (car e1) skk-henkan-list) skk-henkan-list (delete (cdr e1) skk-henkan-list))) (when (and skk-num-recompute-key (consp e1)) ;; ("#4" . "xxx") $B$r4^$`8uJd$,(B skk-henkan-list $B$NCf$K$"$k!#(B (setq n2 -1) (while (setq n2 (1+ n2) e2 (nth n2 skk-henkan-list)) (when (and (not (= n1 n2)) (consp e2) ;; $BNc$($P(B ("#4" . "$B0l(B") $B$H(B ("#2" . "$B0l(B") $B$,(B ;; $BJBB8$7$F$$$k>l9g!#(B (string= (cdr e1) (cdr e2))) (setq skk-henkan-list (delq e2 skk-henkan-list))))) (when type2and3 ;; 1 $B7e$N?t;z$rJQ49$9$k:]$K!"(Bskk-henkan-list $B$K(B #2 $B%(%s%H%j$H(B #3 ;; $B%(%s%H%j$,$"$l$P!"(B#2 $B$b$7$/$O(B #3 $B%(%s%H%j$N$&$A!"$h$j8eJ}$K$"$k(B ;; $B$b$N$r>C$9!#(B (setq e3 (if (consp e1) (car e1) e1)) ;; e3 $B$O(B "#2" $B$N$h$&$K?tCMJQ49$r<($9J8;zNs$N$_$H$O8B$i$J$$$N$G!"(B ;; member $B$O;H$($J$$!#(B (cond ((string-match "#2" e3) (setq type2 e1 index2 n1 head2 (substring e3 0 (match-beginning 0)) tail2 (substring e3 (match-end 0)))) ((string-match "#3" e3) (setq type3 e1 index3 n1 head3 (substring e3 0 (match-beginning 0)) tail3 (substring e3 (match-end 0))))))) (when (and type2and3 type2 type3 ;; $B?tCMJQ49$r<($9J8;zNs(B "#[23]" $B$NA08e$NJ8;zNs$bF10l$N$H(B ;; $B$-$N$_(B uniq $B$r9T$&!#(B (string= head2 head3) (string= tail2 tail3)) (if (> index2 index3) ;; "#3" $B$NJ}$,A0$K$"$k!#(B (setq skk-henkan-list (delq type2 skk-henkan-list)) ;; $BJQ?t(B type[23] $B$NCM$O!"(Bskk-henkan-list $B$+$iD>@\Cj=P$7$?$b(B ;; $B$N$@$+$i(B delete $B$G$J$/!"(Bdelq $B$G==J,!#(B (setq skk-henkan-list (delq type3 skk-henkan-list)))))))) ;;;###autoload (defun skk-num-initialize () "`skk-use-numeric-conversion' $B4XO"$NJQ?t$r=i4|2=$9$k!#(B" (setq skk-last-henkan-data (skk-put-alist 'num-list skk-num-list skk-last-henkan-data) skk-num-list nil skk-num-recompute-key nil)) ;;;###autoload (defun skk-num-henkan-key () "$BE,@Z$JJQ49%-!<$rJV$9!#(B type4 $B$N?tCM:FJQ49$,9T$o$l$?$H$-$O!"?tCM<+?H$rJV$7!"$=$l0J30$N?tCMJQ49(B $B$G$O!"(B`skk-henkan-key' $B$N?tCM$r(B \"#\" $B$GCV$-49$($?%-!<$rJV$9!#(B" (or skk-num-recompute-key (skk-num-compute-henkan-key skk-henkan-key))) ;;;###autoload (defun skk-num-update-jisyo (noconvword word &optional purge) "$B?t;z<+?H$r8+=P$78l$H$7$F<-=q$r%"%C%W%G!<%H$9$k!#(B" (when (and skk-num-recompute-key (save-match-data (string-match "#4" noconvword))) (with-current-buffer (skk-get-jisyo-buffer skk-jisyo 'nomsg) (let ((skk-henkan-key skk-num-recompute-key) skk-use-numeric-conversion) ;;(message "%S" skk-num-recompute-key) (skk-update-jisyo word purge))))) ;;;###autoload (defun skk-num (str) "$B?t;z$r(B `skk-number-style' $B$NCM$K=>$$JQ49$9$k!#(B `skk-current-date' $B$N%5%V%k!<%A%s!#(B" (mapconcat (lambda (c) (cond ((or (< ?9 c) (< c 0)) nil) ((or (not skk-number-style) (and (numberp skk-number-style) (= skk-number-style 0))) (char-to-string c)) ((or (eq skk-number-style t) (and (numberp skk-number-style) (= skk-number-style 1))) (cdr (assq c skk-num-alist-type1))) (t (cdr (assq c skk-num-alist-type2))))) str "")) (defadvice skk-kakutei-initialize (after skk-num-ad activate) (when (skk-numeric-p) (skk-num-initialize))) (run-hooks 'skk-num-load-hook) (provide 'skk-num) ;;; skk-num.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-search-web.el000066400000000000000000000142161361774317600215600ustar00rootroot00000000000000;;; skk-search-web.el --- Google $B%5%8%'%9%H$J$I$rMxMQ$7$?$+$J4A;zJQ49(B -*- coding: iso-2022-jp -*- ;; Copyright (C) 2010, 2011 HAMANO Kiyoto ;; Copyright (C) 2011 Tsuyoshi Kitamoto ;; Author: HAMANO Kiyoto ;; Maintainer: Tsuyoshi Kitamoto ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; $B;HMQJ}K!$r#2$D@bL@$7$^$9!#9%$_$NJ}$r;HMQ$7$F$/$@$5$$!#(B ;; (1) $B$+$J4A;zJQ49$N8uJd$K(B Google $B%5%8%'%9%H$rMxMQ$9$k(B ;; skk-search-prog-list $B$N:G8eJ}$K(B skk-search-web() $B$rCV$/$3$H$K$h$j!"(B ;; $B8D?M<-=q$d6&M-<-=q$KEPO?$5$l$F$$$J$$8+=P$78l$r(B Google $B%5%8%'%9%H(B ;; $B$7$^$9!#(B ;; ;; (add-to-list 'skk-search-prog-list ;; '(skk-search-web 'skk-google-suggest) ;; t) ;; (2) $B<-=qEPO?%b!<%I$X$NFMF~;~$N=i4|CM$K(B Google $B%5%8%'%9%H$rMxMQ$9$k(B ;; (setq skk-read-from-minibuffer-function ;; (lambda () ;; (car (skk-google-suggest skk-henkan-key)))) ;; $B>e5-Nc$G<($7$?4X?t(B skk-google-suggest $B$O(B skk-google-cgi-api-for-japanese-input ;; $B$KCV$-49$(2DG=$G$9!#(B ;; (add-to-list 'skk-search-prog-list ;; '(skk-search-web 'skk-google-cgi-api-for-japanese-input) ;; t) ;; ;; (setq skk-read-from-minibuffer-function ;; (lambda () ;; (car (skk-google-cgi-api-for-japanese-input skk-henkan-key)))) ;; SKK Dynamic Completion $B$HJ;MQ$9$k$3$H$b2DG=$G$9!#(B ;; (add-to-list 'skk-completion-prog-list '(skk-comp-google) t) ;;; Test: ;; (let ((skk-henkan-key "emacs")) ;; (skk-search-web 'skk-google-suggest)) ;; => ("emacs" "emacs $B%3%^%s%I(B" "emacs windows" "emacs $B;H$$J}(B" "emacs $BJ8;z%3!<%I(B" ...) ;;; $B $B$5$s$,(B ;; $B=q$$$?5-;v(B http://d.hatena.ne.jp/khiker/20100128/google_suggest $B$G$9!#(B ;; $B2~JQ!"8x3+$r2w$/>5Bz$7$F$$$?$@$$$?(B HAMANO Kiyoto $B$5$s$K46]*\\)\"" nil t) (setq list (cons (buffer-substring (match-beginning 1) (match-end 1)) list))) (nreverse list)))) (defun skk-wikipedia-suggest (word) (let* ((jsonp (skk-url-retrieve (concat "http://ja.wikipedia.org/w/api.php" "?action=opensearch" "&format=json" "&search=" (url-hexify-string (encode-coding-string word 'utf-8))) 'utf-8)) (json (json-read-from-string jsonp)) ;; ["$B$_$@$7$4(B" ["$B8uJd(Ba" "$B8uJd(Bb" "$B8uJd(Bc"]] ;; $B"(!V$_$@$7$4!W$,4A;z$G$"$l$PMM!9$J8uJd$,F@$i$l$k$,!"(B ;; $BJ?2>L>$@$H$"$^$j%R%C%H$7$J$$!#$=$N$?$a!"$+$J4A;z(B ;; $BJQ49$NMQES$K$OIT8~$-$+$b!#(B (ary (aref json 1)) list) (dotimes (i (length ary)) (setq list (cons (aref ary i) list))) (nreverse list))) (defun skk-search-web (function) (funcall function skk-henkan-key)) ;; skk-comp, skk-dcomp, (defvar skk-comp-google-candidates nil) (defun skk-comp-google () ;; Howto use ;; (add-to-list 'skk-completion-prog-list '(skk-comp-google) t) (unless (string= skk-comp-key "") (when skk-comp-first (setq skk-comp-google-candidates (skk-comp-google-make-candidates))) (prog1 (car skk-comp-google-candidates) (setq skk-comp-google-candidates (cdr skk-comp-google-candidates))))) (defun skk-comp-google-make-candidates () (let ((key (car (split-string skk-comp-key "*" t)))) (skk-google-suggest key))) (provide 'skk-search-web) ;;; skk-search-web.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-server-completion.el000066400000000000000000000156531361774317600232230ustar00rootroot00000000000000;;; skk-server-completion.el --- server completion $B$N%/%i%$%"%s%H(B -*- coding: iso-2022-jp -*- ;; ;; Copyright (C) 2005 Fumihiko MACHIDA ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program; if not, write to the Free Software ;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA ;; 02110-1301, USA ;;; Commentary: ;; Server completion $B$KBP1~$7$?<-=q%5!<%P$rMQ$$8+=P$78l$+$i;O$^$kA4$F$N(B ;; $B8l6g$N8!:w$r9T$$$^$9!#(B ;; $B$3$N%W%m%0%i%`$O0J2<$N(B 2 $B$D$N5!G=$rDs6!$7$^$9!#(B ;; ;; * skk-look $B$NF|K\8lHG!#FI$_$N:G8e$K(B `~' $B$rIU$1$FJQ49$9$k$H!"$=$NFI$_$+(B ;; $B$i;O$^$kA4$F$N8uJd$rI=<($7$^$9!#(B ;; ;; $BNc!'(B ;; ;; $B"&$^$A$@(B~ ;; ==> "$B$^$A$@(B" "$BD.ED(B" "$B$^$A$@$($-(B" "$BD.ED1X(B" "$B$^$A$@$*$@$-$e$&(B" "$BD.ED>.ED5^(B" .. ;; ;; * skk-comp $B$G!"(Bserver completion $B$r;HMQ(B ;; ;; $BNc!'(B ;; ;; $B"&$^$A$@(B-!- $B$G(B Tab $B$r2!$9$H!""&$^$A$@$($-(B $B"*(B $B"&$^$A$@$*$@$-$e$&(B $B!D!D(B ;; $B$H$J$j$^$9!#(B ;; [$B@_DjJ}K!(B] ;; ;; .skk $B$K!"0J2<$rDI2C$7$^$9!#(B ;; ;; (add-to-list 'skk-search-prog-list ;; '(skk-server-completion-search) t) ;; ;; (add-to-list 'skk-completion-prog-list ;; '(skk-comp-by-server-completion) t) ;; ;; $B$^$?!"(B`~' $B$rIU$1$?JQ497k2L$r8D?M<-=q$K3X=,$7$F$7$^$&$N$r$d$a$k$?$a$K$O(B ;; $B0J2<$rDI2C$7$F$/$@$5$$!#(B ;; ;; (add-hook 'skk-search-excluding-word-pattern-function ;; #'(lambda (kakutei-word) ;; (eq (aref skk-henkan-key (1- (length skk-henkan-key))) ;; skk-server-completion-search-char))) ;;; Code: (require 'skk) (require 'skk-comp) (require 'skk-server) ;;;###autoload (defun skk-server-completion-search () "$B%5!<%P!<%3%s%W%j!<%7%g%s$r9T$$!"F@$i$l$?3F8+=P$7$G$5$i$K8!:w$9$k!#(B $BAw$jM-$jJQ49$K$OHsBP1~!#(B" (when (and (eq (aref skk-henkan-key (1- (length skk-henkan-key))) skk-server-completion-search-char) (not (or skk-henkan-okurigana skk-okuri-char))) ;; skk-search $B$G$O8+=P$7$,?t;z$r4^$`;~$N$_(B ;; skk-use-numeric-conversion $B$,(B t $B$J8F=P$7$r$9$k$,!"(B ;; $B0l1~$=$l$K0MB8$7$J$$$h$&$K$7$F$$$k!#(B (let* ((henkan-key (substring skk-henkan-key 0 (1- (length skk-henkan-key)))) (numericp (and skk-use-numeric-conversion (save-match-data (string-match "[0-9$B#0(B-$B#9(B]" henkan-key)))) (conv-key (and numericp (skk-num-compute-henkan-key henkan-key))) (key (or conv-key henkan-key)) midasi-list result-list kouho-list) (setq midasi-list (skk-server-completion-search-midasi key)) (dolist (skk-henkan-key midasi-list) ;; $B8+=P$7$KBP1~$7$?%(%s%H%j$,<-=q%5!<%P$KB8:_$9$k;v$rA0Ds$H$7$F$$$k!#(B ;; $BIT@09g$,$"$C$F$b%(%i!<$K$O$J$i$J$$$,!"8+=P$7$@$1$,I=<($5$l$k;v$K$J$k$N$G(B ;; $B8!:wBP>]<-=q$+$iD>@\Jd408uJd$r@8@.$7$F$$$J$$<-=q%5!<%P$G$O1?MQ$K5$$r$D$1$k;v!#(B (setq kouho-list (cons (if numericp (concat henkan-key (substring skk-henkan-key (length key))) skk-henkan-key) (skk-search-server-1 nil nil)) result-list (nconc result-list kouho-list))) result-list))) (defun skk-server-completion-search-midasi (key) "server completion $B$rMxMQ$7$F!"(Bkey $B$+$i;O$^$k$9$Y$F$N8+=P$78l$N%j%9%H$rJV5Q$9$k!#(B" (when (and (not skk-server-disable-completion) (skk-server-live-p (skk-open-server))) (with-current-buffer skkserv-working-buffer (let ((cont t) (count 0) sep ret) (erase-buffer) ;; server completion $B$KBP1~$7$F$*$i$:!"$+$DL5H?1~$J<-=q%5!<%P$KBP=h(B ;; 5$BIC$bBT$F$P= (buffer-size) 0) (if (eq (char-after 1) ?1) ;?1 ;; found key successfully, so check if a whole line ;; is received. (when (eq (char-after (1- (point-max))) ?\n) ;?\n (setq cont nil)) ;; not found or error, so exit (setq cont nil)))) (goto-char (point-min)) (when skk-server-report-response (skk-message "$B<-=q%5!<%P$N1~Ez$r(B %d $B2sBT$A$^$7$?(B" "Waited for server response %d times" count)) (when (eq (following-char) ?1) ;?1 ;; 2$BJ8;zL\$r%;%Q%l!<%?$H$7$F07$&(B ('/' $B$+(B ' ' $B$NH&(B) (setq sep (char-to-string (char-after 2))) (forward-char 2) (setq ret (save-match-data (split-string (buffer-substring-no-properties (point) (1- (line-end-position))) sep))) (when (string= sep "/") ;; $B8+=P$7$K(B '/' $B$r4^$s$G$$$k;~!"%;%Q%l!<%?$N(B '/' $B$H:.F1$7!"(B ;; $B@5$7$/=hM}$G$-$J$$!#(B (setq ret (delq nil (let ((len (length key))) (mapcar (lambda (midasi) ;; key $B$K40A40lCW$J(B midasi $B$r$I$&$9$k$+!#(B (when (and (> (length midasi) len) (string-equal key (substring midasi 0 len))) midasi)) ret))))) ret)))))) ;;;###autoload (defun skk-comp-by-server-completion () "Server completion $B$KBP1~$7$?<-=q%5!<%P$rMxMQ$9$kJd40%W%m%0%i%`!#(B `skk-completion-prog-list' $B$NMWAG$K;XDj$7$F;H$&!#(B" (let* ((numericp (and skk-use-numeric-conversion (save-match-data (string-match "[0-9$B#0(B-$B#9(B]" skk-comp-key)))) (conv-key (and numericp (skk-num-compute-henkan-key skk-comp-key))) (comp-key (or conv-key skk-comp-key)) word) (when skk-comp-first (setq skk-server-completion-words (skk-server-completion-search-midasi comp-key)) (when (string= comp-key (car skk-server-completion-words)) (pop skk-server-completion-words))) (setq word (pop skk-server-completion-words)) (when (and skk-comp-use-prefix (not (string= skk-comp-prefix ""))) (save-match-data (let ((regexp-key (concat "^" (regexp-quote comp-key) (skk-comp-get-regexp skk-comp-prefix)))) (while (and word (not (string-match regexp-key word))) (setq word (pop skk-server-completion-words)))))) (when word (if numericp (concat skk-comp-key (substring word (length comp-key))) word)))) (provide 'skk-server-completion) ;;; skk-server-completion.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-server.el000066400000000000000000000254331361774317600210510ustar00rootroot00000000000000;;; skk-server.el --- $B<-=q%5!<%P$N$?$a$N%W%m%0%i%`(B -*- coding: iso-2022-jp -*- ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, ;; 1997, 1998, 1999, 2000, 2001 ;; Masahiko Sato ;; Author: Masahiko Sato ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either versions 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars)) (defun skk-server-live-p (&optional process) "Return t if PROCESS is alive. When PROCESS is nil, check `skkserv-process' instead." (unless process (setq process skkserv-process)) (and process (eq (process-status process) 'open))) ;;;###autoload (defun skk-server-version () "Return version information of SKK server. When called interactively, print version information." (interactive) (cond ((skk-called-interactively-p 'interactive) (message "%s" (skk-server-version))) ((not (or skk-server-host skk-servers-list)) (skk-error "$B<-=q%5!<%P$N%[%9%H>pJs$,$"$j$^$;$s(B" "Lack of host information of SKK server")) ((skk-server-live-p (skk-open-server)) (let (v) (save-match-data (with-current-buffer skkserv-working-buffer (erase-buffer) ;; $B<-=q%5!<%P$N%P!<%8%g%s$rF@$k!#(B (process-send-string skkserv-process "2") (while (eq (buffer-size) 0) (accept-process-output)) (setq v (buffer-string)) (erase-buffer) ;; $B%[%9%HL>$rF@$k!#(B (process-send-string skkserv-process "3") (while (eq (buffer-size) 0) (accept-process-output)) (goto-char (point-min)) (format (concat "SKK SERVER version %s" (if skk-japanese-message-and-error "($B%[%9%HL>(B %s)" "running on HOST %s")) v (prog1 (buffer-string) (erase-buffer))))))))) ;;;###autoload (defun skk-search-server-1 (file limit) "`skk-search-server' $B$N%5%V%k!<%A%s!#(B" (let ((key (if skk-use-numeric-conversion (skk-num-compute-henkan-key skk-henkan-key) skk-henkan-key)) ;; $B%P%C%U%!%m!<%+%kCM$N$N0l;~JQ?t$K]$,3NG'$G$-$k!#(B ;; $B0J2<$NBP:v$G$[$\2sHr$G$-$kLOMM!#(B (sit-for 0.01) ;; (setq count (1+ count)) (when (> (buffer-size) 0) (if (eq (char-after 1) ?1) ;?1 ;; found key successfully, so check if a whole line ;; is received. (when (eq (char-after (1- (point-max))) ?\n) ;?\n (setq cont nil)) ;; not found or error, so exit (setq cont nil)))) (goto-char (point-min)) (when skk-server-report-response (skk-message "$B<-=q%5!<%P$N1~Ez$r(B %d $B2sBT$A$^$7$?(B" "Waited for server response %d times" count)) (when (eq (following-char) ?1) ;?1 (forward-char 2) (setq l (skk-compute-henkan-lists okurigana)) (when l (cond ((and okurigana skk-henkan-okuri-strictly) ;; $BAw$j2>L>$,F10l$N%(%s%H%j$N$_$rJV$9!#(B (nth 2 l)) ((and okurigana skk-henkan-strict-okuri-precedence) (skk-nunion (nth 2 l) (car l))) (t (car l)))))))) (t ;; server is not active, so search file instead (when (and (stringp file) (file-readable-p file)) (skk-search-jisyo-file file limit)))))) (defun skk-open-server () "$B<-=q%5!<%P$H@\B3$9$k!#%5!<%P!<%W%m%;%9$rJV$9!#(B" (unless (skk-server-live-p) (setq skkserv-process (skk-open-server-1)) (when (skk-server-live-p) (let ((code (cdr (assoc "euc" skk-coding-system-alist)))) (set-process-coding-system skkserv-process code code)))) skkserv-process) (defun skk-open-server-1 () "`skk-open-server' $B$N%5%V%k!<%A%s!#(B skkserv $B%5!<%S%9$r%*!<%W%s$G$-$?$i(B process $B$rJV$9!#(B" (let* ((host (or skk-server-host (getenv "SKKSERVER"))) (prog (or skk-server-prog (getenv "SKKSERV"))) (jisyo (or skk-server-jisyo (getenv "SKK_JISYO"))) (port skk-server-portnum) ;; skk-server-host $B$N>pJs$r(B skk-servers-list $B$KH?1G$9$k(B (list (cond ((null skk-servers-list) (if host (list (list host prog jisyo port)) (setq skk-server-prog nil))) ((and host (not (assoc host skk-servers-list))) ;; skk-servers-list $B$K(B host $B$,F~$C$F$$$J$$>l9g(B (cons (list host prog jisyo port) skk-servers-list)) (t skk-servers-list))) elt process) ;; (while (and (not (skk-server-live-p process)) list) ;; $B%5!<%S%9$,MxMQ2DG=$G$J$$%[%9%H$N>pJs$O(B skk-servers-list $B$+$i>C$9(B (setq skk-servers-list list elt (car list) process (or (skk-open-network-stream (car elt) (nth 3 elt)) ;; $B%5!<%S%9$,MxMQ2DG=$G$J$$>l9g$O%5!<%S%9$r5/F0(B ;; $B$G$-$k$+$I$&$+;n$_$k(B (if (not skk-server-inhibit-startup-server) (apply #'skk-startup-server elt) nil)) list (cdr list))) ;; (unless (skk-server-live-p process) ;; clear skk-server-host to disable server search in this session (setq skk-server-host nil skk-server-prog nil skk-servers-list nil)) ;; $B4D6-JQ?t(B SKKSERVER $B$r(B clear $B$7$F:FEY$NLd$$9g$o$;$rKI$0!#(B (setenv "SKKSERVER" nil t) ;; process)) (defun skk-open-network-stream (&optional host port) "HOST $B$K;XDj$5$l$?%[%9%H$K$*$1$k(B skkserv $B%5!<%S%9$N(B TCP $B@\B3$r%*!<%W%s$9$k!#(B HOST $B$,(B nil $B$J$i$P(B `skk-server-host' $B$r;2>H$9$k!#(B $B%W%m%;%9$rJV$9!#(B" (ignore-errors (let ((process (open-network-stream "skkservd" skkserv-working-buffer (or host skk-server-host) (or port "skkserv")))) (skk-process-kill-without-query process) process))) (defun skk-startup-server (host prog jisyo port) "HOST $B$N(B skkserv $B$rD>@\5/F0$9$k!#(B $B5/F08e$=$N%5!<%S%9$K@\B3$r;n$_$k!#@\B3$G$-$?>l9g$O%W%m%;%9$rJV$9!#(B" (when (and host prog) (let (;;(msgbuff (get-buffer-create " *skkserv-msg*")) (count 7) arg process) ;; skkserv $B$KM?$($k0z?t$r@_Dj$9$k!#(B ;; skkserv $B$N5/F0%*%W%7%g%s$O2<5-$NDL$j!#(B ;; skkserv [-d] [-p NNNN] [JISHO] ;; `-d' $B%G%#%P%C%0!&%b!<%I(B ;; `-p NNNN' $BDL?.MQ$N%]!<%HHV9f$H$7$F(BNNNN$B$r;H$&(B. ;; `~/JISYO' ~/JISYO$B$r<-=q$H$7$FMxMQ(B. (when jisyo ;; skkserv $B$O0z?t$K<-=q$,;XDj$5$l$F$$$J$1$l$P!"(BDEFAULT_JISYO $B$r(B ;; $B;2>H$9$k!#(B (setq arg (list jisyo))) ;;(if skk-server-debug ;; (setq arg (cons "-d" arg))) (when port (setq arg (nconc (list "-p" (number-to-string port)) arg))) ;; skkserv $B$N5/F0%H%i%$%"%k$r7+$jJV$9(B...? (while (> count 0) (skk-message "%s $B$N<-=q%5!<%P$,5/F0$7$F$$$^$;$s!#5/F0$7$^$9(B%s" "SKK SERVER on %s is not active, I will activate it%s" host (make-string count ?.)) (if (or (string= host (system-name)) (string= host "localhost")) ;; server host is local machine (apply 'call-process prog nil ;;msgbuff 0 nil arg) (apply 'call-process skk-server-remote-shell-program nil ;; 0 $B$K$7$F%5%V%W%m%;%9$N=*N;$rBT$C$F$O$$$1$J$$M}M3$,$"$k!)(B ;; $B$J$1$l$P(B msgbuf $B$K%(%i!<=PNO$rl9g$O$3$N(B while $B%k!<%W<+?H$,$$$i$J$$!)(B ;; msgbuff 0 nil host prog arg)) (sleep-for 3) (if (and (setq process (skk-open-network-stream host port)) (skk-server-live-p process)) (setq count 0) (setq count (1- count)))) ;; (cond ((skk-server-live-p process) (skk-message "$B%[%9%H(B %s $B$N<-=q%5!<%P$,5/F0$7$^$7$?(B" "SKK SERVER on %s is active now" skk-server-host) (sit-for 1) ;; process $B$rJV$jCM$H$9$k(B process) (t (skk-message "%s $B$N<-=q%5!<%P$r5/F0$9$k$3$H$,$G$-$^$;$s$G$7$?(B" "Could not activate SKK SERVER on %s" skk-server-host) (sit-for 1) (ding) nil))))) ;;;###autoload (defun skk-adjust-search-prog-list-for-server-search (&optional non-del) "$BJQ?t(B `skk-search-prog-list' $B$rD4@0$9$k!#(B `skk-server-host' $B$b$7$/$O(B `skk-servers-list' $B$,(B nil $B$G$"$l$P!"(B `skk-search-prog-list' $B$+$i(B `skk-search-server' $B$r(B car $B$K;}$D%j%9%H$r>C$9!#(B non-nil $B$G$"$l$P!"2C$($k!#(B" (when (and (or skk-server-host skk-servers-list) (not (assq 'skk-search-server (default-value 'skk-search-prog-list)))) ;; skk-search-prog-list $B$,(B nil $B$H$$$&$3$H$O$^$:$J$$$@$m$&$,!"G0$N$?(B ;; $B$a!"(Bsetq $B$7$F$*$/!#(B (setq-default skk-search-prog-list ;; $BKvHx$KIU$1$k!#KvHx$K$O(B (skk-okuri-search) $B$r;}$C$F$-$?$$?M(B ;; $B$b$$$k$+$b!#%*%W%7%g%s$GIU$1$k>l=j$rJQ99$9$k$h$&$K$7$?J}$,(B ;; $BNI$$!)(B (nconc (default-value 'skk-search-prog-list) (list '(skk-search-server skk-aux-large-jisyo 10000)))))) ;;;###autoload (defun skk-disconnect-server () "$B<-=q%5!<%P$r@Z$jN%$9!#(B" (when (and skk-server-host (skk-server-live-p)) ;; disconnect server (process-send-string skkserv-process "0") ;; Workaround is needed for NTEmacs. It cannot receive output from ;; a server at least in noninteractive mode. (unless (and (eq system-type 'windows-nt) (not (featurep 'meadow)) noninteractive) (accept-process-output skkserv-process)))) ;;(add-hook 'skk-mode-hook 'skk-adjust-search-prog-list-for-server-search) (add-hook 'kill-emacs-hook 'skk-disconnect-server) (run-hooks 'skk-server-load-hook) (provide 'skk-server) ;;; skk-server.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-setup.el.in000066400000000000000000000036621361774317600213100ustar00rootroot00000000000000;;; skk-setup.el --- initial setup for SKK -*- emacs-lisp -*- ;; Copyright (C) 2000 NAKAJIMA Mikio ;; Author: NAKAJIMA Mikio ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin St, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: ;;; Autoloads. (unless (featurep 'xemacs) (require 'skk-autoloads)) ;;; Key bindings. (global-set-key "\C-x\C-j" 'skk-mode) (global-set-key "\C-xj" 'skk-auto-fill-mode) (global-set-key "\C-xt" 'skk-tutorial) ;;; Dictionaries. ;;(defvar skk-large-jisyo "@DIC@") ;;(defvar skk-aux-large-jisyo "@AUXDIC@") ;;(defvar skk-tut-file "@TUT@") ;;; Isearch setting. (defun skk-isearch-setup-maybe () (require 'skk-vars) (when (or (eq skk-isearch-mode-enable 'always) (and (boundp 'skk-mode) skk-mode skk-isearch-mode-enable)) (skk-isearch-mode-setup))) (defun skk-isearch-cleanup-maybe () (require 'skk-vars) (when (and (featurep 'skk-isearch) skk-isearch-mode-enable) (skk-isearch-mode-cleanup))) (add-hook 'isearch-mode-hook #'skk-isearch-setup-maybe) (add-hook 'isearch-mode-end-hook #'skk-isearch-cleanup-maybe) (provide 'skk-setup) ;;; skk-setup.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-show-mode.el000066400000000000000000000145671361774317600214530ustar00rootroot00000000000000;;; skk-show-mode.el --- $B%b!<%I@ZBX;~$K(B tooltip/inline $BI=<($9$k(B -*- coding: iso-2022-jp -*- ;; Copyright (C) 2011 Tsuyoshi Kitamoto ;; Author: 2011 Tsuyoshi Kitamoto ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; ;; ~/.skk $B$K$F(B ;; (setq skk-show-mode-show t) ;; $B$H@_Dj$7$F$/$@$5$$!#(B ;; Emacs $B5/F0Cf$O(B M-x skk-show-mode $B$G%H%0%k$9$k$3$H$,$G$-$^$9!#(B ;; $BJQ?t(B skk-show-mode-style $B$K(B 'tooltip $BKt$O(B 'inline $B$r@_Dj$7$F$/$@$5$$!#(B ;;; Code: (eval-when-compile (require 'skk-vars)) (defadvice skk-isearch-set-initial-mode (before skk-show-mode activate) (setq skk-show-mode-show nil)) (defadvice skk-isearch-initialize-working-buffer (before skk-show-mode activate) (setq skk-show-mode-show nil)) (defadvice skk-cursor-set (after skk-show-mode activate) "$B$+$J%b!<%I$d%"%9%-!<%b!<%I$X@Z$jBX$o$C$?$H$-$K(B skk-*-mode-string $B$r(B tooltip / inline $BI=<($9$k(B." (when (and skk-show-mode-invoked skk-show-mode-show (not skk-isearch-switch)) (let ((func (cdr (assq skk-show-mode-style skk-show-mode-functions)))) (when func (funcall func)))) (setq skk-show-mode-invoked t)) (defun skk-show-mode-inline () (let ((skk-henkan-start-point (point)) string) (unless (skk-in-minibuffer-p) (cond (skk-abbrev-mode (setq string skk-abbrev-mode-string) (set-face-foreground 'skk-show-mode-inline-face skk-cursor-abbrev-color)) (skk-jisx0208-latin-mode (setq string skk-jisx0208-latin-mode-string) (set-face-foreground 'skk-show-mode-inline-face skk-cursor-jisx0208-latin-color)) (skk-katakana (setq string skk-katakana-mode-string) (set-face-foreground 'skk-show-mode-inline-face skk-cursor-katakana-color)) (skk-j-mode (setq string skk-hiragana-mode-string) (set-face-foreground 'skk-show-mode-inline-face skk-cursor-hiragana-color)) (skk-jisx0201-mode (setq string skk-jisx0201-mode-string) (set-face-foreground 'skk-show-mode-inline-face skk-cursor-jisx0201-color)) (t (setq string skk-latin-mode-string) (set-face-foreground 'skk-show-mode-inline-face skk-cursor-latin-color))) ;; (skk-show-mode-inline-1 string))) (sit-for 0.5) (skk-delete-overlay skk-show-mode-inline-overlays)) (defun skk-show-mode-inline-1 (str) ;; skk-dcomp-multiple-show() $B$+$iGRl9g$O(B prefix $B$N(B overlay $B$H>WFM$9$k$?$a(B ;; `skk-prefix-overlay' $B$KDI2C$9$k(B (setq ol (cond ((or (not skk-echo) (string= "" skk-prefix) (< (overlay-end skk-prefix-overlay) (point))) (make-overlay (point) (point))) (t skk-prefix-overlay))) (setq str (concat (overlay-get ol 'after-string) "\n" (make-string beg-col ? ) str))) ;; bottom $B0J30(B (t (setq col (skk-move-to-screen-column beg-col)) (cond ((> beg-col col) ;; $B7e9g$o$;$N6uGr$rDI2C(B (setq str (concat (make-string (- beg-col col) ? ) str))) ;; overlay $B$N:8C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B ((< beg-col col) (backward-char) (setq col (skk-screen-column)) (setq str (concat (make-string (- beg-col col) ? ) str)))))) ;; $B$3$N;~E@$G(B overlay $B$N3+;O0LCV$K(B point $B$,$"$k(B (unless bottom (let ((ol-beg (point)) (ol-end-col (+ col (string-width str))) base-ol) (setq col (skk-move-to-screen-column ol-end-col)) ;; overlay $B$N1&C<$,%^%k%AI}J8;z$H=E$J$C$?$H$-$NHyD4@0(B (when (< ol-end-col col) (setq str (concat str (make-string (- col ol-end-col) ? )))) (setq ol (make-overlay ol-beg (point))) ;; $B85%F%-%9%H$N(B face $B$r7Q>5$7$J$$$h$&$K(B1$B$D8e$m$K(B overlay $B$r:n$C$F!"(B ;; $B$=$N(B face $B$r(B 'default $B$K;XDj$7$F$*$/(B (setq base-ol (make-overlay (point) (1+ (point)))) (overlay-put base-ol 'face 'default) (push base-ol skk-show-mode-inline-overlays) ))) (overlay-put ol 'invisible t) (overlay-put ol 'after-string str) (push ol skk-show-mode-inline-overlays))) (defun skk-show-mode-tooltip () (when window-system (let ((indicator (apply 'skk-mode-string-to-indicator (cond (skk-abbrev-mode `(abbrev ,skk-abbrev-mode-string)) (skk-jisx0208-latin-mode `(jisx0208-latin ,skk-jisx0208-latin-mode-string)) (skk-katakana `(katakana ,skk-katakana-mode-string)) (skk-j-mode `(hiragana ,skk-hiragana-mode-string)) (skk-jisx0201-mode `(jisx0201 ,skk-jisx0201-mode-string)) (t `(latin ,skk-latin-mode-string)))))) (skk-tooltip-show-at-point indicator)))) ;;;###autoload (defun skk-show-mode () (interactive) (message "skk-show-mode-show: %s" (setq skk-show-mode-show (null skk-show-mode-show)))) (provide 'skk-show-mode) ;;; skk-show-mode.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-sticky.el000066400000000000000000000200541361774317600210430ustar00rootroot00000000000000;;; skk-sticky.el --- Improved sticky-shift on SKK -*- coding: iso-2022-jp -*- ;; Copyright (C) 2008 IRIE Tetsuya ;; Author: IRIE Tetsuya ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; [$B35MW(B] ;; SKK $B$G$ODL>o!"JQ493+;O$*$h$SAw$j3+;O$N0LCV$rBgJ8;z$G;XDj$7$^$9$,!"$3(B ;; $B$l$rG$0U$N%-!<$G;XDj$G$-$k$h$&$K$7!"(Bsticky-shift $B%i%$%/$JA`:n$r2DG=(B ;; $B$K$7$^$9!#(B ;; ;; ~/.skk.el $B$K(B ;; ;; (setq skk-sticky-key ";") ;; ;; $B$H=q$$$F$*$/$H(B ";" $B%-!<$GJQ490LCV$,;XDj$G$-$k$h$&$K$J$j$^$9!#Nc$($P(B ;; $B!VM-$k!W$,(B ;; ;; "; a ; r u" ;; ;; $B$G$bF~NO$G$-!"%7%U%H%-!<$r2!$9I,MW$,$J$/$J$j$^$9!#A`:n>e$O(B ;; ;; (info "(skk) Q.3-4 $B:8.;X$r(B SHIFT $B$G9s;H$7$?$/$"$j$^$;$s!#(B") ;; ;; $B$J$I$K$"$kDL>o$N(B sticky-shift $B$HJQ$o$j$^$;$s$,!"2hLLI=<($O(B ;; ;; $BBG80(B $BDL>o$N(Bsticky skk-sticky ;; ; $BJQ2=$J$7(B $B"&(B ;; a $B"&$"(B $B"&$"(B ;; ; $B"&$"(B $B"&$"(B* ;; r $B"&$"(B*r $B"&$"(B*r ;; ;; $B$HA+0\$7$^$9!#(Bskk-sticky $B$O(B ";" $B$r2!$7$?;~E@$GI=<($,JQ2=$9$k$N$Gl9g$O(B ;; ;; (setq skk-sticky-key ";") ;; ;; $B$N$h$&$K(B string $B$r@_Dj$7$F2<$5$$!#(B`skk-sticky-key' $B$K@_Dj$7$?J8;z(B ;; $B$=$N$b$N$rF~NO$7$?$$>l9g$O(B2$B2sB3$1$FBG$D$HF~NO$G$-$^$9!#(B ;; ;; 2. $BI=<($5$l$J$$%-!<(B ;; ;; "$BL5JQ49(B" $B$N$h$&$JI=<($rH<$o$J$$%-!<$N>l9g$O(B ;; ;; (setq skk-sticky-key [muhenkan]) ; Windows $B4D6-$@$H(B [noconvert] ;; ;; $B$N$h$&$K$=$N%-!<$rI=$o$9(B vector $B$r@_Dj$7$F2<$5$$!#(B ;; ;; 3. $BF1;~BG80(B ;; ;; 2$B$D$N%-!<$rF1;~$KBG80$9$k$3$H$G$bJQ490LCV$r;XDj$G$-$^$9!#Nc$($P(B ;; "f" $B$H(B "j" $B$NF1;~BG80$G;XDj$9$k>l9g$O(B ;; ;; (setq skk-sticky-key '(?f ?j)) ;; ;; $B$N$h$&$K(B character $B$N%j%9%H$r@_Dj$7$F2<$5$$!#(B ;; Dvorak $BG[Ns$N$h$&$J!"2!$7$d$9$$>l=j$KE,Ev$J%-!<$,$J$$4D6-$G$b$3$N(B ;; $B5!G=$r;H$$$?$$>l9g$KJXMx$+$b$7$l$^$;$s!#(B ;; ;; [$BCm0U;v9`(B] ;; o $B$3$l$O$"$/$^$G$b!VG$0U$N%-!<$GJQ490LCV$r;XDj$9$k!W$b$N$G$"$j!"(B ;; sticky-shift $B$=$N$b$N$G$O$"$j$^$;$s!#$7$?$,$C$F!"(Blatin $B%b!<%I$d(B ;; abbrev $B%b!<%I!"$^$?(B SKK $B0J30$G$b(B sticky-shift $B$r;H$$$?$$>l9g$OA0=R(B ;; $B$N(B info $B$N$h$&$J@_Dj$rJ;MQ$9$kI,MW$,$"$j$^$9!#(B ;; ;; o skk-hint.el $B$rJ;MQ$9$k>l9g!"(B`skk-hint-start-char' $B$N%G%U%)%k%H$,(B ;; ";" $B$J$N$G@_Dj$K$h$C$F$O3dEv$F%-!<$,=EJ#$9$k2DG=@-$,$"$j$^$9!#(B ;;; TODO ;; * SPC $B$K3dEv$F$?$$$H$$$&?M$b5o$?$j$9$k(B? ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars)) (defvar skk-sticky-key-orig-output nil) (skk-deflocalvar skk-sticky-okuri-flag nil) ;;; $B=i4|@_Dj(B (cond ((stringp skk-sticky-key) (let ((orig-rule (assoc skk-sticky-key (append skk-rom-kana-rule-list skk-rom-kana-base-rule-list)))) (setq skk-sticky-key-orig-output (car (cddr orig-rule))) (setq skk-rom-kana-rule-list (cons `(,skk-sticky-key nil skk-sticky-set-henkan-point) (delete orig-rule skk-rom-kana-rule-list))))) ((vectorp skk-sticky-key) (define-key skk-j-mode-map skk-sticky-key 'skk-sticky-set-henkan-point))) ;;; Functions (defun skk-sticky-looking-back-okuri-mark () "`point' $B$ND>A0$NJ8;z$,(B `*' $B$J$i$P(B t $B$rJV$9!#(B" (and (not (bobp)) (string= "*" (buffer-substring-no-properties (1- (point)) (point))))) (defun skk-sticky-set-okuri-mark () "$BAw$j3+;OE@$r(B `*' $B$rA^F~$9$k$3$H$GI8<1$7!"Aw$j$"$jJQ49$NBT$A>uBV$KF~$k!#(B" (when (eq skk-henkan-mode 'on) (unless (and skk-sticky-okuri-flag (skk-sticky-looking-back-okuri-mark)) (when (and skk-dcomp-activate (skk-dcomp-marked-p)) (skk-dcomp-before-kakutei)) (insert-and-inherit "*") (setq skk-sticky-okuri-flag t) nil))) (defun skk-sticky-set-henkan-point (&optional arg) "$BJQ493+;O0LCV$b$7$/$OAw$j3+;O0LCV$r;XDj$9$k!#(B" (interactive "*P") (cond ((not (eq skk-henkan-mode 'on)) (skk-set-henkan-point-subr)) ((eq (point) (marker-position skk-henkan-start-point)) (let ((data skk-sticky-key-orig-output)) (when data (skk-kakutei) (when (functionp data) (setq data (funcall data (skk-make-raw-arg arg)))) (when (stringp (if (consp data) (car data) data)) (if (consp data) (if skk-katakana (car data) (cdr data)) data))))) (t (skk-sticky-set-okuri-mark)))) (defadvice skk-kakutei (after skk-sticky-ad activate) "`skk-sticky-okuri-flag' $B$r%/%j%"$9$k!#(B" (setq skk-sticky-okuri-flag nil)) (defadvice keyboard-quit (after skk-sticky-ad activate) "`skk-sticky-okuri-flag' $B$r%/%j%"$9$k!#(B" (setq skk-sticky-okuri-flag nil)) (defadvice skk-insert (before skk-sticky-ad activate) "`*' $B$ND>8e$G$"$l$PF~NO$rBgJ8;z$KJQ49$9$k!#(B" (when (and skk-sticky-okuri-flag (skk-sticky-looking-back-okuri-mark) (string= "" skk-prefix)) (let ((pair (rassq (skk-last-command-char) skk-downcase-alist))) (skk-set-last-command-char (if pair (car pair) (upcase (skk-last-command-char))))))) (defadvice skk-set-henkan-point (before skk-sticky-ad activate) "`point' $BD>A0$N(B `*' $B$r>C$9!#(B" (when (and skk-sticky-okuri-flag (skk-sticky-looking-back-okuri-mark)) (delete-backward-char 1))) ;; `skk-kana-input' $B$ODL>o(B `cancel-undo-boundary' $B$r8F$V$,!"(B ;; `skk-sticky-key' $B$N(B2$BEYBG$A$N:]$KK\Mh$"$k$Y$-(B boundary (C-k $B$N8e$J$I(B) ;; $B$b>C$7$F$7$^$&$?$a!"(Badvice $B$K$F8F$P$J$$$h$&$KBP=h$9$k!#(B ;; $B$3$l$K$h$j!"(B`skk-undo-kakutei-word-only' $B$,(B non-nil $B$G$b(B2$BEYBG$A$N;~(B ;; $B$K(B boundary $B$,F~$C$F$7$^$&I{:nMQ$,$"$k$,!"@h$NLdBj$h$j$O%^%7$@$H9M$((B ;; $B$k!#(B ;;; (defadvice skk-kana-input (around skk-sticky-ad activate) ;;; "$B"&D>8e$N(B `skk-sticky-key' $B$NF~NO$N:](B `cancel-undo-boundary' $B$r8F$P$J$$$h$&$K!#(B" ;;; (if (and (stringp skk-sticky-key) ;;; (eq (skk-last-command-char) (string-to-char skk-sticky-key)) ;;; (eq skk-henkan-mode 'on) ;;; (eq (point) (marker-position skk-henkan-start-point))) ;;; (progn ;;; (let ((skk-self-insert-non-undo-count 20)) ;;; ad-do-it) ;;; (setq skk-self-insert-non-undo-count (1+ skk-self-insert-non-undo-count))) ;;; ad-do-it)) ;;; $BF1;~BG804XO"(B (defun skk-sticky-double-p (first next) "FIRST $B$H(B NEXT $B$,F1;~BG80$G$"$l$P(B non-nil $B$rJV$9!#(B" (let ((char (if (characterp first) first (skk-last-command-char)))) (and (not (eq char next)) (memq char skk-sticky-key) (memq next skk-sticky-key)))) (defadvice skk-insert (around skk-sticky-ad-double activate) "$BF1;~BG80$r8!=P$7$F=hM}$9$k!#(B" (cond ((not (consp skk-sticky-key)) ad-do-it) ((not (memq (skk-last-command-char) skk-sticky-key)) ad-do-it) ((sit-for skk-sticky-double-interval t) ;; No input in the interval. ad-do-it) (t ;; Some key's pressed. (let ((next-event (next-command-event))) (if (skk-sticky-double-p this-command (aref (skk-event-key next-event) 0)) (skk-sticky-set-henkan-point) ad-do-it (skk-unread-event next-event)))))) (provide 'skk-sticky) ;;; skk-sticky.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-study.el000066400000000000000000000421771361774317600207170ustar00rootroot00000000000000;;; skk-study.el --- SKK $B3X=,8z2LDs6!%W%m%0%i%`(B -*- coding: iso-2022-jp -*- ;; Copyright (C) 1999, 2000, 2002, 2003 NAKAJIMA Mikio ;; Author: NAKAJIMA Mikio ;; Maintainer: SKK Development Team ;; Keywords: japanese ;; Created: Apr. 11, 1999 ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; $B$"$k8l(B A' $B$r3NDj$7$?>l9g$K!"(BA' $B5Z$S$=$N8+=P$78l(B A $B$KBP$7$F!"D>A0$K(B ;; $BJQ49$7$?8l(B B' $B$H$=$N8+=P$78l(B B $B$r4XO"8l$H$7$FEPO?$7$F$*$-!":FEY(B A ;; $B$NJQ49$r9T$C$?$H$-$K!"(BB $B5Z$S(B B' $B$N%Z%"$,D>A0$N2?2s$+$K3NDj$7$?8l$N(B ;; $BCf$K8+$D$+$l$P!"(BA' $B$rM%@h$7$F=PNO$9$kC1=c$J3X=,8z2L$rDs6!$9$k%W%m%0(B ;; $B%i%`$G$9!#(B ;; ;; $B@N(B SKK ML $B$GOCBj$K$J$C$?C18l$NB0@-$NJ]B8$N$?$a$K!"(Bskk-attr.el $B$r:n(B ;; $B$j$^$7$?$,!"5!G=$rM_D%$j$9$.$F$b$N$K$J$j$^$;$s$G$7$?!#D>A0$NJQ49$H(B ;; $B$N4XO"@-$rJ]B8$9$k$?$a$@$1$K5!G=$r9J$C$F:F9=@.$7$?$N$,$3$N%W%m%0%i(B ;; $B%`$G$9!#(B ;; ;; ;; ~/.skk $B$K(B ;; ;; (require 'skk-study) ;; ;; $B$H=q$$$F2<$5$$!#(B ;; ;; ;; ((okuri-ari . ((A . (((B . B') . (A' ...)) ;; ...)))) ;; (okuri-nasi . ((A . (((B . B') . (A' ...)) ;; ...))))) ;; ;; o examples ;; ;; ((okuri-ari . ;; (("$B$-(Br" . ((("$B$U$/(B" . "$BI~(B") . ("$BCe(B")) ;; (("$B$-(B" . "$BLZ(B") . ("$B@Z(B")) ;; (("$B$($s(B" . "$B1o(B") . ("$B@Z(B")))) ;; ("$B$J(Bk" . ((("$B$3$I$b(B" . "$B;R6!(B") . ("$B5c(B")) ;; (("$B$3$H$j(B" . "$B>.D;(B") . ("$BLD(B")))) ;; ("$B$+(Bk" . ((("$B$+$_(B" . "$B;f(B") . ("$B=q(B")) (("$B$R$s$+$/(B" . "$BIJ3J(B") . ("$B7g(B"))))) ;; ...) ;; (okuri-nasi . ;; (("$B$+$_(B" . ((("$B$-(Br" . "$B@Z(B") . ("$B;f(B")))) ;; ...))) ;; ;; ;;; Code: (eval-when-compile (require 'cl) (defvar jka-compr-compression-info-list) (defvar print-quoted)) (require 'skk-macs) (require 'skk-vars) (require 'ring) (defconst skk-study-file-format-version "0.3") (skk-deflocalvar skk-study-current-buffer-theme nil) ;;;; inline functions. (defsubst skk-study-get-last-henkan-data (index) (and (> (ring-length skk-study-data-ring) index) (ring-ref skk-study-data-ring index))) (defsubst skk-study-get-current-alist (&optional theme) (let ((base-alist (cdr (if theme (assoc theme skk-study-alist) (or (assoc skk-study-current-buffer-theme skk-study-alist) (assoc "general" skk-study-alist)))))) (assq (cond ((or skk-okuri-char skk-henkan-okurigana) 'okuri-ari) (t 'okuri-nasi)) base-alist))) (add-to-list 'skk-search-end-function 'skk-study-search) (add-to-list 'skk-update-end-function 'skk-study-update) ;;;###autoload (defun skk-study-search (henkan-buffer midasi okurigana entry) "$B3X=,%G!<%?$r;2>H$7$F(B ENTRY $B$r2C9)$7!"4XO"@-$N$"$k8l$NM%@h=g0L$r>e$2$FJV$9!#(B" (or skk-study-data-ring (setq skk-study-data-ring (make-ring skk-study-search-times))) (when (and entry (cdr entry)) (or skk-study-alist (skk-study-read)) (with-current-buffer henkan-buffer ;; (("$B$-(Br" . ((("$B$U$/(B" . "$BI~(B") . ("$BCe(B")) (("$B$-(B" . "$BLZ(B") . ("$B@Z(B")))) ;; ("$B$J(Bk" . ((("$B$3$I$b(B" . "$B;R6!(B") . ("$B5c(B"))))) (let ((alist (cdr (assoc midasi (cdr (skk-study-get-current-alist)))))) (when alist (setq entry (skk-study-search-1 alist midasi okurigana entry)))))) entry) (defun skk-study-search-1 (target-alist midasi okurigana entry) (do ((index 0 (1+ index)) (times skk-study-search-times (1- times)) last-data associates e exit) ((or exit (zerop times)) entry) (and (setq last-data (skk-study-get-last-henkan-data index)) ;; ((("$B$U$/(B" . "$BI~(B") . ("$BCe(B")) (("$B$-(B" . "$BLZ(B") . ("$B@Z(B"))) ;; ("$BCe(B") (setq associates (cdr (assoc last-data target-alist))) (setq associates (reverse associates)) (setq exit t) (while (setq e (car associates)) ;;uniq (setq entry (cons e (delete e entry)) associates (cdr associates)))))) ;;;###autoload (defun skk-study-update (henkan-buffer midasi okurigana word purge) "MIDASI $B$H(B WORD $B$K$D$$$F(B `skk-study-data-ring' $B$N:G=i$N4XO"8l$r4XO"IU$1$F3X=,$9$k!#(B" (or skk-study-data-ring (setq skk-study-data-ring (make-ring skk-study-search-times))) (let ((inhibit-quit t) last-data diff grandpa papa baby) (with-current-buffer henkan-buffer (when (and ;; $BBh0l8uJd$G3NDj$7$?$+$I$&$+(B (or skk-study-first-candidate (not (string= word (car skk-henkan-list)))) ;; $BJQ49%P%C%U%!$,JQ$o$C$F$$$J$$$+$I$&$+(B (eq (skk-get-last-henkan-datum 'henkan-buffer) henkan-buffer) (or (not skk-study-max-distance) (and (setq diff (- (point) (skk-get-last-henkan-datum 'henkan-point))) ;; $BD>A0$NJQ49$h$j%]%$%s%H$,A0$X0\F0$7$F$$$J$$$+$I$&$+(B (> diff 0) ;; skk-study-max-distance $B$rD6$($FD>A0$NJQ49$H%]%$%s(B ;; $B%H$,N%$l$F$$$J$$$+$I$&$+!#(B (> skk-study-max-distance diff))) midasi word (setq last-data (if (not (ring-empty-p skk-study-data-ring)) (ring-ref skk-study-data-ring 0))) (not (or (string= midasi "") (string= word "") (and (string= midasi (car last-data)) (string= word (cdr last-data)))))) (or skk-study-alist (skk-study-read)) (setq grandpa (skk-study-get-current-alist) ;; ((("$B$U$/(B" . "$BI~(B") . ("$BCe(B")) (("$B$-(B" . "$BLZ(B") . ("$B@Z(B"))) papa (assoc midasi (cdr grandpa))) (cond ( ;; car $B$K8+=P$78l$r;}$D(B cell $B$,$J$$(B (not (or papa purge)) (setcdr grandpa (nconc (list (cons midasi (list (cons last-data (list word))))) (cdr grandpa)))) ;; $B8+=P$78l$+$i;O$^$k(B cell $B$O$"$k$,!"(Bcdr $B$K(B (last-key . last-word) $B$r(B ;; $B%-!<$K$7$?(B cell $B$,$J$$!#(B ((not (or ;; (("$B$U$/(B" . "$BI~(B") . ("$BCe(B")) (setq baby (assoc last-data (cdr papa))) purge)) (setcdr papa (cons (cons last-data (list word)) (cdr papa)))) ;; $B8+=P$78l$r%-!<$H$7$?4{B8$N(B cell $B9=B$$,$G$-$"$,$C$F$$$k$N$G!"4XO"8l$@$1(B ;; $B%"%C%W%G!<%H$9$k!#(B ((not purge) ;; ring $B%G!<%?$NJ}$,$b$C$H8zN(E*$+!)(B $B$G$b$3$3$NItJ,$N%G!<%?$N%"%C%W%G!<%H(B ;; $B$,8zN(NI$/$G$-$J$$!#(B (setcdr baby (cons word (delete word (cdr baby)))) (if (> (1- (length (cdr baby))) skk-study-associates-number) (skk-study-chomp (cdr baby) (1- skk-study-associates-number)))) (t (setcdr grandpa (delq baby (cdr grandpa))))))))) ;;;###autoload (defun skk-study-save (&optional nomsg) "$B3X=,7k2L$r(B `skk-study-file' $B$XJ]B8$9$k!#(B $B%*%W%7%g%J%k0z?t$N(B NOMSG $B$,(B non-nil $B$G$"$l$P!"J]B8%a%C%;!<%8$rI=<($7$J$$!#(B" (interactive "P") (if (or (and (null skk-study-alist) (not nomsg)) (not skk-study-last-read) (and skk-study-last-save (skk-study-time-lessp skk-study-last-save skk-study-last-read))) (progn (skk-message "SKK $B$N3X=,7k2L$r%;!<%V$9$kI,MW$O$"$j$^$;$s(B" "No SKK study need saving") (sit-for 1)) (skk-study-save-1 nomsg))) (defun skk-study-save-1 (nomsg) (let ((inhibit-quit t) e) (when (not nomsg) (skk-message "SKK $B$N3X=,7k2L$r(B %s $B$K%;!<%V$7$F$$$^$9(B..." "Saving SKK study to %s..." skk-study-file)) (and skk-study-backup-file (file-exists-p (expand-file-name skk-study-file)) (cond ((eq system-type 'ms-dos) (with-temp-file skk-study-backup-file (erase-buffer) (insert-file-contents skk-study-file))) (t (copy-file (expand-file-name skk-study-file) (expand-file-name skk-study-backup-file) 'ok-if-already-exists 'keep-date)))) (with-temp-buffer (insert (format ";;; skk-study-file format version %s\n" skk-study-file-format-version)) (when skk-study-sort-saving ;; sort is not necessary, but make an alist rather readable. (setq e (assq 'okuri-ari skk-study-alist)) (setcdr e (sort (cdr e) (lambda (a b) (skk-string< (car a) (car b))))) (setq e (assq 'okuri-nasi skk-study-alist)) (setcdr e (sort (cdr e) (lambda (a b) (skk-string< (car a) (car b)))))) (skk-study-prin1 skk-study-alist (current-buffer)) (let ((coding-system-for-write (skk-find-coding-system skk-jisyo-code)) jka-compr-compression-info-list) (write-region (point-min) (point-max) skk-study-file))) (setq skk-study-last-save (current-time)) (when (not nomsg) (skk-message "SKK $B$N3X=,7k2L$r(B %s $B$K%;!<%V$7$F$$$^$9(B...$B40N;!*(B" "Saving SKK study to %s...done" skk-study-file) (sit-for 1) (message "")))) ;;;###autoload (defun skk-study-switch-current-theme (theme) "$B%+%l%s%H%P%C%U%!$KBP$7$F(B skk-study $B$N3X=,%F!<%^(B THEME $B$r@_Dj$9$k!#(B $B3X=,%F!<%^L>(B THEME $B$K$OG$0U$NJ8;zNs$r;XDj$G$-$k!#(B $B%+%l%s%H%P%C%U%!$K3X=,%F!<%^$,@_Dj$5$l$J$$$H$-$O!"3X=,%F!<%^(B \"general\" $B$KBP$7$F3X=,$,9T$o$l$k!#(B" (interactive (list (completing-read "Theme of current buffer: (default: general) " (when (or skk-study-alist (skk-study-read)) (let ((n 0)) (mapcar (lambda (e) (setq n (1+ n)) (cons e n)) (mapcar 'car skk-study-alist))))))) (setq skk-study-current-buffer-theme theme) (let ((alist (assoc theme skk-study-alist))) (unless alist (setq skk-study-alist (cons (cons theme '((okuri-ari) (okuri-nasi))) skk-study-alist))))) ;;;###autoload (defun skk-study-remove-theme (theme) "skk-study $B$N3X=,%F!<%^(B THEME $B$r:o=|$9$k!#(B" (interactive (list (completing-read "Remove skk-study theme: " (when (or skk-study-alist (skk-study-read)) (let ((n 0)) (mapcar (lambda (e) (setq n (1+ n)) (cons e n)) (mapcar 'car skk-study-alist)))) nil 'require-match))) (if (string= theme "general") (skk-message "$B3X=,%F!<%^(B `general' $B$O:o=|$G$-$^$;$s(B" "Cannot remove skk-study theme `general'") (setq skk-study-alist (delq (assoc theme skk-study-alist) skk-study-alist)) (when (and skk-study-current-buffer-theme (string= skk-study-current-buffer-theme theme)) (setq skk-study-current-buffer-theme nil)))) ;;;###autoload (defun skk-study-copy-theme (from to) "skk-study $B$N3X=,%F!<%^(B FROM $B$r(B TO $B$K%3%T!<$9$k!#(B TO $B$N4{B8%G!<%?$OGK2u$5$l$k!#(B" (interactive (list (completing-read "Copy skk-study theme from: " (when (or skk-study-alist (skk-study-read)) (let ((n 0)) (mapcar (lambda (e) (setq n (1+ n)) (cons e n)) (mapcar 'car skk-study-alist)))) nil 'require-match) (completing-read "Copy skk-study theme to: " (let ((n 0)) (mapcar (lambda (e) (setq n (1+ n)) (cons e n)) (mapcar 'car skk-study-alist)))))) (when (string= from to) (skk-error "$B%3%T!<85$H%3%T!<@h$N%F!<%^$,F10l$G$9(B" "FROM and TO is the same theme")) (let ((fromalist (copy-tree (cdr (assoc from skk-study-alist)))) (toalist (assoc to skk-study-alist))) (unless fromalist (skk-error "$B%3%T!<85$N3X=,%G!<%?$,$"$j$^$;$s(B" "FROM study data is null")) (if toalist (setcdr toalist fromalist) (setq skk-study-alist (cons (cons to fromalist) skk-study-alist))))) ;;;###autoload (defun skk-study-read (&optional nomsg force) "`skk-study-file' $B$+$i3X=,7k2L$rFI$_9~$`!#(B $B%*%W%7%g%J%k0z?t$N(B FORCE $B$,(B non-nil $B$G$"$l$P!"GK4~$N3NG'$r$7$J$$!#(B" (interactive "P") (skk-create-file skk-study-file (if (not nomsg) (if skk-japanese-message-and-error "SKK $B$N3X=,7k2L%U%!%$%k$r:n$j$^$7$?(B" "I have created an SKK study file for you"))) (when (or (null skk-study-alist) force (skk-yes-or-no-p (format "%s $B$r:FFI$_9~$_$7$^$9$+!)(B " skk-study-file) (format "Reread %s? " skk-study-file))) (unless nomsg (skk-message "%s $B$N(B SKK $B3X=,7k2L$rE83+$7$F$$$^$9(B..." "Expanding SKK study of %s ..." (file-name-nondirectory skk-study-file))) (when skk-study-check-alist-format (skk-study-check-alist-format skk-study-file)) (setq skk-study-alist (skk-study-read-1 skk-study-file)) (setq skk-study-last-read (current-time)) (when (and skk-study-alist (not nomsg)) (skk-message "%s $B$N(B SKK $B3X=,7k2L$rE83+$7$F$$$^$9(B...$B40N;!*(B" "Expanding SKK study of %s ...done" (file-name-nondirectory skk-study-file)) (sit-for 1) (message "")))) (defun skk-study-read-1 (file) ;; read FILE and return alist. (with-temp-buffer (let ((version-string (format ";;; skk-study-file format version %s\n" skk-study-file-format-version)) version) (let ((coding-system-for-read (skk-find-coding-system skk-jisyo-code)) format-alist) (insert-file-contents file)) (when (zerop (buffer-size)) ;; bare alist (insert version-string "((\"general\" . ((okuri-ari) (okuri-nasi))))")) (goto-char (point-min)) (when (looking-at "^;;; skk-study-file format version \\([.0-9]+\\)\n") (setq version (match-string 1))) (cond ((not version) (skk-error "skk-study-file $B$,2u$l$F$$$^$9(B" "Broken skk-study-file")) ((string= version skk-study-file-format-version) (read (current-buffer))) (t ;; convert the format to new one (list (cons "general" (read (current-buffer))))))))) (defun skk-study-check-alist-format (file) "skk-study $B$N3X=,%G!<%?%U%!%$%k(B FILE $B$N%U%)!<%^%C%H$r%A%'%C%/$9$k!#(B" (interactive (list (read-file-name (format "File to check: (default: %s) " skk-study-file) default-directory skk-study-file))) (skk-message "%s $B$N%U%)!<%^%C%H$r%A%'%C%/$7$F$$$^$9(B..." "Checking format of %s..." file) (or (skk-study-check-alist-format-1 (skk-study-read-1 file)) (skk-error "%s $B$N%U%)!<%^%C%H$O2u$l$F$$$^$9(B" "%s format is broken" file)) (skk-message "%s $B$N%U%)!<%^%C%H$r%A%'%C%/$7$F$$$^$9(B...$B40N;(B!" "Checking format of %s...done" file) (sit-for 1) (message "")) (defun skk-study-check-alist-format-1 (alist) (let (a) (dolist (elm alist) (when (and (= (length elm) 3) (stringp (car elm)) (setq a (cdr elm)) (assq 'okuri-ari a) (assq 'okuri-nasi a)) (catch 'exit (let ((index '(okuri-ari okuri-nasi)) (func (lambda (str) (let ((len (length str))) (and (> len 1) (skk-ascii-char-p (aref str (1- len))))))) a2 e f) (while index (and (eq (car index) 'okuri-nasi) (setq func (lambda (str) (let ((len (length str))) (cond ((= len 1)) ((not (skk-ascii-char-p (aref str (1- len))))) ((skk-ascii-char-p (aref str (- len 2))))))))) (setq a2 (cdr (assq (car index) a))) (while a2 (setq e (car a2)) (or (funcall func (car e)) ;; $B8+=P$78l$N%A%'%C%/(B (throw 'exit nil)) (setq f (cdr e)) (while f (if (not (and ;; $BD>A0$NJQ49$N>pJs(B (consp (caar f)) ;; $B4XO"8l%j%9%H(B (listp (cdar f)))) (throw 'exit nil)) (setq f (cdr f))) (setq a2 (cdr a2))) (setq index (cdr index))) t)))))) (defun skk-study-prin1 (form &optional stream) (let ((print-readably t) print-level print-length print-quoted) (prin1 form stream))) (defun skk-study-chomp (nth list) ;; LIST := '(A B C D), NTH := 1 ;; -> '(A B) (and (> nth -1) (setcdr (nthcdr nth list) nil)) list) (defadvice skk-kakutei-initialize (before skk-study-ad activate) (let ((kakutei-word (ad-get-arg 0))) (when kakutei-word (ring-insert skk-study-data-ring (cons skk-henkan-key kakutei-word))))) (defadvice skk-undo-kakutei (after skk-study-ad activate) (let ((last (ring-ref skk-study-data-ring 0)) (last2 (ring-ref skk-study-data-ring 1)) target) (when (and last last2) (setq target (assoc (car last) ;; skk-undo-kakutei is called in henkan buffer (skk-study-get-current-alist)) target (delq (assoc last2 (cdr target)) target))))) ;; time utilities... ;; from ls-lisp.el. Welcome! (defun skk-study-time-lessp (time0 time1) (let ((hi0 (car time0)) (hi1 (car time1)) (lo0 (nth 1 time0)) (lo1 (nth 1 time1))) (or (< hi0 hi1) (and (= hi0 hi1) (< lo0 lo1))))) (add-hook 'kill-emacs-hook 'skk-study-save) (provide 'skk-study) ;;; skk-study.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-tankan.el000066400000000000000000005567661361774317600210410ustar00rootroot00000000000000;;; skk-tankan.el --- SKK $BC14A;zJQ49%W%m%0%i%`(B -*- coding: iso-2022-jp -*- ;; Copyright (C) 2003 YAGI Tatsuya ;; Copyright (C) 2010 Tsuyoshi Kitamoto ;; Author: YAGI Tatsuya ;; Author: Tsuyoshi Kitamoto ;; Maintainer: SKK Development Team ;; Keywords: japanese ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; 1. $B;H$$J}(B ;; ;; 1-a. $BFI$_$N:G8e$K!"FI$_$N0lIt$H$7$F(B @ $B$rF~NO$7$F$+$iJQ49$9$k$H!"(B ;; $B0lJ8;z$N$_$+$i$J$k8uJd$K9J$j9~$s$@>e$G!"(B ;; $B8uJd$rAm2h?t=g$G%=!<%H$7$F$+$iJQ49$7$^$9!#(B ;; ;; 1-b. $B!VFI$_!WItJ,$,?tCM$G$"$l$P!"$=$N?tCM$rAm2h?t$H$9$k8uJd$rI=<($7$^$9!#(B ;; $B"&(B12@ [Q 1 2 @ ] ;; ;; 1-c. $B!VFI$_!WItJ,$,(B @ $B$G$"$l$P!"It [Q @ @ ] ;; ;; 2. $B@_DjJ}K!(B ;; ;; ~/.skk $B$K$Ol9g$O!"0J2<$N$h$&$K(B skk-search-prog-list $B$N@hF,$K(B ;; ;; $BDI2C$7$F$b9=$$$^$;$s!#(B ;; (add-to-list 'skk-search-prog-list ;; '(skk-tankan-search 'skk-search-jisyo-file ;; skk-large-jisyo 10000)) ;; ;; ;; $B$7$+$7!"3NDjJQ49$rJ;MQ$9$k>l9g$O!"(B skk-search-kakutei-jisyo-file ;; ;; $B$^$?$OBe$o$j$N3NDj%W%m%0%i%`$,(B skk-search-prog-list $B$N@hF,$K(B ;; ;; $B$J$1$l$P$$$1$^$;$s!#$=$N>l9g$OBe$o$j$K0J2<$N@_Dj$r$7$^$9!#(B ;; (setq skk-search-prog-list ;; (cons (car skk-search-prog-list) ;; (cons '(skk-tankan-search 'skk-search-jisyo-file ;; skk-large-jisyo 10000) ;; (cdr skk-search-prog-list)))) ;; ;; ;; $BC14A;z8!:w$N%-!<$r(B @ $B$K$9$k(B($B%G%U%)%k%H(B) ;; (setq skk-tankan-search-key ?@) ;; ;; ;; ;; @ $B$rF~NO$G$-$k$h$&$K$9$k(B ; DDSKK 14.2 $B$+$i$OITMW$G$9!#(B ;; ;; (setq skk-rom-kana-rule-list ; $B%a!<%j%s%0%j%9%H(B 2010-11-27 ;; ;; (append skk-rom-kana-rule-list ;; ;; '(("@" nil "@")))) ;; ;; ;; annotation $B$H$7$F2h?t$HIt]$+$i$O$:$9(B ;; (add-hook 'skk-search-excluding-word-pattern-function ;; #'(lambda (kakutei-word) ;; (string-match (format "%s$" ;; (regexp-quote ;; (char-to-string skk-tankan-search-key))) ;; skk-henkan-key))) ;; ;; ;; $BJ8;z(B CHAR $B$N(B ANNOTATION ($BJ8;zNs(B) $B$rJQ99$7$?$$>l9g(B ;; ;; (skk-tankan-set-char-annotation CHAR ANNOTATION) ;; ;; ;; $B%a%b%j$r@aLs$7$?$$?M8~$1(B ($BIt==KNRGRLRSKt(B\ $B8}SxEZ;NTiTjM.UwUyV%;3V_9)8J6R43VvVxW.W0W55]W@WDWF(B\ $B?4Xy8M 57777 ;; (skk-tankan-get-char-data 57777) ;; => (24 7 9) ;; (aref skk-tankan-radical-vector 24) ;; => "$B==(B" (let* ((charset (if (eval-when-compile (featurep 'emacs)) ;; GNU Emacs (char-charset char skk-charset-list) (char-charset char))) ; => 'japanese-jisx0208 ; or 'japanese-jisx0213-2 (fun (cdr (assq charset skk-tankan-get-char-data-functions)))) ;; (or (and fun (funcall fun char)) ; => skk-tankan-get-char-data-0213-1() (list 0 0 0)))) (defun skk-tankan-get-char-data-0213-1 (char) (skk-tankan-get-char-data-internal char #'skk-tankan-encode-0213-1 skk-tankan-radical-stroke-table-0213-1)) (defun skk-tankan-get-char-data-0213-2 (char) (skk-tankan-get-char-data-internal char #'skk-tankan-encode-0213-2 skk-tankan-radical-stroke-table-0213-2)) (defun skk-tankan-get-char-data-internal (char encoder table) (let ((n (funcall encoder char)) radical dat stroke) (if (null n) nil (setq n (* 2 n) ; table $B$O!"(B1 $BJ8;z$"$?$j(B 2 byte $B$r;HMQ(B radical (aref table n) ; $BIt 55329 ;; (split-char 55329) => (japanese-jisx0208 48 33) ;; split-char $B$N7k2L$r(B 16$B?J$KD>$9$H(B JIS$B%3!<%I(B $B$,F@$i$l$k!#(B ;; (format "%x %x" 48 33) => "30 21" ;; ?! = 33 = 0x21 ;; 01$B6h!A(B13$B6h$^$G$OHs4A;zNN0h(B ;; $B6h$R$H$DEv$?$j(B (- (* 16 6) 2) = 94 ;; (skk-tankan-encode-0213-1 55329) => 188 (defun skk-tankan-encode-0213-1 (char) (let* ((l (split-char char)) (n (+ (* 94 (- (nth 1 l) ?! 13)) (- (nth 2 l) ?!)))) (and (>= n 0) n))) (defun skk-tankan-encode-0213-2 (char) (let* ((l (skk-split-char char)) (ku (- (nth 1 l) ?!)) (tmp (if (>= ku 77) (- ku 68) (cdr (assq ku '((0 . 0) (2 . 1) (3 . 2) (4 . 3) (7 . 4) (11 . 5) (12 . 6) (13 . 7) (14 . 8))))))) (and tmp (+ (* 94 tmp) (- (nth 2 l) ?!))))) (defun skk-search-by-stroke-or-radical-sub (high himax lomin lomax num i charset) (let (low char list) (while (<= high himax) (setq low lomin) (while (<= low lomax) (setq char (make-char charset high low)) (if (= num (nth i (skk-tankan-get-char-data char))) (setq list (cons (char-to-string char) list))) (setq low (1+ low))) (setq high (1+ high))) list)) (defun skk-search-by-stroke-or-radical (num method) "JIS X 0208 $BKt$O(B JIS X 0213-[12] $B$NJ8;z=89g$N$&$A;XDj$NJ}K!$GC14A;z$r8!:w$9$k!#(B METHOD $B$,(B 0 $B$G$"$l$P?tCM(B NUM $B$OIt@\;2>H$9$k$h$&=q$-49$($k!#(B ;; $B",$N(B 1st byte $B$,Ito$O(B `skk-search-prog-list' $B$N#1MWAG$H$7$F => $BAm2h?tJQ49(B ((string-match "^[0-9]+$" skk-henkan-key) (skk-search-by-stroke-or-radical (string-to-number skk-henkan-key) 2)) ;; $B"&(B@@ => $BIt => "$BFI$_(B"$BC14A;zJQ49(B (t (apply func args)))))))) (defun skk-tankan-select-tankanji-kouho (lis) (let ((top lis) tmp) ;; select TANKANJI KOUHO (while (cdr lis) ;; remove annotation (setq tmp (nth 1 lis)) (if (string-match ";" tmp) (setq tmp (substring tmp 0 (match-beginning 0)))) (if (not (string-match "^.$" tmp)) (setcdr lis (cddr lis)) (setq lis (cdr lis)) (setq tmp (string-to-char tmp) tmp (cons tmp (cons (skk-tankan-get-char-annotation tmp) (skk-tankan-get-char-data tmp)))) (setcar lis tmp))) ;; sort KOUHO by KAKUSUU(or BUSYU) (setq lis (sort (cdr top) (lambda (x y) (let ((xa (nth 2 x)) (xb (nth 3 x)) (xc (nth 4 x)) (ya (nth 2 y)) (yb (nth 3 y)) (yc (nth 4 y))) (if (= xc yc) (if (= xa ya) (if (= xb yb) (< (car x) (car y)) (< xb yb)) (< xa ya)) (< xc yc)))))) ;; return list with annotation (mapcar (lambda (cell) (let ((anno (if (zerop (nth 2 cell)) (nth 1 cell) (format "%d$B2h(B(%s$BIt(B%d$B2h(B)%s" (nth 4 cell) (aref skk-tankan-radical-vector (nth 2 cell)) (nth 3 cell) (or (nth 1 cell) "") )))) (if (zerop (length anno)) (char-to-string (car cell)) (concat (char-to-string (car cell)) ";" anno)))) lis))) ;;;###autoload (defun skk-search-tankanji (&optional jisyo) (let ((skk-henkan-key (concat skk-henkan-key (char-to-string skk-tankan-search-key))) (server-prog (if skk-server-host (assq 'skk-search-server skk-search-prog-list) nil))) (or (cond ((and (stringp jisyo) (file-readable-p jisyo)) (skk-tankan-search 'skk-search-jisyo-file jisyo 10000)) ((and (stringp skk-cdb-large-jisyo) (file-readable-p skk-cdb-large-jisyo)) (skk-tankan-search 'skk-search-cdb-jisyo skk-cdb-large-jisyo)) ((and (stringp skk-large-jisyo) (file-readable-p skk-large-jisyo)) (skk-tankan-search 'skk-search-jisyo-file skk-large-jisyo 10000)) (t (skk-tankan-search 'skk-search-ja-dic-maybe))) (if server-prog (apply #'skk-tankan-search server-prog) nil)))) ;;; annotation data for japanese-jisx0208 (when skk-tankan-annotation-table (let ((l '( (?$B!!(B "$BOB;z4V3V(B,IDEOGRAPHIC SPACE") (?$B!"(B "$BFIE@(B,IDEOGRAPHIC COMMA") (?$B!#(B "$B6gE@(B,IDEOGRAPHIC FULL STOP") (?$B!$(B "$B%3%s%^(B,COMMA") (?$B!%(B "$B%T%j%*%I(B,FULL STOP") (?$B!&(B "$BCfE@(B,KATAKANA MIDDLE DOT") (?$B!'(B "$B%3%m%s(B,COLON") (?$B!((B "$B%;%_%3%m%s(B,SEMICOLON") (?$B!)(B "$B5?LdId(B,QUESTION MARK") (?$B!*(B "$B46C2Id(B,EXCLAMATION MARK") (?$B!+(B "$BByE@(B,KATAKANA-HIRAGANA VOICED SOUND MARK") (?$B!,(B "$BH>ByE@(B,KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK") (?$B!-(B "$B%"%/%5%s%F%.%e(B,$B%"%-%e!<%H%"%/%;%s%H(B,$B%W%i%$%`5-9f(B,ACUTE ACCENT") (?$B!.(B "$B%"%/%5%s%0%i!<%V(B,$B%0%l!<%V%"%/%;%s%H(B,GRAVE ACCENT") (?$B!/(B "$B%&%`%i%&%H(B,$B%@%$%(%l%7%9(B,DIAERESIS") (?$B!0(B "$B%"%/%5%s%7%k%3%s%U%l%C%/%9(B,$B%5!<%+%`%U%l%C%/%9%"%/%;%s%H(B,CIRCUMFLEX ACCENT") (?$B!1(B "$B%*!<%P!<%i%$%s(B,$BO@M}H]Dj5-9f(B,OVERLINE") (?$B!2(B "$B%"%s%@!<%i%$%s(B,LOW LINE") (?$B!3(B "$BJR2>L>7+JV$75-9f(B,KATAKANA ITERATION MARK") (?$B!4(B "$BJR2>L>7+JV$75-9f(B($BByE@(B),KATAKANA VOICED ITERATION MARK") (?$B!5(B "$BJ?2>L>7+JV$75-9f(B,HIRAGANA ITERATION MARK") (?$B!6(B "$BJ?2>L>7+JV$75-9f(B($BByE@(B),HIRAGANA VOICED ITERATION MARK") (?$B!7(B "$BF1$8$/5-9f(B,DITTO MARK") (?$B!8(B "$BF1>e5-9f(B,CJK UNIFIED IDEOGRAPH-4EDD") (?$B!9(B "$B7+JV$75-9f(B,IDEOGRAPHIC ITERATION MARK") (?$B!:(B "$B$7$a(B,IDEOGRAPHIC CLOSING MARK") (?$B!;(B "$B4A?t;z%<%m(B,IDEOGRAPHIC NUMBER ZERO") (?$B!<(B "$BD92;5-9f(B,KATAKANA-HIRAGANA PROLONGED SOUND MARK") (?$B!=(B "$B%@%C%7%e(B($BA43Q(B),EM DASH") (?$B!>(B "$B%O%$%U%s(B($B;MJ,(B),HYPHEN") (?$B!?(B "$B.3g8L(B,$B;O$a4]3g8L(B,LEFT PARENTHESIS") (?$B!K(B "$B=*$o$j>.3g8L(B,$B=*$o$j4]3g8L(B,RIGHT PARENTHESIS") (?$B!L(B "$B;O$a$-$C$3$&(B($B559C(B)$B3g8L(B,LEFT TORTOISE SHELL BRACKET") (?$B!M(B "$B=*$o$j$-$C$3$&(B($B559C(B)$B3g8L(B,RIGHT TORTOISE SHELL BRACKET") (?$B!N(B "$B;O$aBg3g8L(B,$B;O$a3Q3g8L(B,LEFT SQUARE BRACKET") (?$B!O(B "$B=*$o$jBg3g8L(B,$B=*$o$j3Q3g8L(B,RIGHT SQUARE BRACKET") (?$B!P(B "$B;O$aCf3g8L(B,$B;O$aGH3g8L(B,LEFT CURLY BRACKET") (?$B!Q(B "$B=*$o$jCf3g8L(B,$B=*$o$jGH3g8L(B,RIGHT CURLY BRACKET") (?$B!R(B "$B;O$a;33g8L(B,LEFT ANGLE BRACKET") (?$B!S(B "$B=*$o$j;33g8L(B,RIGHT ANGLE BRACKET") (?$B!T(B "$B;O$aFs=E;33g8L(B,LEFT DOUBLE ANGLE BRACKET") (?$B!U(B "$B=*$o$jFs=E;33g8L(B,RIGHT DOUBLE ANGLE BRACKET") (?$B!V(B "$B;O$a$+$.3g8L(B,LEFT CORNER BRACKET") (?$B!W(B "$B=*$o$j$+$.3g8L(B,RIGHT CORNER BRACKET") (?$B!X(B "$B;O$aFs=E$+$.3g8L(B,LEFT WHITE CORNER BRACKET") (?$B!Y(B "$B=*$o$jFs=E$+$.3g8L(B,RIGHT WHITE CORNER BRACKET") (?$B!Z(B "$B;O$a$9$_IU$-3g8L(B,LEFT BLACK LENTICULAR BRACKET") (?$B![(B "$B=*$o$j$9$_IU$-3g8L(B,RIGHT BLACK LENTICULAR BRACKET") (?$B!\(B "$B@5Id9f(B,$B2C;;5-9f(B,PLUS SIGN") (?$B!](B "$BIiId9f(B,$B8:;;5-9f(B,MINUS SIGN") (?$B!^(B "$B@5Kt$OIiId9f(B,PLUS-MINUS SIGN") (?$B!_(B "$B>h;;5-9f(B,MULTIPLICATION SIGN") (?$B!`(B "$B=|;;5-9f(B,DIVISION SIGN") (?$B!a(B "$BEy9f(B,EQUALS SIGN") (?$B!b(B "$BEy9fH]Dj(B,NOT EQUAL TO") (?$B!c(B "$BITEy9f(B($B$h$j>.(B),LESS-THAN SIGN") (?$B!d(B "$BITEy9f(B($B$h$jBg(B),GREATER-THAN SIGN") (?$B!e(B "$B$h$j>.$5$$$+Kt$OEy$7$$(B,LESS-THAN OVER EQUAL TO") (?$B!f(B "$B$h$jBg$-$$$+Kt$OEy$7$$(B,GREATER-THAN OVER EQUAL TO") (?$B!g(B "$BL58BBg(B,INFINITY") (?$B!h(B "$B$f$($K(B,THEREFORE") (?$B!i(B "$BM:5-9f(B,MALE SIGN") (?$B!j(B "$B;s5-9f(B,FEMALE SIGN") (?$B!k(B "$BEY(B,DEGREE SIGN") (?$B!l(B "$BJ,(B,PRIME") (?$B!m(B "$BIC(B,DOUBLE PRIME") (?$B!n(B "$B%;;aEY5-9f(B,DEGREE CELSIUS") (?$B!o(B "$B1_5-9f(B,YEN SIGN") (?$B!p(B "$B%I%k5-9f(B,DOLLAR SIGN") (?$B!q(B "$B%;%s%H5-9f(B,CENT SIGN") (?$B!r(B "$B%]%s%I5-9f(B,POUND SIGN") (?$B!s(B "$B%Q!<%;%s%H5-9f(B,PERCENT SIGN") (?$B!t(B "$BHV9f5-9f(B,$B0f$2$?(B,NUMBER SIGN") (?$B!u(B "$B%"%s%Q%5%s%I(B,AMPERSAND") (?$B!v(B "$B@10u(B,$B%"%9%F%j%9%/(B,ASTERISK") (?$B!w(B "$BC12A5-9f(B,COMMERCIAL AT") (?$B!x(B "$B@a5-9f(B,SECTION SIGN") (?$B!y(B "$BGr@1(B,WHITE STAR") (?$B!z(B "$B9u@1(B,BLACK STAR") (?$B!{(B "$B4]0u(B,$BGr4](B,WHITE CIRCLE") (?$B!|(B "$B9u4](B,BLACK CIRCLE") (?$B!}(B "$BFs=E4](B,BULLSEYE") (?$B!~(B "$B$R$77A(B,WHITE DIAMOND") (?$B"!(B "$B9u$R$77A(B,BLACK DIAMOND") (?$B""(B "$B;M3Q(B,WHITE SQUARE") (?$B"#(B "$B9u;M3Q(B,BLACK SQUARE") (?$B"$(B "$B;03Q(B,WHITE UP-POINTING TRIANGLE") (?$B"%(B "$B9u;03Q(B,BLACK UP-POINTING TRIANGLE") (?$B"&(B "$B5U;03Q(B,WHITE DOWN-POINTING TRIANGLE") (?$B"'(B "$B5U9u;03Q(B,BLACK DOWN-POINTING TRIANGLE") (?$B"((B "$BJF0u(B,REFERENCE MARK") (?$B")(B "$BM9JX5-9f(B,POSTAL MARK") (?$B"*(B "$B1&Lp0u(B,RIGHTWARDS ARROW") (?$B"+(B "$B:8Lp0u(B,LEFTWARDS ARROW") (?$B",(B "$B>eLp0u(B,UPWARDS ARROW") (?$B"-(B "$B2(B "$B??ItJ,=89g(B,SUBSET OF") (?$B"?(B "$B??ItJ,=89g(B($B5UJ}8~(B),SUPERSET OF") (?$B"@(B "$B9gJ;=89g(B,UNION") (?$B"A(B "$B6&DL=89g(B,INTERSECTION") (?$B"J(B "$B5Z$S(B($B9g@\(B),LOGICAL AND") (?$B"K(B "$BKt$O(B($BN%@\(B),LOGICAL OR") (?$B"L(B "$BH]Dj(B,NOT SIGN") (?$B"M(B "$B$J$i$P(B($B4^0U(B),RIGHTWARDS DOUBLE ARROW") (?$B"N(B "$BF1CM(B,LEFT RIGHT DOUBLE ARROW") (?$B"O(B "$B$9$Y$F$N(B($BIaDL8BDj;R(B),FOR ALL") (?$B"P(B "$BB8:_$9$k(B($BB8:_8BDj;R(B),THERE EXISTS") (?$B"\(B "$B3Q(B,ANGLE") (?$B"](B "$B?bD>(B,UP TACK") (?$B"^(B "$B8L(B,ARC") (?$B"_(B "$B%G%k(B,$B%i%&%s%I%G%#!<(B,PARTIAL DIFFERENTIAL") (?$B"`(B "$B%J%V%i(B,NABLA") (?$B"a(B "$B>o$KEy$7$$(B,$B9gF1(B,IDENTICAL TO") (?$B"b(B "$B$[$H$s$IEy$7$$(B,APPROXIMATELY EQUAL TO OR THE IMAGE OF") (?$B"c(B "$BHs>o$K>.$5$$(B,MUCH LESS-THAN") (?$B"d(B "$BHs>o$KBg$-$$(B,MUCH GREATER-THAN") (?$B"e(B "$B:,9f(B,SQUARE ROOT") (?$B"f(B "$BAj;w(B,REVERSED TILDE") (?$B"g(B "$BHfNc(B,PROPORTIONAL TO") (?$B"h(B "$B$J$<$J$i$P(B,BECAUSE") (?$B"i(B "$B@QJ,5-9f(B,INTEGRAL") (?$B"j(B "2$B=E@QJ,5-9f(B,DOUBLE INTEGRAL") (?$B"r(B "$B%*%s%0%9%H%m!<%`(B,ANGSTROM SIGN") (?$B"s(B "$B%Q!<%_%k(B,PER MILLE SIGN") (?$B"t(B "$B%7%c!<%W(B,MUSIC SHARP SIGN") (?$B"u(B "$B%U%i%C%H(B,MUSIC FLAT SIGN") (?$B"v(B "$B2;Id(B,EIGHTH NOTE") (?$B"w(B "$B%@%,!<(B,DAGGER") (?$B"x(B "$B%@%V%k%@%,!<(B,DOUBLE DAGGER") (?$B"y(B "$BCJMn5-9f(B,PILCROW SIGN") (?$B"~(B "$BBg$-$J4](B,LARGE CIRCLE") (?$B#0(B "0,DIGIT ZERO") (?$B#1(B "1,DIGIT ONE") (?$B#2(B "2,DIGIT TWO") (?$B#3(B "3,DIGIT THREE") (?$B#4(B "4,DIGIT FOUR") (?$B#5(B "5,DIGIT FIVE") (?$B#6(B "6,DIGIT SIX") (?$B#7(B "7,DIGIT SEVEN") (?$B#8(B "8,DIGIT EIGHT") (?$B#9(B "9,DIGIT NINE") (?$B#A(B "$B%i%F%sBgJ8;z(BA,LATIN CAPITAL LETTER A") (?$B#B(B "$B%i%F%sBgJ8;z(BB,LATIN CAPITAL LETTER B") (?$B#C(B "$B%i%F%sBgJ8;z(BC,LATIN CAPITAL LETTER C") (?$B#D(B "$B%i%F%sBgJ8;z(BD,LATIN CAPITAL LETTER D") (?$B#E(B "$B%i%F%sBgJ8;z(BE,LATIN CAPITAL LETTER E") (?$B#F(B "$B%i%F%sBgJ8;z(BF,LATIN CAPITAL LETTER F") (?$B#G(B "$B%i%F%sBgJ8;z(BG,LATIN CAPITAL LETTER G") (?$B#H(B "$B%i%F%sBgJ8;z(BH,LATIN CAPITAL LETTER H") (?$B#I(B "$B%i%F%sBgJ8;z(BI,LATIN CAPITAL LETTER I") (?$B#J(B "$B%i%F%sBgJ8;z(BJ,LATIN CAPITAL LETTER J") (?$B#K(B "$B%i%F%sBgJ8;z(BK,LATIN CAPITAL LETTER K") (?$B#L(B "$B%i%F%sBgJ8;z(BL,LATIN CAPITAL LETTER L") (?$B#M(B "$B%i%F%sBgJ8;z(BM,LATIN CAPITAL LETTER M") (?$B#N(B "$B%i%F%sBgJ8;z(BN,LATIN CAPITAL LETTER N") (?$B#O(B "$B%i%F%sBgJ8;z(BO,LATIN CAPITAL LETTER O") (?$B#P(B "$B%i%F%sBgJ8;z(BP,LATIN CAPITAL LETTER P") (?$B#Q(B "$B%i%F%sBgJ8;z(BQ,LATIN CAPITAL LETTER Q") (?$B#R(B "$B%i%F%sBgJ8;z(BR,LATIN CAPITAL LETTER R") (?$B#S(B "$B%i%F%sBgJ8;z(BS,LATIN CAPITAL LETTER S") (?$B#T(B "$B%i%F%sBgJ8;z(BT,LATIN CAPITAL LETTER T") (?$B#U(B "$B%i%F%sBgJ8;z(BU,LATIN CAPITAL LETTER U") (?$B#V(B "$B%i%F%sBgJ8;z(BV,LATIN CAPITAL LETTER V") (?$B#W(B "$B%i%F%sBgJ8;z(BW,LATIN CAPITAL LETTER W") (?$B#X(B "$B%i%F%sBgJ8;z(BX,LATIN CAPITAL LETTER X") (?$B#Y(B "$B%i%F%sBgJ8;z(BY,LATIN CAPITAL LETTER Y") (?$B#Z(B "$B%i%F%sBgJ8;z(BZ,LATIN CAPITAL LETTER Z") (?$B#a(B "$B%i%F%s>.J8;z(BA,LATIN SMALL LETTER A") (?$B#b(B "$B%i%F%s>.J8;z(BB,LATIN SMALL LETTER B") (?$B#c(B "$B%i%F%s>.J8;z(BC,LATIN SMALL LETTER C") (?$B#d(B "$B%i%F%s>.J8;z(BD,LATIN SMALL LETTER D") (?$B#e(B "$B%i%F%s>.J8;z(BE,LATIN SMALL LETTER E") (?$B#f(B "$B%i%F%s>.J8;z(BF,LATIN SMALL LETTER F") (?$B#g(B "$B%i%F%s>.J8;z(BG,LATIN SMALL LETTER G") (?$B#h(B "$B%i%F%s>.J8;z(BH,LATIN SMALL LETTER H") (?$B#i(B "$B%i%F%s>.J8;z(BI,LATIN SMALL LETTER I") (?$B#j(B "$B%i%F%s>.J8;z(BJ,LATIN SMALL LETTER J") (?$B#k(B "$B%i%F%s>.J8;z(BK,LATIN SMALL LETTER K") (?$B#l(B "$B%i%F%s>.J8;z(BL,LATIN SMALL LETTER L") (?$B#m(B "$B%i%F%s>.J8;z(BM,LATIN SMALL LETTER M") (?$B#n(B "$B%i%F%s>.J8;z(BN,LATIN SMALL LETTER N") (?$B#o(B "$B%i%F%s>.J8;z(BO,LATIN SMALL LETTER O") (?$B#p(B "$B%i%F%s>.J8;z(BP,LATIN SMALL LETTER P") (?$B#q(B "$B%i%F%s>.J8;z(BQ,LATIN SMALL LETTER Q") (?$B#r(B "$B%i%F%s>.J8;z(BR,LATIN SMALL LETTER R") (?$B#s(B "$B%i%F%s>.J8;z(BS,LATIN SMALL LETTER S") (?$B#t(B "$B%i%F%s>.J8;z(BT,LATIN SMALL LETTER T") (?$B#u(B "$B%i%F%s>.J8;z(BU,LATIN SMALL LETTER U") (?$B#v(B "$B%i%F%s>.J8;z(BV,LATIN SMALL LETTER V") (?$B#w(B "$B%i%F%s>.J8;z(BW,LATIN SMALL LETTER W") (?$B#x(B "$B%i%F%s>.J8;z(BX,LATIN SMALL LETTER X") (?$B#y(B "$B%i%F%s>.J8;z(BY,LATIN SMALL LETTER Y") (?$B#z(B "$B%i%F%s>.J8;z(BZ,LATIN SMALL LETTER Z") (?$B$!(B "$B>.=q$-J?2>L>$"(B,HIRAGANA LETTER SMALL A") (?$B$"(B "$BJ?2>L>$"(B,HIRAGANA LETTER A") (?$B$#(B "$B>.=q$-J?2>L>$$(B,HIRAGANA LETTER SMALL I") (?$B$$(B "$BJ?2>L>$$(B,HIRAGANA LETTER I") (?$B$%(B "$B>.=q$-J?2>L>$&(B,HIRAGANA LETTER SMALL U") (?$B$&(B "$BJ?2>L>$&(B,HIRAGANA LETTER U") (?$B$'(B "$B>.=q$-J?2>L>$((B,HIRAGANA LETTER SMALL E") (?$B$((B "$BJ?2>L>$((B,HIRAGANA LETTER E") (?$B$)(B "$B>.=q$-J?2>L>$*(B,HIRAGANA LETTER SMALL O") (?$B$*(B "$BJ?2>L>$*(B,HIRAGANA LETTER O") (?$B$+(B "$BJ?2>L>$+(B,HIRAGANA LETTER KA") (?$B$,(B "$BByE@IU$-J?2>L>$+(B,HIRAGANA LETTER GA") (?$B$-(B "$BJ?2>L>$-(B,HIRAGANA LETTER KI") (?$B$.(B "$BByE@IU$-J?2>L>$-(B,HIRAGANA LETTER GI") (?$B$/(B "$BJ?2>L>$/(B,HIRAGANA LETTER KU") (?$B$0(B "$BByE@IU$-J?2>L>$/(B,HIRAGANA LETTER GU") (?$B$1(B "$BJ?2>L>$1(B,HIRAGANA LETTER KE") (?$B$2(B "$BByE@IU$-J?2>L>$1(B,HIRAGANA LETTER GE") (?$B$3(B "$BJ?2>L>$3(B,HIRAGANA LETTER KO") (?$B$4(B "$BByE@IU$-J?2>L>$3(B,HIRAGANA LETTER GO") (?$B$5(B "$BJ?2>L>$5(B,HIRAGANA LETTER SA") (?$B$6(B "$BByE@IU$-J?2>L>$5(B,HIRAGANA LETTER ZA") (?$B$7(B "$BJ?2>L>$7(B,HIRAGANA LETTER SI") (?$B$8(B "$BByE@IU$-J?2>L>$7(B,HIRAGANA LETTER ZI") (?$B$9(B "$BJ?2>L>$9(B,HIRAGANA LETTER SU") (?$B$:(B "$BByE@IU$-J?2>L>$9(B,HIRAGANA LETTER ZU") (?$B$;(B "$BJ?2>L>$;(B,HIRAGANA LETTER SE") (?$B$<(B "$BByE@IU$-J?2>L>$;(B,HIRAGANA LETTER ZE") (?$B$=(B "$BJ?2>L>$=(B,HIRAGANA LETTER SO") (?$B$>(B "$BByE@IU$-J?2>L>$=(B,HIRAGANA LETTER ZO") (?$B$?(B "$BJ?2>L>$?(B,HIRAGANA LETTER TA") (?$B$@(B "$BByE@IU$-J?2>L>$?(B,HIRAGANA LETTER DA") (?$B$A(B "$BJ?2>L>$A(B,HIRAGANA LETTER TI") (?$B$B(B "$BByE@IU$-J?2>L>$A(B,HIRAGANA LETTER DI") (?$B$C(B "$B>.=q$-J?2>L>$D(B,HIRAGANA LETTER SMALL TU") (?$B$D(B "$BJ?2>L>$D(B,HIRAGANA LETTER TU") (?$B$E(B "$BByE@IU$-J?2>L>$D(B,HIRAGANA LETTER DU") (?$B$F(B "$BJ?2>L>$F(B,HIRAGANA LETTER TE") (?$B$G(B "$BByE@IU$-J?2>L>$F(B,HIRAGANA LETTER DE") (?$B$H(B "$BJ?2>L>$H(B,HIRAGANA LETTER TO") (?$B$I(B "$BByE@IU$-J?2>L>$H(B,HIRAGANA LETTER DO") (?$B$J(B "$BJ?2>L>$J(B,HIRAGANA LETTER NA") (?$B$K(B "$BJ?2>L>$K(B,HIRAGANA LETTER NI") (?$B$L(B "$BJ?2>L>$L(B,HIRAGANA LETTER NU") (?$B$M(B "$BJ?2>L>$M(B,HIRAGANA LETTER NE") (?$B$N(B "$BJ?2>L>$N(B,HIRAGANA LETTER NO") (?$B$O(B "$BJ?2>L>$O(B,HIRAGANA LETTER HA") (?$B$P(B "$BByE@IU$-J?2>L>$O(B,HIRAGANA LETTER BA") (?$B$Q(B "$BH>ByE@IU$-J?2>L>$O(B,HIRAGANA LETTER PA") (?$B$R(B "$BJ?2>L>$R(B,HIRAGANA LETTER HI") (?$B$S(B "$BByE@IU$-J?2>L>$R(B,HIRAGANA LETTER BI") (?$B$T(B "$BH>ByE@IU$-J?2>L>$R(B,HIRAGANA LETTER PI") (?$B$U(B "$BJ?2>L>$U(B,HIRAGANA LETTER HU") (?$B$V(B "$BByE@IU$-J?2>L>$U(B,HIRAGANA LETTER BU") (?$B$W(B "$BH>ByE@IU$-J?2>L>$U(B,HIRAGANA LETTER PU") (?$B$X(B "$BJ?2>L>$X(B,HIRAGANA LETTER HE") (?$B$Y(B "$BByE@IU$-J?2>L>$X(B,HIRAGANA LETTER BE") (?$B$Z(B "$BH>ByE@IU$-J?2>L>$X(B,HIRAGANA LETTER PE") (?$B$[(B "$BJ?2>L>$[(B,HIRAGANA LETTER HO") (?$B$\(B "$BByE@IU$-J?2>L>$[(B,HIRAGANA LETTER BO") (?$B$](B "$BH>ByE@IU$-J?2>L>$[(B,HIRAGANA LETTER PO") (?$B$^(B "$BJ?2>L>$^(B,HIRAGANA LETTER MA") (?$B$_(B "$BJ?2>L>$_(B,HIRAGANA LETTER MI") (?$B$`(B "$BJ?2>L>$`(B,HIRAGANA LETTER MU") (?$B$a(B "$BJ?2>L>$a(B,HIRAGANA LETTER ME") (?$B$b(B "$BJ?2>L>$b(B,HIRAGANA LETTER MO") (?$B$c(B "$B>.=q$-J?2>L>$d(B,HIRAGANA LETTER SMALL YA") (?$B$d(B "$BJ?2>L>$d(B,HIRAGANA LETTER YA") (?$B$e(B "$B>.=q$-J?2>L>$f(B,HIRAGANA LETTER SMALL YU") (?$B$f(B "$BJ?2>L>$f(B,HIRAGANA LETTER YU") (?$B$g(B "$B>.=q$-J?2>L>$h(B,HIRAGANA LETTER SMALL YO") (?$B$h(B "$BJ?2>L>$h(B,HIRAGANA LETTER YO") (?$B$i(B "$BJ?2>L>$i(B,HIRAGANA LETTER RA") (?$B$j(B "$BJ?2>L>$j(B,HIRAGANA LETTER RI") (?$B$k(B "$BJ?2>L>$k(B,HIRAGANA LETTER RU") (?$B$l(B "$BJ?2>L>$l(B,HIRAGANA LETTER RE") (?$B$m(B "$BJ?2>L>$m(B,HIRAGANA LETTER RO") (?$B$n(B "$B>.=q$-J?2>L>$o(B,HIRAGANA LETTER SMALL WA") (?$B$o(B "$BJ?2>L>$o(B,HIRAGANA LETTER WA") (?$B$p(B "$BJ?2>L>$p(B,HIRAGANA LETTER WI") (?$B$q(B "$BJ?2>L>$q(B,HIRAGANA LETTER WE") (?$B$r(B "$BJ?2>L>$r(B,HIRAGANA LETTER WO") (?$B$s(B "$BJ?2>L>$s(B,HIRAGANA LETTER N") (?$B%!(B "$B>.=q$-JR2>L>%"(B,KATAKANA LETTER SMALL A") (?$B%"(B "$BJR2>L>%"(B,KATAKANA LETTER A") (?$B%#(B "$B>.=q$-JR2>L>%$(B,KATAKANA LETTER SMALL I") (?$B%$(B "$BJR2>L>%$(B,KATAKANA LETTER I") (?$B%%(B "$B>.=q$-JR2>L>%&(B,KATAKANA LETTER SMALL U") (?$B%&(B "$BJR2>L>%&(B,KATAKANA LETTER U") (?$B%'(B "$B>.=q$-JR2>L>%((B,KATAKANA LETTER SMALL E") (?$B%((B "$BJR2>L>%((B,KATAKANA LETTER E") (?$B%)(B "$B>.=q$-JR2>L>%*(B,KATAKANA LETTER SMALL O") (?$B%*(B "$BJR2>L>%*(B,KATAKANA LETTER O") (?$B%+(B "$BJR2>L>%+(B,KATAKANA LETTER KA") (?$B%,(B "$BByE@IU$-JR2>L>%+(B,KATAKANA LETTER GA") (?$B%-(B "$BJR2>L>%-(B,KATAKANA LETTER KI") (?$B%.(B "$BByE@IU$-JR2>L>%-(B,KATAKANA LETTER GI") (?$B%/(B "$BJR2>L>%/(B,KATAKANA LETTER KU") (?$B%0(B "$BByE@IU$-JR2>L>%/(B,KATAKANA LETTER GU") (?$B%1(B "$BJR2>L>%1(B,KATAKANA LETTER KE") (?$B%2(B "$BByE@IU$-JR2>L>%1(B,KATAKANA LETTER GE") (?$B%3(B "$BJR2>L>%3(B,KATAKANA LETTER KO") (?$B%4(B "$BByE@IU$-JR2>L>%3(B,KATAKANA LETTER GO") (?$B%5(B "$BJR2>L>%5(B,KATAKANA LETTER SA") (?$B%6(B "$BByE@IU$-JR2>L>%5(B,KATAKANA LETTER ZA") (?$B%7(B "$BJR2>L>%7(B,KATAKANA LETTER SI") (?$B%8(B "$BByE@IU$-JR2>L>%7(B,KATAKANA LETTER ZI") (?$B%9(B "$BJR2>L>%9(B,KATAKANA LETTER SU") (?$B%:(B "$BByE@IU$-JR2>L>%9(B,KATAKANA LETTER ZU") (?$B%;(B "$BJR2>L>%;(B,KATAKANA LETTER SE") (?$B%<(B "$BByE@IU$-JR2>L>%;(B,KATAKANA LETTER ZE") (?$B%=(B "$BJR2>L>%=(B,KATAKANA LETTER SO") (?$B%>(B "$BByE@IU$-JR2>L>%=(B,KATAKANA LETTER ZO") (?$B%?(B "$BJR2>L>%?(B,KATAKANA LETTER TA") (?$B%@(B "$BByE@IU$-JR2>L>%?(B,KATAKANA LETTER DA") (?$B%A(B "$BJR2>L>%A(B,KATAKANA LETTER TI") (?$B%B(B "$BByE@IU$-JR2>L>%A(B,KATAKANA LETTER DI") (?$B%C(B "$B>.=q$-JR2>L>%D(B,KATAKANA LETTER SMALL TU") (?$B%D(B "$BJR2>L>%D(B,KATAKANA LETTER TU") (?$B%E(B "$BByE@IU$-JR2>L>%D(B,KATAKANA LETTER DU") (?$B%F(B "$BJR2>L>%F(B,KATAKANA LETTER TE") (?$B%G(B "$BByE@IU$-JR2>L>%F(B,KATAKANA LETTER DE") (?$B%H(B "$BJR2>L>%H(B,KATAKANA LETTER TO") (?$B%I(B "$BByE@IU$-JR2>L>%H(B,KATAKANA LETTER DO") (?$B%J(B "$BJR2>L>%J(B,KATAKANA LETTER NA") (?$B%K(B "$BJR2>L>%K(B,KATAKANA LETTER NI") (?$B%L(B "$BJR2>L>%L(B,KATAKANA LETTER NU") (?$B%M(B "$BJR2>L>%M(B,KATAKANA LETTER NE") (?$B%N(B "$BJR2>L>%N(B,KATAKANA LETTER NO") (?$B%O(B "$BJR2>L>%O(B,KATAKANA LETTER HA") (?$B%P(B "$BByE@IU$-JR2>L>%O(B,KATAKANA LETTER BA") (?$B%Q(B "$BH>ByE@IU$-JR2>L>%O(B,KATAKANA LETTER PA") (?$B%R(B "$BJR2>L>%R(B,KATAKANA LETTER HI") (?$B%S(B "$BByE@IU$-JR2>L>%R(B,KATAKANA LETTER BI") (?$B%T(B "$BH>ByE@IU$-JR2>L>%R(B,KATAKANA LETTER PI") (?$B%U(B "$BJR2>L>%U(B,KATAKANA LETTER HU") (?$B%V(B "$BByE@IU$-JR2>L>%U(B,KATAKANA LETTER BU") (?$B%W(B "$BH>ByE@IU$-JR2>L>%U(B,KATAKANA LETTER PU") (?$B%X(B "$BJR2>L>%X(B,KATAKANA LETTER HE") (?$B%Y(B "$BByE@IU$-JR2>L>%X(B,KATAKANA LETTER BE") (?$B%Z(B "$BH>ByE@IU$-JR2>L>%X(B,KATAKANA LETTER PE") (?$B%[(B "$BJR2>L>%[(B,KATAKANA LETTER HO") (?$B%\(B "$BByE@IU$-JR2>L>%[(B,KATAKANA LETTER BO") (?$B%](B "$BH>ByE@IU$-JR2>L>%[(B,KATAKANA LETTER PO") (?$B%^(B "$BJR2>L>%^(B,KATAKANA LETTER MA") (?$B%_(B "$BJR2>L>%_(B,KATAKANA LETTER MI") (?$B%`(B "$BJR2>L>%`(B,KATAKANA LETTER MU") (?$B%a(B "$BJR2>L>%a(B,KATAKANA LETTER ME") (?$B%b(B "$BJR2>L>%b(B,KATAKANA LETTER MO") (?$B%c(B "$B>.=q$-JR2>L>%d(B,KATAKANA LETTER SMALL YA") (?$B%d(B "$BJR2>L>%d(B,KATAKANA LETTER YA") (?$B%e(B "$B>.=q$-JR2>L>%f(B,KATAKANA LETTER SMALL YU") (?$B%f(B "$BJR2>L>%f(B,KATAKANA LETTER YU") (?$B%g(B "$B>.=q$-JR2>L>%h(B,KATAKANA LETTER SMALL YO") (?$B%h(B "$BJR2>L>%h(B,KATAKANA LETTER YO") (?$B%i(B "$BJR2>L>%i(B,KATAKANA LETTER RA") (?$B%j(B "$BJR2>L>%j(B,KATAKANA LETTER RI") (?$B%k(B "$BJR2>L>%k(B,KATAKANA LETTER RU") (?$B%l(B "$BJR2>L>%l(B,KATAKANA LETTER RE") (?$B%m(B "$BJR2>L>%m(B,KATAKANA LETTER RO") (?$B%n(B "$B>.=q$-JR2>L>%o(B,KATAKANA LETTER SMALL WA") (?$B%o(B "$BJR2>L>%o(B,KATAKANA LETTER WA") (?$B%p(B "$BJR2>L>%p(B,KATAKANA LETTER WI") (?$B%q(B "$BJR2>L>%q(B,KATAKANA LETTER WE") (?$B%r(B "$BJR2>L>%r(B,KATAKANA LETTER WO") (?$B%s(B "$BJR2>L>%s(B,KATAKANA LETTER N") (?$B%t(B "$BByE@IU$-JR2>L>%&(B,KATAKANA LETTER VU") (?$B%u(B "$B>.=q$-JR2>L>%+(B,KATAKANA LETTER SMALL KA") (?$B%v(B "$B>.=q$-JR2>L>%1(B,KATAKANA LETTER SMALL KE") (?$B&!(B "$B%.%j%7%"BgJ8;z(BALPHA,GREEK CAPITAL LETTER ALPHA") (?$B&"(B "$B%.%j%7%"BgJ8;z(BBETA,GREEK CAPITAL LETTER BETA") (?$B&#(B "$B%.%j%7%"BgJ8;z(BGAMMA,GREEK CAPITAL LETTER GAMMA") (?$B&$(B "$B%.%j%7%"BgJ8;z(BDELTA,GREEK CAPITAL LETTER DELTA") (?$B&%(B "$B%.%j%7%"BgJ8;z(BEPSILON,GREEK CAPITAL LETTER EPSILON") (?$B&&(B "$B%.%j%7%"BgJ8;z(BZETA,GREEK CAPITAL LETTER ZETA") (?$B&'(B "$B%.%j%7%"BgJ8;z(BETA,GREEK CAPITAL LETTER ETA") (?$B&((B "$B%.%j%7%"BgJ8;z(BTHETA,GREEK CAPITAL LETTER THETA") (?$B&)(B "$B%.%j%7%"BgJ8;z(BIOTA,GREEK CAPITAL LETTER IOTA") (?$B&*(B "$B%.%j%7%"BgJ8;z(BKAPPA,GREEK CAPITAL LETTER KAPPA") (?$B&+(B "$B%.%j%7%"BgJ8;z(BLAMBDA,GREEK CAPITAL LETTER LAMBDA") (?$B&,(B "$B%.%j%7%"BgJ8;z(BMU,GREEK CAPITAL LETTER MU") (?$B&-(B "$B%.%j%7%"BgJ8;z(BNU,GREEK CAPITAL LETTER NU") (?$B&.(B "$B%.%j%7%"BgJ8;z(BXI,GREEK CAPITAL LETTER XI") (?$B&/(B "$B%.%j%7%"BgJ8;z(BOMICRON,GREEK CAPITAL LETTER OMICRON") (?$B&0(B "$B%.%j%7%"BgJ8;z(BPI,GREEK CAPITAL LETTER PI") (?$B&1(B "$B%.%j%7%"BgJ8;z(BRHO,GREEK CAPITAL LETTER RHO") (?$B&2(B "$B%.%j%7%"BgJ8;z(BSIGMA,GREEK CAPITAL LETTER SIGMA") (?$B&3(B "$B%.%j%7%"BgJ8;z(BTAU,GREEK CAPITAL LETTER TAU") (?$B&4(B "$B%.%j%7%"BgJ8;z(BUPSILON,GREEK CAPITAL LETTER UPSILON") (?$B&5(B "$B%.%j%7%"BgJ8;z(BPHI,GREEK CAPITAL LETTER PHI") (?$B&6(B "$B%.%j%7%"BgJ8;z(BCHI,GREEK CAPITAL LETTER CHI") (?$B&7(B "$B%.%j%7%"BgJ8;z(BPSI,GREEK CAPITAL LETTER PSI") (?$B&8(B "$B%.%j%7%"BgJ8;z(BOMEGA,GREEK CAPITAL LETTER OMEGA") (?$B&A(B "$B%.%j%7%">.J8;z(BALPHA,GREEK SMALL LETTER ALPHA") (?$B&B(B "$B%.%j%7%">.J8;z(BBETA,GREEK SMALL LETTER BETA") (?$B&C(B "$B%.%j%7%">.J8;z(BGAMMA,GREEK SMALL LETTER GAMMA") (?$B&D(B "$B%.%j%7%">.J8;z(BDELTA,GREEK SMALL LETTER DELTA") (?$B&E(B "$B%.%j%7%">.J8;z(BEPSILON,GREEK SMALL LETTER EPSILON") (?$B&F(B "$B%.%j%7%">.J8;z(BZETA,GREEK SMALL LETTER ZETA") (?$B&G(B "$B%.%j%7%">.J8;z(BETA,GREEK SMALL LETTER ETA") (?$B&H(B "$B%.%j%7%">.J8;z(BTHETA,GREEK SMALL LETTER THETA") (?$B&I(B "$B%.%j%7%">.J8;z(BIOTA,GREEK SMALL LETTER IOTA") (?$B&J(B "$B%.%j%7%">.J8;z(BKAPPA,GREEK SMALL LETTER KAPPA") (?$B&K(B "$B%.%j%7%">.J8;z(BLAMBDA,GREEK SMALL LETTER LAMBDA") (?$B&L(B "$B%.%j%7%">.J8;z(BMU,GREEK SMALL LETTER MU") (?$B&M(B "$B%.%j%7%">.J8;z(BNU,GREEK SMALL LETTER NU") (?$B&N(B "$B%.%j%7%">.J8;z(BXI,GREEK SMALL LETTER XI") (?$B&O(B "$B%.%j%7%">.J8;z(BOMICRON,GREEK SMALL LETTER OMICRON") (?$B&P(B "$B%.%j%7%">.J8;z(BPI,GREEK SMALL LETTER PI") (?$B&Q(B "$B%.%j%7%">.J8;z(BRHO,GREEK SMALL LETTER RHO") (?$B&R(B "$B%.%j%7%">.J8;z(BSIGMA,GREEK SMALL LETTER SIGMA") (?$B&S(B "$B%.%j%7%">.J8;z(BTAU,GREEK SMALL LETTER TAU") (?$B&T(B "$B%.%j%7%">.J8;z(BUPSILON,GREEK SMALL LETTER UPSILON") (?$B&U(B "$B%.%j%7%">.J8;z(BPHI,GREEK SMALL LETTER PHI") (?$B&V(B "$B%.%j%7%">.J8;z(BCHI,GREEK SMALL LETTER CHI") (?$B&W(B "$B%.%j%7%">.J8;z(BPSI,GREEK SMALL LETTER PSI") (?$B&X(B "$B%.%j%7%">.J8;z(BOMEGA,GREEK SMALL LETTER OMEGA") (?$B'!(B "$B%-%j!<%kBgJ8;z(BA,CYRILLIC CAPITAL LETTER A") (?$B'"(B "$B%-%j!<%kBgJ8;z(BBE,CYRILLIC CAPITAL LETTER BE") (?$B'#(B "$B%-%j!<%kBgJ8;z(BVE,CYRILLIC CAPITAL LETTER VE") (?$B'$(B "$B%-%j!<%kBgJ8;z(BGHE,CYRILLIC CAPITAL LETTER GHE") (?$B'%(B "$B%-%j!<%kBgJ8;z(BDE,CYRILLIC CAPITAL LETTER DE") (?$B'&(B "$B%-%j!<%kBgJ8;z(BIE,CYRILLIC CAPITAL LETTER IE") (?$B''(B "$B%-%j!<%kBgJ8;z(BIO,CYRILLIC CAPITAL LETTER IO") (?$B'((B "$B%-%j!<%kBgJ8;z(BZHE,CYRILLIC CAPITAL LETTER ZHE") (?$B')(B "$B%-%j!<%kBgJ8;z(BZE,CYRILLIC CAPITAL LETTER ZE") (?$B'*(B "$B%-%j!<%kBgJ8;z(BI,CYRILLIC CAPITAL LETTER I") (?$B'+(B "$B%-%j!<%kBgJ8;z(BSHORT I,CYRILLIC CAPITAL LETTER SHORT I") (?$B',(B "$B%-%j!<%kBgJ8;z(BKA,CYRILLIC CAPITAL LETTER KA") (?$B'-(B "$B%-%j!<%kBgJ8;z(BEL,CYRILLIC CAPITAL LETTER EL") (?$B'.(B "$B%-%j!<%kBgJ8;z(BEM,CYRILLIC CAPITAL LETTER EM") (?$B'/(B "$B%-%j!<%kBgJ8;z(BEN,CYRILLIC CAPITAL LETTER EN") (?$B'0(B "$B%-%j!<%kBgJ8;z(BO,CYRILLIC CAPITAL LETTER O") (?$B'1(B "$B%-%j!<%kBgJ8;z(BPE,CYRILLIC CAPITAL LETTER PE") (?$B'2(B "$B%-%j!<%kBgJ8;z(BER,CYRILLIC CAPITAL LETTER ER") (?$B'3(B "$B%-%j!<%kBgJ8;z(BES,CYRILLIC CAPITAL LETTER ES") (?$B'4(B "$B%-%j!<%kBgJ8;z(BTE,CYRILLIC CAPITAL LETTER TE") (?$B'5(B "$B%-%j!<%kBgJ8;z(BU,CYRILLIC CAPITAL LETTER U") (?$B'6(B "$B%-%j!<%kBgJ8;z(BEF,CYRILLIC CAPITAL LETTER EF") (?$B'7(B "$B%-%j!<%kBgJ8;z(BHA,CYRILLIC CAPITAL LETTER HA") (?$B'8(B "$B%-%j!<%kBgJ8;z(BTSE,CYRILLIC CAPITAL LETTER TSE") (?$B'9(B "$B%-%j!<%kBgJ8;z(BCHE,CYRILLIC CAPITAL LETTER CHE") (?$B':(B "$B%-%j!<%kBgJ8;z(BSHA,CYRILLIC CAPITAL LETTER SHA") (?$B';(B "$B%-%j!<%kBgJ8;z(BSHCHA,CYRILLIC CAPITAL LETTER SHCHA") (?$B'<(B "$B%-%j!<%kBgJ8;z(BHARD SIGN,CYRILLIC CAPITAL LETTER HARD SIGN") (?$B'=(B "$B%-%j!<%kBgJ8;z(BYERU,CYRILLIC CAPITAL LETTER YERU") (?$B'>(B "$B%-%j!<%kBgJ8;z(BSOFT SIGN,CYRILLIC CAPITAL LETTER SOFT SIGN") (?$B'?(B "$B%-%j!<%kBgJ8;z(BE,CYRILLIC CAPITAL LETTER E") (?$B'@(B "$B%-%j!<%kBgJ8;z(BYU,CYRILLIC CAPITAL LETTER YU") (?$B'A(B "$B%-%j!<%kBgJ8;z(BYA,CYRILLIC CAPITAL LETTER YA") (?$B'Q(B "$B%-%j!<%k>.J8;z(BA,CYRILLIC SMALL LETTER A") (?$B'R(B "$B%-%j!<%k>.J8;z(BBE,CYRILLIC SMALL LETTER BE") (?$B'S(B "$B%-%j!<%k>.J8;z(BVE,CYRILLIC SMALL LETTER VE") (?$B'T(B "$B%-%j!<%k>.J8;z(BGHE,CYRILLIC SMALL LETTER GHE") (?$B'U(B "$B%-%j!<%k>.J8;z(BDE,CYRILLIC SMALL LETTER DE") (?$B'V(B "$B%-%j!<%k>.J8;z(BIE,CYRILLIC SMALL LETTER IE") (?$B'W(B "$B%-%j!<%k>.J8;z(BIO,CYRILLIC SMALL LETTER IO") (?$B'X(B "$B%-%j!<%k>.J8;z(BZHE,CYRILLIC SMALL LETTER ZHE") (?$B'Y(B "$B%-%j!<%k>.J8;z(BZE,CYRILLIC SMALL LETTER ZE") (?$B'Z(B "$B%-%j!<%k>.J8;z(BI,CYRILLIC SMALL LETTER I") (?$B'[(B "$B%-%j!<%k>.J8;z(BSHORT I,CYRILLIC SMALL LETTER SHORT I") (?$B'\(B "$B%-%j!<%k>.J8;z(BKA,CYRILLIC SMALL LETTER KA") (?$B'](B "$B%-%j!<%k>.J8;z(BEL,CYRILLIC SMALL LETTER EL") (?$B'^(B "$B%-%j!<%k>.J8;z(BEM,CYRILLIC SMALL LETTER EM") (?$B'_(B "$B%-%j!<%k>.J8;z(BEN,CYRILLIC SMALL LETTER EN") (?$B'`(B "$B%-%j!<%k>.J8;z(BO,CYRILLIC SMALL LETTER O") (?$B'a(B "$B%-%j!<%k>.J8;z(BPE,CYRILLIC SMALL LETTER PE") (?$B'b(B "$B%-%j!<%k>.J8;z(BER,CYRILLIC SMALL LETTER ER") (?$B'c(B "$B%-%j!<%k>.J8;z(BES,CYRILLIC SMALL LETTER ES") (?$B'd(B "$B%-%j!<%k>.J8;z(BTE,CYRILLIC SMALL LETTER TE") (?$B'e(B "$B%-%j!<%k>.J8;z(BU,CYRILLIC SMALL LETTER U") (?$B'f(B "$B%-%j!<%k>.J8;z(BEF,CYRILLIC SMALL LETTER EF") (?$B'g(B "$B%-%j!<%k>.J8;z(BHA,CYRILLIC SMALL LETTER HA") (?$B'h(B "$B%-%j!<%k>.J8;z(BTSE,CYRILLIC SMALL LETTER TSE") (?$B'i(B "$B%-%j!<%k>.J8;z(BCHE,CYRILLIC SMALL LETTER CHE") (?$B'j(B "$B%-%j!<%k>.J8;z(BSHA,CYRILLIC SMALL LETTER SHA") (?$B'k(B "$B%-%j!<%k>.J8;z(BSHCHA,CYRILLIC SMALL LETTER SHCHA") (?$B'l(B "$B%-%j!<%k>.J8;z(BHARD SIGN,CYRILLIC SMALL LETTER HARD SIGN") (?$B'm(B "$B%-%j!<%k>.J8;z(BYERU,CYRILLIC SMALL LETTER YERU") (?$B'n(B "$B%-%j!<%k>.J8;z(BSOFT SIGN,CYRILLIC SMALL LETTER SOFT SIGN") (?$B'o(B "$B%-%j!<%k>.J8;z(BE,CYRILLIC SMALL LETTER E") (?$B'p(B "$B%-%j!<%k>.J8;z(BYU,CYRILLIC SMALL LETTER YU") (?$B'q(B "$B%-%j!<%k>.J8;z(BYA,CYRILLIC SMALL LETTER YA") (?$B(!(B "$B2#:Y@~AGJR(B,BOX DRAWINGS LIGHT HORIZONTAL") (?$B("(B "$B=D:Y@~AGJR(B,BOX DRAWINGS LIGHT VERTICAL") (?$B(#(B "$B:Y@~AGJR:8>e(B,BOX DRAWINGS LIGHT DOWN AND RIGHT") (?$B($(B "$B:Y@~AGJR1&>e(B,BOX DRAWINGS LIGHT DOWN AND LEFT") (?$B(%(B "$B:Y@~AGJR1&2<(B,BOX DRAWINGS LIGHT UP AND LEFT") (?$B(&(B "$B:Y@~AGJR:82<(B,BOX DRAWINGS LIGHT UP AND RIGHT") (?$B('(B "$B:Y@~AGJR:8(B,BOX DRAWINGS LIGHT VERTICAL AND RIGHT") (?$B(((B "$B:Y@~AGJR>e(B,BOX DRAWINGS LIGHT DOWN AND HORIZONTAL") (?$B()(B "$B:Y@~AGJR1&(B,BOX DRAWINGS LIGHT VERTICAL AND LEFT") (?$B(*(B "$B:Y@~AGJR2<(B,BOX DRAWINGS LIGHT UP AND HORIZONTAL") (?$B(+(B "$B:Y@~AGJRCf1{(B,BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL") (?$B(,(B "$B2#B@@~AGJR(B,BOX DRAWINGS HEAVY HORIZONTAL") (?$B(-(B "$B=DB@@~AGJR(B,BOX DRAWINGS HEAVY VERTICAL") (?$B(.(B "$BB@@~AGJR:8>e(B,BOX DRAWINGS HEAVY DOWN AND RIGHT") (?$B(/(B "$BB@@~AGJR1&>e(B,BOX DRAWINGS HEAVY DOWN AND LEFT") (?$B(0(B "$BB@@~AGJR1&2<(B,BOX DRAWINGS HEAVY UP AND LEFT") (?$B(1(B "$BB@@~AGJR:82<(B,BOX DRAWINGS HEAVY UP AND RIGHT") (?$B(2(B "$BB@@~AGJR:8(B,BOX DRAWINGS HEAVY VERTICAL AND RIGHT") (?$B(3(B "$BB@@~AGJR>e(B,BOX DRAWINGS HEAVY DOWN AND HORIZONTAL") (?$B(4(B "$BB@@~AGJR1&(B,BOX DRAWINGS HEAVY VERTICAL AND LEFT") (?$B(5(B "$BB@@~AGJR2<(B,BOX DRAWINGS HEAVY UP AND HORIZONTAL") (?$B(6(B "$BB@@~AGJRCf1{(B,BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL") (?$B(7(B "$B=DB@@~2#:Y@~AGJR:8(B,BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT") (?$B(8(B "$B2#B@@~=D:Y@~AGJR>e(B,BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY") (?$B(9(B "$B=DB@@~2#:Y@~AGJR1&(B,BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT") (?$B(:(B "$B2#B@@~=D:Y@~AGJR2<(B,BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY") (?$B(;(B "$B=D:Y@~2#B@@~AGJRCf1{(B,BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY") (?$B(<(B "$B=D:Y@~2#B@@~AGJR:8(B,BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY") (?$B(=(B "$B2#:Y@~=DB@@~AGJR>e(B,BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT") (?$B(>(B "$B=D:Y@~2#B@@~AGJR1&(B,BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY") (?$B(?(B "$B2#:Y@~=DB@@~AGJR2<(B,BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT") (?$B(@(B "$B2#:Y@~=DB@@~AGJRCf1{(B,BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT") (?$B0"(B "83$B;zBNJQ99(B") (?$B03(B "83$BF~BX$((B($BrM(B)") (?$B1<(B "$B$&$k$&!#o`(B($BE55rIT>\(B)$B$OJL;z(B") (?$B1k(B "83$B;zBNJQ99(B") (?$B2)(B "83$BF~BX$((B($Brt(B)$B!#rt(B($B$&$0$$$9(B)$B$NN,;z!#s?(B($B$&$=(B)$B$OJL;z(B") (?$B2*(B "83$B;zBNJQ99(B") (?$B3>(B "$BG[Ns$NMp$l!#(B19$B6h(B 29$B3=(B($B$+$$$j(B) 30$B3>(B($B$+$*$k(B) 31$B3?(B($B$+$($k(B)") (?$B3B(B "83$BF~BX$((B($BiZ(B)") (?$B3I(B "83$BF~BX$((B($BYx(B)") (?$B3v(B "83$BF~BX$((B($Bc^(B)") (?$B3z(B "83$B;zBNJQ99(B") (?$B4C(B "83$BF~BX$((B($B^u(B)") (?$B4R(B "83$BF~BX$((B($Bk](B)") (?$B6"(B "83$B;zBNJQ99(B") (?$B6F(B "83$BDI2CF~BX$((B($Bt!(B)") (?$B6m(B "83$B;zBNJQ99(B") (?$B7[(B "83$BF~BX$((B($Bpt(B)") (?$B84(B "83$B;zBNJQ99(B") (?$B9\(B "83$BF~BX$((B($Bbh(B)") (?$B9m(B "83$B;zBNJQ99(B") (?$BU(B "83$B;zBNJQ99(B") (?$B>_(B "83$B;zBNJQ99(B") (?$B?Y(B "83$BF~BX$((B($BpW(B)") (?$B@f(B "83$B;zBNJQ99(B") (?$BA((B "83$BF~BX$((B($BlM(B)") (?$BA_(B "83$B;zBNJQ99(B") (?$BBM(B "83$B;zBNJQ99(B") (?$BC=(B "83$B;zBNJQ99(B") (?$BDO(B "83$B;zBNJQ99(B") (?$BD[(B "83$BF~BX$((B($BTd(B)$B!#Td(B($B$D$\(B)$B$NN,;z!#Tg(B($B%3%s(B)$B$OJL;z(B") (?$BE6(B "83$B;zBNJQ99(B") (?$BE?(B "83$B;zBNJQ99(B") (?$BEW(B "83$BF~BX$((B($Bbj(B)") (?$BEn(B "83$BF~BX$((B($B[m(B)") (?$BEs(B "83$BF~BX$((B($B^9(B)") (?$BEx(B "83$B;zBNJQ99(B") (?$BFB(B "83$B;zBNJQ99(B") (?$BFv(B "83$BF~BX$((B($Bmn(B)") (?$BG*(B "$BG)(B($B%M(B)$B$NN,;z!#jY(B($BE55rIT>\(B)$B$OJL;z(B") (?$BG9(B "83$B;zBNJQ99(B") (?$BGh(B "83$BF~BX$((B($Bj$(B)") (?$BH.(B "83$B;zBNJQ99(B") (?$BH0(B "83$B;zBNJQ99(B") (?$BI0(B "83$BF~BX$((B($B[X(B)") (?$BJj(B "$B$D$A$N$(!#Xz(B($B$^$5$+$j(B)$B$OJL;z(B") (?$BKK(B "83$B;zBNJQ99(B") (?$BKj(B "83$BDI2CF~BX$((B($Bt"(B)") (?$BKy(B "83$BF~BX$((B($BPV(B)") (?$BLM(B "83$B;zBNJQ99(B") (?$BLy(B "83$BF~BX$((B($Bi.(B)") (?$BMZ(B "83$BDI2CF~BX$((B($Bt#(B)") (?$BMi(B "83$B;zBNJQ99(B") (?$BNB(B "$B$d$J!#dm(B($B$"$o(B)$B$OJL;z(B") (?$BO6(B "83$BF~BX$((B($BdF(B)") (?$BO9(B "83$B;zBNJQ99(B") (?$BPG(B "$BJ)(B($B$[$H$1(B)$B$N5l;z!#WJ(B($B%U%D(B)$B$OJL;z(B") (?$BPV(B "83$BF~BX$((B($BKy(B)") (?$BQI(B "$B$+$V$H!#ft(B($B%A%e%&(B)$B$OJL;z(B") (?$BR9(B "$B$O$3$,$^$(!#R>(B($B$+$/$7$,$^$((B)$B$OJL;z(B") (?$BR>(B "$B$+$/$7$,$^$(!#R9(B($B$O$3$,$^$((B)$B$OJL;z(B") (?$BTW(B "$BE55rITL@(B") (?$BT_(B "$BE55rITL@(B") (?$BTd(B "83$BF~BX$((B($BD[(B)$B!#$D$\!#Tg(B($B%3%s(B)$B$OJL;z(B") (?$BTg(B "$B%3%s!#Td(B($B$D$\(B)$B$OJL;z(B") (?$BTi(B "$B%A!#Tj(B($B%9%$(B)$B$OJL;z$@$,:.F1$5$l$k(B") (?$BTj(B "$B%9%$!#Ti(B($B%A(B)$B$OJL;z$@$,:.F1$5$l$k(B") (?$BV,(B "$BE55rIT>\!#$"$1$S$N8m;z$+(B") (?$BW;(B "$BF1DjITG=(B") (?$BWJ(B "$B%U%D!#PG(B($B$[$H$1(B)$B$OJL;z(B") (?$BXz(B "$B$^$5$+$j!#Jj(B($B$D$A$N$((B)$B$OJL;z(B") (?$BX{(B "$B$^$b$k!#X|(B($B$$$L(B)$B$OJL;z(B") (?$BX|(B "$B$$$L!#X{(B($B$^$b$k(B)$B$OJL;z(B") (?$BYK(B "$BE55rIT>\(B") (?$BYx(B "83$BF~BX$((B($BYx(B)") (?$BZ9(B "83$B;zBNJQ99(B") (?$BZH(B "$B%7%g%&!#ZI(B($B%X%$(B)$B$OJL;z(B") (?$BZI(B "$B%X%$!#ZH(B($B%7%g%&(B)$B$OJL;z(B") (?$BZl(B "$BCk(B($B$R$k(B)$B$N5l;z!#aA(B($B%+%/(B)$B$OJL;z(B") (?$BZs(B "$BE55rIT>\(B") (?$B[6(B "$B$*$&$4!#[7(B($B%H%&(B)$B$OJL;z(B") (?$B[7(B "$B%H%&!#[6(B($B$*$&$4(B)$B$OJL;z(B") (?$B[X(B "83$BF~BX$((B($BI0(B)") (?$B[m(B "83$BF~BX$((B($BEn(B)") (?$B[{(B "$BE55rIT>\!#$L$GEg$N$L$G$N8m;z$+(B") (?$B\Y(B "$BE55rIT>\(B") (?$B^9(B "83$BF~BX$((B($BEs(B)") (?$B^u(B "83$BF~BX$((B($B4C(B)") (?$B`v(B "83$BDI2CF~BX$((B($Bt$(B)") (?$BaA(B "$B2h(B($B%+%/(B)$B$N5l;z!#Zl(B($B$R$k(B)$B$OJL;z(B") (?$Bad(B "$B%^!#ae(B($B%j%s(B)$B$OJL;z(B") (?$Bae(B "$B%j%s!#ad(B($B%^(B)$B$OJL;z(B") (?$Bbh(B "83$BF~BX$((B($B9\(B)") (?$Bbj(B "83$BF~BX$((B($BEW(B)") (?$Bc^(B "83$BF~BX$((B($B3v(B)") (?$BdF(B "83$BF~BX$((B($BO6(B)") (?$Bdm(B "$B$"$o!#NB(B($B$d$J(B)$B$OJL;z(B") (?$Bft(B "$B%A%e%&!#QI(B($B$+$V$H(B)$B$OJL;z(B") (?$Bi"(B "83$BF~BX$((B($B\(B") (?$BjY(B "$BE55rIT>\!#G*(B($B%M(B)$B$OJL;z(B") (?$Bk](B "83$BF~BX$((B($B4R(B)") (?$BlM(B "83$BF~BX$((B($BA((B)") (?$Bmn(B "83$BF~BX$((B($BFv(B)") (?$Bmr(B "$B$9$J$o$A!#n%(B($B%7%e%&(B)$B$OJL;z(B") (?$Bn%(B "$Bn$(B($B%7%e%&(B)$B$N0[BN;z!#mr(B($B$9$J$o$A(B)$B$OJL;z(B") (?$Bn[(B "$B$+$?$J!#n^(B($B%3%/(B)$B$OJL;z(B") (?$Bn^(B "$B%3%/!#n[(B($B$+$?$J(B)$B$OJL;z(B") (?$BoL(B "$B$d$9$j!#oN(B($B%m(B)$B$OJL;z(B") (?$BoN(B "$B%m!#oL(B($B$d$9$j(B)$B$OJL;z(B") (?$Bo`(B "$BE55rIT>\!#1<(B($B$&$k$&(B)$B$OJL;z(B") (?$Bo}(B "$B%-%g%&!#p!(B($B%;%s(B)$B$OJL;z(B") (?$Bp!(B "$B%;%s!#o}(B($B%-%g%&(B)$B$OJL;z(B") (?$BpW(B "83$BF~BX$((B($B?Y(B)") (?$Bpt(B "83$BF~BX$((B($B7[(B)") (?$BqR(B "$BE55rIT>\(B") (?$BrM(B "83$BF~BX$((B($B03(B)") (?$Brt(B "83$BF~BX$((B($B2)(B)$B!#$&$0$$$9!#s?(B($B$&$=(B)$B$OJL;z(B") (?$Bs?(B "$B$&$=!#rt(B($B$&$0$$$9(B)$B$OJL;z(B") (?$Bt!(B "83$BDI2CF~BX$((B($B6F(B)") (?$Bt"(B "83$BDI2CF~BX$((B($BKj(B)") (?$Bt#(B "83$BDI2CF~BX$((B($BMZ(B)") (?$Bt$(B "83$BDI2CF~BX$((B($B`v(B)") (?$Bt%(B "90$BDI2C(B") (?$Bt&(B "90$BDI2C(B") ))) (dolist (x l) (skk-tankan-set-char-annotaion (car x) (nth 1 x))))) ;;; annotation data for japanese-jisx0213-1 (when (and skk-tankan-annotation-table (charsetp 'japanese-jisx0213-1)) (let ((l '( (2 15 "$B%"%]%9%H%m%U%#(B,APOSTROPHE") (2 16 "$B0zMQId(B,$B%/%)!<%F!<%7%g%s%^!<%/(B,QUOTATION MARK") (2 17 "$B%O%$%U%s%^%$%J%9(B,HYPHEN-MINUS") (2 18 "$B%A%k%I(B,TILDE") (2 19 "$B$/$N;zE@>e(B,VERTICAL KANA REPEAT MARK UPPER HALF") (2 20 "$B$/$N;zE@>e(B($BByE@(B),VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF") (2 21 "$B$/$N;zE@2<(B,VERTICAL KANA REPEAT MARK LOWER HALF") (2 22 "$BFs$N;zE@(B,$B$f$9$jE@(B,VERTICAL IDEOGRAPHIC ITERATION MARK") (2 23 "$B$^$95-9f(B,MASU MARK") (2 24 "$B%3%H(B,KATAKANA DIGRAPH KOTO") (2 25 "$B$h$j(B,HIRAGANA DIGRAPH YORI") (2 34 "$BItJ,=89g$NH]Dj(B,NOT A SUBSET OF") (2 35 "$BItJ,=89g$NH]Dj(B($B5UJ}8~(B),NOT A SUPERSET OF") (2 36 "$B??ItJ,=89g(B2,SUBSET OF WITH NOT EQUAL TO") (2 37 "$B??ItJ,=89g(B2($B5UJ}8~(B),SUPERSET OF WITH NOT EQUAL TO") (2 38 "$BMWAG$NH]Dj(B,$B85$NH]Dj(B,NOT AN ELEMENT OF") (2 39 "$B6u=89g(B,EMPTY SET") (2 40 "$BOB(B,CIRCLED PLUS") (2 50 "$B4]IU$-%^%$%J%9(B,CIRCLED MINUS") (2 51 "$B%F%s%=%k@Q(B,CIRCLED TIMES") (2 52 "$BJ?9T(B,PARALLEL TO") (2 53 "$BJ?9T$NH]Dj(B,NOT PARALLEL TO") (2 54 "$B;O$aFs=E%Q!<%l%s(B,$B;O$aFs=E3g8L(B,FULLWIDTH LEFT WHITE PARENTHESIS") (2 55 "$B=*$o$jFs=E%Q!<%l%s(B,$B=*$o$jFs=E3g8L(B,FULLWIDTH RIGHT WHITE PARENTHESIS") (2 56 "$B;O$aFs=E$-$C$3$&(B($B559C(B)$B3g8L(B,LEFT WHITE TORTOISE SHELL BRACKET") (2 57 "$B=*$o$jFs=E$-$C$3$&(B($B559C(B)$B3g8L(B,RIGHT WHITE TORTOISE SHELL BRACKET") (2 58 "$B;O$a$9$_IU$-3g8L(B($BGr(B),LEFT WHITE LENTICULAR BRACKET") (2 59 "$B=*$o$j$9$_IU$-3g8L(B($BGr(B),RIGHT WHITE LENTICULAR BRACKET") (2 75 "$B9gF1H]Dj(B,NOT IDENTICAL TO") (2 76 "$BA2?JE*$KEy$7$$(B,$B%[%b%H!<%W(B,ASYMPTOTICALLY EQUAL TO") (2 77 "$BF17A(B,APPROXIMATELY EQUAL TO") (2 78 "$B6a;wE*$KEy$7$$(B,$BF1Aj(B,ALMOST EQUAL TO") (2 79 "$B>.$5$$$+Bg$-$$(B,LESS-THAN OR GREATER-THAN") (2 80 "$BBg$-$$$+>.$5$$(B,GREATER-THAN OR LESS-THAN") (2 81 "$BF1Ey(B,LEFT RIGHT ARROW") (2 90 "$B%J%A%e%i%k(B,MUSIC NATURAL SIGN") (2 91 "$BO"$3$&(B($B7e(B)$BIU$-H,J,2;Id(B,BEAMED EIGHTH NOTES") (2 92 "$BO"$3$&(B($B7e(B)$BIU$-==O;J,2;Id(B,BEAMED SIXTEENTH NOTES") (2 93 "$B;MJ,2;Id(B,QUARTER NOTE") (3 1 "$B1&8~;03Q(B,WHITE RIGHT-POINTING TRIANGLE") (3 2 "$B1&8~9u;03Q(B,BLACK RIGHT-POINTING TRIANGLE") (3 3 "$B:88~;03Q(B,WHITE LEFT-POINTING TRIANGLE") (3 4 "$B:88~9u;03Q(B,BLACK LEFT-POINTING TRIANGLE") (3 5 "$B1&>e8~Lp0u(B,NORTH EAST ARROW") (3 6 "$B1&2<8~Lp0u(B,SOUTH EAST ARROW") (3 7 "$B:8>e8~Lp0u(B,NORTH WEST ARROW") (3 8 "$B:82<8~Lp0u(B,SOUTH WEST ARROW") (3 9 "$B1&Lp0u:8Lp0u(B,RIGHTWARDS ARROW OVER LEFTWARDS ARROW") (3 10 "$B1&8~GrLp0u(B,RIGHTWARDS WHITE ARROW") (3 11 "$B:88~GrLp0u(B,LEFTWARDS WHITE ARROW") (3 12 "$B>e8~GrLp0u(B,UPWARDS WHITE ARROW") (3 13 "$B2<8~GrLp0u(B,DOWNWARDS WHITE ARROW") (3 14 "$B6J$,$jLp0u>e$,$k(B,ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS") (3 15 "$B6J$,$jLp0u2<$,$k(B,ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS") (3 26 "$B4]Cf9u(B,CIRCLED BULLET") (3 27 "$BL>$&(B,HIRAGANA LETTER VU") (4 85 "$B>.=q$-J?2>L>$+(B,HIRAGANA LETTER SMALL KA") (4 86 "$B>.=q$-J?2>L>$1(B,HIRAGANA LETTER SMALL KE") (4 87 "$BH>ByE@IU$-J?2>L>$+(B,[HIRAGANA LETTER BIDAKUON NGA]") (4 88 "$BH>ByE@IU$-J?2>L>$-(B,[HIRAGANA LETTER BIDAKUON NGI]") (4 89 "$BH>ByE@IU$-J?2>L>$/(B,[HIRAGANA LETTER BIDAKUON NGU]") (4 90 "$BH>ByE@IU$-J?2>L>$1(B,[HIRAGANA LETTER BIDAKUON NGE]") (4 91 "$BH>ByE@IU$-J?2>L>$3(B,[HIRAGANA LETTER BIDAKUON NGO]") (5 87 "$BH>ByE@IU$-JR2>L>%+(B,[KATAKANA LETTER BIDAKUON NGA]") (5 88 "$BH>ByE@IU$-JR2>L>%-(B,[KATAKANA LETTER BIDAKUON NGI]") (5 89 "$BH>ByE@IU$-JR2>L>%/(B,[KATAKANA LETTER BIDAKUON NGU]") (5 90 "$BH>ByE@IU$-JR2>L>%1(B,[KATAKANA LETTER BIDAKUON NGE]") (5 91 "$BH>ByE@IU$-JR2>L>%3(B,[KATAKANA LETTER BIDAKUON NGO]") (5 92 "$BH>ByE@IU$-JR2>L>%;(B,[KATAKANA LETTER AINU CE]") (5 93 "$BH>ByE@IU$-JR2>L>%D(B,[KATAKANA LETTER AINU TU]") (5 94 "$BH>ByE@IU$-JR2>L>%H(B,[KATAKANA LETTER AINU TO]") (6 25 "$B%9%Z!<%I(B($BGr(B),WHITE SPADE SUIT") (6 26 "$B%9%Z!<%I(B,BLACK SPADE SUIT") (6 27 "$B%@%$%d(B($BGr(B),WHITE DIAMOND SUIT") (6 28 "$B%@%$%d(B,BLACK DIAMOND SUIT") (6 29 "$B%O!<%H(B($BGr(B),WHITE HEART SUIT") (6 30 "$B%O!<%H(B,BLACK HEART SUIT") (6 31 "$B%/%i%V(B($BGr(B),WHITE CLUB SUIT") (6 32 "$B%/%i%V(B,BLACK CLUB SUIT") (6 57 "$B%.%j%7%">.J8;z%U%!%$%J%k(BSIGMA,GREEK SMALL LETTER FINAL SIGMA") (6 58 "$BFs=E4](B1,DOUBLE CIRCLED DIGIT ONE") (6 59 "$BFs=E4](B2,DOUBLE CIRCLED DIGIT TWO") (6 60 "$BFs=E4](B3,DOUBLE CIRCLED DIGIT THREE") (6 61 "$BFs=E4](B4,DOUBLE CIRCLED DIGIT FOUR") (6 62 "$BFs=E4](B5,DOUBLE CIRCLED DIGIT FIVE") (6 63 "$BFs=E4](B6,DOUBLE CIRCLED DIGIT SIX") (6 64 "$BFs=E4](B7,DOUBLE CIRCLED DIGIT SEVEN") (6 65 "$BFs=E4](B8,DOUBLE CIRCLED DIGIT EIGHT") (6 66 "$BFs=E4](B9,DOUBLE CIRCLED DIGIT NINE") (6 67 "$BFs=E4](B10,DOUBLE CIRCLED NUMBER TEN") (6 68 "$BGr>-4}6p(B,WHITE SHOGI PIECE") (6 69 "$B9u>-4}6p(B,BLACK SHOGI PIECE") (6 70 "$BM9JX%^!<%/(B,POSTAL MARK FACE") (6 71 "$BEEOC%^!<%/(B,BLACK TELEPHONE") (6 72 "$B@2%^!<%/(B,BLACK SUN WITH RAYS") (6 73 "$BF^%^!<%/(B,CLOUD") (6 74 "$B1+%^!<%/(B,UMBRELLA") (6 75 "$B@c%^!<%/(B,SNOWMAN") (6 76 "$B29@t%^!<%/(B,HOT SPRINGS") (6 77 "$BJ?9T;MJU7A(B,WHITE PARALLELOGRAM") (6 78 "$B>.=q$-JR2>L>%/(B,KATAKANA LETTER SMALL KU") (6 79 "$B>.=q$-JR2>L>%7(B,KATAKANA LETTER SMALL SI") (6 80 "$B>.=q$-JR2>L>%9(B,KATAKANA LETTER SMALL SU") (6 81 "$B>.=q$-JR2>L>%H(B,KATAKANA LETTER SMALL TO") (6 82 "$B>.=q$-JR2>L>%L(B,KATAKANA LETTER SMALL NU") (6 83 "$B>.=q$-JR2>L>%O(B,KATAKANA LETTER SMALL HA") (6 84 "$B>.=q$-JR2>L>%R(B,KATAKANA LETTER SMALL HI") (6 85 "$B>.=q$-JR2>L>%U(B,KATAKANA LETTER SMALL HU") (6 86 "$B>.=q$-JR2>L>%X(B,KATAKANA LETTER SMALL HE") (6 87 "$B>.=q$-JR2>L>%[(B,KATAKANA LETTER SMALL HO") (6 88 "$B>.=q$-H>ByE@IU$-JR2>L>%U(B,[KATAKANA LETTER AINU P]") (6 89 "$B>.=q$-JR2>L>%`(B,KATAKANA LETTER SMALL MU") (6 90 "$B>.=q$-JR2>L>%i(B,KATAKANA LETTER SMALL RA") (6 91 "$B>.=q$-JR2>L>%j(B,KATAKANA LETTER SMALL RI") (6 92 "$B>.=q$-JR2>L>%k(B,KATAKANA LETTER SMALL RU") (6 93 "$B>.=q$-JR2>L>%l(B,KATAKANA LETTER SMALL RE") (6 94 "$B>.=q$-JR2>L>%m(B,KATAKANA LETTER SMALL RO") (7 34 "$B:8>e3QAGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT") (7 35 "$B:82<3QAGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT") (7 36 "$B4]IU$-=D@~AGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE") (7 37 "$B4]IU$->e2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE") (7 38 "$B4]IU$-2<2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE") (7 39 "$B;03QIU$-=D@~AGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE") (7 40 "$B;03QIU$->e2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE") (7 41 "$B;03QIU$-2<2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE") (7 42 "$BGHIU$-=D@~AGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL WITH WAVE") (7 43 "$BGHIU$->e2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE") (7 44 "$BGHIU$-2<2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE") (7 45 "$B>e2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL") (7 46 "$B2<2#=D@~AGJR(B,DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL") (7 47 "$B1&>e3QAGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT") (7 48 "$B1&2<3QAGJR(B,DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT") (7 82 "$BByE@IU$-JR2>L>%o(B,KATAKANA LETTER VA") (7 83 "$BByE@IU$-JR2>L>%p(B,KATAKANA LETTER VI") (7 84 "$BByE@IU$-JR2>L>%q(B,KATAKANA LETTER VE") (7 85 "$BByE@IU$-JR2>L>%r(B,KATAKANA LETTER VO") (7 86 "$B>.$5$$$+Ey$7$$$+Bg$-$$(B,LESS-THAN EQUAL TO OR GREATER-THAN") (7 87 "$BBg$-$$$+Ey$7$$$+>.$5$$(B,GREATER-THAN EQUAL TO OR LESS-THAN") (7 88 "3$BJ,$N(B1,VULGAR FRACTION ONE THIRD") (7 89 "3$BJ,$N(B2,VULGAR FRACTION TWO THIRDS") (7 90 "5$BJ,$N(B1,VULGAR FRACTION ONE FIFTH") (7 91 "$B%A%'%C%/%^!<%/(B,CHECK MARK") (7 92 "$B%3%^%s%I5-9f(B,PLACE OF INTEREST SIGN") (7 93 "$B6uGr5-9f(B,OPEN BOX") (7 94 "$B%j%?!<%s5-9f(B,RETURN SYMBOL") (8 33 "$B4](B21,CIRCLED NUMBER TWENTY ONE") (8 34 "$B4](B22,CIRCLED NUMBER TWENTY TWO") (8 35 "$B4](B23,CIRCLED NUMBER TWENTY THREE") (8 36 "$B4](B24,CIRCLED NUMBER TWENTY FOUR") (8 37 "$B4](B25,CIRCLED NUMBER TWENTY FIVE") (8 38 "$B4](B26,CIRCLED NUMBER TWENTY SIX") (8 39 "$B4](B27,CIRCLED NUMBER TWENTY SEVEN") (8 40 "$B4](B28,CIRCLED NUMBER TWENTY EIGHT") (8 41 "$B4](B29,CIRCLED NUMBER TWENTY NINE") (8 42 "$B4](B30,CIRCLED NUMBER THIRTY") (8 43 "$B4](B31,CIRCLED NUMBER THIRTY ONE") (8 44 "$B4](B32,CIRCLED NUMBER THIRTY TWO") (8 45 "$B4](B33,CIRCLED NUMBER THIRTY THREE") (8 46 "$B4](B34,CIRCLED NUMBER THIRTY FOUR") (8 47 "$B4](B35,CIRCLED NUMBER THIRTY FIVE") (8 48 "$B4](B36,CIRCLED NUMBER THIRTY SIX") (8 49 "$B4](B37,CIRCLED NUMBER THIRTY SEVEN") (8 50 "$B4](B38,CIRCLED NUMBER THIRTY EIGHT") (8 51 "$B4](B39,CIRCLED NUMBER THIRTY NINE") (8 52 "$B4](B40,CIRCLED NUMBER FORTY") (8 53 "$B4](B41,CIRCLED NUMBER FORTY ONE") (8 54 "$B4](B42,CIRCLED NUMBER FORTY TWO") (8 55 "$B4](B43,CIRCLED NUMBER FORTY THREE") (8 56 "$B4](B44,CIRCLED NUMBER FORTY FOUR") (8 57 "$B4](B45,CIRCLED NUMBER FORTY FIVE") (8 58 "$B4](B46,CIRCLED NUMBER FORTY SIX") (8 59 "$B4](B47,CIRCLED NUMBER FORTY SEVEN") (8 60 "$B4](B48,CIRCLED NUMBER FORTY EIGHT") (8 61 "$B4](B49,CIRCLED NUMBER FORTY NINE") (8 62 "$B4](B50,CIRCLED NUMBER FIFTY") (8 71 "$B:8H>9u4](B,CIRCLE WITH LEFT HALF BLACK") (8 72 "$B1&H>9u4](B,CIRCLE WITH RIGHT HALF BLACK") (8 73 "$B29u4](B,CIRCLE WITH LOWER HALF BLACK") (8 74 "$B>eH>9u4](B,CIRCLE WITH UPPER HALF BLACK") (8 75 "$B46C2IdFs$D(B,DOUBLE EXCLAMATION MARK") (8 76 "$B5?LdIdFs$D(B,DOUBLE QUESTION MARK") (8 77 "$B5?LdId46C2Id(B,QUESTION EXCLAMATION MARK") (8 78 "$B46C2Id5?LdId(B,EXCLAMATION QUESTION MARK") (8 79 "$B%-%c%m%sIU$-(BA,LATIN CAPITAL LETTER A WITH CARON") (8 80 "$B%-%c%m%sIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH CARON") (8 81 "$B%-%c%m%sIU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH CARON") (8 82 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BM,LATIN CAPITAL LETTER M WITH ACUTE") (8 83 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BM$B>.J8;z(B,LATIN SMALL LETTER M WITH ACUTE") (8 84 "$B%0%l!<%V%"%/%;%s%HIU$-(BN,LATIN CAPITAL LETTER N WITH GRAVE") (8 85 "$B%0%l!<%V%"%/%;%s%HIU$-(BN$B>.J8;z(B,LATIN SMALL LETTER N WITH GRAVE") (8 86 "$B%-%c%m%sIU$-(BO,LATIN CAPITAL LETTER O WITH CARON") (8 87 "$B%-%c%m%sIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH CARON") (8 88 "$B%-%c%m%sIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH CARON") (8 89 "$B%^%/%m%s$H%@%$%(%l%7%9IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DIAERESIS AND MACRON") (8 90 "$B%"%-%e!<%H%"%/%;%s%H$H%@%$%(%l%7%9IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE") (8 91 "$B%-%c%m%s$H%@%$%(%l%7%9IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DIAERESIS AND CARON") (8 92 "$B%0%l!<%V%"%/%;%s%H$H%@%$%(%l%7%9IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE") (9 1 "$B%f!<%m5-9f(B,EURO SIGN") (9 2 "$B%N!<%V%l!<%/%9%Z!<%9(B,NO-BREAK SPACE") (9 3 "$B5U46C2Id(B,INVERTED EXCLAMATION MARK") (9 4 "$BITFCDjDL2_5-9f(B,CURRENCY SIGN") (9 5 "$BGKCG@~(B,BROKEN BAR") (9 6 "$BCx:n8"I=<(5-9f(B,COPYRIGHT SIGN") (9 7 "$B=w@-=x?tI8<1(B,FEMININE ORDINAL INDICATOR") (9 8 "$B;O$aFs=E;33g8L0zMQ5-9f(B,$B;O$a%.%e%a(B,LEFT-POINTING DOUBLE ANGLE QUOTATION MARK") (9 9 "$B%=%U%H%O%$%U%s(B,SOFT HYPHEN") (9 10 "$BEPO?>&I85-9f(B,REGISTERED SIGN") (9 11 "$B%^%/%m%s(B,MACRON") (9 12 "$B>eIU$-(B2,SUPERSCRIPT TWO") (9 13 "$B>eIU$-(B3,SUPERSCRIPT THREE") (9 14 "$BCfE@(B($B%i%F%s(B),MIDDLE DOT") (9 15 "$B%;%G%#%i(B,CEDILLA") (9 16 "$B>eIU$-(B1,SUPERSCRIPT ONE") (9 17 "$BCK@-=x?tI8<1(B,MASCULINE ORDINAL INDICATOR") (9 18 "$B=*$o$jFs=E;33g8L0zMQ5-9f(B,$B=*$o$j%.%e%a(B,RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK") (9 19 "4$BJ,$N(B1,VULGAR FRACTION ONE QUARTER") (9 20 "2$BJ,$N(B1,VULGAR FRACTION ONE HALF") (9 21 "4$BJ,$N(B3,VULGAR FRACTION THREE QUARTERS") (9 22 "$B5U5?LdId(B,INVERTED QUESTION MARK") (9 23 "$B%0%l!<%V%"%/%;%s%HIU$-(BA,LATIN CAPITAL LETTER A WITH GRAVE") (9 24 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BA,LATIN CAPITAL LETTER A WITH ACUTE") (9 25 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BA,LATIN CAPITAL LETTER A WITH CIRCUMFLEX") (9 26 "$B%A%k%IIU$-(BA,LATIN CAPITAL LETTER A WITH TILDE") (9 27 "$B%@%$%(%l%7%9IU$-(BA,LATIN CAPITAL LETTER A WITH DIAERESIS") (9 28 "$B>e%j%s%0IU$-(BA,LATIN CAPITAL LETTER A WITH RING ABOVE") (9 29 "AE,LATIN CAPITAL LETTER AE") (9 30 "$B%;%G%#%iIU$-(BC,LATIN CAPITAL LETTER C WITH CEDILLA") (9 31 "$B%0%l!<%V%"%/%;%s%HIU$-(BE,LATIN CAPITAL LETTER E WITH GRAVE") (9 32 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BE,LATIN CAPITAL LETTER E WITH ACUTE") (9 33 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BE,LATIN CAPITAL LETTER E WITH CIRCUMFLEX") (9 34 "$B%@%$%(%l%7%9IU$-(BE,LATIN CAPITAL LETTER E WITH DIAERESIS") (9 35 "$B%0%l!<%V%"%/%;%s%HIU$-(BI,LATIN CAPITAL LETTER I WITH GRAVE") (9 36 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BI,LATIN CAPITAL LETTER I WITH ACUTE") (9 37 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BI,LATIN CAPITAL LETTER I WITH CIRCUMFLEX") (9 38 "$B%@%$%(%l%7%9IU$-(BI,LATIN CAPITAL LETTER I WITH DIAERESIS") (9 39 "$B%"%$%9%i%s%I8l(BETH,LATIN CAPITAL LETTER ETH(Icelandic)") (9 40 "$B%A%k%IIU$-(BN,LATIN CAPITAL LETTER N WITH TILDE") (9 41 "$B%0%l!<%V%"%/%;%s%HIU$-(BO,LATIN CAPITAL LETTER O WITH GRAVE") (9 42 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BO,LATIN CAPITAL LETTER O WITH ACUTE") (9 43 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BO,LATIN CAPITAL LETTER O WITH CIRCUMFLEX") (9 44 "$B%A%k%IIU$-(BO,LATIN CAPITAL LETTER O WITH TILDE") (9 45 "$B%@%$%(%l%7%9IU$-(BO,LATIN CAPITAL LETTER O WITH DIAERESIS") (9 46 "$B%9%H%m!<%/IU$-(BO,LATIN CAPITAL LETTER O WITH STROKE") (9 47 "$B%0%l!<%V%"%/%;%s%HIU$-(BU,LATIN CAPITAL LETTER U WITH GRAVE") (9 48 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BU,LATIN CAPITAL LETTER U WITH ACUTE") (9 49 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BU,LATIN CAPITAL LETTER U WITH CIRCUMFLEX") (9 50 "$B%@%$%(%l%7%9IU$-(BU,LATIN CAPITAL LETTER U WITH DIAERESIS") (9 51 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BY,LATIN CAPITAL LETTER Y WITH ACUTE") (9 52 "$B%"%$%9%i%s%I8l(BTHORN,LATIN CAPITAL LETTER THORN(Icelandic)") (9 53 "$B%I%$%D8l%(%9%D%'%C%H(B,LATIN SMALL LETTER SHARP S(German)") (9 54 "$B%0%l!<%V%"%/%;%s%HIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH GRAVE") (9 55 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH ACUTE") (9 56 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH CIRCUMFLEX") (9 57 "$B%A%k%IIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH TILDE") (9 58 "$B%@%$%(%l%7%9IU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH DIAERESIS") (9 59 "$B>e%j%s%0IU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH RING ABOVE") (9 60 "AE$B>.J8;z(B,LATIN SMALL LETTER AE") (9 61 "$B%;%G%#%iIU$-(BC$B>.J8;z(B,LATIN SMALL LETTER C WITH CEDILLA") (9 62 "$B%0%l!<%V%"%/%;%s%HIU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH GRAVE") (9 63 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH ACUTE") (9 64 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH CIRCUMFLEX") (9 65 "$B%@%$%(%l%7%9IU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH DIAERESIS") (9 66 "$B%0%l!<%V%"%/%;%s%HIU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH GRAVE") (9 67 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH ACUTE") (9 68 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH CIRCUMFLEX") (9 69 "$B%@%$%(%l%7%9IU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH DIAERESIS") (9 70 "$B%"%$%9%i%s%I8l(BETH$B>.J8;z(B,LATIN SMALL LETTER ETH(Icelandic)") (9 71 "$B%A%k%IIU$-(BN$B>.J8;z(B,LATIN SMALL LETTER N WITH TILDE") (9 72 "$B%0%l!<%V%"%/%;%s%HIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH GRAVE") (9 73 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH ACUTE") (9 74 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH CIRCUMFLEX") (9 75 "$B%A%k%IIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH TILDE") (9 76 "$B%@%$%(%l%7%9IU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH DIAERESIS") (9 77 "$B%9%H%m!<%/IU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH STROKE") (9 78 "$B%0%l!<%V%"%/%;%s%HIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH GRAVE") (9 79 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH ACUTE") (9 80 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH CIRCUMFLEX") (9 81 "$B%@%$%(%l%7%9IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DIAERESIS") (9 82 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BY$B>.J8;z(B,LATIN SMALL LETTER Y WITH ACUTE") (9 83 "$B%"%$%9%i%s%I8l(BTHORN$B>.J8;z(B,LATIN SMALL LETTER THORN(Icelandic)") (9 84 "$B%@%$%(%l%7%9IU$-(BY$B>.J8;z(B,LATIN SMALL LETTER Y WITH DIAERESIS") (9 85 "$B%^%/%m%sIU$-(BA,LATIN CAPITAL LETTER A WITH MACRON") (9 86 "$B%^%/%m%sIU$-(BI,LATIN CAPITAL LETTER I WITH MACRON") (9 87 "$B%^%/%m%sIU$-(BU,LATIN CAPITAL LETTER U WITH MACRON") (9 88 "$B%^%/%m%sIU$-(BE,LATIN CAPITAL LETTER E WITH MACRON") (9 89 "$B%^%/%m%sIU$-(BO,LATIN CAPITAL LETTER O WITH MACRON") (9 90 "$B%^%/%m%sIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH MACRON") (9 91 "$B%^%/%m%sIU$-(BI$B>.J8;z(B,LATIN SMALL LETTER I WITH MACRON") (9 92 "$B%^%/%m%sIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH MACRON") (9 93 "$B%^%/%m%sIU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH MACRON") (9 94 "$B%^%/%m%sIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH MACRON") (10 1 "$B%*%4%M%/IU$-(BA,LATIN CAPITAL LETTER A WITH OGONEK") (10 2 "$B%V%j!<%V(B,BREVE") (10 3 "$B%9%H%m!<%/IU$-(BL,LATIN CAPITAL LETTER L WITH STROKE") (10 4 "$B%-%c%m%sIU$-(BL,LATIN CAPITAL LETTER L WITH CARON") (10 5 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BS,LATIN CAPITAL LETTER S WITH ACUTE") (10 6 "$B%-%c%m%sIU$-(BS,LATIN CAPITAL LETTER S WITH CARON") (10 7 "$B%;%G%#%iIU$-(BS,LATIN CAPITAL LETTER S WITH CEDILLA") (10 8 "$B%-%c%m%sIU$-(BT,LATIN CAPITAL LETTER T WITH CARON") (10 9 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BZ,LATIN CAPITAL LETTER Z WITH ACUTE") (10 10 "$B%-%c%m%sIU$-(BZ,LATIN CAPITAL LETTER Z WITH CARON") (10 11 "$B>e%I%C%HIU$-(BZ,LATIN CAPITAL LETTER Z WITH DOT ABOVE") (10 12 "$B%*%4%M%/IU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH OGONEK") (10 13 "$B%*%4%M%/(B,OGONEK") (10 14 "$B%9%H%m!<%/IU$-(BL$B>.J8;z(B,LATIN SMALL LETTER L WITH STROKE") (10 15 "$B%-%c%m%sIU$-(BL$B>.J8;z(B,LATIN SMALL LETTER L WITH CARON") (10 16 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BS$B>.J8;z(B,LATIN SMALL LETTER S WITH ACUTE") (10 17 "$B%-%c%m%s(B,CARON(Mandarin Chinese third tone)") (10 18 "$B%-%c%m%sIU$-(BS$B>.J8;z(B,LATIN SMALL LETTER S WITH CARON") (10 19 "$B%;%G%#%iIU$-(BS$B>.J8;z(B,LATIN SMALL LETTER S WITH CEDILLA") (10 20 "$B%-%c%m%sIU$-(BT$B>.J8;z(B,LATIN SMALL LETTER T WITH CARON") (10 21 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BZ$B>.J8;z(B,LATIN SMALL LETTER Z WITH ACUTE") (10 22 "$B%@%V%k%"%-%e!<%H%"%/%;%s%H(B,DOUBLE ACUTE ACCENT") (10 23 "$B%-%c%m%sIU$-(BZ$B>.J8;z(B,LATIN SMALL LETTER Z WITH CARON") (10 24 "$B>e%I%C%HIU$-(BZ$B>.J8;z(B,LATIN SMALL LETTER Z WITH DOT ABOVE") (10 25 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BR,LATIN CAPITAL LETTER R WITH ACUTE") (10 26 "$B%V%j!<%VIU$-(BA,LATIN CAPITAL LETTER A WITH BREVE") (10 27 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BL,LATIN CAPITAL LETTER L WITH ACUTE") (10 28 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BC,LATIN CAPITAL LETTER C WITH ACUTE") (10 29 "$B%-%c%m%sIU$-(BC,LATIN CAPITAL LETTER C WITH CARON") (10 30 "$B%*%4%M%/IU$-(BE,LATIN CAPITAL LETTER E WITH OGONEK") (10 31 "$B%-%c%m%sIU$-(BE,LATIN CAPITAL LETTER E WITH CARON") (10 32 "$B%-%c%m%sIU$-(BD,LATIN CAPITAL LETTER D WITH CARON") (10 33 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BN,LATIN CAPITAL LETTER N WITH ACUTE") (10 34 "$B%-%c%m%sIU$-(BN,LATIN CAPITAL LETTER N WITH CARON") (10 35 "$B%@%V%k%"%-%e!<%H%"%/%;%s%HIU$-(BO,LATIN CAPITAL LETTER O WITH DOUBLE ACUTE") (10 36 "$B%-%c%m%sIU$-(BR,LATIN CAPITAL LETTER R WITH CARON") (10 37 "$B>e%j%s%0IU$-(BU,LATIN CAPITAL LETTER U WITH RING ABOVE") (10 38 "$B%@%V%k%"%-%e!<%H%"%/%;%s%HIU$-(BU,LATIN CAPITAL LETTER U WITH DOUBLE ACUTE") (10 39 "$B%;%G%#%iIU$-(BT,LATIN CAPITAL LETTER T WITH CEDILLA") (10 40 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BR$B>.J8;z(B,LATIN SMALL LETTER R WITH ACUTE") (10 41 "$B%V%j!<%VIU$-(BA$B>.J8;z(B,LATIN SMALL LETTER A WITH BREVE") (10 42 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BL$B>.J8;z(B,LATIN SMALL LETTER L WITH ACUTE") (10 43 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BC$B>.J8;z(B,LATIN SMALL LETTER C WITH ACUTE") (10 44 "$B%-%c%m%sIU$-(BC$B>.J8;z(B,LATIN SMALL LETTER C WITH CARON") (10 45 "$B%*%4%M%/IU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH OGONEK") (10 46 "$B%-%c%m%sIU$-(BE$B>.J8;z(B,LATIN SMALL LETTER E WITH CARON") (10 47 "$B%-%c%m%sIU$-(BD$B>.J8;z(B,LATIN SMALL LETTER D WITH CARON") (10 48 "$B%9%H%m!<%/IU$-(BD$B>.J8;z(B,LATIN SMALL LETTER D WITH STROKE") (10 49 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BN$B>.J8;z(B,LATIN SMALL LETTER N WITH ACUTE") (10 50 "$B%-%c%m%sIU$-(BN$B>.J8;z(B,LATIN SMALL LETTER N WITH CARON") (10 51 "$B%@%V%k%"%-%e!<%H%"%/%;%s%HIU$-(BO$B>.J8;z(B,LATIN SMALL LETTER O WITH DOUBLE ACUTE") (10 52 "$B%-%c%m%sIU$-(BR$B>.J8;z(B,LATIN SMALL LETTER R WITH CARON") (10 53 "$B>e%j%s%0IU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH RING ABOVE") (10 54 "$B%@%V%k%"%-%e!<%H%"%/%;%s%HIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH DOUBLE ACUTE") (10 55 "$B%;%G%#%iIU$-(BT$B>.J8;z(B,LATIN SMALL LETTER T WITH CEDILLA") (10 56 "$B>e%I%C%H(B,DOT ABOVE(Mandarin Chinese light tone)") (10 57 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BC,LATIN CAPITAL LETTER C WITH CIRCUMFLEX") (10 58 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BG,LATIN CAPITAL LETTER G WITH CIRCUMFLEX") (10 59 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BH,LATIN CAPITAL LETTER H WITH CIRCUMFLEX") (10 60 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BJ,LATIN CAPITAL LETTER J WITH CIRCUMFLEX") (10 61 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BS,LATIN CAPITAL LETTER S WITH CIRCUMFLEX") (10 62 "$B%V%j!<%VIU$-(BU,LATIN CAPITAL LETTER U WITH BREVE") (10 63 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BC$B>.J8;z(B,LATIN SMALL LETTER C WITH CIRCUMFLEX") (10 64 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BG$B>.J8;z(B,LATIN SMALL LETTER G WITH CIRCUMFLEX") (10 65 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BH$B>.J8;z(B,LATIN SMALL LETTER H WITH CIRCUMFLEX") (10 66 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BJ$B>.J8;z(B,LATIN SMALL LETTER J WITH CIRCUMFLEX") (10 67 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%HIU$-(BS$B>.J8;z(B,LATIN SMALL LETTER S WITH CIRCUMFLEX") (10 68 "$B%V%j!<%VIU$-(BU$B>.J8;z(B,LATIN SMALL LETTER U WITH BREVE") (10 69 "$B%U%C%/IU$-(BM$B>.J8;z(B,$BM-@.J8;z(B,$BM-@.J8;z(B,$BM-@<;u7TCF$-2;(B,LATIN SMALL LETTER R WITH FISHHOOK") (10 72 "ESH$B>.J8;z(B,$BL5@<8eIt;u7TK`;$2;(B,LATIN SMALL LETTER ESH") (10 73 "EZH$B>.J8;z(B,$BM-@<8eIt;u7TK`;$2;(B,LATIN SMALL LETTER EZH") (10 74 "$B%Y%k%HIU$-(BL$B>.J8;z(B,$BL5@<;u7TB&LLK`;$2;(B,LATIN SMALL LETTER L WITH BELT") (10 75 "LEZH$B>.J8;z(B,$BM-@<;u7TB&LLK`;$2;(B,LATIN SMALL LETTER LEZH") (10 76 "$B%?!<%s%I(BR$B>.J8;z(B,$BL5@<;u7T@\6a2;(B,LATIN SMALL LETTER TURNED R") (10 77 "$B%l%H%m%U%l%C%/%9%U%C%/IU$-(BT$B>.J8;z(B,$BL5@<$=$j@eGKNv2;(B,LATIN SMALL LETTER T WITH RETROFLEX HOOK") (10 78 "$B%F!<%kIU$-(BD$B>.J8;z(B,$BM-@<$=$j@eGKNv2;(B,LATIN SMALL LETTER D WITH TAIL") (10 79 "$B%l%H%m%U%l%C%/%9%U%C%/IU$-(BN$B>.J8;z(B,$BM-@<$=$j@eI!2;(B,LATIN SMALL LETTER N WITH RETROFLEX HOOK") (10 80 "$B%F!<%kIU$-(BR$B>.J8;z(B,$BM-@<$=$j@eCF$-2;(B,LATIN SMALL LETTER R WITH TAIL") (10 81 "$B%U%C%/IU$-(BS$B>.J8;z(B,$BL5@<$=$j@eK`;$2;(B,LATIN SMALL LETTER S WITH HOOK") (10 82 "$B%l%H%m%U%l%C%/%9%U%C%/IU$-(BZ$B>.J8;z(B,$BM-@<$=$j@eK`;$2;(B,LATIN SMALL LETTER Z WITH RETROFLEX HOOK") (10 83 "$B%U%C%/IU$-%?!<%s%I(BR$B>.J8;z(B,$BM-@<$=$j@e@\6a2;(B,LATIN SMALL LETTER TURNED R WITH HOOK") (10 84 "$B%l%H%m%U%l%C%/%9%U%C%/IU$-(BL$B>.J8;z(B,$BM-@<$=$j@eB&LL@\6a2;(B,LATIN SMALL LETTER L WITH RETROFLEX HOOK") (10 85 "$B%9%H%m!<%/IU$-%I%C%H$J$7(BJ$B>.J8;z(B,$BM-@<9E8}38GKNv2;(B,LATIN SMALL LETTER DOTLESS J WITH STROKE") (10 86 "$B:8%U%C%/IU$-(BN$B>.J8;z(B,$BM-@<9E8}38I!2;(B,LATIN SMALL LETTER N WITH LEFT HOOK") (10 87 "$B%/%m%9%I%F!<%kIU$-(BJ$B>.J8;z(B,$BM-@<9E8}38K`;$2;(B,LATIN SMALL LETTER J WITH CROSSED-TAIL") (10 88 "$B%?!<%s%I(BY$B>.J8;z(B,$BM-@<9E8}38B&LL@\6a2;(B,LATIN SMALL LETTER TURNED Y") (10 89 "$B%9%/%j%W%H(BG$B>.J8;z(B,$BM-@.J8;z(B,$BM-@.J8;z(B,$BM-@.J8;z(B,$BL5@<0vF,K`;$2;(B,LATIN SMALL LETTER H WITH STROKE") (10 94 "$B%j%P!<%9%I%0%m%C%?%k%9%H%C%W(B,$BM-@<0vF,K`;$2;(B,LATIN LETTER PHARYNGEAL VOICED FRICATIVE") (11 1 "$B%0%m%C%?%k%9%H%C%W(B,$BL5@<@.J8;z(B,$BM-@<@?05[Ce2;(B,LATIN LETTER BILABIAL CLICK") (11 4 "$B9E8}38;u7T5[Ce2;(B,LATIN LETTER ALVEOLAR CLICK") (11 5 "$B%U%C%/IU$-(BB$B>.J8;z(B,$BM-@?0FbGK2;(B,LATIN SMALL LETTER B WITH HOOK") (11 6 "$B%U%C%/IU$-(BD$B>.J8;z(B,$BM-@<;u7TFbGK2;(B,LATIN SMALL LETTER D WITH HOOK") (11 7 "$B%U%C%/$H%9%H%m!<%/IU$-%I%C%H$J$7(BJ$B>.J8;z(B,$BM-@<9E8}38FbGK2;(B,LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK") (11 8 "$B%U%C%/IU$-(BG$B>.J8;z(B,$BM-@.J8;z(B,$B1_?0A0@e9-!&CfCJJl2;(B,LATIN SMALL LIGATURE OE") (11 11 "$B%j%,%A%c(BOE$BBgJ8;z(B,$B1_?0A0@e9-Jl2;(B,LATIN CAPITAL LIGATURE OE") (11 12 "$B%9%H%m!<%/IU$-(BI$B>.J8;z(B,$BHs1_?0Cf@e69Jl2;(B,LATIN SMALL LETTER I WITH STROKE") (11 13 "$B%P!.J8;z(B,$B1_?0Cf@e69Jl2;(B,LATIN SMALL LETTER U BAR") (11 14 "$B%j%P!<%9%I(BE$B>.J8;z(B,$BHs1_?0Cf@e69!&CfCJJl2;(B,LATIN SMALL LETTER REVERSED E") (11 15 "$B%P!.J8;z(B,$B1_?0Cf@e69!&CfCJJl2;(B,LATIN SMALL LETTER BARRED O") (11 16 "SCHWA$B>.J8;z(B,$BHs1_?0Cf@eCf1{Jl2;(B,LATIN SMALL LETTER SCHWA") (11 17 "$B%j%P!<%9%I%*!<%W%s(BE$B>.J8;z(B,$BHs1_?0Cf@e9-!&CfCJJl2;(B,LATIN SMALL LETTER REVERSED OPEN E") (11 18 "$B%/%m!<%:%I%j%P!<%9%I%*!<%W%s(BE$B>.J8;z(B,$B1_?0Cf@e9-!&CfCJJl2;(B,LATIN SMALL LETTER CLOSED REVERSED OPEN E") (11 19 "$B%?!<%s%I(BA$B>.J8;z(B,$BHs1_?0Cf@e69$a$N9-Jl2;(B,LATIN SMALL LETTER TURNED A") (11 20 "$B%?!<%s%I(BM$B>.J8;z(B,$BHs1_?08e@e69Jl2;(B,LATIN SMALL LETTER TURNED M") (11 21 "UPSILON$B>.J8;z(B,$B1_?08e@e9-$a$N69Jl2;(B,LATIN SMALL LETTER UPSILON") (11 22 "$B%Y%S!<%,%s%^(B,$BHs1_?08e@e69CfCJJl2;(B,LATIN SMALL LETTER RAMS HORN") (11 23 "$B%?!<%s%I(BV$B>.J8;z(B,$BHs1_?08e@e9-!&CfCJJl2;(B,LATIN SMALL LETTER TURNED V") (11 24 "$B%*!<%W%s(BO$B>.J8;z(B,$B1_?08e@e9-!&CfCJJl2;(B,LATIN SMALL LETTER OPEN O") (11 25 "$B%9%/%j%W%H(BA$B>.J8;z(B,$BHs1_?08e@e9-Jl2;(B,LATIN SMALL LETTER ALPHA") (11 26 "$B%?!<%s%I(BALPHA$B>.J8;z(B,$B1_?08e@e9-Jl2;(B,LATIN SMALL LETTER TURNED ALPHA") (11 27 "$B%?!<%s%I(BW$B>.J8;z(B,$BL5@?0!&Fp8}38K`;$2;(B,LATIN SMALL LETTER TURNED W") (11 28 "$B%?!<%s%I(BH$B>.J8;z(B,$BM-@?0!&9E8}38@\6a2;(B,LATIN SMALL LETTER TURNED H") (11 29 "$B%9%H%m!<%/IU$-%j%P!<%9%I%0%m%C%?%k%9%H%C%W(B,$BM-@<0vF,38K`;$2;(B,LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE") (11 30 "$B%9%H%m!<%/IU$-%0%m%C%?%k%9%H%C%W(B,$B0vF,38GKNv2;(B,LATIN LETTER GLOTTAL STOP WITH STROKE") (11 31 "$B%+!<%kIU$-(BC$B>.J8;z(B,$B;u7T!&9E8}38K`;$2;(B,LATIN SMALL LETTER C WITH CURL") (11 32 "$B%+!<%kIU$-(BZ$B>.J8;z(B,$B;u7T!&9E8}38K`;$2;(B,LATIN SMALL LETTER Z WITH CURL") (11 33 "$B%m%s%0%l%C%0IU$-%?!<%s%I(BR$B>.J8;z(B,$B;u7TB&LLCF$-2;(B,LATIN SMALL LETTER TURNED R WITH LONG LEG") (11 34 "$B%U%C%/IU$-(BHENG$B>.J8;z(B,$BL5@<8eIt;u7TFp8}38K`;$2;(B,LATIN SMALL LETTER HENG WITH HOOK") (11 35 "$B%U%C%/IU$-(BSCHWA,LATIN SMALL LETTER SCHWA WITH HOOK") (11 36 "$B%0%l!<%V%"%/%;%s%HIU$-(BAE$B>.J8;z(B,[LATIN SMALL LETTER AE WITH GRAVE]") (11 37 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BAE$B>.J8;z(B,LATIN SMALL LETTER AE WITH ACUTE") (11 38 "$B%0%l!<%V%"%/%;%s%HIU$-%9%/%j%W%H(BA$B>.J8;z(B,GREEK SMALL LETTER ALPHA WITH VARIA") (11 39 "$B%"%-%e!<%H%"%/%;%s%HIU$-%9%/%j%W%H(BA$B>.J8;z(B,GREEK SMALL LETTER ALPHA WITH OXIA") (11 40 "$B%0%l!<%V%"%/%;%s%HIU$-%*!<%W%s(BO$B>.J8;z(B,[LATIN SMALL LETTER OPEN O WITH GRAVE]") (11 41 "$B%"%-%e!<%H%"%/%;%s%HIU$-%*!<%W%s(BO$B>.J8;z(B,[LATIN SMALL LETTER OPEN O WITH ACUTE]") (11 42 "$B%0%l!<%V%"%/%;%s%HIU$-%?!<%s%I(BV$B>.J8;z(B,[LATIN SMALL LETTER TURNED V WITH GRAVE]") (11 43 "$B%"%-%e!<%H%"%/%;%s%HIU$-%?!<%s%I(BV$B>.J8;z(B,[LATIN SMALL LETTER TURNED V WITH ACUTE]") (11 44 "$B%0%l!<%V%"%/%;%s%HIU$-(BSCHWA$B>.J8;z(B,[LATIN SMALL LETTER SCHWA WITH GRAVE]") (11 45 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BSCHWA$B>.J8;z(B,[LATIN SMALL LETTER SCHWA WITH ACUTE]") (11 46 "$B%0%l!<%V%"%/%;%s%H$H%U%C%/IU$-(BSCHWA$B>.J8;z(B,[LATIN SMALL LETTER HOOKED SCHWA WITH GRAVE]") (11 47 "$B%"%-%e!<%H%"%/%;%s%H$H%U%C%/IU$-(BSCHWA$B>.J8;z(B,[LATIN SMALL LETTER HOOKED SCHWA WITH ACUTE]") (11 48 "$B%0%l!<%V%"%/%;%s%HIU$-(BEPSILON$B>.J8;z(B,GREEK SMALL LETTER EPSILON WITH VARIA") (11 49 "$B%"%-%e!<%H%"%/%;%s%HIU$-(BEPSILON$B>.J8;z(B,GREEK SMALL LETTER EPSILON WITH OXIA") (11 50 "$B%@%V%k%$%s%P!<%F%C%I%V%j!<%V(B($B9g@.2DG=(B),$BGK;$2;Kt$OFs=ED42;5-9f(B,COMBINING DOUBLE INVERTED BREVE") (11 51 "$B>.=D@~(B,$BBh0l6/@*(B,MODIFIER LETTER VERTICAL LINE") (11 52 "$B2<>.=D@~(B,$BBhFs6/@*(B,MODIFIER LETTER LOW VERTICAL LINE") (11 53 "$BD9(B,MODIFIER LETTER TRIANGULAR COLON") (11 54 "$BH>D9(B,MODIFIER LETTER HALF TRIANGULAR COLON") (11 55 "$B%V%j!<%V(B($B9g@.2DG=(B),$BD6C;(B,COMBINING BREVE(Vrachy)") (11 56 "$BO"7k$7$F$$$k(B,UNDERTIE(Enotikon)") (11 57 "$B%@%V%k%"%-%e!<%H%"%/%;%s%H(B($B9g@.2DG=(B),$B@e>:D4(B,COMBINING CARON") (11 63 "$B%5!<%+%`%U%l%C%/%9%"%/%;%s%H(B($B9g@.2DG=(B),$B@e>:D4(B,[RISING SYMBOL]") (11 70 "$B@e(BX($B9g@.2DG=(B),$BCfCJCf@eJl2;2=(B,COMBINING X ABOVE") (11 79 "$B2<=D@~(B($B9g@.2DG=(B),$B2;@ae%l%U%H%"%s%0%k(B($B9g@.2DG=(B),$B3+J|$,J9$3$($J$$(B,COMBINING LEFT ANGLE ABOVE") (12 1 "$B9u4](B1,DINGBAT NEGATIVE CIRCLED DIGIT ONE") (12 2 "$B9u4](B2,DINGBAT NEGATIVE CIRCLED DIGIT TWO") (12 3 "$B9u4](B3,DINGBAT NEGATIVE CIRCLED DIGIT THREE") (12 4 "$B9u4](B4,DINGBAT NEGATIVE CIRCLED DIGIT FOUR") (12 5 "$B9u4](B5,DINGBAT NEGATIVE CIRCLED DIGIT FIVE") (12 6 "$B9u4](B6,DINGBAT NEGATIVE CIRCLED DIGIT SIX") (12 7 "$B9u4](B7,DINGBAT NEGATIVE CIRCLED DIGIT SEVEN") (12 8 "$B9u4](B8,DINGBAT NEGATIVE CIRCLED DIGIT EIGHT") (12 9 "$B9u4](B9,DINGBAT NEGATIVE CIRCLED DIGIT NINE") (12 10 "$B9u4](B10,DINGBAT NEGATIVE CIRCLED NUMBER TEN") (12 11 "$B9u4](B11,NEGATIVE CIRCLED NUMBER ELEVEN") (12 12 "$B9u4](B12,NEGATIVE CIRCLED NUMBER TWELVE") (12 13 "$B9u4](B13,NEGATIVE CIRCLED NUMBER THIRTEEN") (12 14 "$B9u4](B14,NEGATIVE CIRCLED NUMBER FOURTEEN") (12 15 "$B9u4](B15,NEGATIVE CIRCLED NUMBER FIFTEEN") (12 16 "$B9u4](B16,NEGATIVE CIRCLED NUMBER SIXTEEN") (12 17 "$B9u4](B17,NEGATIVE CIRCLED NUMBER SEVENTEEN") (12 18 "$B9u4](B18,NEGATIVE CIRCLED NUMBER EIGHTEEN") (12 19 "$B9u4](B19,NEGATIVE CIRCLED NUMBER NINETEEN") (12 20 "$B9u4](B20,NEGATIVE CIRCLED NUMBER TWENTY") (12 21 "$B%m!<%^?t;z(B1$B>.J8;z(B,SMALL ROMAN NUMERAL ONE") (12 22 "$B%m!<%^?t;z(B2$B>.J8;z(B,SMALL ROMAN NUMERAL TWO") (12 23 "$B%m!<%^?t;z(B3$B>.J8;z(B,SMALL ROMAN NUMERAL THREE") (12 24 "$B%m!<%^?t;z(B4$B>.J8;z(B,SMALL ROMAN NUMERAL FOUR") (12 25 "$B%m!<%^?t;z(B5$B>.J8;z(B,SMALL ROMAN NUMERAL FIVE") (12 26 "$B%m!<%^?t;z(B6$B>.J8;z(B,SMALL ROMAN NUMERAL SIX") (12 27 "$B%m!<%^?t;z(B7$B>.J8;z(B,SMALL ROMAN NUMERAL SEVEN") (12 28 "$B%m!<%^?t;z(B8$B>.J8;z(B,SMALL ROMAN NUMERAL EIGHT") (12 29 "$B%m!<%^?t;z(B9$B>.J8;z(B,SMALL ROMAN NUMERAL NINE") (12 30 "$B%m!<%^?t;z(B10$B>.J8;z(B,SMALL ROMAN NUMERAL TEN") (12 31 "$B%m!<%^?t;z(B11$B>.J8;z(B,SMALL ROMAN NUMERAL ELEVEN") (12 32 "$B%m!<%^?t;z(B12$B>.J8;z(B,SMALL ROMAN NUMERAL TWELVE") (12 33 "$B4](BA$B>.J8;z(B,CIRCLED LATIN SMALL LETTER A") (12 34 "$B4](BB$B>.J8;z(B,CIRCLED LATIN SMALL LETTER B") (12 35 "$B4](BC$B>.J8;z(B,CIRCLED LATIN SMALL LETTER C") (12 36 "$B4](BD$B>.J8;z(B,CIRCLED LATIN SMALL LETTER D") (12 37 "$B4](BE$B>.J8;z(B,CIRCLED LATIN SMALL LETTER E") (12 38 "$B4](BF$B>.J8;z(B,CIRCLED LATIN SMALL LETTER F") (12 39 "$B4](BG$B>.J8;z(B,CIRCLED LATIN SMALL LETTER G") (12 40 "$B4](BH$B>.J8;z(B,CIRCLED LATIN SMALL LETTER H") (12 41 "$B4](BI$B>.J8;z(B,CIRCLED LATIN SMALL LETTER I") (12 42 "$B4](BJ$B>.J8;z(B,CIRCLED LATIN SMALL LETTER J") (12 43 "$B4](BK$B>.J8;z(B,CIRCLED LATIN SMALL LETTER K") (12 44 "$B4](BL$B>.J8;z(B,CIRCLED LATIN SMALL LETTER L") (12 45 "$B4](BM$B>.J8;z(B,CIRCLED LATIN SMALL LETTER M") (12 46 "$B4](BN$B>.J8;z(B,CIRCLED LATIN SMALL LETTER N") (12 47 "$B4](BO$B>.J8;z(B,CIRCLED LATIN SMALL LETTER O") (12 48 "$B4](BP$B>.J8;z(B,CIRCLED LATIN SMALL LETTER P") (12 49 "$B4](BQ$B>.J8;z(B,CIRCLED LATIN SMALL LETTER Q") (12 50 "$B4](BR$B>.J8;z(B,CIRCLED LATIN SMALL LETTER R") (12 51 "$B4](BS$B>.J8;z(B,CIRCLED LATIN SMALL LETTER S") (12 52 "$B4](BT$B>.J8;z(B,CIRCLED LATIN SMALL LETTER T") (12 53 "$B4](BU$B>.J8;z(B,CIRCLED LATIN SMALL LETTER U") (12 54 "$B4](BV$B>.J8;z(B,CIRCLED LATIN SMALL LETTER V") (12 55 "$B4](BW$B>.J8;z(B,CIRCLED LATIN SMALL LETTER W") (12 56 "$B4](BX$B>.J8;z(B,CIRCLED LATIN SMALL LETTER X") (12 57 "$B4](BY$B>.J8;z(B,CIRCLED LATIN SMALL LETTER Y") (12 58 "$B4](BZ$B>.J8;z(B,CIRCLED LATIN SMALL LETTER Z") (12 59 "$B4]%"(B,CIRCLED KATAKANA A") (12 60 "$B4]%$(B,CIRCLED KATAKANA I") (12 61 "$B4]%&(B,CIRCLED KATAKANA U") (12 62 "$B4]%((B,CIRCLED KATAKANA E") (12 63 "$B4]%*(B,CIRCLED KATAKANA O") (12 64 "$B4]%+(B,CIRCLED KATAKANA KA") (12 65 "$B4]%-(B,CIRCLED KATAKANA KI") (12 66 "$B4]%/(B,CIRCLED KATAKANA KU") (12 67 "$B4]%1(B,CIRCLED KATAKANA KE") (12 68 "$B4]%3(B,CIRCLED KATAKANA KO") (12 69 "$B4]%5(B,CIRCLED KATAKANA SA") (12 70 "$B4]%7(B,CIRCLED KATAKANA SI") (12 71 "$B4]%9(B,CIRCLED KATAKANA SU") (12 72 "$B4]%;(B,CIRCLED KATAKANA SE") (12 73 "$B4]%=(B,CIRCLED KATAKANA SO") (12 74 "$B4]%?(B,CIRCLED KATAKANA TA") (12 75 "$B4]%A(B,CIRCLED KATAKANA TI") (12 76 "$B4]%D(B,CIRCLED KATAKANA TU") (12 77 "$B4]%F(B,CIRCLED KATAKANA TE") (12 78 "$B4]%H(B,CIRCLED KATAKANA TO") (12 79 "$B4]%m(B,CIRCLED KATAKANA RO") (12 80 "$B4]%O(B,CIRCLED KATAKANA HA") (12 81 "$B4]%K(B,CIRCLED KATAKANA NI") (12 82 "$B4]%[(B,CIRCLED KATAKANA HO") (12 83 "$B4]%X(B,CIRCLED KATAKANA HE") (12 93 "$B%@%V%k%"%9%F(B,TWO ASTERISKS ALIGNED VERTICALLY") (12 94 "$B%"%9%F%j%:%`(B,ASTERISM") (13 1 "$B4](B1,CIRCLED DIGIT ONE") (13 2 "$B4](B2,CIRCLED DIGIT TWO") (13 3 "$B4](B3,CIRCLED DIGIT THREE") (13 4 "$B4](B4,CIRCLED DIGIT FOUR") (13 5 "$B4](B5,CIRCLED DIGIT FIVE") (13 6 "$B4](B6,CIRCLED DIGIT SIX") (13 7 "$B4](B7,CIRCLED DIGIT SEVEN") (13 8 "$B4](B8,CIRCLED DIGIT EIGHT") (13 9 "$B4](B9,CIRCLED DIGIT NINE") (13 10 "$B4](B10,CIRCLED NUMBER TEN") (13 11 "$B4](B11,CIRCLED NUMBER ELEVEN") (13 12 "$B4](B12,CIRCLED NUMBER TWELVE") (13 13 "$B4](B13,CIRCLED NUMBER THIRTEEN") (13 14 "$B4](B14,CIRCLED NUMBER FOURTEEN") (13 15 "$B4](B15,CIRCLED NUMBER FIFTEEN") (13 16 "$B4](B16,CIRCLED NUMBER SIXTEEN") (13 17 "$B4](B17,CIRCLED NUMBER SEVENTEEN") (13 18 "$B4](B18,CIRCLED NUMBER EIGHTEEN") (13 19 "$B4](B19,CIRCLED NUMBER NINETEEN") (13 20 "$B4](B20,CIRCLED NUMBER TWENTY") (13 21 "$B%m!<%^?t;z(B1,ROMAN NUMERAL ONE") (13 22 "$B%m!<%^?t;z(B2,ROMAN NUMERAL TWO") (13 23 "$B%m!<%^?t;z(B3,ROMAN NUMERAL THREE") (13 24 "$B%m!<%^?t;z(B4,ROMAN NUMERAL FOUR") (13 25 "$B%m!<%^?t;z(B5,ROMAN NUMERAL FIVE") (13 26 "$B%m!<%^?t;z(B6,ROMAN NUMERAL SIX") (13 27 "$B%m!<%^?t;z(B7,ROMAN NUMERAL SEVEN") (13 28 "$B%m!<%^?t;z(B8,ROMAN NUMERAL EIGHT") (13 29 "$B%m!<%^?t;z(B9,ROMAN NUMERAL NINE") (13 30 "$B%m!<%^?t;z(B10,ROMAN NUMERAL TEN") (13 31 "$B%m!<%^?t;z(B11,ROMAN NUMERAL ELEVEN") (13 32 "$BA43Q%_%j(B,SQUARE MIRI") (13 33 "$BA43Q%-%m(B,SQUARE KIRO") (13 34 "$BA43Q%;%s%A(B,SQUARE SENTI") (13 35 "$BA43Q%a!<%H%k(B,SQUARE MEETORU") (13 36 "$BA43Q%0%i%`(B,SQUARE GURAMU") (13 37 "$BA43Q%H%s(B,SQUARE TON") (13 38 "$BA43Q%"!<%k(B,SQUARE AARU") (13 39 "$BA43Q%X%/%?!<%k(B,SQUARE HEKUTAARU") (13 40 "$BA43Q%j%C%H%k(B,SQUARE RITTORU") (13 41 "$BA43Q%o%C%H(B,SQUARE WATTO") (13 42 "$BA43Q%+%m%j!<(B,SQUARE KARORII") (13 43 "$BA43Q%I%k(B,SQUARE DORU") (13 44 "$BA43Q%;%s%H(B,SQUARE SENTO") (13 45 "$BA43Q%Q!<%;%s%H(B,SQUARE PAASENTO") (13 46 "$BA43Q%_%j%P!<%k(B,SQUARE MIRIBAARU") (13 47 "$BA43Q%Z!<%8(B,SQUARE PEEZI") (13 48 "$BA43Q(BMM,SQUARE MM") (13 49 "$BA43Q(BCM,SQUARE CM") (13 50 "$BA43Q(BKM,SQUARE KM") (13 51 "$BA43Q(BMG,SQUARE MG") (13 52 "$BA43Q(BKG,SQUARE KG") (13 53 "$BA43Q(BCC,SQUARE CC") (13 54 "$BA43Q(BM2,SQUARE M SQUARED") (13 55 "$B%m!<%^?t;z(B12,ROMAN NUMERAL TWELVE") (13 63 "$BA43Q859fJ?@.(B,SQUARE ERA NAME HEISEI") (13 64 "$B;O$a%@%V%k%_%K%e!<%H(B,REVERSED DOUBLE PRIME QUOTATION MARK") (13 65 "$B=*$o$j%@%V%k%_%K%e!<%H(B,LOW DOUBLE PRIME QUOTATION MARK") (13 66 "$BA43Q(BNO,NUMERO SIGN") (13 67 "$BA43Q(BKK,SQUARE KK") (13 68 "$BA43Q(BTEL,TELEPHONE SIGN") (13 69 "$B4]IU$->e(B,CIRCLED IDEOGRAPH HIGH") (13 70 "$B4]IU$-Cf(B,CIRCLED IDEOGRAPH CENTRE") (13 71 "$B4]IU$-2<(B,CIRCLED IDEOGRAPH LOW") (13 72 "$B4]IU$-:8(B,CIRCLED IDEOGRAPH LEFT") (13 73 "$B4]IU$-1&(B,CIRCLED IDEOGRAPH RIGHT") (13 74 "$BA43Q3g8LIU$-3t(B,PARENTHESIZED IDEOGRAPH STOCK") (13 75 "$BA43Q3g8LIU$-M-(B,PARENTHESIZED IDEOGRAPH HAVE") (13 76 "$BA43Q3g8LIU$-Be(B,PARENTHESIZED IDEOGRAPH REPRESENT") (13 77 "$BA43Q859fL@<#(B,SQUARE ERA NAME MEIZI") (13 78 "$BA43Q859fBg@5(B,SQUARE ERA NAME TAISYOU") (13 79 "$BA43Q859f>3Q(B,RIGHT ANGLE") (13 89 "$BD>3Q;03Q(B,RIGHT TRIANGLE") (13 93 "$B;M$DI)(B,BLACK DIAMOND MINUS WHITE X") (13 94 "$B;X<(%^!<%/(B,WHITE RIGHT POINTING INDEX") (14 1 "2003$BDI(B") (15 94 "2003$BDI2C(B") (47 52 "2003$BDI2C(B") (47 94 "2003$BDI2C(B") (84 7 "2003$BDI2C(B") (94 90 "2003$BDI2C(B") (94 91 "2003$BDI2C(B") (94 92 "2003$BDI2C(B") (94 93 "2003$BDI2C(B") (94 94 "2003$BDI2C(B") ))) (dolist (x l) (skk-tankan-set-char-annotaion (make-char 'japanese-jisx0213-1 (+ 32 (car x)) (+ 32 (nth 1 x))) (nth 2 x))))) (provide 'skk-tankan) ;;; skk-tankan.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-tut.el000066400000000000000000001304451361774317600203570ustar00rootroot00000000000000;;; skk-tut.el --- SKK tutorial -*- coding: iso-2022-jp -*- ;; Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, ;; 1998, 1999, 2000, 2001, 2002 ;; Masahiko Sato ;; Copyright (C) 1999-2010 SKK Development Team ;; Author: Masahiko Sato ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'skk-macs)) (eval-and-compile (require 'skk-vars) (autoload 'skk-nicola-setup-tutorial "skk-nicola") (autoload 'skk-viper-normalize-map "skk-viper")) (eval-when-compile (defvar skk-kanagaki-keyboard-type) (defvar skk-kanagaki-state)) ;; internal variables and constants. ;; prefix should be `skktut-'. (defvar skk-tut-section-face 'skk-tut-section-face) (defvar skk-tut-do-it-face 'skk-tut-do-it-face) (defvar skk-tut-question-face 'skk-tut-question-face) (defvar skk-tut-key-bind-face 'skk-tut-key-bind-face) (defvar skk-tut-hint-face 'skk-tut-hint-face) (defconst skktut-adviced-alist '((skk-abbrev-mode . before) (skk-insert . before) (skk-kakutei . before) (skk-mode . before) (skk-create-file . around) (skk-save-jisyo-original . around) (skk-get-jisyo-buffer . around) ) "SKK $B%A%e!<%H%j%"%k$G(B advice $B$,IU$1$i$l$k4X?t$H(B advice class $B$N%(!<%j%9%H!#(B") (defvar skktut-question-numbers nil "SKK $B%A%e!<%H%j%"%k$NLdBj?t!#(B") (defconst skktut-tut-jisyo "~/skk-tut-jisyo" "SKK $B%A%e!<%H%j%"%kMQ$N<-=q!#(B") (defconst skktut-init-variables-alist '((skk-cursor-abbrev-color . "royalblue") (skk-abbrev-mode-string . " a$B$"(B") (skk-allow-spaces-newlines-and-tabs . t) (skk-auto-fill-mode-hook . nil) (skk-auto-insert-paren . nil) (skk-auto-okuri-process . nil) (skk-auto-start-henkan . nil) (skk-byte-compile-init-file . nil) (skk-comp-load-hook . nil) (skk-compare-jisyo-size-when-saving . nil) (skk-count-jisyo-candidates-function . 'skk-count-jisyo-candidates-original) (skk-count-private-jisyo-candidates-exactly . nil) (skk-date-ad . 1) (skk-cursor-default-color . (cond ((featurep 'xemacs) (frame-property (selected-frame) 'cursor-color)) (t (cdr (assq 'cursor-color (frame-parameters (selected-frame))))))) (skk-delete-implies-kakutei . t) (skk-delete-okuri-when-quit . nil) (skk-downcase-alist . nil) (skk-echo . t) (skk-egg-like-newline . nil) (skk-gadget-load-hook . nil) (skk-henkan-face . 'highlight) (skk-henkan-okuri-strictly . nil) (skk-henkan-overlay-priority . 600) (skk-henkan-show-candidates-keys . '(?a ?s ?d ?f ?j ?k ?l)) (skk-henkan-number-to-display-candidates . 7) (skk-show-candidates-always-pop-to-buffer . nil) (skk-henkan-strict-okuri-precedence . nil) (skk-previous-candidate-keys . (if (skk-tut-nicola-p) '("\C-p") '("\C-p" "x"))) (skk-hiragana-mode-string . " $B$+$J(B") (skk-init-file . "") (skk-input-by-code-menu-keys1 . '(?a ?s ?d ?f ?g ?h ?q ?w ?e ?r ?t ?y)) (skk-input-by-code-menu-keys2 . '(?a ?s ?d ?f ?g ?h ?j ?k ?l ?q ?w ?e ?r ?t ?y ?u)) (skk-japanese-message-and-error . nil) (skk-cursor-jisx0208-latin-color . "gold") (skk-jisx0208-latin-mode-string . " $BA41Q(B") (skk-jisx0208-latin-vector . skk-default-jisx0208-latin-vector) (skk-jisyo . "~/skk-tut-jisyo") (skk-jisyo-save-count . nil) (skk-update-jisyo-count . 0) (skk-kakutei-early . t) (skk-kakutei-key . "\C-j") (skk-kana-input-search-function . (lambda () (save-match-data (when (and (string-match "^h\\([bcdfghjklmnpqrstvwxz]\\)$" skk-prefix) (member (char-to-string (preceding-char)) '("$B$*(B" "$B%*(B"))) (cons '("$B%*(B" . "$B$*(B") (match-string 1 skk-prefix)))))) (skk-katakana-mode-string . " $B%+%J(B") (skk-kcode-load-hook . nil) (skk-keep-record . nil) (skk-kuten-touten-alist . '((jp . ("$B!#(B" . "$B!"(B")))) (skk-kutouten-type . 'jp) (skk-cursor-latin-color . "ivory4") (skk-latin-mode-string . " SKK") (skk-load-hook . nil) (skk-mode-hook . nil) (skk-next-completion-char . ?.) (skk-number-style . 1) (skk-okuri-char-alist . nil) (skk-previous-completion-char . ?,) (skk-process-okuri-early . nil) (skk-public-jisyo-has-entry-p-function . 'skk-public-jisyo-has-entry-p-original) (skk-rom-kana-base-rule-list . '(("a" nil ("$B%"(B" . "$B$"(B")) ("bb" "b" ("$B%C(B" . "$B$C(B")) ("ba" nil ("$B%P(B" . "$B$P(B")) ("be" nil ("$B%Y(B" . "$B$Y(B")) ("bi" nil ("$B%S(B" . "$B$S(B")) ("bo" nil ("$B%\(B" . "$B$\(B")) ("bu" nil ("$B%V(B" . "$B$V(B")) ("bya" nil ("$B%S%c(B" . "$B$S$c(B")) ("bye" nil ("$B%S%'(B" . "$B$S$'(B")) ("byi" nil ("$B%S%#(B" . "$B$S$#(B")) ("byo" nil ("$B%S%g(B" . "$B$S$g(B")) ("byu" nil ("$B%S%e(B" . "$B$S$e(B")) ("cc" "c" ("$B%C(B" . "$B$C(B")) ("cha" nil ("$B%A%c(B" . "$B$A$c(B")) ("che" nil ("$B%A%'(B" . "$B$A$'(B")) ("chi" nil ("$B%A(B" . "$B$A(B")) ("cho" nil ("$B%A%g(B" . "$B$A$g(B")) ("chu" nil ("$B%A%e(B" . "$B$A$e(B")) ("cya" nil ("$B%A%c(B" . "$B$A$c(B")) ("cye" nil ("$B%A%'(B" . "$B$A$'(B")) ("cyi" nil ("$B%A%#(B" . "$B$A$#(B")) ("cyo" nil ("$B%A%g(B" . "$B$A$g(B")) ("cyu" nil ("$B%A%e(B" . "$B$A$e(B")) ("dd" "d" ("$B%C(B" . "$B$C(B")) ("da" nil ("$B%@(B" . "$B$@(B")) ("de" nil ("$B%G(B" . "$B$G(B")) ("dha" nil ("$B%G%c(B" . "$B$G$c(B")) ("dhe" nil ("$B%G%'(B" . "$B$G$'(B")) ("dhi" nil ("$B%G%#(B" . "$B$G$#(B")) ("dho" nil ("$B%G%g(B" . "$B$G$g(B")) ("dhu" nil ("$B%G%e(B" . "$B$G$e(B")) ("di" nil ("$B%B(B" . "$B$B(B")) ("do" nil ("$B%I(B" . "$B$I(B")) ("du" nil ("$B%E(B" . "$B$E(B")) ("dya" nil ("$B%B%c(B" . "$B$B$c(B")) ("dye" nil ("$B%B%'(B" . "$B$B$'(B")) ("dyi" nil ("$B%B%#(B" . "$B$B$#(B")) ("dyo" nil ("$B%B%g(B" . "$B$B$g(B")) ("dyu" nil ("$B%B%e(B" . "$B$B$e(B")) ("e" nil ("$B%((B" . "$B$((B")) ("ff" "f" ("$B%C(B" . "$B$C(B")) ("fa" nil ("$B%U%!(B" . "$B$U$!(B")) ("fe" nil ("$B%U%'(B" . "$B$U$'(B")) ("fi" nil ("$B%U%#(B" . "$B$U$#(B")) ("fo" nil ("$B%U%)(B" . "$B$U$)(B")) ("fu" nil ("$B%U(B" . "$B$U(B")) ("fya" nil ("$B%U%c(B" . "$B$U$c(B")) ("fye" nil ("$B%U%'(B" . "$B$U$'(B")) ("fyi" nil ("$B%U%#(B" . "$B$U$#(B")) ("fyo" nil ("$B%U%g(B" . "$B$U$g(B")) ("fyu" nil ("$B%U%e(B" . "$B$U$e(B")) ("gg" "g" ("$B%C(B" . "$B$C(B")) ("ga" nil ("$B%,(B" . "$B$,(B")) ("ge" nil ("$B%2(B" . "$B$2(B")) ("gi" nil ("$B%.(B" . "$B$.(B")) ("go" nil ("$B%4(B" . "$B$4(B")) ("gu" nil ("$B%0(B" . "$B$0(B")) ("gya" nil ("$B%.%c(B" . "$B$.$c(B")) ("gye" nil ("$B%.%'(B" . "$B$.$'(B")) ("gyi" nil ("$B%.%#(B" . "$B$.$#(B")) ("gyo" nil ("$B%.%g(B" . "$B$.$g(B")) ("gyu" nil ("$B%.%e(B" . "$B$.$e(B")) ;;("h" "" ("$B%*(B" . "$B$*(B")) ("ha" nil ("$B%O(B" . "$B$O(B")) ("he" nil ("$B%X(B" . "$B$X(B")) ("hi" nil ("$B%R(B" . "$B$R(B")) ("ho" nil ("$B%[(B" . "$B$[(B")) ("hu" nil ("$B%U(B" . "$B$U(B")) ("hya" nil ("$B%R%c(B" . "$B$R$c(B")) ("hye" nil ("$B%R%'(B" . "$B$R$'(B")) ("hyi" nil ("$B%R%#(B" . "$B$R$#(B")) ("hyo" nil ("$B%R%g(B" . "$B$R$g(B")) ("hyu" nil ("$B%R%e(B" . "$B$R$e(B")) ("i" nil ("$B%$(B" . "$B$$(B")) ("jj" "j" ("$B%C(B" . "$B$C(B")) ("ja" nil ("$B%8%c(B" . "$B$8$c(B")) ("je" nil ("$B%8%'(B" . "$B$8$'(B")) ("ji" nil ("$B%8(B" . "$B$8(B")) ("jo" nil ("$B%8%g(B" . "$B$8$g(B")) ("ju" nil ("$B%8%e(B" . "$B$8$e(B")) ("jya" nil ("$B%8%c(B" . "$B$8$c(B")) ("jye" nil ("$B%8%'(B" . "$B$8$'(B")) ("jyi" nil ("$B%8%#(B" . "$B$8$#(B")) ("jyo" nil ("$B%8%g(B" . "$B$8$g(B")) ("jyu" nil ("$B%8%e(B" . "$B$8$e(B")) ("kk" "k" ("$B%C(B" . "$B$C(B")) ("ka" nil ("$B%+(B" . "$B$+(B")) ("ke" nil ("$B%1(B" . "$B$1(B")) ("ki" nil ("$B%-(B" . "$B$-(B")) ("ko" nil ("$B%3(B" . "$B$3(B")) ("ku" nil ("$B%/(B" . "$B$/(B")) ("kya" nil ("$B%-%c(B" . "$B$-$c(B")) ("kye" nil ("$B%-%'(B" . "$B$-$'(B")) ("kyi" nil ("$B%-%#(B" . "$B$-$#(B")) ("kyo" nil ("$B%-%g(B" . "$B$-$g(B")) ("kyu" nil ("$B%-%e(B" . "$B$-$e(B")) ("mm" "c" ("$B%C(B" . "$B$C(B")) ("ma" nil ("$B%^(B" . "$B$^(B")) ("me" nil ("$B%a(B" . "$B$a(B")) ("mi" nil ("$B%_(B" . "$B$_(B")) ("mo" nil ("$B%b(B" . "$B$b(B")) ("mu" nil ("$B%`(B" . "$B$`(B")) ("mya" nil ("$B%_%c(B" . "$B$_$c(B")) ("mye" nil ("$B%_%'(B" . "$B$_$'(B")) ("myi" nil ("$B%_%#(B" . "$B$_$#(B")) ("myo" nil ("$B%_%g(B" . "$B$_$g(B")) ("myu" nil ("$B%_%e(B" . "$B$_$e(B")) ("n" nil ("$B%s(B" . "$B$s(B")) ("n'" nil ("$B%s(B" . "$B$s(B")) ("na" nil ("$B%J(B" . "$B$J(B")) ("ne" nil ("$B%M(B" . "$B$M(B")) ("ni" nil ("$B%K(B" . "$B$K(B")) ("nn" nil ("$B%s(B" . "$B$s(B")) ("no" nil ("$B%N(B" . "$B$N(B")) ("nu" nil ("$B%L(B" . "$B$L(B")) ("nya" nil ("$B%K%c(B" . "$B$K$c(B")) ("nye" nil ("$B%K%'(B" . "$B$K$'(B")) ("nyi" nil ("$B%K%#(B" . "$B$K$#(B")) ("nyo" nil ("$B%K%g(B" . "$B$K$g(B")) ("nyu" nil ("$B%K%e(B" . "$B$K$e(B")) ("o" nil ("$B%*(B" . "$B$*(B")) ("pp" "p" ("$B%C(B" . "$B$C(B")) ("pa" nil ("$B%Q(B" . "$B$Q(B")) ("pe" nil ("$B%Z(B" . "$B$Z(B")) ("pi" nil ("$B%T(B" . "$B$T(B")) ("po" nil ("$B%](B" . "$B$](B")) ("pu" nil ("$B%W(B" . "$B$W(B")) ("pya" nil ("$B%T%c(B" . "$B$T$c(B")) ("pye" nil ("$B%T%'(B" . "$B$T$'(B")) ("pyi" nil ("$B%T%#(B" . "$B$T$#(B")) ("pyo" nil ("$B%T%g(B" . "$B$T$g(B")) ("pyu" nil ("$B%T%e(B" . "$B$T$e(B")) ("rr" "r" ("$B%C(B" . "$B$C(B")) ("ra" nil ("$B%i(B" . "$B$i(B")) ("re" nil ("$B%l(B" . "$B$l(B")) ("ri" nil ("$B%j(B" . "$B$j(B")) ("ro" nil ("$B%m(B" . "$B$m(B")) ("ru" nil ("$B%k(B" . "$B$k(B")) ("rya" nil ("$B%j%c(B" . "$B$j$c(B")) ("rye" nil ("$B%j%'(B" . "$B$j$'(B")) ("ryi" nil ("$B%j%#(B" . "$B$j$#(B")) ("ryo" nil ("$B%j%g(B" . "$B$j$g(B")) ("ryu" nil ("$B%j%e(B" . "$B$j$e(B")) ("ss" "s" ("$B%C(B" . "$B$C(B")) ("sa" nil ("$B%5(B" . "$B$5(B")) ("se" nil ("$B%;(B" . "$B$;(B")) ("sha" nil ("$B%7%c(B" . "$B$7$c(B")) ("she" nil ("$B%7%'(B" . "$B$7$'(B")) ("shi" nil ("$B%7(B" . "$B$7(B")) ("sho" nil ("$B%7%g(B" . "$B$7$g(B")) ("shu" nil ("$B%7%e(B" . "$B$7$e(B")) ("si" nil ("$B%7(B" . "$B$7(B")) ("so" nil ("$B%=(B" . "$B$=(B")) ("su" nil ("$B%9(B" . "$B$9(B")) ("sya" nil ("$B%7%c(B" . "$B$7$c(B")) ("sye" nil ("$B%7%'(B" . "$B$7$'(B")) ("syi" nil ("$B%7%#(B" . "$B$7$#(B")) ("syo" nil ("$B%7%g(B" . "$B$7$g(B")) ("syu" nil ("$B%7%e(B" . "$B$7$e(B")) ("tt" "t" ("$B%C(B" . "$B$C(B")) ("ta" nil ("$B%?(B" . "$B$?(B")) ("te" nil ("$B%F(B" . "$B$F(B")) ("tha" nil ("$B%F%!(B" . "$B$F$!(B")) ("the" nil ("$B%F%'(B" . "$B$F$'(B")) ("thi" nil ("$B%F%#(B" . "$B$F$#(B")) ("tho" nil ("$B%F%g(B" . "$B$F$g(B")) ("thu" nil ("$B%F%e(B" . "$B$F$e(B")) ("ti" nil ("$B%A(B" . "$B$A(B")) ("to" nil ("$B%H(B" . "$B$H(B")) ("tsu" nil ("$B%D(B" . "$B$D(B")) ("tu" nil ("$B%D(B" . "$B$D(B")) ("tya" nil ("$B%A%c(B" . "$B$A$c(B")) ("tye" nil ("$B%A%'(B" . "$B$A$'(B")) ("tyi" nil ("$B%A%#(B" . "$B$A$#(B")) ("tyo" nil ("$B%A%g(B" . "$B$A$g(B")) ("tyu" nil ("$B%A%e(B" . "$B$A$e(B")) ("u" nil ("$B%&(B" . "$B$&(B")) ("vv" "v" ("$B%C(B" . "$B$C(B")) ("va" nil ("$B%t%!(B" . "$B$&!+$!(B")) ("ve" nil ("$B%t%'(B" . "$B$&!+$'(B")) ("vi" nil ("$B%t%#(B" . "$B$&!+$#(B")) ("vo" nil ("$B%t%)(B" . "$B$&!+$)(B")) ("vu" nil ("$B%t(B" . "$B$&!+(B")) ("ww" "w" ("$B%C(B" . "$B$C(B")) ("wa" nil ("$B%o(B" . "$B$o(B")) ("we" nil ("$B%&%'(B" . "$B$&$'(B")) ("wi" nil ("$B%&%#(B" . "$B$&$#(B")) ("wo" nil ("$B%r(B" . "$B$r(B")) ("wu" nil ("$B%&(B" . "$B$&(B")) ("xx" "x" ("$B%C(B" . "$B$C(B")) ("xa" nil ("$B%!(B" . "$B$!(B")) ("xe" nil ("$B%'(B" . "$B$'(B")) ("xi" nil ("$B%#(B" . "$B$#(B")) ("xka" nil ("$B%u(B" . "$B$+(B")) ("xke" nil ("$B%v(B" . "$B$1(B")) ("xo" nil ("$B%)(B" . "$B$)(B")) ("xtsu" nil ("$B%C(B" . "$B$C(B")) ("xtu" nil ("$B%C(B" . "$B$C(B")) ("xu" nil ("$B%%(B" . "$B$%(B")) ("xwa" nil ("$B%n(B" . "$B$n(B")) ("xwe" nil ("$B%q(B" . "$B$q(B")) ("xwi" nil ("$B%p(B" . "$B$p(B")) ("xya" nil ("$B%c(B" . "$B$c(B")) ("xyo" nil ("$B%g(B" . "$B$g(B")) ("xyu" nil ("$B%e(B" . "$B$e(B")) ("yy" "y" ("$B%C(B" . "$B$C(B")) ("ya" nil ("$B%d(B" . "$B$d(B")) ("ye" nil ("$B%$%'(B" . "$B$$$'(B")) ("yo" nil ("$B%h(B" . "$B$h(B")) ("yu" nil ("$B%f(B" . "$B$f(B")) ("zz" "z" ("$B%C(B" . "$B$C(B")) ("z," nil "$B!E(B") ("z-" nil "$B!A(B") ("z." nil "$B!D(B") ("z/" nil "$B!&(B") ("z[" nil "$B!X(B") ("z]" nil "$B!Y(B") ("za" nil ("$B%6(B" . "$B$6(B")) ("ze" nil ("$B%<(B" . "$B$<(B")) ("zh" nil "$B"+(B") ("zi" nil ("$B%8(B" . "$B$8(B")) ("zj" nil "$B"-(B") ("zk" nil "$B",(B") ("zl" nil "$B"*(B") ("zo" nil ("$B%>(B" . "$B$>(B")) ("zu" nil ("$B%:(B" . "$B$:(B")) ("zya" nil ("$B%8%c(B" . "$B$8$c(B")) ("zye" nil ("$B%8%'(B" . "$B$8$'(B")) ("zyi" nil ("$B%8%#(B" . "$B$8$#(B")) ("zyo" nil ("$B%8%g(B" . "$B$8$g(B")) ("zyu" nil ("$B%8%e(B" . "$B$8$e(B")) ("." nil skk-current-kuten) ("," nil skk-current-touten) ("-" nil "$B!<(B") (":" nil "$B!'(B") (";" nil "$B!((B") ("?" nil "$B!)(B") ("[" nil "$B!V(B") ("]" nil "$B!W(B") ("l" nil skk-latin-mode) ("q" nil skk-toggle-kana) ("L" nil skk-jisx0208-latin-mode) ("Q" nil skk-set-henkan-point-subr) ("X" nil skk-purge-from-jisyo) ("/" nil skk-abbrev-mode) ("$" nil skk-display-code-for-char-at-point) ("\C-j" nil skk-kakutei) ("@" nil skk-today) ("\\" nil skk-input-by-code-or-menu))) (skk-rom-kana-rule-list . '(("hh" "h" ("$B%C(B" . "$B$C(B")))) (skk-save-jisyo-function . 'skk-save-jisyo-original) (skk-search-excluding-word-pattern-function . nil) (skk-search-prog-list . '((skk-search-jisyo-buf (get-buffer skktut-jisyo-buffer) 0))) (skk-set-henkan-point-key . '(?A ?B ?C ?D ?E ?F ?G ?H ?I ?J ?K ?M ?N ?O ?P ?R ?S ?T ?U ?V ?W ?Y ?Z)) (skk-share-private-jisyo . nil) (skk-special-midashi-char-list . '(?> ?< ??)) (skk-start-henkan-char . ?\040) (skk-show-candidates-nth-henkan-char . 5) (skk-try-completion-char . ?\011) (skk-update-jisyo-function . 'skktut-update-jisyo) (skk-use-color-cursor . (and window-system (fboundp 'x-display-color-p) (x-display-color-p))) (skk-use-face . window-system) (skk-use-look . nil) (skk-use-numeric-conversion . t) (skk-use-rdbms . nil) (skk-use-relation . nil) (skk-use-viper . nil) (skk-show-tooltip . nil) (skk-show-inline . nil) (skk-show-annotation . nil) (skk-kcode-charset . (if (featurep 'jisx0213) ; Mule-UCS (quote japanese-jisx0208) skk-kcode-charset)) (skk-kcode-method . (if (featurep 'emacs) 'code-or-char-list 'code-or-menu)) (skk-dcomp-activate . nil) (skk-dcomp-multiple-activate . nil) (skk-read-from-minibuffer-function . nil) (skk-verbose . nil) (debug-on-error . nil) (skk-show-mode-show . nil) (skk-show-mode-enable . nil) ;; not user variables but to be localized. (skk-insert-new-word-function . nil) (skk-mode-invoked . t) (skk-rule-tree . (if (and skk-use-kana-keyboard (memq skk-kanagaki-keyboard-type '(oasys nicola-jis nicola-us nicola-dvorak omelet-jis omelet-us omelet-dvorak)) (eq skk-kanagaki-state 'kana) skktut-nicola-tut-file) skk-kanagaki-rule-tree (skk-compile-rule-list skk-rom-kana-base-rule-list skk-rom-kana-rule-list)))) "skk.el $B$N%f!<%6!!#(B $B%G%#%l%/%H%jL>$O4^$^$J$$!#(B") (defvar skktut-japanese-tut nil "Non-nil $B$G$"$l$P!"%A%e!<%H%j%"%k$,F|K\8l$G$"$k$3$H$r<($9!#(B") (defvar skktut-right-answer nil "$B@52r$NJ8;zNs!#(B") (defvar skktut-question-count 1 "$B%A%e!<%H%j%"%k$N8=:_$NLdBjHV9f!#(B") (defvar skktut-tutorial-end nil "$B%A%e!<%H%j%"%k$N=*N;$r<($9%U%i%0!#(B") (defvar skktut-working-buffer " *skk-tutorial*") (defvar skktut-question-buffer "*$BLd(B*") (defvar skktut-answer-buffer "*$BEz(B*") (defvar skktut-jisyo-buffer " *skk-tut-jisyo*") (defvar skktut-original-window-configuration nil) (defvar skktut-working-window-configuration nil) (defvar skktut-original-local-map nil) (defvar skktut-skk-mode-on nil "Non-nil $B$J$i!"(Btutorial $B$r5/F0;~$K(B SKK $B$,4{$K5/F0$5$l$F$$$?$3$H$r<($9!#(B") (defvar skktut-latin-mode-map nil "SKK $B%A%e!<%H%j%"%k(B ASCII $B%b!<%I%-!<%^%C%W!#(B") (unless skktut-latin-mode-map (let ((map (make-sparse-keymap))) (define-key map "\C-j" 'skk-kakutei) (setq skktut-latin-mode-map map))) (defvar skktut-j-mode-map nil "SKK $B%A%e!<%H%j%"%k$+$J(B/$B%+%J%b!<%I%-!<%^%C%W!#(B") (unless skktut-j-mode-map (let ((map (make-sparse-keymap)) (c 32)) (while (< c 127) (define-key map (skk-char-to-unibyte-string c) 'skk-insert) (setq c (1+ c))) (setq skktut-j-mode-map map))) (defvar skktut-jisx0208-latin-mode-map nil "SKK $B%A%e!<%H%j%"%kA43Q1Q?t;z%b!<%I%-!<%^%C%W!#(B") (unless skktut-jisx0208-latin-mode-map (let ((map (make-sparse-keymap)) (i 0)) (while (< i 128) (if (aref skk-jisx0208-latin-vector i) (define-key map (skk-char-to-unibyte-string i) 'skk-jisx0208-latin-insert)) (setq i (1+ i))) (define-key map "\C-j" 'skk-kakutei) (setq skktut-jisx0208-latin-mode-map map))) (defvar skktut-abbrev-mode-map nil "SKK $B%A%e!<%H%j%"%k(B Abbrev $B%b!<%I%-!<%^%C%W!#(B") (unless skktut-abbrev-mode-map (let ((map (make-sparse-keymap))) (define-key map "," 'skk-abbrev-comma) (define-key map "." 'skk-abbrev-period) (define-key map "\C-q" 'skk-toggle-characters) (define-key map "\C-j" 'skk-kakutei) (define-key map " " 'skk-start-henkan) (define-key map "\t" 'skk-try-completion) (setq skktut-abbrev-mode-map map))) ;; -- macros (defmacro skktut-message (japanese english &rest arg) ;; skktut-japanese-tut $B$,(B non-nil $B$@$C$?$i(B JAPANESE $B$r(B nil $B$G$"$l$P(B ENGLISH ;; $B$r%(%3!<%(%j%"$KI=<($9$k!#(B ;; ARG $B$O(B message $B4X?t$NBh#20z?t0J9_$N0z?t$H$7$FEO$5$l$k!#(B (append `(message (if skktut-japanese-tut ,japanese ,english)) arg)) (defmacro skktut-error (japanese english &rest arg) ;; skktut-japanese-tut $B$,(B non-nil $B$@$C$?$i(B JAPANESE $B$r(B nil $B$G$"$l$P(B ENGLISH ;; $B$r%(%3!<%(%j%"$KI=<($7!"%(%i!<$rH/@8$5$;$k!#(B ;; ARG $B$O(B error $B4X?t$NBh#20z?t0J9_$N0z?t$H$7$FEO$5$l$k!#(B (append `(error (if skktut-japanese-tut ,japanese ,english)) arg)) (defmacro skktut-yes-or-no-p (japanese english) `(yes-or-no-p (if skktut-japanese-tut ,japanese ,english))) ;; advices. (defadvice skk-create-file (around skktut-ad disable)) (defadvice skk-save-jisyo-original (around skktut-ad disable)) (defadvice skk-abbrev-mode (before skktut-ad disable) "SKK $B%A%e!<%H%j%"%kMQ%"%I%P%$%9IU!#(B" (when (> 12 skktut-question-count) (skktut-error "$B$3$N%-!<$O$^$@;H$($^$;$s(B" "Cannot use this key yet"))) (defadvice skk-insert (before skktut-ad disable) "SKK $B%A%e!<%H%j%"%kMQ%"%I%P%$%9IU!#(B" (when (and (memq (skk-last-command-char) skk-set-henkan-point-key) (> 12 skktut-question-count)) (skktut-error "$B$+$J(B/$B%+%J%b!<%I$G$O!"1QBgJ8;z$O$^$@;H$($^$;$s(B" "Cannot use upper case character in kana/katakana mode"))) (defadvice skk-kakutei (before skktut-ad disable) "SKK $B%A%e!<%H%j%"%kMQ%"%I%P%$%9IU!#(B" (when (and (skk-called-interactively-p 'interactive) (= skktut-question-count 1)) (skktut-error "$B$3$N%-!<$O$^$@;H$($^$;$s(B" "Cannot use this key yet"))) (defadvice skk-mode (before skktut-ad disable) "SKK $B%A%e!<%H%j%"%kMQ%"%I%P%$%9IU!#(B" (when (and (skk-called-interactively-p 'interactive) (= skktut-question-count 1)) (skktut-error "$B$3$N%-!<$O$^$@;H$($^$;$s(B" "Cannot use this key yet"))) (defadvice skk-get-jisyo-buffer (around skktut-ad disable) (cond ((string= skk-jisyo skktut-tut-jisyo) (setq ad-return-value (get-buffer skktut-jisyo-buffer))) (t ad-do-it))) ;; hooks (add-hook 'kill-buffer-hook (lambda () (when (and (skk-called-interactively-p 'interactive) (member (buffer-name (current-buffer)) (list skktut-working-buffer skktut-question-buffer skktut-answer-buffer skktut-jisyo-buffer))) (skk-tutorial-quit 'now)))) (add-hook 'kill-emacs-hook (lambda () (when (buffer-live-p (get-buffer skktut-jisyo-buffer)) (skk-tutorial-quit 'now)))) ;; interactive commands. prefix should be `skk-tutorial'. ;;;###autoload (defun skk-tutorial (&optional query-language) "Start SKK tutorial. You can select English version by \\[universal-argument] \\[skk-tutorial]." (interactive "P") ;; (unless skk-mode-invoked ;; SKK $B$r5/F0$;$:$K$$$-$J$j(B ;; skk-tutorial $B$r$9!#(B \\[universal-argument] \\[skk-tutorial-again] $B$9$k$HD>$A$K$d$jD>$9!#(B" (interactive "P") (when (or now (skktut-yes-or-no-p "$B:G=i$+$i(B Tutorial $B$r$d$jD>$7$^$9!#$h$m$7$$$G$9$M!)(B " "Quit tutorial and start from question 1 again? ")) (skk-tutorial-quit 'now) (skk-tutorial))) (defun skk-tutorial-quit (&optional now) "$B%f!<%6$NF10U$,$"$k>l9g(B SKK $B%A%e!<%H%j%"%k$r$d$a$k!#(B \\[universal-argument] \\[skk-tutorial-quit] $B$9$k$HD>$A$K$d$a$k!#(B" (interactive "P") (when (or now (skktut-yes-or-no-p "$BK\Ev$K%A%e!<%H%j%"%k$r$d$a$^$9$+!)(B " "Really quit tutorial? ")) (let ((inhibit-quit t)) (delete-other-windows) ;; $B:FEY%A%e!<%H%j%"%k$r;H$($k$h$&$K!"FbItJQ?t$r=i4|2=$7$F$*$/!#(B (setq skktut-japanese-tut nil skktut-question-count 1 skktut-right-answer nil skktut-tutorial-end nil) (remove-hook 'minibuffer-setup-hook 'skktut-localize-and-init-variables) (skktut-disable-tutmap) (skktut-disable-advice) (with-current-buffer skktut-jisyo-buffer (set-buffer-modified-p nil) (kill-buffer skktut-jisyo-buffer)) (kill-buffer skktut-working-buffer) (kill-buffer skktut-answer-buffer) (kill-buffer skktut-question-buffer) (set-window-configuration skktut-original-window-configuration) ;; $B%A%e!<%H%j%"%k5/F0D>A0$K3+$$$F$$$?%P%C%U%!$G!"(Bskk-mode $B$r5/F0$7$F(B ;; $B$$$?$i!"$=$N>uBV$K$7$F!"%A%e!<%H%j%"%k$r=*N;$9$k!#(B (unless skktut-skk-mode-on (skk-mode -1))))) ;; the following commands are also interactive, but users may not call ;; them by name. So prefix should be `skktut-'. (defun skktut-next-question () (interactive) (set-window-configuration skktut-working-window-configuration) ;; called in skktut-answer-buffer. (save-match-data (let (user-ans) (save-excursion (goto-char (point-min)) (end-of-line) (skip-chars-backward " \t") (setq user-ans (buffer-substring-no-properties (point-min) (point)))) (when (string-match "^>* *" user-ans) (setq user-ans (substring user-ans (match-end 0)))) (if (not (string= skktut-right-answer user-ans)) (progn (skktut-message "$BEz$,0c$$$^$9!#$b$&0lEY$d$C$F$_$F2<$5$$(B" "Wrong. Try again") (ding)) (setq skktut-question-count (1+ skktut-question-count)) ;; buffer independent. (skktut-get-question-page skktut-question-count) (if (>= skktut-question-count (1+ skktut-question-numbers)) (skk-tutorial-quit 'now) (skktut-next-answer-buffer)))))) (defun skktut-skip-question (arg) (interactive "p") (set-window-configuration skktut-working-window-configuration) ;; called in skktut-answer-buffer. (skktut-erase-buffer) (setq skktut-question-count (+ skktut-question-count arg)) (cond ((> 1 skktut-question-count) (setq skktut-question-count 1)) ;; overrun ((> skktut-question-count skktut-question-numbers) (setq skktut-question-count skktut-question-numbers)) ((and (>= skktut-question-count 3) (not skk-j-mode)) (skk-mode 1))) ;; buffer independent. (skktut-get-question-page skktut-question-count) (if skktut-tutorial-end (skk-tutorial-quit 'now) (skktut-next-answer-buffer))) ;; internal functions. prefix should be `skktut-'. (defun skktut-make-windows () ;; Make window fill its frame. (delete-other-windows) (split-window-vertically) (let ((height (window-height (selected-window)))) (unless (< 22 height) ;; Keep at least 23 lines for the upper window. (enlarge-window (- 23 height)))) ;; (other-window 1) ;; make it selected window and current buffer. ;; (switch-to-buffer skktut-answer-buffer) (pop-to-buffer skktut-answer-buffer) ;; not make it current buffer but visible. (display-buffer skktut-question-buffer) (setq skktut-working-window-configuration (current-window-configuration))) (defun skktut-enable-advice () (let ((alist skktut-adviced-alist) e) (dolist (e alist) (ad-enable-advice (car e) (cdr e) 'skktut-ad) (ad-activate (car e))))) (defun skktut-disable-advice () (let ((alist skktut-adviced-alist) e) (dolist (e alist) (ad-disable-advice (car e) (cdr e) 'skktut-ad) (ad-activate (car e))))) (defun skktut-enable-tutmap () (let ((inhibit-quit t)) (skk-update-minor-mode-map-alist 'skk-latin-mode skktut-latin-mode-map) (skk-update-minor-mode-map-alist 'skk-abbrev-mode skktut-abbrev-mode-map) (skk-update-minor-mode-map-alist 'skk-j-mode skktut-j-mode-map) (skk-update-minor-mode-map-alist 'skk-jisx0208-mode skktut-jisx0208-latin-mode-map) (define-key skktut-j-mode-map "\C-p" 'skk-previous-candidate) (unless (skk-tut-nicola-p) (define-key skktut-j-mode-map "x" 'skk-previous-candidate)) (define-key skktut-j-mode-map "\C-j" 'skk-insert) (define-key skktut-j-mode-map "\t" 'skk-insert) ;; for minor-mode-map-alist localized by Viper. (when (and (featurep 'viper) (skk-local-variable-p 'minor-mode-map-alist nil t)) (setq-default minor-mode-map-alist minor-mode-map-alist)))) (defun skktut-disable-tutmap () (let ((inhibit-quit t) (minor-mode-list '(skk-abbrev-mode skk-latin-mode skk-j-mode skk-jisx0208-latin-mode)) minor-mode e) (while minor-mode-list (setq minor-mode (car minor-mode-list) minor-mode-list (cdr minor-mode-list)) ;; fail safe. (while (setq e (assq minor-mode minor-mode-map-alist)) (setq minor-mode-map-alist (delq e minor-mode-map-alist)))) (skk-update-minor-mode-map-alist 'skk-latin-mode skk-latin-mode-map) (skk-update-minor-mode-map-alist 'skk-abbrev-mode skk-abbrev-mode-map) (skk-update-minor-mode-map-alist 'skk-j-mode skk-j-mode-map) (skk-update-minor-mode-map-alist 'skk-jisx0208-mode skk-jisx0208-latin-mode-map)) ;; for minor-mode-map-alist localized by Viper. (when (default-value skk-use-viper) (skk-viper-normalize-map))) (defun skktut-pre-setup-tutorial () (setq skktut-original-window-configuration (current-window-configuration) skktut-skk-mode-on skk-mode skktut-question-count 1)) (defun skktut-update-jisyo (word &optional purge) (let ((skk-share-private-jisyo nil) (skk-jisyo-update-vector nil) (skk-update-jisyo-count 0)) (skk-update-jisyo-original word purge))) (defun skktut-setup-jisyo-buffer () ;; setup skktut-tut-jisyo buffer. (with-current-buffer (get-buffer-create skktut-jisyo-buffer) (buffer-disable-undo (current-buffer)) (skktut-localize-and-init-variables) (setq case-fold-search nil) (insert "\ ;; okuri-ari entries. $B$[$C(Bs /$BM_(B/ $B$D$+(Bt /$B;H(B/ $B$?$C(Bs /$BC#(B/ $B$7(Bt /$BCN(B/ $B$&$4(Bk /$BF0(B/ ;; okuri-nasi entries. Cyrillic /$B'!(B/$B'"(B/$B'#(B/$B'$(B/$B'%(B/$B'&(B/$B''(B/$B'((B/$B')(B/$B'*(B/$B'+(B/$B',(B/$B'-(B/$B'.(B/$B'/(B/$B'0(B/$B'1(B/$B'2(B/$B'3(B/$B'4(B/$B'5(B/$B'6(B/\ $B'7(B/$B'8(B/$B'9(B/$B':(B/$B';(B/$B'<(B/$B'=(B/$B'>(B/$B'?(B/$B'@(B/$B'A(B/ Greek /$B&!(B/$B&"(B/$B&#(B/$B&$(B/$B&%(B/$B&&(B/$B&'(B/$B&((B/$B&)(B/$B&*(B/$B&+(B/$B&,(B/$B&-(B/$B&.(B/$B&/(B/$B&0(B/$B&1(B/$B&2(B/$B&3(B/$B&4(B/$B&5(B/$B&6(B/$B&7(B/\ $B&8(B/ cyrillic /$B'Q(B/$B'R(B/$B'S(B/$B'T(B/$B'U(B/$B'V(B/$B'W(B/$B'X(B/$B'Y(B/$B'Z(B/$B'[(B/$B'\(B/$B'](B/$B'^(B/$B'_(B/$B'`(B/$B'a(B/$B'b(B/$B'c(B/$B'd(B/$B'e(B/$B'f(B/\ $B'g(B/$B'h(B/$B'i(B/$B'j(B/$B'k(B/$B'l(B/$B'm(B/$B'n(B/$B'o(B/$B'p(B/$B'q(B/ greek /$B&A(B/$B&B(B/$B&C(B/$B&D(B/$B&E(B/$B&F(B/$B&G(B/$B&H(B/$B&I(B/$B&J(B/$B&K(B/$B&L(B/$B&M(B/$B&N(B/$B&O(B/$B&P(B/$B&Q(B/$B&R(B/$B&S(B/$B&T(B/$B&U(B/$B&V(B/$B&W(B/\ $B&X(B/ tutorial /$B%A%e!<%H%j%"%k(B/ $B$$$A(B /$B0l(B/ $B$$$A$*$/(B /$B0l2/(B/ $B$*$*$5$+(B /$BBg:e(B/ $B$*$/(B /$B2/(B/ $B$+$J(B /$B2>L>(B/ $B$+$s$8(B /$B4A;z(B/$B44;v(B/$B4F;v(B/ $B$,$/(B /$B3X(B/ $B$,$/$7$e$&(B /$B3X=,(B/ $B$-(B /$B4p(B/$B5-(B/$B5$(B/$BLZ(B/$B5"(B/ $B$-$4$&(B /$B5-9f(B/$B!&(B/$B!+(B/$B!,(B/$B!-(B/$B!.(B/$B!/(B/$B!1(B/$B!3(B/$B!4(B/$B!5(B/$B!6(B/$B!7(B/$B!8(B/$B!9(B/$B!:(B/$B!;(B/$B!=(B/$B!>(B/$B!B(B/$B!D(B/$B!E(B/\ $B!H(B/$B!I(B/$B!L(B/$B!M(B/$B!R(B/$B!S(B/$B!T(B/$B!U(B/$B!X(B/$B!Y(B/$B!Z(B/$B![(B/$B!^(B/$B!_(B/$B!`(B/$B!b(B/$B!e(B/$B!f(B/$B!g(B/$B!h(B/$B!i(B/$B!j(B/$B!k(B/$B!l(B/$B!m(B/$B!n(B/\ $B!o(B/$B!q(B/$B!r(B/$B!x(B/$B!y(B/$B!z(B/$B!{(B/$B!|(B/$B!}(B/$B!~(B/$B"!(B/$B""(B/$B"#(B/$B"$(B/$B"%(B/$B"&(B/$B"'(B/$B"((B/$B")(B/$B"*(B/$B"+(B/$B",(B/$B"-(B/$B".(B/ $B$-$g$&$H(B /$B5~ET(B/ $B$3$&(B /$B8}(B/ $B$3$&$Y(B /$B?@8M(B/ $B$4(B /$B8^(B/$B8_(B/$B8`(B/$B8a(B/$B8b(B/$B8c(B/$B8d(B/$B8e(B/$B8f(B/$B8g(B/$B8h(B/$B8i(B/$B8j(B/$B8k(B/$B8l(B/$B8m(B/$B8n(B/$B8o(B/ $B$5$$(B /$B:Y(B/$B:G(B/$B:F(B/ $B$5$$$7$g(B /$B:G=i(B/ $B$5$$$H$&(B /$B:XF#(B/ $B$5$H$&(B /$B:4F#(B/ $B$7$e$&(B /$B=,(B/$B=*(B/ $B$7$e$&$j$g$&(B /$B=*N;(B/ $B$7$g(B /$B=q(B/ $B$8(B /$B<-(B/$B;z(B/ $B$8$7$g(B /$B<-=q(B/$BCO=j(B/ $B$8$s(B /$B?M(B/ $B$8$s$3$&(B /$B?M8}(B/ $B$;$s(B /$BA*(B/$B@v(B/ $B$;$s$?$/(B /$BA*Br(B/$B@vBu(B/ $B$=$&(B /$BAv(B/ $B$@$$(B /$BBg(B/$BBh(B/$BBe(B/ $B$?$/(B /$BBr(B/$BBu(B/ $B$F$-(B /$BE*(B/$BE((B/$BE)(B/$BE,(B/$BE&(B/ $B$H$&(B /$BEl(B/$BEP(B/ $B$H$&$[$/(B /$BElKL(B/ $B$H$&$m$/(B /$BEPO?(B/ $B$I$&(B /$BF0(B/ $B$K$e$&$j$g$/(B /$BF~NO(B/ $B$R$3$&$-(B /$BHt9T5!(B/ $B$X$s$+$s(B /$BJQ49(B/ $B$[$/(B /$BKL(B/ $B$_$g$&(B /$BL>(B/ $B$_$g$&$8(B /$BL>;z(B/ $B$h$&$$(B /$BMF0W(B/$BMQ0U(B/ $B$j$g$&(B /$BN;(B/ $B$m$/(B /$BO?(B/ ") (skk-setup-jisyo-buffer))) (defun skktut-setup-working-buffer (file) (save-match-data (let (sexp) (set-buffer (get-buffer-create skktut-working-buffer)) (buffer-disable-undo (current-buffer)) (skktut-localize-and-init-variables) (skktut-erase-buffer) ; fail safe. (insert-file-contents file) ;; Count how many questions there are. (setq skktut-question-numbers -1) (goto-char (point-min)) (while (re-search-forward "^----$" nil t) (setq skktut-question-numbers (1+ skktut-question-numbers))) ;; (goto-char (point-min)) (setq skktut-japanese-tut (looking-at ";; SKK Japanese")) (while (re-search-forward "^>> \\((.+)\\)$" nil t nil) (setq sexp (buffer-substring-no-properties (match-beginning 1) (match-end 1))) (delete-region (match-beginning 1) (match-end 1)) ;; insert evaluated string instead of lisp program. (insert (eval (car (read-from-string sexp))))) (goto-char (point-min)) (when skk-tut-use-face (skktut-colored))))) (defun skktut-setup-question-buffer () (with-current-buffer (get-buffer-create skktut-question-buffer) (buffer-disable-undo (current-buffer)) (skktut-erase-buffer) ; fail safe. (setq buffer-read-only t) (skktut-get-question-page skktut-question-count) (local-set-key "\C-xq" 'skk-tutorial-quit) (local-set-key "\C-xt" 'skk-tutorial-again) (local-set-key "\C-xn" 'skktut-next-question) (local-set-key "\C-xs" 'skktut-skip-question))) (defun skktut-setup-answer-buffer () (with-current-buffer (get-buffer-create skktut-answer-buffer) ;; users may use undo. ;; (buffer-disable-undo (current-buffer)) ;; skktut-answer-buffer $B$N(B skk.el $B$NJQ?t$r%P%C%U%!%m!<%+%k2=$7!"=i4|2=$9(B ;; $B$k!#(B (skktut-localize-and-init-variables) (local-set-key "\C-xq" 'skk-tutorial-quit) (local-set-key "\C-xt" 'skk-tutorial-again) (local-set-key "\C-xn" 'skktut-next-question) (local-set-key "\C-xs" 'skktut-skip-question) (auto-fill-mode -1) (skktut-next-answer-buffer))) (defun skktut-localize-and-init-variables () ;; $B%f!<%6!<$,(B skk.el $B$NJQ?t$r%+%9%?%^%$%:$7$F$$$k2DG=@-$,$"$k$N$G!"%+%l%s%H(B ;; $B%P%C%U%!$N(B skk.el $B$NJQ?t$r%P%C%U%!%m!<%+%k2=$7!"=i4|2=$9$k!#(B (let ((alist skktut-init-variables-alist) v) (dolist (cell alist) (setq v (car cell)) (make-local-variable v) (set v (eval (cdr cell)))))) (defun skktut-erase-buffer () (let ((inhibit-read-only t) buffer-read-only) (set-text-properties (point-min) (point-max) nil) (erase-buffer))) (defun skktut-colored () ;; face $B$r(B Text Property $B$K$7$F$*$/$H%F%-%9%H$r%3%T!<$7$?$H$-$K0l=o$K%3%T!<$G(B ;; $B$-$k$N$G9%ET9g!#(B (while (re-search-forward "$B"'(B\\([^$B![(B $B$!(B-$B$s%!(B-$B%s(B]+\\)" nil t nil) (put-text-property (match-beginning 1) (match-end 1) 'face 'highlight)) (goto-char (point-min)) (while (re-search-forward "^==.+==$" nil t nil) (put-text-property (match-beginning 0) (match-end 0) 'face skk-tut-section-face)) (goto-char (point-min)) (while (re-search-forward "^!!.+" nil t nil) (put-text-property (match-beginning 0) (match-end 0) 'face skk-tut-do-it-face)) (goto-char (point-min)) (while (re-search-forward "^>> \\(.+\\)$" nil t nil) (put-text-property (match-beginning 1) (match-end 1) 'face skk-tut-question-face)) (unless skktut-japanese-tut (goto-char (point-min)) (while (re-search-forward "Hint: .*$" nil t nil) (put-text-property (match-beginning 0) (match-end 0) 'face skk-tut-hint-face)))) (defun skktut-next-answer-buffer () (save-match-data (with-current-buffer skktut-question-buffer ;; first get right answer in `skktut-question-buffer'. (goto-char (point-max)) (search-backward "\n>>") (forward-char 1) (setq skktut-right-answer (buffer-substring-no-properties (+ 3 (point)) (line-end-position))) (goto-char (point-min))) ;; not to save point. (let ((cbuf (current-buffer)) p) (unwind-protect (let ((plist (cons (if (featurep 'xemacs) 'end-open 'rear-nonsticky) '(t intangible t read-only t)))) ;; secondary make a new answer buffer. (set-buffer skktut-answer-buffer) (skktut-erase-buffer) (insert ">> \n\n") (add-text-properties (point-min) (- (point) 2) plist) (setq p (point)) (insert (let ((next " `\\[skktut-next-question]'") (quit " `\\[skk-tutorial-quit]'") (skip " `\\[skktut-skip-question]'") (sow " `\\[scroll-other-window]'")) (substitute-command-keys (if skktut-japanese-tut (concat "* $BEz$,$G$-$?$i(B" next "\n" "* $BESCf$G$d$a$k$K$O(B" quit "\n" (if (/= skktut-question-count skktut-question-numbers) (concat "* $B%9%-%C%W$9$k$K$O(B" skip "\n")) "* $B!ZLd![$r%9%/%m!<%k$9$k$K$O(B" sow) (concat "* For next question" next "\n" "* to quit " quit "\n" (if (/= skktut-question-count skktut-question-numbers) (concat "* to skip this question" skip "\n")) "* to scroll question window" sow))))) (when skk-tut-use-face (put-text-property p (point) 'face skk-tut-key-bind-face)) (add-text-properties p (point) plist) (goto-char (+ (point-min) 3))) (set-buffer cbuf))))) (defun skktut-get-question-page (page) (save-excursion (save-match-data (if (>= skktut-question-count (1+ skktut-question-numbers)) ;; No more need to search for S expressions in the working buffer. ;; It's time to finish. (skktut-end-tutorial) ;; Tutorial continues. (set-buffer skktut-working-buffer) (let (pos str) (goto-char (point-min)) (search-forward "--\n" nil t page) (when (looking-at ";") ; lisp program exists. (forward-char 3) (setq pos (point)) (end-of-line) (skk-save-point (eval-region pos (point) nil)) (forward-char 1)) (unless skktut-tutorial-end (setq pos (point)) (search-forward "\n>>") (end-of-line) (setq str (buffer-substring pos (point))) (set-buffer skktut-question-buffer) (skktut-erase-buffer) (let (buffer-read-only) (insert str) (setq mode-line-buffer-identification (concat "$B#S#K#K%A%e!<%H%j%"%k(B: $B!NLd(B " (number-to-string page) "$B!O(B $B!J;D$j(B " (number-to-string (- skktut-question-numbers page)) "$BLd!K(B")) (set-buffer-modified-p nil) (force-mode-line-update 'all)))))))) ;; The following two functions are tricky, since they are executed by ;; `eval-region' in skktut-working-buffer. (defun skktut-today () (save-restriction (save-match-data (let (p) (widen) (search-forward "\n>> ") (when (re-search-forward "$B!V(B.*$B!W(B" (line-end-position) t) (delete-region (match-beginning 0) (match-end 0))) (setq p (point)) (insert (concat "$B!V$-$g$&$O!"(B" (skk-current-date) "$B$G$9!#!W(B")) (narrow-to-region (point-min) (point)) (when skk-tut-use-face (put-text-property p (point) 'face skk-tut-question-face)))))) (defun skktut-end-tutorial () ;; (switch-to-buffer skktut-question-buffer) (pop-to-buffer skktut-question-buffer) (delete-other-windows) (skktut-erase-buffer) (let (buffer-read-only) (goto-char (point-min)) (insert (format (if skktut-japanese-tut "\ SKK $B%A%e!<%H%j%"%k$O$3$l$G=*$j$G$9!#(B %s $B$K4X$9$k $B%-!<$r2!$7$F$/$@$5$$!#(B" "\ Now we end the SKK tutorial. Please send comments, questions and bug reports on %s to: \t%s This is the address of the SKK Ring Server Openlab Mailing list. Note that only members can post to the ML. So, if you are not an ML member, please subscribe to the ML first, by sending email to: \t%s with both the subject and the body empty. !! Hit key when you are ready.") (skk-version t) skk-ml-address skk-ml-command-address)) (when skk-tut-use-face (save-match-data (goto-char (point-min)) (re-search-forward "^!!.+" nil t nil) (put-text-property (match-beginning 0) (match-end 0) 'face skk-tut-do-it-face))) (while (not skktut-tutorial-end) (ignore-errors (let* ((event (next-command-event)) (char (event-to-character event))) (skktut-message " $B%-!<$r2!$7$F$/$@$5$$(B" "Hit key") (if (and char (eq ?\C-m char)) (setq skktut-tutorial-end t))))) (message nil))) (defun skktut-setup-delete-backward-char () (let ((commands '(backward-delete-char-untabify backward-delete-char backward-or-forward-delete-char delete-backward-char picture-backward-clear-column ;; following two are SKK adviced. ;;viper-del-backward-char-in-insert ;;vip-del-backward-char-in-insert )) (map (if (and (boundp 'overriding-local-map) (keymapp 'overriding-local-map)) overriding-local-map (current-global-map))) keys) (dolist (command commands) (setq keys (where-is-internal command map)) (dolist (key keys) (define-key skktut-abbrev-mode-map key 'skk-delete-backward-char) (define-key skktut-j-mode-map key 'skk-delete-backward-char))))) (defun skktut-user-name () (let ((name (user-full-name))) (if (not (or (string= name "") ;; non-ASCII characters (save-match-data (string-match "[^\000-\177]" name)))) name (setq name (user-login-name)) (if (not (or (string= name "") ;; non-ASCII characters (save-match-data (string-match "[^\000-\177]" name)))) name "nanasi")))) (provide 'skk-tut) ;;; skk-tut.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-vars.el000066400000000000000000006401431361774317600205170ustar00rootroot00000000000000;;; skk-vars.el --- common vars and consts in SKK -*- coding: iso-2022-7bit-ss2 -*- ;; Copyright (C) 1999-2010 SKK Development Team ;; Author: SKK Development Team ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (require 'wid-edit) (eval-when-compile ;; shut down compiler warnings. (defvar charset-list) (defvar word-across-newline) (defvar emacs-beta-version) (defvar mule-version)) ;; Functions needed prior to loading skk-macs.el. (when (eval-when-compile (featurep 'emacs)) (defsubst find-coding-system (obj) "Return OBJ if it is a coding-system." (if (coding-system-p obj) obj))) (defun skk-find-window-system () (cond ((eval-when-compile (featurep 'emacs)) ;; GNU Emacs (let ((frames (frame-list)) val) (while (and (not val) frames) ;; $BJQ?t(B window-system $B$O(B frame local $BCM$r;}$D!#(B ;; $BNc$($P(B window system $B$H(B "emacsclient -nw" $B$NJ;MQ;~$J$I(B ;; $B$$$:$l$+$N(B frame $B$,(B window system $B2<$GF0$$$F$$$k$3$H$r(B ;; $B3NG'$9$k!#(B (setq val (window-system (car frames)) frames (cdr frames))) val)) (t ;; XEmacs window-system))) ;;;###autoload (put 'skk-deflocalvar 'lisp-indent-function 'defun) (defmacro skk-deflocalvar (symbol initvalue &optional docstring) (if docstring `(progn (defvar ,symbol ,initvalue ,docstring) (make-variable-buffer-local ',symbol)) `(progn (defvar ,symbol ,initvalue) (make-variable-buffer-local ',symbol)))) (defconst skk-ml-address "skk@ring.gr.jp") (defconst skk-ml-command-address "skk-subscribe@ring.gr.jp") ;;;; Custom group definitions (defgroup skk nil "$BF|K\8lF~NO%7%9%F%`(B SKK $B$N%+%9%?%^%$%:(B" :group 'mule :group 'applications) ;;; by function (defgroup skk-basic nil "SKK $B4pK\$N@_Dj(B" :prefix "skk-" :group 'skk) (defgroup skk-dictionary nil "SKK $B<-=q$N@_Dj(B" :prefix "skk-" :group 'skk) (defgroup skk-private nil "SKK $B8D?M<-=q$N$$$m$$$m(B" :prefix "skk-" :group 'skk) (defgroup skk-visual nil "SKK $B$N8+$?L\$r%+%9%?%^%$%:(B" :prefix "skk-" :group 'skk) ;;; by filename (defgroup skk-annotation nil "SKK $B%"%N%F!<%7%g%sI=<((B/$BJT=8$N@_Dj(B" :prefix "skk-annotation-" :group 'skk) (defgroup skk-auto nil "SKK $B<+F0Aw$j$,$J5!G=$N@_Dj(B" :prefix "skk-" :group 'skk) (defgroup skk-cdb nil "SKK CDB $B<-=q8!:w5!G=$N@_Dj(B" :prefix "skk-" :group 'skk) (defgroup skk-comp nil "SKK $BJd405!G=$N@_Dj(B" :prefix "skk-" :group 'skk) (defgroup skk-server-completion nil "$B<-=q%5!<%PJd405!G=$K4X$9$k@_Dj(B" :group 'skk) (defgroup skk-cursor nil "SKK $B%+!<%=%k@)8f$N@_Dj(B" :prefix "skk-cursor-" :group 'skk) (defgroup skk-dcomp nil "SKK $BF0E*Jd40$N@_Dj(B" :prefix "skk-dcomp-" :group 'skk) (defgroup skk-gadget nil "SKK $B3Q%+%J(B) $B4XO"$N@_Dj(B" :prefix "skk-jisx0201-" :group 'skk) (defgroup skk-jisx0213 nil "SKK JIS X 0213 $B4XO"$N@_Dj(B" :group 'skk) (defgroup skk-jisyo-edit-mode nil "SKK $B$N<-=qJT=85!G=$N@_Dj(B" :prefix "skk-" :group 'skk) (defgroup skk-kakasi nil "SKK $B$+$i(B kakasi $B$r;H$&@_Dj(B" :prefix "skk-" :group 'skk) (defgroup skk-kcode nil "SKK $BJ8;z%3!<%I$r07$&@_Dj(B" :prefix "skk-" :group 'skk) (defgroup skk-look nil "SKK $B$+$i(B look $B%3%^%s%I$rMxMQ$9$k@_Dj(B" :prefix "skk-look-" :group 'skk) (defgroup skk-lookup nil "SKK $B$+$i(B Lookup $B%Q%C%1!<%8$rMxMQ$9$k@_Dj(B" :prefix "skk-lookup-" :group 'skk) (defgroup skk-num nil "SKK $B$G?t;z$r07$&$?$a$N@_Dj(B" :prefix "skk-num-" :group 'skk) (defgroup skk-server nil "$B<-=q%5!<%P$H$NDL?.$K4X$9$k@_Dj(B" :prefix "skk-server-" :group 'skk) (defgroup skk-sticky nil "SKK $BJQ490LCV;XDjJ}<0$N@_Dj(B" :prefix "skk-sticky-" :group 'skk) (defgroup skk-study nil "SKK $B3X=,5!G=$N@_Dj(B" :prefix "skk-study-" :group 'skk) (defgroup skk-tankan nil "SKK $BC14A;zJQ495!G=$N@_Dj(B" :prefix "skk-tankan-" :group 'skk) (defgroup skk-tooltip nil "SKK $B%D!<%k%F%#%C%WI=<($N@_Dj(B" :prefix "skk-tooltip-" :group 'skk) (defgroup skk-tut nil "SKK $B%A%e!<%H%j%"%k$N@_Dj(B" :prefix "skk-tut-" :group 'skk) (defgroup skk-viper nil "SKK/Viper $B4XO"$N@_Dj(B" :prefix "skk-viper-" :group 'skk) (defgroup skk-act nil "SKK $B$G3HD%%m!<%^;zF~NO(B ACT $B$r;H$&@_Dj(B" :prefix "skk-act-" :group 'skk-input-enhanced) (defgroup skk-azik nil "SKK $B$G3HD%%m!<%^;zF~NO(B AZIK $B$r;H$&@_Dj(B" :prefix "skk-azik-" :group 'skk-input-enhanced) (defgroup skk-kanagaki nil "SKK $B$+$JF~NO$N@_Dj(B" :prefix "skk-kanagaki-" :group 'skk-input-enhanced) (defgroup skk-nicola nil "SKK $B?F;X%7%U%HF~NO$N@_Dj(B" :prefix "skk-nicola-" :group 'skk-kanagaki) ;;; skk-vars.el related. (defcustom skk-background-mode ;; from font-lock-make-faces of font-lock.el Welcome! (or frame-background-mode (cond ((featurep 'xemacs) (if (< (apply '+ (color-rgb-components (face-property 'default 'background))) (/ (apply '+ (color-rgb-components (make-color-specifier "white"))) 3)) 'dark 'light)) (t (cond ((and window-system (x-display-color-p)) (let ((bg-resource (x-get-resource ".backgroundMode" "BackgroundMode")) (params (frame-parameters))) (cond (bg-resource (intern (downcase bg-resource))) ((and (eq system-type 'windows-nt) (not (fboundp 'x-color-values))) (if (string-match "light" (cdr (assq 'background-color params))) 'light 'dark)) ((not (null (cdr (assq 'background-mode params)))) ;; Emacs20.x (Meadow) (cdr (assq 'background-mode params))) ((< (apply '+ (x-color-values (cdr (assq 'background-color params)))) (/ (apply '+ (x-color-values "white")) 3)) 'dark) (t 'light)))) (t nil))))) "*SKK $B$NI8=`$N%U%'%$%9?'$r7h$a$k$?$a$NGX7J?'$K4X$9$k>pJs!#(B $BI8=`$G$O(B `frame-background-mode' $B$r@_Dj$7$F$$$k>l9g$O$=$l$K=>$$!"(B $B@_Dj$7$F$$$J$$>l9g$OFH<+$NJ}K!$G(B `light' $B$+(B `dark' $B$+$r7h$a$k!#(B $B$?$@$7!"%?!<%_%J%k$G(B Emacs $B$rMxMQ$7$F$$$k>l9g$OH=Dj$G$-$:!"(B $B%f!<%6$N0U?^$H9g$o$J$$$+$b$7$l$J$$$N$G!"$3$N%*%W%7%g%s$+(B `frame-background-mode' $B$r$"$i$+$8$a@_Dj$7$F$*$/$3$H$,K>$^$7$$!#(B $B$3$N%*%W%7%g%s$O(B ~/.skk $B$K@_Dj$7$F$bH?1G$5$l$J$$!#(B~/.emacs.d/init.el $B$+(B \\[customize] $B$K$F!"(BSKK $B$,FI$_9~$^$l$kA0$K@_Dj$9$k$3$H$,I,MW!#(B" :type '(choice (const dark) (const light) (const :tag "$B<+F0$G7h$a$k(B" nil)) :group 'skk-basic :group 'skk-visual) ;;; skk.el related. (defcustom skk-user-directory nil "*SKK $B$N@_Dj%U%!%$%k$J$I$rCV$/%G%#%l%/%H%jL>!#(B $B3Fl9g$K@_Dj$9$k!#(B ($BNc(B) (setq skk-user-directory \"~/.ddskk\") " :type '(radio (directory :tag "$B%G%#%l%/%H%jL>(B" "~/.ddskk") (const :tag "$B@_Dj$7$J$$(B" nil)) :group 'skk-basic) (defcustom skk-init-file (if skk-user-directory (expand-file-name "init" skk-user-directory) (convert-standard-filename "~/.skk")) "*SKK $B$N=i4|@_Dj$r5-=R$9$k%U%!%$%kL>!#(BSKK $B$r5/F0$7$?:G=i$N0lEY$@$1FI$_(B $B9~$^$l$k!#$3$N%U%!%$%k$K5-=R$9$kBe$o$j$K(B ~/.emacs.d/init.el $B$K(B SKK $B$N3Fl9g$O(B \\[skk-restart] $B$G$OH?1G$5$l$J$$!#(B ~/.emacs.d/init.el $B$G(B $BJQ?t(B `skk-byte-compile-init-file' $B$r@_Dj$9$k$3$H$G(B `skk-init-file' $B$r(B $B<+F0E*$K%P%$%H%3%s%Q%$%k$9$k$3$H$b2DG=!#(B" ;;"*Name of the SKK initialization file. ;;From skk.el 9.x on all customization may be done in ~/.emacs." :type '(file :tag "$B%U%!%$%kL>(B") :group 'skk-basic) (defcustom skk-japanese-message-and-error nil "*Non-nil $B$G$"$l$P!"(BSKK $B$N%a%C%;!<%8$H%(%i!<$rF|K\8l$GI=<($9$k!#(B nil $B$G$"$l$P!"1Q8l$GI=<($9$k!#(B" :type 'boolean :group 'skk-basic) (defcustom skk-version-codename-ja nil "*Non-nil $B$G$"$l$P!"4X?t(B `skk-version' $B$G$N%3!<%I%M!<%`$rF|K\8l$GI=<($9$k!#(B" :type 'boolean :group 'skk-basic) (defcustom skk-jisyo-fix-order nil "*Non-nil $B$G$"$l$P!"3NDj$N:]$K8D?M<-=q$NF12;8l$N=g=x$rJQ99$;$:!"(B $B8D?M<-=q$K?75,DI2C$9$k:]$O4{=P8l$N8e$KDI2C$9$k!#(B" :type 'boolean :group 'skk-dictionary) (defcustom skk-kakutei-jisyo nil ;; $B%=!<%H$5$l$F$$$kI,MW$,$"$k$+$I$&$+$O@_Djl9g$K$O!"(B (skk-search-kakutei-jisyo-file skk-kakutei-jisyo 10000 t) $B$N$h$&$JMWAG$r(B `skk-search-prog-list' $B$N@hF,$KG[CV$9$k$3$H!#(B" ;; "*The first dictionary to be searched. ;;If non-nil, and this variable is used as a component of ;;`skk-search-prog-list', the indicated dictionary is read into a ;;buffer and searched. ;;The keys must be sorted. ;;Only the first entry in each key is checked; if several entries are ;;present the second and following entries are ignored. ;;By setting the value of `skk-search-prog-list' the dictionaries ;;searched and the order of search can be changed." :type '(radio (file :tag "$B<-=q%U%!%$%kL>(B") (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-dictionary) (defcustom skk-initial-search-jisyo nil ;; $B%=!<%H$5$l$F$$$kI,MW$,$"$k$+$I$&$+$O@_Dj(B") (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-dictionary) (defcustom skk-large-jisyo nil ;; (FILE . CODE) $B$N7A<0$b$$$1$k$O$:(B "*$B8D?M<-=q$N8!:w$N8e$K8!:w$9$k<-=q!#(B $B8+=P$78l$O!"%=!<%H$5$l$F$$$J$1$l$P$J$i$J$$!#(B Non-nil $B$G$"$l$P!";XDj$5$l$?<-=q$r8!:w$N$?$a%P%C%U%!$KFI$_9~$_!"8!:w$r9T$&!#(B" :type `(radio (file :tag "$B<-=q%U%!%$%kL>(B" ,(cond ((featurep 'xemacs) (or (locate-data-file "SKK-JISYO.L") "")) ((fboundp 'locate-file) (or (locate-file "skk/SKK-JISYO.L" (list (expand-file-name "../../.." data-directory))) (locate-file "skk/SKK-JISYO.L" (list data-directory)) "")))) (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-dictionary) (defcustom skk-aux-large-jisyo nil ;; (FILE . CODE) $B$N7A<0$b$$$1$k$O$:(B "*$B<-=q%5!<%P$,;H$($J$$;~$K!"Be$o$j$K8!:w$9$k<-=q!#(B $B8+=P$78l$O!"%=!<%H$5$l$F$$$J$1$l$P$J$i$J$$!#(B Non-nil $B$G$"$l$P!"<-=q%5!<%P$,(B active $B$G$J$$;~$K!"(B $B;XDj$5$l$?<-=q$r%P%C%U%!$KFI$_9~$_!"8!:w$r9T$&!#(B" :type `(radio (file :tag "$B<-=q%U%!%$%kL>(B" ,(cond ((featurep 'xemacs) (or (locate-data-file "SKK-JISYO.L") "")) ((fboundp 'locate-file) (or (locate-file "skk/SKK-JISYO.L" (list (expand-file-name "../../.." data-directory))) (locate-file "skk/SKK-JISYO.L" (list data-directory)) "")))) (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-dictionary :group 'skk-server) (defcustom skk-inhibit-ja-dic-search nil "*$B!V(BGNU Emacs $BIUB0$N<-=q$rMQ$$$?8!:w!W$N6X;_$r;X<($9$k%*%W%7%g%s!#(B GNU Emacs $B$K$O(B SKK-JISYO.L $B$r85$KJQ49$5$l$?(B ja-dic.el $B$H$$$&<-=q$,IUB0$9$k!#(B $B$3$l$rMQ$$$FDL>o$N$+$J4A;zJQ49(B ($BAw$j$"$j!"Aw$j$J$7!"@\F,<-!"@\Hx<-(B) $B$,2DG=(B $B$G$"$k(B ($B$?$@$7(B SKK-JISYO.L $B$K$h$k1Q?tJQ49!"?tCMJQ49$J$I$O$G$-$J$$(B)$B!#(B DDSKK 14.2 $B$h$j!V(Bja-dic.el $B8!:w5!G=(B `skk-search-ja-dic'$B!W$,DI2C$5$l$?!#(B $B$3$N(B `skk-search-ja-dic' $B$O!"(B `skk-large-jisyo'$B!"(B`skk-aux-large-jisyo'$B!"(B `skk-cdb-large-jisyo' $B5Z$S(B `skk-server-host' $B$NA4$F$,L58z$J>l9g$KM-8z$H$J$k(B $B$,!"$"$i$f$k>lLL$G6X;_$7$?$$>l9g$O!"$3$NJQ?t$r(B Non-nil $B$K@_Dj$9$k!#(B" :type 'boolean :group 'skk-dictionary) (defcustom skk-extra-jisyo-file-list nil "*$B%a%$%s<-=q$NB>$K8!:w$9$k<-=q$N%j%9%H$r;XDj$9$k!#(B $B$$$:$l$N<-=q$b!"8+=P$78l$O%=!<%H$5$l$F$$$J$1$l$P$J$i$J$$!#(B (setq skk-extra-jisyo-file-list (list '(\"/usr/share/skk/SKK-JISYO.JIS3_4\" . euc-jisx0213) \"/usr/share/skk/SKK-JISYO.zipcode\")) SKK $B<-=q$K$O(B SKK OpenLab $B$GG[I[$7$F$$$k$b$N!"Bh;0$K8!:w$7$?$$<-=q$N%U%!%$%kL>$N(B $B%j%9%H$r;XDj$9$k!#%U%!%$%kL>$NBe$o$j$K!"%U%!%$%kL>$H%3!<%I7O$N%Z%"$r;XDj$9$k(B $B$3$H$b$G$-$k!#<-=q$O;XDj$5$l$?=g$K8!:w$5$l$k!#(B" :type '(repeat (file :tag "$B<-=q%U%!%$%kL>(B")) :group 'skk-dictionary) (defcustom skk-itaiji-jisyo nil "$B0[BN;z<-=q(B `SKK-JISYO.itaiji', `SKK-JISYO.itaiji.JIS3_4' $B$X$N%Q%9$r;XDj$9$k!#(B" :type '(radio (file :tag "$B<-=q%U%!%$%kL>(B") (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-dictionary) (defcustom skk-search-prog-list '((skk-search-kakutei-jisyo-file skk-kakutei-jisyo 10000 t) (skk-tankan-search 'skk-search-jisyo-file skk-large-jisyo 10000) (skk-search-jisyo-file skk-initial-search-jisyo 10000 t) (skk-search-jisyo-file skk-jisyo 0 t) (skk-okuri-search) (skk-search-cdb-jisyo skk-cdb-large-jisyo) (skk-search-jisyo-file skk-large-jisyo 10000) (skk-search-server skk-aux-large-jisyo 10000) (skk-search-ja-dic-maybe) (skk-search-extra-jisyo-files) (skk-search-katakana-maybe) (skk-search-sagyo-henkaku-maybe) (skk-search-itaiji)) "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B $B$3$NJQ?t$NCM$r2A$9$k$3$H$K$h$C$F$+$J4A;zJQ49$r]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B C-1 SPC $B$G;HMQ$5$l$k(B" :type '(repeat (sexp :tag "S$B<0(B")) :group 'skk-dictionary) (defcustom skk-search-prog-list-2 nil "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B C-2 SPC $B$G;HMQ$5$l$k(B" :type '(repeat (sexp :tag "S$B<0(B")) :group 'skk-dictionary) (defcustom skk-search-prog-list-3 nil "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B C-3 SPC $B$G;HMQ$5$l$k(B" :type '(repeat (sexp :tag "S$B<0(B")) :group 'skk-dictionary) (defcustom skk-search-prog-list-4 nil "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B C-4 SPC $B$G;HMQ$5$l$k(B" :type '(repeat (sexp :tag "S$B<0(B")) :group 'skk-dictionary) (defcustom skk-search-prog-list-5 '((skk-search-tankanji)) "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B C-5 SPC $B$G;HMQ$5$l$k(B" :type '(repeat (sexp :tag "S$B<0(B")) :group 'skk-dictionary) (defcustom skk-search-prog-list-6 '((skk-search-identity)) "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B C-6 SPC $B$G;HMQ$5$l$k(B" :type '(repeat (sexp :tag "S$B<0(B")) :group 'skk-dictionary) (defcustom skk-search-prog-list-7 '((skk-search-katakana)) "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B C-7 SPC $B$G;HMQ$5$l$k(B" :type '(repeat (sexp :tag "S$B<0(B")) :group 'skk-dictionary) (defcustom skk-search-prog-list-8 '((skk-search-hankaku-katakana)) "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B C-8 SPC $B$G;HMQ$5$l$k(B" :type '(repeat (sexp :tag "S$B<0(B")) :group 'skk-dictionary) (defcustom skk-search-prog-list-9 '((skk-search-jisx0208-romaji)) "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B C-9 SPC $B$G;HMQ$5$l$k(B" :type '(repeat (sexp :tag "S$B<0(B")) :group 'skk-dictionary) (defcustom skk-search-prog-list-0 '((skk-search-romaji)) "*$B8!:w4X?t!"8!:wBP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B C-0 SPC $B$G;HMQ$5$l$k(B" :type '(repeat (sexp :tag "S$B<0(B")) :group 'skk-dictionary) (defcustom skk-count-jisyo-candidates-function 'skk-count-jisyo-candidates-original "*`skk-count-jisyo-candidates' $B$G;HMQ$9$k4X?t!#(B" :type 'function :group 'skk-dictionary) (defcustom skk-public-jisyo-to-be-searched-function 'skk-public-jisyo-to-be-searched-original "*`skk-public-jisyo-has-word-p' $B$G;HMQ$9$k4X?t!#(B" :type 'function :group 'skk-dictionary) (defcustom skk-jisyo (if skk-user-directory (expand-file-name "jisyo" skk-user-directory) (convert-standard-filename "~/.skk-jisyo")) "*SKK $B$N8D?M<-=q!#(B" :type `(file :tag "$B<-=q%U%!%$%kL>(B") :group 'skk-private) (defcustom skk-backup-jisyo (if skk-user-directory (expand-file-name "jisyo.bak" skk-user-directory) (convert-standard-filename "~/.skk-jisyo.BAK")) "*SKK $B$N8D?M<-=q$N%P%C%/%"%C%W%U%!%$%k!#(B" :type '(file :tag "$B<-=q%U%!%$%kL>(B") :group 'skk-private) (defcustom skk-jisyo-code nil ;; $B8=:_$N$r;XDj$9$k!#(B $BJ8;zNs(B \"euc\", \"ujis\", \"sjis\", \"jis\" $B$N;XDj$bN(B" (const "euc") (const "ujis") (const "sjis") (const "jis")) (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-private) (defcustom skk-share-private-jisyo nil "\ *Non-nil $B$G$"$l$P!"8D?M<-=q$r99?7$9$k:]$K!VJ#?t$N(B SKK $B%W%m%;%9$,FCDj$N8D(B $B?M<-=q$r6&M-$7$F$$$k!W$r9MN8$7$?>e$G=hM}$r9T$&!#(B SKK $B5/F08e$K$3$NJQ?t$NCM$rJQ99$7$?>l9g$O(B \\[skk-restart] $B$GH?1G$5$;$k;v!#(B" :type 'boolean :group 'skk-basic :group 'skk-private) (defcustom skk-jisyo-save-count 50 "*$B?tCM$G$"$l$P!"$=$N2s?t$@$18D?M<-=q$,99?7$5$l$?$H$-$K<+F0E*$K%;!<%V$9$k!#(B nil $B$G$"$l$P!"8D?M<-=q$N%*!<%H%;!<%V$r9T$o$J$$!#(B SKK $B5/F08e$G!"JQ?t(B `skk-share-private-jisyo' $B$,(B non-nil $B$J>l9g(B $B$K(B `skk-jisyo-save-count' $B$NCM$rJQ99$7$?>l9g$O(B \\[skk-restart] $B$GH?1G$5$;$k;v!#(B" :type '(radio (integer :tag "$B@0?t(B" 50) (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-private) (defcustom skk-count-private-jisyo-candidates-exactly nil "*Non-nil $B$G$"$l$P!"(BEmacs $B$r=*N;$9$k$H$-$K(B `skk-record-file' $B$KJ]B8$5$l(B $B$kE}7W>pJs$N!V8l?t!W$r@53N$K?t$($k!#(B nil $B$G$"$l$P!"(B1 $B9T$KJ#?t$N8uJd$,$"$C$F$b(B 1 $B8uJd$H$7$F?t$($k!#(B" :type 'boolean :group 'skk-private) (defcustom skk-compare-jisyo-size-when-saving t "*Non-nil $B$G$"$l$P!"(B`skk-jisyo' $B$N%;!<%V;~$K%U%!%$%k%5%$%:$r%A%'%C%/$9$k!#(B $BA02s%;!<%V$7$?(B `skk-jisyo' $B$H:#2s%;!<%V$7$h$&$H$9$k<-=q$H$N%5%$%:$rHf3S$7!"(B $B8er7o!W$r;XDj$9$k!#(B $B$3$NJQ?t$K$O!"0z?t#18D$N4X?t!JKt$O4X?t$N%j%9%H!K$rBeF~$9$k!#(B $BBeF~$7$?4X?t$O!"3NDj$7$?J8;zNs$r0z?t$K(B `skk-update-jisyo-p' $BFb$G(B `funcall' $B$5$l$k!#(B $B$3$NJQ?t$N%G%U%)%k%H$O(B nil $B$G$"$k$?$a!"4X?t(B `skk-update-jisyo-p' $B$O(B t $B$rJV$9!#(B $B4pK\E*$K!"$3$NJQ?t$O%U%C%/JQ?t$G$"$j!"$=$NCM$r@_Dj$7$?$$>l9g$K$O(B `add-hook' $B$GDI2C$9$k$+(B `remove-hook' $B$G:o=|$9$k!#(B SKK $B$G$O!"$+$J4A;zJQ49!&3NDj$r9T$C$?J8;zNs$OA4$F8D?M<-=q$Ke$KKD$l$k$N$rM^$($kL\E*$K;H(B $BMQ$G$-$k!#(B $B$J$*!"8D?M<-=q$KpJs$rH$9$k$3$H$,$G$-$k!#(B" :type '(list symbol) :group 'skk-private) (defcustom skk-learn-combined-word nil "*$B@\F,<-!"@\Hx<-$NF~NO$N7k2L$r<+F0E*$K3X=,$9$k$+$I$&$+$r@_Dj$9$k!#(B Non-nil $B$J$i$P!"@\F,<-$^$?$O@\Hx<-F~NO$N:]!"@\F,<-$^$?$O@\Hx<-$H7k9g$7$?(B $B8l$r<+F0E*$K3X=,$9$k!#(B" :type 'boolean :group 'skk-private) (defcustom skk-save-jisyo-instantly nil "*non-nil $B$G$"$l$P!"C18lEPO?!JC18l:o=|!K$NETEY!"8D?M<-=q$rJ]B8$9$k!#(B" :type 'boolean :group 'skk-private) (defvar skk-jisyo-updated nil "`skk-henkan-in-minibuff' ($BC18lEPO?(B) $B$5$l$l$P(B t $B$H$J$k!#(B `skk-update-jisyo' $B$G;2>H$7$F$$$k!#(B") (defcustom skk-rom-kana-base-rule-list '(("a" nil ("$B%"(B" . "$B$"(B")) ("bb" "b" ("$B%C(B" . "$B$C(B")) ("ba" nil ("$B%P(B" . "$B$P(B")) ("be" nil ("$B%Y(B" . "$B$Y(B")) ("bi" nil ("$B%S(B" . "$B$S(B")) ("bo" nil ("$B%\(B" . "$B$\(B")) ("bu" nil ("$B%V(B" . "$B$V(B")) ("bya" nil ("$B%S%c(B" . "$B$S$c(B")) ("bye" nil ("$B%S%'(B" . "$B$S$'(B")) ("byi" nil ("$B%S%#(B" . "$B$S$#(B")) ("byo" nil ("$B%S%g(B" . "$B$S$g(B")) ("byu" nil ("$B%S%e(B" . "$B$S$e(B")) ("cc" "c" ("$B%C(B" . "$B$C(B")) ("cha" nil ("$B%A%c(B" . "$B$A$c(B")) ("che" nil ("$B%A%'(B" . "$B$A$'(B")) ("chi" nil ("$B%A(B" . "$B$A(B")) ("cho" nil ("$B%A%g(B" . "$B$A$g(B")) ("chu" nil ("$B%A%e(B" . "$B$A$e(B")) ("cya" nil ("$B%A%c(B" . "$B$A$c(B")) ("cye" nil ("$B%A%'(B" . "$B$A$'(B")) ("cyi" nil ("$B%A%#(B" . "$B$A$#(B")) ("cyo" nil ("$B%A%g(B" . "$B$A$g(B")) ("cyu" nil ("$B%A%e(B" . "$B$A$e(B")) ("dd" "d" ("$B%C(B" . "$B$C(B")) ("da" nil ("$B%@(B" . "$B$@(B")) ("de" nil ("$B%G(B" . "$B$G(B")) ("dha" nil ("$B%G%c(B" . "$B$G$c(B")) ("dhe" nil ("$B%G%'(B" . "$B$G$'(B")) ("dhi" nil ("$B%G%#(B" . "$B$G$#(B")) ("dho" nil ("$B%G%g(B" . "$B$G$g(B")) ("dhu" nil ("$B%G%e(B" . "$B$G$e(B")) ("di" nil ("$B%B(B" . "$B$B(B")) ("do" nil ("$B%I(B" . "$B$I(B")) ("du" nil ("$B%E(B" . "$B$E(B")) ("dya" nil ("$B%B%c(B" . "$B$B$c(B")) ("dye" nil ("$B%B%'(B" . "$B$B$'(B")) ("dyi" nil ("$B%B%#(B" . "$B$B$#(B")) ("dyo" nil ("$B%B%g(B" . "$B$B$g(B")) ("dyu" nil ("$B%B%e(B" . "$B$B$e(B")) ("e" nil ("$B%((B" . "$B$((B")) ("ff" "f" ("$B%C(B" . "$B$C(B")) ("fa" nil ("$B%U%!(B" . "$B$U$!(B")) ("fe" nil ("$B%U%'(B" . "$B$U$'(B")) ("fi" nil ("$B%U%#(B" . "$B$U$#(B")) ("fo" nil ("$B%U%)(B" . "$B$U$)(B")) ("fu" nil ("$B%U(B" . "$B$U(B")) ("fya" nil ("$B%U%c(B" . "$B$U$c(B")) ("fye" nil ("$B%U%'(B" . "$B$U$'(B")) ("fyi" nil ("$B%U%#(B" . "$B$U$#(B")) ("fyo" nil ("$B%U%g(B" . "$B$U$g(B")) ("fyu" nil ("$B%U%e(B" . "$B$U$e(B")) ("gg" "g" ("$B%C(B" . "$B$C(B")) ("ga" nil ("$B%,(B" . "$B$,(B")) ("ge" nil ("$B%2(B" . "$B$2(B")) ("gi" nil ("$B%.(B" . "$B$.(B")) ("go" nil ("$B%4(B" . "$B$4(B")) ("gu" nil ("$B%0(B" . "$B$0(B")) ("gya" nil ("$B%.%c(B" . "$B$.$c(B")) ("gye" nil ("$B%.%'(B" . "$B$.$'(B")) ("gyi" nil ("$B%.%#(B" . "$B$.$#(B")) ("gyo" nil ("$B%.%g(B" . "$B$.$g(B")) ("gyu" nil ("$B%.%e(B" . "$B$.$e(B")) ;;("h" "" ("$B%*(B" . "$B$*(B")) ("ha" nil ("$B%O(B" . "$B$O(B")) ("he" nil ("$B%X(B" . "$B$X(B")) ("hi" nil ("$B%R(B" . "$B$R(B")) ("ho" nil ("$B%[(B" . "$B$[(B")) ("hu" nil ("$B%U(B" . "$B$U(B")) ("hya" nil ("$B%R%c(B" . "$B$R$c(B")) ("hye" nil ("$B%R%'(B" . "$B$R$'(B")) ("hyi" nil ("$B%R%#(B" . "$B$R$#(B")) ("hyo" nil ("$B%R%g(B" . "$B$R$g(B")) ("hyu" nil ("$B%R%e(B" . "$B$R$e(B")) ("i" nil ("$B%$(B" . "$B$$(B")) ("jj" "j" ("$B%C(B" . "$B$C(B")) ("ja" nil ("$B%8%c(B" . "$B$8$c(B")) ("je" nil ("$B%8%'(B" . "$B$8$'(B")) ("ji" nil ("$B%8(B" . "$B$8(B")) ("jo" nil ("$B%8%g(B" . "$B$8$g(B")) ("ju" nil ("$B%8%e(B" . "$B$8$e(B")) ("jya" nil ("$B%8%c(B" . "$B$8$c(B")) ("jye" nil ("$B%8%'(B" . "$B$8$'(B")) ("jyi" nil ("$B%8%#(B" . "$B$8$#(B")) ("jyo" nil ("$B%8%g(B" . "$B$8$g(B")) ("jyu" nil ("$B%8%e(B" . "$B$8$e(B")) ("kk" "k" ("$B%C(B" . "$B$C(B")) ("ka" nil ("$B%+(B" . "$B$+(B")) ("ke" nil ("$B%1(B" . "$B$1(B")) ("ki" nil ("$B%-(B" . "$B$-(B")) ("ko" nil ("$B%3(B" . "$B$3(B")) ("ku" nil ("$B%/(B" . "$B$/(B")) ("kya" nil ("$B%-%c(B" . "$B$-$c(B")) ("kye" nil ("$B%-%'(B" . "$B$-$'(B")) ("kyi" nil ("$B%-%#(B" . "$B$-$#(B")) ("kyo" nil ("$B%-%g(B" . "$B$-$g(B")) ("kyu" nil ("$B%-%e(B" . "$B$-$e(B")) ("ma" nil ("$B%^(B" . "$B$^(B")) ("me" nil ("$B%a(B" . "$B$a(B")) ("mi" nil ("$B%_(B" . "$B$_(B")) ("mo" nil ("$B%b(B" . "$B$b(B")) ("mu" nil ("$B%`(B" . "$B$`(B")) ("mya" nil ("$B%_%c(B" . "$B$_$c(B")) ("mye" nil ("$B%_%'(B" . "$B$_$'(B")) ("myi" nil ("$B%_%#(B" . "$B$_$#(B")) ("myo" nil ("$B%_%g(B" . "$B$_$g(B")) ("myu" nil ("$B%_%e(B" . "$B$_$e(B")) ("n" nil ("$B%s(B" . "$B$s(B")) ("n'" nil ("$B%s(B" . "$B$s(B")) ("na" nil ("$B%J(B" . "$B$J(B")) ("ne" nil ("$B%M(B" . "$B$M(B")) ("ni" nil ("$B%K(B" . "$B$K(B")) ("nn" nil ("$B%s(B" . "$B$s(B")) ("no" nil ("$B%N(B" . "$B$N(B")) ("nu" nil ("$B%L(B" . "$B$L(B")) ("nya" nil ("$B%K%c(B" . "$B$K$c(B")) ("nye" nil ("$B%K%'(B" . "$B$K$'(B")) ("nyi" nil ("$B%K%#(B" . "$B$K$#(B")) ("nyo" nil ("$B%K%g(B" . "$B$K$g(B")) ("nyu" nil ("$B%K%e(B" . "$B$K$e(B")) ("o" nil ("$B%*(B" . "$B$*(B")) ("pp" "p" ("$B%C(B" . "$B$C(B")) ("pa" nil ("$B%Q(B" . "$B$Q(B")) ("pe" nil ("$B%Z(B" . "$B$Z(B")) ("pi" nil ("$B%T(B" . "$B$T(B")) ("po" nil ("$B%](B" . "$B$](B")) ("pu" nil ("$B%W(B" . "$B$W(B")) ("pya" nil ("$B%T%c(B" . "$B$T$c(B")) ("pye" nil ("$B%T%'(B" . "$B$T$'(B")) ("pyi" nil ("$B%T%#(B" . "$B$T$#(B")) ("pyo" nil ("$B%T%g(B" . "$B$T$g(B")) ("pyu" nil ("$B%T%e(B" . "$B$T$e(B")) ("rr" "r" ("$B%C(B" . "$B$C(B")) ("ra" nil ("$B%i(B" . "$B$i(B")) ("re" nil ("$B%l(B" . "$B$l(B")) ("ri" nil ("$B%j(B" . "$B$j(B")) ("ro" nil ("$B%m(B" . "$B$m(B")) ("ru" nil ("$B%k(B" . "$B$k(B")) ("rya" nil ("$B%j%c(B" . "$B$j$c(B")) ("rye" nil ("$B%j%'(B" . "$B$j$'(B")) ("ryi" nil ("$B%j%#(B" . "$B$j$#(B")) ("ryo" nil ("$B%j%g(B" . "$B$j$g(B")) ("ryu" nil ("$B%j%e(B" . "$B$j$e(B")) ("ss" "s" ("$B%C(B" . "$B$C(B")) ("sa" nil ("$B%5(B" . "$B$5(B")) ("se" nil ("$B%;(B" . "$B$;(B")) ("sha" nil ("$B%7%c(B" . "$B$7$c(B")) ("she" nil ("$B%7%'(B" . "$B$7$'(B")) ("shi" nil ("$B%7(B" . "$B$7(B")) ("sho" nil ("$B%7%g(B" . "$B$7$g(B")) ("shu" nil ("$B%7%e(B" . "$B$7$e(B")) ("si" nil ("$B%7(B" . "$B$7(B")) ("so" nil ("$B%=(B" . "$B$=(B")) ("su" nil ("$B%9(B" . "$B$9(B")) ("sya" nil ("$B%7%c(B" . "$B$7$c(B")) ("sye" nil ("$B%7%'(B" . "$B$7$'(B")) ("syi" nil ("$B%7%#(B" . "$B$7$#(B")) ("syo" nil ("$B%7%g(B" . "$B$7$g(B")) ("syu" nil ("$B%7%e(B" . "$B$7$e(B")) ("tt" "t" ("$B%C(B" . "$B$C(B")) ("ta" nil ("$B%?(B" . "$B$?(B")) ("te" nil ("$B%F(B" . "$B$F(B")) ("tha" nil ("$B%F%!(B" . "$B$F$!(B")) ("the" nil ("$B%F%'(B" . "$B$F$'(B")) ("thi" nil ("$B%F%#(B" . "$B$F$#(B")) ("tho" nil ("$B%F%g(B" . "$B$F$g(B")) ("thu" nil ("$B%F%e(B" . "$B$F$e(B")) ("ti" nil ("$B%A(B" . "$B$A(B")) ("to" nil ("$B%H(B" . "$B$H(B")) ("tsu" nil ("$B%D(B" . "$B$D(B")) ("tu" nil ("$B%D(B" . "$B$D(B")) ("tya" nil ("$B%A%c(B" . "$B$A$c(B")) ("tye" nil ("$B%A%'(B" . "$B$A$'(B")) ("tyi" nil ("$B%A%#(B" . "$B$A$#(B")) ("tyo" nil ("$B%A%g(B" . "$B$A$g(B")) ("tyu" nil ("$B%A%e(B" . "$B$A$e(B")) ("u" nil ("$B%&(B" . "$B$&(B")) ("vv" "v" ("$B%C(B" . "$B$C(B")) ("va" nil ("$B%t%!(B" . "$B$&!+$!(B")) ("ve" nil ("$B%t%'(B" . "$B$&!+$'(B")) ("vi" nil ("$B%t%#(B" . "$B$&!+$#(B")) ("vo" nil ("$B%t%)(B" . "$B$&!+$)(B")) ("vu" nil ("$B%t(B" . "$B$&!+(B")) ("ww" "w" ("$B%C(B" . "$B$C(B")) ("wa" nil ("$B%o(B" . "$B$o(B")) ("we" nil ("$B%&%'(B" . "$B$&$'(B")) ("wi" nil ("$B%&%#(B" . "$B$&$#(B")) ("wo" nil ("$B%r(B" . "$B$r(B")) ("wu" nil ("$B%&(B" . "$B$&(B")) ("xx" "x" ("$B%C(B" . "$B$C(B")) ("xa" nil ("$B%!(B" . "$B$!(B")) ("xe" nil ("$B%'(B" . "$B$'(B")) ("xi" nil ("$B%#(B" . "$B$#(B")) ("xka" nil ("$B%u(B" . "$B$+(B")) ("xke" nil ("$B%v(B" . "$B$1(B")) ("xo" nil ("$B%)(B" . "$B$)(B")) ("xtsu" nil ("$B%C(B" . "$B$C(B")) ("xtu" nil ("$B%C(B" . "$B$C(B")) ("xu" nil ("$B%%(B" . "$B$%(B")) ("xwa" nil ("$B%n(B" . "$B$n(B")) ("xwe" nil ("$B%q(B" . "$B$q(B")) ("xwi" nil ("$B%p(B" . "$B$p(B")) ("xya" nil ("$B%c(B" . "$B$c(B")) ("xyo" nil ("$B%g(B" . "$B$g(B")) ("xyu" nil ("$B%e(B" . "$B$e(B")) ("yy" "y" ("$B%C(B" . "$B$C(B")) ("ya" nil ("$B%d(B" . "$B$d(B")) ("ye" nil ("$B%$%'(B" . "$B$$$'(B")) ("yo" nil ("$B%h(B" . "$B$h(B")) ("yu" nil ("$B%f(B" . "$B$f(B")) ("zz" "z" ("$B%C(B" . "$B$C(B")) ("z " nil "$B!!(B") ("z*" nil "$B"((B") ("z," nil "$B!E(B") ("z-" nil "$B!A(B") ("z." nil "$B!D(B") ("z/" nil "$B!&(B") ("z0" nil "$B!{(B") ("z:" nil "$(O!,(B") ("z;" nil "$(O!+(B") ("z@" nil "$B!}(B") ("z[" nil "$B!X(B") ("z]" nil "$B!Y(B") ("z{" nil "$B!Z(B") ("z}" nil "$B![(B") ("z(" nil "$B!J(B") ("z)" nil "$B!K(B") ("za" nil ("$B%6(B" . "$B$6(B")) ("ze" nil ("$B%<(B" . "$B$<(B")) ("zh" nil "$B"+(B") ("zi" nil ("$B%8(B" . "$B$8(B")) ("zj" nil "$B"-(B") ("zk" nil "$B",(B") ("zl" nil "$B"*(B") ("zL" nil "$B"M(B") ("zo" nil ("$B%>(B" . "$B$>(B")) ("zu" nil ("$B%:(B" . "$B$:(B")) ("zya" nil ("$B%8%c(B" . "$B$8$c(B")) ("zye" nil ("$B%8%'(B" . "$B$8$'(B")) ("zyi" nil ("$B%8%#(B" . "$B$8$#(B")) ("zyo" nil ("$B%8%g(B" . "$B$8$g(B")) ("zyu" nil ("$B%8%e(B" . "$B$8$e(B")) ("." nil skk-auto-kutouten) ("," nil skk-auto-kutouten) ("-" nil skk-auto-kutouten) (":" nil "$B!'(B") (";" nil "$B!((B") ("?" nil "$B!)(B") ("[" nil "$B!V(B") ("]" nil "$B!W(B") ("l" nil skk-latin-mode) ("q" nil skk-toggle-kana) ("L" nil skk-jisx0208-latin-mode) ("Q" nil skk-set-henkan-point-subr) ("X" nil skk-purge-from-jisyo) ("/" nil skk-abbrev-mode) ("$" nil skk-display-code-for-char-at-point) ("@" nil skk-today) ("\\" nil skk-input-by-code-or-menu) (skk-kakutei-key nil skk-kakutei) ;; XXX ;;("\t" nil skk-insert) ;;("," nil skk-previous-candidate) ;;("\M-\040" nil skk-start-henkan-with-completion); M-SPC ;;("\M-\121" nil skk-backward-and-set-henkan-point); M-Q ) ;; $B%3%s%9%?%s%H$K$7$F$7$^$o$J$$$N$O!"%m!<%^;zF~NO$H$OA4$/JL$N@_Dj$r(B ;; $B$9$k?M$b$$$k$+$i$G$9!#(B "*$B%-!uBVA+0\5,B'$N%j%9%H!#(B $B%j%9%H$N3FMWAG$O!"$=$l$>$l$,0l$D$N5,B'$G$"$j!"2<5-$N7A<0$rK~$?$7$F$$$J$1$l$P(B $B$J$i$J$$!#(B (INPUT-STATE NEXT-STATE OUTPUT) SKK $B$O(B INPUT-STATE $B$r8!=P$9$k$H!"(BOUTPUT $B$r%P%C%U%!$KA^F~$7!"B3$$$F(B NEXT-STATE $B$K>uBV$r0\$7$?$&$($G!"F~NOBT$A>uBV$H$J$k!#(B $BNc$($P!"(B (\"a\" nil (\"$B%"(B\" . \"$B$"(B\")) (\"ki\" nil (\"$B%-(B\" . \"$B$-(B\")) (\"tt\" \"t\" (\"$B%C(B\" . \"$B$C(B\")) (\"nn\" nil (\"$B%s(B\" . \"$B$s(B\")) (\"n'\" nil (\"$B%s(B\" . \"$B$s(B\")) $B>e5-$N5,B'$O!"$=$l$>$l!"(B a => $B$"(B ki => $B$-(B tt => $B$C(Bt nn => $B$s(B n' => $B$s(B $B$3$N$h$&$K>uBV$,0\$jJQ$o$k$3$H$r0UL#$9$k!#(B INPUT-STATE $B5Z$S(B NEXT-STATE $B$O!"DL>o(B US-ASCII $BJ8;z$+$i@.$kJ8;zNs$rMQ$$$k!#(B $B$?$@$7!"FCJL$J>l9g$K$O(B INPUT-STATE $B$K$=$l0J30$NJ8;zNs$r;XDj$9$k$3$H$,$"$k!#(B OUTPUT $B$K$O!"0J2<$N(B 3$B$D$N7A<0$r;XDj$G$-$k!#(B $BJ8;zNs(B -- $B$+$J%b!<%I!"%+%J%b!<%I$H$b!"$3$l$,A^F~$5$l$k!#(B $BJ8;zNs$HJ8;zNs$N%;%k(B ($B%I%C%H%Z%"(B) -- $B$+$J%b!<%I$K$*$$$F$O(B CDR $B$N!"%+%J%b!<%I$K$*$$$F$O(B CAR $B$NJ8;zNs$,!"(B $B$=$l$>$lA^F~$5$l$k!#(B $B4X?tL>%7%s%\%k(B -- $B4X?t$rJ}$N5,B'$rMx(B $BMQ$9$k$,!"(B `skk-rom-kana-rule-list' $B$NJ}$,M%@h$5$l$k!#=>$C$F%f!<%6$,FH<+$N5,(B $BB'$r@_Dj$7$?$$>l9g$K$O!"(B`skk-rom-kana-rule-list' $B$NJ}$r;H$&$N$,$h$$!#(B" :type '(repeat (list :tag "$B%k!<%k(B" (radio :tag "1 $BF~NO(B" (string :tag "$BJ8;zNs(B") (symbol :tag "$BJQ?tL>(B")) (radio :tag "2 $BuBV(B" (string :tag "$BJ8;zNs(B") (const :tag "nil ($B6u$N>uBV(B)" nil)) (radio :tag "3 $B=PNO(B" (function :tag "$B4X?t$G$-$a$k(B") (string :tag "$BJ8;zNs(B") (cons :tag "$BJ8;zNs$NAH(B" (string :tag "3-1 $B%+%?%+%J(B") (string :tag "3-2 $B$R$i$,$J(B"))))) :group 'skk-input-basic) (defcustom skk-rom-kana-rule-list '(;; $B%f!<%6!<$N9%$_$G@_Dj$,J,$l$=$&$JMWAG$O!"(B ;; skk-rom-kana-base-rule-list $B$+$i$3$A$i$X0\$7$^$7$g$&(B...$B!#(B ("hh" "h" ("$B%C(B" . "$B$C(B")) ;; when you may want to insert $B!V$,$s$^!W(Bby "gamma"... ("mm" "m" ("$B%s(B" . "$B$s(B"))) "*$B>uBVA+0\5,B'$N%j%9%H$G!"%f!<%6$NDI2C@_DjMQ$NJQ?t!#(B $B$3$NJQ?t$O!"(B`skk-rom-kana-base-rule-list' $B$HF1MM$N=q<0$rK~$?$9I,MW$,$"$k!#(B SKK $B$O5/F0;~$K$3$N(B 2 $BJQ?t$rJT=8$7$F(B `skk-rule-tree' $B$r:n@.$9$k$,!"(B `skk-rom-kana-rule-list' $B$N5,B'$O(B `skk-rom-kana-base-rule-list' $B$N5,B'$h$j$b(B $BM%@h$5$l$k!#(B $B%j%9%H$N3FMWAG$O!"$=$l$>$l$,0l$D$N5,B'$G$"$j!"2<5-$N7A<0$rK~$?$7$F$$$J$1$l$P(B $B$J$i$J$$!#(B (INPUT-STATE NEXT-STATE OUTPUT) SKK $B$O(B INPUT-STATE $B$r8!=P$9$k$H!"(BOUTPUT $B$r%P%C%U%!$KA^F~$7!"B3$$$F(B NEXT-STATE $B$K>uBV$r0\$7$?$&$($G!"F~NOBT$A>uBV$H$J$k!#(B $B>\$7$/$O!"(B`skk-rom-kana-base-rule-list' $B$N@bL@$r;2>H$N$3$H!#(B $B%f!<%6$O!"DI2C$7$?$$5,B'$r!"Nc$($P(B (setq skk-rom-kana-rule-list '( (\"hh\" \"h\" (\"$B%C(B\" . \"$B$C(B\")) (\"@\" nil \"$B!w(B\") ... )) $B>e5-$N$h$&$K(B `~/.emacs.d/init.el' $B$^$?$O(B `skk-init-file' $B$K$F@_Dj$9$k$3$H$,$G$-$k!#(B $B$3$NJQ?t$O!"I8=`$G$O(B (\"hh\" \"h\" (\"$B%C(B\" . \"$B$C(B\")) $B$N@_Dj$,$5$l$F$$$k!#$3$N5,B'$K=>$&$H!"(B ohhonn => $B$*$C$[$s(B ohhira => $B$*$C$R$i(B $B$N$h$&$KA^F~$5$l$k!#$b$7$3$l$r(B ohhonn => $B$*$*$[$s(B ohhira => $B$*$*$R$i(B $B$N$h$&$KJQ99$7$?$1$l$P!"$3$N@_Dj(B (\"hh\" \"h\" (\"$B%C(B\" . \"$B$C(B\")) $B$r:o=|$9$k!#(B $B$^$?!"(B`@' $B$G(B `skk-today' ($BEvF|$NF|IU$NF~NO(B) $B$r5/F0$9$kBe$j$K(B `$B!w(B' $B$rF~(B $BNO$7$?$$>l9g$O!"(B`skk-rom-kana-rule-list' $B$K(B (\"@\" nil \"$B!w(B\") $B$H$$$&MWAG$r2C$($k!#(B $B$b$7!"(BSKK $B$r5/F0$7$?8e$G(B `skk-rom-kana-rule-list' $B$rJQ99$7$?>l9g!"$=$N@_(B $BDj$rH?1G$5$;$k$K$O(B \\[skk-restart] $B$r(B")) (radio :tag "2 $BuBV(B" (string :tag "$BJ8;zNs(B") (const :tag "nil ($B6u$N>uBV(B)" nil)) (radio :tag "3 $B=PNO(B" (function :tag "$B4X?t$G$-$a$k(B") (string :tag "$BJ8;zNs(B") (cons :tag "$BJ8;zNs$NAH(B" (string :tag "3-1 $B%+%?%+%J(B") (string :tag "3-2 $B$R$i$,$J(B"))))) :group 'skk-input-basic) (defcustom skk-kana-input-search-function (lambda () (save-match-data (and (string-match "^h\\([bcdfghjklmnpqrstvwxz]\\)$" skk-prefix) (member (char-to-string (preceding-char)) '("$B$*(B" "$B%*(B")) (cons '("$B%*(B" . "$B$*(B") (match-string 1 skk-prefix))))) "*$B%k!<%k%j%9%H$NCf$K5-$;$J$$JQ49%k!<%k$r=hM}$9$k4X?t!#(B `skk-rom-kana-base-rule-list' $B$H(B `skk-rom-kana-rule-list' $B$NMWAG$rA4$F8!:w(B $B$7$?8e$K%3!<%k$5$l$k!#0z?t$O$J$$!#(B ($B8=:_$NF~NO$KBP$9$k=PNO(B . \"$BB3$/(B unfixed prefix\") $B$H$$$&%;%k$rJV$9!#=PNO$NH$N$3$H!#(B $B%G%U%)%k%H$G$O!"(B\"$B$*(B\" $B$N8e$N(B \"h\" + $B;R2;$NF~NO$r(B \"$B$*$*(B\" + $BB3$/;R2;(B $B=hM}MQ$N(B unfixed prefix $B$KJQ49$7$F$$$k!#(B" :type 'function :group 'skk-input-basic) (defcustom skk-downcase-alist nil "*$BJQ49%-!<(B ($BBgJ8;z%m!<%^;z(B) $B$N>.J8;z$X$NJQ495,B'$rI=$o$9O"A[%j%9%H!#(B $BJQ49%-!<$NF~NO$r3+;O$9$k:]!"(BSKK $B$G$OBgJ8;z$GF~NO$r9T$&$N$G!"(B `skk-set-henkan-point' $B$NCf$G$3$l$r>.J8;z$KJQ49$9$k!#$3$NO"A[(B $B%j%9%H$KBgJ8;z(B -> $B>.J8;z$NJQ49%k!<%k$r=q$$$F$*$/$3$H$G!"%-!l9g$O!"C1$K(B downcase $B$5$l$k!#(B" :type '(repeat (cons character character)) :group 'skk-input-basic) (defcustom skk-jisx0208-latin-vector [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil "$B!!(B" "$B!*(B" "$B!I(B" "$B!t(B" "$B!p(B" "$B!s(B" "$B!u(B" "$B!G(B" "$B!J(B" "$B!K(B" "$B!v(B" "$B!\(B" "$B!$(B" "$B!](B" "$B!%(B" "$B!?(B" "$B#0(B" "$B#1(B" "$B#2(B" "$B#3(B" "$B#4(B" "$B#5(B" "$B#6(B" "$B#7(B" "$B#8(B" "$B#9(B" "$B!'(B" "$B!((B" "$B!c(B" "$B!a(B" "$B!d(B" "$B!)(B" "$B!w(B" "$B#A(B" "$B#B(B" "$B#C(B" "$B#D(B" "$B#E(B" "$B#F(B" "$B#G(B" "$B#H(B" "$B#I(B" "$B#J(B" "$B#K(B" "$B#L(B" "$B#M(B" "$B#N(B" "$B#O(B" "$B#P(B" "$B#Q(B" "$B#R(B" "$B#S(B" "$B#T(B" "$B#U(B" "$B#V(B" "$B#W(B" "$B#X(B" "$B#Y(B" "$B#Z(B" "$B!N(B" "$B!@(B" "$B!O(B" "$B!0(B" "$B!2(B" "$B!F(B" "$B#a(B" "$B#b(B" "$B#c(B" "$B#d(B" "$B#e(B" "$B#f(B" "$B#g(B" "$B#h(B" "$B#i(B" "$B#j(B" "$B#k(B" "$B#l(B" "$B#m(B" "$B#n(B" "$B#o(B" "$B#p(B" "$B#q(B" "$B#r(B" "$B#s(B" "$B#t(B" "$B#u(B" "$B#v(B" "$B#w(B" "$B#x(B" "$B#y(B" "$B#z(B" "$B!P(B" "$B!C(B" "$B!Q(B" "$B!A(B" nil] "*`skk-jisx0208-latin-insert' $B$G;2>H$5$l$kJ8;z%F!<%V%k!#(B $B%-!<$KBP1~$9$k0LCV$KJ8;zNs$,$"$l$P!"A41Q%b!<%I$G3:Ev$N%-!<$r2!$9$3$H$G!"BP1~$9(B $B$kJ8;z$,A^F~$5$l$k!#(B $BNc$($P!"%9%Z!<%9%-!<$KBP1~$7$F!"H>3Q%9%Z!<%9$rA^F~$5$;$k$h$&$KJQ99$7$?$1$l$P!"(B skk.el $B$N%m!<%I8e(B ($B$b$7$/$O(B `skk-load-hook' $B$rMxMQ$7$F(B)$B!"(B (aset skk-jisx0208-latin-vector 32 \" \") $B$H$9$k$+!"$b$7$/$O!"(B`skk-jisx0208-latin-vector' $B$N(B 32 $BHVL\(B (0 $BHV$+$i?t$($F(B) $B$NCM$r(B \" \"$B$H$9$k$h$&$J(B `skk-jisx0208-latin-vector' $B$rD>@\=q$-!"(Bsetq $B$G(B $BBeF~$9$k!#(B32 $B$O!"(B? ($BH>3Q%9%Z!<%9$N(B char type) $B$rI>2A$7$?$H$-$NCM!#(B" :type 'sexp :group 'skk-input-basic) (defcustom skk-special-midashi-char-list '(?> ?< ??) "*$B@\F,<-!"@\Hx<-$NF~NO$r;XDj$9$kJ8;z$N%j%9%H!#(B" ;; "*List of characters for entering prefixes and suffixes." :type '(repeat character) :group 'skk-input-basic) (defcustom skk-kuten-touten-alist '((jp . ("$B!#(B" . "$B!"(B")) (en . ("$B!%(B" . "$B!$(B")) (jp-en . ("$B!#(B" . "$B!$(B")) (en-jp . ("$B!%(B" . "$B!"(B"))) "*$B6gE@$HFIE@$NO"A[%j%9%H!#(B $B3FMWAG$N7A<0$O!"(B ($B%7%s%\%k(B . ($B6gE@$rI=$o$9J8;zNs(B . $BFIE@$rI=$o$9J8;zNs(B)) $B$H$$$&(B cons cell$B!#%7%s%\%k$NItJ,$O!"(B`jp' $B$b$7$/$O(B `en' $B!#(B \\[skk-toggle-kutouten] $B$O!"$3$l$r%H%0%k$G@Z$j49$($k!#(B $B%G%U%)%k%H$N6gFIE@$N%?%$%W$O!"JQ?t(B `skk-kutouten-type' $B$G;XDj$9$k!#(B" :type '(repeat (cons (radio :tag "$BAH$N$J$^$((B" (const jp) (const en) (const jp-en) (const en-jp)) (cons :tag "$B6gFIE@$NAH(B" (string :tag "$B6gE@(B" "$B!#(B") (string :tag "$BFIE@(B" "$B!"(B")))) :group 'skk-input-basic) (defcustom skk-kutouten-type 'jp "*$BI8=`$N6gFIE@$N%?%$%W!#(B $B$3$NJQ?t$NCM$K;XDj$G$-$k%7%s%\%k$H6gFIE@$NAH$H$NBP1~$O0J2<$NDL$j!#(B `jp': $B!V!#!W!V!"!W(B `en': $B!V!%!W!V!$!W(B `jp-en': $B!V!#!W!V!$!W(B `en-jp': $B!V!%!W!V!"!W(B $B$3$NJQ?t$K$O%3%s%9!&%;%k$r;XDj$9$k$3$H$b2DG=!#$=$N>l9g$O(B ($B6gE@$r<($9J8;zNs(B . $BFIE@$r<($9J8;zNs(B) $B$N$h$&$K;XDj$9$k!#(B $B$3$NJQ?t$O(B `skk-use-kana-keyboard' $B$,(B non-nil $B$J$i$PL58z$G$"$k!#(B $B$3$NJQ?t$O(B `setq' $B$9$k$H%P%C%U%!%m!<%+%k2=$5$l$k$?$a!"%0%m!<%P%k$K(B $BCM$r@_Dj$7$?$$>l9g$O(B `setq-default' $B$rMQ$$$k$3$H$,?d>)$5$l$k!#(B" :type '(radio (const jp) (const en) (const jp-en) (const en-jp) (cons :tag "$BG$0U$NAH(B" (string :tag "$B6gE@(B" "$B!#(B") (string :tag "$BFIE@(B" "$B!"(B"))) :group 'skk-input-basic) (make-variable-buffer-local 'skk-kutouten-type) ;;;###autoload (put 'skk-kutouten-type 'safe-local-variable 'symbolp) (defcustom skk-use-auto-kutouten nil "*Non-nil $B$G$"$l$P!"$+$J%b!<%I$K$*$1$kD92;(B($B!<(B)$B!"6gE@(B($B!#(B)$BKt$OFIE@(B($B!"(B)$B$NF0:n$rJQ99$9$k!#(B ASCII $B?t;z$ND>8e$G$"$l$P!"D92;(B($B!<(B)$B$O(B `-' $B$X!"6gE@(B($B!#(B)$B$O(B `.' $B$X!"FIE@(B($B!"(B)$B$O(B `,' $B$X$HJQ99$7!"(BJISX0208($BA43Q(B)$B?t;z$ND>8e$G$"$l$P!"D92;(B($B!<(B)$B$O(B `$B!](B' $B$X!"6gE@(B($B!#(B)$B$O(B `$B!%(B' $B$X!"FIE@(B($B!"(B)$B$O(B `$B!$(B' $B$X$HJQ99$9$k!#(B" :type 'boolean :group 'skk-input-basic) (defcustom skk-auto-insert-paren nil "*Non-nil $B$G$"$l$P!"3g8L$HJD3g8L$r$^$H$a$FA^F~$9$k!#(B $BNc$($P!"(B\"$B!V(B\" $B$rF~NO$7$?$H$-$K(B \"$B!W(B\" $B$r<+F0E*$KA^F~$7!"N>$+$.3g8L$N4V$K(B $B%+!<%=%k$r0\F0$9$k!#(B $BA^F~$9$kJ8;zNs$O!"(B`skk-auto-paren-string-alist' $B$G;XDj$9$k!#(B" :type 'boolean :group 'skk-basic :group 'skk-input-basic) (defcustom skk-auto-paren-string-alist '(("$B!V(B" . "$B!W(B") ("$B!X(B" . "$B!Y(B") ("(" . ")") ("$B!J(B" . "$B!K(B") ("{" . "}")("$B!P(B" . "$B!Q(B") ("$B!R(B" . "$B!S(B") ("$B!T(B" . "$B!U(B") ("[" . "]") ("$B!N(B" . "$B!O(B") ("$B!L(B" . "$B!M(B") ("$B!Z(B" . "$B![(B") ("\"" . "\"")("$B!H(B" . "$B!I(B") ("`" . "'") ;;("<" . ">") ;; skk-special-midashi-char-list $B$NCf$K$"$kJ8;z!#(B ) "*$B<+F0E*$KBP$K$J$kJ8;zNs$rF~NO$9$k$?$a$NO"A[%j%9%H!#(B `skk-auto-insert-paren' $B$,(B non-nil $B$N>l9g!"(Bcar $B$NJ8;zNs$,A^F~$5$l$?$H$-(B $B$K(B cdr $B$NJ8;zNs$r<+F0E*$KA^F~$7!"%+!<%=%k$O$=$N(B 2 $B$D$NJ8;z$N4V$K0\F0$9$k!#(B `skk-special-midashi-char-list' $B$NMWAG$K$J$C$F$$$kJ8;z$O!"(B `skk-auto-paren-string-alist' $B$K4^$a$F$b:o=|$5$l$k!#(B " :type '(repeat (cons string string)) :group 'skk-input-basic) (defcustom skk-use-auto-enclose-pair-of-region nil "*Non-nil $B$G$"$l$P!"%j!<%8%g%s$,M-8z$J>uBV$G(B `skk-auto-insert-paren' $B$re$N@0?t$G$"$kI,MW!#(B" :type 'integer :group 'skk-henkan) (defcustom skk-previous-candidate-keys (list "x" "\C-p") "*`skk-previous-candidate' $B$r3dEv$F$k%-!$lFCJL$J5!G=$K3d$jEv(B $B$F$i$l$F$$$k$N$G!"$3$N%j%9%H$NCf$K$O4^$a$J$$$3$H!#(B" :type '(repeat character) :group 'skk-henkan) (defface skk-henkan-show-candidates-keys-face '((((class color) (type tty)) (:inherit default)) (((class color) (background light)) (:inherit default)) (((class color) (background dark)) (:inherit default)) (((class grayscale)) (:inherit default))) "*$BA*Br%-!<$N(B face $BB0@-!#(B" :group 'skk-henkan :group 'skk-visual) (defcustom skk-henkan-rest-indicator nil "*Non-nil $B$G$"$l$P(B \[$B;D$j(B 99++\] $B$NI=<($r1&4s$;G[CV$9$k!#(B" :type 'boolean :group 'skk-henkan :group 'skk-visual) (defface skk-henkan-rest-indicator-face '((((class color) (type tty)) (:inherit default)) (((class color) (background light)) (:inherit default)) (((class color) (background dark)) (:inherit default)) (((class grayscale)) (:inherit default))) "*\[$B;D$j(B 99++\] $B$N(B face $BB0@-!#(B" :group 'skk-henkan :group 'skk-visual) (defcustom skk-auto-start-henkan t "*$BC18l$dJ8@a$N6h@Z$j$r<($9J8;z$NBG80$K$h$j<+F0E*$KJQ49$r3+;O$9$k!#(B `skk-auto-start-henkan-keyword-list' $B$K$h$jC18l$dJ8@a$N6h@Z$j$r<($9J8;z$r(B $B;XDj$9$k!#(B" :type 'boolean :group 'skk-henkan) (defcustom skk-auto-start-henkan-keyword-list '("$B$r(B" "$B!"(B" "$B!#(B" "$B!%(B" "$B!$(B" "$B!)(B" "$B!W(B" "$B!*(B" "$B!((B" "$B!'(B" ")" ";" ":" "$B!K(B" "$B!I(B" "$B![(B" "$B!Y(B" "$B!U(B" "$B!S(B" "$B!Q(B" "$B!O(B" "$B!M(B" "}" "]" "?" "." "," "!") ;; $B$"$^$j%-!<%o!<%I$,B?$/$J$k$H!"DL>o$NJQ49$r:$Fq$K$9$k!)(B "*$B<+F0JQ49$r3+;O$9$k%-!<%o!<%I!#(B `skk-auto-start-henkan' $B$,(B non-nil $B$N$H$-!"$3$N%j%9%H$NMWAG$NJ8;z$rBG80(B $B$9$k$H!"(BSPC (`skk-start-henkan-char') $B$r2!$7$?$+$N$h$&$KJQ49$r3+;O$7$F(B $B"'%b!<%I$KF~$k!#(B" :type '(repeat string) :group 'skk-henkan) (defcustom skk-force-registration-mode-char ?. "*$B6/@)E*$K<-=qEPO?%b!<%I$KF~$k%-!<%-%c%i%/%?!#(B $B%(%3!<%(%j%"$G8uJd$rI=<($7$F$$$k$H$-$K$3$NJQ?t$GDj5A$7$?%-!<%-%c%i%/%?$r(B $B%?%$%W$9$k$H!"6/@)E*$K<-=qEPO?%b!<%I$KF~$j$^$9!#(B" :type 'character :group 'skk-henkan) (defcustom skk-show-candidates-toggle-display-place-char ?\C-f "*$B8uJdI=<(0lMw$N0LCV$r%(%3!<%(%j%"$H%P%C%U%!$H$G@Z$jBX$($k%-!<%-%c%i%/%?!#(B" :type 'character :group 'skk-henkan) (defcustom skk-backward-and-set-henkan-point-char ?\321 ; M-Q "*$B%]%$%s%H$rLa$7$F"&%b!<%I$KF~$k%-!<%-%c%i%/%?!#(B" :type 'character :group 'skk-henkan) (defcustom skk-show-inline nil "*Non-nil $B$G$"$l$P!"JQ498uJd$r%$%s%i%$%sI=<($9$k!#(B `vertical' $B$G$"$l$P!"=DJ}8~$K%$%s%i%$%sI=<($9$k!J(BXEmacs $B$G$OF0:n$7$J$$!K!#(B" :type '(radio (const :tag "$BM-8z(B" t) (const :tag "$BM-8z(B ($B=DI=<((B)" vertical) (const :tag "$BL58z(B" nil)) :group 'skk-basic :group 'skk-henkan) (defcustom skk-inline-show-face 'underline "*$B%$%s%i%$%sI=<($9$kJQ498uJd$rAu>~$9$k%U%'%$%9$r;XDj$9$kJQ?t!#(B $B8uJdJ8;zNs$N%U%'%$%9B0@-$r$=$N$^$^;H$$$?$$>l9g$O(B nil $B$K@_Dj$9$k!#(B" :type '(radio (face :tag "$B%U%'%$%9$r;XDj(B") (const :tag "$B8uJdJ8;zNs$N%U%'%$%9B0@-$r$=$N$^$^;HMQ(B" nil)) :group 'skk-visual) (defcustom skk-inline-show-background-color (if (eq skk-background-mode 'light) "beige" "gray15") "*$B%$%s%i%$%sI=<($9$kJQ498uJd$NGX7J?'$r;XDj$9$kJQ?t!#(B `skk-inline-show-face' $B$^$?$O(B `skk-treat-candidate-appearance-function' $B$G(B $BGX7J?'$,;XDj$5$l$F$$$J$$J8;z$KBP$7$F$N$_:nMQ$9$k!#(B" :type 'string :group 'skk-visual) (defcustom skk-inline-show-background-color-odd (if (eq skk-background-mode 'light) "wheat" "gray20") "*$B%$%s%i%$%sI=<($9$kJQ498uJd$NGX7J?'(B($B4q?t%i%$%s(B)$B$r;XDj$9$kJQ?t!#(B `skk-inline-show-face' $B$^$?$O(B `skk-treat-candidate-appearance-function' $B$G(B $BGX7J?'$,;XDj$5$l$F$$$J$$J8;z$KBP$7$F$N$_:nMQ$9$k!#(B" :type 'string :group 'skk-visual) (defcustom skk-search-end-function nil "*$BC18l8!:w=*N;;~$K%3!<%k$5$l$k4X?t!#(B $B$3$N4X?t$rMxMQ$7$F8!:w$7$?C18l$NM%@h=g0L$rJQ99$9$k$J$I$N:n6H$,2DG=!#(B HENKAN-BUFFER, MIDASI, OKURIGANA, ENTRY $B$N(B 4 $B0z?t$rH<$J$C$F%3!<%k$5$l$k!#(B $B2C9)$7$?(B ENTRY $B$rJV$9$3$H!#(B $B$3$N4X?t$O!"<-=q%P%C%U%!$G%3!<%k$5$l$k$N$G!"JQ49$r9T$C$?%P%C%U%!%m!<%+%k$J(B $B>pJs$r \"$B2>L>(B\" $B$3$NCM$,(B nil $B$G$"$l$P!":G=i$N%9%Z!<%9$G8+=P$78l$r@Z$j5M$a$F$7$^$$!"0J9_$N%9%Z!<(B $B%9!"%?%V!"2~9T$OL5;k$5$l$k!#(B $B$3$NCM$O!"(B`skk-toggle-characters' $B5Z$S(B `skk-backward-and-set-henkan-point' $B$NF0(B $B:n$K1F6A$9$k!#(B" :type 'boolean :group 'skk-henkan) (defcustom skk-delete-okuri-when-quit nil "*Non-nil $B$G$"$l$PJQ49Cf$N(B \\[keyboard-quit] $B$GAw$j2>L>$r>C$7$F"&%b!<%I(B $B$KF~$k!#(B $BNc!K(B \"$B"&$J(B*$B$/(B -> $B"'5c$/(B -> \\[keyboard-quit] ->$B"&$J(B\" nil $B$G$"$l$P!"Aw$j2>L>$r4^$a$?8+=P$78l$r$=$N$^$^;D$7$F"&%b!<%I$KF~$k!#(B $BNc!K(B \"$B"&$J(B*$B$/(B -> $B"'5c$/(B -> \\[keyboard-quit] -> $B"&$J$/(B\"" :type 'boolean :group 'skk-henkan) (make-obsolete-variable 'skk-henkan-show-candidates-rows 'skk-henkan-number-to-display-candidates "DDSKK 16.2") (defcustom skk-henkan-number-to-display-candidates 7 "*$BJQ498uJd$rI=<($9$k8D?t!#(B" :type 'integer :group 'skk-henkan) (defcustom skk-show-candidates-always-pop-to-buffer nil "*$B$3$NJQ?t$,(B non-nil $B$G$"$l$P!">o$K(B\"*$B8uJd(B*\"$B%P%C%U%!$r:n@=$7$F!"JQ498uJd0lMw$r@lMQ%&%#%s%I%&$KI=<($9$k!#(B $B$3$NJQ?t$,(B nil $B$G$"$l$P!"8uJd0lMw$r%(%3!<%(%j%"$KI=<($9$k!#$?$@$7!"8uJd0lMw$NJ8;zNs$ND9$5$,%U%l!<%`$N2#I}$K<}$^$i$J$$>l9g$O!"(B\"*$B8uJd(B*\"$B%P%C%U%!$r:n@=(B(pop-to-buffer)$B$7$F@lMQ$N%&%#%s%I%&$GI=<($9$k!#(B " :type 'boolean :group 'skk-henkan) (defcustom skk-candidate-buffer-background-color nil "*\"*$B8uJd(B*$B%P%C%U%!(B\"$B$NGX7J?'!#(B" :type '(radio (string :tag "$B?'$NL>A0(B") (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-henkan :group 'skk-visual) (defcustom skk-candidate-buffer-background-color-odd nil "*\"*$B8uJd(B*$B%P%C%U%!(B\"$B$NGX7J?'!J4q?t%i%$%s!K!#(B" :type '(radio (string :tag "$B?'$NL>A0(B") (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-henkan :group 'skk-visual) (defcustom skk-candidate-buffer-display-fringes t "*nil $B$G$"$l$P!"(B\"*$B8uJd(B*$B%P%C%U%!(B\" $B$N(B fringe $B$r>C$9(B." :type 'boolean :group 'skk-henkan :group 'skk-visual) (defvar skk-candidate-buffer-fringe-width (list nil (cdr (assoc 'left-fringe (frame-parameters))) (cdr (assoc 'right-fringe (frame-parameters)))) "skk $B5/F0;~$N(B fringe $B$NI}(B") (defcustom skk-candidate-buffer-delete-other-windows t "*nil $B$G$"$l$P!"(B\"*$B8uJd(B*$B%P%C%U%!(B\" $BI=<($HF1;~$KB>$N(B window $B$r0l;~HsI=<($H$9$k(B." :type 'boolean :group 'skk-henkan :group 'skk-visual) (defcustom skk-search-katakana nil "*$B$+$J$rC1=c$K%+%?%+%JJQ49$7$?8uJd$rI=<($9$k$+$I$&$+$r7h$a$k%*%W%7%g%s!#(B nil $B$J$i$P4^$a$J$$!#(Bt $B$J$i$PA43Q%+%J8uJd$r4^$a$k!#(B `jisx0201-kana' $B$J$i$PA43Q$K2C$($FH>3Q%+%J8uJd$b4^$a$k!#(B $B$3$N5!G=$O0lHLE*$J(B FEP $B$N;H$$>!3Q%+%J$b4^$a$k(B" jisx0201-kana)) :group 'skk-henkan) (defcustom skk-search-sagyo-henkaku nil "*$B4J0W$J%5JQF0;lJQ495!G=$rM-8z$K$9$k$+$I$&$+7h$a$k%*%W%7%g%s!#(B nil $B$J$i$P!"Aw$j2>L>$,(B \"$B$5(B\" \"$B$7(B\" \"$B$9(B\" \"$B$;(B\" $B$N$$$:$l$+$N;~$K(B $BAw$j$J$78uJd$,JQ498uJd$K8=$l$k!#(B anything $B$K@_Dj$9$k$H!"Aw$j2>L>$,2?$G$"$C$F$bAw$j$J$78uJd$rAw$j$"$jJQ49$K(B $BMQ$$$k!#$3$N>l9g!"Aw$j2>L>$H$$$&$h$j$b!"G$0U$N4A;z$H$+$J$N@Z$jBX$(0LCV$r(B $B;XDj$9$k$h$&$JF~NO$K$J$k!#(B $B$3$N5!G=$OIT@53N$J=PNO$r$9$k2DG=@-$KCm0U$9$kI,MW$,$"$k$,!"8D?M<-=q$r0i$F$?$$(B $B%f!<%6!<8~$1$KDs6!$5$l$k!#(B" :type '(radio (const :tag "$B$3$N5!G=$rL58z$K$9$k(B" nil) (const :tag "$B4J0W%5JQF0;lJQ49$r$9$k(B" t) (const :tag "$B$3$N5!G=$rG$0U$NAw$j$"$jJQ49$K3HD%$9$k(B" anything)) :group 'skk-henkan) (defcustom skk-kakutei-key "\C-j" "*$B4A;zJQ49$N3NDjF0:n$r9T$&%-! $B"'3NDj(B -> $B3NDj(Bs -> $B3NDj$9(B\" $B$N$h$&$KJQ498e!"!V$9!W$N(B prefix $B$G$"$k(B \"s\" $B$rF~NO$7$?;~E@$G3NDj$9$k!#(B nil $B$G$"$l$P!"Nc$($P(B \"$B"&$+$/$F$$(B -> $B"'3NDj(B -> $B"'3NDj(Bs -> $B"'3NDj$9$k(B -> $B3NDj$9$k!#(B\" $B$N$h$&$K(B `skk-kakutei' $B$rD>@\!"4V@\$K%3!<%k$9$k$^$G(B ($B6gFIE@$rF~NO$7$?$j!"(B $B?7$?$J"&%b!<%I$KF~$C$?$j$9$k$H4V@\E*$K(B `skk-kakutei' $B$r%3!<%k$9$k(B) $B$O!"3NDj(B $B$7$J$$$N$G!"$=$N4V$O!"JQ498uJd$rA*$SD>$9$3$H$J$I$,2DG=!#(B $B$3$N%*%W%7%g%sMxMQ;~$O!"(B`skk-process-okuri-early' $B$NCM$O(B nil $B$G$J$1$l$P(B $B$J$i$J$$!#(B" :type 'boolean :group 'skk-basic :group 'skk-kakutei) (defcustom skk-egg-like-newline nil "*Non-nil $B$G$"$l$P!""'%b!<%I$G(B RET $B$r%?%$%W$7$F$b3NDj$N$_9T$$!"2~9T$7$J$$!#(B" :type 'boolean :group 'skk-basic :group 'skk-kakutei) (defcustom skk-delete-implies-kakutei t "*Non-nil $B$G$"$l$P!""'%b!<%I$G(B BS $B$r2!$9$H!"A0$N0lJ8;z$r:o=|$73NDj$9$k!#(B nil $B$G$"$l$P!"0l$DA0$N8uJd$rI=<($9$k!#(B $B%7%s%\%k(B `dont-update' $B$G$"$l$P!"8D?M<-=q$r99?7$7$J$$!#(B $B$J$*!"$3$NJQ?t$NCM$K$+$+$o$i$:!"8uJd0lMw$rI=<($7$F$$$k$H$-$N(B BS $BBG80$O(B $BA08uJd(B($B72(B)$B$NI=<($K$J$k!#(B" :type '(radio (const t) (const dont-update) (const nil)) :group 'skk-basic :group 'skk-kakutei) (defcustom skk-kakutei-when-unique-candidate nil "*Non-nil $B$G$"$l$P!"JQ498uJd$,0l$D$7$+$J$$$H$-3NDjJQ49$9$k!#(B $B$3$NCM$,(B t $B$G$"$l$P$I$NJQ49%b!<%I$G$b3NDjJQ49$9$k!#(B `okuri-ari', `okuri-nasi', `abbrev' $B$N$$$:$l$+$rMWAG$H$9$k%j%9%H$G(B $B$"$l$P!"JQ49%b!<%I$,$=$N>r7o$K9gCW$7$?>l9g$N$_3NDjJQ49$9$k!#(B $B8uJd$,B>$KL5$$;v$r3NG'$9$k$?$a!"(B`skk-search-prog-list' $B$NFbMFl9g(B `skk-kakutei-search-prog-limit' $B$r@_Dj$9$k$3$H$G8!:wBP>]$r@)8B$9$k(B $B$3$H$b2DG=!#(B" :type '(radio (const :tag "$B>o$KM-8z(B" t) (set :tag "$BM-8z$K$9$kJQ49%b!<%I(B" (const :tag "$BAw$jM-$jJQ49(B" okuri-ari) (const :tag "$BAw$jL5$7JQ49(B" okuri-nasi) (const :tag "abbrev $BJQ49(B" abbrev)) (const :tag "$BL58z(B" nil)) :group 'skk-kakutei) (defcustom skk-kakutei-search-prog-limit nil "*$BJ#?t<-=q$K$h$k3NDjJQ49$K$*$$$F!"8!:wBP>]$H$9$k<-=q$r@)8B$9$k!#(B $B$3$l$,?tCM$G$"$l$P!"8!:wBP>]$r(B `skk-search-prog-list' $B$N@hF,$+$i$3(B $B$N8D?t$^$G$N<-=q$K@)8B$9$k!#(B $B$=$l0J30$G$"$l$PL5@)8B$KA4$F$N<-=q$rBP>]$H$9$k!#(B `skk-kakutei-when-unique-candidate' $B$,(B non-nil $B$N$H$-$N$_M-8z!#(B" :type '(radio (integer :tag "$BBP>]$H$9$k<-=q$N?t(B") (const :tag "$B@)8B$7$J$$(B" nil)) :group 'skk-kakutei) (defcustom skk-kakutei-end-function nil "*$B3NDj;~$K%3!<%k$5$l$k4X?t!#(B `skk-kakutei-initialize' $B$,%3!<%k$5$l$kA0$K$3$N4X?t$,%3!<%k$5$l$k$N$G!"(B $B:G8e$N3NDj$K4X$9$k%U%i%0N`$O!"$3$N4X?t$NCf$+$i;2>H$9$k$3$H$,$G$-$k!#(B" :type '(radio (function :tag "$B4X?t(B") (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-kakutei) (defcustom skk-henkan-okuri-strictly nil "*Non-nil $B$G$"$l$P!"8+=P$78l$HAw$j2>L>$,0lCW$7$?$H$-$@$18uJd$H$7$F=PNO$9$k!#(B $BNc$($P!"2<5-$N$h$&$J<-=q%(%s%H%j$,(B `skk-jisyo' ($B8D?M<-=q(B) $B$K$"$C$?(B $B>l9g$K(B \"$B$*$*(Bk /$BBg(B/$BB?(B/[$B$/(B/$BB?(B/]/[$B$-(B/$BBg(B/]/\" \"$B"&$*$*(B*$B$/(B\" $B$rJQ49$7$?$H$-!"(B\"$BB?$/(B\" $B$N$_$r=PNO$7!"(B\"$BBg$/(B\" $B$r=PNO$7$J$$!#(B SKK-JISYO.[SML] $B$NAw$j2>L>%(%s%H%j$O>e5-$N7A<0$K$J$C$F$$$J$$$N$G!"(B`skk-jisyo' $B$NAw$j$"$j$N<-=q%(%s%H%j$,$3$N7A<0$N$b$N$r$"$^$j4^$s$G$$$J$$>l9g$O!"$3$N(B $B%*%W%7%g%s$r(B on $B$K$9$k$3$H$G!"$9$0$KC18lEPO?$KF~$C$F$7$^$&$N$GCm0U$9$k$3$H!#(B `skk-process-okuri-early' $B$NCM$,(B nil $B$J$i$P!">e5-$N7A<0$G(B `skk-jisyo' $B$,(B $B:n$i$l$k!#(B $B2<5-$N<0$rI>2A$9$k$3$H$G!"C18lEPO?$KF~$C$?$H$-$@$1(B $B0l;~E*$K$3$N%*%W%7%g%s$rL58z$K$9$k$3$H$,$G$-$k!#(B (add-hook 'minibuffer-setup-hook (function (lambda () (if (and (boundp 'skk-henkan-okuri-strictly) skk-henkan-okuri-strictly (not (eq last-command 'skk-purge-from-jisyo))) (progn (setq skk-henkan-okuri-strictly nil) (put 'skk-henkan-okuri-strictly 'temporary-nil t)))))) (add-hook 'minibuffer-exit-hook (function (lambda () (if (and (get 'skk-henkan-okuri-strictly 'temporary-nil) (<= (minibuffer-depth) 1)) (progn (put 'skk-henkan-okuri-strictly 'temporary-nil nil) (setq skk-henkan-okuri-strictly t)))))) $B$3$N%*%W%7%g%sMxMQ;~$O!"(B`skk-process-okuri-early' $B$NCM$O(B nil $B$G$J$1$l$P(B $B$J$i$J$$!#(B" :type 'boolean :group 'skk-basic :group 'skk-okurigana) (defcustom skk-henkan-strict-okuri-precedence nil "*Non-nil $B$G$"$l$P!"8+=P$78l$HAw$j2>L>$,0lCW$7$?8uJd$rM%@h$7$FI=<($9$k!#(B $BNc$($P!"2<5-$N$h$&$J<-=q%(%s%H%j$,(B `skk-jisyo' ($B8D?M<-=q(B) $B$K$"$C$?(B $B>l9g$K(B \"$B$*$*(Bk /$BBg(B/$BB?(B/[$B$/(B/$BB?(B/]/[$B$-(B/$BBg(B/]/\" \"$B"&$*$*(B*$B$/(B\" $B$rJQ49$7$?$H$-!"$^$:(B\"$BB?$/(B\" $B$r=PNO$7!"(B $BL>$N%m!<%^;z%W%l%U%#%C%/%9F~NO;~E@$GJQ49$r3+;O$9$k!#(B $BNc$($P!"(B \"UgoK -> $B"'F0(Bk\"$B!#(B $BAw$j2>L>$,J,$i$J$$$^$^JQ49$7$F$$$k$3$H$K$J$k$N$G!"(B`skk-jisyo' $B$,Aw$j2>L>$K(B $BBP1~$7$?7A$K@.D9$7$J$$!#$D$^$j(B \"$B$&$4(Bk /$BF0(B/\" $B$N$h$&$J7ABV$N$^$^$H$J$k!#$?$@$7!"4{$K(B \"$B$&$4(Bk /$BF0(B/[$B$/(B/$BF0(B/]/[$B$+(B/$BF0(B/]/[$B$1(B/$BF0(B/]/[$B$-(B/$BF0(B/]/[$B$3(B/$BF0(B/]/\" $B$N$h$&$J%(%s%H%j$,(B `skk-jisyo' $B$K$"$l$P!"$=$l$rGK2u$7$J$$!#(B nil $B$G$"$l$P!"Aw$j2>L>$NF~NO$,40N;$7$?;~E@$GJQ49$,3+;O$9$k!#Nc$($P!"(B \"UgoK -> $B"&$&$4(B*k\", \"UgoKu -> $B"'F0$/(B\" $B$3$N%*%W%7%g%s$r(B on $B$K$7$F(B `skk-mode' $B$r5/F0$9$k$H!"N>N)$G$-$J$$%*%W%7%g%s(B $B$G$"$k(B `skk-kakutei-early', `skk-auto-okuri-process' $B5Z$S(B `skk-henkan-okuri-strictly' $B$O(B nil $B$K%;%C%H$5$l$k!#(B" :type 'boolean :group 'skk-okurigana) (defcustom skk-check-okurigana-on-touroku nil "*Non-nil $B$G$"$l$P!"Aw$j$"$j$NEPO?;~$K!"M>7W$J2>L>$r%A%'%C%/$9$k!#(B $BNc$($P!"(B \"$B$H$S$@(B*$B$9(B $BHt$S=P(B\" $B$HEPO?$9$k$N$,@5$7$$$K$b$+$+$o$i$:!"%f!<%6$,(B \"$B$H$S$@(B*$B$9(B $BHt$S=P$9(B\" $B$G$&$C$+$j(B [RET] $B$r2!$7$F$7$^$C$?$H$-$K!":G8e$N!V$9!W$,Aw$j2>L>$G$"$k$+$I$&$+(B $BD4$Y$k!#(B $B$3$NJQ?t$O0J2<$NCM$r$H$jF@$k!#4{DjCM$O(B nil$B!#(B ask -- $B%f!<%6$K3NG'$r5a$a!"Aw$j2>L>$HG'$a$i$l$l$P$3$l$r!L>$rH=CG$7$F:o=|$7$F$+$iEPO?$9$k!#(B nil -- $B0l@ZAw$j2>L>$N%A%'%C%/$r$;$:!"A4BN$rC18l$H$7$FEPO?$9$k!#$3$l$O(B SKK $BK\(B $BMh$NF0:n$G$"$k!#(B" :type '(radio (const :tag "$B%f!<%6$K3NG'$9$k(B" ask) (const :tag "$B<+F0E*$K=hM}$9$k(B" auto) (const :tag "$B%A%'%C%/$7$J$$(B" nil)) :group 'skk-basic :group 'skk-okurigana :group 'skk-private) (defcustom skk-okuri-char-alist nil "*$BAw$j2>L>(B prefix $B$rJQ49$9$k%k!<%k$r5-=R$9$kO"A[%j%9%H!#(B car $B$K!Vl9g$N$_$G$"$k!#(B $BNc$($P!"$+9T$NAw$j2>L>F~NO$K(B \"c\" $B$N(B prefix $B$r;H$&$N$G$"$l$P!"(B (setq skk-okuri-char-alist '((\"c\" . \"k\"))) $B$N$h$&$K=q$/!#(B" :type '(repeat (cons string string)) :group 'skk-okurigana) (defcustom skk-emacs-id-file (if skk-user-directory (expand-file-name "emacs-id" skk-user-directory) (convert-standard-filename "~/.skk-emacs-id")) "\ *`skk-jisyo-file' $B$K:G6a%"%/%;%9$7$?(B SKK $B$N(B `skk-emacs-id' $B$rJ]B8$9$k%U%!%$%k!#(B" :type 'file :group 'skk-misc) (defcustom skk-keep-record t "*Non-nil $B$G$"$l$P!"JQ495Z$S8D?M<-=q$K4X$9$kE}7W$r(B `skk-record-file' $B$KpJs$r<}$a$k!#(B" :type 'file :group 'skk-misc) (defcustom skk-byte-compile-init-file nil "*Non-nil $B$G$"$l$P!"(B`skk-mode' $B5/F0;~$K(B `skk-init-file' $B$r%P%$%H%3%s%Q%$%k$9$k!#(B $B@53N$K8@$&$H!"(B (1)`skk-init-file' $B$r%P%$%H%3%s%Q%$%k$7$?%U%!%$%k$,$J$$$+!"(B (2)`skk-init-file' $B$H$=$N%P%$%H%3%s%Q%$%k:Q%U%!%$%k$rHf3S$7$F!"A0C$9!#(B $B$3$NJQ?t$O(B ~/.emacs.d/init.el $B$G@_Dj$9$k$3$H!#(B" :type 'boolean :group 'skk-misc) (defcustom skk-read-from-minibuffer-function nil "\ *$B<-=qEPO?%b!<%I$KF~$C$?$H$-$N%W%m%s%W%H$KI=<($9$k=i4|CM$rDs6!$9$k4X?t!#(B $B$3$N4X?t$OJ8;zNs$rJV$5$J$1$l$P$J$i$J$$!#(B $B4X?t(B `read-from-minibuffer' $B$N0z?t(B INITIAL-CONTENTS $B$K3:Ev$9$k!#(B `skk-henkan-key' $B$r$=$N$^$^=i4|CM$H$7$FMxMQ$7$?$$$H$-$O!"(B (setq skk-read-from-minibuffer-function (lambda () skk-henkan-key)) $B$H;XDj$9$k!#(B" :type '(radio (function :tag "$B4X?t(B") (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-misc) (defface skk-jisyo-registration-badge-face '((((class color) (type tty)) (:inherit default :inverse-video t)) (((class color) (background light)) (:inherit default :inverse-video t)) (((class color) (background dark)) (:inherit default :inverse-video t)) (((class grayscale)) (:inherit default :inverse-video t))) "*$B"-<-=qEPO?Cf"-$KE,MQ$9$k%U%'%$%9!#(B" :group 'skk-visual) ;;;###autoload (defcustom skk-preload nil "*Non-nil $B$J$i$P!"(BEmacs $B5/F0;~$K(B SKK $B%W%m%0%i%`$H<-=q$NFI$_9~$_$r:Q$^$;$k!#(B Emacs $B$N5/F0$=$N$b$N$OCY$/$J$k$,!"(BDDSKK $B$N=i2s5/F0$rAa$/$9$k$3$H$,$G$-$k!#(B" :type 'boolean :group 'skk-misc) (defcustom skk-undo-kakutei-word-only nil "*Non-nil $B$G$"$l$P(B $B"&%b!<%I$H"'%b!<%I;~$N%"%s%I%%>pJs$r5-O?$7$J$$!#(B" :type 'boolean :group 'skk-misc) (defcustom skk-undo-kakutei-return-previous-point nil "*Non-nil $B$G$"$l$P!"3NDj%"%s%I%%=hM}$,40N;$7$?8e$K!"3NDj%"%s%I%%=hM}$N(B $BD>A0$N0LCV$K%+!<%=%k$rLa$9!#(B" :type 'boolean :group 'skk-misc) (defcustom skk-show-japanese-menu (and window-system (or (eq window-system 'w32) (boundp 'mac-carbon-version-string) ; Carbon Emacs (featurep 'ns) ; Cocoa Emacs (and (eq window-system 'x) (boundp 'gtk-version-string) (stringp (symbol-value 'gtk-version-string)) (string< "2.0" (symbol-value 'gtk-version-string)))) (equal current-language-environment "Japanese")) "\ *Non-nil $B$G$"$l$P%a%K%e!<%P!<$rF|K\8l$GI=<($9$k!#(B" :type 'boolean :group 'skk-misc) (defcustom skk-verbose nil "*Non-nil $B$G$"$l$P!"F~NOCf!?JQ49Cf$K%(%3!<%(%j%"$K>iD9$J%a%C%;!<%8$rI=<($9$k!#(B" :type 'boolean :group 'skk-misc) (defcustom skk-verbose-wait 1.5 "*$B>iD9$J%a%C%;!<%8$rI=<($9$k$^$G$NBT$A;~4V(B ($BIC(B)$B!#(B" :type 'number :group 'skk-misc) (defcustom skk-verbose-message-interval 5.0 "*$B>iD9$J%a%C%;!<%8$,J#?t$"$k>l9g!"#1$D$"$?$jI=<(;~4V(B ($BIC(B)$B!#(B $B$3$N;~4V$,7P2a$7$?$iiD9$J%a%C%;!<%8$N(B {$B%"%N%F!<%7%g%s(B} $B$H(B {$B$I$l$r;2>H(B?} $B$KE,MQ$9$k(B $B%U%'%$%9!#(B" :group 'skk-visual) (defface skk-verbose-kbd-face '((((class color) (type tty)) (:inherit default :foreground "cyan")) (((class color) (background light)) (:inherit default :foreground "Purple")) (((class color) (background dark)) (:inherit default :foreground "Cyan")) (((class grayscale)) (:inherit default :foreground "LightGray"))) "*$B>iD9$J%a%C%;!<%8$NA`:n%-!iD9$J%a%C%;!<%8$NFbMF!#(B $BI8=`$G$O<+F0@_Dj$9$k!#(B" :type '(radio (string :tag "$BFbMF$r;XDj(B") (const :tag "$B<+F0@_Dj(B" nil)) :group 'skk-misc) (defcustom skk-j-mode-function-key-usage nil "*$B%-!<%\!<%I>e$N(B F1 $B!A(B F10 $B%-!<$N;H$$J}$r;XDj$9$k!#(B `conversion' $B$J$i$P!"(B`skk-search-prog-list-1' $B!A(B `skk-search-prog-list-0' $B$r(B $B$K!"(B`skk-auto-fill-mode-hook', `skk-load-hook', `skk-init-file' $B$G$b(B $B%+%9%?%^%$%:$,2DG=!#(B" ;; "*Hook run at SKK startup. This hook is also run ;;in skk-auto-fill-mode after skk-auto-fill-mode-hook. ;;skk-auto-fill-mode-hook, skk-load-hook, skk-init-file may also be used ;;for customization." :type 'hook :group 'skk-misc) (defcustom skk-auto-fill-mode-hook nil "*`skk-auto-fill-mode' $B$r5/F0$7$?$H$-$N%U%C%/!#(B $BB>$K!"(B`skk-mode-hook', `skk-load-hook', `skk-init-file' $B$G$b%+%9%?%^%$%:$,(B $B2DG=!#(B" ;; "*Hook run at startup of skk-auto-fill-mode. ;;skk-mode-hook$B!"(Bskk-load-hook, skk-init-file may also be used for ;;customization." :type 'hook :group 'skk-misc) (defcustom skk-load-hook nil "*skk.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B $BB>$K!"(B`skk-mode-hook', `skk-auto-fill-mode-hook', `skk-init-file' $B$G$b%+%9%?(B $B%^%$%:$,2DG=!#(B" ;; "*Hook run when SKK is loaded. ;;skk-auto-fill-mode-hook$B!"(Bskk-mode-hook, skk-init-file may also be used ;;for customization." :type 'hook :group 'skk-misc) (defcustom skk-status-indicator 'left "*SKK $B$N>uBV$r%b!<%I%i%$%s$N$I$N0LCV$KI=<($9$k$+$r7h$a$k!#(B left $B$G$"$l$P:8C<$KI=<($9$k!#(B $B$5$b$J$1$l$P%^%$%J!<%b!<%I$H$7$F$NI=<(K!$ro;~I=<($9$k!#(B $BI=<($9$k(B SKK $B%"%$%3%s$N2hA|$O(B `skk-icon' $B$G;XDj$9$k!#(B" :type 'boolean :set (lambda (symbol value) (prog1 (if (fboundp 'custom-set-default) (custom-set-default symbol value) (set-default symbol value)) (when (and (boundp 'skk-mode-invoked) skk-mode-invoked) (cond (value (if (featurep 'xemacs) (skk-xemacs-prepare-modeline-properties) (skk-emacs-prepare-modeline-properties)) (skk-setup-modeline)) (t (setq skk-icon nil)))))) :group 'skk-visual) (defcustom skk-echo t "*Non-nil $B$G$"$l$P!"2>L>J8;z$N%W%l%U%#%C%/%9$rI=<($9$k!#(B" :type 'boolean :group 'skk-visual) (defcustom skk-use-face (or window-system (fboundp 'selected-frame) ; XEmacs does not have this. (fboundp 'frame-face-alist)) "*Non-nil $B$G$"$l$P!"(BEmacs $B$N(B face $B$N5!G=$r;HMQ$7$FJQ498uJd$r%O%$%i%$%HI=<($9$k!#(B" :type 'boolean :group 'skk-basic :group 'skk-visual) ;; should use defface? however, can I use defface for highlight? (defcustom skk-henkan-face 'skk-henkan-face-default "*$BJQ498uJd$N(B face $BB0@-!#(B`skk-use-face' $B$,(B non-nil $B$N$H$-$N$_M-8z!#(B Emacs $BI8=`$N%U%'%$%9$N$[$+!"?7$?$K(B face $B$r:n$C$F;XDj$9$k$3$H$b2DG=!#(B $B?7$?$J(B face $B$r:n$C$F;XDj$9$k$K$O!"(B (setq skk-henkan-face (skk-make-face 'DimGray/PeachPuff1)) $B$N$h$&$K(B skk-make-face() $B$rMxMQ$9$k$N$,l9g$O!"(B`skk-make-face' $B$G(B $B$OBP1~$G$-$J$$$N$G!"(BEmacs $B$N(B hilit19.el $B$N(B `hilit-lookup-face-create' $B$J$I$rMxMQ$9$k!#(B $B?'$rIU$1$k>l9g$NG[?'$O!"(Bcanna.el $B$N(B `canna:attribute-alist' $B$,NI$$Nc$+$b$7$l$J$$!#(B $B$3$NJQ?t$h$j$b(B `skk-treat-candidate-appearance-function' $B$N@_Dj$,M%@h$5$l$k!#(B" :type 'face :group 'skk-visual) (defface skk-henkan-face-default '((((class color) (type tty)) (:foreground "black" :background "green")) (((class color) (background light)) (:foreground "black" :background "darkseagreen2")) (((class color) (background dark)) (:foreground "white" :background "darkolivegreen")) (((class grayscale)) (:underline t))) "*$BI8=`$NJQ498uJd$N(B face $BB0@-!#(B" :group 'skk-visual) (when (and skk-use-face (boundp 'frame-background-mode) (not frame-background-mode) (fboundp 'face-background) (not (face-background 'skk-henkan-face-default))) (set-face-foreground 'skk-henkan-face-default "black") (set-face-background 'skk-henkan-face-default "darkseagreen2")) (defcustom skk-henkan-overlay-priority 600 "*$BJQ49$7$?8uJd$K=E$M$k(B overlay $B$N(B priority$B!#(B $BNc$($P!"(BViper $B$G(B R $B%3%^%s%I$K$h$j(B replace $B$r9T$&$H$-$K!"(B `viper-replace-overlay' $B$H$$$&(B priority 400 $B$N(B overlay $B$r=E$M$i$l$k$,!"(B `skk-henkan-overlay-priority' $B$N%G%U%)%k%HCM$O$3$N(B overlay $B$h$j(B priority $B$,9b$$$N$G!"M%@h$7$FI=<($5$l$k!#(B" :type 'integer :group 'skk-visual) (defcustom skk-treat-candidate-appearance-function nil "*$B8uJd$NI=<($rAu>~$9$k$?$a$N4X?t$r;XDj$9$kJQ?t!#(B $B%f!<%6$O8uJd$H$J$k$Y$-J8;zNs$KBP$7$F!"$=$NCmr7o$rK~$?$9I,MW$,$"$k!#(B 1. $B0z?t$r#2$Do$NJQ49;~!"(Bnon-nil $B$N;~$O8uJd0lMwI=<(;~$rI=$9(B $B$b$N$H$7$F07$&$3$H!#(B 4. $BJV$jCM$O0J2<$N$$$:$l$+$H$9$k$3$H!#(B a. $BJ8;zNs(B $B$3$N>l9g!"$3$NJ8;zNs$O8uJd$H%"%N%F!<%7%g%s$rN>J}4^$_$&$k$b$N$H$7$F=h(B $BM}$5$l$k!#(B b. cons cell ($B8uJd(B . $B%"%N%F!<%7%g%s(B) $B$3$N>l9g!"8uJd$O$b$&%"%N%F!<%7%g%s$r4^$^$J$$$b$N$H$7$F=hM}$5$l$k!#(B $B%"%N%F!<%7%g%s$K$D$$$F$O@hF,$,(B \";\" $B$+$I$&$+$rD4$Y$?>e$G=hM}$5$l$k!#(B c. cons cell ($B8uJd(B . ($B%;%Q%l!<%?(B . $B%"%N%F!<%7%g%s(B)) $B$3$N>l9g!"8uJd$O$b$&%"%N%F!<%7%g%s$r4^$^$J$$$b$N$H$7$F=hM}$5$l$k!#(B $B%;%Q%l!<%?$ODL>o$N(B \";\" $B$NBe$o$j$KMxMQ$5$l$k!#%"%N%F!<%7%g%s$O$b$&(B $B%;%Q%l!<%?$r4^$^$J$$$b$N$H$7$F=hM}$5$l$k!#(B $B$3$N4X?t$O0J2<$N>l9g$K8F$P$l$k!#(B o $BDL>o$NJQ49F0:n$NETEY(B $B$3$N>l9g$O!"8uJd$O%P%C%U%!$K!"%"%N%F!<%7%g%s$O%(%3!<%(%j%"$J$I!J%f!<%6(B $B$N@_Dj$K$h$C$F0[$J$k>l=j!K$KI=<($5$l$k!#%;%Q%l!<%?$OI=<($5$l$J$$!#(B o $B8uJd0lMw$rI=<($9$k$H$-(B ($B8uJd$NJ8;zNs$N8e$m$K%"%N%F!<%7%g%s$,IU2C$5$l$k(B) $B$3$N>l9g$O!"8uJd!"%;%Q%l!<%?!"%"%N%F!<%7%g%s$N3FJ8;zNs$,I=<($5$l$k!#(B ($B@_DjNc(B) (setq skk-treat-candidate-appearance-function (lambda (candidate listing-p) (cond ((string-match \";\" candidate) (put-text-property 0 (match-beginning 0) 'face (if listing-p 'tooltip 'underline) candidate) (put-text-property (match-beginning 0) (length candidate) 'face 'shadow candidate)) (t (put-text-property 0 (length candidate) 'face (if listing-p 'tooltip 'underline) candidate))) candidate)) " :type '(radio (const :tag "$B@_Dj%5%s%W%k(B1" skk-treat-candidate-sample1) (const :tag "$B@_Dj%5%s%W%k(B2" skk-treat-candidate-sample2) (const :tag "$B;XDj$7$J$$(B" nil) (function :tag "$BG$0U$N4X?t(B")) :group 'skk-annotation :group 'skk-visual) ;; skk-treat-candidate-appearance-function $B$N$?$a$KMQ0U$9$k4X?t(B (defun skk-treat-candidate-sample1 (candidate listing-p) (cond ((string-match ";" candidate) (put-text-property 0 (match-beginning 0) 'face 'skk-tut-question-face candidate) (put-text-property (match-beginning 0) (length candidate) 'face 'skk-tut-hint-face candidate)) (t (put-text-property 0 (length candidate) 'face 'skk-tut-question-face candidate))) candidate) (defun skk-treat-candidate-sample2 (candidate listing-p) (let* ((value (skk-treat-strip-note-from-word candidate)) (cand (car value)) (note (if listing-p (or (and (eq skk-annotation-lookup-lookup 'always) (skk-lookup-get-content cand t)) (and (eq skk-annotation-lookup-DictionaryServices 'always) (skk-annotation-lookup-DictionaryServices cand t)) (cdr value)) (cdr value))) (sep (if note (propertize (if (skk-annotation-display-p 'list) " $B"b(B " " !") 'face 'skk-tut-do-it-face) nil))) (cond (note (put-text-property 0 (length cand) 'face 'skk-tut-question-face cand) (put-text-property 0 (length note) 'face 'skk-tut-hint-face note) (cons cand (cons sep note))) (t (put-text-property 0 (length cand) 'face 'skk-treat-default cand) cand)))) (defface skk-treat-default '((((class color) (background light)) (:foreground "black")) (((class color) (background dark)) (:foreground "white"))) "$BGX7J$J$7$NC1=c$J(B face$B!#(B`default' $B$NBe$o$j$K;H$&!#(B" :group 'skk-visual) ;;; -- Internal constants and variables of skk.el (defconst skk-coding-system-alist (cond ((featurep 'emacs) '(("euc" . euc-jis-2004) ("ujis" . euc-jis-2004) ("sjis". japanese-shift-jis-2004) ("jis" . iso-2022-jp-3))) ((featurep 'jisx0213) ; Mule-UCS '(("euc" . euc-jisx0213) ("ujis" . euc-jisx0213) ("sjis". shift_jisx0213) ("jis" . iso-2022-jp-3-strict))) (t '(("euc" . euc-japan) ("ujis" . euc-japan) ("sjis". shift_jis) ("jis" . junet)))) "coding-system $B$NJ8;zNsI=8=$H!"%7%s%\%kI=8=$NO"A[%j%9%H!#(B") (defconst skk-kana-rom-vector ["x" "a" "x" "i" "x" "u" "x" "e" "x" "o" "k" "g" "k" "g" "k" "g" "k" "g" "k" "g" "s" "z" "s" "j" "s" "z" "s" "z" "s" "z" "t" "d" "t" "d" "t" "t" "d" "t" "d" "t" "d" "n" "n" "n" "n" "n" "h" "b" "p" "h" "b" "p" "h" "b" "p" "h" "b" "p" "h" "b" "p" "m" "m" "m" "m" "m" "x" "y" "x" "y" "x" "y" "r" "r" "r" "r" "r" "x" "w" "x" "x" "w" "n"] "$B$+$JJ8;z$+$i%m!<%^;z$X$NJQ49%k!<%k!#(B $B2<5-$N3:Ev$9$k$+$JJ8;z$r$=$NJ8;z$N%m!<%^;z%W%l%U%#%C%/%9$G8=$o$7$?$b$N!#(B $B$!(B $B$"(B $B$#(B $B$$(B $B$%(B $B$&(B $B$'(B $B$((B $B$)(B $B$*(B $B$+(B $B$,(B $B$-(B $B$.(B $B$/(B $B$0(B $B$1(B $B$2(B $B$3(B $B$4(B $B$5(B $B$6(B $B$7(B $B$8(B $B$9(B $B$:(B $B$;(B $B$<(B $B$=(B $B$>(B $B$?(B $B$@(B $B$A(B $B$B(B $B$C(B $B$D(B $B$E(B $B$F(B $B$G(B $B$H(B $B$I(B $B$J(B $B$K(B $B$L(B $B$M(B $B$N(B $B$O(B $B$P(B $B$Q(B $B$R(B $B$S(B $B$T(B $B$U(B $B$V(B $B$W(B $B$X(B $B$Y(B $B$Z(B $B$[(B $B$\(B $B$](B $B$^(B $B$_(B $B$`(B $B$a(B $B$b(B $B$c(B $B$d(B $B$e(B $B$f(B $B$g(B $B$h(B $B$i(B $B$j(B $B$k(B $B$l(B $B$m(B $B$n(B $B$o(B $B$p(B $B$q(B $B$r(B $B$s(B" ;; (length skk-kana-rom-vector) ;; --> 83 ;; (setq kana '("$B$!(B" "$B$"(B" "$B$#(B" "$B$$(B" "$B$%(B" "$B$&(B" "$B$'(B" "$B$((B" "$B$)(B" "$B$*(B" ;; "$B$+(B" "$B$,(B" "$B$-(B" "$B$.(B" "$B$/(B" "$B$0(B" "$B$1(B" "$B$2(B" "$B$3(B" "$B$4(B" ;; "$B$5(B" "$B$6(B" "$B$7(B" "$B$8(B" "$B$9(B" "$B$:(B" "$B$;(B" "$B$<(B" "$B$=(B" "$B$>(B" ;; "$B$?(B" "$B$@(B" "$B$A(B" "$B$B(B" "$B$C(B" "$B$D(B" "$B$E(B" "$B$F(B" "$B$G(B" "$B$H(B" "$B$I(B" ;; "$B$J(B" "$B$K(B" "$B$L(B" "$B$M(B" "$B$N(B" "$B$O(B" "$B$P(B" "$B$Q(B" "$B$R(B" "$B$S(B" "$B$T(B" ;; "$B$U(B" "$B$V(B" "$B$W(B" "$B$X(B" "$B$Y(B" "$B$Z(B" "$B$[(B" "$B$\(B" "$B$](B" ;; "$B$^(B" "$B$_(B" "$B$`(B" "$B$a(B" "$B$b(B" "$B$c(B" "$B$d(B" "$B$e(B" "$B$f(B" "$B$g(B" "$B$h(B" ;; "$B$i(B" "$B$j(B" "$B$k(B" "$B$l(B" "$B$m(B" "$B$n(B" "$B$o(B" "$B$p(B" "$B$q(B" "$B$r(B" "$B$s(B")) ;; (length kana) ;; --> 83 ;; (mapcar (lambda (s) (- (char-octet (string-to-char s) 1) 33)) ;; kana) ;; --> (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25\ ;; 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48\ ;; 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71\ ;; 72 73 74 75 76 77 78 79 80 81 82) ) (defconst skk-default-jisx0208-latin-vector ;; note that skk-jisx0208-latin-vector is a user variable. ;; skk.el $B%m!<%IA0$K(B ~/.emacs.d/init.el $B$J$I$G!"(Bskk-jisx0208-latin-vector $B$NJL$NCM$r%f!<(B ;; $B%6!<$,D>@\=q$$$?$j!"(Bskk.el $B%m!<%I8e$K$3$NCM$r(B aset $B$GD>@\$$$8$C$?$j$7$J(B ;; $B$1$l$P(B default-value $B$G(B skk-jisx0208-latin-vector $B$K%"%/%;%9$9$k$3$H$G(B ;; skk-default-jisx0208-latin-vector $B$NCM$rJ];}$9$k$3$H$b$G$-$h$&$,!"$=$l$O(B ;; $BK>$a$J$$(B...$B!#(B [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil "$B!!(B" "$B!*(B" "$B!I(B" "$B!t(B" "$B!p(B" "$B!s(B" "$B!u(B" "$B!G(B" "$B!J(B" "$B!K(B" "$B!v(B" "$B!\(B" "$B!$(B" "$B!](B" "$B!%(B" "$B!?(B" "$B#0(B" "$B#1(B" "$B#2(B" "$B#3(B" "$B#4(B" "$B#5(B" "$B#6(B" "$B#7(B" "$B#8(B" "$B#9(B" "$B!'(B" "$B!((B" "$B!c(B" "$B!a(B" "$B!d(B" "$B!)(B" "$B!w(B" "$B#A(B" "$B#B(B" "$B#C(B" "$B#D(B" "$B#E(B" "$B#F(B" "$B#G(B" "$B#H(B" "$B#I(B" "$B#J(B" "$B#K(B" "$B#L(B" "$B#M(B" "$B#N(B" "$B#O(B" "$B#P(B" "$B#Q(B" "$B#R(B" "$B#S(B" "$B#T(B" "$B#U(B" "$B#V(B" "$B#W(B" "$B#X(B" "$B#Y(B" "$B#Z(B" "$B!N(B" "$B!@(B" "$B!O(B" "$B!0(B" "$B!2(B" "$B!F(B" "$B#a(B" "$B#b(B" "$B#c(B" "$B#d(B" "$B#e(B" "$B#f(B" "$B#g(B" "$B#h(B" "$B#i(B" "$B#j(B" "$B#k(B" "$B#l(B" "$B#m(B" "$B#n(B" "$B#o(B" "$B#p(B" "$B#q(B" "$B#r(B" "$B#s(B" "$B#t(B" "$B#u(B" "$B#v(B" "$B#w(B" "$B#x(B" "$B#y(B" "$B#z(B" "$B!P(B" "$B!C(B" "$B!Q(B" "$B!A(B" nil] "`skk-jisx0208-latin-region' $B$G;2>H$9$kJ8;z%F!<%V%k!#(B \"ascii\" -> \"$B#a#s#c#i#i(B\" $B$N$h$&$JA43QJ8;z$XJQ49$9$k:]$KMxMQ$9$k!#(B") (defconst skk-kana-cleanup-command-list '(skk-undo skk-kakutei skk-delete-backward-char skk-insert skk-try-completion skk-completion-wrapper skk-previous-candidate)) (defconst skk-delete-backward-char-commands ;; following two are SKK adviced. ;;viper-del-backward-char-in-insert ;;vip-del-backward-char-in-insert '(backward-delete-char-untabify backward-delete-char backward-or-forward-delete-char delete-backward-char picture-backward-clear-column)) (defconst skk-undo-commands '(undo advertised-undo)) (defconst skk-quote-char-alist '((?\; . "\\073") (?/ . "\\057") (?\n . "\\n") (?\r . "\\r") (?\" . "\\\"") (?\\ . "\\\\")) "$B<-=q%(%s%H%jFb$K4^$a$F$O$J$i$J$$J8;z$rCV$-JQ$($k$?$a$NO"A[%j%9%H!#(B `;' $B$O!"Cpl9g$@$1CV49$9$k!#(B") (defvar skk-charset-list nil "SKK $B$,07$&J8;z=89g$N%j%9%H!#(BSKK $B=i2s5/F0;~$K(B GNU Emacs 23 $B0J>e$G$"$l$P@_Dj$5$l$k!#(B") (defvar skk-emacs-id nil "$BJ#?t$N(B emacs $B%W%m%;%9$r<1JL$9$kJ8;zNs!#(B $B$R$H$D$N8D?M<-=q%U%!%$%k$rJ#?t$N(B emacs $B>e$G5/F0$7$F$$$k(B SKK $B$G6&M-$9$k$H(B $B$-$K;2>H$9$k!#(B") (defvar skk-jisyo-update-vector nil "`skk-share-private-jisyo' $BM-8z;~$K<-=q%P%C%U%!99?7>pJs$rJ];}$9$k(B vector. $BD9$5$O(B `skk-jisyo-save-count' $B$h$jD9$/$J$k$h$&$K@_Dj$7$F$$$k!#(B $B<-=q%P%C%U%!99?7$N5-O?$rJ]B8$7!"<-=q%P%C%U%!$r<-=q%U%!%$%k$K%;!<%V$9$k$H$-$K!"(B $BB>$N(B SKK $B$,<-=q%U%!%$%k$K:G6a%"%/%;%9$7$F$$$k$H$-$K$O!"<-=q%U%!%$%k$r%P%C%U%!(B $B$KFI$_9~$s$G$+$i!"(B`skk-jisyo-update-vector' $B$rMQ$$$F%P%C%U%!$r99?7D>$7!"$=$N(B $B7k2L$r%U%!%$%k$K%;!<%V$9$k!#(B") (defvar skk-rule-tree nil "$B%m!<%^;z(B -> $B$+$JJQ49$N>uBVA+0\5,B'$rI=$9%D%j!<$N=i4|>uBV!#(B $B:G=i$K(B `skk-mode' $B$r5/F0$7$?$H$-$K(B `skk-rom-kana-base-rule-list' $B$H(B `skk-rom-kana-rule-list' $B$+$iLZ$N7A$K%3%s%Q%$%k$5$l$k!#(B \\[skk-restart] $B$K$h$C$F$b:F%3%s%Q%$%k$5$l$k!#(B") (defvar skk-insert-new-word-function nil "$B8uJd$rA^F~$7$?$H$-$K(B `funcall' $B$5$l$k4X?t$rJ]B8$9$kJQ?t!#(B") (defvar skk-mode-invoked nil "Non-nil $B$G$"$l$P!"(BEmacs $B$r5/F08e4{$K(B `skk-mode' $B$r5/F0$7$?$3$H$r<($9!#(B") (defvar skk-kakutei-count 0 "$BJQ498uJd$r3NDj$7$?%+%&%s%H$rJ];}$9$kJQ?t!#(B `skk-record-file' $B$N(B \"$B3NDj(B:\" $B9`L\$N%+%&%s%?!e$H$J$C$?$H$-$K8D?M<-=q$,(B $B%*!<%H%;!<%V$5$l$k!#(B $B8D?M<-=q$,%;!<%V$5$l$k$H%$%K%7%c%i%$%:$5$l$k!#(B") (defvar skk-kakutei-history nil "$BAw$j$J$7$G3NDj$5$l$?8+=P$78l!&8uJd$NMzNr!#(B (\"$B$_$@$7$4(B\" \"$B8+=P$78l(B\" buffer) $B$H$$$&7A<0$N%j%9%H!#(B") (defvar skk-minibuffer-origin-mode nil "$BF~NO%b!<%I$rI=$o$9%7%s%\%k!#(B $BM-8z$JCM$O!"(B`hiragana', `katakana', `abbrev', `latin', `jisx0208-latin' $B$b$7$/$O(B nil $B$N$$$:$l$+!#(B") (defvar skk-menu nil) (defvar skk-icon nil "SKK $B%"%$%3%s$N2hA|%U%!%$%k(B skk.xpm $B$N%Q%9!#(B") (put 'skk-icon 'risky-local-variable t) (skk-deflocalvar skk-modeline-input-mode nil) (put 'skk-modeline-input-mode 'risky-local-variable t) (defvar skk-indicator-alist nil) (defvar skk-buffer-undo-list nil) (defvar skk-inline-overlays nil) (defvar skk-latin-mode-map nil "*$B%"%9%-!<%b!<%I$N%-!<%^%C%W!#(B") (defvar skk-j-mode-map nil "*$B$+$J%b!<%I$N%-!<%^%C%W!#(B") (defvar skk-jisx0208-latin-mode-map nil "*$BA41Q%b!<%I$N%-!<%^%C%W!#(B") (defvar skk-abbrev-mode-map nil "*SKK abbrev $B%b!<%I$N%-!<%^%C%W!#(B") (defvar skk-henkan-in-minibuff-nest-level nil) (defvar skk-menu-items ;; SKK $B%a%K%e!<$NDj5A!#(B '("SKK" ("Convert Region and Echo" ("Gyakubiki" ["to Hiragana" skk-gyakubiki-message skk-use-kakasi] ["to Hiragana, All Candidates" (call-interactively (lambda (start end) (interactive "r") (skk-gyakubiki-message start end 'all-candidates))) skk-use-kakasi] ["to Katakana" skk-gyakubiki-katakana-message skk-use-kakasi] ["to Katakana, All Candidates" (call-interactively (lambda (start end) (interactive "r") (skk-gyakubiki-katakana-message start end 'all-candidates))) skk-use-kakasi]) ("Hurigana" ["to Hiragana" skk-hurigana-message skk-use-kakasi] ["to Hiragana, All Candidates" (call-interactively (lambda (start end) (interactive "r") (skk-hurigana-message start end 'all-candidates))) skk-use-kakasi] ["to Katakana" skk-hurigana-katakana-message skk-use-kakasi] ["to Katakana, All Candidates" (call-interactively (lambda (start end) (interactive "r") (skk-hurigana-katakana-message start end 'all-candidates))) skk-use-kakasi])) ("Convert Region and Replace" ("Gyakubiki" ["to Hiragana" skk-gyakubiki-region skk-use-kakasi] ["to Hiragana, All Candidates" (call-interactively (lambda (start end) (interactive "r") (skk-gyakubiki-region start end 'all-candidates))) skk-use-kakasi] ["to Katakana" skk-gyakubiki-katakana-region skk-use-kakasi] ["to Katakana, All Candidates" (call-interactively (lambda (start end) (interactive "r") (skk-gyakubiki-katakana-region start end 'all-candidates))) skk-use-kakasi]) ("Hurigana" ["to Hiragana" skk-hurigana-region skk-use-kakasi] ["to Hiragana, All Candidates" (call-interactively (lambda (start end) (interactive "r") (skk-hurigana-region start end 'all-candidates))) skk-use-kakasi] ["to Katakana" skk-hurigana-katakana-region skk-use-kakasi] ["to Katakana, All Candidates" (call-interactively (lambda (start end) (interactive "r") (skk-hurigana-katakana-region start end 'all-candidates))) skk-use-kakasi]) ["Hiragana to Katakana" skk-katakana-region t] ["Katakana to Hiragana" skk-hiragana-region t] ["Ascii to Zenkaku" skk-jisx0208-latin-region t] ["Zenkaku to Ascii" skk-latin-region t] ["Kana and Zenkaku to Romaji" skk-romaji-region skk-use-kakasi]) ["Count Jisyo Candidates" skk-count-jisyo-candidates t] ["Save Jisyo" skk-save-jisyo t] ["Undo Kakutei" skk-undo-kakutei t] ["Restart SKK" skk-restart t] ["Version" (message "%s" (skk-version)) t]) "Menu used in SKK mode.") (defvar skk-quit-commands '(keyboard-quit abort-recursive-edit skk-kanagaki-bs skk-kanagaki-esc)) ;; ---- buffer local variables ;; <$B%U%i%0N`(B> ;;(skk-deflocalvar skk-current-henkan-data ;; '(;; global variables ;; ;; $B%P%C%U%!%m!<%+%kJQ?t$N%G%U%)%k%HCM$r@_Dj$9$k$H!"$3$l$rD>@\=q49$($7$?(B ;; ;; $B$H$-$KB>$N%P%C%U%!$+$i8+$($kCM$bJQ$o$C$F$7$^$&!#(Bglobal $B$J%U%i%0$O$3$l(B ;; ;; $B$rMxMQ$7$F%G%U%)%k%HCM$rM?$($F$*$/!#(B ;; ;; Emacs $B$r5/F08e4{$K(B skk-mode $B$r5/F0$7$?$3$H$r<($9(B ;; (invoked . nil) ;; ;; skk-isearch $B4X?t$r%3!<%k$9$k$?$a$N%U%i%0(B ;; (isearch-message . nil) ;; ;; $BJQ498uJd$r3NDj$7$?%+%&%s%H$rJ];}$9$kJQ?t(B ;; (kakutei-count . 0) ;; ;;$BF~NO%b!<%I$rI=$o$9%7%s%\%k(B ;; (minibuffer-origin-mode . nil) ;; ;; $B<-=qEPO?$7$?%+%&%s%H$rJ];}$9$kJQ?t(B ;; (touroku-count . 0) ;; ;; $B<-=q$r99?7$7$?2s?t(B ;; (update-jisyo-count . 0) ;; ;; buffer-local variables. ;; ;; `skk-search-prog-list' $B$N8=:_$NCM$rJ]B8$9$k%j%9%H(B ;; ;; (current-search-prog-list . nil) ;; ;; $B%_%K%P%C%U%!$G8uJd$rL>ItJ,(B ;; ;; (henkan-okurigana . nil) ;; ;; $B"&%b!<%I(B ($BJQ49BP>]$NJ8;zNs7hDj$N$?$a$N%b!<%I(B) $B$G$"$k$3$H$r<($9(B ;; ;; (henkan-on . nil) ;; ;; $BJQ493+;O%]%$%s%H$r<($9%^!<%+!<(B ;; ;; (henkan-start-point . nil) ;; ;; $B3NDj$7$FNI$$8uJd$r8+$D$1$?>uBV$G$"$k$3$H$r;X$9(B ;; ;; (kakutei-flag . nil) ;; ;; $B$+$JJ8;z$N3+;O%]%$%s%H$r<($9%^!<%+!<(B ;; ;; (kana-start-point . nil) ;; ;; $BF~NO%b!<%I$,%+%J%b!<%I$G$"$k$3$H$r<($9(B ;; ;; (katakana . nil) ;; ;; $B<-=q$NAw$jM-$j%(%s%H%j$N=*N;E@$r<($9%P%C%U%!%]%$%s%H(B ;; ;; (okuri-ari-max . nil) ;; ;; $B<-=q$NAw$jM-$j%(%s%H%j$N3+;OE@$r<($9%P%C%U%!%]%$%s%H(B ;; ;; (okuri-ari-min . nil) ;; ;; $BJQ49$9$Y$-8l$NAw$j2>L>$NItJ,$N%W%l%U%#%C%/%9(B ;; ;; (okuri-char . nil) ;; ;; `skk-henkan-list' $B$N%$%s%G%/%9$G<+F0Aw$j=hM}!"$b$7$/$O%5JQ8!:w$G(B ;; ;; $B8!:w$7$?:G8e$N8uJd$r;X$9$b$N(B ;; ;; (okuri-index-max . -1) ;; ;; `skk-henkan-list' $B$N%$%s%G%/%9$G<+F0Aw$j=hM}!"$b$7$/$O%5JQ8!:w$G(B ;; ;; $B8!:w$7$?:G=i$N8uJd$r;X$9$b$N(B ;; ;; (okuri-index-min . -1) ;; ;; $B<-=q$NAw$j$J$7%(%s%H%j$N3+;OE@$r<($9%P%C%U%!%]%$%s%H(B ;; ;; (okuri-nasi-min . nil) ;; ;; $BAw$j2>L>ItJ,$,F~NOCf$G$"$k$3$H$r<($9(B ;; ;;(okurigana . nil) ;; ;; $BAw$j2>L>$N3+;O%]%$%s%H$r<($9%^!<%+!<(B ;; ;; (okurigana-start-point . nil) ;; ;; $BF~NO$9$k$+$J$r7hDj$9$k$?$a$N%W%l%U%#%C%/%9(B ;; ;; (prefix . "") ;; ;; $B$3$NJQ?t$KJ];}$5$l$k%]%$%s%H$,8=:_$N%]%$%s%H$H0[$J$k>l9g!"(B ;; ;; `skk-with-point-move' $B$,;H$o$l$F$$$J$$%3%^%s%I$rF0:n$5$;$k$H(B ;; ;; `skk-after-point-move' $B$,:nF0$9$k(B ;; ;; (previous-point . nil) ;; ;; `skk-insert' $B$b$7$/$O(B `skk-jisx0208-latin-insert' $B$GO"B3F~NO$7$?(B ;; ;; $BJ8;z?t$rI=$o$9%+%&%s%?!<(B ;; ;; (self-insert-non-undo-count . 1))) (skk-deflocalvar skk-mode nil "\ Non-nil $B$G$"$l$P!"%+%l%s%H%P%C%U%!$G8=:_(B `skk-mode' $B$r5/F0$7$F$$$k$3$H$r<($9!#(B") (skk-deflocalvar skk-latin-mode nil "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,%"%9%-!<%b!<%I$G$"$k$3$H$r<($9!#(B") (skk-deflocalvar skk-j-mode nil "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,$+$J!&%+%J%b!<%I$G$"$k$3$H$r<($9!#(B") (skk-deflocalvar skk-katakana nil "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,%+%J%b!<%I$G$"$k$3$H$r<($9!#(B \"(and (not skk-katakana) skk-j-mode)\" $B$,(B t $B$G$"$l$P!"$+$J%b!<%I$G$"$k$3$H$r(B $B<($9!#(B") (skk-deflocalvar skk-jisx0208-latin-mode nil "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,A41Q%b!<%I$G$"$k$3$H$r<($9!#(B") (skk-deflocalvar skk-abbrev-mode nil "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,(B SKK abbrev $B%b!<%I$G$"$k$3$H$r<($9!#(B") (skk-deflocalvar skk-okurigana nil "Non-nil $B$G$"$l$P!"Aw$j2>L>ItJ,$,F~NOCf$G$"$k$3$H$r<($9!#(B") (skk-deflocalvar skk-henkan-mode nil "$BJQ49%b!<%I$r<($9!#(B `on' $B$G$"$l$P!""&%b!<%I!#(B `active' $B$G$"$l$P!""'%b!<%I!#(B `nil' $B$G$"$l$P!"3NDjF~NO%b!<%I!#(B") (skk-deflocalvar skk-kakutei-flag nil "Non-nil $B$J$i3NDj$7$FNI$$8uJd$r8+$D$1$?>uBV$G$"$k$3$H$r;X$9!#(B") (skk-deflocalvar skk-kakutei-henkan-flag nil "Non-nil $B$J$i3NDjJQ49$9$k;v$r;X$9!#(B `skk-search-kakutei-jisyo-file' $B$d!"%f!<%6<+:n$N3NDjJQ49MQ%W%m%0%i%`$O(B $B$3$NJQ?t$r%;%C%H$9$k!#(B $B$3$NJQ?t$,(B Non-nil $B$K%;%C%H$5$l$F$b!"JQ49$7$F:G=i$KF@$i$l$?8uJd$G$J$1$l$P(B $B3NDjJQ49$5$l$J$$$3$H$KCm0U!#(B") (skk-deflocalvar skk-exit-show-candidates nil "$B%_%K%P%C%U%!$G8uJd$rH$5$l$k!#(B") ;; <$B%-!<%^%C%W4XO"(B> (skk-deflocalvar skk-current-rule-tree nil "$B%m!<%^;z(B -> $B$+$JJQ49$N>uBVA+0\5,B'$rI=$o$9%D%j!<$N8=;~E@$N>uBV!#(B $B%m!<%^;zF~NO$N=i4|$G$O(B `skk-rule-tree' $B$HF10l$N>uBV$G!"J8;zF~NO$,?J$`$K(B $B$D$l!"LZ$r$?$I$C$F$f$/>uBV$NA+0\$rI=$9!#(B") ;; <$B<-=q4XO"$NJQ?t(B> (skk-deflocalvar skk-okuri-ari-min nil "SKK $B<-=q$NAw$jM-$j%(%s%H%j$N3+;OE@$r<($9%P%C%U%!%]%$%s%H!#(B") (skk-deflocalvar skk-okuri-ari-max nil "SKK $B<-=q$NAw$jM-$j%(%s%H%j$N=*N;E@$r<($9%P%C%U%!%]%$%s%H!#(B `skk-jisyo' $B$N%P%C%U%!$G$O<-=q$N99?7$NI,MW$,$"$k$?$a$K%^!<%+!<$,BeF~$5$l$k!#(B") (skk-deflocalvar skk-okuri-nasi-min nil "SKK $B<-=q$NAw$j$J$7%(%s%H%j$N3+;OE@$r<($9%P%C%U%!%]%$%s%H!#(B `skk-jisyo' $B$N%P%C%U%!$G$O<-=q$N99?7$NI,MW$,$"$k$?$a$K%^!<%+!<$,BeF~$5$l$k!#(B") ;; <$B$=$NB>(B> (skk-deflocalvar skk-mode-line nil "SKK $B$N%b!<%I$r<($9%b!<%I%i%$%s$NJ8;zNs!#(B `skk-mode-string', `skk-hiragana-mode-string', `skk-katakana-mode-string', `skk-jisx0208-latin-mode-string' $B$N$$$:$l$+$,BeF~$5$l$k!#(B") (skk-deflocalvar skk-previous-point nil "`skk-with-point-move' $B4XO"JQ?t!#(B $B$3$NJQ?t$KJ];}$5$l$k%]%$%s%H$,8=:_$N%]%$%s%H$H0[$J$k>l9g!"(B`skk-with-point-move' $B$,;H$o$l$F$$$J$$%3%^%s%I$rF0:n$5$;$k$H!"(B`skk-after-point-move' $B$,:nF0$9$k!#(B") (skk-deflocalvar skk-prefix "" "$BF~NO$9$k$+$J$r7hDj$9$k$?$a$N%W%l%U%#%C%/%9!#(B") (defface skk-prefix-hiragana-face '((((class color) (type tty)) (:foreground "red")) (((class color) (background light)) (:foreground "coral4")) (((class color) (background dark)) (:foreground "pink")) (((class grayscale)) (:underline t))) "*$B$+$J%b!<%I$N%m!<%^;z%W%l%U%#%C%/%9$N(B face $BB0@-!#(B" :group 'skk-visual) (defface skk-prefix-katakana-face '((((class color) (type tty)) (:foreground "green")) (((class color) (background light)) (:foreground "forestgreen")) (((class color) (background dark)) (:foreground "green")) (((class grayscale)) (:underline t))) "*$B%+%J%b!<%I$N%m!<%^;z%W%l%U%#%C%/%9$N(B face $BB0@-!#(B" :group 'skk-visual) (defface skk-prefix-jisx0201-face '((((class color) (type tty)) (:foreground "blue")) (((class color) (background light)) (:foreground "blueviolet")) (((class color) (background dark)) (:foreground "thistle")) (((class grayscale)) (:underline t))) "*JISX0201 $B%b!<%I$N%m!<%^;z%W%l%U%#%C%/%9$N(B face $BB0@-!#(B" :group 'skk-visual) (skk-deflocalvar skk-prefix-overlay nil "`skk-prefix' $B$rI=<($9$k$?$a$K;HMQ$5$l$k(B overlay$B!#(B `skk-echo' $B$NCM$,(B non-nil $B$N$H$-$K;HMQ$5$l$k!#(B") (skk-deflocalvar skk-henkan-start-point nil "$BJQ493+;O%]%$%s%H$r<($9%^!<%+!L>$N3+;O%]%$%s%H$r<($9%^!<%+!l9g$K$O!"(B\"$B$o$i(Bu\" $B$N$h$&$K!"4A;zItJ,$N(B $BFI$_$,$J(B + $BAw$j2>L>$N:G=i$NJ8;z$N%m!<%^;z$N%W%l%U%#%C%/%9$,BeF~$5$l$k!#(B") (skk-deflocalvar skk-okuri-char nil "$BJQ49$9$Y$-8l$NAw$j2>L>$NItJ,$N%W%l%U%#%C%/%9!#(B $BNc$($P!"(B\"$B$*$/(B*$B$j(B\" $B$rJQ49$9$k$H$-$O!"(B`skk-okuri-char' $B$O(B \"r\"$B!#(B `skk-okuri-char' $B$,(B non-nil $B$G$"$l$P!"Aw$j$"$j$NJQ49$G$"$k$3$H$r<($9!#(B") (skk-deflocalvar skk-henkan-okurigana nil "$B8=:_$NJQ49$NAw$j2>L>ItJ,!#(B $BNc$($P!"(B\"$B"&$&$^$l(B*$B$k(B\" $B$rJQ49$9$l$P!"(B`skk-henkan-okurigana' $B$K$O(B \"$B$k(B\" $B$,BeF~(B $B$5$l$k!#(B") (skk-deflocalvar skk-last-kakutei-henkan-key nil "$B3NDj<-=q$K$h$j:G8e$K3NDj$7$?$H$-$N8+=P$78l!#(B $B3NDj<-=q$K$h$k3NDj$ND>8e$K(B x $B%-!<$r2!$9$H3NDj$,%"%s%I%%$5$l$F!"3NDjA0$N>uBV$G(B $B$3$N8+=P$78l$,%+%l%s%H%P%C%U%!$KA^F~$5$l$k!#(B") (skk-deflocalvar skk-henkan-list nil "$BJQ497k2L$N8uJd$N%j%9%H!#(B $BNc$($P!"(B\"$B"&$J(B*$B$/(B\" $B$H$$$&JQ49$9$l$P!"(B`skk-henkan-list' $B$O(B \(\"$BLD(B\" \"$B5c(B\" \"$BL5(B\" \"$BK4(B\") $B$N$h$&$K$J$k!#(B") (skk-deflocalvar skk-henkan-count -1 "`skk-henkan-list' $B$N%j%9%H$N%$%s%G%/%9$G8=:_$N8uJd$r:9$9$b$N!#(B") (skk-deflocalvar skk-self-insert-non-undo-count 1 "$BO"B3F~NO$7$?J8;z?t$rI=$o$9%+%&%s%?!]$H$J$k!#$3$NF0:n$r%(%_%e%l!<%H$9$k$?$a$N(B $B%+%&%s%?!uBV!#(B") (skk-deflocalvar skk-undo-kakutei-previous-point nil "$B3NDj%"%s%I%%D>A0$N%]%$%s%H$r<($9%^!<%+!]$NJQ497k2L$ND9$5!#(B") (skk-deflocalvar skk-henkan-overlay nil "$B8uJd$rI=<($9$k$H$-$K;HMQ$9$k(B Overlay$B!#(B") (skk-deflocalvar skk-henkan-in-minibuff-flag nil "$B%_%K%P%C%U%!$G<-=qEPO?$r9T$C$?$H$-$K$3$N%U%i%0$,N)$D!#(B `skk-remove-common' $B$G;2>H$5$l$k!#(B") (skk-deflocalvar skk-okuri-index-min -1 "`skk-henkan-list' $B$N%$%s%G%/%9$rA^$9%]%$%s%?$N$R$H$D!#(B $B<+F0Aw$j=hM}$G8!:w$7$?:G=i$N8uJd$r;X$9!#(B") (skk-deflocalvar skk-okuri-index-max -1 "`skk-henkan-list' $B$N%$%s%G%/%9$rA^$9%]%$%s%?$N$R$H$D!#(B $B<+F0Aw$j=hM}$G8!:w$7$?:G8e$N8uJd$r;X$9!#(B") (skk-deflocalvar skk-last-buffer-undo-list nil "$B"&%b!<%I$KF~$kD>A0$N(B `buffer-undo-list' $B$rB`Hr$7$F$*$/JQ?t!#(B") (skk-deflocalvar skk-after-prefix nil "t $B$G$"$l$P!"@\F,<-F~NO8e$N>uBV$K$"$k$3$H$rI=$9!#(B $B@\F,<-F~NO3+;O;~$K(B t $B$K%;%C%H$5$l!"B3$/8l$N3NDj8e$K(B nil $B$K%;%C%H$5$l$k!#(B") ;; skk-act.el related. (defcustom skk-use-act nil "*Non-nil $B$G$"$l$P3HD%%m!<%^;zF~NO(B ACT $B$rMxMQ$9$k!#(B" :type 'boolean :group 'skk-act) (defcustom skk-act-use-normal-y nil "*Non-nil $B$G$"$l$P(B \"y\" $B$r;H$C$?Y92;$NF~NO$rM-8z$K$9$k(B." :type 'boolean :group 'skk-act) (defcustom skk-act-load-hook nil "*skk-act $B$r(B load $B$7$?8e$Kl9g$O!"%-!<%\!<%I$N%?%$%W$N0c$$$r5[<}$9$k3dEv$F$r9T$$$^$;$s!#(B" :type '(radio (const :tag "$BF|K\8l(B 106 $B%-!<%\!<%I(B" jp106) (const :tag "NEC PC-98 $B%-!<%\!<%I(B" jp-pc98) (const :tag "$B1Q8l%-!<%\!<%I(B" us101) (const :tag "$B%-!<%\!<%I0MB8=hM}$rL58z$K$9$k(B" nil)) :group 'skk-azik) (defcustom skk-azik-load-hook nil "*skk-azik $B$r(B load $B$7$?8e$Ko$KI=<((B" t) (const :tag "$B8uJd0lMw$G$OHsI=<((B" (not list)) (const :tag "$B%_%K%P%C%U%!$G$OHsI=<((B" (not minibuf)) (const :tag "$B8uJd0lMw$H%_%K%P%C%U%!$G$OHsI=<((B" (not list minibuf)) (const :tag "$BHsI=<((B" nil)) :group 'skk-basic :group 'skk-annotation) (defcustom skk-annotation-delay 1.0 "*$B%"%N%F!<%7%g%s$rI=<($9$k$^$G$NCY1d!#C10L$OIC!#(B" :type 'number :group 'skk-annotation) (defcustom skk-annotation-loop-interval 0.1 "*$B%"%N%F!<%7%g%s$rI=<(Cf$N%W%m%;%9BT$A;~4V(B ($BIC(B)$B!#(B $B9bB.$J4D6-$G$O>.$5$a$K@_Dj$9$k$H%l%9%]%s%9$,2wE,$K$J$k!#(B $BDcB.$J4D6-$G$OBg$-$a$K@_Dj$9$k$HF0:n$,2~A1$5$l$&$k!#(B" :type 'number :group 'skk-annotation) (defcustom skk-annotation-toggle-display-char ?^ "*$B8uJd0lMw$rI=<(Cf$K%"%N%F!<%7%g%sI=<($r@Z$jBX$($k%-!<%-%c%i%/%?!#(B" :type 'character :group 'skk-annotation) (defcustom skk-annotation-copy-key "\C-w" "*$B%"%N%F!<%7%g%s$r%3%T!<$9$k%-!l9g$O(B $BJQ?t(B `interprogram-cut-function' $B$r@_Dj$9$k!#(B" :type (if (get 'key-sequence 'widget-type) 'key-sequence 'sexp) :group 'skk-annotation) (defcustom skk-annotation-browse-key "\C-o" "*$B%"%N%F!<%7%g%s$r(B URL $B$H8+Pv$7$F%V%i%&%:$9$k%-!]$H$9$kJ8;zNs$r0z?t$K$7$F(B `funcall' $B$5$l!"La$jCM(B $B$,(B non-nil $B$G$"$l$P%"%N%F!<%7%g%s$rI=<($9$k!#(B $B8uJd0lMw;~$K$O8F$P$l$J$$!#(B $B%"%N%F!<%7%g%sI=<($NH=CG$O(B `skk-treat-candidate-appearance-function' $B$G$b(B $Bl9g!"(Bpython $B$r(B inferior process $B$H$7$F5/F0$9$k!#(B $B$3$N@_Dj$O(B `skk-annotation-lookup-dict' $B$h$jM%@h$5$l$k!#(B Max OS X $B0J30$N4D6-$G$O5!G=$7$J$$!#(B $B8uJd0lMw$G$b$3$N5!G=$r;H$$$?$$>l9g$O(B `always' $B$K@_Dj$9$k$3$H$Ge=q$-$7$F$7(B $B$^$&$?$a!">e5io$NJQ49;~$K<-=q$r;2>H$9$k(B" t) (const :tag "$B>e5-$K2C$(8uJd0lMw$G$b;2>H$9$k(B" always) (const :tag "$BMxMQ$7$J$$(B" nil)) :group 'skk-annotation) (defcustom skk-annotation-python-program (executable-find "python") "*DictionaryServices $B$N$?$a$K5/F0$9$k(B python $B$N%U%!%$%kL>!#(B" :type '(radio (file) (const nil)) :group 'skk-annotation) (defcustom skk-annotation-lookup-lookup nil "*Non-nil $B$G$"$l$P(B elisp `lookup' $B$+$iJQ498uJd$N0UL#$rl9g$O(B `always' $B$K@_Dj$9$k$3$H$Ge=q$-$7(B $B$F$7$^$&$?$a!">e5io$NJQ49;~$K(B lookup $B$r;2>H$9$k(B" t) (const :tag "$B>e5-$K2C$(8uJd0lMw$G$b;2>H$9$k(B" always) (const :tag "$BMxMQ$7$J$$(B" nil)) :group 'skk-annotation :group 'skk-lookup) (defcustom skk-annotation-lookup-dict nil "*Non-nil $B$G$"$l$P!"30It%W%m%0%i%`$rFI$s$GJQ498uJd$N0UL#$rI=<($9$k!#(B $B30It%W%m%0%i%`$O(B `skk-annotation-dict-program' $B$G;XDj$9$k!#(B" :type 'boolean :group 'skk-annotation) (defcustom skk-annotation-dict-program (cond ((eq system-type 'darwin) skk-annotation-python-program) (t nil)) "*$BJQ498uJd$N0UL#$rI=<($9$k$?$a$N30It%W%m%0%i%`$N%U%!%$%kL>!#(B" :type '(radio (file) (const nil)) :group 'skk-annotation) (defcustom skk-annotation-dict-program-arguments (cond ((eq system-type 'darwin) '("-c" "import sys, DictionaryServices; word = sys.argv[1].decode(\"utf-8\"); print DictionaryServices.DCSCopyTextDefinition(None, word, (0, len(word))).encode(\"utf-8\")")) (t nil)) "*$BJQ498uJd$N0UL#$rI=<($9$k$?$a$N30It%W%m%0%i%`$N0z?t$N%j%9%H!#(B" :type '(radio (repeat string) (const nil)) :group 'skk-annotation) (defcustom skk-annotation-dict-coding-system 'utf-8 "*$B30It%W%m%0%i%`$+$i%"%N%F!<%7%g%spJs$N%=!<%9$r;XDj$9$k%*%W%7%g%s!#(B $BI8=`$G$O(B Wiktionary, Wikipedia ($BF|K\8lHG!"1Q8lHG(B) $B$r;2>H$9$k!#(B Apple OS X $B$G$OI8=`$N!V<-=q!W$rMxMQ$G$-$k!#(B" :type '(radio (repeat :tag "\ $BpJs$rMxMQ$7$J$$(B" nil)) :group 'skk-annotation) (make-obsolete-variable 'skk-annotation-wikipedia-sources 'skk-annotation-other-sources "DDSKK 14.4") (defcustom skk-annotation-wikipedia-key "\C-i" "*$B%"%N%F!<%7%g%s$H$7$F(B Wikipedia $B$NFbMF$rI=<($9$k%-!uBV$KLa$9!#(B") (defvar skk-annotation-target-data nil "annotation $B$rIU$1$i$l$k8uJd$K4X$9$k%G!<%?!#(B") (defvar skk-annotation-wikipedia-message nil "SKK Wikipedia $BMxMQJ}K!$r<($9%a%C%;!<%8(B ($B<+F0@_Dj(B)$B!#(B") (defvar skkannot-cached-srcs nil) (defvar skk-annotation-message nil "SKK Annotation $BMxMQJ}K!$r<($9%a%C%;!<%8(B ($B<+F0@_Dj(B)$B!#(B") (defvar skkannot-remaining-delay 0) (defvar skkannot-buffer-origin nil) (defvar skkannot-py-buffer nil) (defvar skkannot-url-installed-p (if (featurep 'emacs) t 'untested)) (defconst skkannot-py-none-regexp "^\\(Traceback\\|AttributeError\\|None\\)") (defconst skkannot-DictServ-cmd-format-str "word = u\"%s\"; \ print \" %s(word)s in DictionaryServices\" %s {'word': word}; \ print DictionaryServices.DCSCopyTextDefinition(None, word, (0, len(word)))") ;; XXX $B$^$@IT40A4(B (defconst skkannot-en-wiktionary-lang-regexp "\

          .*\ \\(\\)?\ \\(Aari\\|Abanyom\\|Abaza\\|Abenaki\\|Abkhaz\\|Acehnese\\|Acholi\\|Acholi\ \\|Achumawa\\|Adangme\\|Adele\\|Adnyamathanha\\|Adyghe\\|Adzera\\|Afar\ \\|Afrikaans\\|Aghul\\|Ainu\\|Akan\\|Akawaio\\|Akkadian\\|Aklanon\\|Alabama\ \\|Albanian\\|Aleut\\|Algonquin\\|Alsatian\\|Amaimon\\|Amanab\\|Ambai\ \\|Amharic\\|Amoy\\|Amuzgo\\|Ankave\\|Ansus\\|Apala.ANm\\|\\(Egyptian \\)?Arabic\ \\|Aragonese\\|Aramaic\\|Arapaho\\|Arawak\\|Armenian\\|Aromanian\\|Assamese\ \\|Asturian\\|'Auhelawa\\|Avar\\|Avestan\\|Awabakal\\|Aymara\\|Azeri\ \\|Balinese\\|Balti\\|Bambara\\|Bandjalang\\|Baruga\\|Bashkir\\|Basque\ \\|Baure\ \\|Belarusian\\|Bengali\\|Berbice Creole Dutch\\|Betawi\\|Bhojpuri\\|Biak\ \\|Bikol\\|Bislama\\|Blackfoot\\|BokmNel\\|Bosnian\\|Breton\ \\|Broome Pearling Lugger Pidgin\\|Bube\\|Bulgarian\\|Burmese\ \\|Cantonese\\|Capeverdean Crioulo\\|Catalan\\|Catawba\\|Cebuano\ \\|Central Tarahumara\\|Ch'orti'\\|Chamorro\\|Chechen\\|Cherokee\\|Cheyenne\ \\|Chichewa\\|Chickasaw\\|Chinese Pidgin English\\|Chinese\\|Chinook Jargon\ \\|Chiricahua\\|Choctaw\\|TumbalNa Chol\\|Chukchee\\|Chuvash\ \\|Classical Nahuatl\\|CoatlNan Mixe\\|Comorian\\|Coptic\\|Cornish\\|Corsican\ \\|Cree\\|Creek\\|Crimean Tatar\\|Croatian\\|Czech\ \\|Dacian\\|Dadibi\\|Northern Dagara\\\Dalmatian\\|Danish\\|Dargwa\ \\|Darkinjung\\|Darling\\|Dharuk\\|Dhivehi\\|Dhuwal\\|Dieri\\|Dusner\\|Dutch\ \\|Dyirbal\\|Dzongkha\ \\|Egyptian\\|English\\|Erzya\\|Esan\\|Esperanto\\|Estonian\\|Etruscan\\|Ewe\ \\|Fang\\|Faroese\\|Fijian\\|Filipino\\|Finnish\\|Fon\\|French\\|Frisian\ \\|Friulian\\|Fula\ \\|Ga\\|Gabi-Gabi\\|Gagauz\\|Galician\\|Gallo\\|Gamilaraay\\|Ge'ez\\|Georgian\ \\|\\(Middle High\\)?German\\|Gilbertese\\|Golin\\|Gooniyandi\\|Gothic\ \\|\\(Ancient \\|Mycenaean \\)?Greek\\|Greenlandic\\|GuaranNm\\|MbyNa GuaranNm\ \\|Gujarati\\|Guugu Yimidhirr\ \\|Hausa\\|Hawaiian\\|Hebrew\\|Hindi\\|Hittite\\|Hmong\\|Hopi\\|Hungarian\ \\|Icelandic\\|Ido\\|Igbo\\|Ilocano\\|Indoneian\\|Interlingua\\|Inuktitut\ \\|Irish\\|Italian\ \\|Japanese\\|Javanese\\|Jingpho\\|JNhrriais\ \\|Kabardian\\|Kabyle\\|KadiwNiu\\|Kannada\\|Kanuri\\|Kapingamarangi\\|Karelian\ \\|KaritiNbna\\|Kashmiri\\|Kashubian\\|Kaurna\\|Kazakh\\|Khmer\\|Kickapoo\ \\|Kinyarwanda\\|Kiput\\|Kirundi\\|Kokborok\\|Komi\\|Kongo\\|Korean\\|Kriol\ \\|Krisa\\|!Kung\\|Kurdish\\|Kurnai\\|Kwanyama\\|Kyrgyz\ \\|Ladino\\|Lak\\|Lakota\\|Laotian\\|Latin\\|Latvian\\|Lavukaleve\\|Lenape\ \\|Lezgi\\|Limburgish\\|Lingala\\|Lithuanian\\|Livonian\\|Lojban\ \\|Low Saxon\\|Lower Sorbian\\|Luganda\\|Luxembourgish\ \\|Maay\\|Macedonian\\|Makhuwa\\(-Meetto\\|-Shirima\\)?\\|Malagasy\\|Malay\ \\|Malayalam\\|Maliseet\\|Maltese\\|Manchu\\|Mandarin\\|Mandinka\\|Mangarevan\ \\|Mansi\\|Manx\\|Maori\\|Mapudungun\\|Marathi\\|Marau\\|Maroon\\|Marshallese\ \\|Martuthunira\\|Mati Ke\\|Mbabaram\\|Mende\\|Menominee\\|Meriam\\|Mesquakie\ \\|Mi'kmaq\\|Miami\ \\|Middle \\(Dutch\\|English\\|French\\|Korean\\|Norwegian\\|Scots\\)\ \\|Min Nan\\|Mirandese\\|Miskito\\|\\(Alcozauca \\|YosondNza \\)?Mixtec\ \\|Miyako\\|Mohegan\\|Mohican\\|Moldavian\\|Mongolian\\|Montauk\\|Munduapa\ \\|Munggui\\|Munsee\\|Murrinh-Patha\\|Mutsun\ \\|\\(Isthmus-Mecayapan \\)?Nahuatl\\|Nanticoke\\|Narragansett\\|Nauruan\ \\|Navajo\\|Ndonga\\|Neapolitan\\|Nepali\\|Nhanta\\|Niuean\\|Nootka\\|Norfuk\ \\|Norman\\|Norn\\|Northern Sami\\|Norwegian\\|Novial\\|Nynorsk\\|Nyunga\ \\|O'odham\\|Occitan\\|Ohlone\\|Ojibwe\ \\|Old \\(Church Slavonic\\|English\\|French\\|Frisian\\|High German\\|Irish\ \\|Norse\\|Prussian\\|Saxon\\|Slavonic\\)\\|Oriya\\|Oromo\ \\|Pali\\|Pangasinan\\|Panyjima\\|Papiamentu\\|Papuma\\|Pashto\ \\|Passamaquoddy\\|PaumarNm\\|Pennsylvania German\\|Penobscot\ \\|\\(Old \\)?Perian\\|Phoenician\ \\|PirahNc\\|Pitcairnese\\|Pitjantjatjara\\|Pitta-Pitta\\|Pochutec\\|Polish\ \\|Sayula Popoluca\\|Portuguese\\|Potawatomi\\|Powhatan\ \\|Proto-\\(Germanic\\|Indo-European\\|Uralic\\)\\|ProvenNga\\|Punjabi\ \\|Quechua\\|Quenya\ \\|Rarotongan\\|Reconstructed\\|Rohingya\\|Roman\\(i\\|ian\\|sch\\)\\|Rotokas\ \\|Rotuman\\|Russian\\|Rutul\ \\|Saanich\ \\|\\(Inari \\|Kildin \\|Lule \\|Northern \\|Pite \\|Skolt \\|Sourthern \ \\|Ter \\|Ume \\)?Sami\\|Samoan\\( Plantation Pidgin\\)?\\|Sanskrit\ \\|Sardinian\\|Scots\\|Scottish Gaelic\\|Serbian\\|Serbo-Croatian\\|Seri\ \\|Shabo\\|Shawnee\\|Shelta\\|Shona\\|Shoshoni\\|Shuar\\|Sicilian\\|Sindarin\ \\|Sindhi\\|Sinhalese\\|Slovak\\|Slovene\\|Somali\\|Upper Sorbian\\|Spanish\ \\|Sranan\\|Sumerian\\|Swahili\\|Swazi\\|Swedish\\|Syriac\ \\|Tabassaran\\|TAchelhit\\|Tagalog\\|Tahitian\\|Taimyr Pidgin Russian\\|Tajik\ \\|Tamasheq\\|Tamazight\\|Tamil\\|Tatar\\|Tausug\\|TaNmno\\|Telugu\\|Tetum\ \\|Thai\\|Tibetan\\|Tigrinya\\|Tiwi\\|Tocharian \\(A\\|B\\)\\|Tok Pisin\ \\|Tokelauan\\|Tongan\\|Torres Strait Creole\\|Translingual\\|Tsakhur\ \\|Tshiluba\\|Tswana\\|Tuamotuan\\|Tumbuka\\|Tupi\\|TupinambNa\\|Turkish\ \\|Turkmen\\|Tuvaluan\\|Tuvan\\|Twi\\|Tz'utujil\ \\|Ugaritic\\|Ukrainian\\|Umbundu\\|Unami\\|Unserdeutsch\\|Urdu\\|Uyghur\ \\|Uzbek\ \\|Vandalic\\|Venda\\|Veps\\|Vietnamese\\|VolapN|k\\|Votic\\|VNuro\ \\|Wageman\\|Walloon\\|Wampanoag\\|Wangaaybuwan-Ngiyambaa\\|Warlpiri\\|Welsh\ \\|Wembawemba\\|Western Apache\\|West Frisian\\|Wik-Mungkan\\|Wiradhuri\ \\|Woi\\|Woiwurrung\\|Wolof\\|Worimi\ \\|XavNante\\|Xhosa\\|!XNsNu\ \\|Yapese\\|Yiddish\\|Yidiny\\|Yindjibarndi\\|Yoruba\\|Yucatec\\|Yup'ik\ \\|\\(Yatzachi \\|Zoogocho \\|Isthmus \\)Zapotec\\|Zenga\\|Zhuang\ \\|Zulgo-Gemzek\\|Zulu\\|Zuni\\)\ \\(\\)?\

          " "en.wiktionary $B$K$*$$$F8@8l$rI=$9%X%C%@$N@55,I=8=(B") (defconst skkannot-en-wiktionary-part-of-speech-regexp "\ \ \\(\\)?\ \\(Article\\|Noun\\|Proper Noun\\|Adjective\\|Proper Adjective\ \\|Verb\\( form\\)?\\|Intransitive\\( verb\\)?\\|Transitive\\( verb\\)?\ \\|Adverb\ \\|Conjunction\\|Interjection\\|Numeral\\|Prefix\\|Suffix\\|Particle\ \\|Preposition\\|Contraction\\|Determiner\\|Demonstrative determiner\ \\|Interrogative determiner\\|Pronoun\\|Pronominal possessive adjective\ \\|Demonstrative pronoun\\|Demonstrative adjective\ \\|Quasi-Adjective\\|Proverb\\|Counter\\|Personal pronoun\ \\|Kanji\\|Hanja\\|Hanzi\ \\|Interrogative pronoun\\|Relative pronoun\\|Auxiliary verb\\( form\\)?\ \\|Indefinite article\\|Abbreviation\\|Initialism\\|Acronym\\|Symbol\ \\|\\(Han \\|Hiragana \\|Katakana \\)character\\|Phrase\\|Letter\\)\ \\(\\)?\ " "en.wiktionary $B$K$*$$$FIJ;l$rI=$9%X%C%@$N@55,I=8=(B") (defconst skkannot-ja-wiktionary-lang-regexp "\

          .*\ \\(\\)?\ \\(.+$B8l(B\\|$B%$%s%?!<%j%s%0%"(B\\|$B%(%9%Z%i%s%H(B\\|$B%5%s%9%/%j%C%H(B\\|$B%H%-%]%J(B\ \\|$B%H%/!&%T%8%s(B\\|$B5-9f(B\\|$B4A;z(B\\)\ \\(\\)?\ " "ja.wiktionary $B$K$*$$$F8@8l$rI=$9%X%C%@$N@55,I=8=(B") (defconst skkannot-ja-wiktionary-part-of-speech-regexp "\ \ \\(\\)?\ \\(\ \\(\\($B8GM-(B\\|\\($B?M>N(B\\|$B5?Ld(B\\)?$BBe(B\\)?$BL>(B\\|\\($B=u(B\\)?$BF0(B\\|$B7AMFF0(B?\\|\ $B@\B3(B\\|$BA0CV(B\\|$BI{(B\\|$B4'(B\\|$B4X78(B\\|$B4VEj(B\\|$B=u(B\\|$B?t(B\\|$BJ,(B\\|$BN`JL(B\\|$B46F0(B\\)\ $B;l(B.*\ \\|$B4A;z:.$8$jI=5-(B\\|$B0U5A(B\\|$BN@\<-(B\\|$BJ?2>L>(B\\|$BJR2>L>(B\\|$B0U5A(B\\|$B4A;z(B\\|$BOB8l$N4A;zI=5-(B\\)\ \\(\\)?\ " "ja.wiktionary $B$K$*$$$FIJ;l$rI=$9%X%C%@$N@55,I=8=(B") (skk-deflocalvar skk-annotation-mode nil "Non-nil $B$G$"$l$P!"(Bannotation $B%b!<%I$G$"$k$3$H$r<($9!#(B") ;;; skk-auto.el related. (defcustom skk-auto-okuri-process nil "*Non-nil $B$G$"$l$P!"Aw$j2>L>ItJ,$r<+F0G'<1$7$FJQ49$r9T$&!#(B $BNc$($P!"(B \"Uresii (\"UreSii\" $B$G$O$J$/(B) -> $B4r$7$$(B\" $B$N$h$&$KJQ49$5$l$k!#C"$7!"(B`skk-jisyo' ($B8D?M<-=q(B) $B$,!"(B \"$B$&$l(Bs /$B4r(B/[$B$7(B/$B4r(B/]/\" $B$N$h$&$J7A<0$K$J$C$F$$$k$3$H$,I,MW$G$"$k(B (SKK-JISYO.[SML] $B$O$3$N7A<0$KBP1~$7(B $B$F$$$J$$$N$G!"(B`skk-jisyo' $B$K$3$N%(%s%H%j$,$J$1$l$P$J$i$J$$(B)$B!#(B $B$3$N%*%W%7%g%sMxMQ;~$O!"(B`skk-process-okuri-early' $B$NCM$O(B nil $B$G$J$1$l$P(B $B$J$i$J$$!#(B" :type 'boolean :group 'skk-okurigana :group 'skk-auto) (defcustom skk-okuri-search-function 'skk-okuri-search-subr-original "*`skk-okuri-search' $B$G;HMQ$9$k4X?t!#(B" :type 'function :group 'skk-auto) (defcustom skk-auto-load-hook nil "*skk-auto.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" :type 'hook :group 'skk-auto) ;; skk-cdb.el related. (defcustom skk-cdb-large-jisyo nil "*$B8D?M<-=q$N8!:w$N8e$K8!:w$9$k(B CDB $B7A<0<-=q%U%!%$%kL>!#(B Non-nil $B$G$"$l$P!";XDj$5$l$?(B CDB $B7A<0<-=q$r(B Emacs $B$+$iD>@\MxMQ$7!"(B $B9bB.$J8!:w$r9T$&!#(B" :type `(radio (file :tag "$B<-=q%U%!%$%kL>(B" ,(cond ((featurep 'xemacs) (or (locate-data-file "SKK-JISYO.L.cdb") "")) ((fboundp 'locate-file) (or (locate-file "skk/SKK-JISYO.L.cdb" (list (expand-file-name "../../.." data-directory))) (locate-file "skk/SKK-JISYO.L.cdb" (list data-directory)) "")))) (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-cdb :group 'skk-dictionary) (defcustom skk-cdb-coding-system 'euc-jp "*$B8D?M<-=q$N8!:w$N8e$K8!:w$9$k(B CDB $B7A<0<-=q$N%3!<%G%#%s%0!&%7%9%F%`!#(B" :type 'coding-system :group 'skk-cdb :group 'skk-dictionary) ;;; skk-comp.el related. (defcustom skk-try-completion-char ?\011 ; TAB "*$B8+=P$78l$NJd40F0:n$r9T$&%-!<%-%c%i%/%?!#(B" :type 'character :group 'skk-comp) (defcustom skk-next-completion-char ?. "*$B8+=P$78l$NJd40F0:n$G!"e8B!#(B" :type 'integer :group 'skk-comp) (defcustom skk-comp-circulate nil "*$B8+=P$78l$rJd40$9$k:]$N!"8uJd$NI=<(=g$r@)8f$9$k!#(Bnon-nil $B$G$"$l$P!"(B $B:G8e$N8+=P$78l$,I=<($5$l$?>uBV$G99$KJd40$r9T$&$HF~NOJ8;zNs$KLa$k!#(B nil $B$G$"$l$P!":G8e$N8+=P$78l$,I=<($5$l$?>uBV$GDd;_$9$k!#(B" :type 'boolean :group 'skk-comp) (defcustom skk-comp-use-prefix nil "*$B8+=P$78l$rJd40$9$k:]$K%W%l%U%#%C%/%9(B(`skk-prefix')$B$b;H$&$+!#(B $BNc$($P!"(B\"$B"&$"(Bk\" $B$H$"$k>uBV$GJd40$r$7$?;~$K!"(Bnon-nil $B$G$"$l$P(B \"$B$"$5(B\" $B$OBP>]$H$J$i$:!"(B\"$B$"$+(B\", \"$B$"$-(B\" $B$J$I$K9J$i$l$k!#(B $B$7$+$7l9g$K$OM=$aI,MW$J$b$N$@$1@_Dj$7$F$*$/$3$H!#(B" :type '(repeat (cons string regexp)) :group 'skk-comp) (defcustom skk-comp-kana-list-filter-function (lambda (kana-list prefix) ;; "t" $B0J30$G(B "$B$C(B" $B$rJd40$7$J$$(B (unless (string= prefix "t") (setq kana-list (delete "$B$C(B" kana-list))) ;; "m" $B$G(B "$B$s(B" $B$rJd40$7$J$$(B (when (string= prefix "m") (setq kana-list (delete "$B$s(B" kana-list))) ;; "w" $B$G(B "$B$&(B" $B$rJd40$7$J$$(B (when (string= prefix "w") (setq kana-list (delete "$B$&(B" kana-list))) ;; "x" $B$G(B "$B$+(B", "$B$1(B" $B$rJd40$7$J$$(B ;; in skk-rom-kana-base-rule-list, "xka"$B"*(B"$B$+(B", "xke"$B"*(B"$B$1(B" (when (string= prefix "x") (setq kana-list (delete "$B$+(B" kana-list)) (setq kana-list (delete "$B$1(B" kana-list))) ;; $B$$$A$*$&%+%J%b!<%I$r9M$($F(B (when (string= prefix "v") (add-to-list 'kana-list "$B%t(B")) ;; $BJ?2>L>!&JR2>L>$N$_(B ($B5-9fN`$OITMW(B) (save-match-data (delq nil (mapcar (lambda (kana) (when (string-match "\\(\\cH\\|\\cK\\)" kana) kana)) kana-list)))) "*`skk-comp-prefix-regexp-alist' $B$K<+F0$GMWAG$rDI2C$9$k:]$KMxMQ$5$l$k4X?t!#(B `skk-rule-tree' $B$+$i%W%l%U%#%C%/%9$KBP1~$9$k(B \"$B$+$J(B\" $B$r=8$a$?8e!"(B $B$3$N4X?t$K$h$C$FD4@0$r9T$&!#(B" :type '(radio (function :tag "$B4X?t(B") (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-comp) (defcustom skk-completion-prog-list '((skk-comp-by-history) (skk-comp-from-jisyo skk-jisyo) (skk-look-completion)) "*$BJd404X?t!"Jd40BP>]$N<-=q$r7hDj$9$k$?$a$N%j%9%H!#(B $B%j%9%H$NMWAG$O!"(B`skk-comp-first' $B$,(B t $B$G$"$k;~$K(B $B?75,Jd408uJd72$N@8@.$r3+;O$7!"#12s$NI>2A$K$D$-#1$D$N8uJd$rJV$9(B S $B<0!#(B" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-1 nil "*$BJd40%W%m%0%i%`$N%j%9%H!#(B $B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B C-1 TAB $B$G;H$o$l$k!#(B" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-2 nil "*$BJd40%W%m%0%i%`$N%j%9%H!#(B $B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B C-2 TAB $B$G;H$o$l$k!#(B" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-3 nil "*$BJd40%W%m%0%i%`$N%j%9%H!#(B $B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B C-3 TAB $B$G;H$o$l$k!#(B" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-4 nil "*$BJd40%W%m%0%i%`$N%j%9%H!#(B $B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B C-4 TAB $B$G;H$o$l$k!#(B" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-5 nil "*$BJd40%W%m%0%i%`$N%j%9%H!#(B $B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B C-5 TAB $B$G;H$o$l$k!#(B" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-6 nil "*$BJd40%W%m%0%i%`$N%j%9%H!#(B $B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B C-6 TAB $B$G;H$o$l$k!#(B" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-7 nil "*$BJd40%W%m%0%i%`$N%j%9%H!#(B $B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B C-7 TAB $B$G;H$o$l$k!#(B" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-8 nil "*$BJd40%W%m%0%i%`$N%j%9%H!#(B $B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B C-8 TAB $B$G;H$o$l$k!#(B" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-9 nil "*$BJd40%W%m%0%i%`$N%j%9%H!#(B $B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B C-9 TAB $B$G;H$o$l$k!#(B" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-prog-list-0 nil "*$BJd40%W%m%0%i%`$N%j%9%H!#(B $B%j%9%H$NMWAG$O!"(B`skk-completion-prog-list' $B$HA4$/F1MM!#(B C-0 TAB $B$G;H$o$l$k!#(B" :type '(repeat (sexp)) :group 'skk-comp) (defcustom skk-completion-search-char ?~ "*`skk-completion-search' $B$rMxMQ$9$kJQ49$r;XDj$9$k%-!<%-%c%i%/%?!#(B" :type 'character :group 'skk-comp) (defcustom skk-smart-find-file-path load-path "*`smart-find' $B$K%U%!%$%kL>$rC5:w$5$;$k%Q%9!#(B $B$3$NCM$,;XDj$5$l$J$1$l$P!"(B`smart-find-file-path' $B$NCM$,Be$o$j$K;HMQ$5$l$k!#(B" :type '(repeat (directory)) :group 'skk-comp) (defcustom skk-smart-find-ignored-file-regexp "\ \\(\\.\\(elc\\|o\\(rig\\|ld\\)?\\|diff\\)\\|,v\\|~\\|/\\)$" "*`smart-find' $B$KL5;k$5$l$k%U%!%$%kL>$r;XDj$9$k@55,I=8=!#(B" :type 'regexp :group 'skk-comp) ;; ---- buffer local variables ;; $B6uJ8;zNs$KBP$7$F(B skk-comp-do $B$r8F$V$3$H$b$"$j$&$k$N$G!"(B"" $B$r(B nil $B$G$OBe(B ;; $BMQ$G$-$J$$!#(B (skk-deflocalvar skk-comp-key "" "$BJd40$9$Y$-8+=P$78l!#(B") ;; $B<-=qEPO?;~%_%K%P%C%U%!$GJd40$7$?>l9g!"85$N%P%C%U%!$KLa$C$?$H$-$K(B ;; skk-comp-key $B$NCM$,GK2u$5$l$F$$$J$$J}$,%Y%?!%j%9%H$r3JG<$9$k!#(B") (defvar skk-comp-lisp-symbols nil "$BJd40$5$l$?(B lisp symbol $B$N%j%9%H$r3JG<$9$k!#(B") ;;; skk-server-completion.el related. (defcustom skk-server-completion-search-char ?~ "*server completion $B$rMxMQ$7$?JQ49$r9T$&%-!<%-%c%i%/%?!#(B" :type 'character :group 'skk-server-completion) (defvar skk-server-completion-words nil "server completion $B$K$h$jF@$i$l$?8+=P$78l$N%j%9%H!#(B") (defvar skk-server-disable-completion nil "Non-nil $B$J$i(B server completion $B$N5!G=$rL58z$K$9$k!#(B server completion $B$,]$N%U%'%$%9!#(B" :group 'skk-dcomp) (defcustom skk-dcomp-activate nil "*Non-nil $B$G$"$l$P8+=P$78l$NF0E*Jd40$N5!G=$rM-8z$K$9$k!#(B $B$3$NJQ?t$NCM$,(B `eolp' $B$@$C$?>l9g!"%]%$%s%H$,9TKv$K$"$k;~$@$1Jd40$9$k!#(B" :type '(radio (const :tag "always on" t) (const :tag "only at the end of a line" eolp) (const :tag "off" nil) (sexp :tag "$BG$0U$N%k!<%k(B")) :group 'skk-dcomp) (defcustom skk-dcomp-face-priority 700 "*Overlay/extent priority of `skk-dcomp-face'." :type 'integer :group 'skk-dcomp) (defcustom skk-dcomp-keep-completion-keys nil ;; (delq ;; nil ;; (list ;; (car (rassoc (list nil 'skk-toggle-kana) ;; skk-rom-kana-rule-list)) ;; (car (rassoc (list nil 'skk-toggle-characters) ;; skk-rom-kana-rule-list)) ;; (car (rassoc (list nil 'skk-toggle-kana) ;; skk-rom-kana-base-rule-list)) ;; (car (rassoc (list nil 'skk-toggle-characters) ;; skk-rom-kana-base-rule-list)))) "*$BF0E*Jd40$5$l$?8+=P$78l$r>C$5$J$$%-!<$N%j%9%H!#(B $BDL>o$O8+=P$78l$NJd408e!"C$($F$7$^$&$,!"$3$N%j%9%H$K;XDj$5$l$?%-!<(B $BF~NO$,$"$C$?$H$-$OF0E*Jd40$5$l$?8+=P$78l$r>C$5$J$$!#(B" :type '(radio (repeat :tag "$B%j%9%H(B" (string :tag "$B%-!<(B($BJ8;z(B)")) (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-dcomp) (defcustom skk-dcomp-multiple-activate nil "*Non-nil $B$G$"$l$P!"F0E*Jd40$N8uJd$rJ#?tI=<($9$k!#(B $B4X?t$G$"$l$P!"$=$NI>2A7k2L$,(B non-nil $B$N;~$@$1F0E*Jd40$N8uJd$rJ#?tI=<($9$k!#(B $B$3$N5!G=$O(B XEmacs $B$G$OF0:n$7$J$$!#(B" :type '(radio (const :tag "always on" t) (const :tag "off" nil) (sexp :tag "$BG$0U$N%k!<%k(B")) :group 'skk-dcomp) (defcustom skk-dcomp-multiple-rows 7 "*$BF0E*Jd40$N8uJd$rJ#?tI=<($9$k>l9g$NI=<(?t!#(B" :type 'integer :group 'skk-dcomp) (defcustom skk-dcomp-multiple-keep-point-buffer-list (list (concat " *" (file-name-nondirectory skk-jisyo) "*")) "*$BJ#?tI=<($N0Y$KJd408uJd$r8!:w$9$k:]$K(B `point' $B$rJ];}$9$k%P%C%U%!$N%j%9%H!#(B $BF0E*Jd40$G8uJd$rJ#?tI=<($9$k:]$K8!:wBP>]%P%C%U%!(B $BFb$N(B `point' $B$rF0$+$7$F$7$^$&$HDL>o$NJd40$,@5>o$K5!G=$7$J$/$J$k!#(B $B$=$N$?$a!"J#?tI=<(MQ$N8!:w$,=*$o$C$?8e$G(B `point' $B$rLa$9$Y$-%P%C%U%!(B $B$r$3$N%j%9%H$K@_Dj$9$k!#(B $B6qBNE*$K$O(B `skk-comp-from-jisyo' $B$r;HMQ$7$F8uJd$r8!:w$9$k>l9g!"$=(B $B$NBP>]%P%C%U%!$O$3$N%j%9%H$K@_Dj$9$kI,MW$,$"$k!#(B" :type '(repeat string) :group 'skk-dcomp) (skk-deflocalvar skk-dcomp-start-point nil) (skk-deflocalvar skk-dcomp-end-point nil) (skk-deflocalvar skk-dcomp-extent nil) (skk-deflocalvar skk-dcomp-multiple-candidates nil) (skk-deflocalvar skk-dcomp-multiple-key "") (skk-deflocalvar skk-dcomp-multiple-prefix "") (skk-deflocalvar skk-dcomp-multiple-search-done nil) (skk-deflocalvar skk-dcomp-multiple-select-index -1) (skk-deflocalvar skk-dcomp-multiple-overlays nil) (defvar skk-dcomp-face 'skk-dcomp-face) ;;; skk-gadget.el related. (defcustom skk-gengo-alist '((reiwa "$BNaOB(B" "R") (heisei "$BJ?@.(B" "H") (showa "$B>$N1Q8lI=5-$H$=$NB>$NI=5-K!$NO"A[%j%9%H!#(B $B3F(B cons cell $B$N(B car $B$O(B Emacs $BI8=`4X?t(B `current-time-string' $B$,JV$97A<0!#(B cdr $B$OBP1~$9$kG$0U$N7A<0!#(B" :type '(repeat (list (string :tag "English") (string :tag "$BF|K\<0(B") (string :tag "Deutsch"))) :group 'skk-gadget) (defcustom skk-day-of-week-alist '(("Sun" "$BF|(B" "So") ("Mon" "$B7n(B" "Mo") ("Tue" "$B2P(B" "Di") ("Wed" "$B?e(B" "Mi") ("Thu" "$BLZ(B" "Do") ("Fri" "$B6b(B" "Fr") ("Sat" "$BEZ(B" "Sa")) "*$BMKF|$N1Q8lI=5-$H$=$NB>$NI=5-K!$NO"A[%j%9%H!#(B $B3F(B cons cell $B$N(B car $B$O(B Emacs $BI8=`4X?t(B `current-time-string' $B$,JV$97A<0!#(B cdr $B$OBP1~$9$kG$0U$N7A<0!#(B" :type '(repeat (list (string :tag "English") (string :tag "$BF|K\8l(B") (string :tag "Deutsch"))) :group 'skk-gadget) (defcustom skk-default-current-date-function (lambda (date-information format gengo and-time) (skk-default-current-date date-information nil skk-number-style gengo 0 0 0 and-time)) "*`skk-current-date' $B$G%3!<%k$5$l$k%G%U%)%k%H$N4X?t!#(B $B;~4V>pJs$r0z?t$KNqI=<($9$k!#(B nil $B$G$"$l$P!"859fI=<($9$k!#(B" :type 'boolean :group 'skk-gadget) (defcustom skk-number-style 1 "*`skk-today', `skk-clock' $B$GI=<($9$k?t;z$N7A<0$rJQ2=$5$;$k!#(B 0 , nil : ASCII $B?t;z(B 1 , t : $BA43Q?t;z(B 2 : $B4A?t;z(B($B0LpJs$NO"A[%j%9%H!#(B $B3FMWAG$O(B ($B4p=`$H$J$kC10L(B ($BJQ49$9$kC10L(B . $BJQ49;~$NG\N((B)) $B$N7A<0$K$h$k!#(B `skk-gadget-units-conversion' $B$G;2>H$9$k!#(B" :type 'sexp :group 'skk-gadget) (defcustom skk-gadget-load-hook nil "*skk-gadget.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" :type 'hook :group 'skk-gadget) ;;; skk-isearch.el related. (defcustom skk-isearch-mode-enable t "*Non-nil $B$G$"$l$P!"%$%s%/%j%a%s%?%k!&%5!<%A$G(B skk-isearch $B$rMxMQ$9$k!#(B $BDL>o$O(B SKK $B%b!<%I$,(B ON $B$N%P%C%U%!$G$N$_(B skk-isearch $B$,M-8z$K$J$k$,!"$3(B $B$NCM$,(B `always' $B$G$"$l$P(B SKK $B%b!<%I$,(B OFF $B$N%P%C%U%!$G$bM-8z$K$J$k!#(B $B$3$NCM$,(B nil $B$J$i$P(B skk-isearch $B$OL58z$K$J$k!#(Bmigemo $B$rMxMQ$7$?$$>l9g(B $B$J$I$K$O(B nil $B$K@_Dj$9$k$+!"$b$7$/$OJ;MQ$9$k$N$G$"$l$P(B `skk-isearch-start-mode' $B$r(B `latin' $B$K$9$k$N$,NI$$!#(B" :type '(radio (const :tag "SKK $B%b!<%I$,(B ON $B$N;~$@$1MxMQ$9$k(B" t) (const :tag "$B>o$KMxMQ$9$k(B" always) (const :tag "$BMxMQ$7$J$$(B" nil)) :group 'skk-isearch) (defcustom skk-isearch-mode-string-alist '((hiragana . "[$B$+(B] ") (katakana . "[$B%+(B] ") (jisx0208-latin . "[$B1Q(B] ") (latin . "[aa] ") (abbrev . "[a$B$"(B] ") (nil . "[--] ")) ;; "*Alist of (MODE-SYMBOL . PROMPT-STRING). ;;MODE-SYMBOL is a symbol indicates canonical mode of skk for skk-isearch. ;;Valid MODE-SYMBOL is one of `hiragana', `katakana', `jisx0208-latin', ;;`latin' or nil. ;;PROMPT-STRING is a string used in prompt to indicates current mode of ;;skk for skk-isearch. " "*$B%$%s%/%j%a%s%?%k!&%5!<%A;~$N%W%m%s%W%HI=<($N$?$a$NO"A[%j%9%H!#(B $B3FMWAG$O!"(B (MODE-SYMBOL . PROMPT-STRING) $B$H$$$&(B cons cell$B!#(B MODE-SYMBOL $B$OF~NO%b!<%I$rI=$o$9%7%s%\%k$G!"2<5-$N$$$:$l$+$r;XDj$9$k!#(B $B$+$J%b!<%I!'(B `hiragana' $B%+%J%b!<%I!'(B `katakana' $BA41Q%b!<%I!'(B `jisx0208-latin' $B%"%9%-!<%b!<%I!'(B `latin' Abbrev $B%b!<%I!'(B `abbrev' nil : SKK $B%b!<%I%*%U(B PROMPT-STRING $B$O!"F~NO%b!<%I$K1~$8$F%W%m%s%W%HI=<($9$kJ8;zNs!#(B" :type '(list (cons (const :tag "$B$+$J%b!<%I(B" hiragana) (string :tag "$B%W%m%s%W%H(B")) (cons (const :tag "$B%+%J%b!<%I(B" katakana) (string :tag "$B%W%m%s%W%H(B")) (cons (const :tag "$BA41Q%b!<%I(B" jisx0208-latin) (string :tag "$B%W%m%s%W%H(B")) (cons (const :tag "$B%"%9%-!<%b!<%I(B" latin) (string :tag "$B%W%m%s%W%H(B")) (cons (const :tag "Abbrev $B%b!<%I(B" abbrev) (string :tag "$B%W%m%s%W%H(B")) (cons (const :tag "SKK$B%b!<%I%*%U(B" nil) (string :tag "$B%W%m%s%W%H(B"))) :group 'skk-isearch) (defcustom skk-isearch-start-mode nil ;; "*Specifies the search mode when isearch is called. ;;This variable is valid only when `skk-isearch-use-previous-mode' is nil. ;;If nil, it means that if skk-mode has been called in this buffer, same as ;;the mode of the buffer, otherwise perform ascii search. ;;If `latin' or `ascii' perfrom ascii search. ;;If `hiragana', `hirakana' or `kana' -> hira kana search. ;;If `jisx0208-latin' or `eiji', perform zenkaku eiji (i.e. JIS X0208 ;;alphabet) search." "*$B%+%l%s%H%P%C%U%!$G%$%s%/%j%a%s%?%k!&%5!<%A$r9T$&:]$NF~NO%b!<%I!#(B `skk-isearch-use-previous-mode' $B$,(B nil $B$N>l9g$N$_M-8z!#(B $B%$%s%/%j%a%s%?%k!&%5!<%A$r9T$&>l9g!">o$K$3$NJQ?t$G;XDj$7$?F~NO%b!<%I$,;HMQ$5$l$k(B ($B%f!<%6!<$,L@<(E*$KJQ99$9$k$3$H$O2D(B)$B!#(B $B2<5-$N$$$:$l$+$N%7%s%\%k$G;XDj$9$k!#(B nil: $B%+%l%s%H%P%C%U%!$G(B SKK $B%b!<%I$,5/F0$5$l$F$$$l$P$=$N%b!<%I!"(B $B5/F0$5$l$F$$$J$1$l$P(B $B%"%9%-!<%b!<%I!#(B `hiragana' (`hiragana' or `kana'): $B$+$J%b!<%I(B `jisx0208-latin' (`eiji') : $BA41Q%b!<%I(B `latin' (`ascii'): $B%"%9%-!<%b!<%I(B" :type '(radio (const :tag "$B8!:wCf%P%C%U%!$N%b!<%I$r7Q>5(B" nil) (const :tag "$B%"%9%-!<%b!<%I(B" latin) (const :tag "$B$+$J%b!<%I(B" hiragana) (const :tag "$BA41Q%b!<%I(B" jisx0208-latin)) :group 'skk-isearch) (defcustom skk-isearch-use-previous-mode nil ;; "*Non-nil means use the same search mode as that of the last search." "*Non-nil $B$G$"$l$P!"F1$8%P%C%U%!$G$N:G8e$N8!:w;~$N%b!<%I$r;HMQ$9$k!#(B" :type 'boolean :group 'skk-isearch) (defcustom skk-isearch-initial-mode-when-skk-mode-disabled 'latin ;; "*Symbol indicates the mode to use as initial mode for skk-isearch when ;;skk is turned off in the current buffer." "*SKK $B%b!<%I$,%*%U$N%P%C%U%!$G!":G=i$K%$%s%/%j%a%s%?%k!&%5!<%A$r9T$&:]$NF~NO%b!<%I!#(B" :type '(radio (const :tag "$B%"%9%-!<%b!<%I(B" latin) (const :tag "$B$+$J%b!<%I(B" hiragana) (const :tag "$BA41Q%b!<%I(B" jisx0208-latin)) :group 'skk-isearch) (defcustom skk-isearch-whitespace-regexp "\\(\\s \\|[ \t\n\r\f]\\)*" ;; "*Regular expression to match a sequence of whitespace chars. ;;This applies to regular expression incremental search." "$B6uGrJ8;z$NO"B3$H$7$F%^%C%A$5$;$k$Y$-@55,I=8=!#(B regexp isearch $B$N:]!"$3$N@55,I=8=$K%^%C%A$9$kJ8;z$,8!:wJ8;zNs$N4V$K4^$^$l$F$$$F(B $B$b%^%C%A$9$k!#(B" :type 'regexp :group 'skk-isearch) (defconst skk-isearch-mode-canonical-alist '((hiragana . 0) (katakana . 1) (jisx0208-latin . 2) (latin . 3)) "Alist of (SYMBOL . NUMBER). The SYMBOL is canonical skk mode, and NUMBER is its numerical representation.") (defconst skk-isearch-mode-alias-alist '((hirakana . hiragana) (kana . hiragana) (eiji . jisx0208-latin) (ascii . latin)) "Alist of (ALIAS . CANONICAL). The both ALIAS and CANONICAL should be symbol. ALIAS can be used as an alias of CANONICAL. CANONICAL should be found in `skk-isearch-mode-canonical-alist'. ") (defconst skk-isearch-breakable-character-p-function (cond ((eval-when-compile (featurep 'emacs)) (lambda (char) ;; see emacs/lisp/fill.el how the category `|' is ;; treated. (aref (char-category-set char) ?|))) (t (lambda (char) (string-match word-across-newline (char-to-string char))))) "Function to test if we can insert a newline around CHAR when filling.") (defconst skk-isearch-working-buffer " *skk-isearch*" "Work buffer for skk isearch.") (defvar skk-isearch-message nil "skk-isearch $B4X?t$r%3!<%k$9$k$?$a$N%U%i%0!#(B Non-nil $B$G$"$l$P!"(B`skk-isearch-message' $B4X?t$r%3!<%k$9$k!#(B") (defvar skk-isearch-mode nil "Current search mode. 0 means hira kana search. 1 means kana search. 2 means zenkaku eiji (i.e. JIS X0208 alphabet) search. 3 means ascii search.") (defvar skk-isearch-incomplete-message "" "Incomplete isearch message") (defvar skk-isearch-mode-map nil "Keymap for skk isearch mode. This map should be derived from `isearch-mode-map'.") (defvar skk-isearch-overriding-local-map (if (featurep 'xemacs) 'overriding-local-map 'overriding-terminal-local-map) "Variable holding overriding local map used in `isearch-mode'.") (defvar skk-isearch-last-mode-string "") (defvar skk-isearch-last-mode-regexp "") ;;;###autoload (defvar skk-isearch-switch nil) (defvar skk-isearch-state nil) (defvar skk-isearch-in-editing nil) (defvar skk-isearch-current-buffer nil) ;;; skk-hint.el related. (defcustom skk-hint-start-char ?\73 ; ; "*$B%R%s%HJQ49$r3+;O$9$k%-!<%-%c%i%/%?(B" :type 'character :group 'skk-hint) (skk-deflocalvar skk-hint-henkan-hint nil "$B%R%s%HIU$-JQ49;~$N%R%s%HItJ,!#(B `skk-henkan-key', `skk-henkan-okurigana', `skk-okuri-char' $B$N%j%9%H!#(B") (skk-deflocalvar skk-hint-start-point nil) (skk-deflocalvar skk-hint-end-point nil) (skk-deflocalvar skk-hint-okuri-char nil) (skk-deflocalvar skk-hint-state nil) (skk-deflocalvar skk-hint-inhibit-kakutei nil) (skk-deflocalvar skk-hint-inhibit-dcomp nil) ;;; skk-jisx0201.el related. (defcustom skk-use-jisx0201-input-method nil "\ *Non-nil $B$J$i(B $BH>3Q%+%J$H(B Japanese Roman $B$NF~NO5!G=$,MxMQ2DG=$K$J$k!#(B" :type 'boolean :group 'skk-jisx0201) (defcustom skk-jisx0201-mode-string "(I6@6E(B" "*SKK $B$,(B JISX0201 $B%b!<%I$G$"$k$H$-$K%b!<%I%i%$%s$KI=<($5$l$kJ8;zNs!#(B" :type 'string :group 'skk-jisx0201) (defvar skk-jisx0201-base-rule-tree nil) (defvar skk-jisx0201-roman-rule-tree nil) (defvar skk-jisx0201-orig-rule-tree nil) (skk-deflocalvar skk-jisx0201-roman nil) (skk-deflocalvar skk-jisx0201-mode nil "Non-nil $B$G$"$l$P!"F~NO%b!<%I$,(B JISX0201 $B%b!<%I$G$"$k$3$H$r<($9!#(B") ;;; skk-jisx0213.el related. (defcustom skk-jisx0213-prohibit nil "*Non-nil $B$G$"$l$P(B JISX0213 $B$NJ8;zNs$r4^$`8uJd$N=PNO$r$7$J$$!#(B JISX0213 $B$r07$($J$$$H$-$O$3$NCM$OF0:n$K1F6A$7$J$$!#(B" :type 'boolean :group 'skk-jisx0213) ;;; skk-jisyo-edit-mode.el related (defcustom skk-jisyo-edit-user-accepts-editing nil "*Non-nil $B$G$"$l$P!"%f!<%6$,8D?M<-=q$NJT=8$r<+8J@UG$$K$F9T$&;]3NG':Q$G$"$k!#(B nil $B$G$"$l$P!"(B`skk-edit-private-jisyo' $B$N \"shi\" nil $B$G$"$l$P!"71Na<0(B \"($B!VF|K\<0!W$H$b8@$&$h$&$@(B)\" $B$rMQ$$$k!#(B $BNc$($P!"(B \"$B$7(B\" -> \"si\" $B>H$9$k5U0z$-%f!<%6<-=q$N%j%9%H!#(B" :type '(repeat file) :group 'skk-kakasi) ;;; skk-kanagaki.el related. (defcustom skk-use-kana-keyboard nil "\ *Non-nil $B$J$i2>L>F~NOMQ$N@_Dj$r%m!<%I$9$k!#(B SKK $B;HMQCf$K$3$NJQ?t$NCM$r@Z$jBX$($k$3$H$G(B $B%m!<%^;zF~NO(B $B"+"*(B $B2>L>F~NO(B $B$N(B $B@Z$jBX$($,$G$-$k!#(B" :type 'boolean :set (lambda (symbol value) (prog1 (if (fboundp 'custom-set-default) (custom-set-default symbol value) (set-default symbol value)) (when (and value (boundp 'skk-mode-invoked) skk-mode-invoked) (require 'skk-kanagaki) (skk-kanagaki-initialize)))) :group 'skk-kanagaki) ;;; skk-kcode.el related. (defcustom skk-kcode-method (if (featurep 'emacs) 'code-or-char-list 'code-or-menu) "*`skk-input-by-code-or-menu' $B$G;H$o$l$kJ8;zA^F~$N$?$a$N%$%s%?!<%U%'!<%9!#(B `char-list' $B$G$"$l$P!"J8;z0lMwI=(B (`skk-list-chars') $B$+$iA*Br$9$k!#(B `code-or-char-list' $B$G$"$l$P!"$^$:(B JIS $B%3!<%I(B/$B6hE@%3!<%IF~NO%W%m%s%W%H$rI=<((B $B$7!"M-8z$JF~NO$,F@$i$l$J$+$C$?>l9g$K(B `skk-list-chars' $B$r8F$S=P$9!#(B `code-or-menu' $B$G$"$l$P=>Mh$N$h$&$K!"$^$:(B JIS $B%3!<%I(B/$B6hE@%3!<%IF~NO%W%m%s%W%H(B $B$rI=<($7!"M-8z$JF~NO$,3NDj$7$J$+$C$?>l9g$K$O8uJdJ8;z0lMw$rI=<($9$k!#(B" :type '(radio (const :tag "$B>o$KJ8;z%3!<%II=$+$iA*$V(B" char-list) (const :tag "$B%3!<%IF~NO(B $B"*(B $BJ8;z%3!<%II=(B" code-or-char-list) (const :tag "$B%3!<%IF~NO(B $B"*(B $BJ8;z8uJd(B ($B5lMh$N%a%K%e!<(B)" code-or-menu) (const :tag "$BJ8;z%3!<%II=!?%3!<%IF~NO$OMxMQ$7$J$$(B" this-key)) :group 'skk-kcode) (defcustom skk-input-by-code-menu-keys1 '(?a ?s ?d ?f ?g ?h ?q ?w ?e ?r ?t ?y) "*$B%a%K%e!<7A<0$G(B JIS $BJ8;z$rF~NO$9$k$H$-$K;HMQ$9$kA*Br%-!<$N%j%9%H!#(B $BBh(B 1 $BCJ3,$N%a%K%e!<$G;HMQ$9$k!#(B 12 $B8D$N%-!<(B (char type) $B$r4^$`I,MW$,$"$k!#(B" :type '(repeat character) :group 'skk-kcode) (defcustom skk-input-by-code-menu-keys2 '(?a ?s ?d ?f ?g ?h ?j ?k ?l ?q ?w ?e ?r ?t ?y ?u) "*$B%a%K%e!<7A<0$G(B JIS $BJ8;z$rF~NO$9$k$H$-$K;HMQ$9$kA*Br%-!<$N%j%9%H!#(B $BBh(B 2 $BCJ3,$N%a%K%e!<$G;HMQ$9$k!#(B 16 $B8D$N%-!<(B (char type) $B$r4^$`I,MW$,$"$k!#(B" :type '(repeat character) :group 'skk-kcode) (defcustom skk-kcode-charset (cond ((find-coding-system 'euc-jisx0213) 'japanese-jisx0213-1) (t 'japanese-jisx0208)) "*`skk-input-by-code-or-menu' $B$G;H$o$l$kJ8;z%;%C%H!#(B" :type (let ((list (if (find-coding-system 'euc-jisx0213) '((const japanese-jisx0213-1) (const japanese-jisx0208)) '((const japanese-jisx0208)))) (prompt (if (get 'charset 'widget-type) '(charset) '(symbol)))) (append '(radio) list prompt)) :group 'skk-jisx0213 :group 'skk-kcode) (defcustom skk-kcode-load-hook nil "*skk-kcode.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" :type 'hook :group 'skk-kcode) (defconst skk-code-n1-min 161) (defconst skk-code-n1-max (if (find-coding-system 'euc-jisx0213) 254 244)) (defconst skk-code-n2-min 161) (defconst skk-code-n2-max 254) (defconst skk-code-null 128) (defconst skk-kcode-charset-list (mapcar (lambda (x) (list (symbol-name x))) (if (eval-when-compile (featurep 'emacs)) charset-list (charset-list)))) (defvar skk-display-code-method 'code "*Non-nil $B$G$"$l$P%]%$%s%H$K$"$kJ8;z$N%3!<%I$rI=<($9$k!#(B nil $B$G$"$l$P(B `this-command-keys' $B$rA^F~$9$k!#(B") (defvar skk-input-by-code-or-menu-jump-default skk-code-n1-min) (defface skk-display-code-prompt-face '((((class color) (type tty)) (:inherit default :foreground "cyan")) (((class color) (background light)) (:inherit default :foreground "cyan")) (((class color) (background dark)) (:inherit default :foreground "cyan")) (((class grayscale)) (:inherit default))) "*skk-display-code `$' $B$G%(%3!<%(%j%"$KI=<($9$k%a%C%;!<%8Cf$N(B KUTEN:$B!"(BJIS:$B!"(BEUC:$B!"(B SJIS: $B5Z$S(B UNICODE: $B$KE,MQ$9$k(B face $BB0@-!#(B" :group 'skk-kcode :group 'skk-visual) (defface skk-display-code-char-face '((((class color) (type tty)) (:inherit default :foreground "black" :background "yellow")) (((class color) (background light)) (:inherit default :foreground "black" :background "yellow")) (((class color) (background dark)) (:inherit default :foreground "black" :background "yellow")) (((class grayscale)) (:inherit default))) "*skk-display-code `$' $B$G%(%3!<%(%j%"$KI=<($9$k%a%C%;!<%8Cf$NEv3:J8;z$KE,MQ$9$k(B face $BB0@-!#(B" :group 'skk-kcode :group 'skk-visual) (defface skk-display-code-tankan-radical-face '((((class color) (type tty)) (:inherit default)) (((class color) (background light)) (:inherit default)) (((class color) (background dark)) (:inherit default)) (((class grayscale)) (:inherit default))) "*skk-display-code `$' $B$G%(%3!<%(%j%"$KI=<($9$k%a%C%;!<%8Cf$NAm2h?t$KE,MQ$9$k(B face $BB0@-!#(B" :group 'skk-kcode :group 'skk-visual) (defface skk-display-code-tankan-annotation-face '((((class color) (type tty)) (:inherit default)) (((class color) (background light)) (:inherit default)) (((class color) (background dark)) (:inherit default)) (((class grayscale)) (:inherit default))) "*skk-display-code `$' $B$G%(%3!<%(%j%"$KI=<($9$k%a%C%;!<%8Cf$NJ8;zL>$KE,MQ$9$k(B face $BB0@-!#(B" :group 'skk-kcode :group 'skk-visual) ;;; skk-list-chars (in skk-kcode.el) related. (defvar skk-list-chars-buffer-name "*skk-list-chars*" "Docstring.") (defvar skk-list-chars-original-window-configuration nil "skk-list-chars-mode $B$KF~$kA0$N(B window configuration$B!#(B `skk-list-chars-quit' $B$NuBV$KI|5"$9$k!#(B") (defvar skk-list-chars-destination-buffer nil "skk-list-chars-insert $B$NA^F~@h%P%C%U%!(B") (defvar skk-list-chars-point nil "C-x C-x (skk-list-chars-goto-point) $B$N%8%c%s%W@h(B") (defvar skk-list-chars-default-charstr nil) (defvar skk-list-chars-mode-map (let ((map (make-sparse-keymap))) (define-key map "$" 'skk-list-chars-display-code) (define-key map "w" 'skk-list-chars-copy) (define-key map "q" 'skk-list-chars-quit) (define-key map (kbd "C-x C-x") 'skk-list-chars-goto-point) (define-key map "c" 'skk-list-chars-code-input) ;; (define-key map (kbd "C-a") '$B6h$N@hF,$X(B) ;; (define-key map (kbd "C-e") '$B6h$NKvHx$X(B) ;; (define-key map "<" '$B%P%C%U%!@hF,$X(B) ;; (define-key map ">" '$B%P%C%U%!KvHx$X(B) (define-key map (kbd "C-f") 'next-completion) (define-key map "f" 'next-completion) (define-key map "l" 'next-completion) (define-key map [right] 'next-completion) (define-key map (kbd "C-b") 'previous-completion) (define-key map "b" 'previous-completion) (define-key map "h" 'previous-completion) (define-key map [left] 'previous-completion) (define-key map (kbd "C-n") 'skk-list-chars-next-line) (define-key map "n" 'skk-list-chars-next-line) (define-key map "j" 'skk-list-chars-next-line) (define-key map [down] 'skk-list-chars-next-line) (define-key map (kbd "C-p") 'skk-list-chars-previous-line) (define-key map "p" 'skk-list-chars-previous-line) (define-key map "k" 'skk-list-chars-previous-line) (define-key map [up] 'skk-list-chars-previous-line) (define-key map (kbd "RET") 'skk-list-chars-insert) (define-key map "i" 'skk-list-chars-insert) (define-key map "g" 'skk-list-chars-jump) (define-key map "o" 'skk-list-chars-other-charset) (define-key map "\\" 'skk-list-chars-other-charset) map) "Keymap used in skk-list-chars mode.") (defface skk-list-chars-face '((((class color) (type tty)) (:inherit default)) (((class color) (background light)) (:inherit default)) (((class color) (background dark)) (:inherit default)) (((class grayscale)) (:inherit default))) "*skk-list-chars $B%P%C%U%!$K$*$1$k!"L\E*J8;z$r;X$7<($9MQES$KE,MQ$9$k(B face $BB0@-!#(B" :group 'skk-kcode :group 'skk-visual) (defface skk-list-chars-table-header-face '((((class color) (type tty)) (:inherit default :foreground "red")) (((class color) (background light)) (:inherit default :foreground "Firebrick")) (((class color) (background dark)) (:inherit default :foreground "chocolate1")) (((class grayscale)) (:inherit default :foreground "LightGray"))) "*skk-list-chars $B%P%C%U%!$K$*$1$k!"0lMw8+=P$7$dOH@~$KE,MQ$9$k(B face $BB0@-!#(B" :group 'skk-visual) ;;; skk-look.el related. (defcustom skk-use-look nil "*UNIX look $B%3%^%s%I$rMxMQ$7$?Jd40!&JQ49$r9T$&$+$I$&$+$r;XDj$9$k!#(B t $B$J$i$P!"Jd40;~$H1Q?t;zJQ49;~$K(B look $B$r;HMQ$9$k!#(B `completion' $B$J$i$P!"Jd40;~$@$1(B look $B$r;HMQ$9$k!#(B `conversion' $B$J$i$P!"1Q?t;zJQ49;~$@$1(B look $B$r;HMQ$9$k!#(B nil $B$J$i$P!"(Blook $B$r;HMQ$7$J$$!#(B SKK abbrev $B%b!<%I$GJd40$9$k$H!"8D?M<-=q$r8!:w$7?T$7$?8e$G!"(BUNIX look $B%3%^%s(B $B%I$K$h$k1QC18lJd40$r9T$&!#Nc$($P!"(B $B"&(Babstr (TAB) ---> $B"&(Babstract SKK abbrev $B%b!<%I$G!"!V1QJ8;z(B + $B%"%9%?%j%9%/!W$K$FJQ49$9$k$H!"(Blook $B%3%^%s%I(B $B$K$h$k[#Kf8!:w$r9T$&$3$H$,$G$-$k!#Nc$($P!"(B $B"&(Babstra* (SPC) ---> $B"'(Babstract $B$3$N>uBV$G3NDj$9$k$H!"(B`abstra*' $B$r8+=P$78l!"(B`abstract' $B$r8uJd$H$9$k%(%s%H%j(B $B$,8D?M<-=q$KDI2C$5$l$k!#(B`skk-search-excluding-word-pattern-function' $B$K$h(B $B$j!"3NDj$7$F$b$3$N$h$&$J%(%s%H%j$rDI2C$7$J$$$h$&$K@_Dj$9$k$3$H$,$G$-$k!#(B" :type '(radio (const :tag "$BJd40;~$H1Q?t;zJQ49;~$KM-8z(B" t) (const :tag "$BJd40;~$@$1M-8z(B" completion) (const :tag "$B1Q?t;zJQ49;~$@$1M-8z(B" conversion) (const :tag "$BL58z(B" nil)) :group 'skk-basic :group 'skk-look) (defcustom skk-look-command (executable-find "look") "*UNIX look $B%3%^%s%I$NL>A0!#(B" :type `(file :tag "$B%U%!%$%kL>(B" ,(or (executable-find "look") "")) :group 'skk-look) (defcustom skk-look-conversion-arguments (concat "-df %s " (cond ((file-exists-p "/usr/share/dict/words") "/usr/share/dict/words") ((file-exists-p "/usr/share/lib/dict/words") "/usr/share/lib/dict/words") ((file-exists-p "/usr/dict/words") "/usr/dict/words") (t ""))) "*look $B%3%^%s%I$,1Q?t!VJQ49!W;~$K8F$S=P$5$l$k:]$KEO$90z?t$r;XDj$9$kJQ?t!#(B $B0lHL$K(B look $B%3%^%s%I$O0J2<$N7A<0$G8F$S=P$5$l$k!#(B look [-df] [-t termchar] string [file] $B$=$l$>$l$N0UL#$K$D$$$F$O(B \\[man] look $B$r;2>H$5$l$?$$!#(B $B$3$NJQ?t$K$O!">e5-$N$h$&$JA40z?t$N$&$A(B string $B$r(B %s $B$KCV49$7$?$b$N$r;XDj$9$k!#(B $BCm0U;v9`$H$7$F!"(Blook $B%3%^%s%I$KEO$90z?t(B -d $B$H(B -f $B$K4X$7$F$O!"(B file $B$,(B $BF1$8(B $B0z?t$G(B sort $B$5$l$F$$$kI,MW$,$"$k!#Nc$($P(B look -df $B$G8!:w$9$k$H$-$O(B sort -df $B$G!"(B look -d $B$G8!:w$9$k$H$-$O(B sort -d $B$G(B sort $B$5$l$F$$$kI,MW$,$"$k!#$3$N$3$H(B $B$K4X$7$F$O(B \\[man] sort $B$b;2>H$5$l$?$$!#(B $B$b$&$R$H$D$NCm0UE@$H$7$F!"(B look $B$N:G8e$N0z?t$H$7$F(B file $B$rEO$5$J$$$H(B ($B>JN,$9$k(B $B$H(B) $B6/@)E*$K0z?t(B -d $B$H(B -f $B$N5!G=$,M-8z$K$J$k!#$b$7(B look $B$r;W$$DL$j@)8f$7$?$1$l(B $B$PE,@Z$J(B file $B$r;XDj$9$k$Y$-$G$"$k!#(B ($B@_DjNc(B) (setq skk-look-conversion-arguments \"-df %s /usr/share/dict/words\") " :type 'string :group 'skk-look) (defcustom skk-look-completion-arguments (concat "%s " (cond ((file-exists-p "/usr/share/dict/words") "/usr/share/dict/words") ((file-exists-p "/usr/share/lib/dict/words") "/usr/share/lib/dict/words") ((file-exists-p "/usr/dict/words") "/usr/dict/words") (t ""))) "*look $B%3%^%s%I$,1Q?t!VJd40!W;~$K8F$S=P$5$l$k:]$KEO$90z?t$r;XDj$9$kJQ?t!#(B look $B%3%^%s%I$K4X$7$F$OJQ?t(B `skk-look-conversion-arguments' $B$N%I%-%e%a%s%H!"(B $B5Z$S(B \\[man] look $B$r;2>H$5$l$?$$!#(B ($B@_DjNc(B) (setq skk-look-completion-arguments \"-d %s /usr/share/dict/words.case\") " :type 'string :group 'skk-look) (defcustom skk-look-recursive-search nil "*Non-nil $B$J$i$P!"(B look $B%3%^%s%I$,8+$D$1$?1QC18l$rJQ49%-!<$K$7$F:F8!:w$r9T$&!#(B $B:F8!:w$N7k2L!"8uJd$,8+$D$+$i$J$1$l$P!"85$N1QC18l<+?H$r8uJd$H$7$F=PNO$9$k!#(B" :type 'boolean :group 'skk-look) (defcustom skk-look-expanded-word-only t "*Non-nil $B$J$i$P!"(B look $B$N=PNO$KBP$9$k:F8!:w$,@.8y$7$?8uJd$N$_$rI=<($9$k!#(B `skk-look-recursive-search' $B$,(B non-nil $B$G$"$k$H$-$N$_M-8z!#(B" :type 'boolean :group 'skk-look) (defcustom skk-look-use-ispell nil "*look $B$K$h$k8!:w$N:]!"(Bispell $B$rJ;MQ$9$k$+$I$&$+$r;XDj$9$k!#(B t $B$J$i$P!"Jd40;~$H1Q?t;zJQ49;~$K(B ispell $B$rJ;MQ$9$k!#(B `completion' $B$J$i$P!"Jd40;~$@$1(B ispell $B$rJ;MQ$9$k!#(B `conversion' $B$J$i$P!"1Q?t;zJQ49;~$@$1(B ispell $B$rJ;MQ$9$k!#(B nil $B$J$i$P!"(Bispell $B$r;HMQ$7$J$$!#(B" :type '(radio (const :tag "$BJd40;~$H1Q?t;zJQ49;~$KM-8z(B" t) (const :tag "$BJd40;~$@$1M-8z(B" completion) (const :tag "$B1Q?t;zJQ49;~$@$1M-8z(B" conversion) (const :tag "$BL58z(B" nil)) :group 'skk-look) (defvar skk-look-completion-words nil) ;;;; skk-lookup.el related. (defcustom skk-lookup-search-agents nil "*$B8!:w%(!<%8%'%s%H$N@_Dj$N%j%9%H!#(B $B%j%9%H$N3FMWAG$OJN,2DG=$G!"%(!<%8%'%s%H$KBP$9$k%*%W%7%g%s$r;XDj$9$k!#(B $BNc(B: (setq skk-lookup-search-agents '((ndtp \"dserver\" :port 2010) (ndeb \"/cdrom\" :enable (\"EIWA\"))))" :type '(repeat (sexp :tag "Agent")) ; type $B$O$A$g$C$H$d$d$3$7$9$.!&!&(B :group 'skk-lookup) (defcustom skk-lookup-option-alist '(;; "[spla -> splat]" ("ispell" exact nil nil (not skk-okuri-char) ("-> \\([^ ]+\\)]$" . 1) nil nil) ;; what's this? ("jedict" exact nil nil (not skk-okuri-char) nil nil nil) ;; $BCN7CB"(B ;; `$B"'#I#M#F!N(BInternational Monetary Fund$B!?(BInternational ;; Metalworkers Federation$B!O(B' ;; `$B#I#M#F!J9q:]DL2_4p6b!K!Z(BInternational Monetary Fund$B![(B' ("CHIEZO" exact exact prefix t ("$B!J(B\\(.+\\)$B!K(B\\|$B!Z(B\\(.+\\)$B![(B$\\|$B!N(B\\(.+\\)$B!O(B$\\|^\\([^$B!J!Z!N!O![!K(B]+\\)$" . (cond ((match-beginning 1) 1) ((match-beginning 2) 2) ((match-beginning 3) 3) ((match-beginning 4) 4))) "$B!?(B\\|$B!"(B\\|, " nil) ;; $B!V<-!&E5!&HW!W(B ;; `$B$"$+#3(B $B^@(B", "ethanol' ("CHUJITEN" exact exact prefix t ("[$B#0(B-$B#9(B]* *\\([^ ]+\\)$" . 1) nil nil) ;; `($BHiIf$J$I$N(B)$B$"$+(B ", "$B!T1Q!U(B ($B%Q%$%W$J$I$N(B)$B$"$+(B ' ("COLLOC" exact exact prefix t ("\\([^ $B!T!U(B]+\\) <[a-z]+>$" . 1) nil nil) ;; $B%8!<%K%"%91QOB(B, $B%8!<%K%"%91QOB!&OB1Q<-E5(B ;; `$B$"$+(B[$B^@(B]' ;; `$B$$$l$+$((B[$BF~$lBX$((B,$BF~$l49$((B]' ("GENIUS" exact exact prefix t ;;("\\[\\(.+\\)\\]$" . 1) ;;can I use `$' for GENIUS? ("\\[\\(.+\\)\\]" . 1) "," nil) ;; Super$BE}9g<-=q(B99 Disk1, 2/$B8=BeMQ8l$N4pACCN<1(B ;; `$B"!$B0%(B' ;; `$B$@$7!Z=P$7![!Z=P$7!&!R=P=A!S![!Z!P;3$7$e$.!Z!=(B[$B!<$!(B-$B$s(B]+$B!Z!=(B\\([^$B!Z![(B]+\\)$B![(B$\\|\ \$B!Z(B\\([a-zA-Z]+\\) [$B!<%!(B-$B%s(B]+$B![(B$\\|$B!Z(B\\([^$B!Z![(B]+\\)$B![(B\\|\ ^$B!{(B\\(.+\\)$" . (cond ((match-beginning 2) '(1 2)) ((match-beginning 3) 3) ((match-beginning 4) 4) ((match-beginning 5) 5))) "$B!&(B" ;;"$B!>(B[$B!<$!(B-$B$s(B]+$B!Z!=(B\\|$B![(B$" nil) ;; KOJIEN: $B9-<-1qBh(B5$BHG(B($B4dGH(B,EPWING) ;; `$B$G$s$7!>%V%C%/!ZEE;R!=![(B' ("KOJIEN" exact exact prefix t ("^\\([^$B!Z![(B]+\\)$B!>(B[$B!<$!(B-$B$s(B]+$B!Z!=(B\\([^$B!Z![(B]+\\)$B![(B$\\|\ \$B!Z(B\\([a-zA-Z]+\\) [$B!<%!(B-$B%s(B]+$B![(B$\\|\ \$B!Z(B\\([^$B!Z![(B]+\\)$B![(B\\|\ ^[$B!<$!(B-$B$s(B]+$B!>(B\\([$B!<%!(B-$B%s(B]+\\)$B!Z(B\\([^$B!Z![(B]+\\)$B!=![(B$\\|\ ^$B!{(B\\(.+\\)$" . (cond ((match-beginning 2) '(1 2)) ((match-beginning 3) 3) ((match-beginning 4) 4) ((match-beginning 5) '(6 5)) ((match-beginning 7) 7))) "$B!&(B" ;;"$B!>(B[$B!<$!(B-$B$s(B]+$B!Z!=(B\\|$B![(B$" nil) ;; KOKUGO: $B;0>JF2(B $BF|K\8l<-E5!J8=Be9q8l!"30Mh8l!K(B ;; `$B!R(B' $B$O!"EvMQ4A;zI=$K$J$$4A;z$G!"(B`$B!T(B' $B$O!"EvMQ4A;zI=$K$O$"$k$,!"$=$N2;!"(B ;; $B71$,EvMQ4A;zI=$N2;71I=$K$J$$4A;z!#(B ("KOKUGO" exact exact prefix t ("$B!Z(B\\([^$B!Z![(B]+\\)$B![(B" . 1) "$B!&(B" "[$B!T!R(B]") ;; $B!V<-!&E5!&HW!WImB0$N%^%$%Z%G%#%"(B ;;`$BBgOB74;3(B($B;T(B)' ;;`$B%o%7%s%H%s(B(George Washington)' ;;`$B%o%7%s%H%s(B($B=#(B)' ;;`$B%o%7%s%H%s(B Washington' ;;`$B%"%$%s%7%e%?%$%s(B(Albert Einstein)' ;;`$B9aNI='(B($BD.(B)' ;;`$B%+%i%9(B ($B1((B)' ;;`$B%+%i%9(B(Maria Callas)' ("MYPAEDIA" exact exact prefix t ("\\([^ ]+\\)(.+)$\\|.+ (\\([^ ]+\\))$\\|^\\([^ ()]+\\)$" . (cond ((match-beginning 1) 1) ((match-beginning 2) 2) ((match-beginning 3) 3))) nil nil) ;; mypaedia-fpw $B$+$i@8@.$7$?(B PC Success $BHG%^%$%Z%G%#%"(B (FreePWING $B<-=q(B) ;; `$BBgOB74;3(B [$B$d$^$H$3$*$j$d$^(B] ($B;T(B)' ;; `$B%"%$%s%7%e%?%$%s(B (Albert Einstein)' ;; `$B%o%7%s%H%s(B (Washington) ($B=#(B)' ;; `$B%o%7%s%H%s(B (Washington)' ;; `$B%o%7%s%H%s(B (George Washington)' ;; `$B9aNI='(B [$B$+$i$9(B] ($BD.(B)' ;; `$B%+%i%9(B ($B1((B) [$B%+%i%9(B]' ;; `$B%+%i%9(B (Maria Callas)' ;;("MYPAEDIA" exact exact prefix t ;; ("^\\([^ ]+\\) \\[.+\\] (.+)$\\|^[^ ]+ (\\(.+\\)) \\[.+\\]$\\|\ ;; ^\\([^][() ]+\\)\\( .+\\)?$" . ;; (cond ((match-beginning 1) 1) ;; ((match-beginning 2) 2) ;; ((match-beginning 3) 3))) ;; nil nil) ;; ;; $B%K%e!<%"%s%+!<1QOB(B ;; "$B$"$+#2(B $B9$(B" ("NEWANC" exact exact prefix t ("[$B#0(B-$B#9(B]* *\\([^ ]+\\)$" . 1) nil nil) ;; what's this? ;; `$B!!$"$+(B ', ;; `$B!!!V$"$+!W(B ' ("PLUS" exact exact prefix t ("^$B!!(B\\(.+\\) <[a-z$B#0(B-$B#9(B]+>$" . 1) nil nil) ("lsd" exact exact prefix t ("^\\([^$B!L!M(B]+\\)$B!L(B.+$B!M(B$" . 1) nil nil)) "*$B<-=qKh$N8!:w!"J8;z@Z$j=P$7%*%W%7%g%s!#(B $B%j%9%H$N3FMWAG$O2<5-$NDL$j!#(B 0th: `lookup-dictionary-name' $B$,JV$9J8;zNs(B ($B<-=qL>7hDj$N8e$K8!:w$r3+;O$9$k$N$G!"Aw$j2>L>$,FCDj$G$-$k(B) $B$N(B search method $B$r<($9%7%s%\%k!#(Bregexp $B$O;XDjIT2D!#(Bnil $B$r;XDj$9$k$H!"(B $BAw$j$"$jJQ49$N:]$O$=$N<-=q$r8!:w$7$J$$!#(B 3th: $BAw$j$"$jJQ49$G!"$+$D(B `skk-process-okuri-early' $B$G$"$k$H$-(B ($BAw$j2>L>(B $B7hDj$NA0$K8!:w$r3+;O$7$F$*$j!"Aw$j2>L>$,FCDj$G$-$J$$$N$G!"Aw$j2>L>$N$+$J(B prefix $B$r=|$$$?ItJ,$r8!:w%-!<$H$7$F(B lookup $B$KEO$7$F$$$k(B) $B$N(B search method $B$r<($9(B $B%7%s%\%k!#(Bregexp $B$O;XDjIT2D!#(Bnil $B$r;XDj$9$k$HAw$j$"$jJQ49(B $B$N:]$O$=$N<-=q$r8!:w$7$J$$!#(B 4th: S $B<0!#$3$N(B S $B<0$rI>2A$7$F(B nil $B$K$J$k$H$-$O8!:w$7$J$$!#$"$k0lDj$N>r7o$rK~(B $B$7$?>l9g$K8!:w$7$J$$$h$&$K;XDj$G$-$k!#(B 5th: `lookup-entry-heading' $B$,JV$9(B heading $B$+$i8uJd$H$7$F=PNO$9$kJ8;zNs$r@Z$j(B $B=P$9$?$a$N(B regexp $B;XDj5Z$S@Z$j=P$7%*%W%7%g%s!#(B car $B$K(B regexp $B$r<($9J8;zNs!"(Bcdr $B$K(B `match-string' $B$KEO$9(B count $B$r;XDj(B $B$9$k(B (5th $B$KJ8;zNs$@$1$r;XDj$7$?>l9g$O(B `match-string' $B$K$O(B 1 $B$,(B $BEO$5$l$k(B)$B!#(B cdr $BIt$K(B S $B<0$r;XDj$9$k$3$H$b2DG=!#2<5-$N$h$&$K(B cond $B<0$G>r7oH=Dj$9$l$P(B $BJ#?t$N(B regexp $B$r(B or $B;XDj$9$k$3$H$,2DG=!#(B (cond ((match-beginning 1) 1) ((match-beginning 2) 2) ((match-beginning 3) 3) ((match-beginning 4) 4)) cdr $BIt$NI>2A7k2L$,?t;z$N%j%9%H$K$J$k$H$-$O!"$=$N?t;z$r=g$K(B match-string $B$KEO$7$FJ8;zNs$r@Z$j=P$7!"$=$l$iO"7k$7$?J8;zNs$r8uJd$H$7$FJV$9!#Nc$($P!"(B (cond ((match-beginning 5) '(6 5))) $B$H;XDj$9$k$H!"(B(match-beginning 5) $B$,(B non-nil $B$K$J$C$?>l9g!"(B (match-string 6) $B$H(B (match-string 5) $B$r$=$N=g$KO"7k$7$?J8;zNs$r8uJd$H$7(B $B$F=PNO$9$k!#(B $B@Z$j=P$5$:$KJ8;zNsA4BN$rBP>]$K$9$k$H$-$O!"(B5th $B$K(B nil $B$r;XDj$9$k!#(B 6th: $B@Z$j=P$5$l$?J8;zNs$NCf$K99$KJ#?t$N8uJd$r4^$`>l9g$N6h@Z$j$rI=$o$9(B regexp$B!#(B $BJ#?t$N8uJd$,F10l(B heading $B$NCf$K=PNO$5$l$J$$$H$-$O!"(Bnil $B$r;XDj$9$k!#(B 7th: $B@Z$j=P$5$l$?J8;zNs$+$iFCDj$NJ8;zNs$rl9g$K;XDj$9$k(B regexp$B!#(B $B<-=q$N=PNO$,<-=qFCM-$N5-9fJ8;z$r4^$`>l9g$K;XDj$9$k!#(B $B8=:_BP1~$7$F$$$k<-=qL>$O(B \"ispell\", \"jedict\", \"CHIEZO\", \"CHUJITEN\", \"COLLOC\", \"GENIUS\", \"GN99EP01\", \"GN99EP02\", \"IWAKOKU\", \"KANWA\", \"KOUJIEN\", \"KOJIEN\", \"KOKUGO\", \"MYPAEDIA\", \"NEWANC\", \"PLUS\" $B5Z$S(B \"lsd\"$B!#(B `lookup-entry-heading' $B$,<+J,$N;HMQ$9$k<-=q$+$i$I$N$h$&$JJ8;zNs$rJF2(B $B%K%e!<%;%s%A%e%j!<1QOB!&?7%/%i%&%sOB1Q<-E5(B ;; KANJIGEN: Super$BE}9g<-=q(B99 Disk2/$B4A;z8;(B : EPWING ;; RIKAGAKU: $BM}2=3X<-E5(B ;; WAEI: what's this? "*$B%G%U%)%k%H$N<-=q8!:w!"J8;z@Z$j=P$7%*%W%7%g%s!#(B $B$^$:<-=qL>$r%-!<$K$7$F(B `skk-lookup-option-alist' $B$r0z$-!"$=$3$K<-=q8!:w!"J8;z@Z(B $B$j=P$7$N%*%W%7%g%s$,8+$D$+$l$P$=$l$r;HMQ$7!"8+$D$+$i$J$+$C$?>l9g$K$3$NJQ?t$G(B $B;XDj$5$l$k<-=q8!:w!"J8;z@Z$j=P$7$N%*%W%7%g%s$r;HMQ$9$k!#(B $B%j%9%H$N3FMWAG$O2<5-$NDL$j!#(B 0th: $BAw$j$J$7JQ49$N:]$N(B search method $B$r<($9%7%s%\%k!#(Bregexp $B$O;XDjIT2D!#(B 1th: $BAw$j$"$jJQ49$G!"$+$D(B `skk-process-okuri-early' $B%*%W%7%g%s$r;XDj$7$F$$$J(B $B$$$H$-(B ($BAw$j2>L>7hDj$N8e$K8!:w$r3+;O$9$k$N$G!"Aw$j2>L>$,FCDj$G$-$k(B) $B$N(B search method $B$r<($9%7%s%\%k!#(Bregexp $B$O;XDjIT2D!#(Bnil $B$r;XDj$9$k$H!"Aw$j(B $B$"$jJQ49$N:]$O$=$N<-=q$r8!:w$7$J$$!#(B 2th: $BAw$j$"$jJQ49$G!"$+$D(B `skk-process-okuri-early' $B$G$"$k(B ($BAw$j2>L>7hDj$NA0(B $B$K8!:w$r3+;O$7$F$*$j!"Aw$j2>L>$,FCDj$G$-$J$$$N$G!"Aw$j2>L>$N$+$J(B prefix $B$r=|$$$?ItJ,$r8!:w%-!<$H$7$F(B lookup $B$KEO$7$F$$$k(B) $B$H$-$N(B search method $B$r<($9%7%s%\%k!#(Bregexp $B$O;XDjIT2D!#(Bnil $B$r;XDj$9$k$HAw$j$"$jJQ49$N:]$O$=(B $B$N<-=q$r8!:w$7$J$$!#(B 3th: S $B<0!#$3$N(B S $B<0$rI>2A$7$F(B nil $B$K$J$k$H$-$O8!:w$7$J$$!#$"$k0lDj$N>r7o$rK~(B $B$7$?>l9g$K8!:w$7$J$$$h$&$K;XDj$G$-$k!#(B 4th: `lookup-entry-heading' $B$,JV$9(B heading $B$+$i8uJd$H$7$F=PNO$9$kJ8;zNs$r@Z$j(B $B=P$9$?$a$N(B regexp $B;XDj5Z$S@Z$j=P$7%*%W%7%g%s!#(B car $B$K(B regexp $B$r<($9J8;zNs!"(Bcdr $B$K(B `match-string' $B$KEO$9(B count $B$r;XDj$9(B $B$k(B (4th $B$KJ8;zNs$@$1$r;XDj$7$?>l9g$O(B `match-string' $B$K$O(B 1 $B$,EO$5$l$k(B)$B!#(B cdr $BIt$K(B S $B<0$r;XDj$9$k$3$H$b2DG=!#2<5-$N$h$&$K(B cond $B<0$G>r7oH=Dj$9$l$P(B $BJ#?t$N(B regexp $B$r(B or $B;XDj$9$k$3$H$,2DG=!#(B (cond ((match-beginning 1) 1) ((match-beginning 2) 2) ((match-beginning 3) 3) ((match-beginning 4) 4)) cdr $BIt$NI>2A7k2L$,?t;z$N%j%9%H$K$J$k$H$-$O!"$=$N?t;z$r=g$K(B `match-string' $B$KEO$7$FJ8;zNs$r@Z$j=P$7!"$=$l$iO"7k$7$?J8;zNs$r8uJd$H$7$FJV$9!#Nc$($P!"(B (cond ((match-beginning 5) '(6 5))) $B$H;XDj$9$k$H!"(B(match-beginning 5) $B$,(B non-nil $B$K$J$C$?>l9g!"(B (match-string 6) $B$H(B (match-string 5) $B$r$=$N=g$KO"7k$7$?J8;zNs$r8uJd$H$7(B $B$F=PNO$9$k!#(B $B@Z$j=P$5$:$KJ8;zNsA4BN$rBP>]$K$9$k$H$-$O!"(B4th $B$K(B nil $B$r;XDj$9$k!#(B 5th: $B@Z$j=P$5$l$?J8;zNs$NCf$K99$KJ#?t$N8uJd$r4^$`>l9g$N6h@Z$j$rI=$o$9(B regexp$B!#(B $BJ#?t$N8uJd$,F10l(B heading $B$NCf$K=PNO$5$l$J$$$H$-$O!"(Bnil $B$r;XDj$9$k!#(B 6th: $B@Z$j=P$5$l$?J8;zNs$+$iFCDj$NJ8;zNs$rl9g$K;XDj$9$k(B regexp$B!#(B $B<-=q$N=PNO$,<-=qFCM-$N5-9fJ8;z$r4^$`>l9g$K;XDj$9$k!#(B $B$3$N%*%W%7%g%s$GBP1~$7$F$$$k<-=qL>$O!"(B\"CRCEN\", \"KANJIGEN\", \"RIKAGAKU\" $B5Z$S(B \"WAEI\". `lookup-entry-heading' $B$G$+!Z0!2J![!E%/%o(B\" \"$B$"$+!Zod2@![(B\" \"$B$3!>$7$g$&!Z>.@+!&>.@-![!E%7%d%&(B\" `lookup-entry-heading' $B$,<+J,$N;HMQ$9$k<-=q$+$i$I$N$h$&$JJ8;zNs$rL>$N2C9)J}K!$r<($9%^%8%C%/%J%s%P!<(B $B$rF~$l$?(B cons cell$B!#(B $B%^%8%C%/%J%s%P!<$O!"(B0 $B$,Aw$j$J$7$rI=$o$9(B ($BK\(B function $B$G$O;HMQ$9$k$3$H$O$J$$(B)$B!#(B 1 $B$OAw$j$"$jJQ49$G(B `skk-process-okuri-early' $B$,(B nil $B$N>l9g!#(B 2 $B$OAw$j$"$jJQ49$G(B `skk-process-okuri-early' $B$,(B non-nil $B$N>l9g$rI=$o$9!#(B $B6a$$>-Mh!"(Bskk-lookup.el $BA4BN$rDL$8$F$3$N$h$&$J%^%8%C%/%J%s%P!<$r;H$o$J$$$h$&$K(B $B2~NI$5$l$k2DG=@-$,$"$k!#(B" :type '(radio (function :tag "$B4X?t(B") (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-lookup) (defcustom skk-lookup-kana-vector ["$B$!(B" "$B$"(B" "$B$#(B" "$B$$(B" "$B$%(B" "$B$&(B" "$B$'(B" "$B$((B" "$B$)(B" "$B$*(B" "$B$+(B" "$B$,(B" "$B$-(B" "$B$.(B" "$B$/(B" "$B$0(B" "$B$1(B" "$B$2(B" "$B$3(B" "$B$4(B" "$B$5(B" "$B$6(B" "$B$7(B" "$B$8(B" "$B$9(B" "$B$:(B" "$B$;(B" "$B$<(B" "$B$=(B" "$B$>(B" "$B$?(B" "$B$@(B" "$B$A(B" "$B$B(B" "$B$C(B" "$B$D(B" "$B$E(B" "$B$F(B" "$B$G(B" "$B$H(B" "$B$I(B" "$B$J(B" "$B$K(B" "$B$L(B" "$B$M(B" "$B$N(B" "$B$O(B" "$B$P(B" "$B$Q(B" "$B$R(B" "$B$S(B" "$B$T(B" "$B$U(B" "$B$V(B" "$B$W(B" "$B$X(B" "$B$Y(B" "$B$Z(B" "$B$[(B" "$B$\(B" "$B$](B" "$B$^(B" "$B$_(B" "$B$`(B" "$B$a(B" "$B$b(B" "$B$c(B" "$B$d(B" "$B$e(B" "$B$f(B" "$B$g(B" "$B$h(B" "$B$i(B" "$B$j(B" "$B$k(B" "$B$l(B" "$B$m(B" "$B$n(B" "$B$o(B" "$B$p(B" "$B$q(B" "$B$r(B" "$B$s(B"] "*`skk-kana-rom-vector' $B$N(B prefix $B$KBP1~$9$k$+$JJ8;z$N%Y%/%H%k!#(B $B$"$k(B prefix $B$,$I$N$+$JJ8;z$KBP1~$9$k$+$N%^%C%W$r:n$k$?$a$K;2>H$9$k!#(B" :type 'sexp :group 'skk-lookup) (defvar skk-lookup-agent-list nil) (defvar skk-lookup-default-module nil) (defvar skk-lookup-module-list nil) (defvar skk-lookup-prefix-and-kana-map nil) (defvar skk-lookup-get-content-nth-dic 0 "*$B4X?t(B `skk-lookup-get-content' $B$N=hM}BP>]$r?tCM$G;XDj$9$k(B. $B?tCM$O!V4X?t(B `skk-lookup-default-module' $B$NI>2A7k2L$N$&$A2?HVL\$N(B agent $B$r(B $B;HMQ$9$k$+!W$r!"%<%m$r5/E@$K?t$($k(B. *scratch* $B%P%C%U%!$G2A$7$F$_$k$H$h$$(B. \(let ((n 0)) (dolist (i (lookup-module-dictionaries (skk-lookup-default-module))) (insert (format \"%d %s\" n (lookup-dictionary-name i)) 10) ;10$B$O2~9T(B (setq n (1+ n)))) $B$J$*!"(BDDSKK $B$N5/F08e$KJQ?t$NCM$rJQ99$7$?>l9g$O!"(B*scratch* $B%P%C%U%!$G(B $B4X?t(B `skk-lookup-get-content-setup-dic' $B$rI>2A$9$k$3$H(B.") (defvar skk-lookup-get-content-default-dic nil) (defvar skk-lookup-get-content-default-dic-name nil) ;;; skk-num.el related. (defcustom skk-use-numeric-conversion t "*Non-nil $B$G$"$l$P!"?tCMJQ49$r9T$&!#(B" :type 'boolean :group 'skk-num) (defcustom skk-non-numeric-prog-list nil "*$B?tCMJQ49$K;H$o$J$$<-=q8!:w%W%m%0%i%`$N%j%9%H!#(B `skk-use-numeric-conversion' $B$,(B non-nil $B$N>l9g$N$_M-8z!#%j%9%H$NMWAG$H$7$F$O!"(B 1. $B%W%m%0%i%`$N4X?tL>$rI=$9%7%s%\%k(B 2. $B%W%m%0%i%`$r0z?t$NCM$^$G;XDj$7$?7A$N%j%9%H(B $B$N$$$:$l$G$b;XDj$G$-$k!#(B $BA0$N0lCW$7$?A4%W%m%0%i%`$,0lCW$HH=CG$5$l$k!#8e5Z$S(B $B$9$Y$F$N0z?t$,0lCW$7$?>l9g$N$_0lCW$HH=CG$5$l$k!#(B $B0lCW$NI>2A$O!"(B 1 $B$O4X?t(B `eq' $B$K$h$C$F!"(B 2 $B$O%j%9%H$KBP$7$F(B `equal' $B$K$h$C$F(B $B9T$o$l$k!#(B ($B@_DjNc(B) (setq skk-non-numeric-prog-list '(skk-look skk-tankan-search (skk-search-jisyo-file \"/usr/share/skk/SKK-JISYO.jinmei\" 10000))) " :type '(repeat (radio (symbol :tag "$B4X?tL>$N$_$G;XDj(B") (list :tag "$B4X?tL>$H0z?t$N%j%9%H(B"))) :group 'skk-num) (defcustom skk-show-num-type-info t "*Non-nil $B$J$i$P!"?tCMJQ49%(%s%H%j$N<-=qEPO?;~$KJQ49%?%$%W$N0FFb$rI=<($9$k!#(B" :type 'boolean :group 'skk-num) (defcustom skk-num-type-alist '((0 . identity) (1 . skk-num-jisx0208-latin) (2 . skk-num-type2-kanji) (3 . skk-num-type3-kanji) (4 . skk-num-recompute) (5 . skk-num-type5-kanji) (8 . skk-num-grouping) (9 . skk-num-shogi)) "*$B?tCM$NJQ49$N$?$a$N!"%$%s%G%/%9$HJQ49$K;HMQ$9$k4X?t$H$NO"A[%j%9%H!#(B $B4X?t(B `skk-num-exp' $B$,;2>H$7$F$$$k!#(B $B3FMWAG$O!"(B`($B%$%s%G%/%9(B . $B4X?tL>(B)' $B$H$$$&9=@.$K$J$C$F$$$k!#(B $B%$%s%G%/%9$K$O!"Nc$($P8+=P$78l$,(B \"$BJ?@.(B#1$BG/(B\" $B$N$H$-!"(B`#' $B5-9f$ND>8e$KI=<((B $B$5$l$k(B integer `1' $B$rBeF~$9$k!#(B $B%$%s%G%/%9$H4X?t$N4X78(B ($B%G%U%)%k%HCM(B) $B$O2<5-$NDL$j!#(B 0 -> $BL5JQ49(B 1 -> $BA43Q?t;z$XJQ49(B 2 -> $B4A?t;z(B ($B0L $B4A?t;z(B ($B0L $B$=$N?t;z$=$N$b$N$r%-!<$K$7$F<-=q$r:F8!:w(B 5 -> $B4A?t;z(B ($B $B7e6h@Z$j$XJQ49(B (1,234,567) 9 -> $B>-4}$G;HMQ$9$k?t;z(B (\"$B#3;M(B\" $B$J$I(B) $B$KJQ49(B" :type '(repeat (cons (radio :tag "$B%$%s%G%/%9(B" (const 0) (const 1) (const 2) (const 3) (const 4) (const 5) (const 8) (const 9)) (function :tag "$B4X?t(B"))) :group 'skk-num) (defcustom skk-num-convert-float nil "*Non-nil $B$G$"$l$P!"IbF0>.?tE@?t$r;H$C$?8+=P$78l$KBP1~$7$FJQ49$r9T$&!#(B $B$3$NCM$r(B non-nil $B$K$9$k$3$H$G!"(B\"#.# /#1$B!%(B#1/#0$B7n(B#0$BF|(B/\" $B$J$I$N<-=q8+=P$7$,;HMQ(B $B$G$-$J$/$J$k$N$G!"Cm0U!#(B" :type 'boolean :group 'skk-num) (defcustom skk-num-uniq (or (assq 4 skk-num-type-alist) (and (assq 2 skk-num-type-alist) (or (assq 3 skk-num-type-alist) (assq 5 skk-num-type-alist)))) "\ *Non-nil $B$G$"$l$P!"0[$J$k?tCMI=8=$G$bJQ497k2L$,F1$8?tCM$r=EJ#$7$F=PNO$7$J$$!#(B" :type 'boolean :group 'skk-num) (defcustom skk-num-load-hook nil "*skk-num.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" :type 'hook :group 'skk-num) (defconst skk-num-alist-type1 '((?0 . "$B#0(B") (?1 . "$B#1(B") (?2 . "$B#2(B") (?3 . "$B#3(B") (?4 . "$B#4(B") (?5 . "$B#5(B") (?6 . "$B#6(B") (?7 . "$B#7(B") (?8 . "$B#8(B") (?9 . "$B#9(B") (?. . "$B!%(B") ; $B>.?tE@!#(B(?. . ".") $B$NJ}$,NI$$?M$b$$$k$+$b(B...$B!#(B (? . "")) "ascii $B?t;z$N(B char type $B$HA43Q?t;z$N(B string type $B$NO"A[%j%9%H!#(B \"1995\" -> \"$B#1#9#9#5(B\" $B$N$h$&$JJ8;zNs$XJQ49$9$k:]$KMxMQ$9$k!#(B") (defconst skk-num-alist-type2 '((?0 . "$B!;(B") (?1 . "$B0l(B") (?2 . "$BFs(B") (?3 . "$B;0(B") (?4 . "$B;M(B") (?5 . "$B8^(B") (?6 . "$BO;(B") (?7 . "$B<7(B") (?8 . "$BH,(B") (?9 . "$B6e(B") (?\ . "")) "ascii $B?t;z$N(B char type $B$H4A?t;z$N(B string type $B$NO"A[%j%9%H!#(B \"1995\" -> \"$B0l6e6e8^(B\" $B$N$h$&$JJ8;zNs$XJQ49$9$k:]$KMxMQ$9$k!#(B") (defconst skk-num-alist-type3 (append '((ju . "$B==(B") (hyaku . "$BI4(B") (sen . "$B@i(B") (man . "$BK|(B") (oku . "$B2/(B") (cho . "$BC{(B") (kei . "$B5~(B")) skk-num-alist-type2) "$B?t;z$N4A;zI=5-$rI=$9O"A[%j%9%H!#(B \"1995\" -> \"$B@i6eI46e==8^(B\" $B$N$h$&$JJ8;zNs$XJQ49$9$k:]$KMxMQ$9$k!#(B") (defconst skk-num-alist-type5 '((ju . "$B=&(B") (hyaku . "$BI4(B") (sen . "$Bot(B") (man . "$Bh_(B") (oku . "$B2/(B") (cho . "$BC{(B") (kei . "$B5~(B") (?0 . "$BNm(B") (?1 . "$B0m(B") (?2 . "$BFu(B") (?3 . "$B;2(B") (?4 . "$B;M(B") (?5 . "$B8`(B") (?6 . "$BO;(B") (?7 . "$B<7(B") (?8 . "$BH,(B") (?9 . "$B6e(B") (?\ . "")) "$B?t;z$N4A;zI=5-$rI=$9O"A[%j%9%H!#(B \"1995\" -> \"$B0mot6eI46e=&8`(B\" $B$N$h$&$JJ8;zNs$XJQ49$9$k:]$KMxMQ$9$k!#(B") (skk-deflocalvar skk-num-list nil "`skk-henkan-key' $B$NCf$K4^$^$l$k?t;z$rI=$9J8;zNs$N%j%9%H!#(B $BNc$($P!"(B\"$B"&$X$$$;$$(B7$B$M$s(B10$B$,$D(B\" $B$rJQ49$9$k$H$-!"(B`skk-henkan-key' $B$O(B \"$B$X$$$;$$(B7$B$M$s(B10$B$,$D(B\" $B$G$"$j!"(B`skk-num-list' $B$O(B (\"7\" \"10\") $B$H$J$k!#(B \(buffer local)") (defvar skk-num-recompute-key nil "#4 $B%?%$%W$N%-!<$K$h$j?tCM$N:F7W;;$r9T$C$?$H$-$N8!:w%-!Kt$O(B IP $B%"%I%l%9!#(B" :type `(radio (string :tag "$B%[%9%HL>(B" ,(or (getenv "SKKSERVER") "localhost")) (const nil)) :group 'skk-server) (defcustom skk-server-prog (getenv "SKKSERV") "*$B<-=q%5!<%P%W%m%0%i%`L>!#(B $B%U%k%Q%9$G=q$/!#(B `skk-server-inhibit-startup-server' $B$,(B nil $B$N;~$K;2>H$5$l!"(B $B$3$N%W%m%0%i%`$,(B SKK $B$h$j5/F0$5$l$k!#(B" :type '(radio (file :tag "$B<-=q%5!<%PL>(B") (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-file :group 'skk-server) (defcustom skk-server-jisyo (getenv "SKK_JISYO") "*$B<-=q%5!<%P%W%m%0%i%`$KEO$9<-=q%U%!%$%kL>!#(B $B%U%k%Q%9$G=q$/!#(B `skk-server-inhibit-startup-server' $B$,(B nil $B$N;~$K;2>H$5$l$k!#(B $B<-=q%U%!%$%k$N;XDjK!$O<-=q%5!<%P$K$h$j0[$J$k$N$GCm0U!#(B % skkserv jisyo $B$N7A<0$N;~$N$_MxMQ$G$-$k%*%W%7%g%s$G$"$k!#(B" :type `(radio (file :tag "$B<-=q%U%!%$%kL>(B" ,(or skk-aux-large-jisyo "")) (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-file :group 'skk-server) (defcustom skk-server-portnum (if (eq system-type 'windows-nt) 1178 nil) "*Non-nil $B$G$"$l$P!"$=$NCM$r(B port number $B$H$7$F(B skkserv $B$H(B TCP $B@\B3$9$k!#(B /etc/services $B$rD>@\=q$-49$($k8"8B$,$J$$%f!<%6!<$N$?$a$NJQ?t!#(B Microsoft Windows $B$G$O%G%U%)%k%HCM$H$7$F(B 1178 $B$,@_Dj$5$l$k!#(B" :type '(radio (integer :tag "$B%]!<%HHV9f(B" 1178) (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-server) (defcustom skk-servers-list nil "*$B<-=q%5!<%PKh$N>pJs%j%9%H!#(B $BJ#?t$N%[%9%H$GF0$$$F$$$k<-=q%5!<%P$K%"%/%;%9$G$-$k>l9g$K$O!"0J2<$N$h$&$K%j%9%H$N(B $B3FMWAG$K=g$K%[%9%HL>!"%U%k%Q%9$G$N<-=q%5!<%PL>!"<-=q%5!<%P$KEO$9<-=q%U%!%$%kL>!"(B $B<-=q%5!<%P$,;HMQ$9$k%]!<%HHV9f$r=q$-!"@_Dj$r$9$k$3$H$,$G$-$k!#(B (setq skk-servers-list '((\"host1\" \"/path/to/skkserv\" \"/path/to/SKK-JISYO.L\" 1178) (\"host2\" \"/path/to/skkserv\"))) $B$3$N>l9g!":G=i$K;XDj$7$?<-=q%5!<%P$K%"%/%;%9$G$-$J$/$J$k$H!"<+F0E*$K=gl9g$O(B nil $B$r;XDj$9$k$+!"(B $B2?$b=q$+$J$$$GNI$$!#(B $B$J$*!"%f!<%6!<<+?H$Kl9g$O!"(B (setq skk-servers-list '((\"host1\") (\"host2\"))) $B$N$h$&$K!"%[%9%HL>$@$1$r=q$/$3$H$,$G$-$k!#>e5-$N@_DjNc$G$O!"(Bhost1, host2 $B$K$*(B $B$1$k(B skkserv $B%5!<%S%9$N(B TCP $B@\B3$N3+;O$N$_;n$_!"<-=q%5!<%P$N5/F0$O;n$_$J$$!#(B" :type '(repeat (list (string :tag "$B%[%9%HL>(B") (radio :tag "$B<-=q%5!<%PL>(B" file (const :tag "$B;XDj$7$J$$(B" nil)) (radio :tag "$B<-=q%U%!%$%k(B" file (const :tag "$B;XDj$7$J$$(B" nil)) (radio :tag "$B%]!<%HHV9f(B" integer (const :tag "$B;XDj$7$J$$(B" nil)))) :group 'skk-server) (defcustom skk-server-report-response nil "*Non-nil $B$G$"$l$P!"<-=q%5!<%P$N1~Ez>u67$rJs9p$9$k!#(B $B6qBNE*$K$O!"JQ49;~$K<-=q%5!<%P$NAw=P$9$kJ8;z$r!#(B" :type 'file :group 'skk-server) (defcustom skk-server-inhibit-startup-server t "*Non-nil $B$G$"$l$P(B `call-process' $B$G$N<-=q%5!<%P5/F0$r6X;_$9$k!#(B" :type 'boolean :group 'skk-server) (defcustom skk-server-load-hook nil "*skk-server.el $B$r%m!<%I$7$?8e$K%3!<%k$5$l$k%U%C%/!#(B" :type 'hook :group 'skk-server) ;;(defvar skk-server-debug nil ;; "*Non-nil $B$G$"$l$P!"<-=q%5!<%P%W%m%0%i%`$r%G%#%P%C%0%b!<%I$G5/F0$9$k!#(B ;;$B%G%#%P%C%0!&%b!<%I$G(B skkserv $B$rAv$i$;$k$H!"$=$N$^$^(B foreground $B$GAv$j!"(B ;;$B%a%C%;!<%8$r=PNO$9$k!#%-!<%\!<%I$+$i3d$j$3$_$r$+$1$k$3$H$b$G$-$k!#(B") (defconst skkserv-working-buffer " *skkserv*") (defvar skkserv-process nil) ;;; skk-sticky related. (defcustom skk-sticky-key nil "*$BJQ493+;O0LCV$b$7$/$OAw$j3+;O0LCV$N;XDj$r$9$k%-!l9g$O(B (setq skk-sticky-key \";\") $B$N$h$&$K(B string $B$r@_Dj$7$F2<$5$$!#(B`skk-sticky-key' $B$K@_Dj$7$?J8(B $B;z$=$N$b$N$rF~NO$7$?$$>l9g$O(B2$B2sB3$1$FBG$D$HF~NO$G$-$^$9!#(B 2. $BI=<($5$l$J$$%-!<(B \"$BL5JQ49(B\" $B$N$h$&$JI=<($rH<$o$J$$%-!<$N>l9g$O(B (setq skk-sticky-key [muhenkan]) ; Windows $B4D6-$@$H(B [noconvert] $B$N$h$&$K$=$N%-!<$rI=$o$9(B vector $B$r@_Dj$7$F2<$5$$!#(B 3. $BF1;~BG80(B 2$B$D$N%-!<$rF1;~$KBG80$9$k$3$H$G$bJQ490LCV$r;XDj$G$-$^$9!#Nc$($P(B \"f\" $B$H(B \"j\" $B$NF1;~BG80$G;XDj$9$k>l9g$O(B (setq skk-sticky-key '(?f ?j)) $B$N$h$&$K(B character $B$N%j%9%H$r@_Dj$7$F2<$5$$!#(B" :type '(radio (string :tag "$BI=<(2DG=$J%-!<(B") (vector :tag "$BI=<($5$l$J$$%-!<(B" symbol) (list :tag "$BF1;~BG80(B" character character) (const :tag "$B;XDj$7$J$$(B" nil)) :group 'skk-sticky) (defcustom skk-sticky-double-interval 0.1 "*$B$3$N;~4V0JFb$KBG80$5$l$?$b$N$rF1;~BG80$HH=Dj$9$k!#(B $BC10L$OIC!#%G%U%)%k%H$O(B 0.1 $BIC!#(B" :type 'number :group 'skk-sticky) ;;; skk-study.el related. (defcustom skk-study-file (if skk-user-directory (expand-file-name "study" skk-user-directory) (convert-standard-filename "~/.skk-study")) "*$B3X=,7k2L$rJ]B8$9$k%U%!%$%k!#(B" :type 'file :group 'skk-study) (defcustom skk-study-backup-file (if skk-user-directory (expand-file-name "study.bak" skk-user-directory) (convert-standard-filename "~/.skk-study.BAK")) "*$B3X=,7k2L$rJ]B8$9$k%U%!%$%k$N%P%C%/%"%C%W!#(B" :type 'file :group 'skk-study) (defcustom skk-study-associates-number 5 "*$BJ]B8$9$k4XO"8l$N?t!#(B" :type 'integer :group 'skk-study) (defcustom skk-study-sort-saving nil "*Non-nil $B$G$"$l$P3X=,7k2L$r%=!<%H$7$F%;!<%V$9$k!#(B" :type 'boolean :group 'skk-study) (defcustom skk-study-check-alist-format nil "*Non-nil $B$G$"$l$P!"3X=,7k2L$NFI$_9~$_;~$KO"A[%j%9%H$N%U%)!<%^%C%H$r%A%'%C%/$9$k!#(B" :type 'boolean :group 'skk-study) (defcustom skk-study-search-times 5 "*$B8=:_$NJQ49%-!<$KBP$9$k4XO"JQ49%-!<$r$$$/$D$^$GAL$C$F8!:w$9$k$+!#(B" :type 'integer :group 'skk-study) (defcustom skk-study-first-candidate t "*Non-nil $B$G$"$l$P!"Bh0l8uJd$G3NDj$7$?:]$b3X=,$9$k!#(B" :type 'boolean :group 'skk-study) (defcustom skk-study-max-distance 30 "*$BD>A0$K3NDj$7$?%]%$%s%H$H:#2s$NJQ49%]%$%s%H$,$3$N5wN%0J>eN%$l$F$$$k$H3X=,$7$J$$!#(B nil $B$N>l9g$OD>A0$K3NDj$7$?%]%$%s%H$H$N5wN%$r9MN8$;$:$K3X=,$9$k!#(B" :type '(radio integer (const nil)) :group 'skk-study) ;;; system internal variables and constants. ;; global variable (defconst skk-study-file-format-version "0.2") (defvar skk-kakutei-end-function nil) (defvar skk-study-alist nil) (defvar skk-study-data-ring nil "$BD>A0$N(B `skk-study-search-times' $B8DJ,$NJQ49%-!<$H3NDj8l%G!<%?!#(B ring.el $B$rMxMQ$7$F$*$j!"6qBNE*$K$O!"2<5-$N$h$&$J9=B$$K$J$C$F$$$k!#(B \(2 3 . [\(\"$B$3$&$>$&(B\" . \"$B9=B$(B\"\)\ \(\"$B$0$?$$$F$-(B\" . \"$B6qBNE*(B\"\) \(\"$B$+$-(B\" . \"$B2<5-(B\"\)]\)") (defvar skk-study-last-save nil) (defvar skk-study-last-read nil) ;;; skk-tankan.el related. (defcustom skk-tankan-search-key ?@ "*$BC14A;zJQ49$r9T$&%-!<%-%c%i%/%?!#(B" :type 'character :group 'skk-jisx0213 :group 'skk-tankan) ;;; $BJ8;z=89g$NJ8;z$KBP$7$F(B ($BIte$H(B XEmacs 21.5 $B0J>e$GF0:n$9$k!#(B XEmacs 21.4 $B$G$O%(%i!<$K$J$i$J$$$+$b$7$l$J$$$,!"6K$a$FIT40A4$JF0:n$7$+$7$J$$!#(B" :type 'boolean :group 'skk-basic :group 'skk-tooltip) (defcustom skk-tooltip-hide-delay 1000 "*tooltip $B$r;H$C$F8uJd$J$II=<($9$k>l9g$K!"I=<($9$k;~4V(B ($BIC(B)$B!#(B $B$3$N;~4V$,7P2a$9$k$H<+F0E*$K(B tooltip $B$O>C$($k!#(B" :type 'integer :group 'skk-tooltip) (defcustom skk-tooltip-face nil "*$B%D!<%k%F%#%C%W$KI=<($9$kJ8;zNs$KE,MQ$9$k%U%'%$%9$r;XDj$9$kJQ?t!#(B $B8uJdJ8;zNs$N%U%'%$%9B0@-!J(B`skk-treat-candidate-appearance-function' $B$K$h$k(B $B2C9)$J$I!K$r$=$N$^$^;H$$$?$$>l9g$O(B nil $B$K@_Dj$9$k!#(B ($B@_DjNc(B) (setq skk-tooltip-face 'font-lock-doc-face)" :type '(radio (face :tag "$B%U%'%$%9$r;XDj(B" tooltip) (const :tag "$B8uJdJ8;zNs$N%U%'%$%9B0@-$r$=$N$^$^;HMQ(B" nil)) :group 'skk-henkan :group 'skk-tooltip) (defcustom skk-tooltip-parameters nil "*tooltip $B$r;H$&>l9g$N(B SKK $BFH<+$N(B tooltip $B%U%l!<%`%Q%i%a!<%?@_Dj!#(B ($B@_DjNc(B) (setq skk-tooltip-parameters '((foreground-color . \"navy blue\") (background-color . \"alice blue\") (border-color . \"royal blue\") (border-width . 1))) " :type '(radio (const :tag "$B@_DjNc$r;n$9(B" ((foreground-color . "navy blue") (background-color . "alice blue") (border-color . "royal blue") (border-width . 1))) (repeat :tag "$BG$0U$N@_Dj(B" (cons (symbol :tag "$B%Q%i%a!<%?L>(B") (sexp :tag "$BCM(B (S$B<0(B)")))) :group 'skk-tooltip) (defcustom skk-tooltip-mouse-behavior (cond ((featurep 'xemacs) 'banish) (t 'banish)) "*Tooltip $B$rI=<($9$k>l9g$N!"%^%&%9%]%$%s%?$N5sF0!#(B `follow' $B$J$i$P!"(B tip $B$N0LCV$K0\F0$9$k!#(B `avoid' $B$J$i$P!"%&%#%s%I%&$NC<$KB`Hr$9$k!#(B `avoid-maybe' $B$J$i$P!"%&%#%s%I%&>e$K$"$k%^%&%9%]%$%s%?$N$_B`Hr$9$k!#(B `banish' $B$J$i$P!"%&%#%s%I%&$NC<$KB`Hr$7$?$^$^5"$C$F$3$J$$!#(B `nil' $B$J$i$P!"B`Hr$7$J$$!#$3$N>l9g!"(Btip $B$N%F%-%9%H$H%^%&%9%]%$%s%?$,(B $B=E$J$C$?$j!"$&$^$/(B tip $B$,I=<($G$-$J$+$C$?$j$9$k$N$GCm0U!#(B $B$3$N5!G=$O(B GNU Emacs 22 $B0J>e$+(B XEmacs 21.5 $B0J>e$GF0:n$9$k!#(B" :type '(radio (const :tag "Tip $B$K=>$&(B" follow) (const :tag "$B%&%#%s%I%&$NC<$KF($2$k(B" avoid) (const :tag "$BF($2$?$[$&$,$h$5$=$&$J$H$-$@$1F($2$k(B" avoid-maybe) (const :tag "$BF($2$?$^$^5"$i$J$$(B" banish) (const :tag "$B5o:B$k(B" nil)) :group 'skk-tooltip) (defcustom skk-tooltip-x-offset (if (featurep 'xemacs) 0 (/ (1+ (frame-char-height)) 2)) "*Tooltip $B$NI=<(0LCV$r1&$K$:$i$9%T%/%;%k?t!#(B $BIi$N@0?t$r;XDj$9$k$H:8$K$:$l$k!#(B" :type 'integer :group 'skk-tooltip) (defcustom skk-tooltip-y-offset 0 "*Tooltip $B$NI=<(0LCV$r2<$K$:$i$9%T%/%;%k?t!#(B $BIi$N@0?t$r;XDj$9$k$H>e$K$:$l$k!#(B" :type 'integer :group 'skk-tooltip) (defcustom skk-tooltip-function (lambda (tooltip-str) (skk-tooltip-show-at-point tooltip-str 'listing)) "*Tip $BIA2h5!9=$N4X?t$r;XDj$9$k!#(B $B%G%U%)%k%H$G$O(B Emacs $BI8=`$N(B Tooltip $B$r;HMQ$9$k!#(B $BB>$N(B Tip $BIA2h5!9=(B $B$G$"$k(B pos-tip $B$d(B popup-tip $B$b;XDj$G$-$k!#(B" :type 'function :group 'skk-tooltip) ;;; skk-tut.el related. (defcustom skk-tut-file (cond ((featurep 'xemacs) (or (locate-data-file "SKK.tut") "/usr/local/share/skk/SKK.tut")) ((fboundp 'locate-file) (or (locate-file "skk/SKK.tut" (list (expand-file-name "../../.." data-directory))) (locate-file "skk/SKK.tut" (list data-directory)) "/usr/local/share/skk/SKK.tut")) (t "/usr/local/share/skk/SKK.tut")) "*SKK $BF|K\8l%A%e!<%H%j%"%k$N%U%!%$%kL>(B ($B%Q%9$r4^$`(B)$B!#(B" :type 'file :group 'skk-tut) (defcustom skk-tut-lang "Japanese" "*SKK $B%A%e!<%H%j%"%k$GMQ$$$k8@8l!#(B \\[universal-argument] \\[skk-tutorial] $B$K$h$k8@8l;XDj$O!"$3$NJQ?t$h$j$bM%@h(B $B$9$k!#(B" :type '(radio (string "Japanese") (string "English")) :set (lambda (symbol value) (prog1 (if (fboundp 'custom-set-default) (custom-set-default symbol value) (set-default symbol value)) (setq skk-tut-current-lang nil))) :group 'skk-tut) (defvar skk-tut-file-suffix-alist `(("Japanese" . "") ("English" . ".E")) "Alist of (LANGUAGE . suffix) pairs. For example, if filename of the Japanese version is \"SKK.tut\", then filename of the English version will be \"SKK.tut.E\".") (defvar skk-tut-current-lang nil) (defcustom skk-tut-use-face skk-use-face "*Non-nil $B$G$"$l$P!"%A%e!<%H%j%"%k$G(B face $B$rMxMQ$7$FI=<($9$k!#(B" :type 'boolean :group 'skk-tut) (defface skk-tut-section-face '((((class color) (background light)) (:foreground "yellow" :background "dodgerblue")) (((class color) (background dark)) (:foreground "yellow" :background "slateblue")) (((class grayscale)) (:bold t) (:italic t))) "*$B%A%e!<%H%j%"%kCf$N%;%/%7%g%s$NI=<(ItJ,$N(B face$B!#(B" :group 'skk-tut) (defface skk-tut-do-it-face '((((class color) (background light)) (:foreground "DarkGoldenrod")) (((class color) (background dark)) (:foreground "LightGoldenrod")) (((class grayscale)) (:bold t))) "*$B%A%e!<%H%j%"%kCf$N;X<(9`L\$NI=<(ItJ,$N(B face$B!#(B" :group 'skk-tut) (defface skk-tut-question-face '((((class color) (background light)) (:foreground "Blue")) (((class color) (background dark)) (:foreground "LightSkyBlue")) (((class grayscale)) (:underline t))) "*$B%A%e!<%H%j%"%kCf$NLdBj$NI=<(ItJ,$N(B face$B!#(B" :group 'skk-tut) (defface skk-tut-key-bind-face '((((class color) (background light)) (:foreground "Firebrick")) (((class color) (background dark)) (:foreground "OrangeRed")) (((class grayscale)) (:bold t))) "*$B%A%e!<%H%j%"%kCf$N%-!<%P%$%s%I$NI=<(ItJ,$N(B face$B!#(B" :group 'skk-tut) (defface skk-tut-hint-face '((((class color) (background light)) (:foreground "CadetBlue")) (((class color) (background dark)) (:foreground "Aquamarine")) (((class grayscale)) (:italic t))) "*$B%A%e!<%H%j%"%kCf$N%R%s%H$NI=<(ItJ,$N(B face$B!#(B $B8=:_$N$H$3$m!"(BSKK.tut.E $B$G$7$+;HMQ$5$l$F$$$J$$!#(B" :group 'skk-tut) ;;; skk-show-mode.el related. (defvar skk-show-mode-invoked nil) (defvar skk-show-mode-functions '((inline . skk-show-mode-inline) (tooltip . skk-show-mode-tooltip))) (defcustom skk-show-mode-show nil "*Non-nil $B$G$"$l$P!"$+$J%b!<%I$d%"%9%-!<%b!<%I$X@Z$jBX$o$C$?$H$-$K%+!<%=%kIU6a$K(B skk-*-mode-string $B$rI=<($9$k!#(B $BI=<(%9%?%$%k$O(B `skk-show-mode-style' $B$G;XDj$9$k!#(B" :type 'boolean :group 'skk-visual) (defvar skk-show-mode-enable t "$BFbItMQ!#%A%e!<%H%j%"%ku67$GH?1G$5$l$J$$$3$H$KBP=h(B (when (and (not noninteractive) window-system) (dolist (f '(skk-tut-section-face skk-tut-section-face skk-tut-do-it-face skk-tut-question-face skk-tut-key-bind-face skk-tut-hint-face)) (set-face-foreground f (face-foreground f)))) ;;; skk-viper.el related. (defcustom skk-use-viper nil "*Non-nil $B$G$"$l$P!"(BVIPER $B$KBP1~$9$k!#(B" :type 'boolean :group 'skk-viper) (defvar skk-viper-saved-cursor-color (when (and (featurep 'viper) (boundp 'viper-insert-state-cursor-color)) (symbol-value 'viper-insert-state-cursor-color))) (make-variable-buffer-local 'viper-insert-state-cursor-color) (defconst skk-viper-use-vip-prefix (not (fboundp 'viper-normalize-minor-mode-map-alist))) (defconst skk-viper-normalize-map-function (if skk-viper-use-vip-prefix 'vip-normalize-minor-mode-map-alist 'viper-normalize-minor-mode-map-alist) "Viper $B$,(B `minor-mode-map-alist' $B$rD4@0$9$k$?$a$N4X?t!#(B") (provide 'skk-vars) ;;; skk-vars.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-version.el000066400000000000000000000044771361774317600212350ustar00rootroot00000000000000;;; skk-version.el --- version information for SKK -*- coding:iso-2022-jp -*- ;; Copyright (C) 2000, 2001, 2003 NAKAJIMA Mikio ;; Author: NAKAJIMA Mikio ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-and-compile (require 'skk-macs)) (put 'skk-version 'product-name "Daredevil SKK") (put 'skk-version 'version-string (let ((ver "16.3") (mepla "mepla") (path (catch 'exit (dolist (p load-path) ;; ;; ~/.emacs.d/elpa/ddskk-20150107.409/ (when (string-match "ddskk-[0-9]+\.[0-9]+" p) (throw 'exit p)))))) (if path (format "%s/%s-%s" ver mepla (car (cdr (split-string path "ddskk-")))) ver))) (put 'skk-version 'codename "Kuromatsunai") ; See also `READMEs/CODENAME.ja' (put 'skk-version 'codename-ja "$B9u>>Fb(B") ;;;###autoload (defun skk-version (&optional without-codename) "Return SKK version with its codename. If WITHOUT-CODENAME is non-nil, simply return SKK version without the codename." (interactive "P") (if (skk-called-interactively-p 'interactive) (message "%s" (skk-version without-codename)) (if without-codename (format "%s/%s" (get 'skk-version 'product-name) (get 'skk-version 'version-string)) (format "%s/%s (%s)" (get 'skk-version 'product-name) (get 'skk-version 'version-string) (if skk-version-codename-ja (get 'skk-version 'codename-ja) (get 'skk-version 'codename)) )))) (provide 'skk-version) ;;; skk-version.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-viper.el000066400000000000000000000274271361774317600206750ustar00rootroot00000000000000;; skk-viper.el --- SKK related code for Viper -*- coding: iso-2022-jp -*- ;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 ;; Masahiko Sato ;; Murata Shuuichirou ;; Author: Masahiko Sato , ;; Murata Shuuichirou ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'skk-macs) (require 'skk-vars) (if (boundp 'viper-mode) (when (eq viper-mode 'ask) (setq viper-mode nil)) (defvar viper-mode nil))) (require 'viper) (eval-when-compile (defvar viper-insert-state-cursor-color)) ;;; macros and inline functions. (defmacro skk-viper-advice-select (viper vip arg body) `(if skk-viper-use-vip-prefix (defadvice ,vip ,arg ,@body) (defadvice ,viper ,arg ,@body))) (setq skk-kana-cleanup-command-list (cons (if skk-viper-use-vip-prefix 'vip-delete-backward-char 'viper-del-backward-char-in-insert) skk-kana-cleanup-command-list)) (setq skk-use-viper t) (save-match-data (unless (string-match (if (eval-when-compile (and (featurep 'emacs) (>= emacs-major-version 22))) (sentence-end) sentence-end) "$B!#!)!*!%(B") (setq sentence-end (concat "[$B!#!)!*!%(B]\\|" sentence-end)))) ;;; cursor color support. ;; what should we do if older Viper that doesn't have ;; `viper-insert-state-cursor-color'? (when (boundp 'viper-insert-state-cursor-color) (defadvice skk-cursor-current-color (around skk-viper-cursor-ad activate) "vi-state $B0J30$G3n$D(B SKK $B%b!<%I$N$H$-$N$_(B SKK $BM3Mh$N%+!<%=%k?'$rJV$9!#(B" (cond ((not skk-use-color-cursor) ad-do-it) ((or (and (boundp 'viper-current-state) (eq viper-current-state 'vi-state)) (and (boundp 'vip-current-mode) (eq vip-current-mode 'vi-mode))) (setq ad-return-value skk-cursor-default-color)) ((not skk-mode) (setq viper-insert-state-cursor-color skk-viper-saved-cursor-color) (setq ad-return-value (cond ((eq viper-current-state 'insert-state) viper-insert-state-cursor-color) ((eq viper-current-state 'replace-state) viper-replace-overlay-cursor-color) ((eq viper-current-state 'emacs-state) viper-emacs-state-cursor-color)))) (t ad-do-it (setq viper-insert-state-cursor-color ad-return-value)))) (let ((funcs ;; cover to VIP/Viper functions. (if skk-viper-use-vip-prefix '(vip-Append vip-Insert vip-insert vip-escape-to-emacs vip-open-line) '(viper-change-state-to-insert viper-change-state-to-replace viper-change-state-to-vi viper-change-state-to-emacs viper-insert-state-post-command-sentinel)))) (dolist (func funcs) (eval `(defadvice ,(intern (symbol-name func)) (after skk-viper-cursor-ad activate) "Set cursor color which represents skk mode." (when skk-use-color-cursor (skk-cursor-set)))))) (let ((funcs '(skk-abbrev-mode skk-jisx0208-latin-mode skk-latin-mode skk-toggle-kana))) (dolist (func funcs) (eval `(defadvice ,(intern (symbol-name func)) (after skk-viper-cursor-ad activate) "\ `viper-insert-state-cursor-color' $B$r(B SKK $B$NF~NO%b!<%I$N%+!<%=%k?'$H9g$o$;$k!#(B" (when skk-use-color-cursor (setq viper-insert-state-cursor-color (skk-cursor-current-color))))))) (defadvice skk-mode (after skk-viper-cursor-ad activate) "Set cursor color which represents skk mode." (when skk-use-color-cursor (skk-cursor-set))) (defadvice skk-kakutei (after skk-viper-cursor-ad activate) (setq viper-insert-state-cursor-color skk-cursor-hiragana-color))) (when (boundp 'viper-insert-state-cursor-color) (cond ((eval-when-compile (featurep 'xemacs)) (skk-defadvice read-from-minibuffer (before skk-viper-ad activate) (when skk-use-color-cursor (add-hook 'minibuffer-setup-hook 'skk-cursor-set 'append)))) (t (skk-defadvice read-from-minibuffer (before skk-viper-ad activate) "`minibuffer-setup-hook' $B$K(B `update-buffer-local-frame-params' $B$r%U%C%/$9$k!#(B `viper-read-string-with-history' $B$O(B `minibuffer-setup-hook' $B$r4X?t%m!<%+%k(B $B$K$7$F$7$^$&$N$G!"M=$a(B `minibuffer-setup-hook' $B$K$+$1$F$*$$$?%U%C%/$,L58z(B $B$H$J$k!#(B" (when skk-use-color-cursor ;; non-command subr. (add-hook 'minibuffer-setup-hook 'ccc-update-buffer-local-frame-params 'append)))))) ;;; advices. ;; vip-4 $B$NF1$O(B vip-read-string-with-history$B!)(B (defadvice viper-read-string-with-history (after skk-viper-ad activate) "$B8e$NJ8;z$,(B JISX0208/JISX0213 $B$@$C$?$i(B\ `forward-word' $B$9$k!#(B" (if (and skk-mode (or (skk-jisx0208-p (following-char)) (skk-jisx0213-p (following-char)))) (forward-word (ad-get-arg 0)) ad-do-it))) (skk-viper-advice-select viper-backward-word-kernel vip-backward-word (around skk-ad activate) ("SKK $B%b!<%I$,%*%s$G!"%]%$%s%H$ND>A0$NJ8;z$,(B JISX0208/JISX0213 $B$@$C$?$i(B\ `backward-word' $B$9$k!#(B" (if (and skk-mode (or (skk-jisx0208-p (preceding-char)) (skk-jisx0213-p (preceding-char)))) (backward-word (ad-get-arg 0)) ad-do-it))) ;; please sync with `skk-delete-backward-char' (skk-viper-advice-select viper-del-backward-char-in-insert vip-delete-backward-char (around skk-ad activate) ("$B"'%b!<%I$G(B `skk-delete-implies-kakutei' $B$J$iD>A0$NJ8;z$r>C$7$F3NDj$9$k!#(B $B"'%b!<%I$G(B `skk-delete-implies-kakutei' $B$,(B nil $B$@$C$?$iA08uJd$rI=<($9$k!#(B $B"&%b!<%I$G(B`$B"&(B'$B$h$j$bA0$N%]%$%s%H$GC$9!#(B" (skk-with-point-move (let ((count (or (prefix-numeric-value (ad-get-arg 0)) 1))) (cond ((eq skk-henkan-mode 'active) (if (and (not skk-delete-implies-kakutei) (= (+ skk-henkan-end-point (length skk-henkan-okurigana)) (point))) (skk-previous-candidate) ;; overwrite-mode $B$G!"%]%$%s%H$,A43QJ8;z$K0O$^$l$F$$$k$H(B ;; $B$-$K(B delete-backward-char $B$r;H$&$H!"A43QJ8;z$O>C$9$,H>(B ;; $B3QJ8;zJ,$7$+(B backward $BJ}8~$K%]%$%s%H$,La$i$J$$(B (Emacs ;; 19.31 $B$K$F3NG'(B)$B!#JQ49Cf$N8uJd$KBP$7$F$O(B ;; delete-backward-char $B$GI,$:A43QJ8;z(B 1 $BJ8;zJ,(B backward ;; $BJ}8~$KLa$C$?J}$,NI$$!#(B (if overwrite-mode (progn (backward-char count) (delete-char count)) ad-do-it) ;; XXX assume skk-prefix has no multibyte chars. (if (> (length skk-prefix) count) (setq skk-prefix (substring skk-prefix 0 (- (length skk-prefix) count))) (setq skk-prefix "")) (when (>= skk-henkan-end-point (point)) (if (eq skk-delete-implies-kakutei 'dont-update) (let ((skk-update-jisyo-function #'ignore)) (skk-kakutei)) (skk-kakutei))))) ((and skk-henkan-mode (>= skk-henkan-start-point (point)) (not (skk-get-prefix skk-current-rule-tree))) (skk-set-henkan-count 0) (skk-kakutei)) ;; $BF~NOCf$N8+=P$78l$KBP$7$F$O(B delete-backward-char $B$G(B ;; $BI,$:A43QJ8;z(B 1$BJ8;zJ,(B backward $BJ}8~$KLa$C$?J}$,NI$$!#(B ((and skk-henkan-mode overwrite-mode) (backward-char count) (delete-char count)) (t (skk-delete-okuri-mark) (if (skk-get-prefix skk-current-rule-tree) (skk-erase-prefix 'clean) (skk-set-marker skk-kana-start-point nil) ad-do-it))))))) (skk-viper-advice-select viper-intercept-ESC-key vip-escape-to-emacs (before skk-add activate) ("$B"&%b!<%I!""'%b!<%I$@$C$?$i3NDj$9$k!#(B" (when (and skk-mode skk-henkan-mode) (skk-kakutei)))) (skk-viper-advice-select viper-intercept-ESC-key vip-escape-to-emacs (after skk-kana-cleanup-ad activate) ("vi-state $B0\9T$N:]$K3NDjF~NO%b!<%I$GF~NO$5$l$?%m!<%^;z%W%l%U%#%C%/%9$r>C$9!#(B" (skk-kana-cleanup t))) (skk-viper-advice-select viper-join-lines vip-join-lines (after skk-ad activate) ("$B%9%Z!<%9$NN>B&$NJ8;z%;%C%H$,(B JISX0208/JISX0213 $B$@$C$?$i%9%Z!<%9$r val 0) (setq c (following-char)) (delete-char 1 nil) (cond ((skk-ascii-char-p c) (if (eq c (upcase c)) (insert-char (downcase c) 1) (insert-char (upcase c) 1))) ((and (<= ?$B$!(B c) (>= ?$B$s(B c)) (insert (skk-hiragana-to-katakana (char-to-string c)))) ((and (<= ?$B%!(B c) (>= ?$B%s(B c)) (insert (skk-katakana-to-hiragana (char-to-string c)))) (t (insert-char c 1))) (when (eolp) (backward-char 1)) (setq val (1- val)))))) (defun skk-viper-init-function () (when (and (boundp 'viper-insert-state-cursor-color) (featurep 'skk-cursor)) (setq viper-insert-state-cursor-color (skk-cursor-current-color))) ;; viper-toggle-key-action $B$HO"F0$5$;$k!)(B (skk-viper-normalize-map) (remove-hook 'skk-mode-hook 'skk-viper-init-function)) (add-hook 'skk-mode-hook 'skk-viper-init-function) (provide 'skk-viper) ;;; skk-viper.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk-xemacs.el000066400000000000000000000412551361774317600210230ustar00rootroot00000000000000;;; skk-xemacs.el --- XEmacs support for SKK -*- coding: iso-2022-jp -*- ;; Copyright (C) 2000-2010 SKK Development Team ;; Author: Tetsuo Tsukamoto ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'avoid)) (require 'balloon-help) (require 'overlay) (require 'poe) (require 'skk-macs) (eval-and-compile (autoload 'display-pixel-height "frame") (autoload 'display-pixel-width "frame")) ;;;###autoload (unless noninteractive (require 'skk-setup)) ;; Variables. (defvar skk-xemacs-extent-alist (list (cons 'default (make-extent nil nil)) (cons 'hiragana (make-extent nil nil)) (cons 'katakana (make-extent nil nil)) (cons 'jisx0208-latin (make-extent nil nil)) (cons 'latin (make-extent nil nil)) (cons 'jisx0201 (make-extent nil nil)) (cons 'abbrev (make-extent nil nil)))) (defvar skk-xemacs-modeline-menu-items '("Daredevil SKK Menu" ["Hiragana" (cond (skk-mode (skk-j-mode-on)) (t (skk-mode t))) :selected (and skk-j-mode (not skk-katakana)) :style radio :keys nil] ["Katakana" (cond (skk-mode (skk-j-mode-on t)) (t (skk-mode t) (skk-j-mode-on t))) :selected (and skk-j-mode skk-katakana) :style radio :keys nil] ["Hankaku alphabet" skk-latin-mode :selected skk-latin-mode :style radio :keys nil] ["Zenkaku alphabet" skk-jisx0208-latin-mode :selected skk-jisx0208-latin-mode :style radio :keys nil] "--" ["Read Manual" skk-xemacs-info t] ["Start Tutorial" skk-tutorial t] ["Customize SKK" skk-customize-group-skk t] ["Customize SKK (simple)" skk-customize t] ["Send a Bug Report" (let (skk-japanese-message-and-error) (skk-submit-bug-report)) t] "--" ["About Daredevil SKK..." skk-version t] ["Visit Daredevil SKK Web Site" skk-xemacs-visit-openlab t])) (defvar skk-tooltip-default-font-pixel-size 12) (defvar skk-xemacs-need-redraw-tooltip nil "*Compiz $B2TF0;~$J$I%D!<%k%F%#%C%W$N2#I}$,$*$+$7$$$H$-$K@_Dj!#(B Non-nil $B$J$i$P%D!<%k%F%#%C%W$r:FIA2h$9$k!#(B") (defvar skk-xemacs-redraw-interval 0.01 "*$B%D!<%k%F%#%C%W:FIA2h$N:]$KCV$/;~4V!#(B") ;; Functions. (defun skk-xemacs-modeline-menu () (interactive) ;; Find keys (aset (nth 1 skk-xemacs-modeline-menu-items) 7 (cond (skk-katakana (skk-xemacs-find-func-keys 'skk-toggle-kana)) ((not skk-mode) (skk-xemacs-find-func-keys 'skk-mode)) ((not skk-j-mode) (skk-xemacs-find-func-keys 'skk-kakutei)) (t nil))) (aset (nth 2 skk-xemacs-modeline-menu-items) 7 (if (and skk-j-mode (not skk-katakana)) (skk-xemacs-find-func-keys 'skk-toggle-kana) nil)) (aset (nth 3 skk-xemacs-modeline-menu-items) 7 (if skk-j-mode (skk-xemacs-find-func-keys 'skk-latin-mode) nil)) (aset (nth 4 skk-xemacs-modeline-menu-items) 7 (if skk-j-mode (skk-xemacs-find-func-keys 'skk-jisx0208-latin-mode) nil)) ;; (popup-menu skk-xemacs-modeline-menu-items)) (defun skk-xemacs-info () (interactive) (Info-goto-node "(skk)")) (defun skk-xemacs-customize () (interactive) (customize-group "skk")) (defun skk-xemacs-visit-openlab () (interactive) (browse-url "http://openlab.jp/skk/index-j.html")) ;;;###autoload (defun skk-xemacs-prepare-modeline-properties () (setq skk-icon (if (and skk-show-icon (locate-data-file "skk.xpm") (featurep 'xpm)) (let ((glyph (make-glyph))) (set-glyph-image glyph (vector 'xpm :file (locate-data-file "skk.xpm"))) (cons (cdr (assq 'hiragana skk-xemacs-extent-alist)) glyph)) nil)) ;; (unless skk-use-color-cursor (setq skk-indicator-use-cursor-color nil)) ;; (let (extent face) (when window-system (defvar skk-xemacs-modeline-map (let ((map (make-sparse-keymap))) (define-key map [button3] (eval '(make-modeline-command-wrapper 'skk-xemacs-modeline-menu))) (define-key map [button1] (eval '(make-modeline-command-wrapper 'skk-xemacs-modeline-menu))) map))) (dolist (mode '(hiragana katakana jisx0208-latin latin jisx0201 abbrev)) ;; (setq extent (cdr (assq mode skk-xemacs-extent-alist))) (when window-system (set-extent-keymap extent skk-xemacs-modeline-map) (set-extent-property extent 'help-echo "button1 or button3 shows SKK menu")) ;; (setq face (intern (format "skk-xemacs-%s-face" mode))) (unless (find-face face) (make-face face) (set-face-parent face 'modeline nil '(default)) (when (and window-system skk-indicator-use-cursor-color) (set-face-foreground face (symbol-value (intern (format "skk-cursor-%s-color" mode))) nil '(default color win)))) (set-extent-face extent face)))) (defun skk-xemacs-find-func-keys (func) (let ((keys (or (do ((spec (nth 4 skk-rule-tree) (cdr spec)) (list nil (car spec)) (str nil (if (eq (nth 3 list) func) (nth 1 list) nil))) ((or str (null spec)) (cond ((not (stringp str)) nil) ((string= str "\C-j") [(control j)]) (t str)))) (let ((k (where-is-internal func skk-j-mode-map))) (dolist (key k) (when (and (= (length key) 2) (eq (aref key 1) 'linefeed)) (aset key 1 '(control j)))) k)))) (if keys (sorted-key-descriptions (if (listp keys) (skk-remove-duplicates keys) keys)) nil))) (defun skk-xemacs-mouse-position (pos) "Returns (WINDOW X . Y) of current point - analogous to mouse-position" (let* ((beg (window-start)) (col (save-excursion (goto-char pos) (current-column))) (row)) (setq row (count-lines beg pos)) (cons (selected-window) (cons col row)))) (unless (fboundp 'multibyte-string-p) (defalias 'multibyte-string-p 'stringp)) ;; XEmacs 21.4 (unless (fboundp 'current-column) (defalias 'current-pixel-row 'ignore)) (defalias 'skk-tooltip-hide 'balloon-help-undisplay-help) (defun skk-tooltip-resize-text (text) (let ((lines 0) (max-lines ;; $B2hLL$NH>J,$N9b$5$r4p=`$K:GBg9b$r7h$a$k(B (- (/ (/ (display-pixel-height) 2) (or (cdr (assq 'PIXEL_SIZE (font-properties (face-font 'default)))) skk-tooltip-default-font-pixel-size)) 2)) (columns 0) (current-column nil)) (with-temp-buffer (set-buffer-multibyte t) (insert text) (goto-char (point-min)) (while (not (eobp)) (setq lines (1+ lines)) (cond ((= lines max-lines) ;; $BD9$9$.$k(B (beginning-of-line) (insert "($BD9$9$.$k$N$G>JN,$5$l$^$7$?(B)") (delete-region (point) (point-max)) (goto-char (point-max)) (setq text (buffer-string))) (t (end-of-line) (setq current-column (current-column)) (when (> current-column columns) (setq columns current-column)) (forward-line 1))))) ;; (text . (x . y)) (cons text (cons columns lines)))) (defun skk-tooltip-show-at-point (text &optional situation) (require 'avoid) (let* ((pos (if skk-isearch-switch (with-current-buffer (window-buffer (minibuffer-window)) (point-min)) (or (and (eq skk-henkan-mode 'active) (ignore-errors (marker-position skk-henkan-start-point))) (point)))) (P (cdr (skk-xemacs-mouse-position pos))) (oP (cdr (mouse-position))) (avoid-destination (if (memq skk-tooltip-mouse-behavior '(avoid avoid-maybe banish)) (mouse-avoidance-banish-destination) nil)) (window (if skk-isearch-switch (minibuffer-window) (selected-window))) (fontsize (or (cdr (assq 'PIXEL_SIZE (font-properties (face-font 'default)))) 0)) (edges (window-pixel-edges window)) (left (+ (car edges) (* 0 (/ (1+ fontsize) 2)) (or (current-pixel-column window pos) (+ (car P) (/ (1+ fontsize) 2))) (frame-parameter (selected-frame) 'left))) (top (+ (cadr edges) (* 7 (/ (1+ fontsize) 2)) (or (current-pixel-row window pos) (+ (cdr P) fontsize)) (frame-parameter (selected-frame) 'top))) (tooltip-info (skk-tooltip-resize-text text)) (text (car tooltip-info)) (tooltip-size (cdr tooltip-info)) (text-width (* (/ (1+ fontsize) 2) (+ 2 (car tooltip-size)))) (text-height (* fontsize (+ 1 (cdr tooltip-size)))) (screen-width (display-pixel-width)) (screen-height (display-pixel-height)) (inhibit-quit t) event) ;; (when (null (car P)) (unless (memq skk-tooltip-mouse-behavior '(avoid-maybe banish nil)) (setq oP (cdr (mouse-avoidance-point-position))))) ;; (when (> (+ left text-width (* 4 fontsize)) screen-width) ;; $B1&$K4s$j$9$.$F7g$1$F$7$^$o$J$$$h$&$K(B (setq left (- left (- (+ left text-width ;; $B>/$7M>7W$K:8$K4s$;$J$$$H(B avoid ;; $B$7$?%^%&%9%]%$%s%?$H43>D$9$k(B (* 10 (/ (1+ fontsize) 2))) screen-width)))) (when (> (+ top text-height (* 3 fontsize)) screen-height) ;; $B2<$K4s$j$9$.$F7g$1$F$7$^$o$J$$$h$&$K(B (setq top (- top (- (+ top text-height) screen-height) ;; $B==J,>e$2$J$$$H%F%-%9%H$H=E$J$k$N$G!"(B ;; $B$$$C$=%F%-%9%H$N>e$K$7$F$_$k(B (- screen-height top) (* 4 fontsize))) ;; $B$5$i$K(B X $B:BI8$r(B... (let ((right (+ left text-width skk-tooltip-x-offset)) (mouse-x (+ (frame-parameter (selected-frame) 'left) (* (frame-pixel-width))))) (when (and (<= left mouse-x) (<= mouse-x right)) ;; $B%^%&%9%]%$%s%?$HHo$j$=$&$J$H$-(B (setq left (- left (- right mouse-x) (* 4 fontsize)))))) ;; (setq balloon-help-help-object-x (+ left skk-tooltip-x-offset) balloon-help-help-object-y (+ top skk-tooltip-y-offset)) ;; (when (eq skk-tooltip-mouse-behavior 'follow) (mouse-avoidance-set-mouse-position P)) ;; (when (or (and (memq skk-tooltip-mouse-behavior '(avoid banish)) (not (equal (mouse-position) avoid-destination))) (and (eq skk-tooltip-mouse-behavior 'avoid-maybe) (cadr (mouse-position)) (not (equal (mouse-position) avoid-destination)))) (save-window-excursion (select-window (frame-rightmost-window (selected-frame) 0)) (mouse-avoidance-banish-mouse))) ;; (skk-tooltip-show-1 text (eq situation 'listing)) ;; (when (eq situation 'annotation) (skk-annotation-message situation)) ;; (setq event (next-command-event)) (cond ((skk-key-binding-member (skk-event-key event) '(keyboard-quit skk-kanagaki-bs skk-kanagaki-esc) skk-j-mode-map) (skk-tooltip-hide) (when (and (not (memq skk-tooltip-mouse-behavior '(banish nil))) (car oP)) (mouse-avoidance-set-mouse-position oP)) (skk-set-henkan-count 0) (cond ((eq skk-henkan-mode 'active) (skk-unread-event (character-to-event (aref (car (where-is-internal 'skk-previous-candidate skk-j-mode-map)) 0))) (when (eq situation 'listing) ;; skk-henkan $B$^$G0l5$$K(B throw $B$9$k!#(B (throw 'unread nil))) (t (skk-unread-event event)))) (t (skk-tooltip-hide) (when (and (not (memq skk-tooltip-mouse-behavior '(banish nil))) (car oP)) (mouse-avoidance-set-mouse-position oP)) ;; I don't know what magic it is... (sit-for 0.01) ;; (skk-unread-event event))))) (defun skk-tooltip-show-1 (help &optional listing) (let ((balloon-help-frame-name (or (cdr (assq 'name skk-tooltip-parameters)) balloon-help-frame-name)) (balloon-help-foreground (or (cdr (assq 'foreground-color skk-tooltip-parameters)) balloon-help-foreground)) (balloon-help-background (or (cdr (assq 'background-color skk-tooltip-parameters)) balloon-help-background)) (balloon-help-border-color (or (cdr (assq 'border-color skk-tooltip-parameters)) balloon-help-border-color)) (balloon-help-border-width (or (cdr (assq 'border-with skk-tooltip-parameters)) balloon-help-border-width)) (balloon-help-timeout skk-tooltip-hide-delay) (balloon-help-font (face-font 'default))) (setq balloon-help-timeout-id nil) (when (and (device-on-window-system-p) (stringp help)) (save-excursion (when (find-face skk-tooltip-face) (setq help (propertize help 'face skk-tooltip-face))) (when (or (not (frame-live-p balloon-help-frame)) (not (eq (selected-device) (frame-device balloon-help-frame)))) (setq balloon-help-frame (balloon-help-make-help-frame))) (set-buffer balloon-help-buffer) (erase-buffer) (insert help) (if (not (bolp)) (insert ?\n)) (indent-rigidly (point-min) (point-max) 1) (balloon-help-set-frame-properties) (skk-xemacs-balloon-help-resize-help-frame listing) (balloon-help-move-help-frame) (balloon-help-expose-help-frame) (when skk-xemacs-need-redraw-tooltip ;; Compiz $B2TF0;~$K:FIA2h$7$J$$$H2#I}$,$*$+$7$/$J$k$3$H$"$j(B (sleep-for skk-xemacs-redraw-interval) (skk-tooltip-hide) (sleep-for skk-xemacs-redraw-interval) (balloon-help-expose-help-frame)))) ;; Is this right? (setq balloon-help-timeout-id (add-timeout (/ balloon-help-timeout 1000.0) #'balloon-help-display-help nil)))) (defun skk-xemacs-balloon-help-resize-help-frame (&optional listing) ;; GNU Emacs $B$H0c$$(B XEmacs $B$N(B balloon help $B$O%5%$%:$N<+F0D4@0$,(B ;; $B$&$^$/8z$+$:!"J8;z$,7g$1$k$3$H$b$"$k$?$a!"$3$3$G=PMh$k$@$1(B ;; $BD4@0$9$k!#(B (save-excursion (set-buffer balloon-help-buffer) (let* ((longest 0) (lines 0) (done nil) (inst (vector 'string ':data nil)) (window (frame-selected-window balloon-help-frame)) (font-width (min (font-width (face-font 'default) balloon-help-frame) (glyph-width (make-glyph "a") window) (/ (glyph-width (make-glyph "$B$"(B") window) 2))) start width (window-min-height 1) (window-min-width 1)) (goto-char (point-min)) (while (not done) (setq start (point)) (end-of-line) (aset inst 2 (buffer-substring start (point))) (setq longest (max longest (glyph-width (make-glyph inst) window)) done (not (zerop (forward-line)))) (and (not done) (setq lines (1+ lines)))) (setq width (round (/ (float longest) (float font-width)))) ;; Increase width and lines... (when (<= width 10) (setq width (+ (round (log (float width) 2)) width))) (setq lines (cond ((= lines 1) lines) ((or listing (= lines 2)) (+ 1 lines)) (t (+ (max 1 (round (/ (float lines) 10.0))) ; 1+ per 10 lines lines)))) ;; (set-frame-size balloon-help-frame width lines)))) ;; Hooks. ;;; Not necessary, but... ;;;###autoload (add-hook 'before-init-hook ;;;###autoload #'(lambda () ;;;###autoload (define-key ctl-x-map "\C-j" 'skk-mode))) ;; Advice. (skk-defadvice minibuffer-keyboard-quit (around skk-xemacs-ad activate) ;; XEmacs has `minibuffer-keyboard-quit' ;; that has nothing to do with delsel. (skk-remove-minibuffer-setup-hook 'skk-j-mode-on 'skk-setup-minibuffer 'skk-add-skk-pre-command) (skk-exit-henkan-in-minibuff) (cond ((not skk-mode) ad-do-it) ((not skk-henkan-mode) (cond ((skk-get-prefix skk-current-rule-tree) (skk-erase-prefix 'clean)) (t ad-do-it))) ((eq skk-henkan-mode 'active) (setq skk-henkan-count 0) (if (and skk-delete-okuri-when-quit skk-henkan-okurigana) (let ((count (length skk-henkan-okurigana))) (skk-previous-candidate) ;; $B$3$3$G$O(B `delete-backward-char' $B$K(B ;; $BBhFs0z?t$rEO$5$J$$J}$,%Y%?! (point) skk-henkan-start-point) (delete-region (point) skk-henkan-start-point)) (skk-kakutei)))) ;; XEmacs 21.4 workarounds. (when (and (= emacs-major-version 21) (<= emacs-minor-version 4)) (defalias 'skk-tooltip-show-at-point 'ignore) (defalias 'skk-tooltip-hide 'ignore)) (provide 'skk-xemacs) ;;; skk-xemacs.el ends here ddskk-ddskk-16.3_Kutomatsunai/skk.el000066400000000000000000006252751361774317600175570ustar00rootroot00000000000000;; skk.el --- Daredevil SKK (Simple Kana to Kanji conversion program) -*- coding: iso-2022-jp -*- ;; Copyright (C) 1988-1997 Masahiko Sato ;; Copyright (C) 1999-2010 SKK Development Team ;; Author: Masahiko Sato ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; SKK-MODE is a mode for inputting Japanese to a current buffer which is ;; composed of four minor modes described below. ;; ;; +---------------+-------- skk-mode -----+--------------------+ ;; | | | | ;; | | | | ;; skk-j-mode skk-latin-mode skk-jisx0208-latin-mode skk-abbrev-mode ;; ASCII JISX0208 LATIN ABBREVIATION ;; (C-j wakes up skk-j-mode) (ZEN'KAKU EIMOJI) ;; ;; skk-j-mode-map skk-jisx0208-latin-mode-map ;; skk-latin-mode-map skk-abbrev-mode-map ;; ;; skk-katakana: nil ;; HIRAKANA ;; ;; skk-katakana: t ;; KATAKANA ;;; Code: (eval-when-compile ; shut up compiler warning. (defvar enable-character-translation) (defvar epoch::version) (defvar jka-compr-compression-info-list) (defvar message-log-max) (defvar migemo-isearch-enable-p) (defvar minibuffer-local-ns-map) (defvar self-insert-after-hook) (defvar skk-rdbms-private-jisyo-table) (defvar this-command-char)) ;; Daredevil SKK 13.1 $B$O(B APEL 10.7 $B$rMW5a$9$k!#(B ;; APEL 10.7 $B$Oe$N=EBg$J7g4Y$KBP1~$7$F$$$k$?$a!"I,?\$G$"$k!#(B ;; make-temp-file() $B$N7g4Y$K$D$$$F$O4X?t(B skk-save-jisyo-original() $B$N%3%a(B ;; $B%s%H$r;2>H!#(B (eval-when-compile (require 'cl)) ;; Emacs standard library. (require 'advice) (require 'easymenu) (eval-and-compile ;; SKK common. ;; skk $B$N5/F0;~!"(B*-autoloads $B$O2<5-$N#2(B | skk-autoloads.el | ddskk-autoloads.el ;; provide $B@k8@(B | $B$"$j(B (SKK-MK $B$,@8@.(B) | $B$J$7(B ;; ;; $BC1$J$k(B require $B$@$H(B MELPA $BHG(B $B$G(B Required feature skk-autoloads was ;; not provided $B$H$J$C$F$7$^$&$?$a(B featurep $B$G3NG'$7$F$+$i(B [featurep $B$O(B ;; $B%U%!%$%kFb$K(B provide $B@k8@$,$J$1$l$P(B nil $B$rJV$9(B] require $B$7$F$$$k!#(B ;; ;; leim-list.el $B$H(B skk-setup.el $B$K$bC1$J$k(B require 'skk-autoloads $B$,B8:_$9$k(B ;; $B$,!"(BMELPA $B7PM3$G%$%s%9%H!<%k$7$?(B DDSKK $B$ON>(B el $B$r;HMQ$7$J$$$?$a1F6A$J$$!#(B (when (featurep 'skk-autoloads) (require 'skk-autoloads)) (require 'skk-vars) (require 'skk-macs) ;; SKK version dependent. (cond ((featurep 'xemacs) (require 'skk-xemacs)) (t (require 'skk-emacs))) ;; Shut up, compiler. (autoload 'skk-jisx0213-henkan-list-filter "skk-jisx0213") (autoload 'skk-kanagaki-initialize "skk-kanagaki") (autoload 'skk-rdbms-count-jisyo-candidates "skk-rdbms")) ;; aliases. (defalias 'skk-toggle-kana 'skk-toggle-characters) ;;;###autoload (defun skk-mode (&optional arg) "$BF|K\8lF~NO%b!<%I!#(B $B%^%$%J!<%b!<%I$N0l \"$B"&$Y$s$j(B\", and pressing space produces \"$B"'JXMx(B\" \(the solid triangle indicates that conversion is in progress\). Backspace steps through the candidate list in reverse. A candidate can be accepted by pressing `\C-j', or by entering a self-inserting character. \(Unlike other common Japanese input methods, RET not only accepts the current candidate, but also inserts a line break.\) Inflected words \(verbs and adjectives\), like non-inflected words, begin input with a capital letter. However, for these words the end of the kanji string is signaled by capitalizing the next mora. Eg, \"TuyoI\" => \"$B"'6/$$(B\". If no candidate is available at that point, the inflection point will be indicated with an asterisk \"*\", and trailing characters will be displayed until a candidate is recognized. It will be immediately displayed \(pressing space is not necessary\). Space and backspace are used to step forward and backward through the list of candidates. For more information, see the `skk' topic in Info. \(Japanese only.\) A tutorial is available in Japanese or English via \\[skk-tutorial]. Use a prefix argument to choose the language. The default is system- dependent." (interactive "P") (setq skk-mode (cond ((null arg) (not skk-mode)) ;; - $B$O(B -1 $B$KJQ49$5$l$k!#(B ((> (prefix-numeric-value arg) 0) t) (t nil))) (if (not skk-mode) ;; exit skk-mode (skk-mode-exit) ;; enter into skk-mode. (unless skk-mode-invoked ;; enter `skk-mode' for the first time in this session. (skk-mode-invoke)) ;; $B0J2<$O(B skk-mode $B$KF~$k$?$S$KKh2s%3!<%k$5$l$k%3!<%I!#(B (skk-create-file skk-jisyo "$B6u$N(B SKK $B8D?M<-=q$r:n$j$^$7$?(B" "I have created an empty SKK Jisyo file for you") (when (eval-when-compile (featurep 'xemacs)) (easy-menu-add skk-menu)) (skk-require-module) ;; To terminate kana input. (when (eval-when-compile (featurep 'xemacs)) (make-local-hook 'pre-command-hook)) (skk-add-skk-pre-command) (when (eval-when-compile (featurep 'xemacs)) (make-local-hook 'post-command-hook)) (add-hook 'post-command-hook 'skk-after-point-move nil 'local) (skk-search-ja-dic-maybe t) (skk-j-mode-on) (run-hooks 'skk-mode-hook))) ;;;###autoload (defun skk-auto-fill-mode (&optional arg) "$BF|K\8lF~NO%b!<%I!#<+F0@^$jJV$75!G=IU$-!#(B $B%^%$%J!<%b!<%I$N0l (prefix-numeric-value arg) 0) t)))) (auto-fill-mode (if auto-fill 1 -1)) (skk-mode arg) (run-hooks 'skk-auto-fill-mode-hook))) (defun skk-kill-emacs-without-saving-jisyo (&optional query) "$B8D?M<-=q$rJ]B8$;$:$K(B Emacs $B$r=*N;$9$k!#(B" (interactive "P") ;; format $B$r0z?t$K;}$?$;$?>l9g$O!"(Bskk-yes-or-no-p $B$r;H$&$H$+$($C$F>iD9$K$J(B ;; $B$k!#(B (when (yes-or-no-p (format (if skk-japanese-message-and-error "$B8D?M<-=q$rJ]B8$;$:$K(B %s $B$r=*N;$7$^$9!#NI$$$G$9$+!)(B " "Do you really wish to kill %s without saving Jisyo? ") (if (featurep 'xemacs) "XEmacs" "Emacs"))) (let ((buff (skk-get-jisyo-buffer skk-jisyo 'nomsg))) (remove-hook 'kill-emacs-hook 'skk-save-jisyo) (when buff (set-buffer buff) (set-buffer-modified-p nil) (kill-buffer buff)) (save-buffers-kill-emacs query)))) (defun skk-restart () "`skk-init-file' $B$N:F%m!<%I5Z$S3Fl9g$O(B $B;H$&$Y$-$G$J$$!#(B `skk-kakutei-key' $B$NJQ99$K$OBP1~$G$-$F$$$J$$!#(B" (interactive) (skk-save-jisyo) (setq skk-jisyo-update-vector nil) (when (featurep 'skk-server) (skk-disconnect-server)) (setq skk-server-disable-completion nil) (kill-local-variable 'skk-rule-tree) (setq skk-rule-tree nil) ;; $B$$$C$=(B unload-feature $B$H$+$7$?$[$&$,$$$$$N$+$b$7$l$J$$!#(B ;; skk-kakutei-key $B$K4X$7$F$O(B minibuffer-local-map $B$J$I$N=hM}$b!#(B (mapatoms (lambda (sym) ;; skk-user-directory, skk-init-file $B0J30$N(B defcustom $B$G@k8@(B ;; $B$5$l$?JQ?t$N$&$A!"(Bsaved-value $B$r;}$?$J$$$b$N$r:F=i4|2=!#(B ;; $BB>$K$b=|30$9$Y$-JQ?t$,$J$$$+MW8!F$!#(B (when (and (string-match "^skk-" (symbol-name sym)) (not (memq sym '(skk-user-directory skk-init-file))) (not (plist-member (symbol-plist sym) 'saved-value)) (plist-member (symbol-plist sym) 'standard-value)) (set-default sym (eval (car (get sym 'standard-value))))))) (dolist (feature '(skk-act skk-azik)) (when (featurep feature) (unload-feature feature))) (let (skk-mode-invoked) (skk-mode 1))) (defun skk-require-module () ;; skk-mode $B$KF~$k$?$S$KpJsMQ%U%!%$%k$r:n$j$^$7$?(B" "I have created an SKK record file for you")) (skk-setup-auto-paren) ; necessary to call before compiling skk-rule-tree. ;; SKK $B3HD%F~NO5!G=$N@_Dj(B (cond (skk-use-act ;; $B3HD%%m!<%^;zF~NO(B ACT (require 'skk-act)) (skk-use-azik ;; $B3HD%%m!<%^;zF~NO(B AZIK (require 'skk-azik)) ((featurep 'skk-tutcdef) ;; TUT-code (require 'skk-tutcode)) (skk-use-kana-keyboard ;; $B2>L>F~NO(B ($BF|K\8l5l(B JIS $B$^$?$O?F;X%7%U%H(B) (skk-kanagaki-initialize))) (when (eval-when-compile (featurep 'emacs)) (skk-emacs-prepare-menu)) (when (eval-when-compile (featurep 'emacs)) (skk-setup-charset-list)) (skk-setup-delete-selection-mode) (when skk-annotation-lookup-DictionaryServices (skk-annotation-start-python)) (setq skk-mode-invoked t)) ;;; setup (defun skk-setup-shared-private-jisyo () ;; vector $B$ND9$5$O!"(B`skk-save-jisyo' $B$,<:GT$7$J$$A0Ds$J$i$P(B ;; skk-jisyo-save-count $B$HF1$8$G$h$$!#%(%i!<$=$NB>$G<:GT$9$k2DG=@-$r(B ;; $B9MN8$9$k$H!"$=$l$h$j>/$7D9$$J}$,LdBj$,5/$3$j$K$/$$!#(B ;; ($B0J2<$N6qBNE*$J?t;z$K$O:,5r$O$J$$(B) (setq skk-jisyo-update-vector (make-vector (max (* 2 skk-jisyo-save-count) (+ 20 skk-jisyo-save-count)) nil)) (setq skk-emacs-id (concat (system-name) ":" (number-to-string (emacs-pid)) ":" (mapconcat 'int-to-string (current-time) "") ":")) (skk-create-file skk-emacs-id-file nil nil 384) ; 0600 (with-temp-buffer (insert-file-contents skk-emacs-id-file) (insert skk-emacs-id "\n") (write-region 1 (point-max) skk-emacs-id-file nil 'nomsg))) (defun skk-setup-charset-list () (setq skk-charset-list (delq nil (mapcar (lambda (c) (when (skk-charsetp c) c)) '(ascii japanese-jisx0208 japanese-jisx0213-1 japanese-jisx0213-2 japanese-jisx0213.2004-1 katakana-jisx0201 latin-jisx0201 japanese-jisx0212 japanese-jisx0208-1978))))) (defun skk-setup-keymap () "SKK $B$N%-!<$r@_Dj$9$k!#(B" (cond (skk-j-mode (skk-define-j-mode-map) (skk-setup-j-mode-map-options)) (skk-latin-mode (skk-define-latin-mode-map) (skk-setup-latin-mode-map-options)) (skk-jisx0208-latin-mode (skk-define-jisx0208-latin-mode-map) (skk-setup-jisx0208-latin-mode-map-options)) (skk-abbrev-mode (skk-define-abbrev-mode-map) (skk-setup-abbrev-mode-map-options))) (skk-define-minibuffer-maps) ;; (unless skk-rule-tree (setq skk-rule-tree (skk-compile-rule-list skk-rom-kana-base-rule-list skk-rom-kana-rule-list)))) (defun skk-define-menu (map) "SKK $B$N%W%k%@%&%s%a%K%e!<$rDj5A$9$k!#(B" (easy-menu-define skk-menu map "Menu used in SKK mode." skk-menu-items)) (defun skk-define-j-mode-map () "$B%-!<%^%C%W(B `skk-j-mode-map' $B$rDj5A$9$k!#(B" (unless (keymapp skk-j-mode-map) (setq skk-j-mode-map (make-sparse-keymap)) (skk-update-minor-mode-map-alist 'skk-j-mode skk-j-mode-map) (skk-update-minor-mode-map-alist 'skk-jisx0201-mode skk-j-mode-map)) (unless (eq (lookup-key skk-j-mode-map "a") 'skk-insert) (dotimes (i 95) ;from " " to "~". (define-key skk-j-mode-map (skk-char-to-unibyte-string (+ 32 i)) 'skk-insert)) (skk-define-menu skk-j-mode-map))) (defun skk-define-latin-mode-map () "$B%-!<%^%C%W(B `skk-latin-mode-map' $B$rDj5A$9$k!#(B" (unless (keymapp skk-latin-mode-map) (setq skk-latin-mode-map (make-sparse-keymap)) (skk-update-minor-mode-map-alist 'skk-latin-mode skk-latin-mode-map) (skk-define-menu skk-latin-mode-map))) (defun skk-define-jisx0208-latin-mode-map () "$B%-!<%^%C%W(B `skk-jisx0208-latin-mode-map' $B$rDj5A$9$k!#(B" (unless (keymapp skk-jisx0208-latin-mode-map) (setq skk-jisx0208-latin-mode-map (make-sparse-keymap)) (skk-update-minor-mode-map-alist 'skk-jisx0208-latin-mode skk-jisx0208-latin-mode-map)) (unless (eq (lookup-key skk-jisx0208-latin-mode-map "a") 'skk-jisx0208-latin-insert) (dotimes (i 128) (when (aref skk-jisx0208-latin-vector i) (define-key skk-jisx0208-latin-mode-map (skk-char-to-unibyte-string i) 'skk-jisx0208-latin-insert))) (define-key skk-jisx0208-latin-mode-map "\C-q" 'skk-toggle-characters) (skk-define-menu skk-jisx0208-latin-mode-map))) (defun skk-define-abbrev-mode-map () "$B%-!<%^%C%W(B `skk-abbrev-mode-map' $B$rDj5A$9$k!#(B" (unless (keymapp skk-abbrev-mode-map) (setq skk-abbrev-mode-map (make-sparse-keymap)) (skk-update-minor-mode-map-alist 'skk-abbrev-mode skk-abbrev-mode-map) (dotimes (i 95) (define-key skk-abbrev-mode-map (skk-char-to-unibyte-string (+ 32 i)) 'skk-abbrev-insert)) (define-key skk-abbrev-mode-map "," 'skk-abbrev-comma) (define-key skk-abbrev-mode-map "." 'skk-abbrev-period) (define-key skk-abbrev-mode-map "\C-q" 'skk-toggle-characters) (skk-define-menu skk-abbrev-mode-map))) (defun skk-define-minibuffer-maps () (unless (eq (lookup-key minibuffer-local-map skk-kakutei-key) 'skk-kakutei) (define-key minibuffer-local-map skk-kakutei-key #'skk-kakutei) (define-key minibuffer-local-completion-map skk-kakutei-key #'skk-kakutei) ;; XEmacs doesn't have minibuffer-local-ns-map (when (and (boundp 'minibuffer-local-ns-map) (keymapp (symbol-value 'minibuffer-local-ns-map))) (define-key minibuffer-local-ns-map skk-kakutei-key #'skk-kakutei)))) (skk-define-abbrev-mode-map) (skk-define-latin-mode-map) (skk-define-jisx0208-latin-mode-map) (skk-define-j-mode-map) (defun skk-setup-j-mode-map-options () (unless (eq (lookup-key skk-j-mode-map (skk-char-to-unibyte-string skk-try-completion-char)) 'skk-insert) (when (vectorp skk-kakutei-key) (define-key skk-j-mode-map skk-kakutei-key #'skk-kakutei)) (define-key skk-j-mode-map (skk-char-to-unibyte-string skk-try-completion-char) #'skk-insert) ;; Workaround for key translation. (when (eval-when-compile (featurep 'emacs)) (when (eq skk-try-completion-char 9) ;; tab $B%-!<$O(B $B$NDj5A$,L5$1$l$P(B TAB $B$NDj5A$,3d$jEv$F$i$l$k!#(B ;; Org-mode $B$J$I$O(B $B$rDj5A$9$k$N$G!$(BSKK $B$NJ}$G$b(B $B$rDj5A(B ;; $B$9$kI,MW$,$"$k!#(B (define-key skk-j-mode-map [(tab)] #'skk-comp-wrapper))) ;; comp $B$H(B dcomp $B$G$NA08uJd$XLa$kF0:n$r(B Shift TAB $B$G$b2DG=$H$9$k!#(B (when skk-previous-completion-use-backtab (define-key skk-j-mode-map skk-previous-completion-backtab-key #'skk-previous-comp-maybe)) ;; (unless (featurep 'skk-kanagaki) (dolist (key skk-previous-candidate-keys) (define-key skk-j-mode-map key #'skk-previous-candidate))) ;; (when skk-use-jisx0201-input-method ;; This command is autoloaded. (define-key skk-j-mode-map "\C-q" #'skk-toggle-katakana)) (unless skk-use-viper (define-key skk-j-mode-map (skk-char-to-unibyte-string skk-start-henkan-with-completion-char) #'skk-comp-start-henkan) (define-key skk-j-mode-map (skk-char-to-unibyte-string skk-backward-and-set-henkan-point-char) #'skk-backward-and-set-henkan-point)) (skk-setup-delete-backward-char) (skk-setup-undo) ;; (when (eq skk-j-mode-function-key-usage 'conversion) (define-key skk-j-mode-map [f1] #'skk-start-henkan-prog-1) (define-key skk-j-mode-map [f2] #'skk-start-henkan-prog-2) (define-key skk-j-mode-map [f3] #'skk-start-henkan-prog-3) (define-key skk-j-mode-map [f4] #'skk-start-henkan-prog-4) (define-key skk-j-mode-map [f5] #'skk-start-henkan-prog-5) (define-key skk-j-mode-map [f6] #'skk-start-henkan-prog-6) (define-key skk-j-mode-map [f7] #'skk-start-henkan-prog-7) (define-key skk-j-mode-map [f8] #'skk-start-henkan-prog-8) (define-key skk-j-mode-map [f9] #'skk-start-henkan-prog-9) (define-key skk-j-mode-map [f10] #'skk-start-henkan-prog-0)))) (defun skk-setup-latin-mode-map-options () (unless (eq (lookup-key skk-latin-mode-map skk-kakutei-key) 'skk-kakutei) (define-key skk-latin-mode-map skk-kakutei-key #'skk-kakutei))) (defun skk-setup-jisx0208-latin-mode-map-options () (unless (eq (lookup-key skk-jisx0208-latin-mode-map skk-kakutei-key) 'skk-kakutei) (define-key skk-jisx0208-latin-mode-map skk-kakutei-key #'skk-kakutei) (unless skk-use-viper (define-key skk-jisx0208-latin-mode-map (skk-char-to-unibyte-string skk-backward-and-set-henkan-point-char) #'skk-backward-and-set-henkan-point)))) (declare-function skk-start-henkan-with-completion "skk-comp") (defun skk-setup-abbrev-mode-map-options () (unless (eq (lookup-key skk-abbrev-mode-map skk-kakutei-key) 'skk-kakutei) (define-key skk-abbrev-mode-map skk-kakutei-key #'skk-kakutei) (define-key skk-abbrev-mode-map (skk-char-to-unibyte-string skk-start-henkan-char) #'skk-start-henkan) (define-key skk-abbrev-mode-map (skk-char-to-unibyte-string skk-try-completion-char) #'skk-try-completion) (unless skk-use-viper (define-key skk-abbrev-mode-map (skk-char-to-unibyte-string skk-start-henkan-with-completion-char) #'skk-start-henkan-with-completion)))) (defun skk-make-indicator-alist () "SKK $B%$%s%8%1!<%?7?%*%V%8%'%/%H$rMQ0U$7!"O"A[%j%9%H$K$^$H$a$k!#(B" (cond ((eval-when-compile (featurep 'xemacs)) (skk-xemacs-prepare-modeline-properties)) (t (skk-emacs-prepare-modeline-properties))) ;; (let ((mode-string-list '(skk-latin-mode-string skk-hiragana-mode-string skk-katakana-mode-string skk-jisx0208-latin-mode-string skk-abbrev-mode-string skk-jisx0201-mode-string)) mode string base) (save-match-data (cons (cons 'default (cons "" (skk-mode-string-to-indicator 'default ""))) (mapcar (lambda (symbol) (setq mode (prin1-to-string symbol)) (string-match "skk-\\([-a-z0-9]+\\)-mode-string" mode) (setq mode (intern (match-string-no-properties 1 mode))) (setq string (symbol-value symbol)) ;; $BK\Mh$J$i$3$N$h$&$K%f!<%6JQ?t$r2C9)$9$k$N$O$*$+$7$$$,!"(B ;; $B0\9T4|$N=hCV$H$7$F;CDjE*$K9T$J$&!#(B (cond ((string-match "^ +" string) ;; minor-mode setting (setq base (substring string (match-end 0)))) ((string-match "^--" string) ;; mode-line left setting (setq base (substring string (match-end 0))) (when (string-match "::*$" base) (setq base (substring base 0 (match-beginning 0))))) (t (setq base string))) (cons mode (cons (concat " " base) (skk-make-indicator-alist-1 mode base)))) mode-string-list))))) (defun skk-make-indicator-alist-1 (mode base) ;; faces.el (Emacs 24.2) ;; Make `modeline' an alias for `mode-line', for compatibility. ;; (put 'modeline 'face-alias 'mode-line) ;; * Incompatible Lisp Changes in Emacs 24.3 ;; ** Some obsolete functions, variables, and faces have been removed: ;; *** `modeline' (let* ((ml (if (skk-facep 'mode-line) 'mode-line ;GNU Emacs (2012-10-02 Remove obsolete face `modeline') 'modeline)) ;XEmacs (string (concat "--" base (cond ((skk-face-proportional-p ml) ":") ((memq mode '(latin abbrev)) "::") (t ":"))))) (skk-mode-string-to-indicator mode string))) (defun skk-setup-modeline () "$B%b!<%I%i%$%s$X$N%9%F!<%?%9I=<($r=`Hw$9$k!#(B" (setq skk-indicator-alist (skk-make-indicator-alist)) (case skk-status-indicator (left (unless (and mode-line-format (memq 'skk-modeline-input-mode (default-value 'mode-line-format))) (setq-default mode-line-format (append '("" skk-modeline-input-mode) (default-value 'mode-line-format)))) (skk-loop-for-buffers (buffer-list) (when (and (consp mode-line-format) (skk-local-variable-p 'mode-line-format) (null (memq 'skk-modeline-input-mode mode-line-format))) (setq mode-line-format (append '("" skk-modeline-input-mode) mode-line-format)))) (when skk-icon (unless (memq 'skk-icon (default-value 'mode-line-format)) (setq-default mode-line-format (append '("" skk-icon) (default-value 'mode-line-format)))) (skk-loop-for-buffers (buffer-list) (when (and (consp mode-line-format) (skk-local-variable-p 'mode-line-format) (null (memq 'skk-icon mode-line-format))) (setq mode-line-format (append '("" skk-icon) mode-line-format))))) (force-mode-line-update t)) ;; (t (when (and (consp mode-line-format) (equal (car mode-line-format) "") (eq 'skk-modeline-input-mode (nth 1 mode-line-format))) ;; for skk-restart. (setq-default mode-line-format (nthcdr 2 mode-line-format))) (skk-loop-for-buffers (buffer-list) (when (and (consp mode-line-format) (equal (car mode-line-format) "") (eq 'skk-modeline-input-mode (nth 1 mode-line-format))) ;; for skk-restart. (setq mode-line-format (nthcdr 2 mode-line-format)))) (setq-default skk-modeline-input-mode "") (add-minor-mode 'skk-mode 'skk-modeline-input-mode)))) (defun skk-setup-emulation-commands (commands emulation) (let ((map (if (and (boundp 'overriding-local-map) (keymapp 'overriding-local-map)) overriding-local-map (current-global-map)))) (dolist (command commands) (dolist (key (where-is-internal command map)) (define-key skk-abbrev-mode-map key emulation) (define-key skk-j-mode-map key emulation))))) (defun skk-setup-delete-backward-char () "$B!V8eB`!W7O$N%-!<$K%3%^%s%I(B `skk-delete-backward-char' $B$r3dEv$F$k!#(B" (skk-setup-emulation-commands skk-delete-backward-char-commands 'skk-delete-backward-char)) (defun skk-setup-undo () "$B!V$d$jD>$7!W7O$N%-!<$K%3%^%s%I(B `skk-undo' $B$r3dEv$F$k!#(B" (skk-setup-emulation-commands skk-undo-commands 'skk-undo)) (defun skk-setup-verbose-messages () (unless skk-henkan-on-message (let ((list (split-string (apply 'format ;; fotmat#STRING (case skk-j-mode-function-key-usage (conversion "\ \[F5]%s [F6]%s [F7]%s [F8]%s [F9]%s [F10]%s") (t "\ \[C-5 SPC]%s [C-6 SPC]%s [C-7 SPC]%s [C-8 SPC]%s [C-9 SPC]%s [C-0 SPC]%s")) ;; format#OBJECTS (mapcar (lambda (x) (cdr (assoc (caar (symbol-value (intern-soft (format "skk-search-prog-list-%d" x)))) '((skk-search-tankanji . "$BC14A;z(B") (skk-search-identity . "$BL5JQ49(B") (skk-search-katakana . "$B%+%?%+%J(B") (skk-search-hankaku-katakana . "$BH>3Q%+%J(B") (skk-search-jisx0208-romaji . "$BA43Q%m!<%^(B") (skk-search-romaji . "$B%m!<%^(B") (nil . "$BL$Dj5A(B")) ))) '(5 6 7 8 9 0))) " ")) new) ; END varlist ;; BODY (dolist (x list) (let* ((y (split-string x "]")) (s1 (car y)) (s2 (nth 1 y))) (setq new (concat new (propertize (concat s1 "]") 'face 'skk-verbose-kbd-face) s2 " ")))) (setq skk-henkan-on-message new)) )) (defun skk-compile-init-file-maybe () "$BI,MW$J$i(B `skk-init-file' $B$r%P%$%H%3%s%Q%$%k$9$k!#(B `skk-byte-compile-init-file' $B$,(B non-nil $B$N>l9g$G!"(B`skk-init-file' $B$r%P%$%H%3(B $B%s%Q%$%k$7$?%U%!%$%k$,B8:_$7$J$$$+!"$=$N%P%$%H%3%s%Q%$%k:Q%U%!%$%k$h$j(B `skk-init-file' $B$NJ}$,?7$7$$$H$-$O!"(B`skk-init-file' $B$r%P%$%H%3%s%Q%$%k$9$k!#(B `skk-byte-compile-init-file' $B$,(B nil $B$N>l9g$G!"(B`skk-init-file' $B$r%P%$%H%3%s%Q(B $B%$%k$7$?%U%!%$%k$h$j(B `skk-init-file' $B$NJ}$,?7$7$$$H$-$O!"$=$N%P%$%H%3%s%Q%$(B $B%k:Q%U%!%$%k$r>C$9!#(B" (save-match-data (let* ((file (expand-file-name skk-init-file)) (init-file (if (file-exists-p (concat file ".el")) (concat file ".el") file)) (elc (concat init-file (if (string-match "\\.el$" init-file) "c" ".elc")))) (if skk-byte-compile-init-file (when (and (file-exists-p init-file) (or (not (file-exists-p elc)) (file-newer-than-file-p init-file elc))) (save-window-excursion ; for keep window configuration. (skk-message "%s $B$r%P%$%H%3%s%Q%$%k$7$^$9(B" "Byte-compile %s" skk-init-file) (sit-for 2) (byte-compile-file init-file))) (when (and (file-exists-p init-file) (file-exists-p elc) (file-newer-than-file-p init-file elc)) (delete-file elc)))))) (defun skk-delete-selection-wrapper () (unless (and (member (char-to-string (skk-last-command-char)) (mapcar (lambda (x) (car x)) skk-auto-paren-string-alist)) skk-use-auto-enclose-pair-of-region) (delete-region (point) (mark)) (if (and overwrite-mode (eq this-command 'self-insert-command)) (let ((overwrite-mode nil)) (self-insert-command (prefix-numeric-value current-prefix-arg)) (setq this-command 'ignore))))) (defun skk-setup-delete-selection-mode () "Delete Selection $B%b!<%I$N$?$a$N@_Dj$r$9$k!#(B Delete Selection $B%b!<%I$,(B SKK $B$r;H$C$?F|K\8lF~NO$KBP$7$F$b5!G=$9$k$h$&$K(B $B%;%C%H%"%C%W$9$k!#(B" (let ((property (cond ((featurep 'xemacs) 'pending-delete) (t 'delete-selection))) (funcs '(skk-current-kuten skk-current-touten skk-input-by-code-or-menu skk-today)) (supersede-funcs '(skk-delete-backward-char))) (unless (get 'skk-insert property) (dolist (func funcs) (put func property t)) (dolist (func supersede-funcs) (put func property 'supersede)) (put 'skk-insert property 'skk-delete-selection-wrapper)))) (defun skk-setup-auto-paren () (when (and skk-auto-insert-paren skk-auto-paren-string-alist) ;; skk-auto-paren-string-alist $B$NCf$+$i!"(B ;; skk-special-midashi-char-list $B$NMWAG$K4XO"$9$k$b$N$r$N=PNOJ8;z$K(B ;; $B%P%$%s%I$5$l$F$$$J$$$+$I$&$+$r3NG'$9$k!#(B (null (assoc str skk-rom-kana-base-rule-list)) (null (assoc str skk-rom-kana-rule-list))) ;; skk-auto-paren-string-alist $B$N3FMWAG$N(B car $B$NJ8;z$,(B ;; ascii char $B$G$"$k>l9g$O!"(Bskk-rom-kana-rule-list, ;; skk-rom-kana-base-rule-list $B$K$=$NJ8;z$r=q$-9~$`!#(B ;; $BK\Mh$O(B ascii char $B$O(B skk-rom-kana-rule-list, ;; skk-rom-kana-base-rule-list $B$K=q$/I,MW$,$J$$(B ;; --- skk-emulate-original-map$B$K$h$kF~NO$,9T$J$o$l$k(B --- ;; $B$,!"(Bskk-auto-paren-string-alist $B$K;XDj$5$l$?BP$K$J$k(B ;; $BJ8;z$NA^F~$N$?$a$K$O!"%-!<$H$J$kJ8;z$r=q$$$F$*$/I,MW$,(B ;; $B$"$k!#(B (setq skk-rom-kana-rule-list (cons (list str nil str) skk-rom-kana-rule-list)))))))) (defun skk-setup-minibuffer () "$B%+%l%s%H%P%C%U%!$NF~NO%b!<%I$K=>$C$F%_%K%P%C%U%!$NF~NO%b!<%I$r@_Dj$9$k!#(B" (case skk-minibuffer-origin-mode (hiragana (skk-j-mode-on)) (katakana (skk-j-mode-on t)) (abbrev (skk-abbrev-mode-on)) (latin (skk-latin-mode-on)) (jisx0208-latin (skk-jisx0208-latin-mode-on)))) (defun skk-setup-jisyo-buffer () "SKK $B$N<-=q%P%C%U%!$rMQ0U$9$k!#(B `skk-jisyo' $B$N<-=q%P%C%U%!$G!"(B (1)$B6u%P%C%U%!$G$"$l$P!"?7$7$/%X%C%@!<$r:n$j!"(B (2)$B<-=q%(%s%H%j$,$"$k4{B8$N<-=q%P%C%U%!$J$i$P!"%X%C%@!<$,@5$7$$$+$I$&$+$r(B $B%A%'%C%/$9$k!#(B" ;; skk-okuri-ari-min $B$H(B skk-okuri-nasi-min $B$N0LCV$rJQ99$7$?!#(B ;; $B"-(B $B?7$7$$(B skk-okuri-ari-min ;; ;; okuri-ari entries. ;; $B"+(B $B0JA0$N(B skk-okuri-ari-min ;; ;; $B"-(B skk-okuri-ari-max $B"-(B $B?7$7$$(B skk-okuri-nasi-min ;; ;; okuri-nasi entries. ;; $B"+(B $B0JA0$N(B skk-okuri-nasi-min ;; ;; ;; $BJQ99A0$N0LCV$G$"$l$P!"2<5-$N$h$&$J6u<-=q$N>l9g!"(B ;; ;; ;; okuri-ari entries. ;; ;; okuri-nasi entries. ;; ;; skk-okuri-ari-min $B$H(B skk-okuri-ari-max $B$N%^!<%+!<$,=E$J$C$F$7$^$$!"(B ;; skk-okuri-ari-min $B$N0LCV$KA^F~$7$?8uJd$,(B skk-okuri-ari-max $B$N%^!<%+!<(B ;; $B$r8eJ}$K2!$7$d$i$J$$!#(B ;; ;; case-fold-search $B$O!"<-=q%P%C%U%!$G$O>o$K(B nil$B!#(B (save-match-data (when (zerop (buffer-size)) ;; $B6u%P%C%U%!$@$C$?$i!"%X%C%@!<$N$_A^F~!#(B (insert ";; okuri-ari entries.\n" ";; okuri-nasi entries.\n")) (goto-char (point-min)) (unless (re-search-forward "^;; okuri-ari entries.$" nil 'noerror) (skk-error "$BAw$j$"$j%(%s%H%j$N%X%C%@!<$,$"$j$^$;$s!*(B" "Header line for okuri-ari entries is missing!")) ;; $B8GDj%]%$%s%H$J$N$G!"(B(point) $B$G==J,!#(B (setq skk-okuri-ari-min (point)) (unless (re-search-forward "^;; okuri-nasi entries.$" nil 'noerror) (skk-error "$BAw$j$J$7%(%s%H%j$N%X%C%@!<$,$"$j$^$;$s!*(B" "Header line for okuri-nasi entries is missing!")) (beginning-of-line) ;; $B6&M-<-=q$J$i8GDj%]%$%s%H$G$bNI$$$N$@$,!"<-=q%P%C%U%!$GJT=8$r9T(B ;; $B$J$C$?$H$-$N$3$H$rG[N8$7$F%^!<%+!<$K$7$F$*$/!#(B (setq skk-okuri-ari-max (point-marker)) (forward-line 1) (backward-char 1) (setq skk-okuri-nasi-min (point-marker)))) (defun skk-emulate-original-map (arg) "$B%-!l9g$O!"(Bnil $B$rJV$9!#(B" (while (not (or (zerop (length key)) (eq command (key-binding key)))) (setq key (vconcat (cdr (append key nil))))) (unless (zerop (length key)) key)) (defun skk-adjust-user-option () "$B%f!<%6%*%W%7%g%s$NIT@09g$rD4@0$9$k!#(B" (unless (skk-color-cursor-display-p) (setq skk-use-color-cursor nil)) ;; $BN>N)$G$-$J$$%*%W%7%g%s$rD4@0$9$k!#(B (when skk-process-okuri-early ;; skk-process-okuri-early $B$NCM$,(B non-nil $B$G$"$k$H$-$K2<5-$NCM$,(B non-nil ;; $B$G$"$l$P@5>o$KF0$+$J$$$N$G$3$NJQ?t$NM%@h=g0L$r9b$/$7$?!#(B (setq skk-kakutei-early nil skk-auto-okuri-process nil skk-henkan-okuri-strictly nil skk-henkan-strict-okuri-precedence nil)) (unless skk-jisyo-save-count ;; $B8=:_$N8e(B) $B$H%+!<%=%k$N4V$NJ8;zNs$K$D$$(B $B$F!"$R$i$,$J$H%+%?%+%J$rF~$lBX$($k!#(B" (interactive "P") (let ((show skk-show-mode-enable)) ;$B%A%e!<%H%j%"%k= skk-save-point (point)) ;; (not (eobp)) (or ;; "$B!<(B" $B$G$OJ8;zuBV$KLa$9!#(B `edit-picture-hook' $B$K(B `add-hook' $B$7$F;HMQ$9$k!#(B" ;; $B4{B8$N%P%C%U%!$r(B picture mode $B$K$7$?$H$-!"(Bpicture-mode $B4X?t$O(B ;; kill-all-local-variables $B4X?t$r8F$P$J$$$N$G!"(BSKK $B4XO"$N%P%C%U%!%m!<%+%k(B ;; $BJQ?t$,85$N%P%C%U%!$NCM$N$^$^$K$J$C$F$7$^$&!#$=$3$G!"(Bpicture mode $B$KF~$C$?(B ;; $B$H$-$K%U%C%/$rMxMQ$7$F$3$l$i$N%P%C%U%!%m!<%+%kJQ?t$r(B kill $B$9$k!#(B ;; RMS $B$O(B picture-mode $B$G(B kill-all-local-variables $B4X?t$r8F$P$J$$$N$O!"%P%0(B ;; $B$G$O$J$$!"$H8@$C$F$$$?!#(B ;; ;; picture-mode $B$G(B SKK $B$r;HMQ$74A;zF~NO$r$7$?>l9g$K!"(BBS $B$GA43QJ8;z$,>C$;$J$$(B ;; $B$N$O!"(BSKK $B$NIT6q9g$G$O$J$/!"(Bpicture.el $B$NLdBj(B (move-to-column-force $B4X?t(B ;; $B$NCf$G;HMQ$7$F$$$k(B move-to-column $B$GA43QJ8;z$rL5;k$7$?%+%i%`?t$,M?$($i$l(B ;; $B$?$H$-$K%+!<%=%k0\F0$,$G$-$J$$$+$i(B) $B$G$"$k!#>C$7$?$$J8;z$K%]%$%s%H$r9g$o(B ;; $B$;!"(BC-c C-d $B$G0lJ8;z$:$D>C$9$7$+J}K!$O$J$$!#(B (when skk-mode (skk-kill-local-variables))) (defun skk-kill-local-variables () "SKK $B4XO"$N%P%C%U%!%m!<%+%kJQ?t$rL58z$K$9$k!#(B" (skk-mode -1) (let (v vstr) (dolist (lv (buffer-local-variables)) (setq v (car lv) vstr (prin1-to-string v)) (when (and (> (length vstr) 3) (string= "skk-" (substring vstr 0 4))) (kill-local-variable v))))) ;;;; kana inputting functions (defun skk-insert (&optional arg prog-list-number) "SKK $B$NJ8;zF~NO$r9T$J$&!#(B" (interactive "p") (unless prog-list-number (setq prog-list-number current-prefix-arg)) (barf-if-buffer-read-only) (skk-with-point-move (let ((ch (skk-last-command-char))) (cond ((and skk-henkan-mode (memq ch skk-special-midashi-char-list)) (if (= skk-henkan-start-point (point)) ;; `$B"&(B' $B$KB3$/(B `>' $B$G$OJQ49=hM}$r3+;O$7$J$$(B (progn (skk-set-last-command-char ?>) (skk-kana-input arg)) ;; $B@\F,<-!&@\Hx<-$N=hM}!#(B (skk-process-prefix-or-suffix arg))) ;; start writing a midasi key. ((and (memq ch skk-set-henkan-point-key) (or skk-okurigana (not (skk-get-prefix skk-current-rule-tree)) (not (skk-select-branch skk-current-rule-tree ch)))) ;; normal pattern ;; skk-set-henkan-point -> skk-kana-input. (skk-set-henkan-point arg)) ;; start conversion. ((and skk-henkan-mode ; $B"&%b!<%I(B or $B"'%b!<%I(B (eq ch skk-start-henkan-char)) ; SPC (skk-start-henkan arg prog-list-number)) ;; just input kana. ((not (eq skk-henkan-mode 'on)) ; not $B"&%b!<%I(B (skk-kana-input arg)) ;; for completion. ;; $B%3%s%W%j!<%7%g%s4XO"$N4X?t$O(B skk-rom-kana-base-rule-list $B$NCf$K2!(B ;; $B$79~$a!"(Bskk-kana-input $B$NCf$+$i@)8f$9$Y$-!#(B ;; $BC"$7!"(BTAB $B$O(B self-insert-command $B$G$O$J$$$N$G!"(Bskk-j-mode-map $B$N(B ;; $B%-!<%^%C%W$G(B substitute-key-definition $B$7$F$b(B skk-insert $B$K%P%$%s(B ;; $B%I$G$-$J$$!#(Bskk-j-mode-map $B$G(B $BD>@\(B "\t" $B$r(B skk-insert $B$K%P%$%s%I(B ;; $B$7$F!"(Bcompletion $B$H(B skk-current-kuten/skk-current-touten $B$r%3%s%H(B ;; $B%m!<%k$9$k%3%^%s%IL>$r(B skk-rom-kana-base-rule-list $B$K=q$1$PNI$$$+(B ;; $B$b!#(B ;; $B$G$b!"(Bskk-comp $B$H(B skk-current-kuten/skk-current-touten $B$N%3%s%H%m(B ;; $B!<%k$,%O!<%I%3!<%G%#%s%0$5$l$k$N$O$^$:$$$+$b(B (skk-comp $B$O;H$C$F$b(B ;; skk-current-kuten/skk-current-touten $B$O;H$o$J$$!"$H$$$&?M$,$$$k$+(B ;; $B$b(B)$B!#(B ((and (eq skk-henkan-mode 'on) ; $B"&%b!<%I(B (eq ch skk-try-completion-char)) (skk-comp (or prog-list-number ; C-u TAB $B$GJd40%-!<$r=i4|2=(B (not (eq last-command 'skk-comp-do))))) ;; ((and (eq skk-henkan-mode 'on) ; $B"&%b!<%I(B (memq ch (list skk-next-completion-char skk-previous-completion-char)) (eq last-command 'skk-comp-do)) (skk-comp-previous/next ch)) ;; just input Kana. (t (skk-kana-input arg))) ;; verbose message (skk-henkan-on-message)))) (defun skk-process-prefix-or-suffix (&optional arg) "$B@\F,<-$^$?$O@\Hx<-$NF~NO$r3+;O$9$k!#(B $B$3$l$O!"IaDL(B `skk-special-midashi-char-list' $B$K;XDj$5$l$?J8;z$NF~NO$,$"$C$?>l(B $B9g$KHsBPOCE*$K8F$S=P$5$l$k$,!"BPOCE*$K8F=P$9$3$H$b2DG=$G$"$k!#(B" ;; SKK 10 $B$^$G$O!"(B> < ? $B$N(B 3 $B$D$K$D$$$F07$$$,J?Ey$G$J$+$C$?!#(BDaredevil SKK ;; 11 $B0J9_$G$O!"<-=q$K$*$1$kI=8=$r(B > $B$GE}0l$9$k$3$H$K$h$j!"(B3 $B)) (on ;; $B@\F,<-$N=hM}(B (skk-kana-cleanup 'force) (insert-and-inherit ?>) (skk-set-marker skk-henkan-end-point (point)) (skk-set-henkan-count 0) (setq skk-henkan-key (buffer-substring-no-properties skk-henkan-start-point (point)) skk-prefix "") (setq skk-after-prefix t) (skk-henkan)) (t (if (skk-last-command-char) ;; `skk-insert' $B$+$i8F$P$l$k>l9g$K$O!"$3$N%1!<%9$O$J$$!#(B (let ((i (prefix-numeric-value arg)) (str (skk-char-to-unibyte-string (skk-last-command-char)))) (while (> i 0) (skk-insert-str str) (setq i (1- i)))) nil)))) (defun skk-kana-input (&optional arg) "$B$+$JJ8;z$NF~NO$r9T$&%k!<%A%s!#(B" ;; Message-Id: <19980610190611B.sakurada@kuis.kyoto-u.ac.jp> ;; From: Hideki Sakurada ;; Date: Wed, 10 Jun 1998 19:06:11 +0900 (JST) ;; ;; $B?7$7$$(B skk-kana-input $B$O(B, $B4JC1$K@bL@$9$k$H(B, ;; $B$"$i$+$8$a%k!<%k$rLZ$N7A$KI=8=$7$F$*$$$F(B, $BF~NO$r8+(B ;; $B$FLZ$rC)$j(B, $B$=$l0J>eC)$l$J$/$J$C$?$i$=$N@a$KEPO?$5(B ;; $B$l$F$$$k2>L>$rF~NO$9$k(B. $B$H$$$&$7$/$_$G$9(B. ;; ;; $BNc$($P(B, n a t $B$N$_$+$i$J$k0J2<$N%k!<%k(B ;; ;; a $B"*(B $B$"(B ;; n $B"*(B $B$s(B ;; nn $B"*(B $B$s(B ;; na $B"*(B $B$J(B ;; ta $B"*(B $B$?(B ;; tt $B"*(B $B$C(B ($BuBV(B t) ;; ;; $B$r%k!<%kLZ$KJQ49$9$k$H(B, ;; ;; $B!?(B/$B!@(B ;; $B!?(B / $B!@(B ;; a $B!?(B / t $B!@(B n ;; $B!?(B / $B!@(B ;; $B$"(B $B!&(B $B$s(B ;; $B!?(B| / $B!@(B ;; a $B!?(B | t a / $B!@(B n ;; $B!?(B | / $B!@(B ;; $B$?(B $B$C(B $B$J(B $B$s(B ;; ($BuBV(B "t") ;; ;; $B$H$$$&7A$K$J$j$^$9(B. ;; ;; $B=i4|>uBV(B($BLZ$N:,(B)$B$G(B `a' $B$rF~NO$9$k$H(B, $BLZ$N:,$+$i(B ;; $B!V$"!W$K0\F0$7$^$9(B. $BuBV$,@_Dj$5$l$F$$$k>l9g$O(B, $B@_Dj$5$l$F$$(B ;; $B$kJ8;zNs$r%-%e!<$KLa$7$F$+$i:,$KLa$j$^$9(B. ;; ;; $B=i4|>uBV$G(B `n' $B$rF~NO$9$k$H(B, $B!V$s!W$K0\F0$7$^$9(B. ;; $Bl9g$O(B, `t' $B$G$O2<$KC)$l$J$$$N$G(B, ;; $B!V$s!W$r=PNO$7$F(B `t' $B$r%-%e!<$KLa$7$^$9(B. ;; ;; $B$3$3$G(B, $B=i4|>uBV(B, $B8=>uBV$r$=$l$>$l(B skk-rule-tree, ;; skk-current-rule-tree $B$GI=$7(B. ;; $BLZ$r2<$KC)$k(B, $B$H$$$&A`:n$O(B, skk-select-branch $B$r(B ;; $BMQ$$$F(B, ;; ;; (skk-select-branch rule-tree ?a) ;; ;; $B$N$h$&$K$7$^$9(B. $B8=>uBV$K@_Dj$5$l$F$$$k$+$J(B(("$B%"(B". "$B$"(B")$B$J$I(B), ;; $BuBV(B("t" $B$J$I(B)$B$O(B, $B$=$l$>$l(B skk-get-kana, ;; skk-get-nextstate $B$Gkana rule (setq data d queue (nconc (string-to-list (skk-get-nextstate skk-current-rule-tree)) queue) skk-current-rule-tree nil)) (t ;; SKK-CURRENT-RULE-TREE does not have any roma->kana rule (let ((dd (when skk-kana-input-search-function (funcall skk-kana-input-search-function)))) (cond (dd (setq data (car dd) queue (nconc (string-to-list (cdr dd)) (cdr queue)) skk-current-rule-tree nil)) ((eq skk-current-rule-tree skk-rule-tree) ;; typo on the root of tree (setq queue nil skk-current-rule-tree nil)) (t ;; otherwise move to root of the tree, and redo (setq skk-current-rule-tree nil))))))))) (cond ((not data) (if skk-current-rule-tree (progn ;;(digit-argument arg) ;; $B$&!A$s!"$h$&J,$+$i$s!#$H$j$"$($:!#(B (unless skk-isearch-message (setq prefix-arg arg)) (setq skk-prefix (skk-get-prefix skk-current-rule-tree)) (skk-insert-prefix skk-prefix)) ;;(skk-kana-cleanup 'force) (when (eq skk-henkan-mode 'active) (skk-kakutei)) (setq skk-prefix "") (unless (or queue (and (not (eq this-command 'skk-insert)) skk-henkan-mode)) (skk-emulate-original-map (skk-make-raw-arg arg))))) (t ;;(skk-cancel-undo-boundary) (setq skk-prefix "") (when (functionp data) (setq data (funcall data (skk-make-raw-arg arg)))) (when (stringp (if (consp data) (car data) data)) (let* ((str (if (consp data) (if skk-katakana (car data) (cdr data)) data)) (pair (when skk-auto-insert-paren (cdr (assoc str skk-auto-paren-string-alist)))) (count0 arg) (count1 arg) (inserted 0) region-str) (when (and (eq skk-henkan-mode 'active) ;$B"'%b!<%I(B skk-kakutei-early (not skk-process-okuri-early)) (skk-kakutei)) ;; arg $B$OJ]B8$7$F$*$+$J$$$H!"(B0 $B$K$J$C$F$7$^$$!"(Bqueue $B$,(B ;; $B$?$^$C$F$$$F:FEY$3$3$X$d$C$FMh$?$H$-$K!"J8;zF~NO$,(B ;; $B$G$-$J$/$J$k!#(B (skk-cancel-undo-boundary) (when (and (skk-region-active-p) skk-use-auto-enclose-pair-of-region pair) (setq region-str (buffer-substring (region-beginning) (region-end))) (delete-region (region-beginning) (region-end))) (while (> count0 0) (skk-insert-str str) (setq count0 (1- count0))) (when pair (when region-str (insert region-str)) (while (> count1 0) (unless (string= pair (skk-char-to-unibyte-string (following-char))) (setq inserted (1+ inserted)) (skk-insert-str pair)) (setq count1 (1- count1))) (unless (zerop inserted) (backward-char inserted)) (when region-str (skip-chars-forward pair))) (when (and skk-okurigana (null queue)) (skk-set-okurigana))))))) ;; XXX I don't know how skk-isearch-message works.... (when skk-isearch-message (skk-isearch-message))))) ;;; tree procedure ($B%D%j!<$K%"%/%;%9$9$k$?$a$N%$%s%?!<%U%'!<%9(B) (defun skk-search-tree (tree char-list) "TREE $B$N:,$+$i@hC<$X(B CHAR-LIST $B$K=>$C$FC)$k!#(B $B@.8y$7$?>l9g$O(B nil $B$H(B $B7k2L$NLZ$NAH$rJV$7!"<:GT$7$?>l9g$OC)$l$J$+$C$?(B CHAR-LIST $B$N;D$j$HC)$l$J$/$J$C$?@aE@$NLZ$NAH$rJV$9!#(B" (catch 'return (let (next char rest) (while char-list (setq char (car char-list) rest (cdr char-list) next (skk-select-branch tree char)) (if next (setq tree next char-list rest) (throw 'return (cons char-list tree)))) (cons nil tree)))) (defun skk-add-rule (tree rule) (let* ((prefix (nth 0 rule)) (l (length prefix)) (result (skk-search-tree tree (string-to-list prefix))) (rest (car result)) (addpoint (cdr result))) (while rest (let ((addtree (skk-make-rule-tree (car rest) (if (vectorp prefix) prefix (substring prefix 0 (1+ (- l (length rest))))) nil nil nil))) (skk-add-branch addpoint addtree) (setq addpoint addtree rest (cdr rest)))) (skk-set-nextstate addpoint (nth 1 rule)) (skk-set-kana addpoint (nth 2 rule)))) (defun skk-delete-rule (tree string) "$BF~NO(B STRING $B$KBP$9$k%k!<%k$r%k!<%kLZ(B TREE $B$+$i:o=|$9$k!#(B" (catch 'return (let ((char-list (string-to-list string)) (cutpoint tree) ;; TREE $B$N:,$+$i=P$k;^$,(B1$BK\$7$+$J$$>l9g(B ;; $B$N$?$a$K0l1~=i4|2=$7$F$*$/(B (cuttree (car (skk-get-branch-list tree))) next) (while char-list (setq next (skk-select-branch tree (car char-list)) char-list (cdr char-list)) (if next (if (> (length (skk-get-branch-list tree)) 1) (setq cutpoint tree ; $B;^$,(B2$BK\0J>e$N;~(B cutpoint cuttree cuttree next ; $B$r(B update tree next) (setq tree next)) (throw 'return nil))) (skk-set-branch-list cutpoint (delq cuttree (skk-get-branch-list cutpoint)))))) ;; convert skk-rom-kana-rule-list to skk-rule-tree. ;; The rule tree follows the following syntax: ;; := nil | ( . ) ;; := ( ) ;; := (<$B$R$i$,$JJ8;zNs(B> . <$B%+%?%+%JJ8;zNs(B>) | nil ;; := <$B1Q>.J8;z(B> ;; := <$B1Q>.J8;zJ8;zNs(B> | nil ;;;###autoload (defun skk-compile-rule-list (&rest rule-lists) "rule list $B$rLZ$N7A$K%3%s%Q%$%k$9$k!#(B" (let ((tree (skk-make-rule-tree nil "" nil nil nil)) key) (dolist (rule-list rule-lists) (dolist (rule rule-list) (setq key (car rule)) (ignore-errors (when (symbolp key) (setq key (eval key)) (when (stringp key) (setq rule (cons key (cdr rule))))) (unless (or (not (stringp key)) (string-match "\\w" key) (eq (key-binding key) 'self-insert-command)) (define-key skk-j-mode-map key 'skk-insert))) (when (stringp key) (skk-add-rule tree rule)))) tree)) (defun skk-insert-str (str) "$B%P%C%U%!$K(B STR $B$rA^F~$9$k!#(B $BI,MW$G$"$l$P(B `skk-auto-start-henkan' $B$r%3!<%k$9$k!#(B $BI,MW$G$"$l$P(B `self-insert-after-hook' $B$r%3!<%k$9$k!#(B `overwrite-mode' $B$G$"$l$P!"E,@Z$K>e=q$-$9$k!#(B" (insert-and-inherit str) (if (eq skk-henkan-mode 'on) ;; $B"&%b!<%I(B (when (and skk-auto-start-henkan (not skk-okurigana)) (skk-auto-start-henkan str)) ;; $B"&%b!<%I0J30(B (when (and (boundp 'self-insert-after-hook) self-insert-after-hook) (funcall self-insert-after-hook (- (point) (length str)) (point))) (when overwrite-mode (skk-del-char-with-pad (skk-ovwrt-len str)))) ;; SKK 9.6 $B$G$O$3$N%?%$%_%s%0$G(B fill $B$,9T$o$l$F$$$?$,!"(BSKK 10 $B$G$O9T$o$l$F$$(B ;; $B$J$+$C$?!#(B (when (and skk-j-mode (not skk-henkan-mode)) (skk-do-auto-fill))) (defun skk-ovwrt-len (str) "$B>e=q$-$7$FNI$$D9$5$rJV$9!#(B" (min (string-width (buffer-substring-no-properties (point) (line-end-position))) (string-width str))) (defun skk-del-char-with-pad (length) "$BD9$5(B LENGTH $B$NJ8;z$r>C5n$9$k!#(B $BD4@0$N$?$a!"I,MW$G$"$l$P!"KvHx$K%9%Z!<%9$rA^F~$9$k!#(B" (let ((p (point)) (len 0)) (while (< len length) (forward-char 1) (setq len (string-width (buffer-substring-no-properties (point) p)))) (delete-region p (point)) (unless (= length len) (insert-and-inherit " ") (backward-char 1)))) (defun skk-cancel-undo-boundary () ;; skk-insert, skk-jisx0208-latin-insert $B$GO"B3$7$FF~NO$5(B ;; $B$l$?(B 20 $BJ8;z$r(B 1 $B2s$N%"%s%I%%$NBP>]$H$9$k!#(B`20' $B$O(B ;; keyboard.c $B$KDj$a$i$l$?%^%8%C%/%J%s%P!JN,7A$H$7$F$N(B ;; $B8+=P$78l$rA^F~$9$k$?$a$N%b!<%I$G$"$k$N$G!"D9$$8+=P$78l$r(B ;; $BA^F~$9$k$3$H$O$"$^$j$J$/!"LdBj$b>.$5$$$H9M$($i$l$k!#(B ;;skk-abbrev-comma ;;skk-abbrev-period self-insert-command))) (cancel-undo-boundary) (when (null skk-current-rule-tree) ;; $B$^$@$+$JJ8;z$,40@.$7$F$$$J$$$H$-$O!"(Bundo count $B$r%$%s%/%j%a%s%H(B ;; $B$7$J$$!#(B (setq skk-self-insert-non-undo-count (1+ skk-self-insert-non-undo-count)))) (t (setq skk-self-insert-non-undo-count 1)))) (defun skk-set-okurigana () "$B8+=P$78l$+$i(B `skk-henkan-okurigana', `skk-henkan-key' $B$N3FCM$r%;%C%H$9$k!#(B" (cancel-undo-boundary) ;;(and skk-katakana (skk-hiragana-region skk-henkan-start-point (point))) (skk-set-marker skk-henkan-end-point skk-okurigana-start-point) ;; just in case (skk-save-point (goto-char skk-okurigana-start-point) (unless (eq (following-char) ?*) (insert-and-inherit "*"))) (setq skk-henkan-okurigana (buffer-substring-no-properties (1+ skk-okurigana-start-point) (point))) (setq skk-henkan-key (concat (buffer-substring-no-properties skk-henkan-start-point skk-henkan-end-point) (or (skk-okurigana-prefix (if skk-katakana (skk-katakana-to-hiragana skk-henkan-okurigana) skk-henkan-okurigana)) skk-okuri-char)) skk-prefix "") (when skk-katakana (setq skk-henkan-key (skk-katakana-to-hiragana skk-henkan-key) skk-henkan-okurigana (skk-katakana-to-hiragana skk-henkan-okurigana))) (delete-region skk-okurigana-start-point (1+ skk-okurigana-start-point)) (skk-set-henkan-count 0) (skk-henkan) (setq skk-okurigana nil)) (defun skk-set-char-before-as-okurigana (&optional no-sokuon) "$B%]%$%s%H$ND>A0$NJ8;z$rAw$j2>L>$H8+Jo$7$F!"JQ49$r3+;O$9$k!#(B $B$?$@$7!"(B $B$b$&$R$H$DA0$NJ8;z$,B%2;$@$C$?>l9g$K$O!"(B $B$=$l0J9_$rAw$j2>L>$H8+Jo$9!#(B" (interactive) (let ((pt1 (point)) pt2 okuri sokuon) (setq okuri (skk-save-point (backward-char 1) (buffer-substring-no-properties (setq pt2 (point)) pt1))) (when okuri (unless no-sokuon (setq sokuon (skk-save-point (backward-char 2) (buffer-substring-no-properties (point) pt2))) (unless (member sokuon '("$B$C(B" "$B%C(B")) (setq sokuon nil))) ;; (skk-save-point (backward-char (if sokuon 2 1)) (skk-set-marker skk-okurigana-start-point (point))) (setq skk-okuri-char (skk-okurigana-prefix okuri)) (unless skk-current-search-prog-list (setq skk-current-search-prog-list skk-search-prog-list)) (skk-set-okurigana)))) ;;; other inputting functions (defun skk-toggle-kutouten () "$B6gFIE@$N= ?9 chr) skk-use-auto-kutouten) (nth 0 output)) ((and (<= ?$B#0(B chr) (>= ?$B#9(B chr) skk-use-auto-kutouten) (nth 1 output)) (t (nth 2 output))))) (defun skk-abbrev-insert (arg) (interactive "*p") (self-insert-command arg)) (defun skk-abbrev-period (arg) "SKK abbrev $B%b!<%I$G8+=P$78l$NJd40Cf$G$"$l$P!"8e$G$J$1$l$P!"%*%j%8%J%k$N%-!<3d$jIU$1$N%3%^%s%I$r%(%_%e%l!<%H$9$k!#(B" (interactive "*P") (skk-with-point-move (if (eq last-command 'skk-comp-do) (progn (setq this-command 'skk-comp-do) (skk-comp-do nil)) (skk-emulate-original-map arg)))) (defun skk-abbrev-comma (arg) "SKK abbrev $B%b!<%I$G8+=P$78l$NJd40Cf$G$"$l$P!"D>A0$N8uJd$rI=<($9$k!#(B $BJd40$ND>8e$G$J$1$l$P!"%*%j%8%J%k$N%-!<3d$jIU$1$N%3%^%s%I$r%(%_%e%l!<%H$9$k!#(B" (interactive "*P") (skk-with-point-move (if (eq last-command 'skk-comp-do) (progn (setq this-command 'skk-comp-do) (skk-comp-previous)) (skk-emulate-original-map arg)))) (defun skk-jisx0208-latin-insert (arg) "$BA41QJ8;z$r%+%l%s%H%P%C%U%!$KA^F~$9$k!#(B `skk-jisx0208-latin-vector' $B$r%F!<%V%k$H$7$F!":G8e$KF~NO$5$l$?%-!<$KBP1~$9$k(B $BJ8;z$rA^F~$9$k!#(B `skk-auto-insert-paren' $B$NCM$,(B non-nil $B$N>l9g$G!"(B`skk-auto-paren-string-alist' $B$KBP1~$9$kJ8;zNs$,$"$k$H$-$O!"$=$NBP1~$9$kJ8;zNs(B ($B$+$C$3N`(B) $B$r<+F0E*$KA^F~$9(B $B$k!#(B" (interactive "p") (barf-if-buffer-read-only) (skk-with-point-move (let* ((str (aref skk-jisx0208-latin-vector (skk-last-command-char))) (arg2 arg) (pair-str (if skk-auto-insert-paren (cdr (assoc str skk-auto-paren-string-alist)) nil)) (pair-str-inserted 0) region-str) (if (not str) (skk-emulate-original-map arg) (skk-cancel-undo-boundary) (when (and (skk-region-active-p) skk-use-auto-enclose-pair-of-region pair-str) (setq region-str (buffer-substring (region-beginning) (region-end))) (delete-region (region-beginning) (region-end))) (while (> arg 0) (skk-insert-str str) (setq arg (1- arg))) (when pair-str (when region-str (insert region-str)) (while (> arg2 0) (unless (string= pair-str (char-to-string (following-char))) (setq pair-str-inserted (1+ pair-str-inserted)) (skk-insert-str pair-str)) (setq arg2 (1- arg2))) (unless (zerop pair-str-inserted) (backward-char pair-str-inserted)) (when region-str (skip-chars-forward pair-str))))))) (defun skk-delete-backward-char (arg) "$B"'%b!<%I$G(B `skk-delete-implies-kakutei' $B$J$iD>A0$NJ8;z$r>C$7$F3NDj$9$k!#(B $B"'%b!<%I$G(B `skk-delete-implies-kakutei' $B$,(B nil $B$@$C$?$iA08uJd$rI=<($9$k!#(B $B"&%b!<%I$G(B`$B"&(B'$B$h$j$bA0$N%]%$%s%H$GC$9!#(B" (interactive "*P") (skk-with-point-move (let ((count (prefix-numeric-value arg))) (cond ((eq skk-henkan-mode 'active) (if (and (not skk-delete-implies-kakutei) (= (+ skk-henkan-end-point (length skk-henkan-okurigana)) (point))) (skk-previous-candidate) ;; overwrite-mode $B$G!"%]%$%s%H$,A43QJ8;z$K0O$^$l$F$$$k$H(B ;; $B$-$K(B delete-backward-char $B$r;H$&$H!"A43QJ8;z$O>C$9$,H>(B ;; $B3QJ8;zJ,$7$+(B backward $BJ}8~$K%]%$%s%H$,La$i$J$$(B (Emacs ;; 19.31 $B$K$F3NG'(B)$B!#JQ49Cf$N8uJd$KBP$7$F$O(B ;; delete-backward-char $B$GI,$:A43QJ8;z(B 1 $BJ8;zJ,(B backward ;; $BJ}8~$KLa$C$?J}$,NI$$!#(B (if overwrite-mode (progn (backward-char count) (delete-char count arg)) (skk-emulate-original-map arg)) ;; XXX assume skk-prefix has no multibyte chars. (if (> (length skk-prefix) count) (setq skk-prefix (substring skk-prefix 0 (- (length skk-prefix) count))) (setq skk-prefix "")) (when (>= skk-henkan-end-point (point)) (if (eq skk-delete-implies-kakutei 'dont-update) (let ((skk-update-jisyo-function #'ignore)) (skk-kakutei)) (skk-kakutei))))) ((and skk-henkan-mode (>= skk-henkan-start-point (point)) (not (skk-get-prefix skk-current-rule-tree))) (skk-set-henkan-count 0) (skk-kakutei)) ;; $BF~NOCf$N8+=P$78l$KBP$7$F$O(B delete-backward-char $B$G(B ;; $BI,$:A43QJ8;z(B 1$BJ8;zJ,(B backward $BJ}8~$KLa$C$?J}$,NI$$!#(B ((and skk-henkan-mode overwrite-mode) (backward-char count) (delete-char count arg)) (t (skk-delete-okuri-mark) (if (skk-get-prefix skk-current-rule-tree) (skk-erase-prefix 'clean) (skk-set-marker skk-kana-start-point nil) (skk-emulate-original-map arg))))))) ;;; henkan routines (defun skk-henkan (&optional prog-list-number) "$B%+%J$r4A;zJQ49$9$k%a%$%s%k!<%A%s!#(B" (let (mark prototype new-word pair kakutei-henkan) (if (string= skk-henkan-key "") (skk-kakutei) ;; we use mark to go back to the correct position after henkan (unless (eobp) (setq mark (skk-save-point (forward-char 1) (point-marker)))) (unless (eq skk-henkan-mode 'active) ;$B"'%b!<%I0J30$J$i!#$D$^$j0lH/L\$r4^$`(B (skk-change-marker) (setq skk-current-search-prog-list (cond ((and (integerp prog-list-number) (<= 0 prog-list-number) (<= prog-list-number 9)) (or (symbol-value (intern (format "skk-search-prog-list-%d" prog-list-number))) skk-search-prog-list)) (t skk-search-prog-list)))) ;; skk-henkan-1 $B$NCf$+$i%3!<%k$5$l$k(B skk-henkan-show-candidates ;; $B$+$i(B throw $B$5$l$k!#$3$3$G%-%c%C%A$7$?>l9g$O!"(B?x $B$,%9%H%j!<%`$K(B ;; $BLa$5$l$F$$$k$N$G!"$3$N4X?t$r=P$F!"(Bskk-previous-candidate $B$X$f$/!#(B (catch 'unread (cond ((setq prototype (skk-henkan-1)) (setq new-word prototype)) ((setq prototype (skk-henkan-in-minibuff)) (setq new-word (skk-quote-semicolon prototype)))) (setq kakutei-henkan skk-kakutei-flag) (when new-word (setq pair (skk-insert-new-word new-word)))) (skk-delete-overlay skk-inline-overlays) (if mark (progn (goto-char mark) ;; $B;2>H$5$l$F$$$J$$%^!<%+!<$O!"(BGarbage Collection $B$,%3!<%k$5$l$?$H(B ;; $B$-$K2s<}$5$l$k$,!"$=$l$^$G$N4V!"%F%-%9%H$N$I$3$+$r;X$7$F$$$k$H!"(B ;; $B%F%-%9%H$N%"%C%W%G!<%H$N:]$K$=$N%^!<%+! (skk-henkan-count) (- skk-show-candidates-nth-henkan-char 2) )) ;; show candidates in minibuffer (setq new-word (skk-henkan-show-candidates))))) new-word)) (defun skk-get-current-candidate (&optional noconv) (let ((candidate (skk-get-current-candidate-1))) (cond ((not (and (skk-numeric-p) (consp candidate))) candidate) (noconv (car candidate)) (t (cdr candidate))))) (defun skk-henkan-list-filter () (when (skk-numeric-p) (skk-num-uniq) (skk-num-multiple-convert)) (when (and (featurep 'jisx0213) ;Mule-UCS skk-jisx0213-prohibit) (skk-jisx0213-henkan-list-filter))) (defun skk-multiple-line-message-clear () (skk-multiple-line-message nil) (remove-hook 'pre-command-hook 'skk-multiple-line-message-clear)) (defun skk-multiple-line-message (fmt &rest args) (if (featurep 'emacs) (apply #'message fmt args) ;; XEmacs (save-selected-window (select-window (minibuffer-window)) (let* ((str (if fmt (apply #'format fmt args) "")) (lines 1) (last-minibuffer-height (window-height)) (tmp str)) ;; (setq lines (count ?\n tmp)) (while (string-match "\n" tmp) (setq lines (1+ lines) tmp (substring tmp (match-end 0)))) (condition-case nil (progn (enlarge-window (- lines last-minibuffer-height)) (apply #'message fmt args) ;; We also need to clear `current-message' in case ;; running under XEmacs so that the height of ;; `minibuffer-window' is left unchanged. (unless (equal str "") ;; (make-local-hook 'pre-command-hook) ;; (add-hook 'pre-command-hook ;; (function skk-multiple-line-message-clear)))) (add-hook 'pre-command-hook #'skk-multiple-line-message-clear))) (quit (shrink-window (- (window-height) last-minibuffer-height)))) str)))) (defun skk-henkan-show-candidates () "$BJQ49$7$?8uJd72$r%(%3!<%(%j%"$KI=<($9$k!#(B" (skk-save-point (let* ((max-candidates skk-henkan-number-to-display-candidates) (candidate-keys ; $BI=<(MQ$N%-!<%j%9%H(B (mapcar (lambda (c) (when (or (memq c '(?\C-g skk-start-henkan-char)) (skk-key-binding-member (skk-char-to-unibyte-string c) '(skk-previous-candidate))) (skk-error "`%s' $B$KL58z$J%-!<$,;XDj$5$l$F$$$^$9(B" "Illegal key in `%s'" "skk-henkan-show-candidates-keys")) (skk-char-to-unibyte-string (upcase c))) skk-henkan-show-candidates-keys)) key-num-alist ; $B8uJdA*BrMQ$NO"A[%j%9%H(B (key-num-alist1 ; key-num-alist $B$rAH$_N)$F$k$?$a$N:n6HMQO"A[%j%9%H!#(B ;; $B5U$5$^$K$7$F$*$$$F!"I=<($9$k8uJd$N?t$,>/$J$+$C$?$i@h(B ;; $BF,$+$i4v$D$+:o$k!#(B (let (alist) (dotimes (i max-candidates alist) (push (cons (nth i skk-henkan-show-candidates-keys) i) alist)))) (nth-henkan (- skk-show-candidates-nth-henkan-char 1)) (loop 0) inhibit-quit (echo-keystrokes 0) henkan-list new-one reverse n) ;; Emacs 19.28 $B$@$H(B Overlay $B$r>C$7$F$*$+$J$$$H!" ;; skk-henkan-in-minibuff -> skk-henkan ;; -> skk-henkan-show-candidates $B$N=g$G!":F$S$3$N4X?t$,8F$P$l(B ;; $B$?$H$-$O!"$3$3$G(B henkan-list $B$H(B loop $B$r7W;;$9$k!#(B (setq henkan-list (nthcdr (skk-henkan-count) skk-henkan-list) loop (car (skk-exit-show-candidates))) (skk-set-exit-show-candidates nil)) (t ;; skk-henkan-show-candidates-keys $B$N:G=*$N%-!<$KBP1~$9$k8uJd(B ;; $B$,=P$F$/$k$^$G%5!<%A$rB3$1$k!#(B (while (and skk-current-search-prog-list (null (nthcdr (+ nth-henkan max-candidates (* loop max-candidates)) skk-henkan-list))) ;; $B?75,$K8uJd$,F@$i$l$?;~$N$_(B skk-henkan-list-filter $B$r8F$V!#(B ;; skk-look $B$d(B skk-server-completion-search $B$rMxMQ$7$?M9JXHV9f$+$i$N(B ;; $BJQ49;~$J$I$N$h$&$K!"?tCM$r4^$_3n$DBgNL$N8uJd$,$"$k;~$NB.EY2~A1!#(B (let ((cands (skk-search))) (when cands (setq skk-henkan-list (skk-nunion skk-henkan-list cands)) (skk-henkan-list-filter)))) (setq henkan-list (nthcdr (+ nth-henkan (* loop max-candidates)) skk-henkan-list)))) (save-window-excursion (setq n (skk-henkan-show-candidate-subr candidate-keys henkan-list)) (when (> n 0) (condition-case nil (let* ((event (next-command-event)) (char (event-to-character event)) (key (skk-event-key event)) num) ;; clear out candidates in echo area (skk-multiple-line-message "") (if (and (null char) (null key)) (skk-unread-event event) (setq key-num-alist (nthcdr (- max-candidates n) key-num-alist1)) (when (and key-num-alist char) (setq num (cdr (or (assq char key-num-alist) (assq (if (skk-lower-case-p char) (upcase char) (downcase char)) key-num-alist))))) (cond (num (skk-set-henkan-count (+ nth-henkan (* loop max-candidates) num)) (setq new-one (nth num henkan-list) skk-kakutei-flag t loop nil)) ((or (eq char skk-start-henkan-char) ; SPC (skk-key-binding-member key '(skk-nicola-self-insert-rshift) skk-j-mode-map)) ;; (if (or skk-current-search-prog-list (nthcdr max-candidates henkan-list)) (setq loop (1+ loop)) ;; $B8uJd$,?T$-$?!#$3$N4X?t$+$iH4$1$k!#(B (let ((last-showed-index (+ nth-henkan (* loop max-candidates)))) (skk-set-exit-show-candidates ;; cdr $BIt$O!"<-=qEPO?$KF~$kA0$K:G8e$KI=<($7(B ;; $B$?8uJd72$NCf$G:G=i$N8uJd$r;X$9%$%s%G%/%9(B (cons loop last-showed-index)) ;; $B<-=qEPO?$KF~$k!#(Bskk-henkan-count $B$O(B ;; skk-henkan-list $B$N:G8e$N8uJd$NuBV$KLa$9!#(B (skk-escape-from-show-candidates nth-henkan)) (t ;; $B0l$DA0$N8uJd72$r%(%3!<%(%j%"$KI=<($9$k!#(B (setq reverse t)))) ((eq char skk-annotation-toggle-display-char) (skk-annotation-toggle-display-p)) ((skk-key-binding-member key skk-quit-commands skk-j-mode-map) ;; (signal 'quit nil)) (t (skk-message "`%s' $B$OL58z$J%-!<$G$9!*(B" "`%s' is not valid here!" (or (key-description key) (key-description char))) (sit-for 1))))) (quit ;; skk-previous-candidate $B$X(B (skk-escape-from-show-candidates 0)))))) ; end of while loop ;; (or (cdr-safe new-one) new-one)))) (defun skk-henkan-show-candidate-subr (keys candidates) "$B8uJd72$rI=<($9$k4X?t!#(B KEYS $B$H(B CANDIDATES $B$rAH$_9g$o$;$F#7$NG\?t8D$N8uJd72(B ($B8uJd?t$,(B $BK~$?$J$+$C$?$i$=$3$GBG$A@Z$k(B) $B$NJ8;zNs$r:n$j!"%$%s%i%$%s!"%D!<%k%F%#%C%W!"(B $B%(%3!<%(%j%"Kt$O8uJd%P%C%U%!$KI=<($9$k!#(B" (let* ((max-candidates skk-henkan-number-to-display-candidates) (workinglst (skk-henkan-candidate-list candidates max-candidates)) str tooltip-str message-log-max) (when workinglst (dotimes (i (length workinglst)) (let ((cand (if (consp (nth i workinglst)) (cdr (nth i workinglst)) (nth i workinglst))) (key (concat (propertize (nth i keys) 'face 'skk-henkan-show-candidates-keys-face) ":"))) (when (and (zerop (% i skk-henkan-number-to-display-candidates)) ; $B3FNs$N:G=i$N8uJd(B (not (zerop i))) (setq str (concat str "\n"))) (setq str (concat str (if (zerop (% i skk-henkan-number-to-display-candidates)) "" " ") key cand) tooltip-str (concat tooltip-str key cand "\n")))) (setq str (concat str (propertize (format " [$B;D$j(B %d%s]" (- (length candidates) (length workinglst)) (make-string (length skk-current-search-prog-list) ?+)) 'face 'skk-henkan-rest-indicator-face)) tooltip-str (concat tooltip-str (format "[$B;D$j(B %d%s]" (- (length candidates) (length workinglst)) (make-string (length skk-current-search-prog-list) ?+)))) (cond ;; (1) $B8=:_$N%P%C%U%!$NCf$KI=<($9$k(B ($B%$%s%i%$%sI=<((B) ((and (featurep 'emacs) skk-show-inline (not skk-isearch-switch) (not (skk-in-minibuffer-p))) (skk-inline-show str skk-inline-show-face tooltip-str max-candidates)) ;; (2) tooptip $B$GI=<($9$k(B ((and window-system skk-show-tooltip (not (eq (symbol-function 'skk-tooltip-show-at-point) 'ignore))) (when (and (not (eval-when-compile (featurep 'xemacs))) skk-henkan-rest-indicator) (let* ((body (substring tooltip-str 0 (string-match "\\[$B;D$j(B" tooltip-str))) (rest (substring tooltip-str (- (length body) (length tooltip-str))))) (setq tooltip-str (concat body (make-string (- (car (skk-tooltip-max-tooltip-size)) (string-width rest) 3) ? ) rest)))) (funcall skk-tooltip-function tooltip-str)) ;; (3) $B%(%3!<%(%j%"$r;H$&(B ((and (not skk-show-candidates-always-pop-to-buffer) (> (frame-width) (skk-max-string-width (split-string str "\n")))) (when skk-henkan-rest-indicator (let* ((body (substring str 0 (string-match " \\[$B;D$j(B" str))) (rest (substring str (- (length body) (length str))))) (setq str (concat body (make-string (- (frame-width) (string-width str) 1) ? ) rest)))) (skk-multiple-line-message "%s" str)) ;; (4) $B0l;~%P%C%U%!$r(B pop up $B$7$F;H$&(B (t (skk-henkan-show-candidates-buffer str keys)))) ;; $BI=<($9$k8uJd?t$rJV$9!#(B (length workinglst))) (defun skk-check-treat-candidate-appearance-function () (when (or (eq skk-annotation-lookup-lookup 'always) (eq skk-annotation-lookup-DictionaryServices 'always)) ;; Apple OS X $B$N<-=q%5!<%S%9$r8uJd0lMw$G$b;H$&>l9g$O!"(B ;; `skk-treat-candidate-appearance-function' $B$rD4@a$9$kI,MW$"$j(B (setq skk-treat-candidate-appearance-function 'skk-treat-candidate-sample2)) ;; (functionp skk-treat-candidate-appearance-function)) (defun skk-treat-candidate-appearance (candidate listing-p) (funcall skk-treat-candidate-appearance-function candidate listing-p)) (defun skk-henkan-candidate-list (candidates max) ;; CANDIDATES $B$N@hF,$N(B max $B8D$N$_$N%j%9%H$rJV$9!#(B (let ((count 0) e sep note v) (while (> max count) (setq e (nth count candidates)) (setq sep nil note nil) (when (and (skk-numeric-p) (consp e)) (setq e (cdr e))) (cond (e ;; $B$^$@8uJd$,;D$C$F$$$k>l9g(B (when (skk-check-treat-candidate-appearance-function) ;; skk-treat-candidate-appearance-function $B$K$h$C$F%f!<%6$O(B ;; $BG$0U$K8uJdJ8;zNs$HCm~$9$k$3$H$,$G$-$k!#(B ;; $B%f!<%6$,JV$9CM$O(B cons cell $B$^$?$OJ8;zNs$H$J$k!#(B (let ((value (save-match-data ;; $B8uJd0lMwI=<($N:]$O(B ;; skk-treat-candidate-appearance-function $B$N(B ;; $BBh(B 2 $B0z?t$r(B non-nil $B$H$9$k!#(B (skk-treat-candidate-appearance e 'list)))) (cond ((consp value) ;; $BJV$jCM$,(B cons cell $B$@$C$?>l9g(B (setq e (car value)) (cond ((consp (cdr value)) ;; ($B8uJd(B . ($B%;%Q%l!<%?(B . $BCml9g(B (setq e value note nil))))) ;; $B%f!<%6$,Cml9g$O$b$&Cm$`Cml9g(B (setq count max)))) ;; $B8uJd$r=P8==g$K%=!<%H$7D>$7$FJV$9!#(B (nreverse v))) (defun skk-henkan-show-candidates-buffer (str keys) ;; $B%(%3!<%(%j%"$NBe$o$j$K0l;~%P%C%U%!$r(B pop up $B$7$F8uJd0lMw$rI=<($9$k!#(B (let ((buff (get-buffer-create "*$B8uJd(B*")) (case-fold-search t)) (with-current-buffer buff (erase-buffer) (insert str) (goto-char (point-min)) ;; 1 $B8uJd$K(B 1 $B9T$r3d$jEv$F$k!#(B (forward-char 2) (while (re-search-forward (concat " " (mapconcat 'identity keys ":\\| ") ":\\|" " \\[$B;D$j(B [0-9]+\\(\\++\\)?\\]") nil t) (goto-char (match-beginning 0)) (delete-char 2) (insert "\n")) (goto-char (point-min)) ;; $B1&C<$KM>Gr$r@_$1$k(B (while (and (move-to-column (- (frame-width) 2)) (not (eobp)) (>= (frame-width) (current-column))) (unless (eolp) ;; $B6XB'=hM}(B (unless (member (char-to-string (char-before)) skk-auto-start-henkan-keyword-list) (backward-char 1)) (insert "\n ") (forward-line -1)) (forward-line 1)) ;; [$B;D$j(B 99++] $B$r1&C<$X(B (when skk-henkan-rest-indicator (let ((col (progn (goto-char (point-max)) (skk-screen-column)))) (beginning-of-line) (insert-char 32 (- (frame-width) col 1)))) ;;$B8uJd%P%C%U%!$NGX7J?'(B (when skk-candidate-buffer-background-color (unless skk-candidate-buffer-background-color-odd (setq skk-candidate-buffer-background-color-odd skk-candidate-buffer-background-color)) (goto-char (point-min)) (let ((background-color skk-candidate-buffer-background-color)) (while (null (eobp)) (let* ((eol (save-excursion (end-of-line) (unless (eobp) (forward-char)) (point))) (bol (progn (beginning-of-line) (point))) (ovl (make-overlay bol eol))) (when (or (string-match "[ASDFJKL]:" (buffer-substring bol (+ 2 bol))) (string-match "\\[$B;D$j(B [0-9]+\\(\\++\\)?\\]" (buffer-substring bol eol))) (setq background-color (if (string= background-color skk-candidate-buffer-background-color) skk-candidate-buffer-background-color-odd skk-candidate-buffer-background-color))) (overlay-put ovl 'face `(:background ,background-color))) (forward-line)))) (goto-char (point-min))) (let ((minibuf-p (skk-in-minibuffer-p)) (window (get-buffer-window (skk-minibuffer-origin)))) (when minibuf-p (if window (select-window window) (other-window 1))) (unless (eq (next-window) (selected-window)) ;; *$B8uJd(B* $B%P%C%U%!$r8+0W$/$9$k!#(B ;; `save-window-excursion' $B$NCf$J$N$GBg>fIW$J$O$:!#(B (and skk-candidate-buffer-delete-other-windows (delete-other-windows))) (save-selected-window (pop-to-buffer buff) (let ((lines (count-lines (point-min) (point-max)))) ;; window-height() includes mode-line (when (> lines (1- (window-height))) (enlarge-window (- lines (1- (window-height)))))) (unless (pos-visible-in-window-p) (recenter '(1))) (skk-fit-window) (apply 'set-window-fringes (if skk-candidate-buffer-display-fringes skk-candidate-buffer-fringe-width '(nil 0 0)))) (when minibuf-p (select-window (minibuffer-window)))))) (defun skk-henkan-in-minibuff () "$B<-=qEPO?%b!<%I$KF~$j!"EPO?$7$?C18l$NJ8;zNs$rJV$9!#(B" (unless (numberp skk-henkan-in-minibuff-nest-level) (setq skk-henkan-in-minibuff-nest-level (minibuffer-depth))) (when (and window-system skk-show-tooltip) (skk-tooltip-hide)) (when skk-show-inline (skk-inline-show "$B"-<-=qEPO?Cf"-(B" 'skk-jisyo-registration-badge-face)) (save-match-data (let ((enable-recursive-minibuffers t) (depth (- (1+ (minibuffer-depth)) skk-henkan-in-minibuff-nest-level)) ;; XEmacs $B$G$Ol9g!#:G8e$K%(%3!<%(%j%"$KI=<($7$?8uJd72$r:FI=(B ;; $B<($9$k!#(B (progn (skk-set-henkan-count (cdr (skk-exit-show-candidates))) (skk-henkan)) ;; skk-henkan-show-candidates $B$KF~$kA0$K8uJd$,?T$-$?>l9g(B (skk-set-henkan-count (1- (skk-henkan-count))) (if (= (skk-henkan-count) -1) ;; $BAw$j$"$j$NJQ49$G<-=qEPO?$KF~$j!"6uJ8;z$rEPO?$7$?8e!"$=$N(B ;; $B$^$^:FEYAw$j$J$7$H$7$FJQ49$7$?>l9g$O(B ;; skk-henkan-okurigana, skk-okuri-char $B$NCM$r(B nil $B$K$7$J$1(B ;; $B$l$P!"$=$l$>$l$NCM$K8E$$Aw$j2>L>$,F~$C$?$^$^$G8!:w$K<:GT(B ;; $B$9$k!#(B (progn (setq skk-henkan-okurigana nil skk-okurigana nil skk-okuri-char nil) (skk-change-marker-to-white)) ;; $B<-=qEPO?$KF~$kD>A0$N8uJd$KCmH(B new-one)))) (defun skk-compute-henkan-key2 () ;; skk-henkan-okurigana $B$,(B non-nil $B$J$i(B skk-henkan-key $B$+$i!"$+$D$F(B ;; skk-henkan-key2 $B$H8F$P$l$F$$$?$b$N$r:n$k!#(B ;; skk-henkan-key2 $B$H$O!"!V4A;zItJ,$NFI$_(B + "*" + $BAw$j2>L>!W$N7A<0$NJ8;zNs$r(B ;; $B8@$&!#(B (when skk-henkan-okurigana (save-match-data (string-match "[a-z]+$" skk-henkan-key) (concat (substring skk-henkan-key 0 (match-beginning 0)) "*" skk-henkan-okurigana)))) (defun skk-remove-redundant-okurigana (word) "$B<-=q$KEPO?$5$l$k8uJd$N;}$DM>7W$JAw$j2>L>$rL>$r>C$7$F$+$i(B [RET] $B$r2!$5$J$1$l$P@5$7$/EPO?(B $B$G$-$J$$!#(B $B$=$3$G!"%f!<%6$,4V0c$($FAw$j2>L>$r>C$7K:$l$F$$$J$$$+$I$&$+!"(B SKK $B$NB&$G%A%'%C%/$G$-$kHO0O$K$D$$$F$O%f!<%6$N3NG'$rl9g$N$_M-8z!#(B auto $B$K@_Dj$9$k$H%f!<%6$K3NG'$7$J$$!#(B $BJQ49$,9T$o$l$?%P%C%U%!$G$$Aw$j2>L>$r-4}4}IhMQ(B")) ;; skk-henkan-show-candidates-buffer $B$+$i$R$C$Q$C$F$-$?%3!<%I(B (let ((minibuf-p (skk-in-minibuffer-p)) (window (get-buffer-window (skk-minibuffer-origin)))) (when minibuf-p (if window (select-window window) (other-window 1))) (unless (eq (next-window) (selected-window)) (delete-other-windows)) (save-selected-window (pop-to-buffer buff) (skk-fit-window) (unless (pos-visible-in-window-p) (recenter '(1)))) (when minibuf-p (select-window (minibuffer-window))))))) (defun skk-previous-candidate (&optional arg) "$B"'%b!<%I$G$"$l$P!"0l$DA0$N8uJd$rI=<($9$k!#(B $B"'%b!<%I0J30$G$O%+%l%s%H%P%C%U%!$K%?%$%W$7$?J8;z$rA^F~$9$k!#(B $B3NDj<-=q$K$h$k3NDj$ND>8e$K8F$V$H3NDj$r%"%s%I%%$7!"8+=P$7$KBP$9$kC$7$F$*$+$J$$$H!"C$7!"$=$N>l=j$XJQ497k2L$NJ8;zNs$rA^F~$9$k!#(B" (save-match-data (let (retval note face) (while (and (setq retval (skk-treat-new-word (or retval word))) (stringp retval)) ;; nextword-or-retval $B$KJ8;zNs$,BeF~$5$l$?>l9g(B (`skk-ignore-dic-word' ;; $B$K$h$C$FA0$N8uJd$,%9%-%C%W$5$l$?>l9g(B) $B$O$=$NJ8;zNs$r?7$7$$8uJd$H$7$F(B ;; $B=hM}$r7+$jJV$9!#J8;zNs0J30$,BeF~$5$l$?$i%k!<%W$r=*N;$9$k!#(B ()) (when (consp retval) (setq word (car retval) note (cdr retval))) (unless (eq retval 'none) ;; $BA^F~$9$Y$-8uJd$,$"$k!#(B (when skk-use-face (skk-henkan-face-off)) (delete-region skk-henkan-start-point skk-henkan-end-point) (goto-char skk-henkan-start-point) ;; word $B$rA^F~$9$kA0$K$=$N(B face $BB0@-$r=|5n$9$k!#$?$@$7!$=|5n$9$kA0$K(B ;; face $BB0@-$rJQ?t$KB`Hr$9$k!#$3$N(B face $BB0@-$Ol9g!#(B (skk-kakutei)) (cons word note))))) (defun skk-treat-new-word (word) "`skk-insert-new-word' $B$N%5%V%k!<%A%s!#A^F~$9$Y$-C18l$rAu>~$9$k!#(B $B%k!<%WFb$G$h$P$l$k!#=hM}Cf$K(B `skk-ignore-dic-word' $B$,8F$P$l$?>l9g$O$=$3$+$i(B catch $B$9$k!#(Bcatch $B$7$?CM$,J8;zNs$J$i$P!"$=$l$rJV$9(B (word $B$r$=$l$KCV$-49$($F(B $B:FEY8F$S=P$5$l$k(B)$B!#(B catch $B$7$J$+$C$?>l9g$OA^F~$9$Y$-J8;zNs$,F@$i$l$k!#$3$N>l9g(B $B$OCml9g!"(Bnext-word $B$KJ8;zNs$,%;%C%H$5$l$F$$$k!#(B ;; $B$3$N>l9g(B word $B$r(B next-word $B$KCV$-49$($F=hM}$r$d$jD>$9!#(B ;; $B8uJd0lMw$GA*Br$5$l$?8uJd$rA^F~$9$k:]$O!"(B ;; skk-kakutei-flag $B$,(B t $B$K$J$C$F$$$k!#$3$N>l9g$OAu>~(B ;; $B$7$F$b$7$+$?$J$$!#(B (when (and (not skk-kakutei-flag) (skk-check-treat-candidate-appearance-function)) ;; skk-treat-candidate-appearance-function $B$K$h$C$F(B ;; $B%f!<%6$OG$0U$K8uJdJ8;zNs$HCm~(B ;; $B$9$k$3$H$,$G$-$k!#(B ;; $B%f!<%6$,JV$9CM$O(B cons cell $B$^$?$OJ8;zNs$H$J$k!#(B (save-match-data (let ((value (skk-treat-candidate-appearance word nil))) (if (consp value) ;; $BJV$jCM$,(B cons cell $B$@$C$?>l9g(B (setq word (car value) note (cond ((consp (cdr value)) ;; ($B8uJd(B . ($B%;%Q%l!<%?(B . $BCml9g(B (setq word value))))) ;; $B%f!<%6$N0U?^$K$h$C$FCml9g$O(BSKK $B$NJ}$G$OBP=h$7$J$$!#(B (when (and (not (stringp note)) (string-match ";" word)) (setq note (substring word (match-end 0)) word (substring word 0 (match-beginning 0)))) ;; word $B$NJ}$,(B S $B<0$NJ8;zNs$@$C$?$i!"$=$l$rI>2A$7$?(B ;; $BJ8;zNs$rJV$9!#(B ;; note $B$NJ}$b(B S $B<0$N>l9g$,$"$j$&$k$,!"$=$l$NI>2A$O(B ;; skk-annotation $B$,$d$C$F$/$l$k!#(B (setq word (skk-eval-string word)) (cons word note)))) (defun skk-treat-strip-note-from-word (word) "$BJQ498uJd$NJ8;zNs(B WORD $B$r!"8uJd$=$N$b$N$HCm (\"word\" . nil) \"word;\" --> (\"word\" . \"\") \"word;note\" --> (\"word\" . \"note\") "(when word (save-match-data (let (cand note) (if (string-match ";" word) (setq cand (substring word 0 (match-beginning 0)) note (substring word (match-end 0))) (setq cand word)) (cons cand note))))) (defun skk-kakutei (&optional arg word) "$B8=:_I=<($5$l$F$$$k8l$G3NDj$7!"<-=q$r99?7$9$k!#(B $B%+%l%s%H%P%C%U%!$G(B SKK $B%b!<%I$K$J$C$F$$$J$+$C$?$i(B SKK $B%b!<%I$KF~$k!#(B $B%*%W%7%g%J%k0z?t$N(B WORD $B$rEO$9$H!"8=:_I=<($5$l$F$$$k8uJd$H$OL54X78$K(B WORD $B$G3NDj$9$k!#(B" ;; read only $B$G%(%i!<$K$J$k$h$&$K$9$k$H(B read only $B%P%C%U%!$G(B SKK $B$,5/F0$G$-(B ;; $B$J$/$J$k!#(B (interactive "P") (let ((inhibit-quit t) converted kakutei-word) (when skk-henkan-mode ;'on or 'active (case skk-henkan-mode (active ;$B"'%b!<%I(B (setq kakutei-word ;; $B3NDj<-=q$N8l$G3NDj$7$?$H$-$O!"<-=q$K$=$N8l$r=q$-9~$`I,MW$b$J(B ;; $B$$$7!"99?7$9$kI,MW$b$J$$$H;W$C$F$$$?$,!"Jd40$r9T$&$H$-$O!"(B ;; $B8D?M<-=q$r;2>H$9$k(B ($B3NDj<-=q$O;2>H$7$J$$(B) $B$N$G!"B?>/;q8;$H;~(B ;; $B4V$rL5BL$K$7$F$b!"8D?M<-=q$K3NDj<-=q$N%(%s%H%j$r=q$-9~$s$G99(B ;; $B?7$b$7$F$*$/!#(B (or word (skk-get-current-candidate 'noconv))) (when (and kakutei-word (skk-update-jisyo-p kakutei-word)) (skk-update-jisyo kakutei-word) ;; $B@\Hx<-!&@\F,<-$K4X$9$k=hM}(B (cond ((not skk-learn-combined-word) ;; $B%f!<%6$,4uK>$7$J$$8B$j2?$N=hM}$b$7$J$$!#(B (setq skk-after-prefix nil)) ((and skk-after-prefix (not (string-match "^[^\000-\177]+>$" skk-henkan-key))) ;; $B$3$N%P%C%U%!$K$*$$$F!"@\F,<-$KB3$/F~NO$,?J9TCf!#(B (let* ((history (cdr skk-kakutei-history)) (list1 (car skk-kakutei-history)) ; ($B$j$h$&(B $BMxMQ(B) (list2 (catch 'list ; ($B$5$$(B> $B:F(B) (while history (if (eq (nth 2 list1) (nth 2 (car history))) ;; $BF1$8%P%C%U%!$@$C$?$i(B (throw 'list (car history)) (setq history (cdr history)))))) (list1-word (car (skk-treat-strip-note-from-word (nth 1 list1)))) (list2-word (car (skk-treat-strip-note-from-word (nth 1 list2)))) skk-henkan-key comb-word) (when (and (stringp list2-word) (string-match "^[^\000-\177]+>$" (car list2)) (skk-save-point (ignore-errors (goto-char (- skk-henkan-start-point (length list1-word))) (looking-at list2-word)))) (setq skk-henkan-key (concat (substring (car list2) 0 (1- (length (car list2)))) (car list1)) ; $B$5$$$j$h$&(B comb-word (concat list2-word list1-word)) ; $B:FMxMQ(B (skk-update-jisyo comb-word)) (setq skk-after-prefix nil))) ((and (stringp (caar skk-kakutei-history)) (string-match "^>[^\000-\177]+$" (caar skk-kakutei-history))) ;; $B:#2s$N3NDj$,@\Hx<-$@$C$?>l9g!"A02s$N3NDj$H:#2s$N@\Hx<-$r(B ;; $B9g$o$;$?8l$r<-=qEPO?$9$k!#(B (let* ((history (cdr skk-kakutei-history)) (list1 (car skk-kakutei-history)) ; (>$B$F$-(B $BE*(B) (list2 (catch 'list ; ($B$+$s$I$&(B $B46F0(B) (while history (if (eq (nth 2 list1) (nth 2 (car history))) ;; $BF1$8%P%C%U%!$@$C$?$i(B (throw 'list (car history)) (setq history (cdr history)))))) (list1-word (car (skk-treat-strip-note-from-word (nth 1 list1)))) (list2-word (car (skk-treat-strip-note-from-word (nth 1 list2)))) skk-henkan-key comb-word) (when (stringp list2-word) (setq skk-henkan-key (concat (car list2) (substring (car list1) 1)) ; $B$+$s$I$&$F$-(B comb-word (concat list2-word list1-word)) ; $B46F0E*(B (skk-update-jisyo comb-word))))) ;; (when (skk-numeric-p) (setq converted (skk-get-current-candidate)) (skk-num-update-jisyo kakutei-word converted)))) (t ;; $B"&%b!<%I$G3NDj$7$?>l9g!#JX59E*$K8=:_$N%]%$%s%H$^$G$r8+=P$78l$r07$$(B ;; $B$7$FMzNr$r99?7$9$k!#(B (when (and (> skk-kakutei-history-limit 0) (< skk-henkan-start-point (point)) (skk-save-point (goto-char skk-henkan-start-point) (eq (skk-what-char-type) 'hiragana))) (skk-update-kakutei-history (buffer-substring-no-properties skk-henkan-start-point (point)))))) (when (and window-system skk-show-tooltip) (skk-tooltip-hide)) (when skk-mode (skk-kakutei-cleanup-buffer) (when (and skk-undo-kakutei-word-only (consp buffer-undo-list)) ;; $B"&%b!<%I$K0\$C$F$+$i8=:_$^$G$N(B undo $B>pJs$+$i@hF,0J30$N(B ;; nil $B$r:o=|$9$k(B (setq buffer-undo-list (cons (car buffer-undo-list) (nconc (delq nil (cdr (butlast buffer-undo-list (length skk-last-buffer-undo-list)))) skk-last-buffer-undo-list)))) ;; KAKUTEI-WORD $B$J$I$N>pJs$,I,MW$G$"$l$P!"(Bskk-last-henkan-data ;; $B$+$iF@$i$l$k!#I,MW$J%G!<%?$,$=$l$i$NJQ?t$K8BDj$5$l$J$$$N$G!"(B ;; $B0z?t$K$7$J$$!#(B (when skk-kakutei-end-function (funcall skk-kakutei-end-function)) (skk-kakutei-initialize (if (skk-numeric-p) (cons kakutei-word converted) kakutei-word)))) (skk-do-auto-fill) (when (and skk-undo-kakutei-return-previous-point (numberp skk-undo-kakutei-previous-point) (numberp skk-undo-kakutei-previous-length) (markerp skk-henkan-end-point) (markerp skk-henkan-start-point)) (goto-char (+ skk-undo-kakutei-previous-point (if (>= skk-undo-kakutei-previous-point (1- (+ skk-henkan-start-point skk-undo-kakutei-previous-length))) (- skk-henkan-end-point skk-henkan-start-point skk-undo-kakutei-previous-length) 0)))) (setq skk-undo-kakutei-previous-point nil skk-undo-kakutei-previous-length nil) (cond ((not skk-mode) (skk-mode 1)) (skk-undo-kakutei-prev-state (cond ((cdr (assq 'skk-latin-mode skk-undo-kakutei-prev-state)) (skk-latin-mode-on)) ((cdr (assq 'skk-jisx0208-latin-mode skk-undo-kakutei-prev-state)) (skk-jisx0208-latin-mode-on)) ;; skk-mode $B$,%*%U$N>uBV$KLa$=$&$H$9$k$H(B ;; `skk-mode-exit' $BFb$G:FEY(B `skk-kakutei' $B$r8F$V$?(B ;; $B$aL58B%k!<%W$K$J$C$F$7$^$&(B ;; ((not (cdr (assq 'skk-mode skk-undo-kakutei-prev-state))) ;; (skk-mode -1)) ((cdr (assq 'skk-j-mode skk-undo-kakutei-prev-state)) ;; M-x skk-undo-kakutei $B$G(B skk-abbrev-mode $B$KLa$C$?:]!"(B ;; $B3NDj8e$K(B skk-j-mode $B$KLa$k$?$a$K$O0J2<$,I,MW!#(B (skk-j-mode-on skk-katakana))) (setq skk-undo-kakutei-prev-state nil)) ((not (or skk-j-mode skk-jisx0201-mode)) (skk-j-mode-on skk-katakana)))) nil) (defun skk-update-jisyo-p (word) "WORD $B$,8D?M<-=q$KEPO?$5$l$k$Y$-$+H]$+$rH=Dj$9$k!#(B $BJQ?t(B `skk-search-excluding-word-pattern-function' $B$,4X?t$G$"$l$P!"(BWORD $B$r(B $B0z?t$K$7$F$=$N4X?t$r$l$N4X?t$rH$N$3$H!#(B" (save-match-data (not (run-hook-with-args-until-success 'skk-search-excluding-word-pattern-function word)))) (defun skk-kakutei-cleanup-buffer () "$B3NDjD>8e$N%P%C%U%!$r@07A$9$k!#(B" (when skk-okurigana ;; $B3NDjJQ49$N$H$-$K$3$3$K$/$k!#(B ;; $B:FJQ49$N:]$KAw$j2>L>4XO"%U%i%0$,(B clear $B$5$l$F$$$k$H$h$m$7$/$J$$$N$G(B ;; `skk-delete-okuri-mark' $B$N(B NOCLEAR $B$r%;%C%H$7$F8F$V!#(B (skk-delete-okuri-mark t)) (skk-delete-henkan-markers) (when (and (boundp 'self-insert-after-hook) self-insert-after-hook) (funcall self-insert-after-hook skk-henkan-start-point (point))) (when overwrite-mode (skk-del-char-with-pad (skk-ovwrt-len (buffer-substring-no-properties skk-henkan-start-point (point)))))) (defun skk-kakutei-initialize (&optional kakutei-word) "$B3NDj;~$KJQ?t$N=i4|2=$H%"%s%I%%$N$?$a$NJQ?t$NJ]B8$r9T$&!#(B" (when (and kakutei-word (or (consp kakutei-word) (not (string= kakutei-word "")))) (setq skk-kakutei-count (1+ skk-kakutei-count)) ;; skk-undo-kakutei $B$N$?$a$K:G8e$NJQ49$N%G!<%?$rJ]B8$9$k!#(B (skk-put-last-henkan-data (list (cons 'henkan-key skk-henkan-key) (cons 'okuri-char skk-okuri-char) (cons 'henkan-okurigana skk-henkan-okurigana) (cons 'henkan-list ;; $B3NDj$7$?8l$r@hF,$K$9$k!#(B (cons kakutei-word (delete kakutei-word skk-henkan-list))) (cons 'henkan-buffer (current-buffer)) (cons 'henkan-point (let ((hpoint (skk-get-last-henkan-datum 'henkan-point))) (if hpoint (set-marker hpoint (point)) (point-marker)))) (cons 'abbrev-mode skk-abbrev-mode) ;; (eq last-command 'skk-kakutei-henkan) $B$G%]!<%?%V%k$K3NG'$G$-(B ;; $B$k$N$G$"$($F$$$i$J$$$+!#(B ;; (cons 'kakutei-henkan (eq this-command 'skk-kakutei-henkan)) ;; $B>e5-0J30$N(B henkan data $B$r(B skk-last-henkan-data $B$K;D$7$?$+$C$?$i!"(B ;; skk-kakutei-end-function $B$rMxMQ$9$k!#(B ))) (skk-set-henkan-count -1) (skk-set-exit-show-candidates nil) (setq skk-abbrev-mode nil skk-henkan-in-minibuff-flag nil skk-henkan-key nil skk-henkan-list nil skk-henkan-okurigana nil skk-henkan-mode nil skk-kakutei-flag nil skk-kakutei-henkan-flag nil skk-undo-kakutei-flag nil skk-okuri-char nil skk-okuri-index-min -1 skk-okuri-index-max -1 ;; skk-prefix "" )) (defun skk-undo-kakutei () "$B0lHV:G8e$N3NDj$r%"%s%I%%$7!"8+=P$78l$KBP$9$k8uJd$rI=<($9$k!#(B $B:G8e$K3NDj$7$?$H$-$N8uJd$O%9%-%C%W$5$l$k!#(B $BB>$K8uJd$,$J$$$H$-$O!"%(%3!<%(%j%"$G$N<-=qEPO?$KF~$k!#(B" (interactive) (let (jmsg emsg) (cond ((eq last-command 'skk-undo-kakutei) (setq jmsg "$B3NDj%"%s%I%%$OO"B3;HMQ$G$-$^$;$s(B" emsg "Cannot undo kakutei repeatedly")) ((eq skk-henkan-mode 'active) (setq jmsg "$B"'%b!<%I$G$O3NDj%"%s%I%%$G$-$^$;$s(B" emsg "Cannot undo kakutei in $B"'(B mode")) ((or (not (skk-get-last-henkan-datum 'henkan-key)) (string= (skk-get-last-henkan-datum 'henkan-key) "") (null skk-henkan-end-point)) ;; skk-henkan-key may be nil or "". (setq jmsg "$B%"%s%I%%%G!<%?$,$"$j$^$;$s(B" emsg "Lost undo data"))) (if jmsg (skk-message jmsg emsg) (skk-with-point-move (condition-case nil (skk-undo-kakutei-subr) ;; skk-undo-kakutei $B$+$iESCf$GH4$1$?>l9g$O!"3F= (point-max) end) ;; $B:G8e$NJQ49ItJ,$N%F%-%9%H$r>C$9!#Aw$j2>L>$rGD0.$7$F$$$k$N$J$i(B ;; (skk-process-okuri-early $B$,(B non-nil $B$J$iAw$j2>L>$rGD0.$G$-$J$$(B)$B!"(B ;; $BAw$j2>L>$r4^$a$?ItJ,$^$G$r>C$9!#(B (delete-region skk-henkan-start-point end)) (when skk-undo-kakutei-word-only (setq skk-last-buffer-undo-list buffer-undo-list)) (goto-char skk-henkan-start-point) (insert-and-inherit "$B"'(B") (skk-set-marker skk-henkan-start-point (point)) (cond (skk-okuri-char ;; $BAw$j$"$j(B (insert-and-inherit (substring skk-henkan-key 0 (1- (length skk-henkan-key)))) (skk-set-marker skk-henkan-end-point (point)) (when skk-henkan-okurigana (insert-and-inherit skk-henkan-okurigana))) (t (insert-and-inherit skk-henkan-key) (skk-set-marker skk-henkan-end-point (point)))) (skk-message "$B3NDj%"%s%I%%!*(B" "Undo kakutei!") (skk-set-henkan-count 1) (skk-henkan))) (defun skk-set-henkan-point (&optional arg) "$BJQ49$r3+;O$9$k%]%$%s%H$r%^!<%/$7!"BP1~$9$k(B `skk-prefix' $B$+Jl2;$rF~NO$9$k!#(B" (let* ((last-char (skk-downcase (skk-last-command-char))) (normal (not (eq last-char (skk-last-command-char)))) (sokuon (if (string= skk-prefix (skk-char-to-unibyte-string last-char)) (/= last-char ?o) nil)) (henkan-active (eq skk-henkan-mode 'active))) (cond ((not (eq skk-henkan-mode 'on)) (if normal (skk-set-henkan-point-subr) (when skk-henkan-mode (skk-set-henkan-point-subr)) (if henkan-active (skk-emulate-original-map arg) ;; What's to be here? ;;(skk-insert arg) ))) ((not normal) ;; special char (insert-and-inherit last-char) (skk-set-marker skk-henkan-end-point (point)) (skk-set-henkan-count 0) (setq skk-henkan-key (buffer-substring-no-properties skk-henkan-start-point (point)) skk-prefix "") (skk-henkan)) ;; prepare for the processing of okurigana if not skk-okurigana ;; and the preceding character is not a numeric character. ;; if the previous char is a special midashi char or a ;; numeric character, we assume that the user intended to type the ;; last-command-char in lower case. ((and (or ;; for KAnji, KanJIru (not (skk-get-prefix skk-current-rule-tree)) (if (/= skk-kana-start-point skk-henkan-start-point) (prog1 t (unless sokuon ; for TaSSi or TasSi (skk-kana-cleanup))) ; for NEko nil)) (not skk-okurigana) (or (= skk-henkan-start-point (point)) (let ((p (char-before))) (not (or ;; previous char is a special midashi char (memq p skk-special-midashi-char-list) ;; previous char is an ascii numeric char (and (<= ?0 p) (<= p ?9)) ;; previous char is a JIS X 0208 numeric char (and (skk-jisx0208-p p) (= (skk-char-octet p 0) 35) ;?# (<= 48 (skk-char-octet p 1)) ; ?0 (<= (skk-char-octet p 1) 57)) ; ?9 ))))) (cond (skk-process-okuri-early (skk-set-marker skk-henkan-end-point (point)) (let ((char (skk-char-to-unibyte-string last-char))) (setq skk-okuri-char (or (cdr (assoc char skk-okuri-char-alist)) char))) (cond (sokuon (setq skk-henkan-key (concat (buffer-substring-no-properties skk-henkan-start-point skk-kana-start-point) (if skk-katakana "$B%C(B" "$B$C(B") skk-henkan-okurigana)) (skk-erase-prefix) (insert-and-inherit (if skk-katakana "$B%C(B " "$B$C(B ")) (setq skk-prefix "") (skk-set-henkan-count 0) (skk-henkan) (delete-char -2)) (t (setq skk-henkan-key (concat (buffer-substring-no-properties skk-henkan-start-point (point)) skk-okuri-char)) (insert-and-inherit " ") (setq skk-prefix "") (skk-set-henkan-count 0) (skk-henkan) (delete-char -1))) ;; we set skk-kana-start-point here, since the marker may no ;; longer point at the correct position after skk-henkan. (skk-set-marker skk-kana-start-point (point))) ((/= skk-henkan-start-point (point)) (when sokuon (skk-erase-prefix 'clean) (insert-and-inherit (if skk-katakana "$B%C(B" "$B$C(B"))) (cond ((and (not sokuon) (skk-get-prefix skk-current-rule-tree) normal (eq (char-before) (string-to-char skk-prefix))) ;; SKK $B$N;EMM$K$J$$Nc30$N=hM}!#(B ;; $BNc$($P!$%f!<%6$,(B $B!VJb$/!W$rA^F~$7$?$/$F(B "AruKu" $B$HBG$D$Y$-(B ;; $B$H$3$m$r(B "ArukU" $B$HBG$C$F$7$^$C$?>l9g!#$3$N>l9g(B SKK $BB&$G(B ;; $B$I$&=hM}$9$k$Y$-$+!"7h$^$C$F$$$J$$!#$3$3$G$O2>$N=hCV$H$7$F!"(B ;; "AruKu" $B$HF1MM$NJQ49$r$9$k$h$&$K$7$F$*$/!#(B (setq skk-okuri-char nil skk-okurigana nil normal nil) (skk-set-last-command-char last-char) (let ((skk-dcomp-activate nil)) (skk-kana-input arg)) (skk-set-char-before-as-okurigana)) (t (when (and skk-dcomp-activate (skk-dcomp-marked-p)) ;; $B?7$7$$(B marker $B$r(B set $B$9$kA0$K(B skk-dcomp $B$N(B marker $B$r%/%j%"(B ;; $B$7$F$*$/!#(B (skk-dcomp-before-kakutei)) (skk-set-marker skk-okurigana-start-point (point)) (insert-and-inherit "*") (skk-set-marker skk-kana-start-point (point)) (setq skk-okuri-char (skk-char-to-unibyte-string last-char) skk-okurigana t))))))) (when normal (skk-set-last-command-char last-char) (skk-kana-input arg)))) ;;;###autoload (defun skk-henkan-on-message () (condition-case nil (when (and skk-verbose (not (or skk-isearch-switch (skk-in-minibuffer-p))) (eq skk-henkan-mode 'on) (< (marker-position skk-henkan-start-point) (point)) (sit-for skk-verbose-wait)) (skk-setup-verbose-messages) (message "%s" skk-henkan-on-message)) (quit (keyboard-quit))) nil) (defun skk-start-henkan (arg &optional prog-list-number) "$B"&%b!<%I$G$O4A;zJQ49$r3+;O$9$k!#"'%b!<%I$G$Ol9g$O!"8+=P$78l$rJ?2>L>$K(B $BJQ49$7$F$+$i4A;zJQ49$r3+;O$9$k!#8+=P$78l$rJQ49$;$:$K$=$N$^$^4A;zJQ49$r(B $B9T$$$?$1$l$P!"(B\\[universal-argument] SPC $B$H%?%$%W$9$k!#(B" (interactive "*p") (unless prog-list-number (setq prog-list-number current-prefix-arg)) (skk-with-point-move (cancel-undo-boundary) (if (eq skk-henkan-mode 'active) ;$B"'%b!<%I(B (progn (skk-set-henkan-count (1+ (skk-henkan-count))) (skk-henkan)) ;; $B"&%b!<%I(B (save-match-data (let (pos) (skk-kana-cleanup 'force) (when (skk-get-prefix skk-current-rule-tree) ;; Never. `skk-erase-prefix' called by `skk-kana-cleanup' ;; initializes `skk-prefix'. (skk-error "$B%U%#%C%/%9$5$l$F$$$J$$(B skk-prefix $B$,$"$j$^$9(B" "Have unfixed skk-prefix")) (setq pos (point)) (when (< pos skk-henkan-start-point) (skk-error "$B%+!<%=%k$,JQ493+;OCOE@$h$jA0$K$"$j$^$9(B" "Henkan end point must be after henkan start point")) (setq skk-henkan-key (buffer-substring-no-properties skk-henkan-start-point pos)) (when (and skk-katakana ;; C-u $B$r;H$C$F$$$J$$>l9g(B ;; prog-list-number $B$O(B skk-insert() $B$K$*$1$k(B current-prefix-arg (not (and prog-list-number (listp prog-list-number)))) (setq skk-henkan-key (skk-katakana-to-hiragana skk-henkan-key))) (when (and skk-okurigana (string-match "\\* *$" skk-henkan-key)) (skk-error "$B6u$NAw$j2>L>$G4A;z$rEPO?$7$h$&$H$7$F$$$^$9(B" "No okurigana!")) (if skk-allow-spaces-newlines-and-tabs ;; skk-henkan-key $B$NCf$N(B "[ \n\t]+" $B$r40A4$K (point) skk-henkan-start-point) (skk-error "$BJQ49%-!<$K2~9T$,4^$^$l$F$$$^$9(B" "Henkan key may not contain a new line character"))) ;; $B:G=i$N%9%Z!<%9$G(B skk-henkan-key $B$r%+%C%H$9$k$@$1!#(B (setq skk-henkan-key (substring skk-henkan-key 0 (string-match " " skk-henkan-key)))) (skk-set-marker skk-henkan-end-point pos) (skk-set-henkan-count 0) (setq skk-annotation-first-candidate t) (skk-henkan prog-list-number) (when (and skk-abbrev-mode (eq skk-henkan-mode 'active)) ;; $B$3$&$7$F$*$+$J$$$HJQ498e!"l9g$KJQ49$r3+;O$9$k!#(B $B4X?t(B `skk-insert-str' $B$N (point) skk-henkan-start-point) (let ((skk-prefix "")) (skk-start-henkan (prefix-numeric-value current-prefix-arg))))))) (defun skk-backward-and-set-henkan-point (arg) "$B%]%$%s%H$ND>A0$K$"$kJ8;zNs$N@hF,$KJQ493+;O%]%$%s%H$r<($9(B \"$B"&(B\" $B$rIU$1$k!#(B $B%+!<%=%k$ND>A0$K$"$kJ8;z(B ($B%9%Z!<%9J8;z!"%?%VJ8;z!"D92;$rI=$o$9!V!r7o(B $B$K%9%-%C%W$5$l$k(B) $B$r(B `skk-what-char-type' $B$K$FH=JL$7!"F1l9g$O!V$r!W$ND>A0$G!"%+%?%+%J$N>l9g$O!V%r!W$ND>A0$G;_$^$k!#(B \\[universal-argument] ARG $B$G(B ARG $B$rM?$($k$H!"$=$NJ8;zJ,$@$1La$C$FF1$8F0:n$r9T$&!#(B" (interactive "*P") (if (not skk-mode) (skk-emulate-original-map arg) (catch 'exit1 (skk-save-point ;; $B$H$j$"$($::G=i$N(B SPC, TAB, $BA43Q(B SPC $B$@$1%8%c%s%W$9$k!#(B (skip-chars-backward " \t$B!!(B") ;; $B0z?t$"$j!#(B (cond (arg (if (not skk-allow-spaces-newlines-and-tabs) (backward-char (prefix-numeric-value arg)) (setq arg (prefix-numeric-value arg)) (while (> arg 0) (skip-chars-backward " \t$B!!(B") (if (bolp) ;; $B9TF,$@$C$?$i0l9TA0$N9TKv$^$GLa$k$,!"(Barg $B$O8:$i$5$J$$!#(B (backward-char 1) (backward-char 1) (setq arg (1- arg)))))) (t ;; $B0z?t$J$7!#(B (let ((limit (if (not skk-allow-spaces-newlines-and-tabs) (skk-save-point (beginning-of-line) (point)) (point-min))) ;; $B!2!1!0!/!.!-!,!+!*!)!(!'!&!%!$!#(B (unknown-chars-regexp (if skk-allow-spaces-newlines-and-tabs "[ $B!!(B\n\t$B! (point) limit) ;; unknown-chars-regexp $B$G$OJ8;z (point) limit) (bolp)) ;; 1 $B9T>e$N9TKv$X!#(B (backward-char 1) ;; $B%]%$%s%H$,H=JL$G$-$J$$J8;ze$K$"$k4V$O(B ;; backward $BJ}8~$X%]%$%s%H$rLa$9!#(B ;;(while (and (> (point) limit) ;; (looking-at unknown-chars-regexp)) ;; (backward-char 1)) (when ;;(or (> 0 (skk-backward-and-set-henkan-point-1 type)) ;;(eq (skk-what-char-type) type)) (setq p (point))))))) (goto-char p) (skip-chars-forward unknown-chars-regexp)))) (skk-set-henkan-point-subr))))) (defun skk-backward-and-set-henkan-point-1 (type) "`skk-backward-and-set-henkan-point' $B$N%5%V%k!<%A%s!#(B TYPE ($BJ8;z$NC$9!#(B" (when (marker-position skk-henkan-start-point) (save-match-data (skk-save-point (goto-char (1- skk-henkan-start-point)) (cond ((eq skk-henkan-mode 'active) (when skk-use-face (skk-henkan-face-off)) (if (looking-at "$B"'(B") (delete-char 1) (unless nomesg (skk-message "$B"'$,$"$j$^$;$s(B" "It seems that you have deleted $B"'(B")))) ((looking-at "$B"&(B") (delete-char 1)) ((not nomesg) (skk-message "$B"&$,$"$j$^$;$s(B" "It seems that you have deleted $B"&(B"))))))) (defun skk-delete-okuri-mark (&optional noclear) "$BAw$j2>L>4XO"%U%i%0$r>C$9!#(B $BAw$j2>L>F~NOCf$K%+%l%s%H%P%C%U%!$KI=$o$l$k(B `*' $B%^!<%/$r>C$7!"(B NOCLEAR $B$,(B nil $B$G$"$l$PAw$j2>L>4XO"%U%i%0$r(B nil $B$K%;%C%H$9$k!#(B" (when (and skk-okurigana skk-okurigana-start-point (markerp skk-okurigana-start-point) (marker-position skk-okurigana-start-point)) (skk-save-point (when (eq ?* (char-after skk-okurigana-start-point)) (delete-region skk-okurigana-start-point (1+ skk-okurigana-start-point)))) (setq skk-okurigana nil) (unless noclear (setq skk-okuri-char nil skk-henkan-okurigana nil)))) ;; "[F7] $B%+%?%+%J(B" $B$N$h$&$J4JC1$JJQ495!G=$r3d$jEv$F$k$?$a$N%3%^%s%IDj5A(B (defun skk-start-henkan-prog-null-handler (arg) (condition-case nil (skk-emulate-original-map arg) (error (let ((key (this-command-keys))) (when (keymapp (let (skk-j-mode) (key-binding key))) (define-key skk-j-mode-map key nil) (skk-unread-event (if (vectorp key) (aref key 0) (string-to-char key)))))))) (defun skk-start-henkan-prog-i (i arg) (cond ((and skk-henkan-mode (symbol-value (intern (format "skk-search-prog-list-%d" i)))) (when (eq skk-henkan-mode 'active) (let ((skk-verbose-wait 0)) (skk-henkan-inactivate))) (skk-start-henkan arg i)) (t (skk-start-henkan-prog-null-handler arg)))) (eval-when-compile (defmacro skk-define-start-henkan-progs () (let (list) (dotimes (i 10) (setq list (nconc list `((defun ,(intern (format "skk-start-henkan-prog-%d" i)) (arg) (interactive "*p") (skk-start-henkan-prog-i ,i arg)))))) (cons 'progn list)))) (skk-define-start-henkan-progs) ;;; jisyo related functions (defun skk-purge-from-jisyo (&optional arg) "$B"'%b!<%I$G8=:_$N8uJd$r<-=q%P%C%U%!$+$i>C5n$9$k!#(B" (interactive "*P") (skk-with-point-move (cond ((not (eq skk-henkan-mode 'active)) (skk-emulate-original-map arg)) ((and (eq skk-henkan-mode 'active) (not (string= skk-henkan-key "")) (yes-or-no-p (format (if skk-japanese-message-and-error "%s /%s/%s$B$r<-=q$+$i:o=|$7$^$9!#NI$$$G$9$+!)(B " "Really purge \"%s /%s/%s\"? ") skk-henkan-key (skk-get-current-candidate) (cond ((not (and skk-henkan-okurigana (or skk-henkan-okuri-strictly skk-henkan-strict-okuri-precedence))) " ") (skk-japanese-message-and-error (format " ($BAw$j2>L>(B: %s) " skk-henkan-okurigana)) (t (format " (okurigana: %s) " skk-henkan-okurigana)))))) ;; skk-henkan-start-point $B$+$i(B point $B$^$G:o=|$7$F$7$^$C$F$b!"JQ49D>8e(B ;; $B$K(B ($B%+!<%=%k$rF0$+$9$3$H$J$/(B) skk-purge-from-jisyo $B$r8F$Y$PLdBj$J$$(B ;; $B$,!"%+!<%=%k$,0c$&>l=j$X0\F0$7$F$$$?>l9g$O!":o=|$9$Y$-$G$J$$$b$N$^(B ;; $B$G:o=|$7$F$7$^$&2DG=@-$,$"$k!#$=$3$G!"Aw$j2>L>$,$"$l$P$=$ND9$5$r4^(B ;; $B$a$?(B end $B$r5a$a!":#2s$NJQ49$K4XO"$7$?8D=j$@$1$r@53N$K@Z$jC$7$F$*$+$J$$$H!"uBV$G(B emacs $B$r=*N;$7$h$&$H$9$k$H(B ;; skk-save-jisyo-original (skk-get-jisyo-buffer) $BFb$N%(%i!<$G(B emacs $B$r=*N;$G$-$J$$;vBV$H$J$k!#(B (when (file-exists-p skk-jisyo) (funcall skk-save-jisyo-function quiet)))) (defun skk-save-jisyo-original (&optional quiet) "SKK $B$N<-=q%P%C%U%!$r%;!<%V$9$k!#(B $B%*%W%7%g%J%k0z?t(B QUIET $B$,(B non-nil $B$G$"$l$P!"<-=q%;!<%V;~$N%a%C%;!<%8$r=P$5$J$$!#(B" (let ((jisyo-buffer (skk-get-jisyo-buffer skk-jisyo 'nomsg))) (if (not (and jisyo-buffer (buffer-modified-p jisyo-buffer))) (unless quiet (skk-message "SKK $B<-=q$rJ]B8$9$kI,MW$O$"$j$^$;$s(B" "No need to save SKK jisyo") (sit-for 1)) ;; (with-current-buffer jisyo-buffer (when (skk-share-private-jisyo-p) (lock-buffer skk-jisyo) (when (skk-jisyo-is-shared-p) (skk-update-shared-jisyo))) (let ((inhibit-quit t) (tempo-file (make-temp-file "skk"))) (unless quiet (skk-message "SKK $B<-=q$rJ]B8$7$F$$$^$9(B..." "Saving SKK jisyo...")) (skk-save-jisyo-as tempo-file) (skk-check-size-and-do-save-jisyo tempo-file) ;; $B<-=q$N%;!<%V$K@.8y$7$F=i$a$F(B modified $B%U%i%0$r(B nil $B$K$9$k!#(B (cond ((skk-share-private-jisyo-p) (skk-init-shared-jisyo) ;; `set-buffer-modified-p' $B$OITMW$J(B lock $B$r2r=|$9$k!#$?$@$7!"(B ;; $B%P%C%U%!$H%U%!%$%kL>$,4XO"IU$1$i$l$F$$$kI,MW$,$"$k!#(B (let ((buffer-file-name (expand-file-name skk-jisyo)) (buffer-file-truename (file-truename skk-jisyo))) (set-buffer-modified-p nil))) (t (set-buffer-modified-p nil))) (unless quiet (skk-message "SKK $B<-=q$rJ]B8$7$F$$$^$9(B...$B40N;!*(B" "Saving SKK jisyo...done") (sit-for 1)))))) (setq skk-update-jisyo-count 0)) (defun skk-init-shared-jisyo () (fillarray skk-jisyo-update-vector nil) (with-temp-buffer (insert skk-emacs-id "\n") (write-region 1 (point-max) skk-emacs-id-file nil 'nomsg))) (defun skk-jisyo-is-shared-p () (and (file-exists-p skk-emacs-id-file) (with-temp-buffer (insert-file-contents skk-emacs-id-file) (goto-char (point-min)) ;; $B8D?M<-=q$,B>$N(B emacs $B>e$N(B skk $B$K$h$j99?7$5$l$?$+$r%A%'%C%/(B (not (search-forward skk-emacs-id nil t))))) (defun skk-update-shared-jisyo () "$B8D?M<-=q$,6&M-$5$l$F$$$k>l9g$K!"?7$7$$>pJs$K99?7$9$k!#(B $B8=:_$N<-=q%P%C%U%!$NFbMF$r>C5n$7$F!"B>$N(B Emacs $B>e$N(B SKK $B$,99?7$7$?(B `skk-jisyo' $B$rFI$_9~$`!#(B" (erase-buffer) (insert-file-contents skk-jisyo) (skk-setup-jisyo-buffer) ;; skk-jisyo-update-vector $B$K$7$?$,$C$F%P%C%U%!$r99?7$9$k!#(B (let ((index 0) (len (length skk-jisyo-update-vector)) list skk-henkan-key) (while (and (< index len) (setq list (aref skk-jisyo-update-vector index))) ;; skk-update-jisyo-1, skk-search-jisyo ;; $B$G;2>H$5$l$k(B skk-henkan-key $B$r%;%C%H$9$k(B (when (setq skk-henkan-key (car list)) (skk-update-jisyo-1 (nth 1 list) ;okurigana (nth 2 list) ;word (skk-search-jisyo (nth 1 list) 0 'delete) ;old-words-list (nth 3 list))) ;purge (setq index (1+ index))))) (defun skk-save-jisyo-as (file) (save-match-data (let (buffer-read-only) (goto-char (point-min)) (unless (re-search-forward "^;; okuri-ari entries.$" nil 'noerror) (skk-error "\ $BAw$j$"$j%(%s%H%j$N%X%C%@!<$,$"$j$^$;$s!*(B SKK $B<-=q$N%;!<%V$rCf;_$7$^$9(B" "\ Header line for okuri-ari entries is missing! Stop saving SKK jisyo")) (unless (re-search-forward "^;; okuri-nasi entries.$" nil 'noerror) (skk-error "\ $BAw$j$J$7%(%s%H%j$N%X%C%@!<$,$"$j$^$;$s(B $B!*(B SKK $B<-=q$N%;!<%V$rCf;_$7$^$9(B" "\ Header line for okuri-nasi entries is missing! Stop saving SKK jisyo"))) (let ((coding-system-for-write (skk-find-coding-system skk-jisyo-code)) jka-compr-compression-info-list) (write-region 1 (point-max) file nil 'nomsg)))) (defun skk-check-size-and-do-save-jisyo (new-file) (skk-bind-last-command-char nil (let ((new-size (nth 7 (file-attributes new-file))) old-size ;; yes-or-no-p $B$K2sEz$7!"(Bnewline $B$9$k$H!"(Bthis-command $B$,JQ$C$F$7$^$&!#(B this-command this-command-char last-command) (when (zerop new-size) (delete-file new-file) (skk-error "SKK $B<-=q$,6u$K$J$C$F$$$^$9!*(B $B<-=q$N%;!<%V$rCf;_$7$^$9(B" "Null SKK jisyo! Stop saving jisyo")) (cond ((or (not skk-compare-jisyo-size-when-saving) ;; $B5l<-=q$H$N%5%$%:$rHf3S$7$J$$!#(B (progn ;; (1)skk-jisyo $B$,$J$$$+!"(B ;; (2)new-file $B$H(B skk-jisyo $B$,F10l$N%5%$%:$+(B ;; (skk-(aux-)large-jisyo $B$+$i?75,$NC18l$rFI$_9~$^$J$+$C$?$j!"(B ;; $B?75,C18l$NEPO?$r9T$o$J$+$C$?>l9g$O%5%$%:$,F1$8(B)$B!"(B ;; (3)new-file $B$NJ}$,Bg$-$$(B ;; $B>l9g(B ($B>e5-$N(B 3 $BDL$j$G$"$l$P$$$:$l$b@5>o(B)$B!#(B (setq old-size (nth 7 (file-attributes skk-jisyo))) (or (not old-size) (>= new-size old-size)))) (skk-make-new-jisyo new-file)) ((skk-yes-or-no-p (format "%s $B$,(B %dbytes $B>.$5$/$J$j$^$9$,!"%;!<%V$7$FNI$$$G$9$+!)(B" skk-jisyo (- old-size new-size)) (format "New %s will be %dbytes smaller. Save anyway?" skk-jisyo (- old-size new-size))) ;; $B$H$K$+$/%;!<%V!#(B (skk-make-new-jisyo new-file)) (t ;; $B%;!<%V$H$j;_$a!#(B (delete-file new-file) (with-output-to-temp-buffer "*SKK warning*" (if skk-japanese-message-and-error (princ "\ $B%;!<%V$7$h$&$H$9$k<-=q$N%5%$%:$,85$N%5%$%:$h$j$b>.$5$/$J$C$F$7$^$&$?$a!"(B $B%;!<%V$rCf;_$7$^$7$?!#<-=q$N%5%$%:$,>.$5$/$J$C$?860x$K$O!"Nc$($P!"(B (a) M-x skk-purge-from-jisyo $B$rl9g$O0[>o$G$O$"$j$^$;$s!#(B \(c) $B$N>l9g$OJT=8$NFbMF$K$h$j$^$9!#860x$r?5=E$K3NG'$7$F$+$i<-=q$rJ]B8$9$k$3(B $B$H$r$*4+$a$7$^$9!#(B $B85$N<-=q$r:F$SFI$_9~$`$K$O!"(B M-x skk-reread-private-jisyo $B$rpJs$r(B `skk-record-file' $B$KJ]B8$9$k!#(B" (unless (or (not skk-keep-record) (> 1 skk-kakutei-count)) (with-temp-file skk-record-file (insert-file-contents skk-record-file) (goto-char (point-min)) (insert (format "%s $BEPO?(B: %3d $B3NDj(B: %4d $B3NDjN((B: %3d%% $B8l?t(B:%6d\n" (current-time-string) skk-touroku-count skk-kakutei-count (/ (* 100 (- skk-kakutei-count skk-touroku-count)) skk-kakutei-count) (cond ((featurep 'skk-rdbms) ;; RDBMS $B$r;H$($P$b$C$H6=L#?<$$E}7W$,@\%U%!%$%kL>$G;XDj$G$-$k(B ;; permission $B$,$J$$>l9g$,B?$$$h$M(B...$B!#(B ;;(read-file-name ;; (format "Jisyo table: (default: %s) " ;; skk-rdbms-private-jisyo-table)) skk-rdbms-private-jisyo-table)))) ;; mule@emacs19.31 $B$@$H2<5-$N$h$&$K$9$k$H(B (`$B%!(B' $B$,860x$N$h$&(B) $B2?8N$+(B ;; default-directory $B$NKvHx$K2~9T$,IU$/!#(B ;; $BDL>o$O5$$,IU$+$J$$$,!"(Brsz-mini.el $B$r;H$C$F(B resize-minibuffer-mode $B$r(B ;; non-nil $B$K$7$F$$$k$HITMW$J(B 2 $B9TL\$,=P8=$9$k!#(B ;; (interactive "f$B<-=q%U%!%$%k(B: ") (let ((count (funcall skk-count-jisyo-candidates-function file-or-table))) (if (skk-called-interactively-p 'interactive) (message (if (= count 1) "%d candidate" "%d candidates") count) count))) (defun skk-count-jisyo-candidates-original (file) "SKK $B<-=q$N8uJd?t$r?t$($k!#(B `[' $B$H(B `]' $B$K0O$^$l$?Aw$j2>L>Kh$N%V%m%C%/Fb$O?t$($J$$!#(B" (let ((orig-buffer (find-buffer-visiting file))) (with-current-buffer (let ((find-file-visit-truename t)) (or orig-buffer (find-file-noselect file))) (save-match-data (let ((count 0) (min (point-min)) (max (and (skk-called-interactively-p 'interactive) (point-max))) (interactive-p (skk-called-interactively-p 'interactive))) (goto-char min) (unless (and ;; $B$3$A$i$O(B skk-save-point $B$r;H$o$:!"%]%$%s%H$r0\F0$5$;$k!#(B (re-search-forward "^;; okuri-ari entries.$" nil t nil) (skk-save-point (re-search-forward "^;; okuri-nasi entries.$" nil t nil))) (skk-error "$B$3$N%U%!%$%k$O(B SKK $B<-=q$G$O$"$j$^$;$s(B" "This file is not an SKK dictionary")) (beginning-of-line) (while (looking-at ";") (forward-line 1) (beginning-of-line)) (search-forward " " nil t) (while (search-forward "/" nil t) (cond ((or (eolp) (looking-at "\\[")) (forward-line 1) (beginning-of-line) (while (looking-at ";") (forward-line 1) (beginning-of-line)) (search-forward " " nil t)) (t (setq count (1+ count)))) (when interactive-p (message "Counting jisyo candidates...%3d%% done" (/ (* 100 (- (point) min)) max)))) (prog1 count (unless orig-buffer (kill-buffer (current-buffer))))))))) (defun skk-create-file (file &optional japanese english modes) "FILE $B$,$J$1$l$P!"(BFILE $B$H$$$&L>A0$N6u%U%!%$%k$r:n$k!#(B $B%*%W%7%g%J%k0z?t$N(B JAPANESE/ENGLISH $B$r;XDj$9$k$H!"%U%!%$%k:n@.8e$=$N%a%C%;!<%8(B $B$r%(%3!<%(%j%"$KI=<($9$k!#(B" (let ((file (expand-file-name file))) (if (file-exists-p file) (when modes (set-file-modes file modes)) (write-region 1 1 file nil 0) (when modes (set-file-modes file modes)) (when (or japanese english) (message "%s" (if skk-japanese-message-and-error japanese english)) (sit-for 3))))) (defun skk-get-jisyo-buffer (file &optional nomsg) "FILE $B$r3+$$$F(B SKK $B<-=q%P%C%U%!$r:n$j!"%P%C%U%!$rJV$9!#(B $B<-=q%P%C%U%!$K$O(B `skk-jisyo-code' $B$,E,MQ$5$l$k(B (nil $B$G$"$l$P(B euc) $B$,!"(BFILE $B$K(B (\"path/to/file\" . CODING-SYSTEM) $B$N%3%s%9%;%k$b;XDj$G$-$k!#(B $B%*%W%7%g%J%k0z?t$N(B NOMSG $B$r;XDj$9$k$H%U%!%$%kFI$_9~$_$N:]$N%a%C%;!<%8$rI=<($7$J(B $B$$!#(B" (when file (let* ((inhibit-quit t) (code (skk-find-coding-system (if (consp file) (cdr file) skk-jisyo-code))) (file (or (car-safe file) file)) (enable-character-translation (not (memq code '(euc-japan shift_jis junet)))) (buf-name (concat " *" (file-name-nondirectory file) "*")) (buf (get-buffer buf-name))) ;; $B<-=q%P%C%U%!$H$7$F%*!<%W%s$5$l$F$$$k$J$i!"2?$b$7$J$$!#(B (unless (buffer-live-p buf) (setq buf (get-buffer-create buf-name)) (setq file (expand-file-name file)) (with-current-buffer buf (buffer-disable-undo) (auto-save-mode -1) ;; $B%o!<%-%s%0%P%C%U%!$N%b!<%I%i%$%s$O%"%C%W%G!<%H$5$l$J$$!)(B ;;(make-local-variable 'line-number-mode) ;;(make-local-variable 'column-number-mode) ;;(setq column-number-mode nil ;; line-number-mode nil) (setq buffer-read-only nil case-fold-search nil ;; buffer-file-name $B$r(B nil $B$K$7$F$*$/$H(B M-x compile $B$J$I(B ;; $BFbIt$G(B save-some-buffers $B$r%3!<%k$7$F$$$k%3%^%s%I$r(B ;; $B;H$C$?$H$-$G$b%;!<%V$9$k$+$I$&$+$r?R$M$F$3$J$/$J$k!#(B ;; buffer-file-name file ;; cache-long-line-scans nil ;; dabbrev $B$N%5!<%A$H$J$k%P%C%U%!$K$J$i$J$$$h$&$KB8:_$7(B ;; $B$J$$%b!<%IL>$K$7$F$*$/!#2A$9$k!#(B $B$$$:$l$+$NMWAG$,8uJd$r8+$D$1$?;~E@$G=*N;$9$k!#(B" ;; $B8D?M<-=q$G8uJd$,8+$D$+$l$P$=$l$rJV$9!J(BL $B<-=q$^$G8+$K$$$/Lu$G$O$J$$!K(B (let (l prog) (while (and (null l) skk-current-search-prog-list) (setq prog (car skk-current-search-prog-list)) (setq l (if (and skk-use-numeric-conversion (string-match "[0-9]" skk-henkan-key) (skk-numeric-program-p prog)) ;; -- 12.2.1 $B$+$i$NJQ99(B -- ;; $B?tCMJQ49;~$K!"Hs?tCMJQ49$bF1;~$K8!:w$7$F8uJd$K(B ;; $B4^$a$k!#(B (skk-nunion (let (skk-use-numeric-conversion) (eval prog)) (eval prog)) (let (skk-use-numeric-conversion) (eval prog)))) (setq skk-current-search-prog-list (cdr skk-current-search-prog-list))) (setq skk-search-state (list skk-henkan-key prog l)) l)) (defun skk-search-state () (interactive) (with-output-to-temp-buffer "*skk search state*" (with-current-buffer standard-output (insert (format "skk-henkan-key: %s\n" (nth 0 skk-search-state)) (format "skk-search-prog: %s\n" (nth 1 skk-search-state)) (format "skk-search() result: %s\n\n" (nth 2 skk-search-state))) (when (equal (nth 1 skk-search-state) '(skk-search-extra-jisyo-files)) (mapconcat #'(lambda (x) (insert (format "%s\n" x))) skk-search-ex-state ""))))) (defun skk-numeric-program-p (program) "$B<-=q8!:w%W%m%0%i%`(B PROGRAM $B$,?tCMJQ49M-8z$+$I$&$+H=Dj$9$k!#(B $B$b$7%W%m%0%i%`$,(B `skk-non-numeric-prog-list' $B$K;XDj$5$l$F$$$?$i(B nil $B$rJV$9!#(B $B$5$b$J$1$l$P(B non-nil $B$rJV$9!#(B" (not (or (memq (car program) skk-non-numeric-prog-list) (member program skk-non-numeric-prog-list)))) (defun skk-search-jisyo-file (file limit &optional nomsg) "SKK $B<-=q%U%)!<%^%C%H$N(B FILE $B$G(B `skk-henkan-key' $B$r%-!<$K$7$F8!:w$9$k!#(B $B8!:wNN0h$,(B LIMIT $B0J2<$K$J$k$^$G%P%$%J%j%5!<%A$r9T$$!"$=$N8e%j%K%"%5!<%A$r9T$&!#(B LIMIT $B$,(B 0 $B$G$"$l$P!"%j%K%"%5!<%A$N$_$r9T$&!#(B $B<-=q$,%=!<%H$5$l$F$$$J$$>l9g$O(B LIMIT $B$r(B 0 $B$H$9$kI,MW$,$"$k!#(B $B%*%W%7%g%J%k0z?t$N(B NOMSG $B$,(B non-nil $B$G$"$l$P(B `skk-get-jisyo-buffer' $B$N(B $B%a%C%;!<%8$r=PNO$7$J$$!#(B FILE $B$K$O<-=q%U%!%$%k$@$1$G$J$/!"(B ($B<-=q%U%!%$%k(B . $B%3!<%G%#%s%0%7%9%F%`(B) $B$N%Z%"$bH$N$3$H!#(B" (if (or skk-server-host skk-servers-list) (skk-search-server-1 file limit) ;; $B<-=q%5!<%P$,MxMQ2DG=$G$J$1$l$P(B file $B$r8!:w$9$k!#(B ;; $B0z?t(B file $B$ODL>o(B `skk-aux-large-jisyo' $B$,;XDj$5$l$k!#(B (when (and (stringp file) (file-readable-p file)) (skk-search-jisyo-file file limit nomsg)))) (defun skk-okuri-search () "$B8+=P$78l$rAw$j2>L>$r4^$`$b$N$H$7$F8!:w$9$k!#(B $BNc$($P!"(B`skk-auto-okuri-process' $B$,(B non-nil $B$J$i$P(B \"Uresii\" $B$N$h$&$KAw$j2>(B $BL>$b4^$a$F%?%$%W$7$F$bAw$j$"$j$N(B \"$B4r$7$$(B\" $B$rC5$7=P$9!#(B" (when skk-auto-okuri-process (skk-okuri-search-1))) (defun skk-search-jisyo-buf (buf limit) "$B%P%C%U%!$r(B BUF $B$K0\F0$7$F!"$=$3$r<-=q$H$7$F8!:w$9$k!#(B" (when (buffer-live-p buf) ;; skk-henkan-key $B$H(B skk-henkan-okurigana $B$O%+%l%s%H%P%C%U%!$N(B ;; $B%m!<%+%kCM$J$N$G!"$"$i$+$8$a2A$7$?CM$G$"$k!#(B DELETE $B$,(B non-nil $B$G$"$l$P(B `skk-henkan-key' $B$K%^%C%A$9$k%(%s%H%j$r:o=|$9$k!#(B" ;; (let ((skk-henkan-key "$B$[$+$s(B")) ;; (with-current-buffer (skk-get-jisyo-buffer skk-jisyo 'nomsg) ;; (skk-search-jisyo nil 0))) ;; => (("$BJd4V(B" "$BJd40(B" "$BJ]4I(B") nil nil nil) ;; (let ((skk-henkan-key "$B$&$4(Bk")) ;; (with-current-buffer (skk-get-jisyo-buffer skk-jisyo 'nomsg) ;; (skk-search-jisyo "$B$/(B" 0))) ;; => (("$BF0(B") ("[$B$/(B") ("$BF0(B") ("]")) (let ((key (concat "\n" skk-henkan-key " /")) min max size p) (save-match-data ;; skk-okuri-ari-min $B$H(B skk-okuri-ari-max $B$O<-=q%P%C%U%!$N%m!<%+%kCM!#(B (if okurigana (setq min skk-okuri-ari-min max skk-okuri-ari-max) (setq min skk-okuri-nasi-min max (point-max))) (when (> limit 0) ;; $BFsJ,C5:w(B (while (> (setq size (- max min)) limit) (goto-char (+ min (/ size 2))) (beginning-of-line) (setq p (point)) (if (= p min) (setq max min) ; return (let ((p-is-further ;; $BAw$j$"$j$J$i5U=g$KHf3S$9$k!#(B (if okurigana (skk-string< (buffer-substring-no-properties p (1- (search-forward " "))) skk-henkan-key) (skk-string< skk-henkan-key (buffer-substring-no-properties p (1- (search-forward " "))))))) (if p-is-further (setq max p) (setq min p)))))) (goto-char min) ;; key $B$,8!:w3+;OCOE@$K$"$C$?>l9g$G$b8!:w2DG=$J$h$&$K0lJ8;zLa$k!#(B ;; key $B$N@hF,ItJ,$K(B "\n" $B$,4^$^$l$F$$$k$3$H$KCm0U!#(B (unless (bobp) (backward-char 1)) ;; case-fold-search $B$O!"<-=q%P%C%U%!$G$O>o$K(B nil$B!#(B (when (search-forward key max 'noerror) (prog1 (skk-compute-henkan-lists okurigana) (when delete (beginning-of-line) (delete-region (point) (progn (forward-line 1) (point))))))))) (defun skk-select-words-from-list (list buffer midasi okurigana) "`skk-search-jisyo' $B$,JV$7$?8uJd%j%9%H$+$i8=:_MW5a$5$l$F$$$k8uJd$rA*$S$@$9!#(B" (when list (let ((words (cond ((and okurigana skk-henkan-okuri-strictly) ;; $BAw$j2>L>$,F10l$N8uJd$N$_$rJV$9!#(B (nth 2 list)) ((and okurigana skk-henkan-strict-okuri-precedence) ;; $BAw$j2>L>$,F10l$N8uJd$N$&$7$m$K!"(B ;; $B$=$NB>$N8uJd$r$D$1$F$+$($9!#(B (skk-nunion (nth 2 list) (car list))) (t (car list))))) (dolist (function skk-search-end-function) (setq words (funcall function buffer midasi okurigana words))) words))) (defun skk-compute-henkan-lists (okurigana) "$B<-=q8uJd72$r#4$D$N%j%9%H$KJ,2r$9$k!#(B $B>\$7$/$O!"$3$N4X?t$N%3%a%s%H$r;2>H!#(B" ;; $BAw$j$J$7(B ($BNc$($P!"<-=q%(%s%H%j(B "$B$F$s$5$$(B /$BE>:\(B/$BE7:R(B/$BE7:M(B/" $B$N=hM}(B) ;; words1 := ("$BE>:\(B" "$BE7:R(B" "$BE7:M(B") == $BA48uJd72(B ;; words2 := nil ;; words3 := nil ;; words4 := nil ;; ;; (with-temp-buffer ;; (insert "$B$F$s$5$$(B /$BE>:\(B/$BE7:R(B/$BE7:M(B/") ;; (goto-char (point-min)) ;; (search-forward " /") ;; (skk-compute-henkan-lists "")) ;; => (("$BE>:\(B" "$BE7:R(B" "$BE7:M(B") nil nil nil) ;; $BAw$j$"$j(B ($BNc$($P!"!V5c$/!W$NJQ49$r9T$C$?>l9g$N!"<-=q%(%s%H%j(B ;; "$B$J(Bk /$BK4(B/$BL5(B/$BLD(B/$B5c(B/[$B$/(B/$BL5(B/$BLD(B/$B5c(B/]/[$B$-(B/$BK4(B/]/" $B$N=hM}(B) ;; words1 := ("$BK4(B" "$BL5(B" "$BLD(B" "$B5c(B") == $B4A;zItJ,$NA48uJd72(B ;; words2 := ("[$B$/(B") == $BB>$NAw$j2>L>$r;H$&4A;z8uJd72(B ($B$"$l(B ;; $B$P(B) + $B:#2s$NJQ49$NAw$j2>L>ItJ,(B ;; words3 := ("$BL5(B" "$BLD(B" "$B5c(B") == $B:#2s$NJQ49$NAw$j2>L>$r;H$&2DG=@-$N(B ;; $B$"$kA44A;z8uJd72(B ;; words4 := ("]" "[$B$-(B" "$BK4(B" "]") == $BB>$NAw$j2>L>$r;H$&4A;z8uJd72(B ($B;D(B ;; $B$j!#$"$l$P(B) ;; ;; (with-temp-buffer ;; (insert "$B$J(Bk /$BK4(B/$BL5(B/$BLD(B/$B5c(B/[$B$/(B/$BL5(B/$BLD(B/$B5c(B/]/[$B$-(B/$BK4(B/]/") ;; (goto-char (point-min)) ;; (search-forward " /") ;; (skk-compute-henkan-lists "$B$/(B")) ;; => (("$BK4(B" "$BL5(B" "$BLD(B" "$B5c(B") ("[$B$/(B") ("$BL5(B" "$BLD(B" "$B5c(B") ("]" "[$B$-(B" "$BK4(B" "]")) ;; ;; * "[" $B$OD>8e$KB3$/$R$i$,$J$rAw$j2>L>$K;}$D4A;z$N8uJd72$N;O$^$j$rI=$7!"(B ;; "]" $B$O!"3:Ev$NAw$j2>L>%0%k!<%W$N=*$j$r<($9!#(B ;; $B$3$N4X?t$O!"JQ49;~$H!"3NDjD>8e$N<-=q$N%"%C%W%G!<%H;~$N#2EY8F$P$l$k(B ;; ($BJQ49;~$K8!:w$r9T$C$?<-=q$,!"(Bskk-jisyo $B$H$O8B$i$J$$$N$G!"#2EY7W;;$;$6$k(B ;; $B$rF@$J$$(B)$B!#(B ;; ;; $BJQ49;~$O!"(B ;; o skk-henkan-okuri-strictly $B$,(B non-nil $B$G$"$l$P!"7W;;7k2L$N(B words3 $B$r!"(B ;; o skk-henkan-okuri-strictly $B$,(B nil $B$G$"$C$F(B ;; - skk-henkan-strict-okuri-precedence $B$,(B non-nil $B$"$l$P(B (skk-nunion words3 words1) $B$r(B ;; - skk-henkan-strict-okuri-precedence $B$,(B nil $B$N>l9g$O(B words1 $B$r(B ;; $Bl9g$O!"Bg0hJQ?t(B `skk-kakutei-henkan-flag' $B$K(B non-nil $B$rBeF~$9$k!#(B $B0z?t$K$D$$$F$O(B `skk-search-jisyo-file' $B$r;2>H!#(B $BMxMQ$9$k>l9g$O(B `skk-search-prog-list' $B$N@hF,$KG[$9$k;v!#(B" (setq skk-kakutei-henkan-flag (skk-search-jisyo-file file limit nomsg))) (defun skk-update-jisyo (word &optional purge) (funcall skk-update-jisyo-function word purge) (when (and skk-save-jisyo-instantly (or skk-jisyo-updated ; skk-henkan-in-minibuff $B$G(B setq purge)) (skk-save-jisyo 'quiet) (setq skk-jisyo-updated nil))) (defun skk-update-jisyo-original (word &optional purge) "$B:(B $B$D(Bi /$BIU(B/[$B$$(B/$BIU(B/]/ ;; $B=g=g(B $B$1(Bs /$B>C(B/[$B$9(B/$B>C(B/]/[$B$7(B/$B>C(B/]/[$B$;(B/$B>C(B/]/[$B$5(B/$B>C(B/]/ ;; $B"-(B $B$+$((Bs /$BJV(B/[$B$7(B/$BJV(B/]/[$B$9(B/$BJV(B/]/[$B$5(B/$BJV(B/]/[$B$;(B/$BJV(B/]/ ;; ... ;; ... ;; $B$J$,(Bs /$BD9(B/$BN.(B/[$B$7(B/$BN.(B/]/[$B$5(B/$BD9(B/]/[$B$=(B/$BN.(B/]/ ;; ;; okuri-nasi entries. ;; $BJQ$G(B $B$8$g$&$?$$(B /$B>uBV(B/ ;; $B49>:(B $B$=$&$K$e$&(B /$BA^F~(B/ ;; $B=g=g(B $B$+$J(B /$B2>L>(B/ ;; $B"-(B ... ;; ... ;; ;; skk-auto-okuri-process $B$,(B non-nil $B$N$H$-$K!"(Bskk-okuri-search $B$O8+=P$78l$N(B ;; $BD9$$=g$K8uJd$rJV$9I,MW$,$"$k!#(B ;; skk-okuri-search $B$,!"8+IU$1$?8uJd$r8+=P$78l$r%-!<$H$7$F>:=g$K%=!<%H$7$FJV(B ;; $B$9$?$a!"8D?M<-=q$N%=!<%H$OI,MW$G$J$$!#(B ;; $B$h$C$F!":G8e$KJQ49$7$?$b$N$r(B skk-okuri-ari-min $B$N0LCV$KA^F~$9$k!#(B ;; (let* ((jisyo-buffer (skk-get-jisyo-buffer skk-jisyo 'nomsg)) (cand (car (skk-treat-strip-note-from-word word))) (midasi (if (and (skk-numeric-p) (or (string-match "#[0-9]" cand) (skk-lisp-prog-p cand))) (skk-num-compute-henkan-key skk-henkan-key) skk-henkan-key)) (henkan-buffer (and skk-update-end-function (current-buffer)))) ;; $BF~NOMzNr$r99?7$9$k!#(B ;; $BAw$j$"$jF~NO$O>JN,$7!"Aw$j$J$7F~NO$N$_MzNr$r$H$k!#(B (unless skk-henkan-okurigana (skk-update-kakutei-history midasi word)) (when jisyo-buffer (let ((inhibit-quit t) buffer-read-only old-words-list okurigana) (when (> skk-okuri-index-min -1) (setq word (skk-remove-common word) ;; skk-henkan-key $B$O(B skk-remove-common $B$K$h$C$F(B ;; $BJQ99$5$l$F$$$k2DG=@-$,$"$k!#(B midasi skk-henkan-key)) (setq okurigana (or skk-henkan-okurigana skk-okuri-char)) (with-current-buffer jisyo-buffer ;; $B4{B8%(%s%H%j$r8!:w8e>C5n$9$k!#A^F~$9$Y$-8uJd$,(B words1 $B$K(B 1 $B$D(B ;; $B$7$+$J$/!"(Bword $B$HF1$8J8;z$G$"$C$F$b!"$$$C$?$s>C$7$F$=$N%(%s%H(B ;; $B%j$r(B min $B%]%$%s%H$K0\F0$5$;$J$1$l$P$J$i$J$$!#$3$l$O!"FI$_$NJd(B ;; $B40$r9T$&$H$-$K!"(B min $B%]%$%s%H$+$i8+=P$7$rC5$9$?$a!"?7$7$$8+=P(B ;; $B$7$[$I!"(Bmin $B%]%$%s%H$K6a$$$H$3$m$K$J$1$l$P$J$i$J$$$+$i$G$"$k!#(B (setq skk-henkan-key midasi old-words-list (skk-search-jisyo okurigana 0 'delete)) (skk-update-jisyo-1 okurigana word old-words-list purge) ;; $BJ#?t$N(B emacs $B$G(B SKK $B$,5/F0$5$l$F$$$k$H$-$K8D?M<-=q$r@09gE*$K(B ;; $B99?7$9$k$?$a$K3NDj$NF0:n$r5-O?$9$k!#(B (when (and (skk-share-private-jisyo-p) (< skk-jisyo-save-count (length skk-jisyo-update-vector))) (aset skk-jisyo-update-vector skk-update-jisyo-count (list midasi okurigana word purge))) (dolist (function skk-update-end-function) (funcall function henkan-buffer midasi okurigana word purge)) (setq skk-update-jisyo-count (1+ skk-update-jisyo-count)) ;; skk-share-private-jisyo $B$,(B non-nil $B$N$H$-$O(B skk-jisyo-save-count ;; $B$b(B non-nil $B$G$"$k$3$H$rA0Ds$H$9$k(B (when (and skk-jisyo-save-count (<= skk-jisyo-save-count skk-update-jisyo-count)) ;; auto save. (skk-save-jisyo 'quiet))))))) (defun skk-update-jisyo-1 (okurigana word old-words-list purge) "$B8D?M<-=q$K?7$7$$%(%s%H%j$rA^F~$9$k!#(B $B4{B8%(%s%H%j$+$i7W;;$7$?(B words[1-4] $B$NCM$H!":#2s$NJQ49$N7k2L(B word $B$H$r(B $B7k9g$7$F!"?7$?$J%(%s%H%j$r7W;;$7!"A^F~$9$k!#(B" ;; $BF~NO$H$J$k(B OLD-WORDS-LIST $B$O!"4X?t(B `skk-search-jisyo' $B$,=PNO$7$?$b$N$G$"$k!#(B (let ((words1 (car old-words-list)) (words2 (nth 1 old-words-list)) (words3 (nth 2 old-words-list)) (words4 (nth 3 old-words-list))) (cond ((not purge) ;; words1 $B$r99?7(B (if skk-jisyo-fix-order (if (consp words1) ;; $B?75,$N;~$O!"B>$NF12;8l$N8e$KDI2C(B (unless (member word words1) (setcdr (last words1) (cons word nil))) ;; $B:#2s$NFI$_$N8l!"$=$N$b$N$,?75,(B (setq words1 (cons word nil))) ;; words1 $B$N@hF,$N8uJd$r(B word $B$K$9$k!#(B (setq words1 (cons word (delete word words1))))) ;; $BAw$j$J$7!"$b$7$/$O(B skk-henkan-okuri-strictly $B$H(B ;; skk-henkan-strict-okuri-precedence $B$,(B nil $B$N>l9g!#(B (t ;; words1 $B$r(B purge$B!#6&MQ<-=q$K$"$k8uJd$@$C$?$i!"(B ;; skk-ignore-dic-word $B$G%/%)!<%H$7$FC$9!#(B (setq words1 (if (skk-public-jisyo-has-word-p okurigana word) (skk-compose-ignore-word words1 word) (delete word words1))))) (when words1 ;; words1 $B$,(B null $B$G$"$l$P!"$b$&2?$b$9$k$3$H$O$J$$!#(B (goto-char (if okurigana skk-okuri-ari-min skk-okuri-nasi-min)) (insert "\n" skk-henkan-key " /") ;; words1 -- $BA48uJd72(B ($BAw$j$J$7$N>l9g(B) $B!"$^$?$O(B ;; $BA48uJd72$N4A;zItJ,(B ($BAw$j$"$j$N>l9g(B) (insert (skk-update-jisyo-2 words1) "/") (when okurigana ;; words2 $B0J9_$N8uJd72$r=hM}$9$k$N$O!"Aw$j$"$j$N>l9g$N$_!#(B ;; $B@h$KA^F~$9$Y$-8uJd72$r7W;;!"D4@0$9$k!#(B (cond (words3 (cond ((not purge) (if skk-jisyo-fix-order (unless (member word words3) (setcdr (last words3) (cons word nil))) (setq words3 (cons word (delete word words3))))) (t (setq words3 (delete word words3)) (when (null words3) ;; words3 $B$H$7$FA^F~$9$k$b$N$,A4$/$J$1$l$P!"(B"/[$B$/(B/]/" $B$N$h(B ;; $B$&$JAw$j2>L>$N$_$N8uJd$r:n$i$J$$$h$&$K$9$k(B ($BI,MW$G(B ;; $B$"$l$P!"(Bwords2 $B$N:G8eJ}$H(B) words4 $B$N@hF,$N(B "]" $B$r:o=|!#(B (let* ((len (length words2)) (last2 (case len (0 nil) (1 (list nil (car words2))) (t (nthcdr (- (length words2) 2) words2))))) ;; words2 $B$N:G8eJ}$O>o$K(B "[$BAw$j2>L>(B" $B$H$O8B$i$J$$!#(B (when (and last2 (string= (nth 1 last2) (concat "[" okurigana))) (case len (1 (setq words2 nil)) (t (setcdr last2 nil)))) ;; words4 $B$N@hF,$O>o$K(B "]"$B!#(B (setq words4 (cdr words4))))))) (t ;; words3 $B$,(B null $B$G$"$l$P(B (unless (or skk-process-okuri-early purge) ;; skk-process-okuri-early $B$,(B non-nil $B$J$iAw$j2>L>$,J,$i$J$$$N$G(B ;; $B2?$b$7$J$$!#(B-- $B:#2s;HMQ$7$?Aw$j2>L>$,$o$+$i$J$$$^$^JQ49$7$F$$(B ;; $B$k$N$G!"A4$F$N8uJd$,(B words2 $B$KF~$C$F$$$k(B -- words3, words4 $B$O(B ;; null$B!#(B ;; words3 $B$H$7$FA^F~$9$k$b$N$,A4$/$J$1$l$P!"2?$b$7$J$$(B -- words3 ;; $B$,(B purge $BA0$+$i(B null $B$J$i!"(Bwords2 $B$NKvHx$O(B "[" $B$G$J$$$7!"(B ;; words4 $B$O(B null $B$@$+$i(B words[234] $B$NA`:n$OITMW!#(B (setq words2 (nconc words2 (list (concat "[" okurigana))) words3 (list word) ;; purge $BA0$+$i(B words3 $B$,(B null $B$@$C$?$N$@$+$i(B ;; words4 $B$b(B null$B!#(B words4 (list "]")))))) (when words2 ;; words2 -- $B:#2s;HMQ$7$J$+$C$?Aw$j2>L>$r;H$&4A;z$N8uJd72(B ;; + "[" ;; + $B:#2s;HMQ$7$?Aw$j2>L>(B ($BAw$j2>L>$N$_!#$=$NAw$j(B ;; $B2>L>$r;HMQ$9$k4A;z$N8uJd72$O!"(Bwords3 $B$K4^$^$l$k(B) (insert (skk-update-jisyo-2 words2) "/") ;; words2 $B$,(B null $B$J$i(B words3 $B$b(B null$B!#(B (when words3 ;; words3 -- $B:#2s;HMQ$7$?Aw$j2>L>$r;H$&A44A;z8uJd(B (insert (skk-update-jisyo-2 words3) "/")) ;; purge $B$G(B words3 $B$,(B null $B$K$J$C$?>l9g$O(B words4 $B$,;D$C$F$$$k(B ;; $B$H$-$,$"$k!#(B (when words4 ;; words4 -- "]" + $BB>$NAw$j2>L>$r;H$&A44A;z8uJd(B ;; (words2 $B$N;D$j(B)$B!#(B (insert (skk-update-jisyo-2 words4) "/")))))) (defun skk-update-jisyo-2 (words) (mapconcat #'skk-quote-char words "/")) (defun skk-quote-char (word) "WORD $B$r<-=q%(%s%H%j$H$7$F@5$7$$7A$K@07A$9$k!#(B $B<-=q7A<0$N@)8B$+$i!"<-=q%(%s%H%jFb$K4^$a$F$O$J$i$J$$J8;z$,(B WORD $B$NCf$K$"$l$P!"(B $BI>2A$7$?$H$-$K$=$NJ8;z$H$J$k$h$&$J(B Lisp $B%3!<%I$rJV$9!#(B" (save-match-data (cond ((and word (string-match "[/\n\r\"]" word) ;; we should not quote WORD if it is a symbolic expression (not (skk-lisp-prog-p word)) ;; has an annotation (not (string-match ";" word))) (format "(concat \"%s\")" (skk-quote-char-1 word (cdr skk-quote-char-alist)))) (t word)))) (defun skk-quote-semicolon (word) "WORD $B$r<-=q%(%s%H%j$H$7$F@5$7$$7A$K@07A$9$k!#(B `skk-quote-char' $B$H;w$F$$$k$,!"Cpl9g$K$O$3$N4X?t$rMQ$$$k$H$h$$!#(B" (unless (or skk-henkan-okurigana (string-match ">$" skk-henkan-key) ; $B@\F,<-(B (string-match "^>" skk-henkan-key)) ; $B@\Hx<-(B (let ((key skk-henkan-key) char words) (with-temp-buffer (insert key) ;; $B@\F,<-!&@\Hx<-$NF~NO$@$C$?$i(B ">" $B$r>C$7$F$*$/!#(B (goto-char (1- (point))) ; (when (looking-at ">") ;(looking-back ">") (delete-char 1)) (goto-char (point-min)) (when (looking-at ">") (delete-char 1)) ;; (while (and (not (eobp)) ;; "$B!<(B" $B$G$OJ8;z3Q%+%J$K$7$F!"%j%9%H$K$7$FJV$9!#(B" (cdr (skk-search-katakana t))) (defun skk-search-romaji (&optional jisx0208) "$BJQ49%-!<$r%m!<%^;z$KJQ49$7$?8uJd$rJV$9!#(B" (when (executable-find "kakasi") (unless (or skk-henkan-okurigana (string-match ">$" skk-henkan-key) ; $B@\F,<-(B (string-match "^>" skk-henkan-key)) ; $B@\Hx<-(B (let ((key skk-henkan-key) words chars) (with-temp-buffer (insert key) ;; $B@\F,<-!&@\Hx<-$NF~NO$@$C$?$i(B ">" $B$r>C$7$F$*$/!#(B (goto-char (1- (point))) (when (looking-at ">") (delete-char 1)) (goto-char (point-min)) (when (looking-at ">") (delete-char 1)) ;; (while (not (eobp)) (add-to-list 'chars (skk-what-char-type)) (forward-char 1)) (when (memq 'hiragana chars) (skk-romaji-region (point-min) (point-max)) (setq words (list (buffer-string)))) (when (and jisx0208 words) (skk-jisx0208-latin-region (point-min) (point-max)) (setq words (nconc words (list (buffer-string)))))) words)))) (defun skk-search-jisx0208-romaji () "$B8+=P$78l$rA43Q%m!<%^;z$KJQ49$7$F!"%j%9%H$K$7$FJV$9!#(B" (cdr (skk-search-romaji t))) (defun skk-search-upcase (&optional initial) "$BJQ49%-!<$N(B ascii $B>.J8;z$rBgJ8;z$KJQ49$7$?8uJd$rJV$9!#(B $B$3$N4X?t$O(B `skk-abbrev-mode' $B@lMQ!#(B" (if skk-abbrev-mode (list (if initial (upcase-initials skk-henkan-key) (upcase skk-henkan-key))) nil)) (defun skk-search-identity (&rest args) "$BJQ49%-!<$r$=$N$^$^8uJd$H$7$FJV$9!#(B $B$3$N4X?t$OAw$j$J$7JQ49@lMQ!#(B" (if skk-henkan-okurigana nil (list (identity skk-henkan-key)))) (defun skk-search-function-usage () "Emacs Lisp $B4X?t$N(B usage $B$rJV$9!#(B" (when (eval-when-compile (featurep 'emacs)) (unless skk-henkan-okurigana (let* ((symbol (intern (format "%s" skk-henkan-key))) def doc usage arglist result) (when (fboundp symbol) (setq def (symbol-function symbol) doc (documentation symbol) usage (help-split-fundoc doc symbol) arglist (help-function-arglist symbol)) (cond (usage (setq result (car usage))) ((listp arglist) (setq result (format "%S" (skk-help-make-usage symbol arglist)))) ((stringp arglist) (setq result arglist)) ((let ((fun symbol)) (while (and (symbolp fun) (setq fun (symbol-function fun)) (not (setq usage (help-split-fundoc (documentation fun) symbol))))) usage) (setq result (car usage))) ((or (stringp def) (vectorp def)) (setq result (format "\nMacro: %s" (format-kbd-macro def))))) (when result (list (format "(quote %s)" result)))))))) (defun skk-search-progs (key &optional prog-list remove-note) ;; prog-list $B$,>JN,$5$l$?;~$O(B skk-search-prog-list $B$NA4$F$,BP>](B ;; $B$b$70z?t$r$5$i$KDI2C$9$k$h$&$J;v$,$"$l$P(B ;; okuri-nasi $BAw$jM-$j$N%A%'%C%/$r%Q%9(B ;; allow-duplicate skk-nunion $B$G$J$/(B nconc $B$r;H$&(B ;; $B$"$?$j$+(B (save-match-data (let ((skk-henkan-key key) skk-henkan-okurigana skk-okuri-char skk-auto-okuri-process words) ;; $B:.$<=q$-$J?M$C$FAw$jM-$jJQ49$9$k$N$+$J(B \cj $B$N$[$&$,$$$$(B? (when (string-match "[$B$!(B-$B$s(B][a-z]$" key) (setq skk-henkan-okurigana "" skk-okuri-char (substring key (1- (length key))))) (ignore-errors (dolist (form (or prog-list skk-search-prog-list)) (dolist (word (eval form)) (when (and remove-note (string-match ";" word)) (setq word (substring word 0 (match-beginning 0)))) (setq words (skk-nunion words (list word)))))) words))) (defun skk-search-sagyo-henkaku-maybe () (when skk-search-sagyo-henkaku (skk-search-sagyo-henkaku nil (eq skk-search-sagyo-henkaku 'anything)))) (defun skk-search-sagyo-henkaku (&optional okuri-list anything) "$B8+=P$78l$r%59TJQ3J3hMQ$NF0;l$H$_$J$7$F!"Aw$j$"$j8uJd$r8!:w$9$k!#(B" (unless okuri-list (setq okuri-list '("$B$5(B" "$B$7(B" "$B$9(B" "$B$;(B"))) (when (and skk-henkan-okurigana (or (member skk-henkan-okurigana okuri-list) anything)) (skk-search-progs (substring skk-henkan-key 0 (1- (length skk-henkan-key)))))) (defun skk-search-ja-dic-maybe (&optional check) ;; `skk-search-prog-list' $B$N0lMWAG$H$7$F:nMQ$9$k$[$+!"(B ;; skk-mode $B$KF~$k$?$S(B check $B$GI>2A$5$l$k!#(B (when (eval-when-compile (featurep 'emacs)) (unless (or (and (stringp skk-large-jisyo) (file-readable-p skk-large-jisyo)) (and (stringp skk-aux-large-jisyo) (file-readable-p skk-aux-large-jisyo)) (and (stringp skk-cdb-large-jisyo) (file-readable-p skk-cdb-large-jisyo)) skk-server-host skk-inhibit-ja-dic-search) (if check (skk-message "$B<-=q$H$7$F(B leim/ja-dic $B$r;H$$$^$9(B" "Use leim/ja-dic as dictionary") (skk-search-ja-dic))))) (defun skk-search-with-suffix () (unless (or skk-henkan-okurigana (get 'skk-search-with-suffix 'active)) (let ((i 1) (len (length skk-henkan-key)) key suf-key words suffixes list) (put 'skk-search-with-suffix 'active t) (while (< i len) (setq key (substring skk-henkan-key 0 i) suf-key (substring skk-henkan-key i)) (setq words (skk-search-progs key nil 'remove) suffixes (skk-search-progs (concat ">" suf-key) nil 'remove)) (when (and words suffixes) (dolist (word words) (dolist (suffix suffixes) (setq list (nconc list (list (concat word suffix))))))) (setq i (1+ i))) (put 'skk-search-with-suffix 'active nil) list))) (defun skk-katakana-region (start end &optional vcontract) "$BNN0h$N$R$i$,$J$r%+%?%+%J$KJQ49$9$k!#(B $B%*%W%7%g%J%k0z?t$N(B VCONTRACT $B$,(B non-nil $B$G$"$l$P!"(B\"$B$&!+(B\" $B$r(B \"$B%t(B\" $B$KJQ49$9(B $B$k!#(B $B0z?t$N(B START $B$H(B END $B$O?t;z$G$b%^!<%+!<$G$bNI$$!#(B" (interactive "*r\nP") (when vcontract (skk-search-and-replace start end "$B$&!+(B" (lambda (matched) nil "$B%t(B"))) (skk-search-and-replace start end "[$B$!(B-$B$s(B]+" (lambda (matched) (skk-hiragana-to-katakana matched)))) (defun skk-hiragana-region (start end &optional vexpand) "$BNN0h$N%+%?%+%J$r$R$i$,$J$KJQ49$9$k!#(B $B%*%W%7%g%J%k0z?t$N(B VEXPAND $B$,(B non-nil $B$G$"$l$P!"(B\"$B%t(B\" $B$r(B \"$B$&!+(B\" $B$KJQ49$9$k!#(B $B0z?t$N(B START $B$H(B END $B$O?t;z$G$b%^!<%+!<$G$bNI$$!#(B \"$B%u(B\" $B$H(B \"$B%v(B\" $B$OJQ99$5$l$J$$!#$3$N(B 2 $B$D$NJ8;z$OBP1~$9$k$R$i$,$J$,$J$$$N$G!"(B $B%+%?%+%J$H$7$F$O07$o$l$J$$!#(B" (interactive "*r\nP") (when vexpand (skk-search-and-replace start end "$B%t(B" (lambda (matched) nil "$B$&!+(B"))) (skk-search-and-replace start end "[$B%!(B-$B%s(B]+" (lambda (matched) (skk-katakana-to-hiragana matched)))) (defun skk-jisx0208-latin-region (start end) "$BNN0h$N(B ascii $BJ8;z$rBP1~$9$kA43Q1QJ8;z$KJQ49$9$k!#(B" (interactive "*r") (skk-search-and-replace start end "[ -~]" (lambda (matched) (aref skk-default-jisx0208-latin-vector (string-to-char matched))))) (defun skk-latin-region (start end) "$BNN0h$NA43Q1QJ8;z$rBP1~$9$k(B ascii $BJ8;z$KJQ49$9$k!#(B" (interactive "*r") (skk-search-and-replace start end "\\cj" (lambda (matched) (or (skk-jisx0208-to-ascii matched) matched)))) (defun skk-search-and-replace (start end regexp func) (let (matched replace) (save-match-data (skk-save-point ;; END may be changed when length of MATCHED and one of REPLACE ;; are different. (setq end (set-marker (make-marker) end)) (goto-char start) (while (re-search-forward regexp end 'noerror) (let ((beg0 (match-beginning 0)) (end0 (match-end 0))) (setq matched (buffer-substring-no-properties beg0 end0) replace (funcall func matched)) (goto-char beg0) ;; firstly insert a new string, secondly delete an old string to save ;; the cursor position. (insert-and-inherit replace) (delete-region (+ beg0 (length replace)) (+ end0 (length replace))))) (set-marker end nil))))) (defun skk-jisx0208-to-ascii (string) (require 'japan-util) (let ((char (get-char-code-property (string-to-char string) 'ascii))) (if char (char-to-string char) nil))) (defun skk-henkan-skk-region-by-func (func &optional arg) "`skk-henkan-start-point' $B$H(B `skk-henkan-end-point' $B$N4V$NJ8;zNs$rJQ49$9$k!#(B $BJQ492DG=$+$I$&$+$N%A%'%C%/$r$7$?8e$K(B ARG $B$r0z?t$H$7$F(B FUNC $B$rE,MQ$7!"(B `skk-henkan-start-point' $B$H(B `skk-henkan-end-point' $B$N4V$NJ8;zNs$rJQ49$9$k!#(B" (skk-with-point-move (case skk-henkan-mode (active ;$B"'%b!<%I(B nil) (on ;$B"&%b!<%I(B (skk-set-marker skk-henkan-end-point (point)) (when (and (> skk-kakutei-history-limit 0) (< skk-henkan-start-point (point)) (skk-save-point (goto-char skk-henkan-start-point) (eq (skk-what-char-type) 'hiragana))) (skk-update-kakutei-history (buffer-substring-no-properties skk-henkan-start-point (point)))) ;; $BJQ492DG=$+$I$&$+$N:G=*%A%'%C%/(B (when (skk-get-prefix skk-current-rule-tree) (skk-error "$BF~NOESCf$N2>L>%W%l%U%#%C%/%9$,$"$j$^$9(B" "There remains a kana prefix")) (when (< (point) skk-henkan-start-point) (skk-error "$B%+!<%=%k$,JQ493+;OCOE@$h$jA0$K$"$j$^$9(B" "Henkan end point must be after henkan start point")) (when (and (not skk-allow-spaces-newlines-and-tabs) (skk-save-point (beginning-of-line) (> (point) skk-henkan-start-point))) (skk-error "$BJQ49%-!<$K2~9T$,4^$^$l$F$$$^$9(B" "Henkan key may not contain a line feed")) ;; (apply func skk-henkan-start-point skk-henkan-end-point (if arg (list arg) nil)) (skk-kakutei)) (t (skk-emulate-original-map arg))))) (defun skk-hiragana-to-katakana (hiragana) (let ((diff (- ?$B%"(B ?$B$"(B))) (mapconcat (lambda (e) (if (and (<= ?$B$!(B e) (>= ?$B$s(B e)) (char-to-string (+ e diff)) (char-to-string e))) (string-to-int-list hiragana) ""))) (defun skk-katakana-to-hiragana (katakana) (let ((diff (- ?$B%"(B ?$B$"(B))) (mapconcat (lambda (e) (if (and (<= ?$B%!(B e) (>= ?$B%s(B e)) (char-to-string (- e diff)) (char-to-string e))) (string-to-int-list katakana) ""))) (defun skk-splice-in (org offset spliced) ;; ORG := '(A B C), SPLICED := '(X Y), OFFSET := 1 ;; -> '(A B X Y C) (let (tmp tail) (unless (> offset 0) (error "%s" "Cannot splice in!")) (setq tmp (nthcdr (1- offset) org) tail (cdr tmp)) (setcdr tmp nil) ;cut off (setcdr tmp (if tail (nconc spliced tail) spliced)) org)) ;; (defun skk-chomp (nth list) ;; ;; LIST := '(A B C D), NTH := 1 ;; ;; -> '(A B) ;; (and (> nth -1) (setcdr (nthcdr nth list) nil)) ;; list) (defun skk-henkan-face-on (&optional face) "SKK $B$N(B face $BB0@-$r(B ON $B$K$9$k!#(B `skk-use-face' $B$,(B non-nil $B$N>l9g!"(B`skk-henkan-start-point' $B$H(B `skk-henkan-end-point' $B$N4V$N(B face $BB0@-$r(B `skk-henkan-face' $B$NCM$KJQ99$9$k!#(B" ;; SKK 9.4 $B$h$j(B Text Properties $B$r;HMQ$9$k$N$r;_$a$F!"(BOverlays $B$r;HMQ$9$k$h(B ;; $B$&$K$7$?(B (egg.el, canna.el, wnn-egg.el $B$r;29M$K$7$?(B)$B!#(B ;; Overlays $B$O!"%F%-%9%H$N0lIt$G$O$J$$$N$G!"%P%C%U%!$+$iJ8;z$r@Z$j=P$7$F$b%3(B ;; $B%T!<$NBP>]$K$J$i$J$$$7!"%"%s%I%%;~$bL5;k$5$l$k$N$G!"JQ49$5$l$?8uJd$NI=<((B ;; $B$r0l;~E*$KJQ99$9$k$K$O(B Text Properties $B$h$j$b9%ET9g$G$"$k!#(B (unless face (setq face skk-henkan-face)) (when (and face (marker-position skk-henkan-start-point) (marker-position skk-henkan-end-point)) (setq skk-henkan-overlay nil) (skk-face-on skk-henkan-overlay skk-henkan-start-point skk-henkan-end-point face skk-henkan-overlay-priority))) (defun skk-henkan-face-off () "SKK $B$N(B face $BB0@-$r(B OFF $B$K$9$k!#(B `skk-henkan-start-point' $B$H(B `skk-henkan-end-point' $B$N4V$NI=<($rJQ99$7$F$$$k(B `skk-henkan-overlay' $B$r>C$9!#(B" (when skk-henkan-face (skk-detach-extent skk-henkan-overlay))) (defun skk-detach-extent (object) (cond ((eval-when-compile (featurep 'xemacs)) (when (extentp object) (detach-extent object))) (t (when (overlayp object) (delete-overlay object))))) (defun skk-make-face (face) "$B?7$7$$(B FACE $B$r:n@.$9$k!#(B FACE $B$O!VA07J?'!WKt$O!VA07J?'(B + $B%9%i%C%7%e(B + $BGX7J?'!W$N7A<0$G;XDj$9$k!#(B" ;; hilit-lookup-face-create $B$N%5%V%;%C%H!#(Btutorial $B$G?'IU$1$r9T$&>l9g$G$b(B ;; hilit19 $B$K0MB8$;$:$H$j$"$($:(B face $B$r<+A0$G:n$k$3$H$,$G$-$k$h$&$K!"$H$$$&(B ;; $BL\E*$G:n$C$?$b$N$G!"4JC1$J?'IU$1$7$+$G$-$J$$!#$"$^$j8-$/$O$J$$!#J#;($J(B ;; face $B$r:n$j$?$$?M$O(B hilit-lookup-face-create $BEy$r;H$C$F2<$5$$!#(B (unless (car (memq face (face-list))) (save-match-data (let* ((list (split-string (symbol-name face) "/")) (bg (nth 1 list))) (setq face (make-face face)) (set-face-foreground face (car list)) (when bg (set-face-background face bg))))) face) ;; skk-auto.el, skk-rdbms.el $B$NN>J}$G;H$&$N$G!"(Bskk-auto.el $B$h$j0\F0$7$?!#(B (defun skk-remove-common (word) "WORD $B$NAw$j2>L>0J30$NItJ,$rJV$9!#(B `skk-henkan-key' $B$H(B WORD $B$N4V$K6&DL$NAw$j2>L>$rL>0J30$NItJ,(B $B$NJ8;zNs$rJV$9!#(B`skk-henkan-key' $B$H(B `skk-henkan-okurigana' $B$NCM$r%;%C%H$9$k!#(B $BNc$($P!"(BWORD == $B;}$C$F$-$?(B $B$G$"$l$P!"(B`skk-henkan-key' := $B$b(Bt , `skk-henkan-okurigana' := $B$C$F(B , WORD := $B;}(B $B$N$h$&$KJ,2r$7!"(BWORD $B$rJV$9!#(B `skk-auto-okuri-process' $B$NCM$,(B non-nil $B$G$"$k$H$-$K$3$N4X?t$r;HMQ$9$k!#(B $BJQ49$,9T$o$l$?%P%C%U%!$G%3!<%k$5$l$k(B ($B<-=q%P%C%U%!$G$O$J$$(B)$B!#(B" (when (and (not (skk-numeric-p)) (not skk-abbrev-mode) (or skk-henkan-in-minibuff-flag (and (<= skk-okuri-index-min (skk-henkan-count)) (<= (skk-henkan-count) skk-okuri-index-max)))) (let ((midasi skk-henkan-key) (midasi-len (length skk-henkan-key)) (word-len (length word)) (cont t) char pos pos2 midasi-tail word-tail new-word okuri-first new-skk-okuri-char new-skk-henkan-key) (when (and (>= midasi-len 2) (>= word-len 2)) ;; check if both midasi and word end with the same ascii char. (when (and (skk-ascii-char-p (aref midasi (1- midasi-len))) (eq (aref midasi (1- midasi-len)) (aref word (1- word-len)))) ;; if so chop off the char from midasi and word. ;; assume size of an ASCII char is always 1. (setq midasi (substring midasi 0 -1) midasi-len (1- midasi-len) word (substring word 0 -1) word-len (1- word-len))) (setq midasi-tail (substring midasi (1- midasi-len) midasi-len) word-tail (substring word (1- word-len) word-len)) (when (and (string= midasi-tail word-tail) (or (and (skk-string<= "$B$!(B" midasi-tail) (skk-string<= midasi-tail "$B$s(B")) (member midasi-tail '("$B!"(B" "$B!#(B" "$B!$(B" "$B!%(B")))) ;; $B8+=P$78l$HC18l$H$NKvHx$,F10l$N$+$JJ8;z$N>l9g!#(B ;; $BAw$j$J$7$rAw$j$"$j$X(B (setq pos (1- word-len) new-word new-skk-henkan-key) (while (and cont (> pos 0)) (setq char (substring word (1- pos) pos)) (if (and (skk-string<= "$B0!(B" char) (skk-string<= char "$Bt$(B")) ;; char is the right-most Kanji (setq cont nil) (setq pos (1- pos)))) (setq pos2 (- midasi-len (- word-len pos))) ;; check if midasi and word has the same tail of length (when (string= (substring midasi pos2 midasi-len) (substring word pos word-len)) (setq okuri-first (substring word pos (1+ pos))) (setq skk-henkan-okurigana (if (and (string= okuri-first "$B$C(B") (<= (+ pos 2) word-len)) ;; in this case okuriga consits of two ;; characters, e.g., $B!V;D$C$?!W(B (substring word pos (+ pos 2)) okuri-first)) (setq new-word (substring word 0 pos) new-skk-okuri-char (skk-okurigana-prefix skk-henkan-okurigana) new-skk-henkan-key (concat (substring midasi 0 pos2) new-skk-okuri-char)) (let (inhibit-quit) ; allow keyboard quit (cond ((not skk-henkan-in-minibuff-flag) (setq word new-word skk-henkan-key new-skk-henkan-key)) ;; $B<-=qEPO?%b!<%I$GEPO?$5$l$?>l9g!#(B ;; ask if register as okuri-ari word. ((y-or-n-p (format (if skk-japanese-message-and-error "%s /%s/ $B$rAw$j$"$j8uJd$H$7$FEPO?$7$^$9$+!)(B " "Shall I register this as okuri-ari word: %s /%s/ ? ") new-skk-henkan-key new-word)) (setq word new-word skk-okuri-char new-skk-okuri-char skk-henkan-key new-skk-henkan-key)) (t (setq skk-henkan-okurigana nil skk-okuri-char nil) (message ""))))))))) ;; $BJ,2r$7$?(B word ($BAw$j2>L>ItJ,$r=|$$$?$b$N(B) $B$rJV$9!#(B word) (defun skk-okurigana-prefix (okurigana) (let ((headchar (substring okurigana 0 1))) (cond ((string= headchar "$B$s(B") "n") ((not (and (skk-string<= "$B$!(B" headchar) (skk-string<= headchar "$B$s(B"))) nil) ((and (string= headchar "$B$C(B") (not (string= okurigana "$B$C(B"))) (aref skk-kana-rom-vector ;; assume the character is hiragana of JIS X 0208. (- (skk-char-octet (string-to-char (substring okurigana 1 2)) 1) 33))) (t (aref skk-kana-rom-vector (- (skk-char-octet (string-to-char headchar) 1) 33)))))) (defun skk-time-difference (a b) ;; from type-break.el. Welcome! ;; Compute the difference, in seconds, between a and b, two structures ;; similar to those returned by `current-time'. ;; Use addition rather than logand since that is more robust; the low 16 ;; bits of the seconds might have been incremented, making it more than 16 ;; bits wide. (+ (lsh (- (car b) (car a)) 16) (- (nth 1 b) (nth 1 a)))) (defun skk-update-kakutei-history (midasi &optional word) "$BJQ?t(B `skk-kakutei-history' $B$r99?7$9$k!#(B $B$3$NMzNr$O(B skk-comp.el $B$K$*$$$FMxMQ$5$l$k!#(B" (cond ((<= skk-kakutei-history-limit 0) (setq skk-kakutei-history nil)) (t (setq skk-kakutei-history (cons (list midasi word (current-buffer)) skk-kakutei-history)) (when (> (length skk-kakutei-history) skk-kakutei-history-limit) (setcdr (nthcdr (1- skk-kakutei-history-limit) skk-kakutei-history) nil))))) ;; ??? Workaround for XEmacs isearch. (defun skk-henkan-count () (cond ((eval-when-compile (featurep 'xemacs)) (if skk-isearch-switch (with-current-buffer skk-isearch-working-buffer skk-henkan-count) skk-henkan-count)) (t skk-henkan-count))) ;; ??? Workaround for XEmacs isearch. (defun skk-set-henkan-count (i) (cond ((eval-when-compile (featurep 'xemacs)) (if skk-isearch-switch (with-current-buffer skk-isearch-working-buffer (setq skk-henkan-count i)) (setq skk-henkan-count i))) (t (setq skk-henkan-count i)))) ;; ??? Workaround for XEmacs isearch. (defun skk-exit-show-candidates () (cond ((eval-when-compile (featurep 'xemacs)) (if skk-isearch-switch (with-current-buffer skk-isearch-working-buffer skk-exit-show-candidates) skk-exit-show-candidates)) (t skk-exit-show-candidates))) ;; ??? Workaround for XEmacs isearch. (defun skk-set-exit-show-candidates (list) (cond ((eval-when-compile (featurep 'xemacs)) (if skk-isearch-switch (with-current-buffer skk-isearch-working-buffer (setq skk-exit-show-candidates list)) (setq skk-exit-show-candidates list))) (t (setq skk-exit-show-candidates list)))) ;;; functions for hooks. (defun skk-after-point-move () (when (and (not (and skk-previous-point (= skk-previous-point (point)))) (skk-get-prefix skk-current-rule-tree)) (skk-with-point-move (skk-erase-prefix 'clean)))) (defun skk-pre-command () (when (and (memq last-command '(skk-insert skk-previous-candidate)) (null (memq this-command skk-kana-cleanup-command-list))) (skk-kana-cleanup t))) (defun skk-remove-minibuffer-setup-hook (&rest args) ;; Remove all args from minibuffer-setup-hook. (dolist (hook args) (remove-hook 'minibuffer-setup-hook hook))) (defun skk-add-skk-pre-command () (add-hook 'pre-command-hook 'skk-pre-command nil 'local)) (defun skk-remove-skk-pre-command () (remove-hook 'pre-command-hook 'skk-pre-command 'local)) (add-hook 'edit-picture-hook #'skk-misc-for-picture 'append) (add-hook 'kill-emacs-hook #'skk-record-jisyo-data) ;; add 'skk-save-jisyo only to remove easily. (add-hook 'kill-emacs-hook #'skk-save-jisyo) (add-hook 'minibuffer-exit-hook (lambda () (skk-remove-skk-pre-command) (skk-remove-minibuffer-setup-hook 'skk-j-mode-on 'skk-setup-minibuffer 'skk-add-skk-pre-command) (skk-exit-henkan-in-minibuff))) ;;;###autoload (defun skk-preload () "Emacs $B5/F0;~$K$"$i$+$8$a(B SKK $B$r8F$V$3$H$G(B SKK $B$N1~Ez$rB.$/$9$k!#(B $B@hFI$_$NBP>]$K$J$k$N$O0J2 (prefix-numeric-value arg) 0) t))) (when (boundp 'migemo-isearch-enable-p) (if skk-isearch-mode-enable (setq migemo-isearch-enable-p nil) (setq migemo-isearch-enable-p t))) (message "SKK isearch is %s" (if skk-isearch-mode-enable "enabled" "disabled"))) (defun skk-henkan-inactivate () "$B"'%b!<%I$r%-%c%s%;%k$7$F"&%b!<%I$KLa$k!#J8;zNs$O0];}$9$k!#(B" (skk-set-henkan-count 0) (if (and skk-delete-okuri-when-quit skk-henkan-okurigana) (let ((count (length skk-henkan-okurigana))) (skk-previous-candidate nil) ;; $B$3$3$G$O(B delete-backward-char $B$KBhFs0z?t$rEO$5$J$$J}$,%Y%?! (point) skk-henkan-start-point) (point) skk-previous-point)) (skk-kakutei))) ;;; cover to original functions. (skk-defadvice keyboard-quit (around skk-ad activate preactivate) "$B"'%b!<%I$G$"$l$P!"8uJd$NI=<($r$d$a$F"&%b!<%I$KLa$9(B ($B8+=P$78l$O;D$9(B)$B!#(B $B"&%b!<%I$G$"$l$P!"8+=P$78l$r:o=|$9$k!#(B $B>e5-$N$I$A$i$N%b!<%I$G$b$J$1$l$P(B `keyboard-quit' $B$HF1$8F0:n$r$9$k!#(B" (if (not skk-mode) ad-do-it (cond ((eq skk-henkan-mode 'active) (skk-henkan-inactivate)) ((eq skk-henkan-mode 'on) (skk-henkan-off-by-quit)) (t (if (skk-get-prefix skk-current-rule-tree) (skk-erase-prefix 'clean) ad-do-it))))) (skk-defadvice abort-recursive-edit (around skk-ad activate preactivate) "$B"'%b!<%I$G$"$l$P!"8uJd$NI=<($r$d$a$F"&%b!<%I$KLa$9(B ($B8+=P$78l$O;D$9(B)$B!#(B $B"&%b!<%I$G$"$l$P!"8+=P$78l$r:o=|$9$k!#(B $B>e5-$N$I$A$i$N%b!<%I$G$b$J$1$l$P(B `abort-recursive-edit' $B$HF1$8F0:n$r$9$k!#(B" ;; subr command but no arg. (skk-remove-minibuffer-setup-hook 'skk-j-mode-on 'skk-setup-minibuffer 'skk-add-skk-pre-command) (if (not skk-mode) ad-do-it (cond ((eq skk-henkan-mode 'active) (skk-henkan-inactivate)) ((eq skk-henkan-mode 'on) (skk-henkan-off-by-quit)) (t (if (skk-get-prefix skk-current-rule-tree) (skk-erase-prefix 'clean) ad-do-it))))) (defadvice newline (around skk-ad activate) "`skk-egg-like-newline' $B$,(B non-nil $B$G$"$l$P!"3NDj$N$_9T$$!"2~9T$7$J$$!#(B" (if (not (or skk-j-mode skk-jisx0201-mode skk-abbrev-mode)) ad-do-it (let (;;(arg (ad-get-arg 0)) ;; `skk-kakutei' $B$rr7o$K(B nil $B$K$J$k$N$G!"J]B8$7$F$*$/I,MW$,$"$k!#(B (no-newline (and skk-egg-like-newline skk-henkan-mode)) (auto-fill-function (if (skk-called-interactively-p 'interactive) auto-fill-function nil))) ;; fill $B$5$l$F$b(B nil $B$,5"$C$F$/$k(B :-< ;;(if (skk-kakutei) ;; (setq arg (1- arg))) ;;(if skk-mode ;; (let ((opos (point))) ;; ;; skk-kakutei (skk-do-auto-fill) $B$K$h$C$F9T$,@^$jJV$5$l$?$i(B ;; ;; arg $B$r(B 1 $B$D8:$i$9!#(B ;; (skk-kakutei) ;; (if (and (not (= opos (point))) (integerp arg)) ;; (ad-set-arg 0 (1- arg))))) (when skk-mode (skk-kakutei)) (undo-boundary) (unless no-newline ad-do-it)))) (defadvice newline-and-indent (around skk-ad activate) "`skk-egg-like-newline' $B$,(B non-nil $B$G$"$l$P!"3NDj$N$_9T$$!"2~9T$7$J$$!#(B" (if (not (or skk-j-mode skk-jisx0201-mode skk-abbrev-mode)) ad-do-it (let ((no-newline (and skk-egg-like-newline skk-henkan-mode)) (auto-fill-function (if (skk-called-interactively-p 'interactive) auto-fill-function nil))) (when skk-mode (skk-kakutei)) (undo-boundary) (unless no-newline ad-do-it)))) (skk-defadvice exit-minibuffer (around skk-ad activate) ;; subr command but no arg. "`skk-egg-like-newline' $B$,(B non-nil $B$G$"$l$P!"3NDj$N$_9T$$!"2~9T$7$J$$!#(B" (skk-remove-minibuffer-setup-hook 'skk-j-mode-on 'skk-setup-minibuffer 'skk-add-skk-pre-command) (if (not (or skk-j-mode skk-jisx0201-mode skk-abbrev-mode)) ad-do-it (let ((no-newline (and skk-egg-like-newline skk-henkan-mode))) (when skk-mode (skk-kakutei)) (unless no-newline ad-do-it)))) (defadvice picture-mode-exit (before skk-ad activate) "SKK $B$N%P%C%U%!%m!<%+%kJQ?t$rL58z$K$7!"(B`picture-mode-exit' $B$r%3!<%k$9$k!#(B `picture-mode' $B$+$i=P$?$H$-$K$=$N%P%C%U%!$G(B SKK $B$r@5>o$KF0$+$9$?$a$N=hM}!#(B" (when skk-mode (skk-kill-local-variables))) (defadvice undo (before skk-ad activate) "SKK $B%b!<%I$,(B on $B$J$i(B `skk-self-insert-non-undo-count' $B$r=i4|2=$9$k!#(B" (when skk-mode (setq skk-self-insert-non-undo-count 0))) (defadvice next-line (before skk-ad activate) (when (eq skk-henkan-mode 'active) (skk-kakutei))) (defadvice previous-line (before skk-ad activate) (when (eq skk-henkan-mode 'active) (skk-kakutei))) (defadvice backward-kill-sentence (before skk-ad activate) ;; C-x DEL ;; $B$I$N$h$&$JF0:n$r$9$k$Y$-$+L$7hDj(B (when skk-mode (skk-kakutei))) (defmacro skk-wrap-newline-command (cmd) "[return]$B%-!<$K3d$jEv$F$i$l$F$$$k$G$"$m$&%3%^%s%I(B (CMD) $B$r%i%C%W$7$F!"(B skk $B$NF0:n$H@09g$5$;$k!#(B [return]$B%-!<$K%3%^%s%I$r3d$jEv$F$F$$$k%a%8%c!<%b!<%I$G(B skk $B$r;H$&$H!"(Bskk $B$,(B `skk-kakutei' $B$r8F$S=P$95!2q$,$J$$$?$a$KJQ49$r3NDj$G$-$:(B `$B"'(B' $B$,%P%C%U%!$K(B $B;D$C$F$7$^$&$H$$$&LdBj$,$"$k!#(B $BK\%^%/%m$rMQ$$$k$H!"JQ49$r3NDj$7$F$+$i(B (`skk-kakutei' $B$r ;; Author: Tsuyoshi Kitamoto ;; Maintainer: skk@ring.gr.jp ;; Created: 22 Jan 2016 ;; This file is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;;; Commentary: ;; ;; 使い方 ;; o (tar-salvage-file "~/temp/foo.tar" "foo/bar.el" "~/bar.el") ;; アーカイブ foo.tar の中のファイル bar.el を取り出して、 ;; ~/bar.el として保存します。 ;; ;; o (tar-list-files "~/temp/foo.tar") ;; アーカイブ foo.tar の中のファイル群をリストで返します。 ;;; shut up compiler warning. (eval-when-compile (declare-function tar--extract "tar-mode") (declare-function tar-header-block-tokenize "tar-mode") (declare-function tar-header-data-end "tar-mode") (declare-function tar-header-name "tar-mode")) ;;; Code: (require 'tar-mode) ;;;###autoload (defun tar-make-descriptor (buffer) "BUFFER is made by function `tar-raw-buffer'. Return list like `tar-parse-info', See `tar-mode'. this function is based on `tar-summarize-buffer'." (let ((result '()) (pos (point-min)) (coding (or file-name-coding-system default-file-name-coding-system locale-coding-system)) descriptor) (with-current-buffer buffer (while (and (< pos (point-max)) (setq descriptor (tar-header-block-tokenize pos coding))) (let ((size (tar-header-size descriptor))) (if (< size 0) (error "%s has size %s - corrupted" (tar-header-name descriptor) size))) (push descriptor result) (setq pos (tar-header-data-end descriptor)))) ; END while (nreverse result))) ;;;###autoload (defun tar-file-descriptor (buffer file) "Return descriptor Structure for match FILE in BUFFER. BUFFER is made by function `tar-raw-buffer'." ;;; (tar-file-descriptor (tar-raw-buffer "/temp/ddskk-16.0.52.tar") "ann") ;;; => [tar-header # ;;; "ddskk-16.0.52/skk-annotation.el" 436 1000 1000 64715 (22169 36584) 7124 nil ;;; "" "ustar " "brutus" "brutus" 0 0 nil] (let ((descriptor (tar-make-descriptor buffer))) (catch 'match (dolist (d descriptor) (when (string-match file (tar-header-name d)) (throw 'match d)))))) ;;;###autoload (defun tar-raw-buffer (archive) "ARCHIVE is path to tar archive. Return buffer object." (let* ((path (expand-file-name archive)) (buffer (file-name-nondirectory path))) (when (get-buffer buffer) (kill-buffer buffer)) (set-buffer (get-buffer-create buffer)) (set-buffer-multibyte nil) (insert-file-contents-literally path) (when (fboundp 'zlib-decompress-region) (zlib-decompress-region (point-min) ; GNU Emacs 24 以降であれば (point-max))) ; 直接 tar.gz いける (事前の gzip -d 不要) ) (current-buffer)) ;;;###autoload (defun tar-list-files (archive) "ARCHIVE is path to tar archive." (let* ((buffer (tar-raw-buffer archive)) (descriptor (tar-make-descriptor buffer))) (kill-buffer buffer) (mapcar #'tar-header-name descriptor))) ;;;###autoload (defun tar-salvage-file (archive salvagefile savefile) "Salvage SALVAGEFILE in ARCHIVE, and save to SAVEFILE." (let* ((tar-data-buffer (tar-raw-buffer archive)) (desc (tar-file-descriptor tar-data-buffer salvagefile))) (set-buffer (tar--extract desc)) (kill-buffer tar-data-buffer) (set-buffer-file-coding-system last-coding-system-used t) (setq buffer-file-name (expand-file-name savefile)) (basic-save-buffer) (kill-buffer nil) )) (provide 'tar-util) ;;; tar-util.el ends here ddskk-ddskk-16.3_Kutomatsunai/test/000077500000000000000000000000001361774317600174035ustar00rootroot00000000000000ddskk-ddskk-16.3_Kutomatsunai/test/all-tests.el000066400000000000000000000000251361774317600216320ustar00rootroot00000000000000(load "skk-test.el") ddskk-ddskk-16.3_Kutomatsunai/test/skk-test.el000066400000000000000000000014341361774317600214740ustar00rootroot00000000000000(require 'ert) (require 'skk) (ert-deftest skk-compute-henkan-lists/test1 () (let ((fixtures '(("てんさい /転載/天災/天才/" nil (("転載" "天災" "天才") nil nil nil)) ("なk /亡/無/鳴/泣/[く/無/鳴/泣/]/[き/亡/]/" "く" (("亡" "無" "鳴" "泣") ("[く") ("無" "鳴" "泣") ("]" "[き" "亡" "]"))) )) ) (dolist (f fixtures) (let ((entry (car f)) (okurigana (nth 1 f)) (expected (nth 2 f))) (with-temp-buffer (insert ";;\n") (insert entry) (insert "\n") (forward-line -1) (search-forward "/" nil 'noerror) (should (equal (skk-compute-henkan-lists okurigana) expected))))))) ddskk-ddskk-16.3_Kutomatsunai/tut-code/000077500000000000000000000000001361774317600201505ustar00rootroot00000000000000ddskk-ddskk-16.3_Kutomatsunai/tut-code/README.tut000066400000000000000000000010571361774317600216460ustar00rootroot00000000000000-*- text -*- SKK-MK のあるディレクトリで、 % ln -s tut-code/* . してから make して下さい。symbolic link のない OS の場合は、このフォル ダにあるファイルを一つ上の階層にコピーしてから make して下さい。 ~/.skk に次のように記載します。 (require 'skk-tutcdef) skk-tutcdef.el の内容をカスタマイズしたいときは、例えば、下記のように します。 (require 'skk-tutcdef) ;; your customizations... (setq skk-rom-kana-rule-list '(...)) [end of README] ddskk-ddskk-16.3_Kutomatsunai/tut-code/skk-def.el000066400000000000000000000254411361774317600220240ustar00rootroot00000000000000;;; skk-def.el --- SKK default definition -*- coding: iso-2022-jp -*- ;; Copyright (C) 1999, 2000 NAKAJIMA Mikio ;; Author: NAKAJIMA Mikio ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; this file is to restore default setting for SKK. ;;; Code: (setq skk-start-henkan-char ?\040) (setq skk-rom-kana-base-rule-list '(("a" nil ("$B%"(B" . "$B$"(B")) ("bb" "b" ("$B%C(B" . "$B$C(B")) ("ba" nil ("$B%P(B" . "$B$P(B")) ("be" nil ("$B%Y(B" . "$B$Y(B")) ("bi" nil ("$B%S(B" . "$B$S(B")) ("bo" nil ("$B%\(B" . "$B$\(B")) ("bu" nil ("$B%V(B" . "$B$V(B")) ("bya" nil ("$B%S%c(B" . "$B$S$c(B")) ("bye" nil ("$B%S%'(B" . "$B$S$'(B")) ("byi" nil ("$B%S%#(B" . "$B$S$#(B")) ("byo" nil ("$B%S%g(B" . "$B$S$g(B")) ("byu" nil ("$B%S%e(B" . "$B$S$e(B")) ("cc" "c" ("$B%C(B" . "$B$C(B")) ("cha" nil ("$B%A%c(B" . "$B$A$c(B")) ("che" nil ("$B%A%'(B" . "$B$A$'(B")) ("chi" nil ("$B%A(B" . "$B$A(B")) ("cho" nil ("$B%A%g(B" . "$B$A$g(B")) ("chu" nil ("$B%A%e(B" . "$B$A$e(B")) ("cya" nil ("$B%A%c(B" . "$B$A$c(B")) ("cye" nil ("$B%A%'(B" . "$B$A$'(B")) ("cyi" nil ("$B%A%#(B" . "$B$A$#(B")) ("cyo" nil ("$B%A%g(B" . "$B$A$g(B")) ("cyu" nil ("$B%A%e(B" . "$B$A$e(B")) ("dd" "d" ("$B%C(B" . "$B$C(B")) ("da" nil ("$B%@(B" . "$B$@(B")) ("de" nil ("$B%G(B" . "$B$G(B")) ("dha" nil ("$B%G%c(B" . "$B$G$c(B")) ("dhe" nil ("$B%G%'(B" . "$B$G$'(B")) ("dhi" nil ("$B%G%#(B" . "$B$G$#(B")) ("dho" nil ("$B%G%g(B" . "$B$G$g(B")) ("dhu" nil ("$B%G%e(B" . "$B$G$e(B")) ("di" nil ("$B%B(B" . "$B$B(B")) ("do" nil ("$B%I(B" . "$B$I(B")) ("du" nil ("$B%E(B" . "$B$E(B")) ("dya" nil ("$B%B%c(B" . "$B$B$c(B")) ("dye" nil ("$B%B%'(B" . "$B$B$'(B")) ("dyi" nil ("$B%B%#(B" . "$B$B$#(B")) ("dyo" nil ("$B%B%g(B" . "$B$B$g(B")) ("dyu" nil ("$B%B%e(B" . "$B$B$e(B")) ("e" nil ("$B%((B" . "$B$((B")) ("ff" "f" ("$B%C(B" . "$B$C(B")) ("fa" nil ("$B%U%!(B" . "$B$U$!(B")) ("fe" nil ("$B%U%'(B" . "$B$U$'(B")) ("fi" nil ("$B%U%#(B" . "$B$U$#(B")) ("fo" nil ("$B%U%)(B" . "$B$U$)(B")) ("fu" nil ("$B%U(B" . "$B$U(B")) ("fya" nil ("$B%U%c(B" . "$B$U$c(B")) ("fye" nil ("$B%U%'(B" . "$B$U$'(B")) ("fyi" nil ("$B%U%#(B" . "$B$U$#(B")) ("fyo" nil ("$B%U%g(B" . "$B$U$g(B")) ("fyu" nil ("$B%U%e(B" . "$B$U$e(B")) ("gg" "g" ("$B%C(B" . "$B$C(B")) ("ga" nil ("$B%,(B" . "$B$,(B")) ("ge" nil ("$B%2(B" . "$B$2(B")) ("gi" nil ("$B%.(B" . "$B$.(B")) ("go" nil ("$B%4(B" . "$B$4(B")) ("gu" nil ("$B%0(B" . "$B$0(B")) ("gya" nil ("$B%.%c(B" . "$B$.$c(B")) ("gye" nil ("$B%.%'(B" . "$B$.$'(B")) ("gyi" nil ("$B%.%#(B" . "$B$.$#(B")) ("gyo" nil ("$B%.%g(B" . "$B$.$g(B")) ("gyu" nil ("$B%.%e(B" . "$B$.$e(B")) ;;("h" "" ("$B%*(B" . "$B$*(B")) ("ha" nil ("$B%O(B" . "$B$O(B")) ("he" nil ("$B%X(B" . "$B$X(B")) ("hi" nil ("$B%R(B" . "$B$R(B")) ("ho" nil ("$B%[(B" . "$B$[(B")) ("hu" nil ("$B%U(B" . "$B$U(B")) ("hya" nil ("$B%R%c(B" . "$B$R$c(B")) ("hye" nil ("$B%R%'(B" . "$B$R$'(B")) ("hyi" nil ("$B%R%#(B" . "$B$R$#(B")) ("hyo" nil ("$B%R%g(B" . "$B$R$g(B")) ("hyu" nil ("$B%R%e(B" . "$B$R$e(B")) ("i" nil ("$B%$(B" . "$B$$(B")) ("jj" "j" ("$B%C(B" . "$B$C(B")) ("ja" nil ("$B%8%c(B" . "$B$8$c(B")) ("je" nil ("$B%8%'(B" . "$B$8$'(B")) ("ji" nil ("$B%8(B" . "$B$8(B")) ("jo" nil ("$B%8%g(B" . "$B$8$g(B")) ("ju" nil ("$B%8%e(B" . "$B$8$e(B")) ("jya" nil ("$B%8%c(B" . "$B$8$c(B")) ("jye" nil ("$B%8%'(B" . "$B$8$'(B")) ("jyi" nil ("$B%8%#(B" . "$B$8$#(B")) ("jyo" nil ("$B%8%g(B" . "$B$8$g(B")) ("jyu" nil ("$B%8%e(B" . "$B$8$e(B")) ("kk" "k" ("$B%C(B" . "$B$C(B")) ("ka" nil ("$B%+(B" . "$B$+(B")) ("ke" nil ("$B%1(B" . "$B$1(B")) ("ki" nil ("$B%-(B" . "$B$-(B")) ("ko" nil ("$B%3(B" . "$B$3(B")) ("ku" nil ("$B%/(B" . "$B$/(B")) ("kya" nil ("$B%-%c(B" . "$B$-$c(B")) ("kye" nil ("$B%-%'(B" . "$B$-$'(B")) ("kyi" nil ("$B%-%#(B" . "$B$-$#(B")) ("kyo" nil ("$B%-%g(B" . "$B$-$g(B")) ("kyu" nil ("$B%-%e(B" . "$B$-$e(B")) ("ma" nil ("$B%^(B" . "$B$^(B")) ("me" nil ("$B%a(B" . "$B$a(B")) ("mi" nil ("$B%_(B" . "$B$_(B")) ("mo" nil ("$B%b(B" . "$B$b(B")) ("mu" nil ("$B%`(B" . "$B$`(B")) ("mya" nil ("$B%_%c(B" . "$B$_$c(B")) ("mye" nil ("$B%_%'(B" . "$B$_$'(B")) ("myi" nil ("$B%_%#(B" . "$B$_$#(B")) ("myo" nil ("$B%_%g(B" . "$B$_$g(B")) ("myu" nil ("$B%_%e(B" . "$B$_$e(B")) ("n" nil ("$B%s(B" . "$B$s(B")) ("n'" nil ("$B%s(B" . "$B$s(B")) ("na" nil ("$B%J(B" . "$B$J(B")) ("ne" nil ("$B%M(B" . "$B$M(B")) ("ni" nil ("$B%K(B" . "$B$K(B")) ("nn" nil ("$B%s(B" . "$B$s(B")) ("no" nil ("$B%N(B" . "$B$N(B")) ("nu" nil ("$B%L(B" . "$B$L(B")) ("nya" nil ("$B%K%c(B" . "$B$K$c(B")) ("nye" nil ("$B%K%'(B" . "$B$K$'(B")) ("nyi" nil ("$B%K%#(B" . "$B$K$#(B")) ("nyo" nil ("$B%K%g(B" . "$B$K$g(B")) ("nyu" nil ("$B%K%e(B" . "$B$K$e(B")) ("o" nil ("$B%*(B" . "$B$*(B")) ("pp" "p" ("$B%C(B" . "$B$C(B")) ("pa" nil ("$B%Q(B" . "$B$Q(B")) ("pe" nil ("$B%Z(B" . "$B$Z(B")) ("pi" nil ("$B%T(B" . "$B$T(B")) ("po" nil ("$B%](B" . "$B$](B")) ("pu" nil ("$B%W(B" . "$B$W(B")) ("pya" nil ("$B%T%c(B" . "$B$T$c(B")) ("pye" nil ("$B%T%'(B" . "$B$T$'(B")) ("pyi" nil ("$B%T%#(B" . "$B$T$#(B")) ("pyo" nil ("$B%T%g(B" . "$B$T$g(B")) ("pyu" nil ("$B%T%e(B" . "$B$T$e(B")) ("rr" "r" ("$B%C(B" . "$B$C(B")) ("ra" nil ("$B%i(B" . "$B$i(B")) ("re" nil ("$B%l(B" . "$B$l(B")) ("ri" nil ("$B%j(B" . "$B$j(B")) ("ro" nil ("$B%m(B" . "$B$m(B")) ("ru" nil ("$B%k(B" . "$B$k(B")) ("rya" nil ("$B%j%c(B" . "$B$j$c(B")) ("rye" nil ("$B%j%'(B" . "$B$j$'(B")) ("ryi" nil ("$B%j%#(B" . "$B$j$#(B")) ("ryo" nil ("$B%j%g(B" . "$B$j$g(B")) ("ryu" nil ("$B%j%e(B" . "$B$j$e(B")) ("ss" "s" ("$B%C(B" . "$B$C(B")) ("sa" nil ("$B%5(B" . "$B$5(B")) ("se" nil ("$B%;(B" . "$B$;(B")) ("sha" nil ("$B%7%c(B" . "$B$7$c(B")) ("she" nil ("$B%7%'(B" . "$B$7$'(B")) ("shi" nil ("$B%7(B" . "$B$7(B")) ("sho" nil ("$B%7%g(B" . "$B$7$g(B")) ("shu" nil ("$B%7%e(B" . "$B$7$e(B")) ("si" nil ("$B%7(B" . "$B$7(B")) ("so" nil ("$B%=(B" . "$B$=(B")) ("su" nil ("$B%9(B" . "$B$9(B")) ("sya" nil ("$B%7%c(B" . "$B$7$c(B")) ("sye" nil ("$B%7%'(B" . "$B$7$'(B")) ("syi" nil ("$B%7%#(B" . "$B$7$#(B")) ("syo" nil ("$B%7%g(B" . "$B$7$g(B")) ("syu" nil ("$B%7%e(B" . "$B$7$e(B")) ("tt" "t" ("$B%C(B" . "$B$C(B")) ("ta" nil ("$B%?(B" . "$B$?(B")) ("te" nil ("$B%F(B" . "$B$F(B")) ("tha" nil ("$B%F%!(B" . "$B$F$!(B")) ("the" nil ("$B%F%'(B" . "$B$F$'(B")) ("thi" nil ("$B%F%#(B" . "$B$F$#(B")) ("tho" nil ("$B%F%g(B" . "$B$F$g(B")) ("thu" nil ("$B%F%e(B" . "$B$F$e(B")) ("ti" nil ("$B%A(B" . "$B$A(B")) ("to" nil ("$B%H(B" . "$B$H(B")) ("tsu" nil ("$B%D(B" . "$B$D(B")) ("tu" nil ("$B%D(B" . "$B$D(B")) ("tya" nil ("$B%A%c(B" . "$B$A$c(B")) ("tye" nil ("$B%A%'(B" . "$B$A$'(B")) ("tyi" nil ("$B%A%#(B" . "$B$A$#(B")) ("tyo" nil ("$B%A%g(B" . "$B$A$g(B")) ("tyu" nil ("$B%A%e(B" . "$B$A$e(B")) ("u" nil ("$B%&(B" . "$B$&(B")) ("vv" "v" ("$B%C(B" . "$B$C(B")) ("va" nil ("$B%t%!(B" . "$B$&!+$!(B")) ("ve" nil ("$B%t%'(B" . "$B$&!+$'(B")) ("vi" nil ("$B%t%#(B" . "$B$&!+$#(B")) ("vo" nil ("$B%t%)(B" . "$B$&!+$)(B")) ("vu" nil ("$B%t(B" . "$B$&!+(B")) ("ww" "w" ("$B%C(B" . "$B$C(B")) ("wa" nil ("$B%o(B" . "$B$o(B")) ("we" nil ("$B%&%'(B" . "$B$&$'(B")) ("wi" nil ("$B%&%#(B" . "$B$&$#(B")) ("wo" nil ("$B%r(B" . "$B$r(B")) ("wu" nil ("$B%&(B" . "$B$&(B")) ("xx" "x" ("$B%C(B" . "$B$C(B")) ("xa" nil ("$B%!(B" . "$B$!(B")) ("xe" nil ("$B%'(B" . "$B$'(B")) ("xi" nil ("$B%#(B" . "$B$#(B")) ("xka" nil ("$B%u(B" . "$B$+(B")) ("xke" nil ("$B%v(B" . "$B$1(B")) ("xo" nil ("$B%)(B" . "$B$)(B")) ("xtsu" nil ("$B%C(B" . "$B$C(B")) ("xtu" nil ("$B%C(B" . "$B$C(B")) ("xu" nil ("$B%%(B" . "$B$%(B")) ("xwa" nil ("$B%n(B" . "$B$n(B")) ("xwe" nil ("$B%q(B" . "$B$q(B")) ("xwi" nil ("$B%p(B" . "$B$p(B")) ("xya" nil ("$B%c(B" . "$B$c(B")) ("xyo" nil ("$B%g(B" . "$B$g(B")) ("xyu" nil ("$B%e(B" . "$B$e(B")) ("yy" "y" ("$B%C(B" . "$B$C(B")) ("ya" nil ("$B%d(B" . "$B$d(B")) ("ye" nil ("$B%$%'(B" . "$B$$$'(B")) ("yo" nil ("$B%h(B" . "$B$h(B")) ("yu" nil ("$B%f(B" . "$B$f(B")) ("zz" "z" ("$B%C(B" . "$B$C(B")) ("z," nil "$B!E(B") ("z-" nil "$B!A(B") ("z." nil "$B!D(B") ("z/" nil "$B!&(B") ("z[" nil "$B!X(B") ("z]" nil "$B!Y(B") ("za" nil ("$B%6(B" . "$B$6(B")) ("ze" nil ("$B%<(B" . "$B$<(B")) ("zh" nil "$B"+(B") ("zi" nil ("$B%8(B" . "$B$8(B")) ("zj" nil "$B"-(B") ("zk" nil "$B",(B") ("zl" nil "$B"*(B") ("zo" nil ("$B%>(B" . "$B$>(B")) ("zu" nil ("$B%:(B" . "$B$:(B")) ("zya" nil ("$B%8%c(B" . "$B$8$c(B")) ("zye" nil ("$B%8%'(B" . "$B$8$'(B")) ("zyi" nil ("$B%8%#(B" . "$B$8$#(B")) ("zyo" nil ("$B%8%g(B" . "$B$8$g(B")) ("zyu" nil ("$B%8%e(B" . "$B$8$e(B")) ("." nil skk-current-kuten) ("," nil skk-current-touten) ("-" nil "$B!<(B") (":" nil "$B!'(B") (";" nil "$B!((B") ("?" nil "$B!)(B") ("[" nil "$B!V(B") ("]" nil "$B!W(B") ("l" nil skk-latin-mode) ("q" nil skk-toggle-kana) ("L" nil skk-jisx0208-latin-mode) ("Q" nil skk-set-henkan-point-subr) ("X" nil skk-purge-from-jisyo) ("/" nil skk-abbrev-mode) ("$" nil skk-display-code-for-char-at-point) ("@" nil skk-today) ("\\" nil skk-input-by-code-or-menu) )) (setq skk-rom-kana-rule-list '( ("hh" "h" ("$B%C(B" . "$B$C(B")) ("mm" "m" ("$B%s(B" . "$B$s(B")) )) (setq skk-try-completion-char ?\011) (provide 'skk-def) ;;; skk-def.el ends here ddskk-ddskk-16.3_Kutomatsunai/tut-code/skk-mkmgk.el000066400000000000000000000225231361774317600223720ustar00rootroot00000000000000;;; skk-mkmgk.el --- Make Mazegaki dictionary from SKK-JISYO.* -*- coding: euc-jp -*- ;; Copyright (C) 2001 NAKAJIMA Mikio ;; Author: NAKAJIMA Mikio ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary ;; M-x skk-make-mazegaki-dic ƽϤ줿 (Ǥ TMP) ;; ;; $ skkdic-expr TMP | skkdic-sort > NEWDICT ;; ;; ȲùȺ SKK (NEWDICT) 夬ޤ ;; ;; ;; - search okuri-ari entries, too. ;; - fix a know bug below. ;; ;; ;; + ͷ /ͷ/ fixed. ;; + ꤨ /ڤ골/ڳ/ 골 /ڤ골/ Ȥꤢ̾ޤϼΤƤ뤳Ȥˤޤ ;; + ////////////// // fixed. ;; - Ϥ󲾤 /ȾҲ̾/ ɤ褦ʤ (^^;; ;; - // // (ɤߤΰʸɤߤʸƱ) ditto... ;;; Code: (eval-when-compile (require 'skk-macs)) (require 'skk) (defvar skk-mkmgk-region-limit 10000 "*꡼Υο꾮ˡХʥꥵߤ˥˰ܹԤ롣 Ŀͼùϡ0 ꤹ롣") ;;;###autoload (defun skk-make-mazegaki-dic (dic &optional nomsg) "SKK μ񤫤 TUT-Code ʤɤǻȤ뺮񤭼롣 Ϥ줿 (Ǥ TMP) $ skkdic-expr TMP | skkdic-sort > NEWDICT ȤƲùɬפꡣ" (interactive "fե:\nP ") (let ((cont t) (workbuf (get-buffer-create " *skkmkmgk working*")) max output ret) (unwind-protect (progn (while cont (setq output (read-file-name "ɤ˽Ϥޤ? " nil (convert-standard-filename "~/.skk-jisyo.tmp"))) (if (or (not (file-exists-p output)) (yes-or-no-p (format "%s ˾񤭤ƤǤ? " output))) (setq cont nil))) (with-current-buffer workbuf (erase-buffer)) (with-temp-buffer (insert-file-contents-as-coding-system (cdr (assoc "euc" skk-coding-system-alist)) (expand-file-name dic)) (re-search-forward "^;; okuri-nasi entries\\.$") ;; abbrev skip (delete-region (point-min) (progn (re-search-forward "^") (beginning-of-line) (point))) (setq ret (skk-make-mazegaki-dic-1 workbuf nomsg))) (if ret (with-current-buffer workbuf (write-region-as-coding-system (cdr (assoc "euc" skk-coding-system-alist)) ;; only Emacs 21's write-region has 6th arg MUSTBENEW. 1 (point-max) output nil t nil) (or nomsg (message "Making Mazegaki dictionary...100%% done"))))) (kill-buffer workbuf)))) ;;;###autoload (defun skk-make-mazegaki-dic-region (min max &optional reference) "SKK μ񤫤 TUT-Code ʤɤǻȤ뺮񤭼롣 ùȥХåե˽񤭽Ф `pop-to-buffer' 롣 Ϥ줿Хåեե (Ǥ TMP) ¸ $ skkdic-expr TMP | skkdic-sort > NEWDICT ȤƲùɬפꡣ ץʥ reference ꤹȡùκݤ˸뼭 ̤˻ꤹ뤳ȤǤ롣reference λ꤬ʤϡ꡼ ǸǤΤߤѤƸФù롣" (interactive "r\nP") (unwind-protect (let ((outbuf (get-buffer-create " *skkmkmgk working*")) ret) (with-current-buffer outbuf (erase-buffer)) (if reference (progn (setq reference (read-file-name "ɤμ򻲾Ȥޤ? " nil nil 'mustmatch)) (with-current-buffer (get-buffer-create " *skkmkmgk working1*") (erase-buffer) (insert-file-contents-as-coding-system (cdr (assoc "euc" skk-coding-system-alist)) (expand-file-name reference)) (goto-char (point-min)) (re-search-forward "^;; okuri-nasi entries\\.$") ;; abbrev skip (delete-region (point-min) (progn (re-search-forward "^") (beginning-of-line) (point))) (setq reference (current-buffer))))) (save-excursion (save-restriction (narrow-to-region min max) (goto-char min) (setq ret (skk-make-mazegaki-dic-1 outbuf nil reference)))) (if ret (progn (pop-to-buffer outbuf) (goto-char (point-min))))) (kill-buffer reference))) (defun skk-make-mazegaki-dic-1 (outbuf nomsg &optional reference) (let ((max (point-max)) (cont t) header0 header-list candidates0 candidates1) (or reference (setq reference (current-buffer))) (while (and cont (not (eobp))) (or nomsg (message "Making Mazegaki dictionary...%d%% done" (* (/ (* (point) 100.00) (* max 100.00)) 100.0))) (beginning-of-line) ;; Ҥ餬ʸФ e.x. "" (setq header0 (buffer-substring-no-properties (point) (save-excursion (search-forward " ") (backward-char 1) (point)))) (if (= (skk-str-length header0) 1) nil (search-forward " /") ;; Ҥ餬ʸФ򥭡ˤꥹ (2 ʸʾ) e.x. "" (setq candidates0 (skk-mkmgk-filter (car (skk-compute-henkan-lists nil)))) (if (null candidates0) nil ;; Ҥ餬ʸФʬ (setq header-list (string-to-list header0)) (save-excursion ; have to restore point after searching (set-buffer reference) (let ((max (point-max)) (min (point-min)) (header-list1 header-list) header1 n) (while header-list1 (setq header1 (char-to-string (car header-list1)) n 1) (while (and header1 (> (length header0) (length header1))) (goto-char min) ;; ʬ򤷤Ҥ餬ʸФ 1 ʸŤĸФˤƺƸ e.x. "" (if (not (setq candidates1 (skk-mkmgk-binary-search header1 min max skk-mkmgk-region-limit))) nil (let ((can0 candidates0) key0 key1) (while (and candidates1 can0) (if (not (string-match (car candidates1) (car can0))) ;;(string-match header1 header0 (* skk-kanji-len (1- n))))) (or (setq candidates1 (cdr candidates1)) (setq can0 (cdr can0))) ;; ʬ򥭡 (e.x. ) ˤ e.x. "" ;; ꥸʥ륭 (e.x. ) θ e.x. ;; "" match (setq key0 (concat (substring (car can0) 0 (match-beginning 0)) header1 (substring (car can0) (match-end 0)))) (if (string-match header1 header0) (setq key1 (concat (substring header0 0 (match-beginning 0)) (car candidates1) (substring header0 (match-end 0))))) (or (string= key0 (car can0)) (with-current-buffer outbuf (goto-char (point-max)) ;; // (insert key0 " /" (car can0) "/\n"))) (or (string= key1 (car can0)) (with-current-buffer outbuf (goto-char (point-max)) ;; ꤫ // (insert key1 " /" (car can0) "/\n"))) (setq candidates1 nil))))) (if (> (skk-str-length (mapconcat 'char-to-string header-list1 nil)) n) ;; HEADER1 򿭤ФƺƸ ;; e.x. "" "" "" "" ;; "" "" "" ;; "" "" ;; "" (setq header1 (concat header1 (char-to-string (nth n header-list1))) n (1+ n)) (setq header1 nil))) ;; char Ƭˤ ;; e.x. "" "" "" "" (setq header-list1 (cdr header-list1))))))) (setq cont (= (forward-line 1) 0))) (let ((ret (with-current-buffer outbuf (> (buffer-size) 0)))) (prog1 ret (or nomsg (if ret (message "Making Mazegaki dictionary...100%% done") (message "No entries of Mazegaki dictionary"))))))) (defun skk-mkmgk-filter (list &optional onecharacter) ;; Optional arg ONECHARACTER means put out one character. (delete "" ; there was a bug in SKK-JISYO.L... (delq nil (mapcar (function (lambda (word) (setq word (if (and (not (string-match "[--]" word)) ;; Ѹ skip (not (string-match "^[a-zA-Z]+$" word))) (if (string-match ";" word) (substring word 0 (match-beginning 0)) word))) (if (and (not onecharacter) (= (skk-str-length word) 1)) (setq word nil)) word)) list)))) (defun skk-mkmgk-binary-search (key min max limit) (let ((case-fold-search nil) size p) (if (> limit 0) (while (progn (setq size (- max min)) (> size limit)) (goto-char (+ min (/ size 2))) (beginning-of-line) (setq p (point)) (if (string< key (buffer-substring-no-properties p (1- (search-forward " ")))) (setq max p) (setq min p)))) (goto-char min) (beginning-of-line) (if (re-search-forward (concat "^" key " /") max 'noerror) (skk-mkmgk-filter (car (skk-compute-henkan-lists nil)))))) (provide 'skk-mkmgk) ;;; skk-mkmgk.el ends here ddskk-ddskk-16.3_Kutomatsunai/tut-code/skk-tutcdef.el000066400000000000000000001763401361774317600227310ustar00rootroot00000000000000;;; skk-tutcdef.el --- SKK TUT-code default definition -*- coding: iso-2022-jp -*- ;; Copyright (C) 1999, 2000 GUNJI Takao ;; Author: GUNJI Takao ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;;; Code: (eval-when-compile (require 'skk) (require 'skk-tutcode)) (define-key skk-j-mode-map "\C-l" 'skk-latin-mode) (setq skk-try-completion-char ?\016) ; \C-n ;;(setq skk-latin-mode-string " sTUT") ;;(setq skk-hiragana-mode-string " $B#s$?$C$H(B") ;;(setq skk-katakana-mode-string " $B#s%?%C%H(B") ;;(setq skk-jisx0208-latin-mode-string " $B#s#T#U#T(B") ;;(setq skk-abbrev-mode-string " s$B$?(B") (setq skk-start-henkan-char ?\^@) (setq skk-rom-kana-base-rule-list '(("$" nil skk-tutcode-display-code) ("'" nil skk-abbrev-mode) ("@" nil skk-today) ("L" nil skk-jisx0208-latin-mode) ("Q" nil skk-set-henkan-point-subr) ("X" nil skk-purge-from-jisyo) ("\\" nil skk-tutcode-mode-off) ("\t" nil skk-toggle-kana) ("^" nil skk-input-by-code-or-menu) ("\C-@" nil skk-start-henkan))) ;; (if (and (featurep 'xemacs) (= emacs-major-version 20)) ;; (progn ;; (setq skk-rom-kana-base-rule-list ;; (delete '("\t" nil skk-toggle-kana) skk-rom-kana-base-rule-list)) ;; (define-key skk-j-mode-map "\t" 'skk-toggle-kana))) ;; The first few entries are necessary to disable special treatments of (setq skk-rom-kana-rule-list '( ("rk" nil ("$B%"(B" . "$B$"(B")) ("rlk" nil ("$B%!(B" . "$B$!(B")) ("ek" nil ("$B%+(B" . "$B$+(B")) ("elk" nil ("$B%,(B" . "$B$,(B")) ("sk" nil ("$B%5(B" . "$B$5(B")) ("slk" nil ("$B%6(B" . "$B$6(B")) ("dk" nil ("$B%?(B" . "$B$?(B")) ("dlk" nil ("$B%@(B" . "$B$@(B")) ("fk" nil ("$B%J(B" . "$B$J(B")) ("tk" nil ("$B%O(B" . "$B$O(B")) ("tlk" nil ("$B%P(B" . "$B$P(B")) ("tltk" nil ("$B%Q(B" . "$B$Q(B")) ("wk" nil ("$B%^(B" . "$B$^(B")) ("qk" nil ("$B%d(B" . "$B$d(B")) ("qlk" nil ("$B%c(B" . "$B$c(B")) ("gk" nil ("$B%i(B" . "$B$i(B")) ("ak" nil ("$B%o(B" . "$B$o(B")) ("alk" nil ("$B%n(B" . "$B$n(B")) ("ri" nil ("$B%$(B" . "$B$$(B")) ("rli" nil ("$B%#(B" . "$B$#(B")) ("ei" nil ("$B%-(B" . "$B$-(B")) ("eli" nil ("$B%.(B" . "$B$.(B")) ("si" nil ("$B%7(B" . "$B$7(B")) ("sli" nil ("$B%8(B" . "$B$8(B")) ("di" nil ("$B%A(B" . "$B$A(B")) ("dli" nil ("$B%B(B" . "$B$B(B")) ("fi" nil ("$B%K(B" . "$B$K(B")) ("ti" nil ("$B%R(B" . "$B$R(B")) ("tli" nil ("$B%S(B" . "$B$S(B")) ("tlti" nil ("$B%T(B" . "$B$T(B")) ("wi" nil ("$B%_(B" . "$B$_(B")) ("gi" nil ("$B%j(B" . "$B$j(B")) ("ai" nil ("$B%p(B" . "$B$p(B")) ("ru" nil ("$B%&(B" . "$B$&(B")) ("rlu" nil ("$B%%(B" . "$B$%(B")) ("eu" nil ("$B%/(B" . "$B$/(B")) ("elu" nil ("$B%0(B" . "$B$0(B")) ("su" nil ("$B%9(B" . "$B$9(B")) ("slu" nil ("$B%:(B" . "$B$:(B")) ("du" nil ("$B%D(B" . "$B$D(B")) ("dlu" nil ("$B%C(B" . "$B$C(B")) ("dldu" nil ("$B%E(B" . "$B$E(B")) ("fu" nil ("$B%L(B" . "$B$L(B")) ("tu" nil ("$B%U(B" . "$B$U(B")) ("tlu" nil ("$B%V(B" . "$B$V(B")) ("tltu" nil ("$B%W(B" . "$B$W(B")) ("wu" nil ("$B%`(B" . "$B$`(B")) ("qu" nil ("$B%f(B" . "$B$f(B")) ("qlu" nil ("$B%e(B" . "$B$e(B")) ("gu" nil ("$B%k(B" . "$B$k(B")) ("rh" nil ("$B%((B" . "$B$((B")) ("rlh" nil ("$B%'(B" . "$B$'(B")) ("eh" nil ("$B%1(B" . "$B$1(B")) ("elh" nil ("$B%2(B" . "$B$2(B")) ("sh" nil ("$B%;(B" . "$B$;(B")) ("slh" nil ("$B%<(B" . "$B$<(B")) ("dh" nil ("$B%F(B" . "$B$F(B")) ("dlh" nil ("$B%G(B" . "$B$G(B")) ("fh" nil ("$B%M(B" . "$B$M(B")) ("th" nil ("$B%X(B" . "$B$X(B")) ("tlh" nil ("$B%Y(B" . "$B$Y(B")) ("tlth" nil ("$B%Z(B" . "$B$Z(B")) ("wh" nil ("$B%a(B" . "$B$a(B")) ("gh" nil ("$B%l(B" . "$B$l(B")) ("ah" nil ("$B%q(B" . "$B$q(B")) ("rj" nil ("$B%*(B" . "$B$*(B")) ("rlj" nil ("$B%)(B" . "$B$)(B")) ("ej" nil ("$B%3(B" . "$B$3(B")) ("elj" nil ("$B%4(B" . "$B$4(B")) ("sj" nil ("$B%=(B" . "$B$=(B")) ("slj" nil ("$B%>(B" . "$B$>(B")) ("dj" nil ("$B%H(B" . "$B$H(B")) ("dlj" nil ("$B%I(B" . "$B$I(B")) ("fj" nil ("$B%N(B" . "$B$N(B")) ("tj" nil ("$B%[(B" . "$B$[(B")) ("tlj" nil ("$B%\(B" . "$B$\(B")) ("tltj" nil ("$B%](B" . "$B$](B")) ("wj" nil ("$B%b(B" . "$B$b(B")) ("qj" nil ("$B%h(B" . "$B$h(B")) ("qlj" nil ("$B%g(B" . "$B$g(B")) ("gj" nil ("$B%m(B" . "$B$m(B")) ("aj" nil ("$B%r(B" . "$B$r(B")) ("fl" nil ("$B%s(B" . "$B$s(B")) ("rlru" nil "$B%t(B") ("eleh" nil "$B%v(B") ("elek" nil "$B%u(B") ("f " nil skk-current-kuten) ("d " nil skk-current-touten) ("/ " nil "$B!?(B") ("q " nil "$B!H(B") ("w " nil "$B")(B") ("e " nil "$B!<(B") ("r " nil "$B!J(B") ("u " nil "$B!K(B") ("i " nil "$B!D(B") ("o " nil "$B!&(B") ("p " nil "$B!I(B") ("a " nil "$B!F(B") ("s " nil "$B!y(B") ("j " nil "$B!9(B") ("k " nil "$B"((B") ("l " nil "$B!@(B") ("; " nil "$B!G(B") ("z " nil "$B!:(B") ("x " nil "$B!x(B") ("c " nil "$B!;(B") ("v " nil "$B!Z(B") ("m " nil "$B![(B") (", " nil "$B!T(B") (". " nil "$B!U(B") ("t " nil "$B!V(B") ("y " nil "$B!W(B") ("g " nil "$B!X(B") ("h " nil "$B!Y(B") ("b " nil "$B"+(B") ("n " nil "$B"*(B") ("zz" nil "$B;((B") ("xz" nil "$B?d(B") ("cz" nil "$BEO(B") ("vz" nil "$B8z(B") ("bz" nil "$B1'(B") ("nz" nil "$B?6(B") ("mz" nil "$B9[(B") (",z" nil "$BI_(B") ("az" nil "$B@1(B") ("sz" nil "$B5v(B") ("dz" nil "$B39(B") ("fz" nil "$BNk(B") ("gz" nil "$BDk(B") ("hz" nil "$B@:(B") ("jz" nil "$BM'(B") ("kz" nil "$B<}(B") ("qz" nil "$BJV(B") ("wz" nil "$B6%(B") ("ez" nil "$BJl(B") ("rz" nil "$BG.(B") ("tz" nil "$BB`(B") ("yz" nil "$B4k(B") ("uz" nil "$BI~(B") ("iz" nil "$B9](B") (".z" nil "$BM;(B") ("/z" nil "$B1:(B") ("lz" nil "$B;{(B") (";z" nil "$BMz(B") ("oz" nil "$BDd(B") ("pz" nil "$B=#(B") ("zx" nil "$B4)(B") ("xx" nil "$BFA(B") ("cx" nil "$BEP(B") ("vx" nil "$BNd(B") ("bx" nil "$B6A(B") ("nx" nil "$BDE(B") ("mx" nil "$BDM(B") (",x" nil "$BHx(B") ("ax" nil "$BB2(B") ("sx" nil "$B=>(B") ("dx" nil "$BF2(B") ("fx" nil "$BJ<(B") ("gx" nil "$B4F(B") ("hx" nil "$BIM(B") ("jx" nil "$B8M(B") ("kx" nil "$BNA(B") ("qx" nil "$B:W(B") ("wx" nil "$BK,(B") ("ex" nil "$B=t(B") ("rx" nil "$B=$(B") ("tx" nil "$BHG(B") ("yx" nil "$B0K(B") ("ux" nil "$B=5(B") ("ix" nil "$B3,(B") (".x" nil "$BC](B") ("/x" nil "$B@t(B") ("lx" nil "$B2P(B") (";x" nil "$B:d(B") ("ox" nil "$BO+(B") ("px" nil "$BHD(B") ("zc" nil "$Br(B") (",c" nil "$B1I(B") ("ac" nil "$BDB(B") ("sc" nil "$B@2(B") ("dc" nil "$BFH(B") ("fc" nil "$B4Q(B") ("gc" nil "$BJQ(B") ("hc" nil "$BFn(B") ("jc" nil "$BC+(B") ("kc" nil "$BF;(B") ("qc" nil "$BF^(B") ("wc" nil "$BCm(B") ("ec" nil "$BLH(B") ("rc" nil "$BCc(B") ("tc" nil "$B:r(B") ("yc" nil "$B2J(B") ("uc" nil "$B20(B") ("ic" nil "$B1G(B") (".c" nil "$B8K(B") ("/c" nil "$BGH(B") ("lc" nil "$B6&(B") (";c" nil "$B9>(B") ("oc" nil "$B:e(B") ("pc" nil "$B>:(B") ("nv" nil "$BZ(B") ("pv" nil "$B@u(B") ("nb" nil "$B4d(B") ("mb" nil "$B>k(B") (",b" nil "$B1J(B") ("hb" nil "$B73(B") ("jb" nil "$BEZ(B") ("kb" nil "$B?@(B") ("yb" nil "$B><(B") ("ub" nil "$B5\(B") ("ib" nil "$B?&(B") (".b" nil "$B=)(B") ("/b" nil "$BN&(B") ("lb" nil "$BB$(B") (";b" nil "$B7](B") ("ob" nil "$BM:(B") ("pb" nil "$B=U(B") ("ng" nil "$BC(B") ("an" nil "$B=u(B") ("sn" nil "$B@-(B") ("dn" nil "$BOC(B") ("fn" nil "$B8l(B") ("gn" nil "$BE@(B") ("qn" nil "$BI,(B") ("wn" nil "$B41(B") ("en" nil "$B<#(B") ("rn" nil "$B@h(B") ("tn" nil "$B=i(B") ("zm" nil "$B<:(B") ("xm" nil "$BA[(B") ("cm" nil "$BN.(B") ("vm" nil "$B8!(B") ("bm" nil "$B:F(B") ("am" nil "$B^(B") ("oa" nil "$B;N(B") ("pa" nil "$BDZ(B") ("zs" nil "$B0e(B") ("xs" nil "$BC1(B") ("cs" nil "$BB_(B") ("vs" nil "$BDI(B") ("bs" nil "$B5s(B") ("ns" nil "$B4](B") ("ms" nil "$BB4(B") (",s" nil "$BD+(B") ("as" nil "$BKh(B") ("ss" nil "$BJ!(B") ("ds" nil "$BB>(B") ("fs" nil "$BJF(B") ("gs" nil "$BMx(B") ("hs" nil "$BBe(B") ("js" nil "$B7n(B") ("ks" nil "$BED(B") ("qs" nil "$B@G(B") ("ws" nil "$B&(B") ("os" nil "$BI4(B") ("ps" nil "$B@\(B") ("zd" nil "$BI>(B") ("xd" nil "$BDm(B") ("cd" nil "$B2~(B") ("vd" nil "$BLr(B") ("bd" nil "$B2V(B") ("nd" nil "$B5^(B") ("md" nil "$B3$(B") (",d" nil "$B;T(B") ("ad" nil "$BLs(B") ("sd" nil "$BM-(B") ("dd" nil "$BA4(B") ("fd" nil "$B<+(B") ("gd" nil "$B=;(B") ("hd" nil "$BEl(B") ("jd" nil "$BFs(B") ("kd" nil "$BF|(B") ("qd" nil "$B9u(B") ("wd" nil "$B;q(B") ("ed" nil "$B?t(B") ("rd" nil "$BIJ(B") ("td" nil "$B:B(B") ("yd" nil "$B3X(B") ("ud" nil "$BK\(B") ("id" nil "$BBg(B") (".d" nil "$B;Y(B") ("/d" nil "$B?9(B") ("ld" nil "$B;~(B") (";d" nil "$BIT(B") ("od" nil "$BO;(B") ("pd" nil "$B3t(B") ("zf" nil "$BF$(B") ("xf" nil "$B6q(B") ("cf" nil "$BKI(B") ("vf" nil "$BAG(B") ("bf" nil "$B2p(B") ("nf" nil "$B8w(B") ("mf" nil "$BO:(B") (",f" nil "$BJ8(B") ("af" nil "$BD>(B") ("sf" nil "$BAw(B") ("df" nil "$BJ](B") ("ff" nil "$B@$(B") ("gf" nil "$B8=(B") ("hf" nil "$B?7(B") ("jf" nil "$BG/(B") ("kf" nil "$B0l(B") ("qf" nil "$B7Y(B") ("wf" nil "$BBw(B") ("ef" nil "$B8x(B") ("rf" nil "$B:Y(B") ("tf" nil "$BHq(B") ("yf" nil "$B9)(B") ("uf" nil "$B;v(B") ("if" nil "$BCf(B") (".f" nil "$BBt(B") ("/f" nil "$BGO(B") ("lf" nil "$BF1(B") (";f" nil "$BJb(B") ("of" nil "$B6e(B") ("pf" nil "$B8a(B") ("zh" nil "$BH=(B") ("xh" nil "$BEj(B") ("ch" nil "$B@o(B") ("vh" nil "$BAH(B") ("bh" nil "$BB?(B") ("qh" nil "$BJ(B") ("hj" nil "$BNO(B") ("jj" nil "$B83(B") ("kj" nil "$B4V(B") ("yj" nil "$B>!(B") ("uj" nil "$B;a(B") ("ij" nil "$B2h(B") (".j" nil "$B7?(B") ("/j" nil "$B8N(B") ("lj" nil "$B@_(B") (";j" nil "$B9f(B") ("oj" nil "$B?4(B") ("pj" nil "$BHN(B") ("zk" nil "$B(B") ("zq" nil "$B?-(B") ("xq" nil "$B1)(B") ("cq" nil "$B@E(B") ("vq" nil "$B:b(B") ("bq" nil "$B;O(B") ("nq" nil "$B2O(B") ("mq" nil "$B1[(B") (",q" nil "$BE}(B") ("aq" nil "$B0-(B") ("sq" nil "$BIB(B") ("dq" nil "$BAa(B") ("fq" nil "$B;e(B") ("gq" nil "$B;n(B") ("hq" nil "$B>>(B") ("jq" nil "$B0B(B") ("kq" nil "$BET(B") ("qq" nil "$BJB(B") ("wq" nil "$BBV(B") ("eq" nil "$BN>(B") ("rq" nil "$B>h(B") ("tq" nil "$B@l(B") ("yq" nil "$B6=(B") ("uq" nil "$B8}(B") ("iq" nil "$BMN(B") (".q" nil "$B=((B") ("/q" nil "$BL}(B") ("lq" nil "$BM?(B") (";q" nil "$B@6(B") ("oq" nil "$BA%(B") ("pq" nil "$B5W(B") ("zw" nil "$BN"(B") ("xw" nil "$BC;(B") ("cw" nil "$B2?(B") ("vw" nil "$B@Q(B") ("bw" nil "$B7^(B") ("nw" nil "$B85(B") ("mw" nil "$BB"(B") (",w" nil "$B8)(B") ("aw" nil "$B:,(B") ("sw" nil "$B;E(B") ("dw" nil "$BL5(B") ("fw" nil "$B0F(B") ("gw" nil "$B3[(B") ("hw" nil "$BF0(B") ("jw" nil "$B@n(B") ("kw" nil "$B5k(B") ("qw" nil "$BEA(B") ("ww" nil "$B7r(B") ("ew" nil "$BBT(B") ("rw" nil "$BGr(B") ("tw" nil "$B9A(B") ("yw" nil "$B?e(B") ("uw" nil "$B;:(B") ("iw" nil "$BL3(B") (".w" nil "$BC[(B") ("/w" nil "$B3Q(B") ("lw" nil "$BLZ(B") (";w" nil "$B:4(B") ("ow" nil "$B1X(B") ("pw" nil "$BF,(B") ("ze" nil "$BN`(B") ("xe" nil "$BHs(B") ("ce" nil "$BJd(B") ("ve" nil "$B7Z(B") ("be" nil "$BN((B") ("ne" nil "$B:j(B") ("me" nil "$B=I(B") (",e" nil "$B2D(B") ("ae" nil "$BE7(B") ("se" nil "$B:#(B") ("de" nil "$B3F(B") ("fe" nil "$B4X(B") ("ge" nil "$B1?(B") ("he" nil "$B9b(B") ("je" nil "$B9q(B") ("ke" nil "$B;0(B") ("qe" nil "$B@D(B") ("we" nil "$B3h(B") ("ee" nil "$B7k(B") ("re" nil "$BM%(B") ("te" nil "$B:G(B") ("ye" nil "$B6b(B") ("ue" nil "$BCO(B") ("ie" nil "$BK|(B") (".e" nil "$B<<(B") ("/e" nil "$B=B(B") ("le" nil "$BH,(B") (";e" nil "$BKL(B") ("oe" nil "$B7z(B") ("pe" nil "$BE4(B") ("zr" nil "$BI|(B") ("xr" nil "$BM7(B") ("cr" nil "$B;\(B") ("vr" nil "$B5"(B") ("br" nil "$BJX(B") ("nr" nil "$BH>(B") ("mr" nil "$B2,(B") (",r" nil "$B@P(B") ("ar" nil "$BN@(B") ("sr" nil "$B9-(B") ("dr" nil "$BJ?(B") ("fr" nil "$B2;(B") ("gr" nil "$B7W(B") ("hr" nil "$B;3(B") ("jr" nil "$BEE(B") ("kr" nil "$B8^(B") ("qr" nil "$B@0(B") ("wr" nil "$B>/(B") ("er" nil "$B?.(B") ("rr" nil "$BJs(B") ("tr" nil "$BB@(B") ("yr" nil "$BD.(B") ("ur" nil "$B<7(B") ("ir" nil "$B5~(B") (".r" nil "$B5Y(B") ("/r" nil "$BK-(B") ("lr" nil "$B>.(B") (";r" nil "$B86(B") ("or" nil "$BM}(B") ("pr" nil "$B1D(B") ("nt" nil "$BNS(B") ("mt" nil "$BLg(B") (",t" nil "$B3J(B") ("ht" nil "$BL>(B") ("jt" nil "$BIt(B") ("kt" nil "$B6H(B") ("yt" nil "$BBh(B") ("ut" nil "$BOB(B") ("it" nil "$B6h(B") (".t" nil "$B5H(B") ("/t" nil "$BNp(B") ("lt" nil "$BLd(B") (";t" nil "$B6a(B") ("ot" nil "$B@>(B") ("pt" nil "$BIY(B") ("zy" nil "$BMn(B") ("xy" nil "$B>p(B") ("cy" nil "$B;d(B") ("vy" nil "$Bl(B") ("dy" nil "$B2q(B") ("fy" nil "$B>e(B") ("gy" nil "$BDL(B") ("qy" nil "$B?)(B") ("wy" nil "$B;}(B") ("ey" nil "$B;R(B") ("ry" nil "$B=P(B") ("ty" nil "$B9T(B") ("zu" nil "$B9%(B") ("xu" nil "$B4[(B") ("cu" nil "$BD4(B") ("vu" nil "$BCN(B") ("bu" nil "$B@Z(B") ("nu" nil "$BD#(B") ("mu" nil "$BG7(B") (",u" nil "$BN9(B") ("au" nil "$BL\(B") ("hu" nil "$B@=(B") ("ju" nil "$B(B") ("g/" nil "$B5,(B") ("h/" nil "$B=`(B") ("j/" nil "$BFq(B") ("k/" nil "$B:[(B") ("q/" nil "$BE8(B") ("w/" nil "$BF@(B") ("e/" nil "$B;`(B") ("r/" nil "$BM"(B") ("t/" nil "$BL#(B") ("y/" nil "$BCz(B") ("u/" nil "$BA1(B") ("i/" nil "$B:`(B") ("./" nil "$B67(B") ("//" nil "$B7J(B") ("l/" nil "$BE,(B") (";/" nil "$B?^(B") ("o/" nil "$B:9(B") ("p/" nil "$B@v(B") ("zl" nil "$BG$(B") ("xl" nil "$B0z(B") ("cl" nil "$BE^(B") ("vl" nil "$Bu(B") ("a;" nil "$B2N(B") ("s;" nil "$BL@(B") ("d;" nil "$BD9(B") ("f;" nil "$BJ}(B") ("g;" nil "$B@/(B") ("h;" nil "$B0L(B") ("j;" nil "$B:_(B") ("k;" nil "$B<0(B") ("q;" nil "$B6u(B") ("w;" nil "$B@~(B") ("e;" nil "$B9g(B") ("r;" nil "$B2H(B") ("t;" nil "$B=8(B") ("y;" nil "$B2&(B") ("u;" nil "$B1R(B") ("i;" nil "$B7`(B") (".;" nil "$BB((B") ("/;" nil "$BJU(B") ("l;" nil "$B:Q(B") (";;" nil "$B5f(B") ("o;" nil "$B?F(B") ("p;" nil "$BGz(B") ("zo" nil "$BFI(B") ("xo" nil "$B5a(B") ("co" nil "$B1i(B") ("vo" nil "$B=Q(B") ("bo" nil "$B?H(B") ("no" nil "$B;z(B") ("mo" nil "$BM\(B") (",o" nil "$B7b(B") ("ao" nil "$B4|(B") ("so" nil "$BH/(B") ("do" nil "$B?M(B") ("fo" nil "$B0w(B") ("go" nil "$B@8(B") ("ho" nil "$BM3(B") ("jo" nil "$B6I(B") ("ko" nil "$BBN(B") ("qo" nil "$B2r(B") ("wo" nil "$B5$(B") ("eo" nil "$Bo(B") ("po" nil "$BNN(B") ("zp" nil "$BC#(B") ("xp" nil "$B8B(B") ("cp" nil "$B1~(B") ("vp" nil "$BGc(B") ("bp" nil "$B46(B") ("np" nil "$B3U(B") ("mp" nil "$BC4(B") (",p" nil "$B>-(B") ("ap" nil "$BB3(B") ("sp" nil "$BAm(B") ("dp" nil "$BDj(B") ("fp" nil "$B=w(B") ("gp" nil "$B@.(B") ("hp" nil "$B5i(B") ("jp" nil "$B2](B") ("kp" nil "$B0i(B") ("qp" nil "$BG[(B") ("wp" nil "$BM=(B") ("ep" nil "$B5D(B") ("rp" nil "$BFC(B") ("tp" nil "$BK!(B") ("yp" nil "$B2L(B") ("up" nil "$BEy(B") ("ip" nil "$B(B") ("hnz" nil "$B:7(B") ("jnz" nil "$BMZ(B") ("knz" nil "$B3/(B") ("ynz" nil "$B5x(B") ("unz" nil "$B:@(B") ("inz" nil "$BKV(B") (".nz" nil "$BEF(B") ("/nz" nil "$B3p(B") ("lnz" nil "$B84(B") (";nz" nil "$BA'(B") ("onz" nil "$B;9(B") ("pnz" nil "$BBO(B") ("nmz" nil "$BDY(B") ("mmz" nil "$B8'(B") (",mz" nil "$B<5(B") ("hmz" nil "$BMV(B") ("jmz" nil "$B:s(B") ("kmz" nil "$B0+(B") ("ymz" nil "$B9[(B") ("umz" nil "$B<6(B") ("imz" nil "$B1e(B") (".mz" nil "$BD5(B") ("/mz" nil "$B@H(B") ("lmz" nil "$BFf(B") (";mz" nil "$B:|(B") ("omz" nil "$BI*(B") ("pmz" nil "$BKs(B") ("nnx" nil "$BC((B") ("mnx" nil "$BB|(B") (",nx" nil "$B0q(B") ("hnx" nil "$B8{(B") ("jnx" nil "$BHZ(B") ("knx" nil "$BJ0(B") ("ynx" nil "$B2e(B") ("unx" nil "$BNg(B") ("inx" nil "$B7T(B") (".nx" nil "$BCP(B") ("/nx" nil "$B3k(B") ("lnx" nil "$BME(B") (";nx" nil "$B7d(B") ("onx" nil "$B7X(B") ("pnx" nil "$B4;(B") ("nmx" nil "$BC7(B") ("mmx" nil "$BCI(B") (",mx" nil "$B?A(B") ("hmx" nil "$B9i(B") ("jmx" nil "$B:H(B") ("kmx" nil "$B26(B") ("ymx" nil "$BNb(B") ("umx" nil "$BK1(B") ("imx" nil "$B0k(B") (".mx" nil "$B2W(B") ("/mx" nil "$BL'(B") ("lmx" nil "$B(B") ("nmd" nil "$B:>(B") ("mmd" nil "$BKQ(B") (",md" nil "$B?x(B") ("hmd" nil "$B4T(B") ("jmd" nil "$BHa(B") ("kmd" nil "$B4m(B") ("ymd" nil "$B>b(B") ("umd" nil "$BK;(B") ("imd" nil "$B7K(B") (".md" nil "$B=v(B") ("/md" nil "$B=Y(B") ("lmd" nil "$BLv(B") (";md" nil "$B=C(B") ("omd" nil "$BKa(B") ("pmd" nil "$B2^(B") ("nnf" nil "$B0<(B") ("mnf" nil "$BC*(B") (",nf" nil "$B?#(B") ("hnf" nil "$BL2(B") ("jnf" nil "$B55(B") ("knf" nil "$B)(B") ("jng" nil "$B3((B") ("kng" nil "$BM&(B") ("yng" nil "$B4:(B") ("ung" nil "$BC{(B") ("ing" nil "$BG&(B") (".ng" nil "$B=T(B") ("/ng" nil "$BK+(B") ("lng" nil "$BD`(B") (";ng" nil "$B4$(B") ("ong" nil "$BBz(B") ("png" nil "$BK6(B") ("nmg" nil "$BA@(B") ("mmg" nil "$BBW(B") (",mg" nil "$B8k(B") ("hmg" nil "$BG:(B") ("jmg" nil "$BF8(B") ("kmg" nil "$BBX(B") ("ymg" nil "$BJm(B") ("umg" nil "$B5=(B") ("img" nil "$B4~(B") (".mg" nil "$BL{(B") ("/mg" nil "$B8H(B") ("lmg" nil "$BFJ(B") (";mg" nil "$B?;(B") ("omg" nil "$BIe(B") ("pmg" nil "$BA8(B") ("nnq" nil "$BL^(B") ("mnq" nil "$BIl(B") (",nq" nil "$BAo(B") ("hnq" nil "$B6T(B") ("jnq" nil "$B21(B") ("knq" nil "$B2E(B") ("ynq" nil "$BOD(B") ("unq" nil "$B1=(B") ("inq" nil "$B<4(B") (".nq" nil "$BK#(B") ("/nq" nil "$B(B") ("onq" nil "$B9"(B") ("pnq" nil "$B0;(B") ("nmq" nil "$B>*(B") ("mmq" nil "$BDv(B") (",mq" nil "$B<`(B") ("hmq" nil "$B(B") ("ynw" nil "$B1Z(B") ("unw" nil "$B=[(B") ("inw" nil "$B69(B") (".nw" nil "$BB](B") ("/nw" nil "$B>+(B") ("lnw" nil "$B6~(B") (";nw" nil "$BGe(B") ("onw" nil "$B4r(B") ("pnw" nil "$B7V(B") ("nmw" nil "$BD_(B") ("mmw" nil "$BIQ(B") (",mw" nil "$B2c(B") ("hmw" nil "$B1j(B") ("jmw" nil "$B=n(B") ("kmw" nil "$B=x(B") ("ymw" nil "$BMg(B") ("umw" nil "$B9#(B") ("imw" nil "$BAx(B") (".mw" nil "$B0t(B") ("/mw" nil "$BE.(B") ("lmw" nil "$BK9(B") (";mw" nil "$B<_(B") ("omw" nil "$BER(B") ("pmw" nil "$BJ~(B") ("nne" nil "$B5|(B") ("mne" nil "$BA)(B") (",ne" nil "$B2K(B") ("hne" nil "$B=D(B") ("jne" nil "$BA{(B") ("kne" nil "$B<-(B") ("yne" nil "$B6y(B") ("une" nil "$B1}(B") ("ine" nil "$B=F(B") (".ne" nil "$B3i(B") ("/ne" nil "$BBv(B") ("lne" nil "$BJI(B") (";ne" nil "$B?l(B") ("one" nil "$BK"(B") ("pne" nil "$B:x(B") ("nme" nil "$BAg(B") ("mme" nil "$BJJ(B") (",me" nil "$BJ"(B") ("hme" nil "$BC8(B") ("jme" nil "$B8X(B") ("kme" nil "$BHo(B") ("yme" nil "$B4}(B") ("ume" nil "$B7w(B") ("ime" nil "$B>W(B") (".me" nil "$B1>(B") ("/me" nil "$B5&(B") ("lme" nil "$B4S(B") (";me" nil "$BNt(B") ("ome" nil "$B4t(B") ("pme" nil "$BAs(B") ("nnr" nil "$BIK(B") ("mnr" nil "$B6i(B") (",nr" nil "$B63(B") ("hnr" nil "$BNC(B") ("jnr" nil "$BH)(B") ("knr" nil "$BKR(B") ("ynr" nil "$BHb(B") ("unr" nil "$BF-(B") ("inr" nil "$BK$(B") (".nr" nil "$BFW(B") ("/nr" nil "$BOH(B") ("lnr" nil "$B?f(B") (";nr" nil "$B:6(B") ("onr" nil "$B7"(B") ("pnr" nil "$BHA(B") ("nmr" nil "$B;=(B") ("mmr" nil "$B3C(B") (",mr" nil "$B9U(B") ("hmr" nil "$B2B(B") ("jmr" nil "$B>X(B") ("kmr" nil "$B=L(B") ("ymr" nil "$B4A(B") ("umr" nil "$B88(B") ("imr" nil "$BKe(B") (".mr" nil "$B2U(B") ("/mr" nil "$B?P(B") ("lmr" nil "$BMr(B") (";mr" nil "$BJ.(B") ("omr" nil "$B1o(B") ("pmr" nil "$BF{(B") ("nnt" nil "$B0Z(B") ("mnt" nil "$Ba(B") ("xg," nil "$BDf(B") ("cg," nil "$BNo(B") ("vg," nil "$B7}(B") ("bg," nil "$B?c(B") ("ag," nil "$BC%(B") ("sg," nil "$BO*(B") ("dg," nil "$BF}(B") ("fg," nil "$B4G(B") ("gg," nil "$B9x(B") ("qg," nil "$BI](B") ("wg," nil "$BKd(B") ("eg," nil "$B9K(B") ("rg," nil "$BB#(B") ("tg," nil "$B3M(B") ("zgh" nil "$B?}(B") ("xgh" nil "$BDF(B") ("cgh" nil "$BA,(B") ("vgh" nil "$BD"(B") ("bgh" nil "$B6M(B") ("agh" nil "$BE](B") ("sgh" nil "$B>P(B") ("dgh" nil "$B:'(B") ("fgh" nil "$B@d(B") ("ggh" nil "$B>c(B") ("qgh" nil "$B>0(B") ("wgh" nil "$B7{(B") ("egh" nil "$BFy(B") ("rgh" nil "$B0a(B") ("tgh" nil "$BHK(B") ("zgj" nil "$B4*(B") ("xgj" nil "$BMb(B") ("cgj" nil "$BN$(B") ("vgj" nil "$BA](B") ("bgj" nil "$BM#(B") ("agj" nil "$B0](B") ("sgj" nil "$BHW(B") ("dgj" nil "$B44(B") ("fgj" nil "$BD(B") ("vgk" nil "$B4J(B") ("bgk" nil "$BE~(B") ("agk" nil "$B3H(B") ("sgk" nil "$B9_(B") ("dgk" nil "$B6!(B") ("fgk" nil "$B05(B") ("ggk" nil "$BA!(B") ("qgk" nil "$B2w(B") ("wgk" nil "$BKc(B") ("egk" nil "$B?y(B") ("rgk" nil "$BJa(B") ("tgk" nil "$BKG(B") ("zgy" nil "$BG](B") ("xgy" nil "$B4.(B") ("cgy" nil "$B9@(B") ("vgy" nil "$B1U(B") ("bgy" nil "$BE[(B") ("agy" nil "$BG<(B") ("sgy" nil "$B6?(B") ("dgy" nil "$B1|(B") ("fgy" nil "$BKt(B") ("ggy" nil "$BI.(B") ("qgy" nil "$BE/(B") ("wgy" nil "$BCF(B") ("egy" nil "$BC:(B") ("rgy" nil "$B0p(B") ("tgy" nil "$B0Y(B") ("zgu" nil "$B9W(B") ("xgu" nil "$B4N(B") ("cgu" nil "$B=S(B") ("vgu" nil "$B7@(B") ("bgu" nil "$B28(B") ("agu" nil "$BDK(B") ("sgu" nil "$B=g(B") ("dgu" nil "$B<~(B") ("fgu" nil "$B9S(B") ("ggu" nil "$B>{(B") ("qgu" nil "$B6S(B") ("wgu" nil "$B:a(B") ("egu" nil "$B@S(B") ("rgu" nil "$BCk(B") ("tgu" nil "$B7'(B") ("zgi" nil "$B>z(B") ("xgi" nil "$BCr(B") ("cgi" nil "$B1@(B") ("vgi" nil "$BLi(B") ("bgi" nil "$BDq(B") ("agi" nil "$B5m(B") ("sgi" nil "$B?%(B") ("dgi" nil "$B2F(B") ("fgi" nil "$B1g(B") ("ggi" nil "$BLA(B") ("qgi" nil "$B3w(B") ("wgi" nil "$B8u(B") ("egi" nil "$B@9(B") ("rgi" nil "$B7c(B") ("tgi" nil "$BHc(B") ("zg." nil "$B;"(B") ("xg." nil "$B6|(B") ("cg." nil "$BLW(B") ("vg." nil "$BIn(B") ("bg." nil "$BKZ(B") ("ag." nil "$B<"(B") ("sg." nil "$BCE(B") ("dg." nil "$BK4(B") ("fg." nil "$BE((B") ("gg." nil "$BK^(B") ("qg." nil "$B1B(B") ("wg." nil "$B2:(B") ("eg." nil "$B0_(B") ("rg." nil "$B@;(B") ("tg." nil "$BKM(B") ("zg/" nil "$BHu(B") ("xg/" nil "$BAd(B") ("cg/" nil "$B1z(B") ("vg/" nil "$BM4(B") ("bg/" nil "$BNU(B") ("ag/" nil "$B6r(B") ("sg/" nil "$BNQ(B") ("dg/" nil "$B95(B") ("fg/" nil "$B1t(B") ("gg/" nil "$BD((B") ("qg/" nil "$BH;(B") ("wg/" nil "$B;1(B") ("eg/" nil "$B14(B") ("rg/" nil "$BH3(B") ("tg/" nil "$B2i(B") ("zgl" nil "$B<'(B") ("xgl" nil "$B>$(B") ("cgl" nil "$BE0(B") ("vgl" nil "$B1x(B") ("bgl" nil "$BAS(B") ("agl" nil "$B6X(B") ("sgl" nil "$BDl(B") ("dgl" nil "$B@a(B") ("fgl" nil "$B>F(B") ("ggl" nil "$B0\(B") ("qgl" nil "$B9|(B") ("wgl" nil "$BAq(B") ("egl" nil "$BBS(B") ("rgl" nil "$BA\(B") ("tgl" nil "$B5U(B") ("zg;" nil "$BGf(B") ("xg;" nil "$B>S(B") ("cg;" nil "$B4O(B") ("vg;" nil "$B35(B") ("bg;" nil "$BAB(B") ("ag;" nil "$BCn(B") ("sg;" nil "$B:Z(B") ("dg;" nil "$B0[(B") ("fg;" nil "$BEX(B") ("gg;" nil "$B:$(B") ("qg;" nil "$B7$(B") ("wg;" nil "$B4q(B") ("eg;" nil "$B9H(B") ("rg;" nil "$BAk(B") ("tg;" nil "$B3](B") ("zgo" nil "$B>g(B") ("xgo" nil "$BIS(B") ("cgo" nil "$B7<(B") ("vgo" nil "$B91(B") ("bgo" nil "$B?T(B") ("ago" nil "$BLo(B") ("sgo" nil "$B>5(B") ("dgo" nil "$B0h(B") ("fgo" nil "$B7/(B") ("ggo" nil "$BKk(B") ("qgo" nil "$BM6(B") ("wgo" nil "$B:^(B") ("ego" nil "$BJ[(B") ("rgo" nil "$B;u(B") ("tgo" nil "$B>M(B") ("zgp" nil "$B>[(B") ("xgp" nil "$BG+(B") ("cgp" nil "$BEM(B") ("vgp" nil "$BG^(B") ("bgp" nil "$B1S(B") ("agp" nil "$BE:(B") ("sgp" nil "$B5Q(B") ("dgp" nil "$BH((B") ("fgp" nil "$B?L(B") ("ggp" nil "$BEt(B") ("qgp" nil "$B>"(B") ("wgp" nil "$BJ%(B") ("egp" nil "$B=!(B") ("rgp" nil "$B54(B") ("tgp" nil "$B47(B") ("nhz" nil "$B75(B") ("mhz" nil "$BMe(B") (",hz" nil "$B3L(B") ("hhz" nil "$BB[(B") ("jhz" nil "$BB:(B") ("khz" nil "$BNm(B") ("yhz" nil "$B?W(B") ("uhz" nil "$B@7(B") ("ihz" nil "$BM^(B") (".hz" nil "$BA((B") ("/hz" nil "$BBi(B") ("lhz" nil "$BIk(B") (";hz" nil "$BA2(B") ("ohz" nil "$BD$(B") ("phz" nil "$B2}(B") ("nhx" nil "$B4a(B") ("mhx" nil "$BH2(B") (",hx" nil "$B7v(B") ("hhx" nil "$B3a(B") ("jhx" nil "$B;j(B") ("khx" nil "$BCh(B") ("yhx" nil "$B0N(B") ("uhx" nil "$BBs(B") ("ihx" nil "$BDb(B") (".hx" nil "$B?D(B") ("/hx" nil "$BD8(B") ("lhx" nil "$BNH(B") (";hx" nil "$B?](B") ("ohx" nil "$B36(B") ("phx" nil "$BJ>(B") ("nhc" nil "$B9J(B") ("mhc" nil "$BN!(B") (",hc" nil "$B2u(B") ("hhc" nil "$B;i(B") ("jhc" nil "$B57(B") ("khc" nil "$B5J(B") ("yhc" nil "$B3@(B") ("uhc" nil "$BGS(B") ("ihc" nil "$BF((B") (".hc" nil "$B4h(B") ("/hc" nil "$B3n(B") ("lhc" nil "$Bf(B") ("ohb" nil "$BAN(B") ("phb" nil "$B4y(B") ("nha" nil "$B6v(B") ("mha" nil "$B?O(B") (",ha" nil "$BI^(B") ("hha" nil "$B7s(B") ("jha" nil "$B0x(B") ("kha" nil "$B6Z(B") ("yha" nil "$B=_(B") ("uha" nil "$B0$(B") ("iha" nil "$B:~(B") (".ha" nil "$BMy(B") ("/ha" nil "$B0?(B") ("lha" nil "$BOQ(B") (";ha" nil "$BMB(B") ("oha" nil "$BK@(B") ("pha" nil "$B?((B") ("nhs" nil "$BAK(B") ("mhs" nil "$B8b(B") (",hs" nil "$B0O(B") ("hhs" nil "$BHS(B") ("jhs" nil "$B>](B") ("khs" nil "$B7O(B") ("yhs" nil "$BN8(B") ("uhs" nil "$BMp(B") ("ihs" nil "$BK<(B") (".hs" nil "$B9r(B") ("/hs" nil "$BKE(B") ("lhs" nil "$B=}(B") (";hs" nil "$BLx(B") ("ohs" nil "$BEI(B") ("phs" nil "$BA<(B") ("nhd" nil "$B1K(B") ("mhd" nil "$BJq(B") (",hd" nil "$BC<(B") ("hhd" nil "$B@U(B") ("jhd" nil "$B9/(B") ("khd" nil "$B?K(B") ("yhd" nil "$B5*(B") ("uhd" nil "$B2l(B") ("ihd" nil "$BFM(B") (".hd" nil "$BHn(B") ("/hd" nil "$B8J(B") ("lhd" nil "$BDy(B") (";hd" nil "$B:D(B") ("ohd" nil "$B8_(B") ("phd" nil "$BCx(B") ("nhf" nil "$B@R(B") ("mhf" nil "$BB)(B") (",hf" nil "$B5((B") ("hhf" nil "$B0M(B") ("jhf" nil "$BKB(B") ("khf" nil "$BEL(B") ("yhf" nil "$BNX(B") ("uhf" nil "$B=c(B") ("ihf" nil "$BE|(B") (".hf" nil "$B:X(B") ("/hf" nil "$BL&(B") ("lhf" nil "$B49(B") (";hf" nil "$B5%(B") ("ohf" nil "$BN5(B") ("phf" nil "$B8((B") ("nhg" nil "$BKP(B") ("mhg" nil "$BF'(B") (",hg" nil "$B2.(B") ("hhg" nil "$BEp(B") ("jhg" nil "$B<1(B") ("khg" nil "$B4n(B") ("yhg" nil "$BO7(B") ("uhg" nil "$BF`(B") ("ihg" nil "$B43(B") (".hg" nil "$BDD(B") ("/hg" nil "$B9*(B") ("lhg" nil "$BHH(B") (";hg" nil "$B1v(B") ("ohg" nil "$BL4(B") ("phg" nil "$BJ#(B") ("nhq" nil "$B:5(B") ("mhq" nil "$B>8(B") (",hq" nil "$BO$(B") ("hhq" nil "$B?2(B") ("jhq" nil "$B07(B") ("khq" nil "$B9k(B") ("yhq" nil "$BH!(B") ("uhq" nil "$B9'(B") ("ihq" nil "$B?X(B") (".hq" nil "$BCZ(B") ("/hq" nil "$B3l(B") ("lhq" nil "$B4c(B") (";hq" nil "$BMR(B") ("ohq" nil "$B4K(B") ("phq" nil "$BBE(B") ("nhw" nil "$BMJ(B") ("mhw" nil "$B(B") (".hw" nil "$BN:(B") ("/hw" nil "$BDi(B") ("lhw" nil "$B:R(B") (";hw" nil "$BAr(B") ("ohw" nil "$BIu(B") ("phw" nil "$BB%(B") ("nhe" nil "$B;#(B") ("mhe" nil "$B>;(B") (",he" nil "$BDa(B") ("hhe" nil "$B?\(B") ("jhe" nil "$BI[(B") ("khe" nil "$BIq(B") ("yhe" nil "$B90(B") ("uhe" nil "$B1d(B") ("ihe" nil "$BI'(B") (".he" nil "$BDA(B") ("/he" nil "$B@{(B") ("lhe" nil "$BGK(B") (";he" nil "$BCi(B") ("ohe" nil "$B7(B") ("jht" nil "$B7l(B") ("kht" nil "$B1s(B") ("yht" nil "$BK`(B") ("uht" nil "$B5l(B") ("iht" nil "$B3K(B") (".ht" nil "$B>x(B") ("/ht" nil "$BFF(B") ("lht" nil "$BF&(B") (";ht" nil "$BAC(B") ("oht" nil "$BN;(B") ("pht" nil "$BM5(B") ("zvn" nil "$BAL(B") ("xvn" nil "$BJw(B") ("cvn" nil "$B:g(B") ("vvn" nil "$BIo(B") ("bvn" nil "$BM](B") ("avn" nil "$BI?(B") ("svn" nil "$BO3(B") ("dvn" nil "$B@](B") ("fvn" nil "$BHQ(B") ("gvn" nil "$B23(B") ("qvn" nil "$BO>(B") ("wvn" nil "$BJK(B") ("evn" nil "$BA-(B") ("rvn" nil "$B8Q(B") ("tvn" nil "$BD1(B") ("zbn" nil "$B1a(B") ("xbn" nil "$B>V(B") ("cbn" nil "$B1^(B") ("vbn" nil "$B:S(B") ("bbn" nil "$BG?(B") ("abn" nil "$B:t(B") ("sbn" nil "$BFz(B") ("dbn" nil "$B0X(B") ("fbn" nil "$B<\(B") ("gbn" nil "$BIg(B") ("qbn" nil "$B<^(B") ("wbn" nil "$BC!(B") ("ebn" nil "$BKK(B") ("rbn" nil "$BD*(B") ("tbn" nil "$BL=(B") ("zvm" nil "$BB{(B") ("xvm" nil "$B4g(B") ("cvm" nil "$BLQ(B") ("vvm" nil "$BGN(B") ("bvm" nil "$B:k(B") ("avm" nil "$B2g(B") ("svm" nil "$B4Y(B") ("dvm" nil "$B08(B") ("fvm" nil "$BE3(B") ("gvm" nil "$BN_(B") ("qvm" nil "$B1m(B") ("wvm" nil "$B:q(B") ("evm" nil "$BJn(B") ("rvm" nil "$BMt(B") ("tvm" nil "$B6,(B") ("zbm" nil "$BEK(B") ("xbm" nil "$BK)(B") ("cbm" nil "$BNK(B") ("vbm" nil "$BA?(B") ("bbm" nil "$B2@(B") ("abm" nil "$BLm(B") ("sbm" nil "$B6U(B") ("dbm" nil "$B56(B") ("fbm" nil "$BNw(B") ("gbm" nil "$B9B(B") ("qbm" nil "$BI5(B") ("wbm" nil "$BFx(B") ("ebm" nil "$BJ:(B") ("rbm" nil "$B6)(B") ("tbm" nil "$B@y(B") ("zv," nil "$BLe(B") ("xv," nil "$BA.(B") ("cv," nil "$B<[(B") ("vv," nil "$B3!(B") ("bv," nil "$BL*(B") ("av," nil "$BFu(B") ("sv," nil "$B2M(B") ("dv," nil "$B8[(B") ("fv," nil "$B5g(B") ("gv," nil "$B>=(B") ("qv," nil "$B5d(B") ("wv," nil "$BG((B") ("ev," nil "$B:2(B") ("rv," nil "$B>w(B") ("tv," nil "$B0y(B") ("zb," nil "$B=6(B") ("xb," nil "$BA9(B") ("cb," nil "$BA:(B") ("vb," nil "$BO4(B") ("bb," nil "$BL`(B") ("ab," nil "$B>?(B") ("sb," nil "$BHR(B") ("db," nil "$B>#(B") ("fb," nil "$BEa(B") ("gb," nil "$B@X(B") ("qb," nil "$B0P(B") ("wb," nil "$B0|(B") ("eb," nil "$B2v(B") ("rb," nil "$B@e(B") ("tb," nil "$BGp(B") ("zvh" nil "$B:-(B") ("xvh" nil "$B1\(B") ("cvh" nil "$B3x(B") ("vvh" nil "$B6E(B") ("bvh" nil "$B3%(B") ("avh" nil "$B3j(B") ("svh" nil "$B>\(B") ("dvh" nil "$BCs(B") ("fvh" nil "$BE&(B") ("gvh" nil "$BG;(B") ("qvh" nil "$BA6(B") ("wvh" nil "$B;w(B") ("evh" nil "$BBY(B") ("rvh" nil "$BHB(B") ("tvh" nil "$BLB(B") ("zbh" nil "$B6z(B") ("xbh" nil "$B4(B") ("dbj" nil "$B4x(B") ("fbj" nil "$B79(B") ("gbj" nil "$BF<(B") ("qbj" nil "$B0r(B") ("wbj" nil "$B>1(B") ("ebj" nil "$BHU(B") ("rbj" nil "$B@x(B") ("tbj" nil "$BK3(B") ("zvk" nil "$B<.(B") ("xvk" nil "$B7B(B") ("cvk" nil "$B>N(B") ("vvk" nil "$BA~(B") ("bvk" nil "$B6(B") ("avy" nil "$B0S(B") ("svy" nil "$BFp(B") ("dvy" nil "$BC$(B") ("fvy" nil "$BAD(B") ("gvy" nil "$BD&(B") ("qvy" nil "$B;7(B") ("wvy" nil "$B:"(B") ("evy" nil "$BJS(B") ("rvy" nil "$B1n(B") ("tvy" nil "$B@O(B") ("zby" nil "$B8?(B") ("xby" nil "$B3A(B") ("cby" nil "$BF_(B") ("vby" nil "$B>_(B") ("bby" nil "$B(B") ("dvu" nil "$BN4(B") ("fvu" nil "$B1h(B") ("gvu" nil "$BKb(B") ("qvu" nil "$B?V(B") ("wvu" nil "$BI:(B") ("evu" nil "$BC\(B") ("rvu" nil "$BKW(B") ("tvu" nil "$BNv(B") ("zbu" nil "$BNF(B") ("xbu" nil "$BEc(B") ("cbu" nil "$BF=(B") ("vbu" nil "$B9d(B") ("bbu" nil "$BHm(B") ("abu" nil "$BG!(B") ("sbu" nil "$B9L(B") ("dbu" nil "$BNP(B") ("fbu" nil "$BOS(B") ("gbu" nil "$BOF(B") ("qbu" nil "$B0*(B") ("wbu" nil "$B4w(B") ("ebu" nil "$BBZ(B") ("rbu" nil "$BNu(B") ("tbu" nil "$BIP(B") ("zvi" nil "$BKj(B") ("xvi" nil "$B8d(B") ("cvi" nil "$BGl(B") ("vvi" nil "$BJW(B") ("bvi" nil "$B5}(B") ("avi" nil "$BB5(B") ("svi" nil "$B>Q(B") ("dvi" nil "$BMj(B") ("fvi" nil "$BJv(B") ("gvi" nil "$B=K(B") ("qvi" nil "$B7y(B") ("wvi" nil "$BHI(B") ("evi" nil "$BKO(B") ("rvi" nil "$BHd(B") ("tvi" nil "$BGu(B") ("zbi" nil "$BKj(B") ("xbi" nil "$B1M(B") ("cbi" nil "$BE=(B") ("vbi" nil "$BGE(B") ("bbi" nil "$B5#(B") ("abi" nil "$BB5(B") ("sbi" nil "$B9Z(B") ("dbi" nil "$BGw(B") ("fbi" nil "$BL<(B") ("gbi" nil "$B3-(B") ("qbi" nil "$BEi(B") ("wbi" nil "$BE)(B") ("ebi" nil "$B6](B") ("rbi" nil "$BIz(B") ("tbi" nil "$BH&(B") ("zv." nil "$BIs(B") ("xv." nil "$BB\(B") ("cv." nil "$B>E(B") ("vv." nil "$B6*(B") ("bv." nil "$BDJ(B") ("av." nil "$BMl(B") ("sv." nil "$BFk(B") ("dv." nil "$B9!(B") ("fv." nil "$B9?(B") ("gv." nil "$B:K(B") ("qv." nil "$B9m(B") ("wv." nil "$B:*(B") ("ev." nil "$B0T(B") ("rv." nil "$B:/(B") ("tv." nil "$BNJ(B") ("zb." nil "$B@C(B") ("xb." nil "$B4#(B") ("cb." nil "$BMd(B") ("vb." nil "$BDP(B") ("bb." nil "$BC?(B") ("ab." nil "$B1C(B") ("sb." nil "$BBC(B") ("db." nil "$B>L(B") ("fb." nil "$B;s(B") ("gb." nil "$B?[(B") ("qb." nil "$BC>(B") ("wb." nil "$B10(B") ("eb." nil "$B7=(B") ("rb." nil "$BN<(B") ("tb." nil "$BGW(B") ("zv/" nil "$B8S(B") ("xv/" nil "$B?Q(B") ("cv/" nil "$B2k(B") ("vv/" nil "$BA=(B") ("bv/" nil "$BDu(B") ("av/" nil "$B5@(B") ("sv/" nil "$BOK(B") ("dv/" nil "$B6o(B") ("fv/" nil "$B22(B") ("gv/" nil "$BL~(B") ("qv/" nil "$B7q(B") ("wv/" nil "$BFg(B") ("ev/" nil "$B0H(B") ("rv/" nil "$BFd(B") ("tv/" nil "$B4\(B") ("zb/" nil "$BJ\(B") ("xb/" nil "$B6}(B") ("cb/" nil "$BGb(B") ("vb/" nil "$B4H(B") ("bb/" nil "$B6B(B") ("ab/" nil "$B3_(B") ("sb/" nil "$B1b(B") ("db/" nil "$B1,(B") ("fb/" nil "$BLw(B") ("gb/" nil "$B2`(B") ("qb/" nil "$BO.(B") ("wb/" nil "$BFh(B") ("eb/" nil "$BAW(B") ("rb/" nil "$BD|(B") ("tb/" nil "$B4f(B") ("zvl" nil "$B3.(B") ("xvl" nil "$B4-(B") ("cvl" nil "$BMO(B") ("vvl" nil "$B00(B") ("bvl" nil "$BNl(B") ("avl" nil "$B=&(B") ("svl" nil "$BA&(B") ("dvl" nil "$B7;(B") ("fvl" nil "$B1"(B") ("gvl" nil "$BGU(B") ("qvl" nil "$B0I(B") ("wvl" nil "$B=A(B") ("evl" nil "$B2|(B") ("rvl" nil "$B>,(B") ("tvl" nil "$BMk(B") ("zbl" nil "$BGJ(B") ("xbl" nil "$BKr(B") ("cbl" nil "$B?g(B") ("vbl" nil "$B?+(B") ("bbl" nil "$BK{(B") ("abl" nil "$B?j(B") ("sbl" nil "$B>t(B") ("dbl" nil "$B9o(B") ("fbl" nil "$B8m(B") ("gbl" nil "$B6<(B") ("qbl" nil "$B0}(B") ("wbl" nil "$B8U(B") ("ebl" nil "$BH1(B") ("rbl" nil "$B6n(B") ("tbl" nil "$B@+(B") ("zv;" nil "$B4C(B") ("xv;" nil "$BJp(B") ("cv;" nil "$Bj(B") ("dbo" nil "$BK'(B") ("fbo" nil "$BCC(B") ("gbo" nil "$BBU(B") ("qbo" nil "$BKS(B") ("wbo" nil "$B3f(B") ("ebo" nil "$BOE(B") ("rbo" nil "$B7_(B") ("tbo" nil "$B2I(B") ("zvp" nil "$BLX(B") ("xvp" nil "$BH$(B") ("cvp" nil "$Bm(B") ("tvp" nil "$B1V(B") ("zbp" nil "$BDG(B") ("xbp" nil "$BAM(B") ("cbp" nil "$B@r(B") ("vbp" nil "$BIZ(B") ("bbp" nil "$B8C(B") ("abp" nil "$B=m(B") ("sbp" nil "$B92(B") ("dbp" nil "$BA>(B") ("fbp" nil "$BF6(B") ("gbp" nil "$B2'(B") ("qbp" nil "$B3r(B") ("wbp" nil "$B1y(B") ("ebp" nil "$BDR(B") ("rbp" nil "$B@((B") ("tbp" nil "$B4b(B") ("ztn" nil "$B3u(B") ("xtn" nil "$B5B(B") ("ctn" nil "$BI3(B") ("vtn" nil "$BD?(B") ("btn" nil "$BI`(B") ("atn" nil "$B?0(B") ("stn" nil "$B>n(B") ("dtn" nil "$BLV(B") ("ftn" nil "$B8W(B") ("gtn" nil "$B@K(B") ("qtn" nil "$BK[(B") ("wtn" nil "$BCT(B") ("etn" nil "$B0R(B") ("rtn" nil "$BBQ(B") ("ttn" nil "$B;x(B") ("ztm" nil "$B6f(B") ("xtm" nil "$BA"(B") ("ctm" nil "$B;$(B") ("vtm" nil "$B64(B") ("btm" nil "$BDX(B") ("atm" nil "$BGy(B") ("stm" nil "$B:?(B") ("dtm" nil "$BH*(B") ("ftm" nil "$BO2(B") ("gtm" nil "$BL[(B") ("qtm" nil "$B?1(B") ("wtm" nil "$BB7(B") ("etm" nil "$B45(B") ("rtm" nil "$B6g(B") ("ttm" nil "$BE+(B") ("zt," nil "$B@m(B") ("xt," nil "$BD^(B") ("ct," nil "$BMo(B") ("vt," nil "$B97(B") ("bt," nil "$BGV(B") ("at," nil "$BA5(B") ("st," nil "$B9Y(B") ("dt," nil "$BHi(B") ("ft," nil "$BLD(B") ("gt," nil "$BHy(B") ("qt," nil "$BC@(B") ("wt," nil "$BIO(B") ("et," nil "$BN,(B") ("rt," nil "$B9n(B") ("tt," nil "$B6`(B") ("zth" nil "$BD<(B") ("xth" nil "$B9s(B") ("cth" nil "$BJD(B") ("vth" nil "$BR(B") ("eth" nil "$BAv(B") ("rth" nil "$B9a(B") ("tth" nil "$BAX(B") ("ztj" nil "$BAz(B") ("xtj" nil "$B1#(B") ("ctj" nil "$B4z(B") ("vtj" nil "$BGq(B") ("btj" nil "$B;L(B") ("atj" nil "$B@^(B") ("stj" nil "$B;o(B") ("dtj" nil "$B4_(B") ("ftj" nil "$B>y(B") ("gtj" nil "$B5{(B") ("qtj" nil "$B5_(B") ("wtj" nil "$BNW(B") ("etj" nil "$B:J(B") ("rtj" nil "$B=h(B") ("ttj" nil "$BN1(B") ("ztk" nil "$BAe(B") ("xtk" nil "$B8-(B") ("ctk" nil "$BGQ(B") ("vtk" nil "$B4E(B") ("btk" nil "$BH(B") ("stl" nil "$BLC(B") ("dtl" nil "$B5y(B") ("ftl" nil "$B:y(B") ("gtl" nil "$B@k(B") ("qtl" nil "$B5M(B") ("wtl" nil "$BAP(B") ("etl" nil "$BB0(B") ("rtl" nil "$B93(B") ("ttl" nil "$BH<(B") ("zt;" nil "$B3s(B") ("xt;" nil "$B@B(B") ("ct;" nil "$BJ$(B") ("vt;" nil "$B?S(B") ("bt;" nil "$BC3(B") ("at;" nil "$B;](B") ("st;" nil "$BE`(B") ("dt;" nil "$BC&(B") ("ft;" nil "$B>'(B") ("gt;" nil "$BFG(B") ("qt;" nil "$B@#(B") ("wt;" nil "$B8.(B") ("et;" nil "$BG>(B") ("rt;" nil "$B@W(B") ("tt;" nil "$B68(B") ("zto" nil "$B@&(B") ("xto" nil "$B7p(B") ("cto" nil "$B7f(B") ("vto" nil "$BO#(B") ("bto" nil "$B@M(B") ("ato" nil "$B2x(B") ("sto" nil "$B>G(B") ("dto" nil "$BLJ(B") ("fto" nil "$BB'(B") ("gto" nil "$BMY(B") ("qto" nil "$B2G(B") ("wto" nil "$BB;(B") ("eto" nil "$BNY(B") ("rto" nil "$B7D(B") ("tto" nil "$B4{(B") ("ztp" nil "$BG|(B") ("xtp" nil "$B7&(B") ("ctp" nil "$B?b(B") ("vtp" nil "$B=G(B") ("btp" nil "$BFr(B") ("atp" nil "$B7\(B") ("stp" nil "$BIh(B") ("dtp" nil "$BJY(B") ("ftp" nil "$B=<(B") ("gtp" nil "$B=o(B") ("qtp" nil "$BC2(B") ("wtp" nil "$Bv(B") ("jyc" nil "$B9`(B") ("kyc" nil "$B>K(B") ("yyc" nil "$BBL(B") ("uyc" nil "$B1l(B") ("iyc" nil "$B>I(B") (".yc" nil "$B4Z(B") ("/yc" nil "$B?*(B") ("lyc" nil "$B=k(B") (";yc" nil "$B@F(B") ("oyc" nil "$BI!(B") ("pyc" nil "$BC"(B") ("nyv" nil "$B1H(B") ("myv" nil "$B6J(B") (",yv" nil "$B8`(B") ("hyv" nil "$BEm(B") ("jyv" nil "$B8c(B") ("kyv" nil "$B?C(B") ("yyv" nil "$BDC(B") ("uyv" nil "$B?5(B") ("iyv" nil "$B5r(B") (".yv" nil "$B7[(B") ("/yv" nil "$BH+(B") ("lyv" nil "$BE%(B") (";yv" nil "$B:O(B") ("oyv" nil "$BLG(B") ("pyv" nil "$B<@(B") ("nyb" nil "$B3*(B") ("myb" nil "$BDr(B") (",yb" nil "$B9N(B") ("hyb" nil "$B0=(B") ("jyb" nil "$B4l(B") ("kyb" nil "$BHh(B") ("yyb" nil "$BIf(B") ("uyb" nil "$B@N(B") ("iyb" nil "$B7*(B") (".yb" nil "$B?$(B") ("/yb" nil "$BC,(B") ("lyb" nil "$B1Y(B") (";yb" nil "$BJP(B") ("oyb" nil "$B;l(B") ("pyb" nil "$B2{(B") ("nya" nil "$BCv(B") ("mya" nil "$BO6(B") (",ya" nil "$B?R(B") ("hya" nil "$B7G(B") ("jya" nil "$B3Y(B") ("kya" nil "$BB(B") ("nyg" nil "$BB1(B") ("myg" nil "$BD:(B") (",yg" nil "$B5[(B") ("hyg" nil "$BMm(B") ("jyg" nil "$BJ)(B") ("kyg" nil "$B;Q(B") ("yyg" nil "$B2Y(B") ("uyg" nil "$BB.(B") ("iyg" nil "$BE!(B") (".yg" nil "$BC`(B") ("/yg" nil "$B8O(B") ("lyg" nil "$BC0(B") (";yg" nil "$BHr(B") ("oyg" nil "$B;I(B") ("pyg" nil "$BB+(B") ("nyq" nil "$B11(B") ("myq" nil "$BD7(B") (",yq" nil "$BJi(B") ("hyq" nil "$BI$(B") ("jyq" nil "$B=\(B") ("kyq" nil "$B3c(B") ("yyq" nil "$B8<(B") ("uyq" nil "$B4U(B") ("iyq" nil "$BN=(B") (".yq" nil "$BK*(B") ("/yq" nil "$B=l(B") ("lyq" nil "$B@p(B") (";yq" nil "$B?,(B") ("oyq" nil "$B<*(B") ("pyq" nil "$BK5(B") ("nyw" nil "$B1L(B") ("myw" nil "$B94(B") (",yw" nil "$B25(B") ("hyw" nil "$B9D(B") ("jyw" nil "$B>~(B") ("kyw" nil "$BGn(B") ("yyw" nil "$BI9(B") ("uyw" nil "$BLP(B") ("iyw" nil "$BJ4(B") (".yw" nil "$B2y(B") ("/yw" nil "$B98(B") ("lyw" nil "$BFO(B") (";yw" nil "$BIR(B") ("oyw" nil "$BCy(B") ("pyw" nil "$B2f(B") ("nye" nil "$BM1(B") ("mye" nil "$B8/(B") (",ye" nil "$BL8(B") ("hye" nil "$B8P(B") ("jye" nil "$B:N(B") ("kye" nil "$B6-(B") ("yye" nil "$B?"(B") ("uye" nil "$B5n(B") ("iye" nil "$B0W(B") (".ye" nil "$B:0(B") ("/ye" nil "$BD~(B") ("lye" nil "$BJ;(B") (";ye" nil "$B27(B") ("oye" nil "$B>O(B") ("pye" nil "$BD6(B") ("nyr" nil "$B8](B") ("myr" nil "$BMs(B") (",yr" nil "$B8*(B") ("hyr" nil "$B@g(B") ("jyr" nil "$BN%(B") ("kyr" nil "$B ;; Author: GUNJI Takao ;; Maintainer: SKK Development Team ;; Keywords: japanese, mule, input method, TUT-code ;; This file is part of Daredevil SKK. ;; Daredevil SKK is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as ;; published by the Free Software Foundation; either version 2, or ;; (at your option) any later version. ;; Daredevil SKK is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to ;; the Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, ;; Boston, MA 02110-1301, USA. ;;; Commentary: ;; ;; ;; TUT-code was developed by Hajime Ohiwa and ;; Takaaki Takashima of Toyohashi University of Technology in 1982. ;; TUT-code is a kind of direct input method of Japanese with two ;; strokes. You can pronounce it `Tea You Tea' or `TUT' like ;; Tutankamen's nickname, king `TUT'. ;; ;; At Mon, 23 Aug 1999 01:13:34 +0900, ;; Hajime Ohiwa wrote: ;; ;; > $B;d$O!V$F$#!<$f!<$F$#!<$3!<$I!W$HFI$s$G$$$^$9$,!"$b$&>/$78@$$0W$$J}$,(B ;; > $B$h$$$H;W$$$^$9!#(BTUT$B$O$3$l$r3+H/$7$?K-665;=Q2J3XBg3X$NN,>N$G$9!#(B ;; > $BJF9q?M$K8+$;$?$i!"!V$?$C$H!W$HFI$_$^$7$?!#$D$?$s$+!<$a$s2&$N$3$H$r1Q8l(B ;; > $B$G$O(B king TUT $B$H8F$S!"H/2;$O!V$?$C$H!W$J$N$@$=$&$G$9!#!V$?$C$H$3!<$I!W(B ;; > $B$NJ}$,$h$$$+$b$7$l$^$;$s!#8f0U8+$r$*J9$+$;2<$5$$!#(B ;; ;; To get more information, access following URL; ;; http://www.crew.sfc.keio.ac.jp/~chk/ ;; ;; To join TUT-code mailing list, send mail like following; ;; To: tut-code-control@crew.sfc.keio.ac.jp ;; Subject: APPEND ;; Body: an introduction of yourself (null body is available). ;; ;; ;; ;; Put the following lines in your .skk. ;; ;; (require 'skk-tutcdef) ;; ;; If you would like to customize some definitions in skk-tutcdef.el, ;; you could do, for example; ;; ;; (require 'skk-tutcdef) ;; ;; your customizations... ;; (setq skk-rom-kana-rule-list ;; '(...)) ;; ;; ;; - Efficient mazegaki (e.x. provided by T-code driver) support. ;; - To switch easily okurigana prefix in jisyo buffer. ;;; Code: (eval-when-compile (require 'skk)) ;;;###autoload (defgroup skk-tutcode nil "SKK/TUT-code related customization." :prefix "skk-tutcode-" :group 'skk-input-enhanced :group 'skk) ;; all prefix of functions, variables and constants are ;; `skk-tutcode-'. ;;;###autoload (defcustom skk-tutcode-use-touch16+ nil "*Non-nil $B$G$"$l$P!"(BTouch16+ $B3HD%%3!<%I$rMxMQ$9$k!#(B" :type 'boolean :group 'skk-tutcode) ;;;###autoload (defun skk-tutcode-mode-off (foo) (skk-latin-mode t) (skk-insert-str "\\")) ;;;###autoload (defun skk-tutcode-display-code (&optional arg) ;; adapted from skk-kcode.el "$B%]%$%s%H$K$"$kJ8;z$N(B EUC $B%3!<%I!"(BJIS $B%3!<%I!"(BTUT $B%3!<%I$rI=<($9$k!#(B" (interactive "P") (if (eobp) (skk-error "$B%+!<%=%k$,%P%C%U%!$N=*C<$K$"$j$^$9(B" "Cursor is at the end of the buffer") (skk-tutcode-display-code-1 (buffer-substring-no-properties (point) (skk-save-point (forward-char 1) (point)))) ;; $B%(%3!<$7$?J8;zNs$r%+%l%s%H%P%C%U%!$KA^F~$7$J$$$h$&$K!#(B t)) (defun skk-tutcode-display-code-1 (str) (let* ((char (string-to-char str)) (charset (char-charset char)) (charset-list (if (charsetp 'japanese-jisx0213-1) '(japanese-jisx0213-1 japanese-jisx0213-2 japanese-jisx0208 japanese-jisx0208-1978) '(japanese-jisx0208 japanese-jisx0208-1978)))) (cond ((memq charset charset-list) (let* ((char1-j (skk-char-octet char 0)) (char1-k (- char1-j 32)) (char1-e (+ char1-j 128)) (char2-j (skk-char-octet char 1)) (char2-k (- char2-j 32)) (char2-e (+ char2-j 128)) (char3 (skk-tutcode-get-code str))) (message "$B!X(B%s$B!Y(B EUC: %2x%2x (%3d, %3d), JIS: %2x%2x (%3d, %3d), KUTEN: (%2d, %2d), TUT: `%s'" str char1-e char2-e char1-e char2-e char1-j char2-j char1-j char2-j char1-k char2-k char3))) ((memq charset '(ascii latin-jisx0201)) (message "\"%s\" %2x (%3d)" str (skk-char-octet char 0) (skk-char-octet char 0))) (t (skk-error "$BH=JL$G$-$J$$J8;z$G$9(B" "Cannot understand this character"))))) ;; some new stuff (defun skk-tutcode-get-code (key) (let ((srkr-list skk-rom-kana-rule-list) (cont t) (val nil)) (while cont (if (null srkr-list) (setq cont nil) (if (listp (car (cdr (cdr (car srkr-list))))) (cond ((string= key (car (car (cdr (cdr (car srkr-list)))))) (setq cont nil val (car (car srkr-list)))) ((string= key (cdr (car (cdr (cdr (car srkr-list)))))) (setq cont nil val (car (car srkr-list)))) (t (setq srkr-list (cdr srkr-list)))) (cond ((string= key (car (cdr (cdr (car srkr-list))))) (setq cont nil val (car (car srkr-list)))) (t (setq srkr-list (cdr srkr-list))))))) val)) (provide 'skk-tutcode) ;;; skk-tutcode.el ends here