22 |
*/ |
*/ |
23 |
|
|
24 |
int |
int |
25 |
mail_from (int argc, char **argv) |
mail_from0 (msgset_t *mspec, message_t msg, void *data) |
|
{ |
|
|
if (argc > 1) |
|
|
return util_msglist_command (mail_from, argc, argv, 0); |
|
|
else |
|
|
return mail_from0 (cursor, 1); |
|
|
return 1; |
|
|
} |
|
|
|
|
|
int |
|
|
mail_from0 (int msgno, int verbose) |
|
26 |
{ |
{ |
|
message_t msg; |
|
27 |
header_t hdr = NULL; |
header_t hdr = NULL; |
28 |
envelope_t env; |
envelope_t env; |
29 |
attribute_t attr; |
attribute_t attr; |
37 |
struct tm tm; |
struct tm tm; |
38 |
mu_timezone tz; |
mu_timezone tz; |
39 |
|
|
|
if (util_get_message (mbox, msgno, &msg, |
|
|
MSG_NODELETED|(verbose ? 0 : MSG_SILENT))) |
|
|
return 1; |
|
|
|
|
40 |
message_get_header (msg, &hdr); |
message_get_header (msg, &hdr); |
41 |
if (header_aget_value (hdr, MU_HEADER_FROM, &from) == 0) |
if (header_aget_value (hdr, MU_HEADER_FROM, &from) == 0) |
42 |
{ |
{ |
98 |
fromp = from ? from : ""; |
fromp = from ? from : ""; |
99 |
subjp = subj ? subj : fromp; |
subjp = subj ? subj : fromp; |
100 |
fprintf (ofile, "%c%c%4d %-18.18s %-16.16s %s %.*s\n", |
fprintf (ofile, "%c%c%4d %-18.18s %-16.16s %s %.*s\n", |
101 |
msgno == realcursor ? '>' : ' ', cflag, msgno, |
mspec->msg_part[0] == cursor ? '>' : ' ', cflag, |
102 |
|
mspec->msg_part[0], |
103 |
fromp, date, st, (subjl < 0) ? 0 : subjl, subjp); |
fromp, date, st, (subjl < 0) ? 0 : subjl, subjp); |
104 |
|
|
105 |
free (from); |
free (from); |
106 |
free (subj); |
free (subj); |
107 |
|
|
108 |
return 0; |
return 0; |
109 |
} |
} |
110 |
|
|
111 |
|
int |
112 |
|
mail_from (int argc, char **argv) |
113 |
|
{ |
114 |
|
return util_foreach_msg (argc, argv, MSG_NODELETED, mail_from0, NULL); |
115 |
|
} |
116 |
|
|