aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuhiro Kimura <yasu@FreeBSD.org>2020-09-09 00:26:11 +0000
committerYasuhiro Kimura <yasu@FreeBSD.org>2021-11-05 07:50:49 +0000
commit18c9f64b32c8dd630a644ab1997f2f5ada9f0058 (patch)
treeb63051766928f749fbb64463efc98ff8152e2e14
parent6dd3f5ba0e194698701ba1cbebda457a51e3ab0d (diff)
downloadports-18c9f64b32c8dd630a644ab1997f2f5ada9f0058.tar.gz
ports-18c9f64b32c8dd630a644ab1997f2f5ada9f0058.zip
editors/tamago: Unbreak with Emacs 28
PR: 249201 Approved by: maintainer timeout (> 13 months) MFH: 2021Q4 (cherry picked from commit d59facdd8f77110a194894cf74806a83b3879893)
-rw-r--r--editors/tamago/Makefile5
-rw-r--r--editors/tamago/files/patch-make-coding-system237
2 files changed, 238 insertions, 4 deletions
diff --git a/editors/tamago/Makefile b/editors/tamago/Makefile
index 7e67201abdd0..fb8c305bce1c 100644
--- a/editors/tamago/Makefile
+++ b/editors/tamago/Makefile
@@ -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
diff --git a/editors/tamago/files/patch-make-coding-system b/editors/tamago/files/patch-make-coding-system
new file mode 100644
index 000000000000..6de81e8bcacd
--- /dev/null
+++ b/editors/tamago/files/patch-make-coding-system
@@ -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)