.emacs-my
changeset 1014 82ae06b5d7c4
parent 1013 e88896e74332
child 1015 a3e820b84227
--- a/.emacs-my	Thu Dec 20 23:42:25 2012 +0200
+++ b/.emacs-my	Mon Jan 07 00:37:21 2013 +0200
@@ -945,12 +945,32 @@
        (cdr s))
       )) 'utf-8))
 
-(defun my-percent-decode-region (arg beg end)
+(defun my-percent-decode-region (beg end &optional arg)
   "Convert percent encoded string to native."
-  (interactive "P\nr")
+  (interactive "r\nP")
   (let ( (result (my-percent-decode (buffer-substring-no-properties beg end))) )
     (if (not arg)
-        (message result)
+        result
+      (delete-region beg end)
+      (insert result))
+    ) )
+
+(defun my-percent-encode (str)
+  (apply 'concat
+         (mapcar
+          (lambda (ch) (if (or (and (<= ?a ch) (>= ?z ch))
+                          (and (<= ?A ch) (>= ?Z ch))
+                          (memq ch '(?- ?_ ?. ?~)))
+                      (char-to-string ch)
+                    (format "%%%02X" ch)))
+          (encode-coding-string str 'utf-8) )))
+
+(defun my-percent-encode-region (beg end &optional arg)
+  "Encode string to percent encoding."
+  (interactive "r\nP")
+  (let ( (result (my-percent-encode (buffer-substring-no-properties beg end))) )
+    (if (not arg)
+        result
       (delete-region beg end)
       (insert result))
     ) )