Source

latin-euro-standards / latin-euro-latin8.el

;;; latin-euro-latin8.el --- Define language environment -*- coding: iso-2022-7 -*-

;; 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
		     ,(format "\
Following is the first paragraph of Myles na gCopaleen's An B,_i(Bal Bocht, ,_)(B
Eibhl,_m(Bn N,_m(B Nuall,_a(Bin, 1941, 1999.  The first asterisked word is a rendering
of \"diversions\" in Irish orthography, and the second \"adventures\":

\"T,_a(B na nithe at,_a(B luaithe agam sa scr,_m(Bbhinn seo ,_a(B gcur agam ann de ,_"(Br,_m(B go
,_"(Bfuil an saol eile ag druidim liom go sciobtha -- i ,_"(Bfad uainn go l,_i(Bir an
drochrud agus n,_a(Br aithn,_m(B an t-ainspiorad mar ,_"(Br,_a(Bthair m,_i(B -- agus f,_s(Bs 'mar
n,_a(B beidh ,_a(Br leith,_i(Bid,_m(B ar,_m(Bs ann.' Is c,_s(Bir cu,_m(B go gcuirf,_m(B ar f,_a(Bil don ,_5(Buintir
a leanann sinn faisn,_i(Bis ,_i(Bigin ar na dibheairseans* agus na haidbhintiurs** a
bh,_m(B ann len,_a(Br linn mar nach mbeidh ,_a(Br sampla,_m(B ar,_m(Bs ann go br,_a(Bch agus mar
nach mbeidh aon saol ,Az(Bd againne nach ,_"(Bfuil anois ann. \"

* scl,_i(Bip
** eachtra,_m(B"
			      ))
		    (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