-;;; iso-cvt.-el -- translate ISO 8859-1 from/to various encodings
+;;; iso-cvt.el --- translate ISO 8859-1 from/to various encodings -*- coding: iso-latin-1 -*-
;; This file was formerly called gm-lingo.el.
-;; Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1996, 1998, 2000 Free Software Foundation, Inc.
;; Author: Michael Gschwind <mike@vlsivie.tuwien.ac.at>
;; Keywords: tex, iso, latin, i18n
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
-;;; Commentary:
-;; This lisp code is a general framework for translating various
+;;; Commentary:
+;; This lisp code is a general framework for translating various
;; representations of the same data.
;; among other things it can be used to translate TeX, HTML, and compressed
-;; files to ISO 8859-1. It can also be used to translate different charsets
+;; files to ISO 8859-1. It can also be used to translate different charsets
;; such as IBM PC, Macintosh or HP Roman8.
;; Note that many translations use the GNU recode tool to do the actual
;; conversion. So you might want to install that tool to get the full
;; benefit of iso-cvt.el
-;
; TO DO:
-; Cover more cases for translation (There is an infinite number of ways to
+; Cover more cases for translation. (There is an infinite number of ways to
; represent accented characters in TeX)
;; SEE ALSO:
-; If you are interested in questions related to using the ISO 8859-1
+; If you are interested in questions related to using the ISO 8859-1
; characters set (configuring emacs, Unix, etc. to use ISO), then you
-; can get the ISO 8859-1 FAQ via anonymous ftp from
-; ftp.vlsivie.tuwien.ac.at in /pub/bit/FAQ-ISO-8859-1
+; can get the ISO 8859-1 FAQ via anonymous ftp from
+; ftp.vlsivie.tuwien.ac.at in /pub/8bit/FAQ-ISO-8859-1
;;; Code:
-(provide 'iso-cvt)
-(require 'format)
-
(defvar iso-spanish-trans-tab
'(
("~n" "ñ")
(setq work-tab (cdr work-tab)))))
(point-max))))
-(defun iso-spanish (from to)
- "Translate net conventions for Spanish to ISO 8859-1 in region."
- (interactive "r")
+;;;###autoload
+(defun iso-spanish (from to &optional buffer)
+ "Translate net conventions for Spanish to ISO 8859-1.
+The region between FROM and TO is translated using the table TRANS-TAB.
+Optional arg BUFFER is ignored (for use in `format-alist')."
+ (interactive "*r")
(iso-translate-conventions from to iso-spanish-trans-tab))
(defvar iso-aggressive-german-trans-tab
("\"s" "ß")
("\\\\3" "ß")
)
- "German translation table.
+ "German translation table.
This table uses an aggressive translation approach and may erroneously
translate too much.")
("\\([-a-zA-Z\"`]\\)\\\\3" "\\1ß")
)
"German translation table.
-This table uses a conservative translation approach and may translate too
+This table uses a conservative translation approach and may translate too
little.")
-
-(defvar iso-german-trans-tab iso-aggressive-german-trans-tab
+(defvar iso-german-trans-tab iso-aggressive-german-trans-tab
"Currently active translation table for German.")
-(defun iso-german (from to)
- "Translate net conventions for German to ISO 8859-1 in region."
- (interactive "r")
+;;;###autoload
+(defun iso-german (from to &optional buffer)
+ "Translate net conventions for German to ISO 8859-1.
+The region between FROM and TO is translated using the table TRANS-TAB.
+Optional arg BUFFER is ignored (for use in `format-alist')."
+ (interactive "*r")
(iso-translate-conventions from to iso-german-trans-tab))
-
+
(defvar iso-iso2tex-trans-tab
'(
("ä" "{\\\\\"a}")
)
"Translation table for translating ISO 8859-1 characters to TeX sequences.")
-
-
-
-(defun iso-iso2tex (from to)
- "Translate ISO 8859-1 characters to TeX sequences in region."
- (interactive "r")
+;;;###autoload
+(defun iso-iso2tex (from to &optional buffer)
+ "Translate ISO 8859-1 characters to TeX sequences.
+The region between FROM and TO is translated using the table TRANS-TAB.
+Optional arg BUFFER is ignored (for use in `format-alist')."
+ (interactive "*r")
(iso-translate-conventions from to iso-iso2tex-trans-tab))
-
(defvar iso-tex2iso-trans-tab
'(
("{\\\\\"a}" "ä")
("\\?`" "¿")
("!`" "¡")
)
- "Translation table for translating TeX sequences to ISO 8859-1 characters.
-This table is not exhaustive (and due to TeX's power can never be). It only
+ "Translation table for translating TeX sequences to ISO 8859-1 characters.
+This table is not exhaustive (and due to TeX's power can never be). It only
contains commonly used sequences.")
-(defun iso-tex2iso (from to)
- "Translate TeX sequences to ISO 8859-1 characters in region."
- (interactive "r")
+;;;###autoload
+(defun iso-tex2iso (from to &optional buffer)
+ "Translate TeX sequences to ISO 8859-1 characters.
+The region between FROM and TO is translated using the table TRANS-TAB.
+Optional arg BUFFER is ignored (for use in `format-alist')."
+ (interactive "*r")
(iso-translate-conventions from to iso-tex2iso-trans-tab))
(defvar iso-gtex2iso-trans-tab
)
"Translation table for translating ISO 8859-1 characters to German TeX.")
-(defun iso-gtex2iso (from to)
- "Translate German TeX sequences to ISO 8859-1 characters in region."
- (interactive "r")
+;;;###autoload
+(defun iso-gtex2iso (from to &optional buffer)
+ "Translate German TeX sequences to ISO 8859-1 characters.
+The region between FROM and TO is translated using the table TRANS-TAB.
+Optional arg BUFFER is ignored (for use in `format-alist')."
+ (interactive "*r")
(iso-translate-conventions from to iso-gtex2iso-trans-tab))
-
-(defun iso-iso2gtex (from to)
- "Translate ISO 8859-1 characters to German TeX sequences in region."
- (interactive "r")
+;;;###autoload
+(defun iso-iso2gtex (from to &optional buffer)
+ "Translate ISO 8859-1 characters to German TeX sequences.
+The region between FROM and TO is translated using the table TRANS-TAB.
+Optional arg BUFFER is ignored (for use in `format-alist')."
+ (interactive "*r")
(iso-translate-conventions from to iso-iso2gtex-trans-tab))
(defvar iso-iso2duden-trans-tab
("Ü" "Ue")
("ß" "ss")))
-(defun iso-iso2duden (from to)
- "Translate ISO 8859-1 characters to German TeX sequences in region."
- (interactive "r")
+;;;###autoload
+(defun iso-iso2duden (from to &optional buffer)
+ "Translate ISO 8859-1 characters to German TeX sequences.
+The region between FROM and TO is translated using the table TRANS-TAB.
+Optional arg BUFFER is ignored (for use in `format-alist')."
+ (interactive "*r")
(iso-translate-conventions from to iso-iso2duden-trans-tab))
+(defvar iso-iso2sgml-trans-tab
+ '(("À" "À")
+ ("Á" "Á")
+ ("Â" "Â")
+ ("Ã" "Ã")
+ ("Ä" "Ä")
+ ("Å" "Å")
+ ("Æ" "Æ")
+ ("Ç" "Ç")
+ ("È" "È")
+ ("É" "É")
+ ("Ê" "Ê")
+ ("Ë" "Ë")
+ ("Ì" "Ì")
+ ("Í" "Í")
+ ("Î" "Î")
+ ("Ï" "Ï")
+ ("Ð" "Ð")
+ ("Ñ" "Ñ")
+ ("Ò" "Ò")
+ ("Ó" "Ó")
+ ("Ô" "Ô")
+ ("Õ" "Õ")
+ ("Ö" "Ö")
+ ("Ø" "Ø")
+ ("Ù" "Ù")
+ ("Ú" "Ú")
+ ("Û" "Û")
+ ("Ü" "Ü")
+ ("Ý" "Ý")
+ ("Þ" "Þ")
+ ("ß" "ß")
+ ("à" "à")
+ ("á" "á")
+ ("â" "â")
+ ("ã" "ã")
+ ("ä" "ä")
+ ("å" "å")
+ ("æ" "æ")
+ ("ç" "ç")
+ ("è" "è")
+ ("é" "é")
+ ("ê" "ê")
+ ("ë" "ë")
+ ("ì" "ì")
+ ("í" "í")
+ ("î" "î")
+ ("ï" "ï")
+ ("ð" "ð")
+ ("ñ" "ñ")
+ ("ò" "ò")
+ ("ó" "ó")
+ ("ô" "ô")
+ ("õ" "õ")
+ ("ö" "ö")
+ ("ø" "ø")
+ ("ù" "ù")
+ ("ú" "ú")
+ ("û" "û")
+ ("ü" "ü")
+ ("ý" "ý")
+ ("þ" "þ")
+ ("ÿ" "ÿ")))
+
+(defvar iso-sgml2iso-trans-tab
+ '(("À" "À")
+ ("Á" "Á")
+ ("Â" "Â")
+ ("Ã" "Ã")
+ ("Ä" "Ä")
+ ("Å" "Å")
+ ("Æ" "Æ")
+ ("Ç" "Ç")
+ ("È" "È")
+ ("É" "É")
+ ("Ê" "Ê")
+ ("Ë" "Ë")
+ ("Ì" "Ì")
+ ("Í" "Í")
+ ("Î" "Î")
+ ("Ï" "Ï")
+ ("Ð" "Ð")
+ ("Ñ" "Ñ")
+ ("Ò" "Ò")
+ ("Ó" "Ó")
+ ("Ô" "Ô")
+ ("Õ" "Õ")
+ ("Ö" "Ö")
+ ("Ø" "Ø")
+ ("Ù" "Ù")
+ ("Ú" "Ú")
+ ("Û" "Û")
+ ("Ü" "Ü")
+ ("Ý" "Ý")
+ ("Þ" "Þ")
+ ("ß" "ß")
+ ("à" "à")
+ ("á" "á")
+ ("â" "â")
+ ("ã" "ã")
+ ("ä" "ä")
+ ("å" "å")
+ ("æ" "æ")
+ ("ç" "ç")
+ ("è" "è")
+ ("é" "é")
+ ("ê" "ê")
+ ("ë" "ë")
+ ("ì" "ì")
+ ("í" "í")
+ ("î" "î")
+ ("ï" "ï")
+ ("ð" "ð")
+ ("ñ" "ñ")
+ ("ò" "ò")
+ ("ó" "ó")
+ ("ô" "ô")
+ ("õ" "õ")
+ ("ö" "ö")
+ ("ø" "ø")
+ ("ù" "ù")
+ ("ú" "ú")
+ ("û" "û")
+ ("ü" "ü")
+ ("ý" "ý")
+ ("þ" "þ")
+ ("ÿ" "ÿ")))
+
+;;;###autoload
+(defun iso-iso2sgml (from to &optional buffer)
+ "Translate ISO 8859-1 characters in the region to SGML entities.
+The entities used are from \"ISO 8879:1986//ENTITIES Added Latin 1//EN\".
+Optional arg BUFFER is ignored (for use in `format-alist')."
+ (interactive "*r")
+ (iso-translate-conventions from to iso-iso2sgml-trans-tab))
+
+;;;###autoload
+(defun iso-sgml2iso (from to &optional buffer)
+ "Translate SGML entities in the region to ISO 8859-1 characters.
+The entities used are from \"ISO 8879:1986//ENTITIES Added Latin 1//EN\".
+Optional arg BUFFER is ignored (for use in `format-alist')."
+ (interactive "*r")
+ (iso-translate-conventions from to iso-sgml2iso-trans-tab))
+
+;;;###autoload
(defun iso-cvt-read-only ()
+ "Warn that format is read-only."
(interactive)
(error "This format is read-only; specify another format for writing"))
+;;;###autoload
(defun iso-cvt-write-only ()
+ "Warn that format is write-only."
(interactive)
(error "This format is write-only"))
-
+
+;;;###autoload
(defun iso-cvt-define-menu ()
"Add submenus to the Files menu, to convert to and from various formats."
(interactive)
(let ((file-types (reverse format-alist))
name
str-name)
- (while file-types
+ (while file-types
(setq name (car (car file-types))
str-name (car (cdr (car file-types)))
file-types (cdr file-types))
(if (stringp str-name)
(progn
(define-key load-as-menu-map (vector name)
- (cons str-name
- (list 'lambda '(file) (list 'interactive (format "FFind file (as %s): " name))
- (list 'format-find-file 'file (list 'quote name)))))
+ (cons str-name
+ `(lambda (file)
+ (interactive (format "FFind file (as %s): " ,name))
+ (format-find-file file ',name))))
(define-key insert-as-menu-map (vector name)
- (cons str-name
- (list 'lambda '(file) (list 'interactive (format "FInsert file (as %s): " name))
- (list 'format-insert-file 'file (list 'quote name)))))
+ (cons str-name
+ `(lambda (file)
+ (interactive (format "FInsert file (as %s): " ,name))
+ (format-insert-file file ',name))))
(define-key write-as-menu-map (vector name)
- (cons str-name
- (list 'lambda '(file) (list 'interactive (format "FWrite file (as %s): " name))
- (list 'format-write-file 'file (list 'quote (list name))))))
+ (cons str-name
+ `(lambda (file)
+ (interactive (format "FWrite file (as %s): " ,name))
+ (format-write-file file ',name))))
(define-key translate-to-menu-map (vector name)
- (cons str-name
- (list 'lambda '() '(interactive)
- (list 'format-encode-buffer (list 'quote name)))))
+ (cons str-name
+ `(lambda ()
+ (interactive)
+ (format-encode-buffer ',name))))
(define-key translate-from-menu-map (vector name)
- (cons str-name
- (list 'lambda '() '(interactive)
- (list 'format-decode-buffer (list 'quote (list name))))))
- )))))
+ (cons str-name
+ `(lambda ()
+ (interactive)
+ (format-decode-buffer ',name)))))))))
+
+(provide 'iso-cvt)
+;;; arch-tag: 64ae843f-ed0e-43e1-ba50-ffd581b90840
;;; iso-cvt.el ends here