Stephen J. Turnbull writes:
Uwe Brauer writes:
> Hello
>
> I just realized that Xemacs 21.5.29 Mule does not support
> cp1255 (Hebrew windows) in file coding, while GNU emacs does
> :(....
>
> Are there plans to include this feature any time soon?
Not as far as I know, but it should be easy to do. Refer to the code
for ISO 8859/8 in lisp/mule/hebrew.el and the table in
etc/unicode/unicode-consortium/CP1255.TXT.
Try this patch (completely untested, and the last hunk at old line 155
may fail due to the presence of ISO 2022 control sequences; if so just
delete everything from the "@@ -155,12 +290,16 @@" line to the end and
the patch should apply -- this hunk isn't needed it just improves the
portability of the documentation I hope).
If you have a short, publishable, no copyright problems Hebrew
document I can use for testing that would be appreciated. A pretty
wide coverage of Hebrew characters would be good, up to about 200
characters max.
# HG changeset patch
# Parent 928cc1789177474ebc5d448b2823533b53df49fa
Add CP1255 for Uwe Brauer.
diff -r 928cc1789177 -r e2693c5ea0d2 lisp/mule/hebrew.el
--- a/lisp/mule/hebrew.el Tue Nov 08 17:10:28 2011 +0900
+++ b/lisp/mule/hebrew.el Thu Nov 24 15:09:21 2011 +0900
@@ -144,6 +144,141 @@
mnemonic "MIME/Hbrw"))
(make-coding-system
+ 'cp1255 'fixed-width "Microsoft Code Page 1255 (Hebrew)"
+ '(unicode-map
+ (
+ (#x80 ?\u20AC) ;; EURO SIGN
+ ;; (#x81 ) ;; UNDEFINED
+ (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK
+ (#x83 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK
+ (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK
+ (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS
+ (#x86 ?\u2020) ;; DAGGER
+ (#x87 ?\u2021) ;; DOUBLE DAGGER
+ (#x88 ?\u02C6) ;; MODIFIER LETTER CIRCUMFLEX ACCENT
+ (#x89 ?\u2030) ;; PER MILLE SIGN
+ ;; (#x8A ) ;; UNDEFINED
+ (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ ;; (#x8C ) ;; UNDEFINED
+ ;; (#x8D ) ;; UNDEFINED
+ ;; (#x8E ) ;; UNDEFINED
+ ;; (#x8F ) ;; UNDEFINED
+ ;; (#x90 ) ;; UNDEFINED
+ (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK
+ (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK
+ (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK
+ (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK
+ (#x95 ?\u2022) ;; BULLET
+ (#x96 ?\u2013) ;; EN DASH
+ (#x97 ?\u2014) ;; EM DASH
+ (#x98 ?\u02DC) ;; SMALL TILDE
+ (#x99 ?\u2122) ;; TRADE MARK SIGN
+ (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ ;; (#x9C ) ;; UNDEFINED
+ ;; (#x9D ) ;; UNDEFINED
+ ;; (#x9E ) ;; UNDEFINED
+ ;; (#x9F ) ;; UNDEFINED
+ (#xA0 ?\u00A0) ;; NO-BREAK SPACE
+ (#xA1 ?\u00A1) ;; INVERTED EXCLAMATION MARK
+ (#xA2 ?\u00A2) ;; CENT SIGN
+ (#xA3 ?\u00A3) ;; POUND SIGN
+ (#xA4 ?\u20AA) ;; NEW SHEQEL SIGN
+ (#xA5 ?\u00A5) ;; YEN SIGN
+ (#xA6 ?\u00A6) ;; BROKEN BAR
+ (#xA7 ?\u00A7) ;; SECTION SIGN
+ (#xA8 ?\u00A8) ;; DIAERESIS
+ (#xA9 ?\u00A9) ;; COPYRIGHT SIGN
+ (#xAA ?\u00D7) ;; MULTIPLICATION SIGN
+ (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ (#xAC ?\u00AC) ;; NOT SIGN
+ (#xAD ?\u00AD) ;; SOFT HYPHEN
+ (#xAE ?\u00AE) ;; REGISTERED SIGN
+ (#xAF ?\u00AF) ;; MACRON
+ (#xB0 ?\u00B0) ;; DEGREE SIGN
+ (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN
+ (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO
+ (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE
+ (#xB4 ?\u00B4) ;; ACUTE ACCENT
+ (#xB5 ?\u00B5) ;; MICRO SIGN
+ (#xB6 ?\u00B6) ;; PILCROW SIGN
+ (#xB7 ?\u00B7) ;; MIDDLE DOT
+ (#xB8 ?\u00B8) ;; CEDILLA
+ (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE
+ (#xBA ?\u00F7) ;; DIVISION SIGN
+ (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ (#xBC ?\u00BC) ;; VULGAR FRACTION ONE QUARTER
+ (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF
+ (#xBE ?\u00BE) ;; VULGAR FRACTION THREE QUARTERS
+ (#xBF ?\u00BF) ;; INVERTED QUESTION MARK
+ (#xC0 ?\u05B0) ;; HEBREW POINT SHEVA
+ (#xC1 ?\u05B1) ;; HEBREW POINT HATAF SEGOL
+ (#xC2 ?\u05B2) ;; HEBREW POINT HATAF PATAH
+ (#xC3 ?\u05B3) ;; HEBREW POINT HATAF QAMATS
+ (#xC4 ?\u05B4) ;; HEBREW POINT HIRIQ
+ (#xC5 ?\u05B5) ;; HEBREW POINT TSERE
+ (#xC6 ?\u05B6) ;; HEBREW POINT SEGOL
+ (#xC7 ?\u05B7) ;; HEBREW POINT PATAH
+ (#xC8 ?\u05B8) ;; HEBREW POINT QAMATS
+ (#xC9 ?\u05B9) ;; HEBREW POINT HOLAM
+ ;; (#xCA ) ;; UNDEFINED
+ (#xCB ?\u05BB) ;; HEBREW POINT QUBUTS
+ (#xCC ?\u05BC) ;; HEBREW POINT DAGESH OR MAPIQ
+ (#xCD ?\u05BD) ;; HEBREW POINT METEG
+ (#xCE ?\u05BE) ;; HEBREW PUNCTUATION MAQAF
+ (#xCF ?\u05BF) ;; HEBREW POINT RAFE
+ (#xD0 ?\u05C0) ;; HEBREW PUNCTUATION PASEQ
+ (#xD1 ?\u05C1) ;; HEBREW POINT SHIN DOT
+ (#xD2 ?\u05C2) ;; HEBREW POINT SIN DOT
+ (#xD3 ?\u05C3) ;; HEBREW PUNCTUATION SOF PASUQ
+ (#xD4 ?\u05F0) ;; HEBREW LIGATURE YIDDISH DOUBLE VAV
+ (#xD5 ?\u05F1) ;; HEBREW LIGATURE YIDDISH VAV YOD
+ (#xD6 ?\u05F2) ;; HEBREW LIGATURE YIDDISH DOUBLE YOD
+ (#xD7 ?\u05F3) ;; HEBREW PUNCTUATION GERESH
+ (#xD8 ?\u05F4) ;; HEBREW PUNCTUATION GERSHAYIM
+ ;; (#xD9 ) ;; UNDEFINED
+ ;; (#xDA ) ;; UNDEFINED
+ ;; (#xDB ) ;; UNDEFINED
+ ;; (#xDC ) ;; UNDEFINED
+ ;; (#xDD ) ;; UNDEFINED
+ ;; (#xDE ) ;; UNDEFINED
+ ;; (#xDF ) ;; UNDEFINED
+ (#xE0 ?\u05D0) ;; HEBREW LETTER ALEF
+ (#xE1 ?\u05D1) ;; HEBREW LETTER BET
+ (#xE2 ?\u05D2) ;; HEBREW LETTER GIMEL
+ (#xE3 ?\u05D3) ;; HEBREW LETTER DALET
+ (#xE4 ?\u05D4) ;; HEBREW LETTER HE
+ (#xE5 ?\u05D5) ;; HEBREW LETTER VAV
+ (#xE6 ?\u05D6) ;; HEBREW LETTER ZAYIN
+ (#xE7 ?\u05D7) ;; HEBREW LETTER HET
+ (#xE8 ?\u05D8) ;; HEBREW LETTER TET
+ (#xE9 ?\u05D9) ;; HEBREW LETTER YOD
+ (#xEA ?\u05DA) ;; HEBREW LETTER FINAL KAF
+ (#xEB ?\u05DB) ;; HEBREW LETTER KAF
+ (#xEC ?\u05DC) ;; HEBREW LETTER LAMED
+ (#xED ?\u05DD) ;; HEBREW LETTER FINAL MEM
+ (#xEE ?\u05DE) ;; HEBREW LETTER MEM
+ (#xEF ?\u05DF) ;; HEBREW LETTER FINAL NUN
+ (#xF0 ?\u05E0) ;; HEBREW LETTER NUN
+ (#xF1 ?\u05E1) ;; HEBREW LETTER SAMEKH
+ (#xF2 ?\u05E2) ;; HEBREW LETTER AYIN
+ (#xF3 ?\u05E3) ;; HEBREW LETTER FINAL PE
+ (#xF4 ?\u05E4) ;; HEBREW LETTER PE
+ (#xF5 ?\u05E5) ;; HEBREW LETTER FINAL TSADI
+ (#xF6 ?\u05E6) ;; HEBREW LETTER TSADI
+ (#xF7 ?\u05E7) ;; HEBREW LETTER QOF
+ (#xF8 ?\u05E8) ;; HEBREW LETTER RESH
+ (#xF9 ?\u05E9) ;; HEBREW LETTER SHIN
+ (#xFA ?\u05EA) ;; HEBREW LETTER TAV
+ ;; (#xFF ) ;; UNDEFINED
+ ;; (#xFF ) ;; UNDEFINED
+ (#xFD ?\u200E) ;; LEFT-TO-RIGHT MARK
+ (#xFE ?\u200F) ;; RIGHT-TO-LEFT MARK
+ ;; (#xFF ) ;; UNDEFINED
+ )
+ mnemonic "CP1255"
+ ))
+
+(make-coding-system
'ctext-hebrew 'iso2022
"ISO-8859-8-E (Hebrew, explicit directional coding)"
'(charset-g0 ascii
@@ -155,12 +290,16 @@
))
(set-language-info-alist
- "Hebrew" '((charset hebrew-iso8859-8)
+ "Hebrew" `((charset hebrew-iso8859-8)
(coding-system iso-8859-8)
(coding-priority iso-8859-8)
;; Not available in packages.
;; (input-method . "hebrew")
- (sample-text . "Hebrew שלום")
+ (sample-text . ,(format "Hebrew %c%c%c%c"
+ (make-char 'hebrew-iso8859-8 121)
+ (make-char 'hebrew-iso8859-8 108)
+ (make-char 'hebrew-iso8859-8 101)
+ (make-char 'hebrew-iso8859-8 109)))
(documentation . "Right-to-left writing is not yet supported.")
))
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-beta