-;;; japanese.el --- Japanese support
+;;; japanese.el --- Japanese support -*- coding: iso-2022-7bit; -*-
;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
;; Licensed to the Free Software Foundation.
-;; Copyright (C) 1997 MORIOKA Tomohiko
+;; Copyright (C) 1997,1999,2002,2004,2005 MORIOKA Tomohiko
;; Keywords: multilingual, Japanese
"\e$B!#\e(B"
"\\)"
"[ \t\n]*"))
-(setq paragraph-start "^[ \e$B!!\e(B\t\n\f]")
-(setq paragraph-separate "^[ \e$B!!\e(B\t\f]*$")
+
+;; allow paragraphs to start with a zenkaku space
+(setq paragraph-start "[ \e$B!!\e(B\t\n\f]")
+(setq paragraph-separate "[ \e$B!!\e(B\t\f]*$")
;; EGG specific setup
(define-egg-environment 'japanese
;; (setq egg-default-startup-file "eggrc-wnn")
(setq-default its:*current-map* (its:get-mode-map "roma-kana"))))
-;; stuff for providing gramatic processing of Japanese text
+;; stuff for providing grammatic processing of Japanese text
;; something like this should probably be created for all environments...
+;; #### Arrgh. This stuff should defvar'd in either fill.el or kinsoku.el.
+;; Then the language environment should set these things, probably buffer-
+;; locally.
(defvar aletter (concat "\\(" ascii-char "\\|" kanji-char "\\)"))
(defvar kanji-space-insertable (concat
ascii-alphanumeric kanji-kanji-char "\\|"
kanji-kanji-char ascii-alphanumeric ))
+;; #### will be moved to fill.el
(defvar space-insertable (concat " " aletter "\\|" kanji-space-insertable)
"Regexp for finding points that can have spaces inserted into them for justification")
\f
;; 'iso-2022-jp 2 ?J
;; "ISO 2022 based 7bit encoding for Japanese (MIME:ISO-2022-JP)"
;; '((ascii japanese-jisx0208-1978 japanese-jisx0208
-;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201 t) nil nil nil
-;; short ascii-eol ascii-cntl seven))
-
-;; (define-coding-system-alias 'junet 'iso-2022-jp)
+;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201) nil nil nil
+;; short ascii-eol ascii-cntl seven)
+;; '((safe-charsets ascii japanese-jisx0208-1978 japanese-jisx0208
+;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201)
+;; (mime-charset . iso-2022-jp)))
(make-coding-system
'iso-2022-jp 'iso2022
"Coding-system used for communication with mail and news in Japan."
- '(charset-g0 ascii
- short t
- seven t
- input-charset-conversion ((latin-jisx0201 ascii)
- (japanese-jisx0208-1978 japanese-jisx0208))
- mnemonic "MULE/7bit"
- ))
+ (let ((conf
+ '(charset-g0 ascii
+ short t
+ seven t
+ mnemonic "MULE/7bit")))
+ (if (featurep 'utf-2000)
+ (list* 'ccs-priority-list
+ '(ascii
+ =jis-x0208@1983 =jis-x0208@1978
+ latin-jisx0201)
+ conf)
+ (list* 'input-charset-conversion
+ '((latin-jisx0201 ascii)
+ (japanese-jisx0208-1978 japanese-jisx0208))
+ conf))))
+
+(define-coding-system-alias 'junet 'iso-2022-jp)
-(copy-coding-system 'iso-2022-jp 'junet)
+;; (make-coding-system
+;; 'iso-2022-jp-2 2 ?J
+;; "ISO 2022 based 7bit encoding for CJK, Latin-1, and Greek (MIME:ISO-2022-JP-2)"
+;; '((ascii japanese-jisx0208-1978 japanese-jisx0208
+;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201
+;; chinese-gb2312 korean-ksc5601) nil
+;; (nil latin-iso8859-1 greek-iso8859-7) nil
+;; short ascii-eol ascii-cntl seven nil single-shift)
+;; '((safe-charsets ascii japanese-jisx0208-1978 japanese-jisx0208
+;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201
+;; chinese-gb2312 korean-ksc5601
+;; latin-iso8859-1 greek-iso8859-7)
+;; (mime-charset . iso-2022-jp-2)))
;; (make-coding-system
-;; 'shift_jis 1 ?S
-;; "Coding-system of Shift-JIS used in Japan." t)
+;; 'japanese-shift-jis 1 ?S
+;; "Shift-JIS 8-bit encoding for Japanese (MIME:SHIFT_JIS)"
+;; nil
+;; '((safe-charsets ascii japanese-jisx0208 japanese-jisx0208-1978
+;; latin-jisx0201 katakana-jisx0201)
+;; (mime-charset . shift_jis)
+;; (charset-origin-alist (japanese-jisx0208 "SJIS" encode-sjis-char)
+;; (katakana-jisx0201 "SJIS" encode-sjis-char))))
(make-coding-system
'shift_jis 'shift-jis
"Coding-system of Shift-JIS used in Japan."
'(mnemonic "Ja/SJIS"))
-;;(define-coding-system-alias 'shift_jis 'sjis)
-
-(copy-coding-system 'shift_jis 'sjis)
+;; (define-coding-system-alias 'shift_jis 'japanese-shift-jis)
+;; (define-coding-system-alias 'sjis 'japanese-shift-jis)
;; (make-coding-system
-;; 'iso-2022-jp-1978-irv 2 ?J
-;; "Coding-system used for old jis terminal."
-;; '((ascii t) nil nil nil
-;; short ascii-eol ascii-cntl seven nil nil use-roman use-oldjis))
+;; 'japanese-iso-7bit-1978-irv 2 ?j
+;; "ISO 2022 based 7-bit encoding for Japanese JISX0208-1978 and JISX0201-Roman"
+;; '((ascii japanese-jisx0208-1978 japanese-jisx0208
+;; latin-jisx0201 japanese-jisx0212 katakana-jisx0201 t) nil nil nil
+;; short ascii-eol ascii-cntl seven nil nil use-roman use-oldjis)
+;; '(ascii japanese-jisx0208-1978 japanese-jisx0208 latin-jisx0201))
(make-coding-system
'iso-2022-jp-1978-irv 'iso2022
mnemonic "Ja-78/7bit"
))
-;;(define-coding-system-alias 'iso-2022-jp-1978-irv 'old-jis)
+;; (define-coding-system-alias 'iso-2022-jp-1978-irv 'japanese-iso-7bit-1978-irv)
+;; (define-coding-system-alias 'old-jis 'japanese-iso-7bit-1978-irv)
-(copy-coding-system 'iso-2022-jp-1978-irv 'old-jis)
+(define-coding-system-alias 'old-jis 'iso-2022-jp-1978-irv)
;; (make-coding-system
-;; 'euc-japan-1990 2 ?E
-;; "Coding-system of Japanese EUC (Extended Unix Code)."
+;; 'japanese-iso-8bit 2 ?E
+;; "ISO 2022 based EUC encoding for Japanese (MIME:EUC-JP)"
;; '(ascii japanese-jisx0208 katakana-jisx0201 japanese-jisx0212
-;; short ascii-eol ascii-cntl nil nil single-shift))
+;; short ascii-eol ascii-cntl nil nil single-shift)
+;; '((safe-charsets ascii latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978
+;; katakana-jisx0201 japanese-jisx0212)
+;; (mime-charset . euc-jp)))
(make-coding-system
'euc-jp 'iso2022
mnemonic "Ja/EUC"
))
-;;(define-coding-system-alias 'euc-japan-1990 'euc-japan)
-
-(copy-coding-system 'euc-jp 'euc-japan) ; only for w3
-(copy-coding-system 'euc-jp 'japanese-euc)
+;; [tomo] Moved to mule-conf.el.
+;; (make-coding-system
+;; 'euc-jisx0213 'iso2022
+;; "Coding-system of Japanese EUC based on JIS X 0213."
+;; '(charset-g0 ascii
+;; charset-g1 japanese-jisx0213-1
+;; charset-g2 katakana-jisx0201
+;; charset-g3 japanese-jisx0213-2
+;; short t
+;; mnemonic "Ja/EUC0213"
+;; ))
+
+;; (define-coding-system-alias 'euc-japan-1990 'japanese-iso-8bit)
+;; (define-coding-system-alias 'euc-japan 'japanese-iso-8bit)
+;; (define-coding-system-alias 'euc-jp 'japanese-iso-8bit)
+
+(define-coding-system-alias 'euc-japan 'euc-jp) ; only for w3
+(define-coding-system-alias 'japanese-euc 'euc-jp)
(set-language-info-alist
- "Japanese" '((setup-function . setup-japanese-environment)
+ "Japanese" '((setup-function . setup-japanese-environment-internal)
+ (exit-function . exit-japanese-environment)
(tutorial . "TUTORIAL.ja")
- (charset . (japanese-jisx0208 japanese-jisx0208-1978
- japanese-jisx0212 latin-jisx0201
- katakana-jisx0201))
- (coding-system . (iso-2022-jp euc-jp
- shift_jis iso-2022-jp-1978-irv))
- (sample-text . "Japanese (\e$BF|K\8l\e(B) \e$B$3$s$K$A$O\e(B, \e(I:]FAJ\e(B")
+ (charset japanese-jisx0208 japanese-jisx0208-1978
+ japanese-jisx0212 latin-jisx0201 katakana-jisx0201)
+ (coding-system iso-2022-jp euc-jp
+ shift_jis iso-2022-jp-2)
+ (coding-priority iso-2022-jp euc-jp
+ shift_jis iso-2022-jp-2)
+;; (input-method . "japanese")
+ (features japan-util)
+ (sample-text . "Japanese (\e$BF|K\8l\e(B) \e$B$3$s$K$A$O\e(B, \e(I:]FAJ\e(B")
(documentation . t)))
;;; japanese.el ends here