emacs-diffs
[Top][All Lists]
Advanced

[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)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]