(defun rmoo-substitute-accents (string) (progn (if (null string) string (let ((index (string-match "[àáâãçèéêìíîòóôõùúû]" string))) (if (null index) string (concat (substring string 0 index) (rmoo-substitute-accent (substring string index (+ 1 index))) (rmoo-substitute-accents (substring string (+ 1 index))))))))) (setq rmoo-accents-alist '( ("à" . "~E0") ("á" . "~E1") ("â" . "~E2") ("ã" . "~E3") ("ç" . "~E7") ("è" . "~E8") ("é" . "~E9") ("ê" . "~EA") ("ì" . "~EC") ("í" . "~ED") ("î" . "~EE") ("ò" . "~F2") ("ó" . "~F3") ("ô" . "~F4") ("õ" . "~F5") ("ù" . "~F9") ("ú" . "~FA") ("û" . "~FB") ) ) (defun rmoo-substitute-accent (string) (let ((subs (assoc string rmoo-accents-alist))) (if (null subs) string (cdr subs))))