/
emu-mule.el
60 lines (44 loc) · 1.59 KB
/
emu-mule.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
;;; emu-mule.el --- emu module for Mule 1.* and Mule 2.*
;; Copyright (C) 1995,1996,1997,1998 MORIOKA Tomohiko
;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
;; Katsumi Yamaoka <yamaoka@jpl.org>
;; Keywords: emulation, compatibility, Mule
;; This file is part of emu.
;; This program 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.
;; This program 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 GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
;;; Code:
(require 'poem)
;;; @ regulation
;;;
(defun regulate-latin-char (chr)
(cond ((and (<= ?$B#A(B chr)(<= chr ?$B#Z(B))
(+ (- chr ?$B#A(B) ?A))
((and (<= ?$B#a(B chr)(<= chr ?$B#z(B))
(+ (- chr ?$B#a(B) ?a))
((eq chr ?$B!%(B) ?.)
((eq chr ?$B!$(B) ?,)
(t chr)))
(defun regulate-latin-string (str)
(let ((len (length str))
(i 0)
chr (dest ""))
(while (< i len)
(setq chr (sref str i))
(setq dest (concat dest
(char-to-string (regulate-latin-char chr))))
(setq i (+ i (char-bytes chr))))
dest))
;;; @ end
;;;
(provide 'emu-mule)
;;; emu-mule.el ends here