Mercurial > emacs
comparison lisp/mh-e/mh-alias.el @ 68213:a08b47775f9b
* mh-acros.el (require): Remove defadvice of require as defadvice is
verboten within Emacs and our implementation was returning the wrong
value from require. Upcoming restructuring should make this
unnecessary.
(mh-assoc-ignore-case): Replace with defsubst assoc-string.
* mh-alias.el (mh-alias-local-users, mh-alias-reload, mh-alias-expand,
mh-alias-minibuffer-confirm-address): Use it.
* mh-identity.el (mh-identity-field-handler): Use it.
author | Bill Wohler <wohler@newt.com> |
---|---|
date | Mon, 16 Jan 2006 21:34:50 +0000 |
parents | 5012e59a73c7 |
children | 37d03b3298bf d88caeac70d7 |
comparison
equal
deleted
inserted
replaced
68212:0c77c0b9a620 | 68213:a08b47775f9b |
---|---|
177 username)) | 177 username)) |
178 (alias-translation | 178 (alias-translation |
179 (if (string-equal username realname) | 179 (if (string-equal username realname) |
180 (concat "<" username ">") | 180 (concat "<" username ">") |
181 (concat realname " <" username ">")))) | 181 (concat realname " <" username ">")))) |
182 (when (not (mh-assoc-ignore-case alias-name mh-alias-alist)) | 182 (when (not (assoc-string alias-name mh-alias-alist t)) |
183 (setq passwd-alist (cons (list alias-name alias-translation) | 183 (setq passwd-alist (cons (list alias-name alias-translation) |
184 passwd-alist))))))) | 184 passwd-alist))))))) |
185 (forward-line 1))) | 185 (forward-line 1))) |
186 passwd-alist)) | 186 passwd-alist)) |
187 | 187 |
207 (setq mh-alias-blind-alist nil) | 207 (setq mh-alias-blind-alist nil) |
208 (while (< (point) (point-max)) | 208 (while (< (point) (point-max)) |
209 (cond | 209 (cond |
210 ((looking-at "^[ \t]")) ;Continuation line | 210 ((looking-at "^[ \t]")) ;Continuation line |
211 ((looking-at "\\(.+\\): .+: .*$") ; A new -blind- MH alias | 211 ((looking-at "\\(.+\\): .+: .*$") ; A new -blind- MH alias |
212 (when (not (mh-assoc-ignore-case (match-string 1) mh-alias-blind-alist)) | 212 (when (not (assoc-string (match-string 1) mh-alias-blind-alist t)) |
213 (setq mh-alias-blind-alist | 213 (setq mh-alias-blind-alist |
214 (cons (list (match-string 1)) mh-alias-blind-alist)) | 214 (cons (list (match-string 1)) mh-alias-blind-alist)) |
215 (setq mh-alias-alist (cons (list (match-string 1)) mh-alias-alist)))) | 215 (setq mh-alias-alist (cons (list (match-string 1)) mh-alias-alist)))) |
216 ((looking-at "\\(.+\\): .*$") ; A new MH alias | 216 ((looking-at "\\(.+\\): .*$") ; A new MH alias |
217 (when (not (mh-assoc-ignore-case (match-string 1) mh-alias-alist)) | 217 (when (not (assoc-string (match-string 1) mh-alias-alist t)) |
218 (setq mh-alias-alist | 218 (setq mh-alias-alist |
219 (cons (list (match-string 1)) mh-alias-alist))))) | 219 (cons (list (match-string 1)) mh-alias-alist))))) |
220 (forward-line 1))) | 220 (forward-line 1))) |
221 (when mh-alias-local-users | 221 (when mh-alias-local-users |
222 (setq mh-alias-passwd-alist (mh-alias-local-users)) | 222 (setq mh-alias-passwd-alist (mh-alias-local-users)) |
223 ;; Update aliases with local users, but leave existing aliases alone. | 223 ;; Update aliases with local users, but leave existing aliases alone. |
224 (let ((local-users mh-alias-passwd-alist) | 224 (let ((local-users mh-alias-passwd-alist) |
225 user) | 225 user) |
226 (while local-users | 226 (while local-users |
227 (setq user (car local-users)) | 227 (setq user (car local-users)) |
228 (if (not (mh-assoc-ignore-case (car user) mh-alias-alist)) | 228 (if (not (assoc-string (car user) mh-alias-alist t)) |
229 (setq mh-alias-alist (append mh-alias-alist (list user)))) | 229 (setq mh-alias-alist (append mh-alias-alist (list user)))) |
230 (setq local-users (cdr local-users))))) | 230 (setq local-users (cdr local-users))))) |
231 (run-hooks 'mh-alias-reloaded-hook) | 231 (run-hooks 'mh-alias-reloaded-hook) |
232 (message "Loading MH aliases...done")) | 232 (message "Loading MH aliases...done")) |
233 | 233 |
260 | 260 |
261 (defun mh-alias-expand (alias) | 261 (defun mh-alias-expand (alias) |
262 "Return expansion for ALIAS. | 262 "Return expansion for ALIAS. |
263 Blind aliases or users from /etc/passwd are not expanded." | 263 Blind aliases or users from /etc/passwd are not expanded." |
264 (cond | 264 (cond |
265 ((mh-assoc-ignore-case alias mh-alias-blind-alist) | 265 ((assoc-string alias mh-alias-blind-alist t) |
266 alias) ; Don't expand a blind alias | 266 alias) ; Don't expand a blind alias |
267 ((mh-assoc-ignore-case alias mh-alias-passwd-alist) | 267 ((assoc-string alias mh-alias-passwd-alist t) |
268 (cadr (mh-assoc-ignore-case alias mh-alias-passwd-alist))) | 268 (cadr (assoc-string alias mh-alias-passwd-alist t))) |
269 (t | 269 (t |
270 (mh-alias-ali alias)))) | 270 (mh-alias-ali alias)))) |
271 | 271 |
272 ;;;###mh-autoload | 272 ;;;###mh-autoload |
273 (defun mh-read-address (prompt) | 273 (defun mh-read-address (prompt) |
298 (when mh-alias-flash-on-comma | 298 (when mh-alias-flash-on-comma |
299 (save-excursion | 299 (save-excursion |
300 (let* ((case-fold-search t) | 300 (let* ((case-fold-search t) |
301 (beg (mh-beginning-of-word)) | 301 (beg (mh-beginning-of-word)) |
302 (the-name (buffer-substring-no-properties beg (point)))) | 302 (the-name (buffer-substring-no-properties beg (point)))) |
303 (if (mh-assoc-ignore-case the-name mh-alias-alist) | 303 (if (assoc-string the-name mh-alias-alist t) |
304 (message "%s -> %s" the-name (mh-alias-expand the-name)) | 304 (message "%s -> %s" the-name (mh-alias-expand the-name)) |
305 ;; Check if if was a single word likely to be an alias | 305 ;; Check if if was a single word likely to be an alias |
306 (if (and (equal mh-alias-flash-on-comma 1) | 306 (if (and (equal mh-alias-flash-on-comma 1) |
307 (not (string-match " " the-name))) | 307 (not (string-match " " the-name))) |
308 (message "No alias for %s" the-name)))))) | 308 (message "No alias for %s" the-name)))))) |