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