;;; genderassign.el --- minor mode for correcting attribute value for gender in gt_dict files ;; Contains key bindings for keys m, f, n, and x ;; x moves to the end of a "gen="xxx" string ;; the other keys replace the string "xxx" by the chosen tag ;;; $Id: genderassign.el 4997 2010-11-05 11:11:38Z ciprian $ (define-derived-mode genderassign-mode text-mode "Genderassign mode" "Major mode for correcting gender. \\{genderassign-mode-map}" (setq case-fold-search nil)) (define-key genderassign-mode-map "m" '(lambda () (interactive) (insert-markup "m"))) (define-key genderassign-mode-map "f" '(lambda () (interactive) (insert-markup "f"))) (define-key genderassign-mode-map "n" '(lambda () (interactive) (insert-markup "n"))) (define-key genderassign-mode-map "x" '(lambda ()(interactive)(search-next-gender 1))) (defun insert-markup (tag) "Insert markup tag" (interactive "p") (if (search-backward "xxx" (- (point) 3) t) (delete-char 3)) (insert tag) (search-next-gender 1)) (defun search-next-gender (tag) "Move to the next gender attribute with value xxx" (interactive "p") (if (re-search-forward "gen=\"xxx" nil t) (skip-chars-backward " ;") (goto-char (end-of-line))))