This is the first part of my work to get Mule-UCS interpreting
ISO-8859-{13,14,15,16}. This part can’t break anyone else’s build, but
Norbert will need to do some work to integrate the new package.
2005-02-08  Aidan Kehoe  <kehoea(a)parhasard.net>
	* latin-euro-standards: New package, refactored from latin-unity.
	* latin-euro-latin10.el:
	* latin-euro-latin7.el:
	* latin-euro-latin8.el:
	* latin-euro-latin9.el:
	Refactored from latin-unity-latin{7,8,9,10}.el.
	
	* Makefile:
	* latin-euro-standards.el:
	* latin-euro-standards.texi:
	Created.
	
Index: packages/package-compile.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/package-compile.el,v
retrieving revision 1.65
diff -u -r1.65 package-compile.el
--- packages/package-compile.el	2004/03/23 17:45:05	1.65
+++ packages/package-compile.el	2005/02/08 22:13:41
@@ -205,6 +205,7 @@
     ;; mule-packages
     ("edict" . "mule-packages")
     ("egg-its" . "mule-packages")
+    ("latin-euro-standards" . "mule-packages")
     ("latin-unity" . "mule-packages")
     ("leim" . "mule-packages")
     ("locale" . "mule-packages")
Index: packages/mule-packages/latin-euro-standards/Makefile
===================================================================
RCS file: Makefile
diff -N Makefile
--- /dev/null	Tue Feb  8 23:07:32 2005
+++ Makefile	Tue Feb  8 23:07:36 2005
@@ -0,0 +1,36 @@
+# Makefile for latin-euro-standards
+
+# 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.
+
+VERSION = 1.0
+# XEmacs CVS version is canonical.
+AUTHOR_VERSION = $(VERSION)
+MAINTAINER = Aidan Kehoe <aidan(a)xemacs.org>
+PACKAGE = latin-euro-standards
+PKG_TYPE = regular
+REQUIRES = mule-base
+CATEGORY = mule
+
+STANDARD_DOCS = t
+
+ELCS = latin-euro-latin7.elc latin-euro-latin8.elc latin-euro-latin9.elc \
+	latin-euro-latin10.elc latin-euro-standards.elc
+
+EXTRA_DEPENDENCIES = $(ELCS)
+
+include ../../XEmacs.rules
Index: packages/mule-packages/latin-euro-standards/_pkg.el
===================================================================
RCS file: _pkg.el
diff -N _pkg.el
--- /dev/null	Tue Feb  8 23:07:32 2005
+++ _pkg.el	Tue Feb  8 23:07:36 2005
@@ -0,0 +1,5 @@
+;;;###autoload
+(package-provide 'latin-euro-standards
+		 :version 1.0
+:author-version "1.0"
+		 :type 'regular)
Index: packages/mule-packages/latin-euro-standards/auto-autoloads.el
===================================================================
RCS file: auto-autoloads.el
diff -N auto-autoloads.el
--- /dev/null	Tue Feb  8 23:07:32 2005
+++ auto-autoloads.el	Tue Feb  8 23:07:37 2005
@@ -0,0 +1,46 @@
+;;; DO NOT MODIFY THIS FILE
+(if (featurep 'latin-euro-standards-autoloads) (error "Already loaded"))
+
+;;;### (autoloads nil "_pkg" "latin-euro-standards/_pkg.el")
+
+(package-provide 'latin-euro-standards :version 1.0 :author-version "1.0"
:type 'regular)
+
+;;;***
+
+;;;### (autoloads nil "latin-euro-latin10"
"latin-euro-standards/latin-euro-latin10.el")
+
+(unless (find-charset 'latin-iso8859-16) (make-charset 'latin-iso8859-16
"ISO8859-16 (Latin 10)" (append (if (emacs-version>= 21 4) '(short-name
"Latin-10" long-name "ISO8859-16 (Latin 10)") nil) '(registry
"iso8859-16" dimension 1 columns 1 chars 96 final ?f graphic 1 direction l2r)))
(require 'cl) (load "cl-macs" nil t) (loop for c from 64 to 127 do
(modify-syntax-entry (make-char 'latin-iso8859-16 c) "w")) (mapc (lambda (c)
(modify-syntax-entry (make-char 'latin-iso8859-16 c) "w")) '(161 162 163
166 168 170 172 174 175 179 180 181 184 185 186 188 189 190 191)))
+
+(unless (find-coding-system 'iso-8859-16) (make-coding-system 'iso-8859-16
'iso2022 "MIME ISO-8859-16" '(charset-g0 ascii charset-g1
latin-iso8859-16 charset-g2 t charset-g3 t mnemonic "MIME/Ltn-10")))
+
+(unless (assoc "Latin-10" language-info-alist) (defun setup-latin10-environment
nil "Set up multilingual environment (MULE) for European Latin-10 users."
(interactive) (set-language-environment "Latin-10")) (apply (function
set-language-info-alist) (append (backquote ("Latin-10" ((charset ascii
latin-iso8859-16) (coding-system iso-8859-16) (coding-priority iso-8859-16) (input-method
. "latin-10-prefix") (sample-text \, (format "Hey, if you know Romanian,
send sample encoded text (eg, using \"comma-below\"\ncharacters) to
xemacs-beta(a)xemacs.org.  Please use a MIME\napplication/octet-stream attachment if
possible.")) (documentation . "This is a generic language environment for
Latin-10 (ISO-8859-16).  It\nsupports Romanian and most Western European
languages.")))) (if (emacs-version>= 21 1 15) '(("European"))
nil))))
+
+;;;***
+
+;;;### (autoloads nil "latin-euro-latin7"
"latin-euro-standards/latin-euro-latin7.el")
+
+;;;***
+
+;;;### (autoloads nil "latin-euro-latin8"
"latin-euro-standards/latin-euro-latin8.el")
+
+(unless (find-charset 'latin-iso8859-14) (make-charset 'latin-iso8859-14
"ISO8859-14 (Latin 8)" (append (if (emacs-version>= 21 4) '(short-name
"Latin-8" long-name "ISO8859-16 (Latin 8)") nil) '(registry
"iso8859-14" dimension 1 columns 1 chars 96 final ?_ graphic 1 direction l2r)))
(require 'cl) (load "cl-macs" nil t) (loop for c from 32 to 127 do
(modify-syntax-entry (make-char 'latin-iso8859-14 c) "w")) (mapc (lambda (c)
(modify-syntax-entry (make-char 'latin-iso8859-14 c) "_")) '(163 167 169
173 174 182)))
+
+(unless (find-coding-system 'iso-8859-14) (make-coding-system 'iso-8859-14
'iso2022 "MIME ISO-8859-14" '(charset-g0 ascii charset-g1
latin-iso8859-14 charset-g2 t charset-g3 t mnemonic "MIME/Ltn-8")))
+
+(unless (assoc "Latin-8" language-info-alist) (defun setup-latin8-environment
nil "Set up multilingual environment (MULE) for European Latin-8 users."
(interactive) (set-language-environment "Latin-8")) (apply (function
set-language-info-alist) (append (backquote ("Latin-8" ((charset ascii
latin-iso8859-14) (coding-system iso-8859-14) (coding-priority iso-8859-14) (input-method
. "latin-8-prefix") (sample-text \, (format "Hey, if you know a Celtic
language, send sample encoded text (eg, using\n\"dot-above\" characters) to
xemacs-beta(a)xemacs.org.  Please use a MIME\napplication/octet-stream attachment if
possible.")) (documentation . "This is a generic language environment for
Latin-8 (ISO-8859-14).  It\nsupports Celtic and most Western European languages."))))
(if (emacs-version>= 21 1 15) '(("European")) nil))))
+
+;;;***
+
+;;;### (autoloads nil "latin-euro-latin9"
"latin-euro-standards/latin-euro-latin9.el")
+
+(unless (find-charset 'latin-iso8859-15) (make-charset 'latin-iso8859-15
"ISO8859-15 (Latin 9)" (append (if (emacs-version>= 21 4) '(short-name
"Latin-9" long-name "ISO8859-15 (Latin 9)") nil) '(registry
"iso8859-15" dimension 1 columns 1 chars 96 final ?b graphic 1 direction l2r)))
(require 'cl) (load "cl-macs" nil t) (loop for c from 64 to 127 do
(modify-syntax-entry (make-char 'latin-iso8859-15 c) "w")) (mapc (lambda (c)
(modify-syntax-entry (make-char 'latin-iso8859-15 c) "w")) '(166 168 180
184 188 189 190)) (modify-syntax-entry (make-char 'latin-iso8859-15 32) "w")
(modify-syntax-entry (make-char 'latin-iso8859-15 87) "_")
(modify-syntax-entry (make-char 'latin-iso8859-15 119) "_"))
+
+(unless (find-coding-system 'iso-8859-15) (make-coding-system 'iso-8859-15
'iso2022 "MIME ISO-8859-15" '(charset-g0 ascii charset-g1
latin-iso8859-15 charset-g2 t charset-g3 t mnemonic "MIME/Ltn-9")))
+
+(unless (assoc "Latin-9" language-info-alist) (defun setup-latin9-environment
nil "Set up multilingual environment (MULE) for European Latin-9 users."
(interactive) (set-language-environment "Latin-9")) (apply (function
set-language-info-alist) (append (backquote ("Latin-9" ((charset ascii
latin-iso8859-15) (coding-system iso-8859-15) (coding-priority iso-8859-15) (input-method
. "latin-9-prefix") (sample-text \, (format "Hello, Hej, Tere, Hei,
Bonjour, Gr%c%c Gott, Ciao, %cHola!, my %c0.02" (make-char 'latin-iso8859-15 124)
(make-char 'latin-iso8859-15 95) (make-char 'latin-iso8859-15 33) (make-char
'latin-iso8859-15 36))) (documentation . "This is a generic language environment
for Latin-9 (ISO-8859-15).  It\nsupports the Euro and the following languages:\n Danish,
Dutch, English, Faeroese, Finnish, French, German, Icelandic,\n Irish, Italian, Norwegian,
Portuguese, Spanish, and Swedish.\nWe also have a German specific language environment
\"German\".")))) (if (emacs-vers!
 ion>= 21 1 15) '(("European")) nil))))
+
+(flet ((define-keysym-as-char (keysym character) (unless (lookup-key global-map (vector
keysym)) (define-key global-map (vector keysym) (function self-insert-command))) (unless
(get keysym 'ascii-character) (put keysym 'ascii-character character))) (foo (k o)
(define-keysym-as-char k (make-char 'latin-iso8859-15 o)))) (foo 'EuroSign 36)
(foo 'Scaron 38) (foo 'scaron 40) (foo 'Zcaron 52) (foo 'zcaron 56) (foo
'OE 60) (foo 'oe 61) (foo 'Ydiaeresis 62))
+
+;;;***
+
+(provide 'latin-euro-standards-autoloads)
Index: packages/mule-packages/latin-euro-standards/custom-load.el
===================================================================
RCS file: custom-load.el
diff -N custom-load.el
Index: packages/mule-packages/latin-euro-standards/latin-euro-latin10.el
===================================================================
RCS file: latin-euro-latin10.el
diff -N latin-euro-latin10.el
--- /dev/null	Tue Feb  8 23:07:32 2005
+++ latin-euro-latin10.el	Tue Feb  8 23:07:37 2005
@@ -0,0 +1,108 @@
+;;; latin-euro-latin10.el --- Define language environment
+
+;; Copyright (C) 2002 Free Software Foundation, Inc
+
+;; Author: Stephen J. Turnbull
+;; Keywords: mule, charsets
+;; Created: 2002 October 24 (as latin-unity-latin10.el)
+;; Last-modified: 2005 February 7
+
+;; 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.
+
+
+;;; Commentary:
+
+;; Provides the latin-10 language environment, character set and coding
+;; system.
+
+;;; Code:
+
+;; define ISO-8859-16 for XEmacs 21.4 and earlier
+;;;###autoload
+(unless (find-charset 'latin-iso8859-16)
+  ;; Create character set
+  (make-charset
+   'latin-iso8859-16 "ISO8859-16 (Latin 10)"
+   ;; sheesh, what we do for backward compatibility
+   ;; #### this test and the similar one below probably should be
+   ;; reformulated to use condition-case
+   (append (if (emacs-version>= 21 4)
+	       '(short-name "Latin-10"
+		 long-name "ISO8859-16 (Latin 10)")
+	     nil)
+	   '(registry "iso8859-16"
+	     dimension 1
+	     columns 1
+	     chars 96
+	     final ?f			; octet 06/06; cf ISO-IR 226
+	     graphic 1
+	     direction l2r)))
+  ;; For syntax of Latin-10 characters.
+  (require 'cl)
+  (load "cl-macs" nil t)
+  (loop for c from 64 to 127
+    do (modify-syntax-entry (make-char 'latin-iso8859-16 c) "w"))
+  (mapc (lambda (c)
+	  (modify-syntax-entry (make-char 'latin-iso8859-16 c) "w"))
+	'(#xA1 #xA2 #xA3 #xA6 #xA8 #xAA #xAC #xAE #xAF
+	  #xB3 #xB4 #xB5 #xB8 #xB9 #xBA #xBC #xBD #xBE #xBF))
+  )
+
+;;;###autoload
+(unless (find-coding-system 'iso-8859-16)
+  ;; Create coding system
+  (make-coding-system
+   'iso-8859-16 'iso2022 "MIME ISO-8859-16"
+   '(charset-g0 ascii
+     charset-g1 latin-iso8859-16
+     charset-g2 t			; grrr
+     charset-g3 t			; grrr
+     mnemonic "MIME/Ltn-10")))
+
+;;;###autoload
+(unless (assoc "Latin-10" language-info-alist)
+  (defun setup-latin10-environment ()
+    "Set up multilingual environment (MULE) for European Latin-10 users."
+    (interactive)
+    (set-language-environment "Latin-10"))
+
+  ;; sheesh, what we do for backward compatibility
+  (apply #'set-language-info-alist
+	 (append `("Latin-10"
+		   ((charset ascii latin-iso8859-16)
+		    (coding-system iso-8859-16)
+		    (coding-priority iso-8859-16)
+		    (input-method . "latin-10-prefix")
+		    (sample-text
+		     .
+		     ;; #### OK, who knows some Romanian?
+		     ,(format "\
+Hey, if you know Romanian, send sample encoded text (eg, using \"comma-below\"
+characters) to xemacs-beta(a)xemacs.org.  Please use a MIME
+application/octet-stream attachment if possible."
+			      ))
+		    (documentation . "\
+This is a generic language environment for Latin-10 (ISO-8859-16).  It
+supports Romanian and most Western European languages.")))
+		 (if (emacs-version>= 21 1 15)
+		     '(("European"))
+		   nil))))
+
+(provide 'latin-euro-latin10)
+
+;;; end of latin-euro-latin10.el
Index: packages/mule-packages/latin-euro-standards/latin-euro-latin7.el
===================================================================
RCS file: latin-euro-latin7.el
diff -N latin-euro-latin7.el
--- /dev/null	Tue Feb  8 23:07:32 2005
+++ latin-euro-latin7.el	Tue Feb  8 23:07:37 2005
@@ -0,0 +1,131 @@
+;;; latin-euro-latin7.el --- Define language environment -*- coding: iso-2022-7 -*-
+
+;; Copyright (C) 2002 Free Software Foundation, Inc
+
+;; Author: Stephen J. Turnbull
+;; Keywords: mule, charsets
+;; Created: 2002 March 7 (as latin-unity-latin7.el)
+;; Last-modified: 2005 February 7
+
+;; 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.
+
+
+;;; Commentary:
+
+;; Provides the latin-7 language environment, character set, and coding
+;; system.
+
+;;; Code:
+
+;; define ISO-8859-13 for XEmacs 21.4 and earlier
+; don't ;;;###autoload
+(unless (find-charset 'latin-iso8859-13)
+  ;; Create character set
+  (make-charset
+   'latin-iso8859-13 "ISO8859-13 (Latin 7)"
+   ;; sheesh, what we do for backward compatibility
+   ;; #### this test and the similar one below probably should be
+   ;; reformulated to use condition-case
+   (append (if (emacs-version>= 21 4)
+	       '(short-name "Latin-7"
+		 long-name "ISO8859-13 (Latin 7)")
+	     nil)
+	   '(registry "iso8859-13"
+	     dimension 1
+	     columns 1
+	     chars 96
+	     final ?Y
+	     graphic 1
+	     direction l2r)))
+  ;; For syntax of Latin-7 characters.
+  (require 'cl)
+  (load "cl-macs" nil t)		; howcum no #'provide?
+  (loop for c from 64 to 127		; from ',A@(B' to ',A(B'
+    do (modify-syntax-entry (make-char 'latin-iso8859-13 c) "w"))
+  (mapc (lambda (c)
+	  (modify-syntax-entry (make-char 'latin-iso8859-13 c) "w"))
+	'(#xA8 #xAA #xAF #xB8 #xBA #xBF))
+  
+  (modify-syntax-entry (make-char 'latin-iso8859-13 32) "w") ; no-break
space
+  (modify-syntax-entry (make-char 'latin-iso8859-13 87) "_") ; multiply
+  (modify-syntax-entry (make-char 'latin-iso8859-13 119) "_") ; divide
+  (modify-syntax-entry (make-char 'latin-iso8859-13 127) ".") ; right
squote
+  )
+
+(defvar iso8859/13-case-table
+  (let ((table (copy-case-table (standard-case-table))))
+    (mapc (lambda (pair)
+	    (put-case-table-pair (make-char 'latin-iso8859-13 (car pair))
+				 (make-char 'latin-iso8859-13 (cdr pair))
+				 table))
+	  '((#xA8 . #xB8) (#xAA . #xBA) (#xAF . #xBF)))
+    (let ((i #xC0))
+      (while (< i #xDF)
+	(unless (= i #xD7)
+	    (put-case-table-pair (make-char 'latin-iso8859-13 i)
+				 (make-char 'latin-iso8859-13 (+ i #x20))
+				 table))
+	(setq i (1+ i))))	  
+    table)
+  "Case table for Latin 7, right half of ISO 8859/13.")
+
+; don't ;;;###autoload
+(unless (find-coding-system 'iso-8859-13)
+  ;; Create coding system
+  (make-coding-system
+   'iso-8859-13 'iso2022 "MIME ISO-8859-13"
+   '(charset-g0 ascii
+     charset-g1 latin-iso8859-13
+     charset-g2 t			; grrr
+     charset-g3 t			; grrr
+     mnemonic "MIME/Ltn-7")))
+
+; don't ;;;###autoload
+(unless (assoc "Latin-7" language-info-alist)
+  (defun setup-latin7-environment ()
+    "Set up multilingual environment (MULE) for Baltic Rim Latin-7 users."
+    (interactive)
+    (set-language-environment "Latin-7"))
+
+  ;; sheesh, what we do for backward compatibility
+  (apply #'set-language-info-alist
+	 (append `("Latin-7"
+		   ((charset ascii latin-iso8859-13)
+		    (coding-system iso-8859-13)
+		    (coding-priority iso-8859-13)
+		    (input-method . "latin-7-prefix")
+		    (sample-text
+		     .
+		     ,(format "\
+Hello, Hej, Tere, Hei, Bonjour, Gr%c%c Gott, Ciao, %cHola!"
+			      ;; SMALL U WITH UMLAUT
+			      (make-char 'latin-iso8859-13 #x7C)
+			      ;; GERMAN SHARP S
+			      (make-char 'latin-iso8859-13 #x5F)
+			      ;; INVERTED EXCLAMATION MARK
+			      (make-char 'latin-iso8859-13 #x21)))
+		    (documentation . "\
+This is a generic language environment for Latin-7 (ISO-8859-13).  It
+supports the Baltic Rim languages.")))
+		 (if (emacs-version>= 21 1 15)
+		     '(("Baltic Rim"))
+		   nil))))
+
+(provide 'latin-euro-latin7)
+
+;;; end of latin-euro-latin7.el
Index: packages/mule-packages/latin-euro-standards/latin-euro-latin8.el
===================================================================
RCS file: latin-euro-latin8.el
diff -N latin-euro-latin8.el
--- /dev/null	Tue Feb  8 23:07:32 2005
+++ latin-euro-latin8.el	Tue Feb  8 23:07:37 2005
@@ -0,0 +1,106 @@
+;;; latin-euro-latin8.el --- Define language environment
+
+;; Copyright (C) 2002 Free Software Foundation, Inc
+
+;; Author: Stephen J. Turnbull
+;; Keywords: mule, charsets
+;; Created: 2002 October 24 (as latin-unity-latin8.el)
+;; Last-modified: 2005 February 7
+
+;; 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.
+
+
+;;; Commentary:
+
+;; Provides the latin-8 language environment, character set and coding
+;; system.
+
+;;; Code:
+
+;; define ISO-8859-14 for XEmacs 21.4 and earlier
+;;;###autoload
+(unless (find-charset 'latin-iso8859-14)
+  ;; Create character set
+  (make-charset
+   'latin-iso8859-14 "ISO8859-14 (Latin 8)"
+   ;; sheesh, what we do for backward compatibility
+   ;; #### this test and the similar one below probably should be
+   ;; reformulated to use condition-case
+   (append (if (emacs-version>= 21 4)
+	       '(short-name "Latin-8"
+		 long-name "ISO8859-16 (Latin 8)")
+	     nil)
+	   '(registry "iso8859-14"
+	     dimension 1
+	     columns 1
+	     chars 96
+	     final ?_			; octet 05/15; cf ISO-IR 199
+	     graphic 1
+	     direction l2r)))
+  ;; For syntax of Latin-8 characters.
+  (require 'cl)
+  (load "cl-macs" nil t)
+  (loop for c from 32 to 127
+    do (modify-syntax-entry (make-char 'latin-iso8859-14 c) "w"))
+  (mapc (lambda (c)
+	  (modify-syntax-entry (make-char 'latin-iso8859-14 c) "_"))
+	'(#xA3 #xA7 #xA9 #xAD #xAE #xB6))
+  )
+
+;;;###autoload
+(unless (find-coding-system 'iso-8859-14)
+  ;; Create coding system
+  (make-coding-system
+   'iso-8859-14 'iso2022 "MIME ISO-8859-14"
+   '(charset-g0 ascii
+     charset-g1 latin-iso8859-14
+     charset-g2 t			; grrr
+     charset-g3 t			; grrr
+     mnemonic "MIME/Ltn-8")))
+
+;;;###autoload
+(unless (assoc "Latin-8" language-info-alist)
+  (defun setup-latin8-environment ()
+    "Set up multilingual environment (MULE) for European Latin-8 users."
+    (interactive)
+    (set-language-environment "Latin-8"))
+
+  ;; sheesh, what we do for backward compatibility
+  (apply #'set-language-info-alist
+	 (append `("Latin-8"
+		   ((charset ascii latin-iso8859-14)
+		    (coding-system iso-8859-14)
+		    (coding-priority iso-8859-14)
+		    (input-method . "latin-8-prefix")
+		    (sample-text
+		     .
+		     ;; #### OK, who knows some Gaelic?
+		     ,(format "\
+Hey, if you know a Celtic language, send sample encoded text (eg, using
+\"dot-above\" characters) to xemacs-beta(a)xemacs.org.  Please use a MIME
+application/octet-stream attachment if possible."
+			      ))
+		    (documentation . "\
+This is a generic language environment for Latin-8 (ISO-8859-14).  It
+supports Celtic and most Western European languages.")))
+		 (if (emacs-version>= 21 1 15)
+		     '(("European"))
+		   nil))))
+
+(provide 'latin-euro-latin8)
+;;; end of latin-euro-latin8.el
Index: packages/mule-packages/latin-euro-standards/latin-euro-latin9.el
===================================================================
RCS file: latin-euro-latin9.el
diff -N latin-euro-latin9.el
--- /dev/null	Tue Feb  8 23:07:32 2005
+++ latin-euro-latin9.el	Tue Feb  8 23:07:38 2005
@@ -0,0 +1,139 @@
+;;; latin-euro-latin9.el --- Define language environment
+
+;; Copyright (C) 2002, 2003 Free Software Foundation, Inc
+
+;; Author: Stephen J. Turnbull
+;; Keywords: mule, charsets
+;; Created: 2002 March 7 (as latin-unity-latin9.el)
+;; Last-modified: 2005 February 7
+
+;; 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.
+
+
+;;; Commentary:
+
+;; Provides the latin-9 language environment, character set and coding
+;; system.
+
+;;; Code:
+
+;; define ISO-8859-15 for XEmacs 21.4 and earlier
+;;;###autoload
+(unless (find-charset 'latin-iso8859-15)
+  ;; Create character set
+  (make-charset
+   'latin-iso8859-15 "ISO8859-15 (Latin 9)"
+   ;; sheesh, what we do for backward compatibility
+   ;; #### this test and the similar one below probably should be
+   ;; reformulated to use condition-case
+   (append (if (emacs-version>= 21 4)
+	       '(short-name "Latin-9"
+		 long-name "ISO8859-15 (Latin 9)")
+	     nil)
+	   '(registry "iso8859-15"
+	     dimension 1
+	     columns 1
+	     chars 96
+	     final ?b
+	     graphic 1
+	     direction l2r)))
+  ;; For syntax of Latin-9 characters.
+  (require 'cl)
+  (load "cl-macs" nil t)		; howcum no #'provide?
+  (loop for c from 64 to 127		; from 'À' to 'ÿ'
+    do (modify-syntax-entry (make-char 'latin-iso8859-15 c) "w"))
+  (mapc (lambda (c)
+	  (modify-syntax-entry (make-char 'latin-iso8859-15 c) "w"))
+	'(#xA6 #xA8 #xB4 #xB8 #xBC #xBD #xBE))
+  
+  (modify-syntax-entry (make-char 'latin-iso8859-15 32) "w") ; no-break
space
+  (modify-syntax-entry (make-char 'latin-iso8859-15 87) "_") ; multiply
+  (modify-syntax-entry (make-char 'latin-iso8859-15 119) "_") ; divide
+  )
+
+;;;###autoload
+(unless (find-coding-system 'iso-8859-15)
+  ;; Create coding system
+  (make-coding-system
+   'iso-8859-15 'iso2022 "MIME ISO-8859-15"
+   '(charset-g0 ascii
+     charset-g1 latin-iso8859-15
+     charset-g2 t			; grrr
+     charset-g3 t			; grrr
+     mnemonic "MIME/Ltn-9")))
+
+;;;###autoload
+(unless (assoc "Latin-9" language-info-alist)
+  (defun setup-latin9-environment ()
+    "Set up multilingual environment (MULE) for European Latin-9 users."
+    (interactive)
+    (set-language-environment "Latin-9"))
+
+  ;; sheesh, what we do for backward compatibility
+  (apply #'set-language-info-alist
+	 (append `("Latin-9"
+		   ((charset ascii latin-iso8859-15)
+		    (coding-system iso-8859-15)
+		    (coding-priority iso-8859-15)
+		    (input-method . "latin-9-prefix")
+		    (sample-text
+		     .
+		     ,(format "\
+Hello, Hej, Tere, Hei, Bonjour, Gr%c%c Gott, Ciao, %cHola!, my %c0.02"
+			      ;; SMALL U WITH UMLAUT
+			      (make-char 'latin-iso8859-15 #x7C)
+			      ;; GERMAN SHARP S
+			      (make-char 'latin-iso8859-15 #x5F)
+			      ;; INVERTED EXCLAMATION MARK
+			      (make-char 'latin-iso8859-15 #x21)
+			      ;; EURO SIGN
+			      (make-char 'latin-iso8859-15 #x24)))
+		    (documentation . "\
+This is a generic language environment for Latin-9 (ISO-8859-15).  It
+supports the Euro and the following languages:
+ Danish, Dutch, English, Faeroese, Finnish, French, German, Icelandic,
+ Irish, Italian, Norwegian, Portuguese, Spanish, and Swedish.
+We also have a German specific language environment \"German\".")))
+		 (if (emacs-version>= 21 1 15)
+		     '(("European"))
+		   nil))))
+
+;; #### move these to a separate file for keysyms
+;; These are all the ones not in Latin-1.
+
+;;;###autoload
+(flet ((define-keysym-as-char (keysym character)
+	 (unless (lookup-key global-map (vector keysym))
+	   (define-key global-map (vector keysym) #'self-insert-command))
+	 (unless (get keysym 'ascii-character)
+	   (put keysym 'ascii-character character)))
+       (foo (k o)
+	 (define-keysym-as-char k (make-char 'latin-iso8859-15 o))))
+  (foo 'EuroSign   #x24)
+  (foo 'Scaron     #x26)
+  (foo 'scaron     #x28)
+  (foo 'Zcaron     #x34)
+  (foo 'zcaron     #x38)
+  (foo 'OE         #x3C)
+  (foo 'oe         #x3D)
+  (foo 'Ydiaeresis #x3E))
+
+
+(provide 'latin-euro-latin9)
+
+;;; end of latin-euro-latin9.el
Index: packages/mule-packages/latin-euro-standards/latin-euro-standards.el
===================================================================
RCS file: latin-euro-standards.el
diff -N latin-euro-standards.el
--- /dev/null	Tue Feb  8 23:07:32 2005
+++ latin-euro-standards.el	Tue Feb  8 23:07:38 2005
@@ -0,0 +1,53 @@
+;;; latin-euro-standards.el -*- coding: iso-2022-7 -*-
+
+;; Copyright (C) 2002 Free Software Foundation, Inc
+
+;; Author: Aidan Kehoe
+;; Keywords: mule, charsets
+;; Created: 2005 February 7
+;; Last-modified: 2005 February 7
+
+;; 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.
+
+;;; Commentary:
+
+;; The latin-euro-standards package provides coding systems, Mule character
+;; sets, and language environments for the ISO-8859-13, -14, -15 and -16
+;; standard character encodings. Besides the Euro sign--whence the name of
+;; this package--among these encodings we have single-width directed
+;; quotation marks, handy if you're if you're in an environment where your
+;; TTY has a UTF-8 coding system which interprets these characters as
+;; single-width.
+
+;; These have been refactored out from the latin-unity package because it
+;; turns out that, to have Mule-UCS support the Euro sign, the simplest
+;; approach is to have these character sets available to it when
+;; byte-compiling. Since latin-unity already depends on mule-ucs, and since
+;; moving these character sets out from latin-unity and making it depend on
+;; them is pretty practical, we've moved them here, to avoid a nasty
+;; circular dependency.
+
+;;; Code:
+
+(require 'latin-euro-latin7)
+(require 'latin-euro-latin8)
+(require 'latin-euro-latin9)
+(require 'latin-euro-latin10)
+
+(provide 'latin-euro-standards)
+;; end of latin-euro-standards.el
\ No newline at end of file
Index: packages/mule-packages/latin-euro-standards/latin-euro-standards.texi
===================================================================
RCS file: latin-euro-standards.texi
diff -N latin-euro-standards.texi
--- /dev/null	Tue Feb  8 23:07:32 2005
+++ latin-euro-standards.texi	Tue Feb  8 23:07:39 2005
@@ -0,0 +1,286 @@
+\input texinfo   @c -*-texinfo-*-
+
+@c Manual for the XEmacs latin-unity package.
+
+@c ** #### something uses these headers, find out how and explain here
+@c %**start of header
+@setfilename latin-euro-standards.info
+@settitle Recent ISO 8859 character encoding standards
+@setchapternewpage odd
+@c %**end of header
+
+@c Version values, for easy modification
+@set VERSION 1.0
+@set CREATED Monday, February 7, 2005
+@set UPDATED Monday, February 7, 2005
+
+@c ** Many people seem to prefer this footnote style.
+@footnotestyle end
+
+@direntry
+* latin-euro-standards::                Make recent ISO 8859 character
+encodings available to XEmacs.
+@end direntry
+
+@c ** It is often convenient to use a macro for names which have unusual
+@c ** spelling or formatting conventions.
+@c Macro to make formatting of the package name consistent.
+@macro pkgname
+@i{latin-euro-standards}
+@end macro
+
+@c Copying permissions, et al
+@c Note that this whole section is repeated thrice, once for the Info
+@c version, once for TeX, and once for HTML.
+@c Note that if you combine this document with others' work, you may
+@c need to change the permissions statement.  Make sure you do so in all
+@c three places.
+@c #### Probably not the right place for HTML.
+@html
+This file is part of XEmacs.  It documents the @pkgname{} package,
+which ensures that wherever possible representations of all Latin
+characters are drawn from the same 8-bit character set.
+     
+Copyright @copyright{} 2005 Free Software Foundation, Inc.
+     
+Permission is granted to make and distribute verbatim or modified copies
+of this manual provided that the copyright notice above is preserved,
+and at least one of the numbered paragraphs below up to the phrase "End
+of permissions notice." is included, under the terms of any of the
+licenses enumerated below.
+
+1. The GNU General Public License, version 2 or any later version
+published by the Free Software Foundation, Inc.  A copy of the GNU
+General Public License was included with your copy of XEmacs.
+Alternatively, you may request a copy from the Free Software Foundation,
+Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+2. The license used for XEmacs documentation (see the file
+man/xemacs/xemacs.texi distributed with XEmacs).
+
+3. The GNU Free Documentation License (available from the Free Software
+Foundation at the address above).
+
+End of permissions notice.
+
+Because the XEmacs documentation license and the GNU Free Documentation
+License are not free software licenses, and are mutually incompatible
+with each other and with the GNU General Public License, it is desirable
+that the permissions given here be preserved if possible.  This normally
+requires that you write fresh text for any additions or modifications to
+this file, rather than copying code or comments from other sources.  The
+exceptions are if you are sole copyright holder for the other source, or
+if you receive permission from the holders of the copyrights for the
+other sources.
+
+That is, if you merge code or comments from a file licensed to you only
+under the GNU General Public License you @emph{may not} distribute
+under the documentation licenses or with a dual license; such a
+combination may be distributed under the GNU General Public License
+@emph{only}.  Similarly, if you copy text from a file licensed to you
+only under the XEmacs documentation license or the GNU Free
+Documentation License you may distribute the result @emph{only} under
+the appropriate license.
+@end html
+
+@ifinfo
+This file is part of XEmacs.  It documents the @pkgname{} package,
+which ensures that wherever possible representations of all Latin
+characters are drawn from the same 8-bit character set.
+     
+Copyright @copyright{} 2005 Free Software Foundation, Inc.
+     
+Permission is granted to make and distribute verbatim or modified copies
+of this manual provided that the copyright notice above is preserved,
+and at least one of the numbered paragraphs below up to the phrase "End
+of permissions notice." is included, under the terms of any of the
+licenses enumerated below.
+
+@ignore 
+Permission is granted to process this file through TeX and print the
+results, provided the printed document carries a copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+
+@end ignore
+1. The GNU General Public License, version 2 or any later version
+published by the Free Software Foundation, Inc.  A copy of the GNU
+General Public License was included with your copy of XEmacs.
+Alternatively, you may request a copy from the Free Software Foundation,
+Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+2. The license used for XEmacs documentation (see the file
+man/xemacs/xemacs.texi distributed with XEmacs).
+
+3. The GNU Free Documentation License (available from the Free Software
+Foundation at the address above).
+
+End of permissions notice.
+
+Because the XEmacs documentation license and the GNU Free Documentation
+License are not free software licenses, and are mutually incompatible
+with each other and with the GNU General Public License, it is desirable
+that the permissions given here be preserved if possible.  This normally
+requires that you write fresh text for any additions or modifications to
+this file, rather than copying code or comments from other sources.  The
+exceptions are if you are sole copyright holder for the other source, or
+if you receive permission from the holders of the copyrights for the
+other sources.
+
+That is, if you merge code or comments from a file licensed to you only
+under the GNU General Public License you @emph{may not} distribute
+under the documentation licenses or with a dual license; such a
+combination may be distributed under the GNU General Public License
+@emph{only}.  Similarly, if you copy text from a file licensed to you
+only under the XEmacs documentation license or the GNU Free
+Documentation License you may distribute the result @emph{only} under
+the appropriate license.
+@end ifinfo
+
+@tex
+
+@titlepage
+@title Recent ISO 8859 character encodings
+@subtitle Last updated @value{UPDATED}
+
+@author Aidan Kehoe
+@page
+
+This file is part of XEmacs.  It documents the @pkgname{} package,
+which ensures that wherever possible representations of all Latin
+characters are drawn from the same 8-bit character set.
+     
+Copyright @copyright{} 2005 Free Software Foundation, Inc.
+     
+@vskip 0pt plus 1filll
+Permission is granted to make and distribute verbatim or modified copies
+of this manual provided that the copyright notice above is preserved,
+and at least one of the numbered paragraphs below up to the phrase "End
+of permissions notice." is included, under the terms of any of the
+licenses enumerated below.
+
+@ignore 
+Permission is granted to process this file through TeX and print the
+results, provided the printed document carries a copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+   
+@end ignore
+1. The GNU General Public License, version 2 or any later version
+published by the Free Software Foundation, Inc.  A copy of the GNU
+General Public License was included with your copy of XEmacs.
+Alternatively, you may request a copy from the Free Software Foundation,
+Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+2. The license used for XEmacs documentation (see the file
+man/xemacs/xemacs.texi distributed with XEmacs).
+
+3. The GNU Free Documentation License (available from the Free Software
+Foundation at the address above).
+
+End of permissions notice.
+
+Because the XEmacs documentation license and the GNU Free Documentation
+License are not free software licenses, and are mutually incompatible
+with each other and with the GNU General Public License, it is desirable
+that the permissions given here be preserved if possible.  This normally
+requires that you write fresh text for any additions or modifications to
+this file, rather than copying code or comments from other sources.  The
+exceptions are if you are sole copyright holder for the other source, or
+if you receive permission from the holders of the copyrights for the
+other sources.
+
+That is, if you merge code or comments from a file licensed to you only
+under the GNU General Public License you @emph{may not} distribute
+under the documentation licenses or with a dual license; such a
+combination may be distributed under the GNU General Public License
+@emph{only}.  Similarly, if you copy text from a file licensed to you
+only under the XEmacs documentation license or the GNU Free
+Documentation License you may distribute the result @emph{only} under
+the appropriate license.
+     
+@end titlepage
+@page
+
+@end tex
+
+@ifnottex
+@node Top, Copying, (dir), (dir)
+@top Recent ISO 8859 character encodings
+@end ifnottex
+
+This package provides several recent character encodings that have been
+standardized by ISO, the international organization for standardization,
+together with the associated Mule character sets and coding systems. 
+
+It is intended to be used by the Mule-UCS (@pxref{Top,,, mule-ucs,
+Mule-UCS User Manual}) and Latin Unity (@pxref{Top,,, latin-unity,
+Latin Unity for Emacsen}) packages, and was, indeed, refactored out 
+from the former.
+
+Each file provides a language environment named, e.g. @samp{Latin-7}, a
+coding system named @samp{iso-8859-13} (etc.) and a Mule character set
+named @samp{latin-iso8859-13} (again, etc.).
+
+@menu
+* Copying::             @pkgname{} copying conditions.
+* Standards::           Details of the relevant ISO character encodings.
+@end menu
+
+@node Copying, Standards, Top, Top
+@chapter @pkgname{} Copying Conditions
+
+@c ** CHECK THE COPYRIGHT DATE(S) AND HOLDER(S)!
+
+Copyright (C) 2005 Free Software Foundation, Inc.
+
+@pkgname{} 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.
+
+@pkgname{} 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.
+
+@node Standards, , Copying, Top
+@chapter Standards
+
+@section Latin 7
+
+ISO 8859-13 dates from 1998, is the seventh Roman-alphabet standard of
+the ISO-8859 series, and is intended for use along the Baltic rim. It
+notably includes support for Latvian, something that wasn't available in
+its predecessor in North European support, ISO-8859-6.
+
+@section Latin 8
+
+ISO 8859-14 gives full support to Welsh and Gaelic---note that modern
+Irish Gaelic fits quite comfortably in ISO-8859-1, so in practical terms
+this is more likely to be used for Welsh and Scots Gaelic, if even
+then. It dates from 1998.
+
+@section Latin 9
+
+ISO 8859 15 dates from 1999, and is a mostly-compatible revision to ISO
+8859 1, replacing the disused CURRENCY SIGN with U+20AC, EURO SIGN, and
+making seven other changes to give better support to French and
+Finnish. It's most often encountered in Western European Usenet groups,
+in this author's experience.
+
+@section Latin 10, or ISO 8859-10
+
+This standard is from 2001, and gives better support to Romanian and
+some other languages than was widely available at that point. It also
+has single-width directed quotation marks, which are useful in a TTY
+environment where using the corresponding CNS characters within XEmacs
+would result in a miscalculation of column numbers and corresponding
+second-guessing and minor derangement when directed quotation marks are
+used.
+
Index: packages/mule-packages/latin-euro-standards/package-info.in
===================================================================
RCS file: package-info.in
diff -N package-info.in
--- /dev/null	Tue Feb  8 23:07:32 2005
+++ package-info.in	Tue Feb  8 23:07:39 2005
@@ -0,0 +1,20 @@
+(locale
+  (standards-version 1.1
+   version VERSION
+   author-version AUTHOR_VERSION
+   date DATE
+   build-date BUILD_DATE
+   maintainer MAINTAINER
+   distribution mule
+   priority high
+   category CATEGORY
+   dump nil
+   description 
+	"MULE: Support for the Latin{7,8,9,10} character sets & coding systems."
+   filename FILENAME
+   md5sum MD5SUM
+   size SIZE
+   provides ()
+   requires (REQUIRES)
+   type regular
+))
-- 
“Ah come on now Ted, a Volkswagen with a mind of its own, driving all over
the place and going mad, if that’s not scary I don’t know what is.”