Link Here
|
1 |
--- globals.h 2007-01-30 21:49:02.000000000 +0200 |
|
|
2 |
+++ globals.h 2007-03-01 14:14:45.000000000 +0200 |
3 |
@@ -50,6 +50,7 @@ |
4 |
WHERE char *FolderFormat; |
5 |
WHERE char *ForwFmt; |
6 |
WHERE char *Fqdn; |
7 |
+WHERE char *Greeting; |
8 |
WHERE char *HdrFmt; |
9 |
WHERE char *Homedir; |
10 |
WHERE char *Hostname; |
11 |
--- hdrline.c 2006-04-29 22:10:52.000000000 +0300 |
12 |
+++ hdrline.c 2007-03-01 14:14:45.000000000 +0200 |
13 |
@@ -730,3 +730,61 @@ |
14 |
|
15 |
mutt_FormatString (dest, destlen, s, hdr_format_str, (unsigned long) &hfi, flags); |
16 |
} |
17 |
+ |
18 |
+/* %n = recipient name |
19 |
+ * %u = user (login) name of recipient |
20 |
+ * %v = first name of recipient */ |
21 |
+const char * |
22 |
+greeting_string (char *dest, |
23 |
+ size_t destlen, |
24 |
+ char op, |
25 |
+ const char *src, |
26 |
+ const char *prefix, |
27 |
+ const char *ifstring, |
28 |
+ const char *elsestring, |
29 |
+ unsigned long data, |
30 |
+ format_flag flags) |
31 |
+{ |
32 |
+ HEADER *hdr = (HEADER *)data; |
33 |
+ char *p, buf2[SHORT_STRING]; |
34 |
+ |
35 |
+ dest[0] = '\0'; |
36 |
+ switch (op) |
37 |
+ { |
38 |
+ case 'n': |
39 |
+ mutt_format_s (dest, destlen, prefix, mutt_get_name (hdr->env->to)); |
40 |
+ break; |
41 |
+ |
42 |
+ case 'u': |
43 |
+ if (hdr->env->to) |
44 |
+ { |
45 |
+ strfcpy (buf2, mutt_addr_for_display (hdr->env->to), sizeof (buf2)); |
46 |
+ if ((p = strpbrk (buf2, "%@"))) |
47 |
+ *p = '\0'; |
48 |
+ } |
49 |
+ else |
50 |
+ buf2[0] = '\0'; |
51 |
+ mutt_format_s (dest, destlen, prefix, buf2); |
52 |
+ break; |
53 |
+ |
54 |
+ case 'v': |
55 |
+ if (hdr->env->to) |
56 |
+ mutt_format_s (buf2, sizeof (buf2), prefix, mutt_get_name (hdr->env->to)); |
57 |
+ else if (hdr->env->cc) |
58 |
+ mutt_format_s (buf2, sizeof (buf2), prefix, mutt_get_name (hdr->env->cc)); |
59 |
+ else |
60 |
+ *buf2 = '\0'; |
61 |
+ if ((p = strpbrk (buf2, " %@"))) |
62 |
+ *p = '\0'; |
63 |
+ mutt_format_s (dest, destlen, prefix, buf2); |
64 |
+ break; |
65 |
+ |
66 |
+ default: |
67 |
+ snprintf (dest, destlen, "%%%s%c", prefix, op); |
68 |
+ break; |
69 |
+ } |
70 |
+ if (flags & M_FORMAT_OPTIONAL) |
71 |
+ mutt_FormatString (dest, destlen, elsestring, greeting_string, data, flags); |
72 |
+ |
73 |
+ return(src); |
74 |
+} |
75 |
--- init.h 2006-11-20 19:49:08.000000000 +0200 |
76 |
+++ init.h 2007-03-01 14:14:45.000000000 +0200 |
77 |
@@ -695,6 +695,22 @@ |
78 |
** .pp |
79 |
** Defaults to the contents of the environment variable EMAIL. |
80 |
*/ |
81 |
+ { "greeting", DT_STR, R_NONE, UL &Greeting, UL "" }, |
82 |
+ /* |
83 |
+ ** .pp |
84 |
+ ** When set, this is the string that will precede every message as a |
85 |
+ ** greeting phrase to the recipients. |
86 |
+ ** .pp |
87 |
+ ** ``Format strings'' are similar to the strings used in the ``C'' |
88 |
+ ** function printf to format output (see the man page for more detail). |
89 |
+ ** The following sequences are defined in Mutt: |
90 |
+ ** .pp |
91 |
+ ** .dl |
92 |
+ ** .dt %n .dd recipient name |
93 |
+ ** .dt %u .dd user (login) name of recipient |
94 |
+ ** .dt %v .dd first name of recipient |
95 |
+ ** .de |
96 |
+ */ |
97 |
{ "gecos_mask", DT_RX, R_NONE, UL &GecosMask, UL "^[^,]*" }, |
98 |
/* |
99 |
** .pp |
100 |
--- PATCHES 2006-10-30 04:30:55.000000000 +0200 |
101 |
+++ PATCHES 2007-03-01 14:14:45.000000000 +0200 |
102 |
@@ -0,0 +1 @@ |
103 |
+vc.greeting |
104 |
--- protos.h 2007-01-30 21:49:03.000000000 +0200 |
105 |
+++ protos.h 2007-03-01 14:14:45.000000000 +0200 |
106 |
@@ -504,4 +504,5 @@ |
107 |
void ci_bounce_message (HEADER *, int *); |
108 |
int ci_send_message (int, HEADER *, char *, CONTEXT *, HEADER *); |
109 |
|
110 |
- |
111 |
+const char *greeting_string (char *, size_t, char, const char *, const char *, |
112 |
+ const char *, const char *, unsigned long, format_flag); |
113 |
--- send.c 2006-10-03 05:48:58.000000000 +0300 |
114 |
+++ send.c 2007-03-01 14:14:45.000000000 +0200 |
115 |
@@ -395,6 +395,18 @@ |
116 |
} |
117 |
} |
118 |
|
119 |
+void mutt_make_greeting (HEADER *hdr, FILE *out, int flags) |
120 |
+{ |
121 |
+ char buffer[STRING]; |
122 |
+ if (Greeting) |
123 |
+ { |
124 |
+ mutt_FormatString(buffer, sizeof(buffer), Greeting, greeting_string, |
125 |
+ (unsigned long) hdr, flags); |
126 |
+ fputs(buffer, out); |
127 |
+ fputc ('\n', out); |
128 |
+ } |
129 |
+} |
130 |
+ |
131 |
void mutt_make_post_indent (CONTEXT *ctx, HEADER *cur, FILE *out) |
132 |
{ |
133 |
char buffer[STRING]; |
134 |
@@ -1269,6 +1281,7 @@ |
135 |
if (option (OPTHDRS)) |
136 |
process_user_header (msg->env); |
137 |
|
138 |
+ mutt_make_greeting(msg, tempfp, flags); |
139 |
|
140 |
if (option (OPTSIGONTOP) && (! (flags & (SENDMAILX | SENDKEY)) && Editor && mutt_strcmp (Editor, "builtin") != 0)) |
141 |
append_signature (tempfp); |