Mercurial > hg > xemacs-beta
changeset 4566:26aae3bacf99
Merge.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sat, 09 Aug 2008 13:11:06 +0200 |
parents | 31344162cf9a (diff) 46ddeaa7c738 (current diff) |
children | 84d618b355f5 |
files | lisp/ChangeLog lisp/unicode.el |
diffstat | 34 files changed, 708 insertions(+), 438 deletions(-) [+] |
line wrap: on
line diff
--- a/etc/ChangeLog Fri Jul 18 01:00:32 2008 +0200 +++ b/etc/ChangeLog Sat Aug 09 13:11:06 2008 +0200 @@ -1,3 +1,7 @@ +2008-08-05 Aidan Kehoe <kehoea@parhasard.net> + + * HELLO: Encode the Arabic using UTF-8 sequences, not ISO-8859-6. + 2008-02-21 Stephen J. Turnbull <stephen@xemacs.org> * README: Add descriptions of Daniel Polansky's icons.
--- a/etc/HELLO Fri Jul 18 01:00:32 2008 +0200 +++ b/etc/HELLO Sat Aug 09 13:11:06 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
--- a/lisp/ChangeLog Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/ChangeLog Sat Aug 09 13:11:06 2008 +0200 @@ -1,3 +1,96 @@ +2008-08-09 Aidan Kehoe <kehoea@parhasard.net> + + * subr.el (skip-chars-quote): New. + Given STRING, return a string that means that all characters in + STRING will be skipped when passed to #'skip-chars-forward, + #'skip-chars-backward. + +2008-08-09 Aidan Kehoe <kehoea@parhasard.net> + + * subr.el (skip-chars-quote): New. + + * mule/cyril-util.el: Remove. Use the version in packages instead. + +2008-08-08 Aidan Kehoe <kehoea@parhasard.net> + + * unicode.el: + * mule/mule-cmds.el: + * mule/latin.el: + * mule/cyrillic.el: + Rework the various identifiers using error-sequence to use + invalid-sequence instead. + +2008-08-05 Aidan Kehoe <kehoea@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-08-05 Aidan Kehoe <kehoea@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@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@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@parhasard.net> + + * descr-text.el (describe-property-list): Move the (require + 'hyper-apropos) call to top level, this isn't the only function + that uses the relevant face. + (describe-char): Wrap the Unihan field descriptions if they are + longer than the windows width minus 50. + Rename the created buffer to reflect the character's position as + well as its value. + 2008-07-07 Aidan Kehoe <kehoea@parhasard.net> Patch to make it up to the device-specific code whether
--- a/lisp/descr-text.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/descr-text.el Sat Aug 09 13:11:06 2008 +0200 @@ -32,6 +32,8 @@ (eval-when-compile (require 'wid-edit)) +(require 'hyper-apropos) + ;;; Describe-Text Utilities. (defun describe-text-widget (widget) @@ -82,7 +84,6 @@ into help buttons that call `describe-text-category' or `describe-face' when pushed." ;; Sort the properties by the size of their value. - (require 'hyper-apropos) (dolist (elt (sort (let (ret) (while properties (push (list (pop properties) (pop properties)) ret)) @@ -676,7 +677,8 @@ (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) @@ -696,13 +698,14 @@ (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 @@ -760,7 +763,8 @@ (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 @@ -1029,7 +1033,8 @@ (describe-text-properties pos tmp-buf) (with-current-buffer tmp-buf (buffer-string))) (kill-buffer tmp-buf)))) - item-list max-width unicode unicode-formatted unicode-error) + item-list max-width unicode unicode-formatted unicode-error + unicodedata (max-unicode-description-width (- (window-width) 50))) (setq unicode-error @@ -1185,13 +1190,29 @@ `(insert-gui-button (make-gui-button ,(symbol-name face))))))) - ,@(let ((unicodedata (and unicode - (describe-char-unicode-data unicode)))) + ,@(progn + (setq unicodedata (and unicode + (describe-char-unicode-data unicode))) (if unicodedata (cons (list "Unicode data" " ") unicodedata))))) (setq max-width (apply #'max (mapcar #'(lambda (x) (if (cadr x) (length (car x)) 0)) item-list))) + (when (and unicodedata (> max-width max-unicode-description-width)) + (setq max-width max-unicode-description-width) + (with-temp-buffer + (let ((fill-column max-unicode-description-width) + (indent-tabs-mode nil)) + (dolist (unidata-line unicodedata) + (when (cadr unidata-line) + (setf (car unidata-line) + (progn (insert (car unidata-line)) + (goto-char (point-min)) + (fill-paragraph 'right) + (delete-region (1- (point-max)) + (point-max)) + (buffer-string))) + (delete-region (point-min) (point-max))))))) ; (help-setup-xref nil (interactive-p)) (with-displaying-help-buffer (lambda () @@ -1274,7 +1295,7 @@ ; (setq help-xref-stack-item (list 'help-insert-string (buffer-string))) (toggle-read-only 1) (print-help-return-message))) - (format "Describe %c" (char-after pos))))) + (format "Describe %c <%d>" (char-after pos) pos)))) (defalias 'describe-char-after 'describe-char) (make-obsolete 'describe-char-after 'describe-char "22.1")
--- a/lisp/mule/arabic.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/mule/arabic.el Sat Aug 09 13:11:06 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
--- a/lisp/mule/cyril-util.el Fri Jul 18 01:00:32 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,193 +0,0 @@ -;;; cyril-util.el --- utilities for Cyrillic scripts -*- coding: iso-2022-7bit; -*- - -;; Copyright (C) 1997 Free Software Foundation, Inc. -;; Copyright (C) 2002 Ben Wing. - -;; Keywords: mule, multilingual, Cyrillic - -;; 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, write to the Free -;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -;; 02111-1307, USA. - -;;; Synched up with: Emacs 21.1 (language/cyril-util.el). - -;;; Commentary: - -;;; #### Remove this, use the one in packages instead, but with the below -;;; standard-display-cyrillic-translit. This file is unfortunately shadowed -;;; if you have the Mule packages installed! - -;;; Code: - - -;; Display - -;; Written by Valery Alexeev <valery@math.uga.edu>. - -(defvar cyrillic-language-alist - '(("Belorussian") ("Bulgarian") ("Macedonian") ("Russian") ("Serbian") - ("Ukrainian")) - "*List of known Cyrillic languages") - -;;;###autoload -(defun standard-display-cyrillic-translit (&optional cyrillic-language - disable) - "Display a cyrillic buffer using a transliteration. -For readability, the table is slightly -different from the one used for the input method `cyrillic-translit'. - -The argument is a string which specifies which language you are using; -that affects the choice of transliterations slightly. -Possible values are listed in 'cyrillic-language-alist'. - -Specifying a prefix arg, by preceding -\\[standard-display-cyrillic-translit] with \\[universal-argument] -turns off Cyrillic display. Noninteractively, the DISABLE argument -does the same thing. " - (interactive - (list - (let* ((completion-ignore-case t) - (default-language (if (assoc-ignore-case - current-language-environment - cyrillic-language-alist) - current-language-environment - "Russian"))) - (or current-prefix-arg - (completing-read - (format "Cyrillic language (default %s): " default-language) - cyrillic-language-alist nil t nil nil default-language))))) - (frob-display-table - (lambda (display-table) - (if (or disable current-prefix-arg) - (if (char-table-p display-table) - (remove-char-table 'cyrillic-iso8859-5 display-table)) - (put-display-table ?,LP(B "a" display-table) - (put-display-table ?,LQ(B "b" display-table) - (put-display-table ?,LR(B "v" display-table) - (put-display-table ?,LS(B "g" display-table) - (put-display-table ?,LT(B "d" display-table) - (put-display-table ?,LU(B "e" display-table) - (put-display-table ?,Lq(B "yo" display-table) - (put-display-table ?,LV(B "zh" display-table) - (put-display-table ?,LW(B "z" display-table) - (put-display-table ?,LX(B "i" display-table) - (put-display-table ?,LY(B "j" display-table) - (put-display-table ?,LZ(B "k" display-table) - (put-display-table ?,L[(B "l" display-table) - (put-display-table ?,L\(B "m" display-table) - (put-display-table ?,L](B "n" display-table) - (put-display-table ?,L^(B "o" display-table) - (put-display-table ?,L_(B "p" display-table) - (put-display-table ?,L`(B "r" display-table) - (put-display-table ?,La(B "s" display-table) - (put-display-table ?,Lb(B "t" display-table) - (put-display-table ?,Lc(B "u" display-table) - (put-display-table ?,Ld(B "f" display-table) - (put-display-table ?,Le(B "kh" display-table) - (put-display-table ?,Lf(B "ts" display-table) - (put-display-table ?,Lg(B "ch" display-table) - (put-display-table ?,Lh(B "sh" display-table) - (put-display-table ?,Li(B "sch" display-table) - (put-display-table ?,Lj(B "~" display-table) - (put-display-table ?,Lk(B "y" display-table) - (put-display-table ?,Ll(B "'" display-table) - (put-display-table ?,Lm(B "e'" display-table) - (put-display-table ?,Ln(B "yu" display-table) - (put-display-table ?,Lo(B "ya" display-table) - (put-display-table ?,L0(B "A" display-table) - (put-display-table ?,L1(B "B" display-table) - (put-display-table ?,L2(B "V" display-table) - (put-display-table ?,L3(B "G" display-table) - (put-display-table ?,L4(B "D" display-table) - (put-display-table ?,L5(B "E" display-table) - (put-display-table ?,L!(B "Yo" display-table) - (put-display-table ?,L6(B "Zh" display-table) - (put-display-table ?,L7(B "Z" display-table) - (put-display-table ?,L8(B "I" display-table) - (put-display-table ?,L9(B "J" display-table) - (put-display-table ?,L:(B "K" display-table) - (put-display-table ?,L;(B "L" display-table) - (put-display-table ?,L<(B "M" display-table) - (put-display-table ?,L=(B "N" display-table) - (put-display-table ?,L>(B "O" display-table) - (put-display-table ?,L?(B "P" display-table) - (put-display-table ?,L@(B "R" display-table) - (put-display-table ?,LA(B "S" display-table) - (put-display-table ?,LB(B "T" display-table) - (put-display-table ?,LC(B "U" display-table) - (put-display-table ?,LD(B "F" display-table) - (put-display-table ?,LE(B "Kh" display-table) - (put-display-table ?,LF(B "Ts" display-table) - (put-display-table ?,LG(B "Ch" display-table) - (put-display-table ?,LH(B "Sh" display-table) - (put-display-table ?,LI(B "Sch" display-table) - (put-display-table ?,LJ(B "~" display-table) - (put-display-table ?,LK(B "Y" display-table) - (put-display-table ?,LL(B "'" display-table) - (put-display-table ?,LM(B "E'" display-table) - (put-display-table ?,LN(B "Yu" display-table) - (put-display-table ?,LO(B "Ya" display-table) - (put-display-table ?,Lt(B "ie" display-table) - (put-display-table ?,Lw(B "i" display-table) - (put-display-table ?,L~(B "u" display-table) - (put-display-table ?,Lr(B "dj" display-table) - (put-display-table ?,L{(B "chj" display-table) - (put-display-table ?,Ls(B "gj" display-table) - (put-display-table ?,Lu(B "s" display-table) - (put-display-table ?,L|(B "k" display-table) - (put-display-table ?,Lv(B "i" display-table) - (put-display-table ?,Lx(B "j" display-table) - (put-display-table ?,Ly(B "lj" display-table) - (put-display-table ?,Lz(B "nj" display-table) - (put-display-table ?,L(B "dz" display-table) - (put-display-table ?,L$(B "Ye" display-table) - (put-display-table ?,L'(B "Yi" display-table) - (put-display-table ?,L.(B "U" display-table) - (put-display-table ?,L"(B "Dj" display-table) - (put-display-table ?,L+(B "Chj" display-table) - (put-display-table ?,L#(B "Gj" display-table) - (put-display-table ?,L%(B "S" display-table) - (put-display-table ?,L,(B "K" display-table) - (put-display-table ?,L&(B "I" display-table) - (put-display-table ?,L((B "J" display-table) - (put-display-table ?,L)(B "Lj" display-table) - (put-display-table ?,L*(B "Nj" display-table) - (put-display-table ?,L/(B "Dj" display-table) - - (when (equal cyrillic-language "Bulgarian") - (put-display-table ?,Li(B "sht" display-table) - (put-display-table ?,LI(B "Sht" display-table) - (put-display-table ?,Ln(B "iu" display-table) - (put-display-table ?,LN(B "Iu" display-table) - (put-display-table ?,Lo(B "ia" display-table) - (put-display-table ?,LO(B "Ia" display-table)) - - (when (equal cyrillic-language "Ukrainian") ; based on the official - ; transliteration table - (put-display-table ?,LX(B "y" display-table) - (put-display-table ?,L8(B "Y" display-table) - (put-display-table ?,LY(B "i" display-table) - (put-display-table ?,L9(B "Y" display-table) - (put-display-table ?,Ln(B "iu" display-table) - (put-display-table ?,Lo(B "ia" display-table)))) nil)) -;; -(provide 'cyril-util) - -;; Local Variables: -;; coding: iso-2022-7bit -;; End: - -;;; cyril-util.el ends here
--- a/lisp/mule/cyrillic.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/mule/cyrillic.el Sat Aug 09 13:11:06 2008 +0200 @@ -370,6 +370,7 @@ (coding-system koi8-r) (native-coding-system koi8-r) (coding-priority koi8-r) + (invalid-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") + (invalid-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) + (invalid-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) + (invalid-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) + (invalid-sequence-coding-system alternativnyj) (coding-priority alternativnyj) (input-method . "cyrillic-yawerty") (features cyril-util)
--- a/lisp/mule/greek.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/mule/greek.el Sat Aug 09 13:11:06 2008 +0200 @@ -328,6 +328,7 @@ (coding-system iso-8859-7) (coding-priority iso-8859-7) (native-coding-system iso-8859-7) + (invalid-sequence-coding-system iso-8859-7) (locale "el") (input-method . "greek") (sample-text . "Greek (,FGkk]mija(B) ,FCei\(B ,Fsar(B")
--- a/lisp/mule/iso-with-esc.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/mule/iso-with-esc.el Sat Aug 09 13:11:06 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")) +
--- a/lisp/mule/latin.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/mule/latin.el Sat Aug 09 13:11:06 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 invalid-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) + (invalid-sequence-coding-system ,(or invalid-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))))
--- a/lisp/mule/mule-category.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/mule/mule-category.el Sat Aug 09 13:11:06 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")
--- a/lisp/mule/mule-cmds.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/mule/mule-cmds.el Sat Aug 09 13:11:06 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. + + invalid-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) @@ -760,6 +768,25 @@ (if (functionp func) (funcall func))) + (let ((invalid-sequence-coding-system + (get-language-info language-name 'invalid-sequence-coding-system)) + (disp-table (specifier-instance current-display-table)) + glyph) + (when (consp invalid-sequence-coding-system) + (setq invalid-sequence-coding-system + (car invalid-sequence-coding-system))) + (map-char-table + #'(lambda (key entry) + (setq glyph (make-glyph + (vector + 'string :data + (decode-coding-string (string entry) + invalid-sequence-coding-system)))) + (set-glyph-face glyph 'unicode-invalid-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. (set-language-unicode-precedence-list
--- a/lisp/mule/mule-msw-init-late.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/mule/mule-msw-init-late.el Sat Aug 09 13:11:06 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")
--- a/lisp/mule/mule-win32-init.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/mule/mule-win32-init.el Sat Aug 09 13:11:06 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
--- a/lisp/specifier.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/specifier.el Sat Aug 09 13:11:06 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
--- a/lisp/subr.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/subr.el Sat Aug 09 13:11:06 2008 +0200 @@ -1722,4 +1722,25 @@ ;; define-mail-user-agent is in simple.el. +;; XEmacs; added. +(defun skip-chars-quote (string) + "Return a string that means all characters in STRING will be skipped, +if passed to `skip-chars-forward' or `skip-chars-backward'. + +Ranges and carets are not treated specially. This implementation is +in Lisp; do not use it in performance-critical code." + (let ((list (delete-duplicates (string-to-list string) :test #'=))) + (when (equal list '((?- ?\[) (?\[ ?\-))) + (error 'invalid-argument + "Cannot create `skip-chars-forward' arg from string" + string)) + (when (memq ?\] list) + (setq list (cons ?\] (delq ?\] list)))) + (when (eq ?^ (car list)) + (setq list (nconc (cdr list) '(?^)))) + (when (memq ?- list) + (setq list (delq ?- list) + list (nconc list (list (second list) ?- (second list) ?-)))) + (apply #'string list))) + ;;; subr.el ends here
--- a/lisp/unicode.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/unicode.el Sat Aug 09 13:11:06 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 @@ -526,7 +525,7 @@ To transform XEmacs Unicode error sequences to the Latin-1 characters that correspond to the octets on disk, you can use this variable. ") -(defvar unicode-error-sequence-regexp-range +(defvar unicode-invalid-sequence-regexp-range (and (featurep 'mule) (format "%c%c-%c" (aref (decode-coding-string "\xd8\x00\x00\x00" 'utf-16-be) 0) @@ -564,7 +563,7 @@ ;; Comment out until the issue in ;; 18179.49815.622843.336527@parhasard.net is fixed. (assert t ; (re-search-forward (concat "[" - ; unicode-error-sequence-regexp-range + ; unicode-invalid-sequence-regexp-range ; "]")) nil (format "Could not find char ?\\x%x in buffer" i)))) @@ -586,12 +585,12 @@ (setq begin (progn (skip-chars-forward - (concat "^" unicode-error-sequence-regexp-range)) + (concat "^" unicode-invalid-sequence-regexp-range)) (point)) end (and (not (= (point) (point-max))) (progn (skip-chars-forward - unicode-error-sequence-regexp-range) + unicode-invalid-sequence-regexp-range) (point)))) (if end (funcall frob-function begin end)))))) @@ -611,6 +610,9 @@ (translate-region start finish table)) begin end buffer)) +;; Sure would be nice to be able to use defface here. +(copy-face 'highlight 'unicode-invalid-sequence-warning-face) + (defvar unicode-query-coding-skip-chars-arg nil ;; Set in general-late.el "Used by `unicode-query-coding-region' to skip chars with known mappings.") @@ -689,8 +691,8 @@ ;; Lisp. (mapcar #'unintern '(ccl-encode-to-ucs-2 unicode-error-default-translation-table - unicode-error-sequence-regexp-range - frob-unicode-errors-region unicode-error-translate-region))) + unicode-invalid-regexp-range frob-unicode-errors-region + unicode-error-translate-region))) ;; #### UTF-7 is not yet implemented, and it's tricky to do. There's ;; an implementation in appendix A.1 of the Unicode Standard, Version
--- a/lisp/x-init.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/x-init.el Sat Aug 09 13:11:06 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)) + (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. - ;; 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. + ;; 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. - ;; 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) - ;; 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: + (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 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 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) - ;; 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: + (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 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: + (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) - ;; 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: + (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) - ;; 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: + (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) - ;; 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: + (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 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: + (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) - ;; 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) - ) + ;; [[ 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) @@ -311,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
--- a/lisp/x-win-sun.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/x-win-sun.el Sat Aug 09 13:11:06 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)
--- a/lisp/x-win-xfree86.el Fri Jul 18 01:00:32 2008 +0200 +++ b/lisp/x-win-xfree86.el Sat Aug 09 13:11:06 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)))
--- a/man/ChangeLog Fri Jul 18 01:00:32 2008 +0200 +++ b/man/ChangeLog Sat Aug 09 13:11:06 2008 +0200 @@ -1,3 +1,21 @@ +2008-07-26 Ville Skyttä <scop@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@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@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@parhasard.net> * lispref/objects.texi (Equality Predicates):
--- a/man/lispref/objects.texi Fri Jul 18 01:00:32 2008 +0200 +++ b/man/lispref/objects.texi Sat Aug 09 13:11:06 2008 +0200 @@ -647,17 +647,16 @@ 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
--- a/man/lispref/variables.texi Fri Jul 18 01:00:32 2008 +0200 +++ b/man/lispref/variables.texi Sat Aug 09 13:11:06 2008 +0200 @@ -895,7 +895,7 @@ @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
--- a/man/xemacs/custom.texi Fri Jul 18 01:00:32 2008 +0200 +++ b/man/xemacs/custom.texi Sat Aug 09 13:11:06 2008 +0200 @@ -136,7 +136,7 @@ @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 @@ @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
--- a/man/xemacs/frame.texi Fri Jul 18 01:00:32 2008 +0200 +++ b/man/xemacs/frame.texi Sat Aug 09 13:11:06 2008 +0200 @@ -343,7 +343,7 @@ 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 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.
--- a/man/xemacs/mule.texi Fri Jul 18 01:00:32 2008 +0200 +++ b/man/xemacs/mule.texi Sat Aug 09 13:11:06 2008 +0200 @@ -509,7 +509,7 @@ 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 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
--- a/man/xemacs/packages.texi Fri Jul 18 01:00:32 2008 +0200 +++ b/man/xemacs/packages.texi Sat Aug 09 13:11:06 2008 +0200 @@ -392,11 +392,11 @@ 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 -@file{pgkinfo/MANIFEST.pkgname} file which list all the files belonging +@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 -@file{pkinfo/MANIFEST.pkgname} and manually delete the files. Instead, use +@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
--- a/man/xemacs/programs.texi Fri Jul 18 01:00:32 2008 +0200 +++ b/man/xemacs/programs.texi Sat Aug 09 13:11:06 2008 +0200 @@ -75,7 +75,7 @@ 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 @@ @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 @@ 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}.
--- a/man/xemacs/trouble.texi Fri Jul 18 01:00:32 2008 +0200 +++ b/man/xemacs/trouble.texi Sat Aug 09 13:11:06 2008 +0200 @@ -392,7 +392,7 @@ 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@@xemacs.org}.
--- a/src/ChangeLog Fri Jul 18 01:00:32 2008 +0200 +++ b/src/ChangeLog Sat Aug 09 13:11:06 2008 +0200 @@ -1,9 +1,27 @@ +2008-08-05 Aidan Kehoe <kehoea@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@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@parhasard.net> * redisplay.c (init_redisplay): Don't set window-system to 'stream if running noninteractively, revert to the documented behaviour. +2008-07-16 Aidan Kehoe <kehoea@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@parhasard.net> Patch to make it up to the device-specific code whether
--- a/src/lisp.h Fri Jul 18 01:00:32 2008 +0200 +++ b/src/lisp.h Sat Aug 09 13:11:06 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;
--- a/src/lread.c Fri Jul 18 01:00:32 2008 +0200 +++ b/src/lread.c Sat Aug 09 13:11:06 2008 +0200 @@ -1855,6 +1855,28 @@ 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':
--- a/src/mule-charset.c Fri Jul 18 01:00:32 2008 +0200 +++ b/src/mule-charset.c Sat Aug 09 13:11:06 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,
--- a/src/nt.c Fri Jul 18 01:00:32 2008 +0200 +++ b/src/nt.c Sat Aug 09 13:11:06 2008 +0200 @@ -2063,7 +2063,7 @@ /* 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 @@ } -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.