editors/tamago: Unbreak with Emacs 28

PR:		249201
Approved by:	maintainer timeout (> 13 months)
MFH:		2021Q4
This commit is contained in:
Yasuhiro Kimura 2020-09-09 09:26:11 +09:00
parent 3332785cdc
commit d59facdd8f
2 changed files with 238 additions and 4 deletions

View File

@ -3,7 +3,7 @@
PORTNAME= tamago
PORTVERSION= 4.0.6.0.20041122.19.14
DISTVERSIONPREFIX= v
PORTREVISION= 6
PORTREVISION= 7
CATEGORIES= editors elisp
PKGNAMESUFFIX= ${EMACS_PKGNAMESUFFIX}
@ -13,9 +13,6 @@ COMMENT= Egg V4, Multilingual Input Method for Emacsen
LICENSE= GPLv2
USES= emacs
# Fails to build with Emacs 27.
# Temporarily disable devel_full and devel_nox.
EMACS_FLAVORS_EXCLUDE= devel_full devel_nox
USE_GITHUB= yes
GH_ACCOUNT= hrs-allbsd

View File

@ -0,0 +1,237 @@
diff --git egg-com.el egg-com.el
index 63ebdb5..daab668 100644
--- egg-com.el
+++ egg-com.el
@@ -99,135 +99,38 @@
(prog1 (- (point) pos)
(goto-char pos))))
-(if (and (fboundp 'make-coding-system)
- (null (get 'make-coding-system 'byte-obsolete-info)))
-;; since Emacs 23.1, make-coding-system has been marked as obsolete.
- (eval-and-compile
- (define-ccl-program ccl-decode-fixed-euc-jp
- `(2
- ((r2 = ,(charset-id 'japanese-jisx0208))
- (r3 = ,(charset-id 'japanese-jisx0212))
- (r4 = ,(charset-id 'katakana-jisx0201))
- (read r0)
- (loop
- (read r1)
- (if (r0 < ?\x80)
- ((r0 = r1)
- (if (r1 < ?\x80)
- (write-read-repeat r0))
- (write r4)
- (write-read-repeat r0))
- ((if (r1 > ?\x80)
- ((write r2 r0)
- (r0 = r1)
- (write-read-repeat r0))
- ((write r3 r0)
- (r0 = (r1 | ?\x80))
- (write-read-repeat r0)))))))))
-
- (define-ccl-program ccl-encode-fixed-euc-jp
- `(2
- ((read r0)
- (loop
- (if (r0 == ,(charset-id 'latin-jisx0201)) ; Unify
- ((read r0)
- (r0 &= ?\x7f)))
- (if (r0 < ?\x80) ;G0
- ((write 0)
- (write-read-repeat r0)))
- (r6 = (r0 == ,(charset-id 'japanese-jisx0208)))
- (r6 |= (r0 == ,(charset-id 'japanese-jisx0208-1978)))
- (if r6 ;G1
- ((read r0)
- (write r0)
- (read r0)
- (write-read-repeat r0)))
- (if (r0 == ,(charset-id 'katakana-jisx0201)) ;G2
- ((read r0)
- (write 0)
- (write-read-repeat r0)))
- (if (r0 == ,(charset-id 'japanese-jisx0212)) ;G3
- ((read r0)
- (write r0)
- (read r0)
- (r0 &= ?\x7f)
- (write-read-repeat r0)))
- (read r0)
- (repeat)))))
- (make-coding-system 'fixed-euc-jp 4 ?W "Coding System for fixed EUC Japanese"
- (cons ccl-decode-fixed-euc-jp ccl-encode-fixed-euc-jp))
- )
- (eval-and-compile
- ;; since Emacs 23.1, make-coding-system has been marked as obsolete.
- ;; From Handa-san. [mule-ja : No.09414]
- (define-charset 'fixed-euc-jp
- "Fixed EUC Japanese"
- :dimension 2
- :superset '(ascii
- (katakana-jisx0201 . #x80)
- (japanese-jisx0208 . #x8080)
- (japanese-jisx0212 . #x8000)))
- (define-coding-system 'fixed-euc-jp
- "Coding System for fixed EUC Japanese"
- :mnemonic ?W
- :coding-type 'charset
- :charset-list '(fixed-euc-jp))
- )
+(eval-and-compile
+ (define-charset 'fixed-euc-jp
+ "Fixed EUC Japanese"
+ :dimension 2
+ :superset '(ascii
+ (katakana-jisx0201 . #x80)
+ (japanese-jisx0208 . #x8080)
+ (japanese-jisx0212 . #x8000)))
+ (define-coding-system 'fixed-euc-jp
+ "Coding System for fixed EUC Japanese"
+ :mnemonic ?W
+ :coding-type 'charset
+ :charset-list '(fixed-euc-jp))
)
;; Korean
-
-(if (and (fboundp 'make-coding-system)
- (null (get 'make-coding-system 'byte-obsolete-info)))
-;; since Emacs 23.1, make-coding-system has been marked as obsolete.
- (eval-and-compile
-(define-ccl-program ccl-decode-fixed-euc-kr
- `(2
- ((r2 = ,(charset-id 'korean-ksc5601))
- (read r0)
- (loop
- (read r1)
- (if (r0 < ?\x80)
- (r0 = r1 & ?\x7f)
- ((write r2 r0)
- (r0 = r1 | ?\x80)))
- (write-read-repeat r0)))))
-
-(define-ccl-program ccl-encode-fixed-euc-kr
- `(2
- ((read r0)
- (loop
- (if (r0 < ?\x80)
- ((write 0)
- (write-read-repeat r0)))
- (if (r0 == ,(charset-id 'korean-ksc5601))
- ((read r0)
- (write r0)
- (read r0)
- (write-read-repeat r0)))
- (read r0)
- (repeat)))))
-(make-coding-system 'fixed-euc-kr 4 ?W "Coding System for fixed EUC Korean"
- (cons ccl-decode-fixed-euc-kr ccl-encode-fixed-euc-kr)))
- (eval-and-compile
- ;; since Emacs 23.1, make-coding-system has been marked as obsolete.
- (define-charset 'fixed-euc-kr
- "Fixed EUC Korean"
- :dimension 2
- :superset '(ascii
- (korean-ksc5601 . #x8080)))
- (define-coding-system 'fixed-euc-kr
- "Coding System for fixed EUC Korean"
- :mnemonic ?W
- :coding-type 'charset
- :charset-list '(fixed-euc-kr))
- )
-)
+(eval-and-compile
+ (define-charset 'fixed-euc-kr
+ "Fixed EUC Korean"
+ :dimension 2
+ :superset '(ascii
+ (korean-ksc5601 . #x8080)))
+ (define-coding-system 'fixed-euc-kr
+ "Coding System for fixed EUC Korean"
+ :mnemonic ?W
+ :coding-type 'charset
+ :charset-list '(fixed-euc-kr))
+ )
;; Chinese
;;
-;; TODO: convert an obsolete make-coding-system to define-coding-system.
(defconst egg-pinyin-shengmu
'(("" . 0) ("B" . 1) ("C" . 2) ("Ch" . 3) ("D" . 4)
@@ -687,29 +590,33 @@ Return the length of resulting text."
(defun post-read-decode-euc-zy-tw (len)
(post-read-decode-fixed-euc-china len 'tw t))
-(make-coding-system 'fixed-euc-py-cn 0 ?W
- "Coding System for fixed EUC Chinese-gb2312")
+(define-coding-system
+ 'fixed-euc-py-cn "Coding System for fixed EUC Chinese-gb2312"
+ :mnemonic ?W :coding-type 'emacs-mule)
(coding-system-put 'fixed-euc-py-cn
'pre-write-conversion 'pre-write-encode-euc-cn)
(coding-system-put 'fixed-euc-py-cn
'post-read-conversion 'post-read-decode-euc-py-cn)
-(make-coding-system 'fixed-euc-zy-cn 0 ?W
- "Coding System for fixed EUC Chinese-gb2312")
+(define-coding-system
+ 'fixed-euc-zy-cn "Coding System for fixed EUC Chinese-gb2312"
+ :mnemonic ?W :coding-type 'emacs-mule)
(coding-system-put 'fixed-euc-zy-cn
'pre-write-conversion 'pre-write-encode-euc-cn)
(coding-system-put 'fixed-euc-zy-cn
'post-read-conversion 'post-read-decode-euc-zy-cn)
-(make-coding-system 'fixed-euc-py-tw 0 ?W
- "Coding System for fixed EUC Chinese-cns11643")
+(define-coding-system
+ 'fixed-euc-py-tw "Coding System for fixed EUC Chinese-cns11643"
+ :mnemonic ?W :coding-type 'emacs-mule)
(coding-system-put 'fixed-euc-py-tw
'pre-write-conversion 'pre-write-encode-euc-tw)
(coding-system-put 'fixed-euc-py-tw
'post-read-conversion 'post-read-decode-euc-py-tw)
-(make-coding-system 'fixed-euc-zy-tw 0 ?W
- "Coding System for fixed EUC Chinese-cns11643")
+(define-coding-system
+ 'fixed-euc-zy-tw "Coding System for fixed EUC Chinese-cns11643"
+ :mnemonic ?W :coding-type 'emacs-mule)
(coding-system-put 'fixed-euc-zy-tw
'pre-write-conversion 'pre-write-encode-euc-tw)
(coding-system-put 'fixed-euc-zy-tw
@@ -735,8 +642,9 @@ Return the length of resulting text."
(r0 = 0)))
(write-read-repeat r0))))))
-(make-coding-system 'egg-binary 4 ?W "Coding System for binary data"
- (cons ccl-decode-egg-binary ccl-encode-egg-binary))
+(define-coding-system 'egg-binary "Coding System for binary data"
+ :mnemonic ?W :coding-type 'ccl :ccl-decoder ccl-decode-egg-binary
+ :ccl-encoder ccl-encode-egg-binary)
(defun comm-format-u32c (uint32c)
diff --git egg-x0213.el egg-x0213.el
index ce13eb3..bb44584 100644
--- egg-x0213.el
+++ egg-x0213.el
@@ -104,8 +104,10 @@
(repeat)))
(repeat)))))
- (make-coding-system
- 'fixed-euc-jisx0213 4 ?W "Coding System for fixed EUC Japanese"
- (cons ccl-decode-fixed-euc-jisx0213 ccl-encode-fixed-euc-jisx0213))))
+ (define-coding-system
+ 'fixed-euc-jisx0213 "Coding System for fixed EUC Japanese"
+ :mnemonic ?W :coding-type 'ccl
+ :ccl-decoder ccl-decode-fixed-euc-jisx0213
+ :ccl-encoder ccl-encode-fixed-euc-jisx0213)))
(provide 'egg-x0213)