[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/international/mule.el
From: |
Kenichi Handa |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/international/mule.el |
Date: |
Fri, 22 Oct 2004 09:16:28 -0400 |
Index: emacs/lisp/international/mule.el
diff -c emacs/lisp/international/mule.el:1.204
emacs/lisp/international/mule.el:1.205
*** emacs/lisp/international/mule.el:1.204 Tue Oct 12 05:24:49 2004
--- emacs/lisp/international/mule.el Fri Oct 22 13:10:23 2004
***************
*** 2015,2020 ****
--- 2015,2048 ----
(put symbol 'translation-table-id id)
id))
+ (defun translate-region (start end table)
+ "From START to END, translate characters according to TABLE.
+ TABLE is a string or a char-table.
+ If TABLE is a string, the Nth character in it is the mapping
+ for the character with code N.
+ If TABLE is a char-table, the element for character N is the mapping
+ for the character with code N.
+ It returns the number of characters changed."
+ (interactive
+ (list (region-beginning)
+ (region-end)
+ (let (table l)
+ (dotimes (i (length translation-table-vector))
+ (if (consp (aref translation-table-vector i))
+ (push (list (symbol-name
+ (car (aref translation-table-vector i)))) l)))
+ (if (not l)
+ (error "No translation table defined"))
+ (while (not table)
+ (setq table (completing-read "Translation table: " l nil t)))
+ (intern table))))
+ (if (symbolp table)
+ (let ((val (get table 'translation-table)))
+ (or (char-table-p val)
+ (error "Invalid translation table name: %s" table))
+ (setq table val)))
+ (translate-region-internal start end table))
+
(put 'with-category-table 'lisp-indent-function 1)
(defmacro with-category-table (table &rest body)