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