annotate lisp/mail/mailpost.el @ 62412:6ac7ed8e212b

(makefile-dependency-regex): Turn it into a var, and refine it to mask one more level of nested vars. (makefile-rule-action-regex): Turn it into a var, and refine it so it recognizes backslashed continuation lines as belonging to the same command. (makefile-macroassign-regex): Refine it so it recognizes backslashed continuation lines as belonging to the same command. (makefile-var-use-regex): Don't look at the next char, because it might be the same one to be skipped by the initial [^$], leading to an overlooked variable use. (makefile-make-font-lock-keywords): Remove two parameters, which are now variables that some of the modes set locally. Handle dependency and rule action matching through functions, because regexps alone match too often. Dependency matching now comes last, so it can check, whether a colon already matched something else. (makefile-mode): Inform that font-lock improves makefile parsing capabilities. (makefile-match-dependency, makefile-match-action): New functions.
author Daniel Pfeiffer <occitan@esperanto.org>
date Mon, 16 May 2005 20:13:09 +0000
parents 695cf19ef79e
children 375f2633d815 1e3a407766b9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
791
203c23c9f22c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 663
diff changeset
1 ;;; mailpost.el --- RMAIL coupler to /usr/uci/post mailer
203c23c9f22c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 663
diff changeset
2
840
113281b361ec *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 811
diff changeset
3 ;; This is in the public domain
113281b361ec *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 811
diff changeset
4 ;; since Delp distributed it without a copyright notice in 1986.
113281b361ec *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 811
diff changeset
5
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 29886
diff changeset
6 ;; This file is part of GNU Emacs.
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 29886
diff changeset
7
791
203c23c9f22c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 663
diff changeset
8 ;; Author: Gary Delp <delp@huey.Udel.Edu>
203c23c9f22c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 663
diff changeset
9 ;; Maintainer: FSF
203c23c9f22c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 663
diff changeset
10 ;; Created: 13 Jan 1986
811
e694e0879463 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 791
diff changeset
11 ;; Keywords: mail
791
203c23c9f22c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 663
diff changeset
12
203c23c9f22c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 663
diff changeset
13 ;;; Commentary:
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 222
diff changeset
14
4
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; Yet another mail interface. this for the rmail system to provide
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 ;; the missing sendmail interface on systems without /usr/lib/sendmail,
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; but with /usr/uci/post.
791
203c23c9f22c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 663
diff changeset
18
203c23c9f22c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 663
diff changeset
19 ;;; Code:
4
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20
923
9f3cc03dae67 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 840
diff changeset
21 (require 'mailalias)
9f3cc03dae67 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 840
diff changeset
22 (require 'sendmail)
9f3cc03dae67 entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 840
diff changeset
23
4
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24 ;; (setq send-mail-function 'post-mail-send-it)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26 (defun post-mail-send-it ()
222
d1d8765cc35e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 4
diff changeset
27 "The MH -post interface for `rmail-mail' to call.
d1d8765cc35e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 4
diff changeset
28 To use it, include \"(setq send-mail-function 'post-mail-send-it)\" in
d1d8765cc35e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 4
diff changeset
29 site-init."
4
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 (let ((errbuf (if mail-interactive
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 (generate-new-buffer " post-mail errors")
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 0))
29886
3baeb77c0e39 (post-mail-send-it): Make sure file has
Gerd Moellmann <gerd@gnu.org>
parents: 26039
diff changeset
33 temfile
4
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 (tembuf (generate-new-buffer " post-mail temp"))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 (case-fold-search nil)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 delimline
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 (mailbuf (current-buffer)))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 (unwind-protect
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 (save-excursion
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 (set-buffer tembuf)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 (erase-buffer)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 (insert-buffer-substring mailbuf)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 (goto-char (point-max))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 ;; require one newline at the end.
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 (or (= (preceding-char) ?\n)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 (insert ?\n))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 ;; Change header-delimiter to be what post-mail expects.
21921
ea04bf51647c (post-mail-send-it): Use mail-sendmail-undelimit-header.
Richard M. Stallman <rms@gnu.org>
parents: 18383
diff changeset
48 (mail-sendmail-undelimit-header)
4
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 (setq delimline (point-marker))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 (if mail-aliases
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 (expand-mail-aliases (point-min) delimline))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 (goto-char (point-min))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 ;; ignore any blank lines in the header
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 (while (and (re-search-forward "\n\n\n*" delimline t)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 (< (point) delimline))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56 (replace-match "\n"))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 ;; Find and handle any FCC fields.
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 (let ((case-fold-search t))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 (goto-char (point-min))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60 (if (re-search-forward "^FCC:" delimline t)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 (mail-do-fcc delimline))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 ;; If there is a From and no Sender, put it a Sender.
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 (goto-char (point-min))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 (and (re-search-forward "^From:" delimline t)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 (not (save-excursion
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 (goto-char (point-min))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 (re-search-forward "^Sender:" delimline t)))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 (progn
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 (forward-line 1)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 (insert "Sender: " (user-login-name) "\n")))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 ;; don't send out a blank subject line
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72 (goto-char (point-min))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 (if (re-search-forward "^Subject:[ \t]*\n" delimline t)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74 (replace-match ""))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75 (if mail-interactive
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
76 (save-excursion
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
77 (set-buffer errbuf)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
78 (erase-buffer))))
29886
3baeb77c0e39 (post-mail-send-it): Make sure file has
Gerd Moellmann <gerd@gnu.org>
parents: 26039
diff changeset
79 (let ((m (default-file-modes)))
3baeb77c0e39 (post-mail-send-it): Make sure file has
Gerd Moellmann <gerd@gnu.org>
parents: 26039
diff changeset
80 (unwind-protect
3baeb77c0e39 (post-mail-send-it): Make sure file has
Gerd Moellmann <gerd@gnu.org>
parents: 26039
diff changeset
81 (progn
3baeb77c0e39 (post-mail-send-it): Make sure file has
Gerd Moellmann <gerd@gnu.org>
parents: 26039
diff changeset
82 (set-default-file-modes 384)
3baeb77c0e39 (post-mail-send-it): Make sure file has
Gerd Moellmann <gerd@gnu.org>
parents: 26039
diff changeset
83 (setq temfile (make-temp-file ",rpost")))
3baeb77c0e39 (post-mail-send-it): Make sure file has
Gerd Moellmann <gerd@gnu.org>
parents: 26039
diff changeset
84 (set-default-file-modes m)))
4
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
85 (apply 'call-process
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
86 (append (list (if (boundp 'post-mail-program)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
87 post-mail-program
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
88 "/usr/uci/lib/mh/post")
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
89 nil errbuf nil
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 "-nofilter" "-msgid")
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91 (if mail-interactive '("-watch") '("-nowatch"))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
92 (list temfile)))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
93 (if mail-interactive
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
94 (save-excursion
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
95 (set-buffer errbuf)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96 (goto-char (point-min))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
97 (while (re-search-forward "\n\n* *" nil t)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
98 (replace-match "; "))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99 (if (not (zerop (buffer-size)))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100 (error "Sending...failed to %s"
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101 (buffer-substring (point-min) (point-max)))))))
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
102 (kill-buffer tembuf)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103 (if (bufferp errbuf)
504879714b38 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104 (switch-to-buffer errbuf)))))
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 222
diff changeset
105
18383
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 923
diff changeset
106 (provide 'mailpost)
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 923
diff changeset
107
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 38412
diff changeset
108 ;;; arch-tag: 1f8ca085-60a6-4eac-8efb-69ffec2fa124
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 222
diff changeset
109 ;;; mailpost.el ends here