[PATCH] Support displaying invalid UTF-8 in language-environment-specific ways.
16 years, 4 months
Aidan Kehoe
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1217920001 -7200
# Node ID b75b075a9041ab8969a6351fa85560e739dcdbbb
# Parent 6b0000935adc3f79cb189350d6014d4b4aff734e
Support displaying invalid UTF-8 in language-environment-specific ways.
2008-08-05 Aidan Kehoe <kehoea(a)parhasard.net>
* specifier.el (current-display-table): Initialise this here, not
in x-init.el, since we want it even on non-X builds to use the
support for displaying Unicode error sequences according to the
current locale.
* mule/mule-cmds.el (set-language-info):
Document error-sequence-coding-system, used to describe how to
display characters that are not valid Unicode on disk.
* mule/mule-cmds.el (finish-set-language-environment):
Implement error-sequence-coding-system.
* unicode.el (unicode-error-sequence-warning-face):
New face, to make it possible to distinguish invalid Unicode
sequences from the characters given by the valid Unicode
sequences.
* mule/cyrillic.el ("Russian"):
("Ukrainian"):
("Bulgarian"):
("Belarusian"):
("Cyrillic-ALT"): Add support for error-sequence-coding-system for
all these languages.
* mule/latin.el:
Add support for error-sequence-coding-system for the
Latin-alphabet language environments.
diff -r 6b0000935adc -r b75b075a9041 lisp/ChangeLog
--- a/lisp/ChangeLog Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/ChangeLog Tue Aug 05 09:06:41 2008 +0200
@@ -1,3 +1,28 @@
+2008-08-05 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * specifier.el (current-display-table): Initialise this here, not
+ in x-init.el, since we want it even on non-X builds to use the
+ support for displaying Unicode error sequences according to the
+ current locale.
+ * mule/mule-cmds.el (set-language-info):
+ Document error-sequence-coding-system, used to describe how to
+ display characters that are not valid Unicode on disk.
+ * mule/mule-cmds.el (finish-set-language-environment):
+ Implement error-sequence-coding-system.
+ * unicode.el (unicode-error-sequence-warning-face):
+ New face, to make it possible to distinguish invalid Unicode
+ sequences from the characters given by the valid Unicode
+ sequences.
+ * mule/cyrillic.el ("Russian"):
+ ("Ukrainian"):
+ ("Bulgarian"):
+ ("Belarusian"):
+ ("Cyrillic-ALT"): Add support for error-sequence-coding-system for
+ all these languages.
+ * mule/latin.el:
+ Add support for error-sequence-coding-system for the
+ Latin-alphabet language environments.
+
2008-07-26 Aidan Kehoe <kehoea(a)parhasard.net>
* x-init.el (x-initialize-compose):
diff -r 6b0000935adc -r b75b075a9041 lisp/mule/cyrillic.el
--- a/lisp/mule/cyrillic.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/mule/cyrillic.el Tue Aug 05 09:06:41 2008 +0200
@@ -370,6 +370,7 @@
(coding-system koi8-r)
(native-coding-system koi8-r)
(coding-priority koi8-r)
+ (error-sequence-coding-system koi8-r)
(input-method . "cyrillic-yawerty")
(features cyril-util)
(locale "ru")
@@ -543,6 +544,7 @@
"Ukrainian" '((coding-system koi8-u)
(coding-priority koi8-u)
(locale "uk")
+ (error-sequence-coding-system koi8-u)
(input-method . "cyrillic-ukrainian")
(documentation
. "Support for Ukrainian."))
@@ -689,6 +691,7 @@
(set-language-info-alist
"Bulgarian" '((coding-system windows-1251)
(coding-priority windows-1251)
+ (error-sequence-coding-system windows-1251)
(input-method . "bulgarian-bds")
(locale "bg")
(documentation
@@ -699,6 +702,7 @@
(set-language-info-alist
"Belarusian" '((coding-system windows-1251)
(coding-priority windows-1251)
+ (error-sequence-coding-system windows-1251)
(locale "be")
(input-method . "belarusian")
(documentation
@@ -845,6 +849,7 @@
"Cyrillic-ALT" '((charset cyrillic-iso8859-5)
(coding-system alternativnyj)
(native-coding-system alternativnyj)
+ (error-sequence-coding-system alternativnyj)
(coding-priority alternativnyj)
(input-method . "cyrillic-yawerty")
(features cyril-util)
diff -r 6b0000935adc -r b75b075a9041 lisp/mule/greek.el
--- a/lisp/mule/greek.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/mule/greek.el Tue Aug 05 09:06:41 2008 +0200
@@ -328,6 +328,7 @@
(coding-system iso-8859-7)
(coding-priority iso-8859-7)
(native-coding-system iso-8859-7)
+ (error-sequence-coding-system iso-8859-7)
(locale "el")
(input-method . "greek")
(sample-text . "Greek (Ηλλένικα) Γειά σας")
diff -r 6b0000935adc -r b75b075a9041 lisp/mule/latin.el
--- a/lisp/mule/latin.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/mule/latin.el Tue Aug 05 09:06:41 2008 +0200
@@ -957,11 +957,12 @@
for ((charset codesys default-input nice-charset-1 nice-charset-2
;; supported-langs is a list if the doc string is replaced
;; entirely
- supported-langs)
+ supported-langs error-sequence-coding-system)
langenvs) in
'(((latin-iso8859-1 iso-8859-1 "latin-1-prefix" "Latin-1" "ISO-8859-1"
" Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic,
- Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.")
+ Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish."
+ windows-1252)
(("Danish" "da")
("Dutch" "nl" "TUTORIAL.nl")
("Faeroese" "fo")
@@ -1024,6 +1025,8 @@
(coding-system ,codesys)
(coding-priority ,codesys)
(native-coding-system ,codesys)
+ (error-sequence-coding-system ,(or error-sequence-coding-system
+ codesys))
(documentation . ,(if (listp supported-langs) (car supported-langs)
(format "\
Generic language environment for %s (%s)." nice-charset-1 nice-charset-2))))
diff -r 6b0000935adc -r b75b075a9041 lisp/mule/mule-cmds.el
--- a/lisp/mule/mule-cmds.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/mule/mule-cmds.el Tue Aug 05 09:06:41 2008 +0200
@@ -225,7 +225,15 @@
If there is no value for this property, the MS Windows
locale is assumed to have the same name as the
- language environment."
+ language environment.
+
+ error-sequence-coding-system
+ VALUE is a fixed-width 8-bit coding system used to
+ display Unicode error sequences (using a face to make
+ it clear that the data is invalid). In Western Europe
+ this is normally windows-1252; in the Russia and the
+ former Soviet Union koi8-ru or windows-1251 makes more
+ sense."
(if (symbolp lang-env)
(setq lang-env (symbol-name lang-env)))
(let (lang-slot prop-slot)
@@ -759,6 +767,24 @@
(let ((func (get-language-info language-name 'setup-function)))
(if (functionp func)
(funcall func)))
+
+ (let ((error-sequence-coding-system
+ (get-language-info language-name 'error-sequence-coding-system))
+ (disp-table (specifier-instance current-display-table))
+ glyph)
+ (when (consp error-sequence-coding-system)
+ (setq error-sequence-coding-system (car error-sequence-coding-system)))
+ (map-char-table
+ #'(lambda (key entry)
+ (setq glyph (make-glyph
+ (vector
+ 'string :data
+ (decode-coding-string (string entry)
+ error-sequence-coding-system))))
+ (set-glyph-face glyph 'unicode-error-sequence-warning-face)
+ (put-char-table key glyph disp-table)
+ nil)
+ unicode-error-default-translation-table))
;; Fit the charsets preferences in unicode conversions for the
;; language environment.
diff -r 6b0000935adc -r b75b075a9041 lisp/specifier.el
--- a/lisp/specifier.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/specifier.el Tue Aug 05 09:06:41 2008 +0200
@@ -988,4 +988,18 @@
(specifier-instance specifier domain))))
(list (cons nil inst))))))))))
+;; Character 160 (octal 0240) displays incorrectly under some X
+;; installations apparently due to a universally crocked font width
+;; specification. Display it as a space since that's what's expected.
+;;
+;; (make-char-table 'generic) instead of (make-display-table) because
+;; make-display-table isn't dumped, and this file is.
+;;
+;; We also want the global display table to be actually globally
+;; initialised; that's why this is here, and not in x-init.el, these days.
+
+(set-specifier current-display-table
+ #s(char-table type generic data (?\xA0 ?\x20))
+ 'global)
+
;;; specifier.el ends here
diff -r 6b0000935adc -r b75b075a9041 lisp/unicode.el
--- a/lisp/unicode.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/unicode.el Tue Aug 05 09:06:41 2008 +0200
@@ -611,6 +611,9 @@
(translate-region start finish table))
begin end buffer))
+;; Sure would be nice to be able to use defface here.
+(copy-face 'highlight 'unicode-error-sequence-warning-face)
+
(unless (featurep 'mule)
;; We do this in such a roundabout way--instead of having the above defun
;; and defvar calls inside a (when (featurep 'mule) ...) form--to have
diff -r 6b0000935adc -r b75b075a9041 lisp/x-init.el
--- a/lisp/x-init.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/x-init.el Tue Aug 05 09:06:41 2008 +0200
@@ -312,15 +312,4 @@
(if (equal display "") (setq display nil))
(make-frame-on-device 'x display props))
-;; Character 160 (octal 0240) displays incorrectly under X apparently
-;; due to a universally crocked font width specification. Display it
-;; as a space since that's what seems to be expected.
-;;
-;; (make-char-table 'generic) instead of (make-display-table) because
-;; make-display-table isn't dumped, and this file is.
-
-(let ((tab (make-char-table 'generic)))
- (put-char-table 160 " " tab)
- (set-specifier current-display-table tab 'global 'x))
-
;;; x-init.el ends here
--
¿Dónde estará ahora mi sobrino Yoghurtu Nghé, que tuvo que huir
precipitadamente de la aldea por culpa de la escasez de rinocerontes?
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
[PATCH] Revamp Arabic support, add greek-iso-8bit-with-esc, arabic-iso-8bit-with-esc
16 years, 4 months
Aidan Kehoe
In case of encoding problems, there’s a bzip2’d version of the patch
attached.
# HG changeset patch
# User Aidan Kehoe <kehoea(a)parhasard.net>
# Date 1217918237 -7200
# Node ID d402d7b18bd88bab41f37a186554f8c1f2f0eaae
# Parent 6b0000935adc3f79cb189350d6014d4b4aff734e
Revamp the Arabic support. Create greek-iso-8bit-with-esc, arabic-iso-8bit-with-esc.
src/ChangeLog addition:
2008-08-05 Aidan Kehoe <kehoea(a)parhasard.net>
* mule-charset.c (complex_vars_of_mule_charset):
Remove Vcharset_arabic_iso8859_7.
* lisp.h: Remove Vcharset_arabic_iso8859_7.
See commentary in lisp/mule/iso-with-esc.el for motivation.
lisp/ChangeLog addition:
2008-08-05 Aidan Kehoe <kehoea(a)parhasard.net>
* mule/iso-with-esc.el (greek-iso-8bit-with-esc):
(arabic-iso-8bit-with-esc):
Add these two here. Move the implementation of the
'arabic-iso8859-6 character set here, with commentary on why that
is reasonable.
* mule/arabic.el (iso-8859-6):
Add iso-8859-6, windows-1256 implementations using
make-8-bit-coding-system. Remove our non-standard Mule character
sets.
* unicode.el (load-unicode-tables): Remove Arabic since it's no
longer dumped.
* mule/mule-msw-init-late.el: Remove Arabic.
* mule/mule-category.el (predefined-category-list): Remove
Arabic.
etc/ChangeLog addition:
2008-08-05 Aidan Kehoe <kehoea(a)parhasard.net>
* HELLO: Encode the Arabic using UTF-8 sequences, not ISO-8859-6.
diff -r 6b0000935adc -r d402d7b18bd8 etc/ChangeLog
--- a/etc/ChangeLog Sat Jul 26 13:50:27 2008 +0300
+++ b/etc/ChangeLog Tue Aug 05 08:37:17 2008 +0200
@@ -1,3 +1,7 @@
+2008-08-05 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * HELLO: Encode the Arabic using UTF-8 sequences, not ISO-8859-6.
+
2008-02-21 Stephen J. Turnbull <stephen(a)xemacs.org>
* README: Add descriptions of Daniel Polansky's icons.
diff -r 6b0000935adc -r d402d7b18bd8 etc/HELLO
--- a/etc/HELLO Sat Jul 26 13:50:27 2008 +0300
+++ b/etc/HELLO Tue Aug 05 08:37:17 2008 +0200
@@ -3,7 +3,7 @@
---------------------------------------------------------
Amharic ($(3"c!<!N"^(B) $(3!A!,!>(B
-Arabic [2](38R(47d(3T!JSa(4W(3W[0](B
+Arabic (%GØ©ÙÙبرعÙا%@) %GÙ
ÙÙÙع%@ %GÙ
اÙÙسÙا%@
Croatian (Hrvatski) Bog (Bok), Dobar dan
Czech (,Bh(Besky) Dobr,B}(B den
Danish (Dansk) Hej, Goddag
diff -r 6b0000935adc -r d402d7b18bd8 lisp/ChangeLog
--- a/lisp/ChangeLog Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/ChangeLog Tue Aug 05 08:37:17 2008 +0200
@@ -1,3 +1,20 @@
+2008-08-05 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * mule/iso-with-esc.el (greek-iso-8bit-with-esc):
+ (arabic-iso-8bit-with-esc):
+ Add these two here. Move the implementation of the
+ 'arabic-iso8859-6 character set here, with commentary on why that
+ is reasonable.
+ * mule/arabic.el (iso-8859-6):
+ Add iso-8859-6, windows-1256 implementations using
+ make-8-bit-coding-system. Remove our non-standard Mule character
+ sets.
+ * unicode.el (load-unicode-tables): Remove Arabic since it's no
+ longer dumped.
+ * mule/mule-msw-init-late.el: Remove Arabic.
+ * mule/mule-category.el (predefined-category-list): Remove
+ Arabic.
+
2008-07-26 Aidan Kehoe <kehoea(a)parhasard.net>
* x-init.el (x-initialize-compose):
diff -r 6b0000935adc -r d402d7b18bd8 lisp/mule/arabic.el
--- a/lisp/mule/arabic.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/mule/arabic.el Tue Aug 05 08:37:17 2008 +0200
@@ -28,79 +28,204 @@
;;; Code:
-; (make-charset 'arabic-iso8859-6
-; "Right-Hand Part of Latin/Arabic Alphabet (ISO/IEC 8859-6): ISO-IR-127"
-; '(dimension
-; 1
-; registry "ISO8859-6"
-; chars 96
-; columns 1
-; direction r2l
-; final ?G
-; graphic 1
-; short-name "RHP of ISO8859/6"
-; long-name "RHP of Arabic (ISO 8859-6): ISO-IR-127"
-; ))
+;; See iso-with-esc.el for commentary on the ISO standard Arabic character
+;; set.
-;; For Arabic, we need three different types of character sets.
-;; Digits are of direction left-to-right and of width 1-column.
-;; Others are of direction right-to-left and of width 1-column or
-;; 2-column.
-(make-charset 'arabic-digit "Arabic digit"
- '(dimension 1
- registries ["MuleArabic-0"]
- chars 94
- columns 1
- direction l2r
- final ?2
- graphic 0
- short-name "Arabic digit"
- long-name "Arabic digit"
- ))
+(make-8-bit-coding-system
+ 'iso-8859-6
+ '((#xA0 ?\u00A0) ;; NO-BREAK SPACE
+ (#xA4 ?\u00A4) ;; CURRENCY SIGN
+ (#xAC ?\u060C) ;; ARABIC COMMA
+ (#xAD ?\u00AD) ;; SOFT HYPHEN
+ (#xBB ?\u061B) ;; ARABIC SEMICOLON
+ (#xBF ?\u061F) ;; ARABIC QUESTION MARK
+ (#xC1 ?\u0621) ;; ARABIC LETTER HAMZA
+ (#xC2 ?\u0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE
+ (#xC3 ?\u0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE
+ (#xC4 ?\u0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE
+ (#xC5 ?\u0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW
+ (#xC6 ?\u0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE
+ (#xC7 ?\u0627) ;; ARABIC LETTER ALEF
+ (#xC8 ?\u0628) ;; ARABIC LETTER BEH
+ (#xC9 ?\u0629) ;; ARABIC LETTER TEH MARBUTA
+ (#xCA ?\u062A) ;; ARABIC LETTER TEH
+ (#xCB ?\u062B) ;; ARABIC LETTER THEH
+ (#xCC ?\u062C) ;; ARABIC LETTER JEEM
+ (#xCD ?\u062D) ;; ARABIC LETTER HAH
+ (#xCE ?\u062E) ;; ARABIC LETTER KHAH
+ (#xCF ?\u062F) ;; ARABIC LETTER DAL
+ (#xD0 ?\u0630) ;; ARABIC LETTER THAL
+ (#xD1 ?\u0631) ;; ARABIC LETTER REH
+ (#xD2 ?\u0632) ;; ARABIC LETTER ZAIN
+ (#xD3 ?\u0633) ;; ARABIC LETTER SEEN
+ (#xD4 ?\u0634) ;; ARABIC LETTER SHEEN
+ (#xD5 ?\u0635) ;; ARABIC LETTER SAD
+ (#xD6 ?\u0636) ;; ARABIC LETTER DAD
+ (#xD7 ?\u0637) ;; ARABIC LETTER TAH
+ (#xD8 ?\u0638) ;; ARABIC LETTER ZAH
+ (#xD9 ?\u0639) ;; ARABIC LETTER AIN
+ (#xDA ?\u063A) ;; ARABIC LETTER GHAIN
+ (#xE0 ?\u0640) ;; ARABIC TATWEEL
+ (#xE1 ?\u0641) ;; ARABIC LETTER FEH
+ (#xE2 ?\u0642) ;; ARABIC LETTER QAF
+ (#xE3 ?\u0643) ;; ARABIC LETTER KAF
+ (#xE4 ?\u0644) ;; ARABIC LETTER LAM
+ (#xE5 ?\u0645) ;; ARABIC LETTER MEEM
+ (#xE6 ?\u0646) ;; ARABIC LETTER NOON
+ (#xE7 ?\u0647) ;; ARABIC LETTER HEH
+ (#xE8 ?\u0648) ;; ARABIC LETTER WAW
+ (#xE9 ?\u0649) ;; ARABIC LETTER ALEF MAKSURA
+ (#xEA ?\u064A) ;; ARABIC LETTER YEH
+ (#xEB ?\u064B) ;; ARABIC FATHATAN
+ (#xEC ?\u064C) ;; ARABIC DAMMATAN
+ (#xED ?\u064D) ;; ARABIC KASRATAN
+ (#xEE ?\u064E) ;; ARABIC FATHA
+ (#xEF ?\u064F) ;; ARABIC DAMMA
+ (#xF0 ?\u0650) ;; ARABIC KASRA
+ (#xF1 ?\u0651) ;; ARABIC SHADDA
+ (#xF2 ?\u0652)) ;; ARABIC SUKUN
+ "ISO 8859-6 (Arabic)"
+'(mnemonic "ArISO"))
-(make-charset 'arabic-1-column "Arabic 1-column"
- '(dimension
- 1
- registries ["MuleArabic-1"]
- chars 94
- columns 1
- direction r2l
- final ?3
- graphic 0
- short-name "Arabic 1-col"
- long-name "Arabic 1-column"
- ))
+(make-8-bit-coding-system
+ 'windows-1256
+ '((#x80 ?\u20AC) ;; EURO SIGN
+ (#x81 ?\u067E) ;; ARABIC LETTER PEH
+ (#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 ?\u0679) ;; ARABIC LETTER TTEH
+ (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ (#x8C ?\u0152) ;; LATIN CAPITAL LIGATURE OE
+ (#x8D ?\u0686) ;; ARABIC LETTER TCHEH
+ (#x8E ?\u0698) ;; ARABIC LETTER JEH
+ (#x8F ?\u0688) ;; ARABIC LETTER DDAL
+ (#x90 ?\u06AF) ;; ARABIC LETTER GAF
+ (#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 ?\u06A9) ;; ARABIC LETTER KEHEH
+ (#x99 ?\u2122) ;; TRADE MARK SIGN
+ (#x9A ?\u0691) ;; ARABIC LETTER RREH
+ (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ (#x9C ?\u0153) ;; LATIN SMALL LIGATURE OE
+ (#x9D ?\u200C) ;; ZERO WIDTH NON-JOINER
+ (#x9E ?\u200D) ;; ZERO WIDTH JOINER
+ (#x9F ?\u06BA) ;; ARABIC LETTER NOON GHUNNA
+ (#xA0 ?\u00A0) ;; NO-BREAK SPACE
+ (#xA1 ?\u060C) ;; ARABIC COMMA
+ (#xA2 ?\u00A2) ;; CENT SIGN
+ (#xA3 ?\u00A3) ;; POUND SIGN
+ (#xA4 ?\u00A4) ;; CURRENCY SIGN
+ (#xA5 ?\u00A5) ;; YEN SIGN
+ (#xA6 ?\u00A6) ;; BROKEN BAR
+ (#xA7 ?\u00A7) ;; SECTION SIGN
+ (#xA8 ?\u00A8) ;; DIAERESIS
+ (#xA9 ?\u00A9) ;; COPYRIGHT SIGN
+ (#xAA ?\u06BE) ;; ARABIC LETTER HEH DOACHASHMEE
+ (#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 ?\u061B) ;; ARABIC SEMICOLON
+ (#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 ?\u061F) ;; ARABIC QUESTION MARK
+ (#xC0 ?\u06C1) ;; ARABIC LETTER HEH GOAL
+ (#xC1 ?\u0621) ;; ARABIC LETTER HAMZA
+ (#xC2 ?\u0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE
+ (#xC3 ?\u0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE
+ (#xC4 ?\u0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE
+ (#xC5 ?\u0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW
+ (#xC6 ?\u0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE
+ (#xC7 ?\u0627) ;; ARABIC LETTER ALEF
+ (#xC8 ?\u0628) ;; ARABIC LETTER BEH
+ (#xC9 ?\u0629) ;; ARABIC LETTER TEH MARBUTA
+ (#xCA ?\u062A) ;; ARABIC LETTER TEH
+ (#xCB ?\u062B) ;; ARABIC LETTER THEH
+ (#xCC ?\u062C) ;; ARABIC LETTER JEEM
+ (#xCD ?\u062D) ;; ARABIC LETTER HAH
+ (#xCE ?\u062E) ;; ARABIC LETTER KHAH
+ (#xCF ?\u062F) ;; ARABIC LETTER DAL
+ (#xD0 ?\u0630) ;; ARABIC LETTER THAL
+ (#xD1 ?\u0631) ;; ARABIC LETTER REH
+ (#xD2 ?\u0632) ;; ARABIC LETTER ZAIN
+ (#xD3 ?\u0633) ;; ARABIC LETTER SEEN
+ (#xD4 ?\u0634) ;; ARABIC LETTER SHEEN
+ (#xD5 ?\u0635) ;; ARABIC LETTER SAD
+ (#xD6 ?\u0636) ;; ARABIC LETTER DAD
+ (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN
+ (#xD8 ?\u0637) ;; ARABIC LETTER TAH
+ (#xD9 ?\u0638) ;; ARABIC LETTER ZAH
+ (#xDA ?\u0639) ;; ARABIC LETTER AIN
+ (#xDB ?\u063A) ;; ARABIC LETTER GHAIN
+ (#xDC ?\u0640) ;; ARABIC TATWEEL
+ (#xDD ?\u0641) ;; ARABIC LETTER FEH
+ (#xDE ?\u0642) ;; ARABIC LETTER QAF
+ (#xDF ?\u0643) ;; ARABIC LETTER KAF
+ (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE
+ (#xE1 ?\u0644) ;; ARABIC LETTER LAM
+ (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
+ (#xE3 ?\u0645) ;; ARABIC LETTER MEEM
+ (#xE4 ?\u0646) ;; ARABIC LETTER NOON
+ (#xE5 ?\u0647) ;; ARABIC LETTER HEH
+ (#xE6 ?\u0648) ;; ARABIC LETTER WAW
+ (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
+ (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE
+ (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE
+ (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
+ (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
+ (#xEC ?\u0649) ;; ARABIC LETTER ALEF MAKSURA
+ (#xED ?\u064A) ;; ARABIC LETTER YEH
+ (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
+ (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS
+ (#xF0 ?\u064B) ;; ARABIC FATHATAN
+ (#xF1 ?\u064C) ;; ARABIC DAMMATAN
+ (#xF2 ?\u064D) ;; ARABIC KASRATAN
+ (#xF3 ?\u064E) ;; ARABIC FATHA
+ (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
+ (#xF5 ?\u064F) ;; ARABIC DAMMA
+ (#xF6 ?\u0650) ;; ARABIC KASRA
+ (#xF7 ?\u00F7) ;; DIVISION SIGN
+ (#xF8 ?\u0651) ;; ARABIC SHADDA
+ (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE
+ (#xFA ?\u0652) ;; ARABIC SUKUN
+ (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
+ (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
+ (#xFD ?\u200E) ;; LEFT-TO-RIGHT MARK
+ (#xFE ?\u200F) ;; RIGHT-TO-LEFT MARK
+ (#xFF ?\u06D2));; ARABIC LETTER YEH BARREE
+ "Windows-1256 (Arabic)"
+ '(mnemonic "cp1256"
+ documentation
+ "This is the much Windows encoding for Arabic, much superior to the ISO
+standard one."
+ aliases (cp1256)))
-(make-charset 'arabic-2-column "Arabic 2-column"
- '(dimension
- 1
- registries ["MuleArabic-2"]
- chars 94
- columns 2
- direction r2l
- final ?4
- graphic 0
- short-name "Arabic 2-col"
- long-name "Arabic 2-column"
- ))
+;; The Mac Arabic coding systems don't have defined MIME names.
-(make-coding-system 'iso-8859-6 'iso2022
- "ISO-8859-6 (Arabic)"
- '(charset-g0 ascii
- charset-g1 arabic-iso8859-6
- charset-g2 t
- charset-g3 t
- no-iso6429 t
- mnemonic "MIME/Arbc"
- ))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; ARABIC
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-;; (define-language-environment 'arabic
-;; "Arabic"
-;; (lambda ()
-;; (require 'arabic)))
+;; #### Decide what to do about the syntax of the Arabic punctuation.
;;; arabic.el ends here
diff -r 6b0000935adc -r d402d7b18bd8 lisp/mule/iso-with-esc.el
--- a/lisp/mule/iso-with-esc.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/mule/iso-with-esc.el Tue Aug 05 08:37:17 2008 +0200
@@ -98,3 +98,108 @@
charset-g3 t
no-iso6429 t
mnemonic "MIME/Hbrw"))
+
+;;;###autoload
+(make-coding-system
+ 'greek-iso-8bit-with-esc 'iso2022 "MIME ISO-8859-7"
+ '(charset-g0 ascii
+ charset-g1 greek-iso8859-7
+ charset-g2 t
+ charset-g3 t
+ mnemonic "Grk"))
+
+;; ISO 8859-6 is such a useless character set that it seems a waste of
+;; codespace to dump it. Let me count the ways:
+;;
+;; 1. It doesn't support Persian or Urdu, let alone Sinhalese, despite
+;; plenty of unallocated code points.
+;;
+;; 2. It doesn't encode all the vowel diacritics (the Harakaat) despite that
+;; they are necessary, even for the Arabs, for basic things like
+;; dictionary entries, children's books, and occasional disambiguation.
+;;
+;; 3. The Arabs don't use it, they use Windows-1256, which also supports
+;; Persian, at least, as well as the French characters necessary in
+;; Lebanon and North Africa.
+
+(make-charset
+ 'arabic-iso8859-6
+ "Right-Hand Part of Latin/Arabic Alphabet (ISO/IEC 8859-6): ISO-IR-127"
+ '(dimension 1
+ registry "ISO8859-6"
+ chars 96
+ columns 1
+ direction r2l
+ final ?G
+ graphic 1
+ short-name "RHP of ISO8859/6"
+ long-name "RHP of Arabic (ISO 8859-6): ISO-IR-127"))
+
+(loop
+ for (iso8859-6 unicode)
+ in '((#xA0 #x00A0) ;; NO-BREAK SPACE
+ (#xA4 #x00A4) ;; CURRENCY SIGN
+ (#xAC #x060C) ;; ARABIC COMMA
+ (#xAD #x00AD) ;; SOFT HYPHEN
+ (#xBB #x061B) ;; ARABIC SEMICOLON
+ (#xBF #x061F) ;; ARABIC QUESTION MARK
+ (#xC1 #x0621) ;; ARABIC LETTER HAMZA
+ (#xC2 #x0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE
+ (#xC3 #x0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE
+ (#xC4 #x0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE
+ (#xC5 #x0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW
+ (#xC6 #x0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE
+ (#xC7 #x0627) ;; ARABIC LETTER ALEF
+ (#xC8 #x0628) ;; ARABIC LETTER BEH
+ (#xC9 #x0629) ;; ARABIC LETTER TEH MARBUTA
+ (#xCA #x062A) ;; ARABIC LETTER TEH
+ (#xCB #x062B) ;; ARABIC LETTER THEH
+ (#xCC #x062C) ;; ARABIC LETTER JEEM
+ (#xCD #x062D) ;; ARABIC LETTER HAH
+ (#xCE #x062E) ;; ARABIC LETTER KHAH
+ (#xCF #x062F) ;; ARABIC LETTER DAL
+ (#xD0 #x0630) ;; ARABIC LETTER THAL
+ (#xD1 #x0631) ;; ARABIC LETTER REH
+ (#xD2 #x0632) ;; ARABIC LETTER ZAIN
+ (#xD3 #x0633) ;; ARABIC LETTER SEEN
+ (#xD4 #x0634) ;; ARABIC LETTER SHEEN
+ (#xD5 #x0635) ;; ARABIC LETTER SAD
+ (#xD6 #x0636) ;; ARABIC LETTER DAD
+ (#xD7 #x0637) ;; ARABIC LETTER TAH
+ (#xD8 #x0638) ;; ARABIC LETTER ZAH
+ (#xD9 #x0639) ;; ARABIC LETTER AIN
+ (#xDA #x063A) ;; ARABIC LETTER GHAIN
+ (#xE0 #x0640) ;; ARABIC TATWEEL
+ (#xE1 #x0641) ;; ARABIC LETTER FEH
+ (#xE2 #x0642) ;; ARABIC LETTER QAF
+ (#xE3 #x0643) ;; ARABIC LETTER KAF
+ (#xE4 #x0644) ;; ARABIC LETTER LAM
+ (#xE5 #x0645) ;; ARABIC LETTER MEEM
+ (#xE6 #x0646) ;; ARABIC LETTER NOON
+ (#xE7 #x0647) ;; ARABIC LETTER HEH
+ (#xE8 #x0648) ;; ARABIC LETTER WAW
+ (#xE9 #x0649) ;; ARABIC LETTER ALEF MAKSURA
+ (#xEA #x064A) ;; ARABIC LETTER YEH
+ (#xEB #x064B) ;; ARABIC FATHATAN
+ (#xEC #x064C) ;; ARABIC DAMMATAN
+ (#xED #x064D) ;; ARABIC KASRATAN
+ (#xEE #x064E) ;; ARABIC FATHA
+ (#xEF #x064F) ;; ARABIC DAMMA
+ (#xF0 #x0650) ;; ARABIC KASRA
+ (#xF1 #x0651) ;; ARABIC SHADDA
+ (#xF2 #x0652));; ARABIC SUKUN
+ do (set-unicode-conversion (make-char 'arabic-iso8859-6 iso8859-6)
+ unicode))
+
+;;;###autoload
+(make-coding-system
+ 'arabic-iso-8bit-with-esc 'iso2022 ;; GNU's iso-8859-6 is
+ ;; iso2022-compatible.
+ "ISO-8859-6 (Arabic)"
+ '(charset-g0 ascii
+ charset-g1 arabic-iso8859-6
+ charset-g2 t
+ charset-g3 t
+ no-iso6429 t
+ mnemonic "MIME/Arbc"))
+
diff -r 6b0000935adc -r d402d7b18bd8 lisp/mule/mule-category.el
--- a/lisp/mule/mule-category.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/mule/mule-category.el Tue Aug 05 08:37:17 2008 +0200
@@ -244,7 +244,6 @@
(latin-iso8859-4 ?l)
(latin-iso8859-9 ?l)
(cyrillic-iso8859-5 ?y "Cyrillic character set")
- (arabic-iso8859-6 ?b "Arabic character set")
(greek-iso8859-7 ?g "Greek character set")
(hebrew-iso8859-8 ?w "Hebrew character set")
(katakana-jisx0201 ?k "Japanese 1-byte Katakana character set")
diff -r 6b0000935adc -r d402d7b18bd8 lisp/mule/mule-msw-init-late.el
--- a/lisp/mule/mule-msw-init-late.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/mule/mule-msw-init-late.el Tue Aug 05 08:37:17 2008 +0200
@@ -37,7 +37,6 @@
(greek-iso8859-7 . "Greek")
(latin-iso8859-9 . "Turkish")
(hebrew-iso8859-8 . "Hebrew")
- (arabic-iso8859-6 . "Arabic")
(latin-iso8859-4 . "Baltic")
(vietnamese-viscii-lower . "Viet Nam")
(vietnamese-viscii-upper . "Viet Nam")
diff -r 6b0000935adc -r d402d7b18bd8 lisp/mule/mule-win32-init.el
--- a/lisp/mule/mule-win32-init.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/mule/mule-win32-init.el Tue Aug 05 08:37:17 2008 +0200
@@ -162,7 +162,8 @@
; ("ANSI" 1253 no-conversion "Windows 3.1 Greek")
("ANSI" 1254 no-conversion "Windows 3.1 Turkish")
("ANSI" 1255 no-conversion "Hebrew")
- ("ANSI" 1256 no-conversion "Arabic")
+ ;; We implement these ourselves.
+ ; ("ANSI" 1256 no-conversion "Arabic")
("ANSI" 1257 no-conversion "Baltic")
("ANSI" 1258 no-conversion "VietNam")
;; #### Is this category right? I don't have Lunde to hand, and the
diff -r 6b0000935adc -r d402d7b18bd8 lisp/unicode.el
--- a/lisp/unicode.el Sat Jul 26 13:50:27 2008 +0300
+++ b/lisp/unicode.el Tue Aug 05 08:37:17 2008 +0200
@@ -73,7 +73,6 @@
("8859-3.TXT" latin-iso8859-3 #xA0 #xFF #x-80)
("8859-4.TXT" latin-iso8859-4 #xA0 #xFF #x-80)
("8859-5.TXT" cyrillic-iso8859-5 #xA0 #xFF #x-80)
- ("8859-6.TXT" arabic-iso8859-6 #xA0 #xFF #x-80)
("8859-7.TXT" greek-iso8859-7 #xA0 #xFF #x-80)
("8859-8.TXT" hebrew-iso8859-8 #xA0 #xFF #x-80)
("8859-9.TXT" latin-iso8859-9 #xA0 #xFF #x-80)
@@ -154,12 +153,12 @@
'(ascii control-1 latin-iso8859-1 latin-iso8859-2 latin-iso8859-15
greek-iso8859-7 hebrew-iso8859-8 ipa cyrillic-iso8859-5
latin-iso8859-16 latin-iso8859-3 latin-iso8859-4 latin-iso8859-9
- vietnamese-viscii-lower vietnamese-viscii-upper arabic-iso8859-6
+ vietnamese-viscii-lower vietnamese-viscii-upper
jit-ucs-charset-0 japanese-jisx0208 japanese-jisx0208-1978
japanese-jisx0212 japanese-jisx0213-1 japanese-jisx0213-2
chinese-gb2312 chinese-sisheng chinese-big5-1 chinese-big5-2
indian-is13194 korean-ksc5601 chinese-cns11643-1 chinese-cns11643-2
- chinese-isoir165 arabic-1-column arabic-2-column arabic-digit
+ chinese-isoir165
composite ethiopic indian-1-column indian-2-column jit-ucs-charset-0
katakana-jisx0201 lao thai-tis620 thai-xtis tibetan tibetan-1-column
latin-jisx0201 chinese-cns11643-3 chinese-cns11643-4
diff -r 6b0000935adc -r d402d7b18bd8 src/ChangeLog
--- a/src/ChangeLog Sat Jul 26 13:50:27 2008 +0300
+++ b/src/ChangeLog Tue Aug 05 08:37:17 2008 +0200
@@ -1,3 +1,10 @@
+2008-08-05 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * mule-charset.c (complex_vars_of_mule_charset):
+ Remove Vcharset_arabic_iso8859_7.
+ * lisp.h: Remove Vcharset_arabic_iso8859_7.
+ See commentary in lisp/mule/iso-with-esc.el for motivation.
+
2008-07-20 John Paul Wallington <jpw(a)pobox.com>
* nt.c (Fmswindows_short_file_name, Fmswindows_long_file_name):
diff -r 6b0000935adc -r d402d7b18bd8 src/lisp.h
--- a/src/lisp.h Sat Jul 26 13:50:27 2008 +0300
+++ b/src/lisp.h Tue Aug 05 08:37:17 2008 +0200
@@ -5229,7 +5229,6 @@
extern Lisp_Object Vcharset_latin_iso8859_4;
extern Lisp_Object Vcharset_thai_tis620;
extern Lisp_Object Vcharset_greek_iso8859_7;
-extern Lisp_Object Vcharset_arabic_iso8859_6;
extern Lisp_Object Vcharset_hebrew_iso8859_8;
extern Lisp_Object Vcharset_katakana_jisx0201;
extern Lisp_Object Vcharset_latin_jisx0201;
diff -r 6b0000935adc -r d402d7b18bd8 src/mule-charset.c
--- a/src/mule-charset.c Sat Jul 26 13:50:27 2008 +0300
+++ b/src/mule-charset.c Tue Aug 05 08:37:17 2008 +0200
@@ -47,7 +47,6 @@
Lisp_Object Vcharset_latin_iso8859_4;
Lisp_Object Vcharset_thai_tis620;
Lisp_Object Vcharset_greek_iso8859_7;
-Lisp_Object Vcharset_arabic_iso8859_6;
Lisp_Object Vcharset_hebrew_iso8859_8;
Lisp_Object Vcharset_katakana_jisx0201;
Lisp_Object Vcharset_latin_jisx0201;
@@ -94,7 +93,6 @@
Qlatin_iso8859_4,
Qthai_tis620,
Qgreek_iso8859_7,
- Qarabic_iso8859_6,
Qhebrew_iso8859_8,
Qkatakana_jisx0201,
Qlatin_jisx0201,
@@ -1112,7 +1110,6 @@
DEFSYMBOL (Qlatin_iso8859_4);
DEFSYMBOL (Qthai_tis620);
DEFSYMBOL (Qgreek_iso8859_7);
- DEFSYMBOL (Qarabic_iso8859_6);
DEFSYMBOL (Qhebrew_iso8859_8);
DEFSYMBOL (Qkatakana_jisx0201);
DEFSYMBOL (Qlatin_jisx0201);
@@ -1236,15 +1233,6 @@
build_msg_string ("ISO8859-7 (Greek)"),
build_msg_string ("ISO8859-7 (Greek)"),
vector1(build_string("iso8859-7")), 0, 0);
- staticpro (&Vcharset_arabic_iso8859_6);
- Vcharset_arabic_iso8859_6 =
- make_charset (LEADING_BYTE_ARABIC_ISO8859_6, Qarabic_iso8859_6, 2,
- CHARSET_TYPE_96, 1, 1, 'G',
- CHARSET_RIGHT_TO_LEFT,
- build_string ("ISO8859-6"),
- build_msg_string ("ISO8859-6 (Arabic)"),
- build_msg_string ("ISO8859-6 (Arabic)"),
- vector1(build_string ("iso8859-6")), 0, 0);
staticpro (&Vcharset_hebrew_iso8859_8);
Vcharset_hebrew_iso8859_8 =
make_charset (LEADING_BYTE_HEBREW_ISO8859_8, Qhebrew_iso8859_8, 2,
--
¿Dónde estará ahora mi sobrino Yoghurtu Nghé, que tuvo que huir
precipitadamente de la aldea por culpa de la escasez de rinocerontes?
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Call general device-type code at first device creation, not startup, Carbon.
16 years, 4 months
Aidan Kehoe
changeset: 4520:d883854f988d8346295cb43195bc4c8f9f71072e
tag: tip
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Sun Aug 03 13:13:47 2008 +0200
files: lisp/ChangeLog lisp/carbon-init.el src/ChangeLog src/device-carbon.c src/redisplay.c
description:
Call general device-type code at first device creation, not startup, Carbon.
src/ChangeLog addition:
2008-08-03 Aidan Kehoe <kehoea(a)parhasard.net>
* device-carbon.c: (Qmake_device_early_carbon_entry_point,
Qmake_device_late_carbon_entry_point): Add these two new symbols,
following the approach used in the other device code.
(carbon_init_device): Call
#'make-device-early-carbon-entry-point.
(carbon_finish_init_device): Call
#'make-device-late-carbon-entry-point.
* redisplay.c (init_redisplay): Set initial-device-type, not
initial-window-system here.
lisp/ChangeLog addition:
2008-08-03 Aidan Kehoe <kehoea(a)parhasard.net>
* carbon-init.el: Add copyright information. Use the
#'make-device-early-carbon-entry-point,
#'make-device-late-carbon-entry-point approach the other console
code now uses. Document the latter function, alias the former to
#'ignore, since there's nothing for it to do right now.
diff -r 20604b71c40bbf752a83a96834da80a74cb62046 -r d883854f988d8346295cb43195bc4c8f9f71072e lisp/ChangeLog
--- a/lisp/ChangeLog Sun Aug 03 12:23:13 2008 +0200
+++ b/lisp/ChangeLog Sun Aug 03 13:13:47 2008 +0200
@@ -1,3 +1,11 @@ 2008-07-26 Aidan Kehoe <kehoea@parhasa
+2008-08-03 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * carbon-init.el: Add copyright information. Use the
+ #'make-device-early-carbon-entry-point,
+ #'make-device-late-carbon-entry-point approach the other console
+ code now uses. Document the latter function, alias the former to
+ #'ignore, since there's nothing for it to do right now.
+
2008-07-26 Aidan Kehoe <kehoea(a)parhasard.net>
* x-init.el (x-initialize-compose):
diff -r 20604b71c40bbf752a83a96834da80a74cb62046 -r d883854f988d8346295cb43195bc4c8f9f71072e lisp/carbon-init.el
--- a/lisp/carbon-init.el Sun Aug 03 12:23:13 2008 +0200
+++ b/lisp/carbon-init.el Sun Aug 03 13:13:47 2008 +0200
@@ -1,27 +1,56 @@
-(defvar carbon-win-initted nil)
-(defvar carbon-pre-win-initted nil)
-(defvar carbon-post-win-initted nil)
+;;; carbon-init.el --- initialization code for Carbon
-(defun init-pre-carbon-win ()
- "Initialize Carbon GUI at startup (pre). Don't call this."
- (unless carbon-pre-win-initted
- (setq carbon-pre-win-initted t)))
+;; Copyright (C) 2008 Free Software Foundation, Inc.
-(defun init-carbon-win ()
- "Initialize carbon GUI at startup. Don't call this."
- (unless carbon-win-initted
- (init-pre-carbon-win)
- (make-carbon-device)
- (init-post-carbon-win (selected-console))
+;; Originally written by Andrew Choi, his work was placed in the public
+;; domain in 2005. Further work by Aidan Kehoe, assigned to the Free Sofware
+;; Foundation under the GPL.
+
+;; Maintainer: XEmacs Development Team
+;; Keywords: terminals, dumped
+
+;; This file is part of XEmacs.
+
+;; XEmacs 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.
+
+;; XEmacs 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 XEmacs; see the file COPYING. If not, see
+;; <http://www.gnu.org/licenses/>.
+
+;;; Synched up with: Not in GNU Emacs.
+
+;;; Commentary:
+
+;; This file is dumped with XEmacs (when X support is compiled in).
+
+;;; Code:
+
+;; No need to have this do anything for now.
+(defalias 'make-device-early-carbon-entry-point #'ignore)
+
+;; This is useful, though.
+(defvar make-device-late-carbon-entry-point-called-p nil
+ "Whether `make-device-late-carbon-entry-point' has been called, at least once.
+
+Under Carbon, when XEmacs is started from the Finder, the initial directory
+is `/'; this is inappropriate for XEmacs, and we change to the user's home
+directory on startup.")
+
+(defun make-device-late-carbon-entry-point (device)
+ "Entry point to do any Lisp-level Carbon device-specific initialization."
+ (unless make-device-late-carbon-entry-point-called-p
;; If Emacs is started from the Finder, change the default directory
;; to the user's home directory.
(if (string= default-directory "/")
(cd "~"))
+ (setq make-device-late-carbon-entry-point-called-p t)))
- (setq carbon-win-initted t)))
-
-(defun init-post-carbon-win (console)
- "Initialize carbon GUI at startup (post). Don't call this."
- (unless carbon-post-win-initted
- (setq carbon-post-win-initted t)))
diff -r 20604b71c40bbf752a83a96834da80a74cb62046 -r d883854f988d8346295cb43195bc4c8f9f71072e src/ChangeLog
--- a/src/ChangeLog Sun Aug 03 12:23:13 2008 +0200
+++ b/src/ChangeLog Sun Aug 03 13:13:47 2008 +0200
@@ -1,3 +1,15 @@ 2008-07-20 John Paul Wallington <jpw@p
+2008-08-03 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * device-carbon.c: (Qmake_device_early_carbon_entry_point,
+ Qmake_device_late_carbon_entry_point): Add these two new symbols,
+ following the approach used in the other device code.
+ (carbon_init_device): Call
+ #'make-device-early-carbon-entry-point.
+ (carbon_finish_init_device): Call
+ #'make-device-late-carbon-entry-point.
+ * redisplay.c (init_redisplay): Set initial-device-type, not
+ initial-window-system here.
+
2008-07-20 John Paul Wallington <jpw(a)pobox.com>
* nt.c (Fmswindows_short_file_name, Fmswindows_long_file_name):
diff -r 20604b71c40bbf752a83a96834da80a74cb62046 -r d883854f988d8346295cb43195bc4c8f9f71072e src/device-carbon.c
--- a/src/device-carbon.c Sun Aug 03 12:23:13 2008 +0200
+++ b/src/device-carbon.c Sun Aug 03 13:13:47 2008 +0200
@@ -25,6 +25,9 @@
#include "console-carbon-impl.h"
+Lisp_Object Qmake_device_early_carbon_entry_point,
+ Qmake_device_late_carbon_entry_point;
+
static void
check_app_is_bundled (void)
{
@@ -48,6 +51,9 @@ carbon_init_device (struct device *d, Li
DEVICE_CARBON_DATA (d) = xnew_and_zero (struct carbon_device);
+ /* Run the elisp side of the carbon device initialization. */
+ call0 (Qmake_device_early_carbon_entry_point);
+
DEVICE_CARBON_COLOR_SPACE (d) = CGColorSpaceCreateDeviceRGB ();
/* Without this, isearch, for instance, will think it's running on
@@ -61,8 +67,9 @@ carbon_init_device (struct device *d, Li
}
static void
-carbon_finish_init_device(struct device * UNUSED (d), Lisp_Object UNUSED (props))
+carbon_finish_init_device(struct device * d, Lisp_Object UNUSED (props))
{
+ call1 (Qmake_device_late_carbon_entry_point, wrap_device (d));
}
static void
@@ -97,6 +104,8 @@ void
void
syms_of_device_carbon (void)
{
+ DEFSYMBOL (Qmake_device_early_carbon_entry_point);
+ DEFSYMBOL (Qmake_device_late_carbon_entry_point);
}
void
diff -r 20604b71c40bbf752a83a96834da80a74cb62046 -r d883854f988d8346295cb43195bc4c8f9f71072e src/redisplay.c
--- a/src/redisplay.c Sun Aug 03 12:23:13 2008 +0200
+++ b/src/redisplay.c Sun Aug 03 13:13:47 2008 +0200
@@ -9799,7 +9799,7 @@ init_redisplay (void)
{
/* Some stuff checks this way early. */
Vwindow_system = Qcarbon;
- Vinitial_window_system = Qcarbon;
+ Vinitial_device_type = Qcarbon;
return;
}
#endif /* HAVE_MS_WINDOWS */
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Spelling fixes.
16 years, 4 months
Aidan Kehoe
changeset: 4518:6b0000935adc3f79cb189350d6014d4b4aff734e
user: "Ville SkyttÀ <scop(a)xemacs.org>"
date: Sat Jul 26 13:50:27 2008 +0300
files: man/ChangeLog man/xemacs/custom.texi man/xemacs/frame.texi man/xemacs/mule.texi man/xemacs/packages.texi man/xemacs/programs.texi man/xemacs/trouble.texi
description:
Spelling fixes.
diff -r 866b84b7c97e05aa9d2fabe6ace194f19611018a -r 6b0000935adc3f79cb189350d6014d4b4aff734e man/ChangeLog
--- a/man/ChangeLog Sat Jul 26 11:50:26 2008 +0200
+++ b/man/ChangeLog Sat Jul 26 13:50:27 2008 +0300
@@ -1,3 +1,9 @@ 2008-07-26 Aidan Kehoe <kehoea@parhasa
+2008-07-26 Ville Skyttä <scop(a)xemacs.org>
+
+ * xemacs/custom.texi, xemacs/frame.texi, xemacs/mule.texi,
+ xemacs/packages.texi, xemacs/programs.texi, xemacs/trouble.texi:
+ Spelling fixes.
+
2008-07-26 Aidan Kehoe <kehoea(a)parhasard.net>
* lispref/objects.texi (Character Type):
diff -r 866b84b7c97e05aa9d2fabe6ace194f19611018a -r 6b0000935adc3f79cb189350d6014d4b4aff734e man/xemacs/custom.texi
--- a/man/xemacs/custom.texi Sat Jul 26 11:50:26 2008 +0200
+++ b/man/xemacs/custom.texi Sat Jul 26 13:50:27 2008 +0300
@@ -136,7 +136,7 @@ behavior (denoted by a symbol), and enab
@c functions to enable or disable a given behavior. The behavior registry
@c was introduced in XEmacs 21.5.6.
@c
-@c @defun enable-behavior behavior &optionl force
+@c @defun enable-behavior behavior &optional force
@c Called interactively, prompt the user, read a behavior symbol name with
@c completion for @var{behavior}, and take @var{force} from the prefix
@c argument. Then enable the behavior registered under the symbol
@@ -2282,7 +2282,7 @@ convention which is @emph{precise}, @emp
@emph{convenient}. Precision means that all properties available in the
programming API can be individually specified. Accuracy means that the
truename of the font is exactly the list of all properties specified by
-the font. Thus, the anomolies that occur with XLFDs on many servers
+the font. Thus, the anomalies that occur with XLFDs on many servers
(including modern Linux distributions with XFree86 or X.org servers)
cannot occur. Convenience is subjective, of course. However,
@file{fontconfig} provides a configuration system which (1) explicitly
diff -r 866b84b7c97e05aa9d2fabe6ace194f19611018a -r 6b0000935adc3f79cb189350d6014d4b4aff734e man/xemacs/frame.texi
--- a/man/xemacs/frame.texi Sat Jul 26 11:50:26 2008 +0200
+++ b/man/xemacs/frame.texi Sat Jul 26 13:50:27 2008 +0300
@@ -343,7 +343,7 @@ XEmacsen, the @samp{Mule} menu will be m
XEmacs scrollbars provide the usual interface. Arrow buttons at either
end allow for line by line scrolling, including autorepeat. Clicking in
-the scrollbar itself provides scrolling by windowsfull, depending on
+the scrollbar itself provides scrolling by a windowful, depending on
which side of the slider is clicked. The slider itself may be dragged
for smooth scrolling.
@@ -400,7 +400,7 @@ example, change every time the selected
example, change every time the selected buffer in the frame changes.
And for progress gauges a gutter to contain the gauge is typically
created on the fly when needed, then destroyed when the operation whose
-staus is being displayed is completed.
+status is being displayed is completed.
Buffer tabs, having somewhat complex behavior, deserve a closer look.
By default, a row of buffer tabs is displayed at the top of every frame.
diff -r 866b84b7c97e05aa9d2fabe6ace194f19611018a -r 6b0000935adc3f79cb189350d6014d4b4aff734e man/xemacs/mule.texi
--- a/man/xemacs/mule.texi Sat Jul 26 11:50:26 2008 +0200
+++ b/man/xemacs/mule.texi Sat Jul 26 13:50:27 2008 +0300
@@ -509,7 +509,7 @@ Normally, unification works in the backg
Normally, unification works in the background by installing
@code{unity-sanity-check} on @code{write-region-pre-hook}.
Unification is on by default for the ISO-8859 Latin sets. The user
-activates this functionality for other chacter set families by
+activates this functionality for other character set families by
invoking @code{enable-unification}, either interactively or in her
init file. @xref{Init File, , , xemacs}. Unification can be
deactivated by invoking @code{disable-unification}.
@@ -1041,7 +1041,7 @@ possible to use a single Latin coded cha
possible to use a single Latin coded character set before saving the
buffer.
-Because the problem is rarely noticable in editing a buffer, but tends
+Because the problem is rarely noticeable in editing a buffer, but tends
to manifest when that buffer is exported to a file or process,
unification uses the strategy of examining the buffer prior to export.
If use of multiple Latin coded character sets is detected, unification
diff -r 866b84b7c97e05aa9d2fabe6ace194f19611018a -r 6b0000935adc3f79cb189350d6014d4b4aff734e man/xemacs/packages.texi
--- a/man/xemacs/packages.texi Sat Jul 26 11:50:26 2008 +0200
+++ b/man/xemacs/packages.texi Sat Jul 26 13:50:27 2008 +0300
@@ -392,11 +392,11 @@ Because the exact files and their locati
Because the exact files and their locations contained in a package may
change it is recommended to remove a package first before installing a
new version. In order to facilitate removal each package contains an
-(a)file{pgkinfo/MANIFEST.pkgname} file which list all the files belonging
+(a)file{pkginfo/MANIFEST.pkgname} file which lists all the files belonging
to the package.
No need to panic, you don't have to go through the
-(a)file{pkinfo/MANIFEST.pkgname} and manually delete the files. Instead, use
+(a)file{pkginfo/MANIFEST.pkgname} and manually delete the files. Instead, use
@code{M-x package-get-delete-package RET}.
Note that the interactive package tools included with XEmacs already do
diff -r 866b84b7c97e05aa9d2fabe6ace194f19611018a -r 6b0000935adc3f79cb189350d6014d4b4aff734e man/xemacs/programs.texi
--- a/man/xemacs/programs.texi Sat Jul 26 11:50:26 2008 +0200
+++ b/man/xemacs/programs.texi Sat Jul 26 13:50:27 2008 +0300
@@ -75,7 +75,7 @@ supported by XEmacs. Examples include Ad
supported by XEmacs. Examples include Ada, Awk, C, C++, CORBA (IDL),
Fortran, Java, Lisp, Modula 2, Objective-C, Perl, Pike, Prolog, Python,
Ruby, Scheme, Simula, SQL, Tcl, Unix Shell scripts, and VHDL. Some of
-these language have seperate manuals, and some times more than one mode
+these language have separate manuals, and some times more than one mode
may be available for a language. For example, there are several
variants of Lisp mode, which differ in the way they interface to Lisp
execution. @xref{Lisp Modes}.
@@ -1649,7 +1649,7 @@ few of the the supported styles are list
@itemize @bullet
@item
-``gnu'' --- The recommeded style from the Free Software Foundation for
+``gnu'' --- The recommended style from the Free Software Foundation for
GNU software.
@item
``k&r'' --- The classic style from Kernighan and Ritchie.
@@ -1693,7 +1693,7 @@ initialization file (@pxref{Init File})
Most customizations for indentation in various CC modes can be
accomplished by choosing a style and then choosing value for
@code{c-basic-offset} that meets the local coding convention. CC Mode
-has a very customizable indentation engine and a furthur discussion is
+has a very customizable indentation engine and a further discussion is
really beyond the scope of this manual. @xref{Indentation
Engine,,,cc-mode,The CC Mode Manual}.
diff -r 866b84b7c97e05aa9d2fabe6ace194f19611018a -r 6b0000935adc3f79cb189350d6014d4b4aff734e man/xemacs/trouble.texi
--- a/man/xemacs/trouble.texi Sat Jul 26 11:50:26 2008 +0200
+++ b/man/xemacs/trouble.texi Sat Jul 26 13:50:27 2008 +0300
@@ -392,7 +392,7 @@ The newsgroup @samp{comp.emacs.xemacs} m
The newsgroup @samp{comp.emacs.xemacs} may be used for bug reports,
other discussions and requests for assistance.
-If you don't have access to this newgroup, you can subscribe to the
+If you don't have access to this newsgroup, you can subscribe to the
mailing list version: the newsgroup is bidirectionally gatewayed into
the mailing list @samp{xemacs@(a)xemacs.org}.
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Remove interactive specs from #'mswindows-{short, long}-file-name,
16 years, 4 months
Aidan Kehoe
changeset: 4517:866b84b7c97e05aa9d2fabe6ace194f19611018a
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Sat Jul 26 11:50:26 2008 +0200
files: src/ChangeLog src/nt.c
description:
Remove interactive specs from #'mswindows-{short,long}-file-name,
2008-07-20 John Paul Wallington <jpw(a)pobox.com>
* nt.c (Fmswindows_short_file_name, Fmswindows_long_file_name):
Remove their interactive specs; they shouldn't be called interactively.
diff -r f9104f0e9b91b9f7ddc23c53ec8a98c625ad992b -r 866b84b7c97e05aa9d2fabe6ace194f19611018a src/ChangeLog
--- a/src/ChangeLog Sat Jul 26 11:46:13 2008 +0200
+++ b/src/ChangeLog Sat Jul 26 11:50:26 2008 +0200
@@ -1,3 +1,8 @@ 2008-07-17 Aidan Kehoe <kehoea@parhasa
+2008-07-20 John Paul Wallington <jpw(a)pobox.com>
+
+ * nt.c (Fmswindows_short_file_name, Fmswindows_long_file_name):
+ Remove their interactive specs; they shouldn't be called interactively.
+
2008-07-17 Aidan Kehoe <kehoea(a)parhasard.net>
* redisplay.c (init_redisplay):
diff -r f9104f0e9b91b9f7ddc23c53ec8a98c625ad992b -r 866b84b7c97e05aa9d2fabe6ace194f19611018a src/nt.c
--- a/src/nt.c Sat Jul 26 11:46:13 2008 +0200
+++ b/src/nt.c Sat Jul 26 11:50:26 2008 +0200
@@ -2063,7 +2063,7 @@ close_file_data (file_data *p_file)
/* Some miscellaneous functions that are Windows specific, but not GUI
specific (ie. are applicable in terminal or batch mode as well). */
-DEFUN ("mswindows-short-file-name", Fmswindows_short_file_name, 1, 1, "", /*
+DEFUN ("mswindows-short-file-name", Fmswindows_short_file_name, 1, 1, 0, /*
Return the short file name version (8.3) of the full path of FILENAME.
If FILENAME does not exist, return nil.
All path elements in FILENAME are converted to their short names.
@@ -2092,7 +2092,7 @@ All path elements in FILENAME are conver
}
-DEFUN ("mswindows-long-file-name", Fmswindows_long_file_name, 1, 1, "", /*
+DEFUN ("mswindows-long-file-name", Fmswindows_long_file_name, 1, 1, 0, /*
Return the long file name version of the full path of FILENAME.
If FILENAME does not exist, return nil.
All path elements in FILENAME are converted to their long names.
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Correct a misspelling and add a space, lispref/variables.texi
16 years, 4 months
Aidan Kehoe
changeset: 4515:57db42ba54fb4387126a494cd4c4e9d59ab85513
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Sat Jul 26 11:33:24 2008 +0200
files: man/ChangeLog man/lispref/variables.texi
description:
Correct a misspelling and add a space, lispref/variables.texi
2008-07-26 Aidan Kehoe <kehoea(a)parhasard.net>
* lispref/variables.texi (Extent):
Correct a misspelling of macros, add a needed space. Thank you
John Paul Wallington, thank you Stephen Turnbull.
diff -r d6e2e2e819d7979ff9f812490694f928eef7e2a9 -r 57db42ba54fb4387126a494cd4c4e9d59ab85513 man/ChangeLog
--- a/man/ChangeLog Sat Jul 26 09:52:06 2008 +0200
+++ b/man/ChangeLog Sat Jul 26 11:33:24 2008 +0200
@@ -1,3 +1,9 @@ 2008-05-29 Aidan Kehoe <kehoea@parhasa
+2008-07-26 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * lispref/variables.texi (Extent):
+ Correct a misspelling of macros, add a needed space. Thank you
+ John Paul Wallington, thank you Stephen Turnbull.
+
2008-05-29 Aidan Kehoe <kehoea(a)parhasard.net>
* lispref/objects.texi (Equality Predicates):
diff -r d6e2e2e819d7979ff9f812490694f928eef7e2a9 -r 57db42ba54fb4387126a494cd4c4e9d59ab85513 man/lispref/variables.texi
--- a/man/lispref/variables.texi Sat Jul 26 09:52:06 2008 +0200
+++ b/man/lispref/variables.texi Sat Jul 26 11:33:24 2008 +0200
@@ -895,7 +895,7 @@ variable @code{n} is no longer bound to
@cindex closures not available
Some Lisp dialects have ``closures'', objects that are like functions
but record additional variable bindings. Closures are available in
-XEmacs Lisp using the @code{lexical-let} and @code{lexical-let*}macroes,
+XEmacs Lisp using the @code{lexical-let} and @code{lexical-let*} macros,
which are autoloaded from @file{cl-macs}. @xref{(cl)Lexical Bindings}.
Note that function arguments cannot be closed around using these
macros, and that any lambda expressions returned will not be
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Document the error on over-long hex character constants.
16 years, 4 months
Aidan Kehoe
changeset: 4516:f9104f0e9b91b9f7ddc23c53ec8a98c625ad992b
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Sat Jul 26 11:46:13 2008 +0200
files: man/ChangeLog man/lispref/objects.texi
description:
Document the error on over-long hex character constants.
2008-07-26 Aidan Kehoe <kehoea(a)parhasard.net>
* lispref/objects.texi (Character Type):
Document the error provoked when the reader sees an over-long
hexadecimal constant.
diff -r 57db42ba54fb4387126a494cd4c4e9d59ab85513 -r f9104f0e9b91b9f7ddc23c53ec8a98c625ad992b man/ChangeLog
--- a/man/ChangeLog Sat Jul 26 11:33:24 2008 +0200
+++ b/man/ChangeLog Sat Jul 26 11:46:13 2008 +0200
@@ -1,3 +1,9 @@ 2008-07-26 Aidan Kehoe <kehoea@parhasa
+2008-07-26 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * lispref/objects.texi (Character Type):
+ Document the error provoked when the reader sees an over-long
+ hexadecimal constant.
+
2008-07-26 Aidan Kehoe <kehoea(a)parhasard.net>
* lispref/variables.texi (Extent):
diff -r 57db42ba54fb4387126a494cd4c4e9d59ab85513 -r f9104f0e9b91b9f7ddc23c53ec8a98c625ad992b man/lispref/objects.texi
--- a/man/lispref/objects.texi Sat Jul 26 11:33:24 2008 +0200
+++ b/man/lispref/objects.texi Sat Jul 26 11:46:13 2008 +0200
@@ -647,17 +647,16 @@ followed by a backslash and the characte
followed by a backslash and the character code in octal (up to three
octal digits); thus, @samp{?\101} for the character @kbd{A},
@samp{?\001} for the character @kbd{C-a}, and @code{?\002} for the
-character @kbd{C-b}.
+character @kbd{C-b}. The reader will finalize the character and start
+reading the next token when a non-octal-digit is encountered or three
+octal digits are read.
The second consists of a question mark followed by a backslash, the
character @samp{x}, and the character code in hexadecimal (up to two
hexadecimal digits); thus, @samp{?\x41} for the character @kbd{A},
@samp{?\x1} for the character @kbd{C-a}, and @code{?\x2} for the
-character @kbd{C-b}.
-
-In both cases, the reader will finalize the character when a non-digit
-is encountered or the maximum length of a character code is reached. It
-then starts reading the next token.
+character @kbd{C-b}. If more than two hexadecimal codes are given, the
+reader signals an error.
@example
@group
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Error on over-long hex character escapes.
16 years, 4 months
Aidan Kehoe
changeset: 4513:7869173584fcd40b83462f6acad1a9e7d8be3da1
parent: 4508:ec442dc06fe1bc671fbe0ed0a928b294cdd45aba
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Wed Jul 16 22:36:03 2008 +0200
files: src/ChangeLog src/lread.c
description:
Error on over-long hex character escapes.
2008-07-16 Aidan Kehoe <kehoea(a)parhasard.net>
* lread.c (read_escape):
Error if we're handed an over-long hex character escape, something
which arises reasonably frequently in code written for GNU.
diff -r ec442dc06fe1bc671fbe0ed0a928b294cdd45aba -r 7869173584fcd40b83462f6acad1a9e7d8be3da1 src/ChangeLog
--- a/src/ChangeLog Thu Jul 10 23:37:52 2008 +0200
+++ b/src/ChangeLog Wed Jul 16 22:36:03 2008 +0200
@@ -1,3 +1,9 @@ 2008-07-07 Aidan Kehoe <kehoea@parhasa
+2008-07-16 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * lread.c (read_escape):
+ Error if we're handed an over-long hex character escape, something
+ which arises reasonably frequently in code written for GNU.
+
2008-07-07 Aidan Kehoe <kehoea(a)parhasard.net>
Patch to make it up to the device-specific code whether
diff -r ec442dc06fe1bc671fbe0ed0a928b294cdd45aba -r 7869173584fcd40b83462f6acad1a9e7d8be3da1 src/lread.c
--- a/src/lread.c Thu Jul 10 23:37:52 2008 +0200
+++ b/src/lread.c Wed Jul 16 22:36:03 2008 +0200
@@ -1855,6 +1855,28 @@ read_escape (Lisp_Object readcharfun)
break;
}
}
+
+ if (count == 3)
+ {
+ c = readchar (readcharfun);
+ if ((c >= '0' && c <= '9') ||
+ (c >= 'a' && c <= 'f') ||
+ (c >= 'A' && c <= 'F'))
+ {
+ Lisp_Object args[2];
+
+ if (c >= '0' && c <= '9') i = (i << 4) + (c - '0');
+ else if (c >= 'a' && c <= 'f') i = (i << 4) + (c - 'a') + 10;
+ else if (c >= 'A' && c <= 'F') i = (i << 4) + (c - 'A') + 10;
+
+ args[0] = build_string ("?\\x%x");
+ args[1] = make_int (i);
+ syntax_error ("Overlong hex character escape",
+ Fformat (2, args));
+ }
+ unreadchar (readcharfun, c);
+ }
+
return i;
}
case 'U':
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Bind function-key-map correctly in device-specific startup code.
16 years, 4 months
Aidan Kehoe
changeset: 4512:e3ef34f5707072de9795fd41d05515ff57256153
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Sat Jul 26 09:37:08 2008 +0200
files: lisp/ChangeLog lisp/x-init.el lisp/x-win-sun.el lisp/x-win-xfree86.el
description:
Bind function-key-map correctly in device-specific startup code.
2008-07-26 Aidan Kehoe <kehoea(a)parhasard.net>
* x-init.el (x-initialize-compose):
Rewrite to use #'loop, as does similar code in x-win-sun.el,
x-win-xfree86.el. Locally bind function-key-map to the correct
value for the device's console.
* x-win-xfree86.el (x-win-init-xfree86):
Locally bind function-key-map to the correct value for the
device's console.
* x-win-sun.el (x-win-init-sun):
Locally bind function-key-map to the correct value for the
device's console.
diff -r f9c70d94f42741543645c976bcc89aec6dc63128 -r e3ef34f5707072de9795fd41d05515ff57256153 lisp/ChangeLog
--- a/lisp/ChangeLog Sun Jul 20 15:04:20 2008 +0200
+++ b/lisp/ChangeLog Sat Jul 26 09:37:08 2008 +0200
@@ -1,3 +1,16 @@ 2008-07-20 Aidan Kehoe <kehoea@parhasa
+2008-07-26 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * x-init.el (x-initialize-compose):
+ Rewrite to use #'loop, as does similar code in x-win-sun.el,
+ x-win-xfree86.el. Locally bind function-key-map to the correct
+ value for the device's console.
+ * x-win-xfree86.el (x-win-init-xfree86):
+ Locally bind function-key-map to the correct value for the
+ device's console.
+ * x-win-sun.el (x-win-init-sun):
+ Locally bind function-key-map to the correct value for the
+ device's console.
+
2008-07-20 Aidan Kehoe <kehoea(a)parhasard.net>
* descr-text.el (describe-char-unicode-data):
diff -r f9c70d94f42741543645c976bcc89aec6dc63128 -r e3ef34f5707072de9795fd41d05515ff57256153 lisp/x-init.el
--- a/lisp/x-init.el Sun Jul 20 15:04:20 2008 +0200
+++ b/lisp/x-init.el Sat Jul 26 09:37:08 2008 +0200
@@ -84,12 +84,6 @@
;; Load X-server specific code.
;; Specifically, load some code to repair the grievous damage that MIT and
;; Sun have done to the default keymap for the Sun keyboards.
-
-(eval-when-compile
- (defmacro x-define-dead-key (key map device)
- `(when (x-keysym-on-keyboard-p ',key device)
- (define-key function-key-map [,key] ',map))))
-
(defun x-initialize-compose (device)
"Enable compose key and dead key processing on DEVICE."
(autoload 'compose-map "x-compose" nil t 'keymap)
@@ -100,111 +94,118 @@
(autoload 'compose-circumflex-map "x-compose" nil t 'keymap)
(autoload 'compose-tilde-map "x-compose" nil t 'keymap)
- (when (x-keysym-on-keyboard-p 'multi-key device)
- (define-key function-key-map [multi-key] 'compose-map))
-
- ;; The dead keys might really be called just about anything, depending
- ;; on the vendor. MIT thinks that the prefixes are "SunFA_", "D", and
- ;; "hpmute_" for Sun, DEC, and HP respectively. However, OpenWindows 3
- ;; thinks that the prefixes are "SunXK_FA_", "DXK_", and "hpXK_mute_".
- ;; And HP (who don't mention Sun and DEC at all) use "XK_mute_".
- ;; Go figure.
-
- ;; Presumably if someone is running OpenWindows, they won't be using
- ;; the DEC or HP keysyms, but if they are defined then that is possible,
- ;; so in that case we accept them all.
-
- ;; If things seem not to be working, you might want to check your
- ;; /usr/lib/X11/XKeysymDB file to see if your vendor has an equally
- ;; mixed up view of what these keys should be called.
-
- ;; Canonical names:
- (x-define-dead-key acute compose-acute-map device)
- (x-define-dead-key grave compose-grave-map device)
- (x-define-dead-key cedilla compose-cedilla-map device)
- (x-define-dead-key diaeresis compose-diaeresis-map device)
- (x-define-dead-key circumflex compose-circumflex-map device)
- (x-define-dead-key tilde compose-tilde-map device)
- (x-define-dead-key degree compose-ring-map device)
-
- ;; Sun according to MIT:
- (x-define-dead-key SunFA_Acute compose-acute-map device)
- (x-define-dead-key SunFA_Grave compose-grave-map device)
- (x-define-dead-key SunFA_Cedilla compose-cedilla-map device)
- (x-define-dead-key SunFA_Diaeresis compose-diaeresis-map device)
- (x-define-dead-key SunFA_Circum compose-circumflex-map device)
- (x-define-dead-key SunFA_Tilde compose-tilde-map device)
-
- ;; Sun according to OpenWindows 2:
- (x-define-dead-key Dead_Grave compose-grave-map device)
- (x-define-dead-key Dead_Circum compose-circumflex-map device)
- (x-define-dead-key Dead_Tilde compose-tilde-map device)
-
- ;; Sun according to OpenWindows 3:
- (x-define-dead-key SunXK_FA_Acute compose-acute-map device)
- (x-define-dead-key SunXK_FA_Grave compose-grave-map device)
- (x-define-dead-key SunXK_FA_Cedilla compose-cedilla-map device)
- (x-define-dead-key SunXK_FA_Diaeresis compose-diaeresis-map device)
- (x-define-dead-key SunXK_FA_Circum compose-circumflex-map device)
- (x-define-dead-key SunXK_FA_Tilde compose-tilde-map device)
-
- ;; DEC according to MIT:
- (x-define-dead-key Dacute_accent compose-acute-map device)
- (x-define-dead-key Dgrave_accent compose-grave-map device)
- (x-define-dead-key Dcedilla_accent compose-cedilla-map device)
- (x-define-dead-key Dcircumflex_accent compose-circumflex-map device)
- (x-define-dead-key Dtilde compose-tilde-map device)
- (x-define-dead-key Dring_accent compose-ring-map device)
-
- ;; DEC according to OpenWindows 3:
- (x-define-dead-key DXK_acute_accent compose-acute-map device)
- (x-define-dead-key DXK_grave_accent compose-grave-map device)
- (x-define-dead-key DXK_cedilla_accent compose-cedilla-map device)
- (x-define-dead-key DXK_circumflex_accent compose-circumflex-map device)
- (x-define-dead-key DXK_tilde compose-tilde-map device)
- (x-define-dead-key DXK_ring_accent compose-ring-map device)
-
- ;; HP according to MIT:
- (x-define-dead-key hpmute_acute compose-acute-map device)
- (x-define-dead-key hpmute_grave compose-grave-map device)
- (x-define-dead-key hpmute_diaeresis compose-diaeresis-map device)
- (x-define-dead-key hpmute_asciicircum compose-circumflex-map device)
- (x-define-dead-key hpmute_asciitilde compose-tilde-map device)
-
- ;; Empirically discovered on Linux XFree86 MetroX:
- (x-define-dead-key usldead_acute compose-acute-map device)
- (x-define-dead-key usldead_grave compose-grave-map device)
- (x-define-dead-key usldead_diaeresis compose-diaeresis-map device)
- (x-define-dead-key usldead_asciicircum compose-circumflex-map device)
- (x-define-dead-key usldead_asciitilde compose-tilde-map device)
-
- ;; HP according to OpenWindows 3:
- (x-define-dead-key hpXK_mute_acute compose-acute-map device)
- (x-define-dead-key hpXK_mute_grave compose-grave-map device)
- (x-define-dead-key hpXK_mute_diaeresis compose-diaeresis-map device)
- (x-define-dead-key hpXK_mute_asciicircum compose-circumflex-map device)
- (x-define-dead-key hpXK_mute_asciitilde compose-tilde-map device)
-
- ;; HP according to HP-UX 8.0:
- (x-define-dead-key XK_mute_acute compose-acute-map device)
- (x-define-dead-key XK_mute_grave compose-grave-map device)
- (x-define-dead-key XK_mute_diaeresis compose-diaeresis-map device)
- (x-define-dead-key XK_mute_asciicircum compose-circumflex-map device)
- (x-define-dead-key XK_mute_asciitilde compose-tilde-map device)
-
- ;; [[ XFree86 seems to use lower case and a hyphen ]] Not true; they use
- ;; lower case and an underscore. XEmacs converts the underscore to a
- ;; hyphen in x_keysym_to_emacs_keysym because the keysym is in the
- ;; "Keyboard" character set, which is just totally fucking random,
- ;; considering it doesn't happen for any other character sets.
- (x-define-dead-key dead-acute compose-acute-map device)
- (x-define-dead-key dead-grave compose-grave-map device)
- (x-define-dead-key dead-cedilla compose-cedilla-map device)
- (x-define-dead-key dead-diaeresis compose-diaeresis-map device)
- (x-define-dead-key dead-circum compose-circumflex-map device)
- (x-define-dead-key dead-circumflex compose-circumflex-map device)
- (x-define-dead-key dead-tilde compose-tilde-map device)
- )
+ (loop
+ for (key map)
+ ;; The dead keys might really be called just about anything, depending
+ ;; on the vendor. MIT thinks that the prefixes are "SunFA_", "D", and
+ ;; "hpmute_" for Sun, DEC, and HP respectively. However, OpenWindows 3
+ ;; thinks that the prefixes are "SunXK_FA_", "DXK_", and "hpXK_mute_".
+ ;; And HP (who don't mention Sun and DEC at all) use "XK_mute_". Go
+ ;; figure.
+
+ ;; Presumably if someone is running OpenWindows, they won't be using the
+ ;; DEC or HP keysyms, but if they are defined then that is possible, so
+ ;; in that case we accept them all.
+
+ ;; If things seem not to be working, you might want to check your
+ ;; /usr/lib/X11/XKeysymDB file to see if your vendor has an equally
+ ;; mixed up view of what these keys should be called.
+
+ ;; Canonical names:
+ in '((acute compose-acute-map)
+ (grave compose-grave-map)
+ (cedilla compose-cedilla-map)
+ (diaeresis compose-diaeresis-map)
+ (circumflex compose-circumflex-map)
+ (tilde compose-tilde-map)
+ (degree compose-ring-map)
+ (multi-key compose-map)
+
+ ;; Sun according to MIT:
+ (SunFA_Acute compose-acute-map)
+ (SunFA_Grave compose-grave-map)
+ (SunFA_Cedilla compose-cedilla-map)
+ (SunFA_Diaeresis compose-diaeresis-map)
+ (SunFA_Circum compose-circumflex-map)
+ (SunFA_Tilde compose-tilde-map)
+
+ ;; Sun according to OpenWindows 2:
+ (Dead_Grave compose-grave-map)
+ (Dead_Circum compose-circumflex-map)
+ (Dead_Tilde compose-tilde-map)
+
+ ;; Sun according to OpenWindows 3:
+ (SunXK_FA_Acute compose-acute-map)
+ (SunXK_FA_Grave compose-grave-map)
+ (SunXK_FA_Cedilla compose-cedilla-map)
+ (SunXK_FA_Diaeresis compose-diaeresis-map)
+ (SunXK_FA_Circum compose-circumflex-map)
+ (SunXK_FA_Tilde compose-tilde-map)
+
+ ;; DEC according to MIT:
+ (Dacute_accent compose-acute-map)
+ (Dgrave_accent compose-grave-map)
+ (Dcedilla_accent compose-cedilla-map)
+ (Dcircumflex_accent compose-circumflex-map)
+ (Dtilde compose-tilde-map)
+ (Dring_accent compose-ring-map)
+
+ ;; DEC according to OpenWindows 3:
+ (DXK_acute_accent compose-acute-map)
+ (DXK_grave_accent compose-grave-map)
+ (DXK_cedilla_accent compose-cedilla-map)
+ (DXK_circumflex_accent compose-circumflex-map)
+ (DXK_tilde compose-tilde-map)
+ (DXK_ring_accent compose-ring-map)
+
+ ;; HP according to MIT:
+ (hpmute_acute compose-acute-map)
+ (hpmute_grave compose-grave-map)
+ (hpmute_diaeresis compose-diaeresis-map)
+ (hpmute_asciicircum compose-circumflex-map)
+ (hpmute_asciitilde compose-tilde-map)
+
+ ;; Empirically discovered on Linux XFree86 MetroX:
+ (usldead_acute compose-acute-map)
+ (usldead_grave compose-grave-map)
+ (usldead_diaeresis compose-diaeresis-map)
+ (usldead_asciicircum compose-circumflex-map)
+ (usldead_asciitilde compose-tilde-map)
+
+ ;; HP according to OpenWindows 3:
+ (hpXK_mute_acute compose-acute-map)
+ (hpXK_mute_grave compose-grave-map)
+ (hpXK_mute_diaeresis compose-diaeresis-map)
+ (hpXK_mute_asciicircum compose-circumflex-map)
+ (hpXK_mute_asciitilde compose-tilde-map)
+
+ ;; HP according to HP-UX 8.0:
+ (XK_mute_acute compose-acute-map)
+ (XK_mute_grave compose-grave-map)
+ (XK_mute_diaeresis compose-diaeresis-map)
+ (XK_mute_asciicircum compose-circumflex-map)
+ (XK_mute_asciitilde compose-tilde-map)
+
+ ;; [[ XFree86 seems to use lower case and a hyphen ]] Not true;
+ ;; they use lower case and an underscore. XEmacs converts the
+ ;; underscore to a hyphen in x_keysym_to_emacs_keysym because the
+ ;; keysym is in the "Keyboard" character set, which is just totally
+ ;; fucking random, considering it doesn't happen for any other
+ ;; character sets.
+ (dead-acute compose-acute-map)
+ (dead-grave compose-grave-map)
+ (dead-cedilla compose-cedilla-map)
+ (dead-diaeresis compose-diaeresis-map)
+ (dead-circum compose-circumflex-map)
+ (dead-circumflex compose-circumflex-map)
+ (dead-tilde compose-tilde-map))
+
+ ;; Get the correct value for function-key-map
+ with function-key-map = (symbol-value-in-console 'function-key-map
+ (device-console device)
+ function-key-map)
+ do (when (x-keysym-on-keyboard-p key device)
+ (define-key function-key-map (vector key) map))))
(eval-when-compile
(load "x-win-sun" nil t)
diff -r f9c70d94f42741543645c976bcc89aec6dc63128 -r e3ef34f5707072de9795fd41d05515ff57256153 lisp/x-win-sun.el
--- a/lisp/x-win-sun.el Sun Jul 20 15:04:20 2008 +0200
+++ b/lisp/x-win-sun.el Sat Jul 26 09:37:08 2008 +0200
@@ -156,6 +156,10 @@
(f11 stop)
(f12 again))))
)
+ ;; Get the correct value for function-key-map
+ with function-key-map = (symbol-value-in-console 'function-key-map
+ (device-console device)
+ function-key-map)
do (when (x-keysym-on-keyboard-sans-modifiers-p from-key device)
(dolist (prefix '(() (shift) (control) (meta) (alt)
(shift control) (shift alt) (shift meta)
diff -r f9c70d94f42741543645c976bcc89aec6dc63128 -r e3ef34f5707072de9795fd41d05515ff57256153 lisp/x-win-xfree86.el
--- a/lisp/x-win-xfree86.el Sun Jul 20 15:04:20 2008 +0200
+++ b/lisp/x-win-xfree86.el Sat Jul 26 09:37:08 2008 +0200
@@ -90,6 +90,11 @@
(f22 f10)
(f23 f11)
(f24 f12))
+ ;; Get the correct value for function-key-map
+ with function-key-map = (symbol-value-in-console 'function-key-map
+ (device-console device)
+ function-key-map)
+
do
(when (and (x-keysym-on-keyboard-p key device)
(not (x-keysym-on-keyboard-sans-modifiers-p key device)))
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches
carbon2-commit: Correct syntax of #'error calls, descr-text.el
16 years, 4 months
Aidan Kehoe
changeset: 4511:f9c70d94f42741543645c976bcc89aec6dc63128
user: Aidan Kehoe <kehoea(a)parhasard.net>
date: Sun Jul 20 15:04:20 2008 +0200
files: lisp/ChangeLog lisp/descr-text.el
description:
Correct syntax of #'error calls, descr-text.el
2008-07-20 Aidan Kehoe <kehoea(a)parhasard.net>
* descr-text.el (describe-char-unicode-data):
Correct three calls to #'error; it doesn't take #'message style
format strings and arguments.
diff -r 74caf140505b589959374ba69b7e5cfd5a38aadf -r f9c70d94f42741543645c976bcc89aec6dc63128 lisp/ChangeLog
--- a/lisp/ChangeLog Sat Jul 19 15:19:59 2008 +0200
+++ b/lisp/ChangeLog Sun Jul 20 15:04:20 2008 +0200
@@ -1,3 +1,9 @@ 2008-07-19 Aidan Kehoe <kehoea@parhasa
+2008-07-20 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * descr-text.el (describe-char-unicode-data):
+ Correct three calls to #'error; it doesn't take #'message style
+ format strings and arguments.
+
2008-07-19 Aidan Kehoe <kehoea(a)parhasard.net>
* descr-text.el (describe-property-list): Move the (require
diff -r 74caf140505b589959374ba69b7e5cfd5a38aadf -r f9c70d94f42741543645c976bcc89aec6dc63128 lisp/descr-text.el
--- a/lisp/descr-text.el Sat Jul 19 15:19:59 2008 +0200
+++ b/lisp/descr-text.el Sun Jul 20 15:04:20 2008 +0200
@@ -677,7 +677,8 @@ The list is null if CHAR isn't found in
(when describe-char-unicodedata-file
(unless (file-exists-p describe-char-unicodedata-file)
(error 'file-error
- "`unicodedata-file' %s not found" describe-char-unicodedata-file))
+ (format "`unicodedata-file' %s not found"
+ describe-char-unicodedata-file)))
;; XEmacs change; accept a character argument, use the cache if
;; appropriate.
(when (characterp char)
@@ -697,13 +698,14 @@ The list is null if CHAR isn't found in
(coding-system-for-read 'no-conversion-unix)
key lookup)
(unless database-handle
- (error 'io-error "Could not open %s as a %s database"
- (unidata-generate-database-file-name
- describe-char-unicodedata-file
- (eighth (file-attributes
- describe-char-unicodedata-file))
- unidata-database-format)
- unidata-database-format))
+ (error 'io-error
+ (format "Could not open %s as a %s database"
+ (unidata-generate-database-file-name
+ describe-char-unicodedata-file
+ (eighth (file-attributes
+ describe-char-unicodedata-file))
+ unidata-database-format)
+ unidata-database-format)))
(setq key (format "%04X" char)
lookup (get-database key database-handle))
(if lookup
@@ -761,7 +763,8 @@ The list is null if CHAR isn't found in
(unless (or (= 13 (length fields))
(= 14 (length fields)))
(error 'invalid-argument
- "Invalid contents in %s" describe-char-unicodedata-file))
+ (format "Invalid contents in %s"
+ describe-char-unicodedata-file)))
;; The field names and values lists are slightly
;; modified from Mule-UCS unidata.el.
(apply #'list
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-patches