Bugfixes.
* comsat/action.c (action_echo): Set omit_newline. * libmailutils/mailbox/mbx_default.c: Return 0 on success. Fix memory overrun. * libproto/mailer/smtp.c (smtp_open): Protect tls-related code with #ifdef WITH_TLS. * libproto/pop/mbox.c (pop_open): Likewise. * mu/imap.c (com_connect): Likewise. * mh/mhn.c (split_args): Preserve quotes. (mhn_compose_command): Handle type arguments (%a escape). (mhn_show_command): Likewise. (store_handler): Fix call to mh_getyn. (edit_mime): Pass typeargs to mhn_compose_command. Fix test for missing filename. * mh/tests/ali.at (ali04): The test wrongly assumed that the `root' group has some members. * mh/tests/folder.at: Always sort the output from find. * mh/tests/rmf.at: Likewise. * mh/tests/mhn.at: Likewise. Filter out timestamps from the tar output produced by mhn. * tests/testsuite.at (MH_SETUP): Define moreproc. * mh/tests/mhparam.at: Account for changes in mh_profile
Showing
14 changed files
with
95 additions
and
47 deletions
... | @@ -353,6 +353,9 @@ action_echo (struct biffrc_environ *env, size_t argc, char **argv) | ... | @@ -353,6 +353,9 @@ action_echo (struct biffrc_environ *env, size_t argc, char **argv) |
353 | omit_newline = 1; | 353 | omit_newline = 1; |
354 | i++; | 354 | i++; |
355 | } | 355 | } |
356 | else | ||
357 | omit_newline = 0; | ||
358 | |||
356 | for (;;) | 359 | for (;;) |
357 | { | 360 | { |
358 | echo_string (env->tty, argv[i]); | 361 | echo_string (env->tty, argv[i]); | ... | ... |
... | @@ -136,14 +136,13 @@ mu_folder_directory () | ... | @@ -136,14 +136,13 @@ mu_folder_directory () |
136 | int | 136 | int |
137 | mu_construct_user_mailbox_url (char **pout, const char *name) | 137 | mu_construct_user_mailbox_url (char **pout, const char *name) |
138 | { | 138 | { |
139 | int rc; | ||
140 | const char *pat = mu_mailbox_url (); | 139 | const char *pat = mu_mailbox_url (); |
141 | const char *env[3]; | 140 | const char *env[3]; |
142 | struct mu_wordsplit ws; | 141 | struct mu_wordsplit ws; |
143 | 142 | ||
144 | env[0] = "user"; | 143 | env[0] = "user"; |
145 | env[1] = (char*) name; | 144 | env[1] = (char*) name; |
146 | env[3] = NULL; | 145 | env[2] = NULL; |
147 | ws.ws_env = env; | 146 | ws.ws_env = env; |
148 | if (mu_wordsplit (pat, &ws, | 147 | if (mu_wordsplit (pat, &ws, |
149 | MU_WRDSF_NOSPLIT | MU_WRDSF_NOCMD | | 148 | MU_WRDSF_NOSPLIT | MU_WRDSF_NOCMD | |
... | @@ -162,7 +161,7 @@ mu_construct_user_mailbox_url (char **pout, const char *name) | ... | @@ -162,7 +161,7 @@ mu_construct_user_mailbox_url (char **pout, const char *name) |
162 | mu_wordsplit_free (&ws); | 161 | mu_wordsplit_free (&ws); |
163 | if (!*pout) | 162 | if (!*pout) |
164 | return ENOMEM; | 163 | return ENOMEM; |
165 | return rc; | 164 | return 0; |
166 | } | 165 | } |
167 | 166 | ||
168 | /* Is this a security risk? */ | 167 | /* Is this a security risk? */ | ... | ... |
... | @@ -182,6 +182,7 @@ smtp_open (mu_mailer_t mailer, int flags) | ... | @@ -182,6 +182,7 @@ smtp_open (mu_mailer_t mailer, int flags) |
182 | if (rc) | 182 | if (rc) |
183 | return rc; | 183 | return rc; |
184 | 184 | ||
185 | #ifdef WITH_TLS | ||
185 | if (!notls && mu_tls_enable && | 186 | if (!notls && mu_tls_enable && |
186 | mu_smtp_capa_test (smtp_mailer->smtp, "STARTTLS", NULL) == 0) | 187 | mu_smtp_capa_test (smtp_mailer->smtp, "STARTTLS", NULL) == 0) |
187 | { | 188 | { |
... | @@ -193,7 +194,7 @@ smtp_open (mu_mailer_t mailer, int flags) | ... | @@ -193,7 +194,7 @@ smtp_open (mu_mailer_t mailer, int flags) |
193 | return rc; | 194 | return rc; |
194 | } | 195 | } |
195 | } | 196 | } |
196 | 197 | #endif | |
197 | if (!noauth && mu_smtp_capa_test (smtp_mailer->smtp, "AUTH", NULL) == 0) | 198 | if (!noauth && mu_smtp_capa_test (smtp_mailer->smtp, "AUTH", NULL) == 0) |
198 | { | 199 | { |
199 | rc = mu_smtp_auth (smtp_mailer->smtp); | 200 | rc = mu_smtp_auth (smtp_mailer->smtp); | ... | ... |
... | @@ -173,7 +173,8 @@ pop_open (mu_mailbox_t mbox, int flags) | ... | @@ -173,7 +173,8 @@ pop_open (mu_mailbox_t mbox, int flags) |
173 | if (status) | 173 | if (status) |
174 | break; | 174 | break; |
175 | 175 | ||
176 | if (WITH_TLS && !mpd->pops && | 176 | #ifdef WITH_TLS |
177 | if (!mpd->pops && | ||
177 | mu_url_sget_param (mbox->url, "notls", NULL) == MU_ERR_NOENT && | 178 | mu_url_sget_param (mbox->url, "notls", NULL) == MU_ERR_NOENT && |
178 | mu_pop3_capa_test (mpd->pop3, "STLS", NULL) == 0) | 179 | mu_pop3_capa_test (mpd->pop3, "STLS", NULL) == 0) |
179 | { | 180 | { |
... | @@ -181,7 +182,7 @@ pop_open (mu_mailbox_t mbox, int flags) | ... | @@ -181,7 +182,7 @@ pop_open (mu_mailbox_t mbox, int flags) |
181 | if (status) | 182 | if (status) |
182 | break; | 183 | break; |
183 | } | 184 | } |
184 | 185 | #endif | |
185 | status = mu_authority_authenticate (mbox->folder->authority); | 186 | status = mu_authority_authenticate (mbox->folder->authority); |
186 | } | 187 | } |
187 | while (0); | 188 | while (0); | ... | ... |
... | @@ -208,7 +208,8 @@ split_args (const char *argstr, size_t len, int *pargc, char ***pargv) | ... | @@ -208,7 +208,8 @@ split_args (const char *argstr, size_t len, int *pargc, char ***pargv) |
208 | 208 | ||
209 | ws.ws_delim = ";"; | 209 | ws.ws_delim = ";"; |
210 | if (mu_wordsplit_len (argstr, len, &ws, | 210 | if (mu_wordsplit_len (argstr, len, &ws, |
211 | MU_WRDSF_DEFFLAGS | MU_WRDSF_DELIM | MU_WRDSF_WS)) | 211 | (MU_WRDSF_DEFFLAGS & ~MU_WRDSF_QUOTE) | |
212 | MU_WRDSF_DELIM | MU_WRDSF_WS)) | ||
212 | { | 213 | { |
213 | mu_error (_("cannot split line `%s': %s"), argstr, | 214 | mu_error (_("cannot split line `%s': %s"), argstr, |
214 | mu_wordsplit_strerror (&ws)); | 215 | mu_wordsplit_strerror (&ws)); |
... | @@ -629,10 +630,11 @@ _mhn_profile_get (const char *prefix, const char *type, const char *subtype, | ... | @@ -629,10 +630,11 @@ _mhn_profile_get (const char *prefix, const char *type, const char *subtype, |
629 | } | 630 | } |
630 | 631 | ||
631 | char * | 632 | char * |
632 | mhn_compose_command (char *typestr, int *flags, char *file) | 633 | mhn_compose_command (char *typestr, char *typeargs, int *flags, char *file) |
633 | { | 634 | { |
634 | const char *p, *str; | 635 | const char *p, *str; |
635 | char *type, *subtype, *typeargs; | 636 | char *type, *subtype, **typeargv = NULL; |
637 | int typeargc = 0; | ||
636 | struct obstack stk; | 638 | struct obstack stk; |
637 | 639 | ||
638 | split_content (typestr, &type, &subtype); | 640 | split_content (typestr, &type, &subtype); |
... | @@ -660,7 +662,20 @@ mhn_compose_command (char *typestr, int *flags, char *file) | ... | @@ -660,7 +662,20 @@ mhn_compose_command (char *typestr, int *flags, char *file) |
660 | { | 662 | { |
661 | case 'a': | 663 | case 'a': |
662 | /* additional arguments */ | 664 | /* additional arguments */ |
663 | obstack_grow (&stk, typeargs, strlen (typeargs)); | 665 | if (typeargs) |
666 | { | ||
667 | int i; | ||
668 | |||
669 | if (!typeargv) | ||
670 | split_args (typeargs, strlen (typeargs), | ||
671 | &typeargc, &typeargv); | ||
672 | for (i = 0; i < typeargc; i++) | ||
673 | { | ||
674 | if (i > 0) | ||
675 | obstack_1grow (&stk, ' '); | ||
676 | obstack_grow (&stk, typeargv[i], strlen (typeargv[i])); | ||
677 | } | ||
678 | } | ||
664 | break; | 679 | break; |
665 | 680 | ||
666 | case 'F': | 681 | case 'F': |
... | @@ -688,7 +703,8 @@ mhn_compose_command (char *typestr, int *flags, char *file) | ... | @@ -688,7 +703,8 @@ mhn_compose_command (char *typestr, int *flags, char *file) |
688 | 703 | ||
689 | free (type); | 704 | free (type); |
690 | free (subtype); | 705 | free (subtype); |
691 | 706 | mu_argcv_free (typeargc, typeargv); | |
707 | |||
692 | str = obstack_finish (&stk); | 708 | str = obstack_finish (&stk); |
693 | p = mu_str_skip_class (str, MU_CTYPE_SPACE); | 709 | p = mu_str_skip_class (str, MU_CTYPE_SPACE); |
694 | if (!*p) | 710 | if (!*p) |
... | @@ -755,6 +771,8 @@ mhn_show_command (mu_message_t msg, msg_part_t part, int *flags, | ... | @@ -755,6 +771,8 @@ mhn_show_command (mu_message_t msg, msg_part_t part, int *flags, |
755 | struct obstack stk; | 771 | struct obstack stk; |
756 | mu_header_t hdr; | 772 | mu_header_t hdr; |
757 | char *temp_cmd = NULL; | 773 | char *temp_cmd = NULL; |
774 | int typeargc = 0; | ||
775 | char **typeargv = NULL; | ||
758 | 776 | ||
759 | mu_message_get_header (msg, &hdr); | 777 | mu_message_get_header (msg, &hdr); |
760 | _get_content_type (hdr, &typestr, &typeargs); | 778 | _get_content_type (hdr, &typestr, &typeargs); |
... | @@ -824,7 +842,20 @@ mhn_show_command (mu_message_t msg, msg_part_t part, int *flags, | ... | @@ -824,7 +842,20 @@ mhn_show_command (mu_message_t msg, msg_part_t part, int *flags, |
824 | { | 842 | { |
825 | case 'a': | 843 | case 'a': |
826 | /* additional arguments */ | 844 | /* additional arguments */ |
827 | obstack_grow (&stk, typeargs, strlen (typeargs)); | 845 | if (typeargs) |
846 | { | ||
847 | int i; | ||
848 | |||
849 | if (!typeargv) | ||
850 | split_args (typeargs, strlen (typeargs), | ||
851 | &typeargc, &typeargv); | ||
852 | for (i = 0; i < typeargc; i++) | ||
853 | { | ||
854 | if (i > 0) | ||
855 | obstack_1grow (&stk, ' '); | ||
856 | obstack_grow (&stk, typeargv[i], strlen (typeargv[i])); | ||
857 | } | ||
858 | } | ||
828 | break; | 859 | break; |
829 | 860 | ||
830 | case 'e': | 861 | case 'e': |
... | @@ -883,6 +914,7 @@ mhn_show_command (mu_message_t msg, msg_part_t part, int *flags, | ... | @@ -883,6 +914,7 @@ mhn_show_command (mu_message_t msg, msg_part_t part, int *flags, |
883 | free (type); | 914 | free (type); |
884 | free (subtype); | 915 | free (subtype); |
885 | free (temp_cmd); | 916 | free (temp_cmd); |
917 | mu_argcv_free (typeargc, typeargv); | ||
886 | 918 | ||
887 | str = obstack_finish (&stk); | 919 | str = obstack_finish (&stk); |
888 | p = mu_str_skip_class (str, MU_CTYPE_SPACE); | 920 | p = mu_str_skip_class (str, MU_CTYPE_SPACE); |
... | @@ -1745,12 +1777,9 @@ store_handler (mu_message_t msg, msg_part_t part, char *type, char *encoding, | ... | @@ -1745,12 +1777,9 @@ store_handler (mu_message_t msg, msg_part_t part, char *type, char *encoding, |
1745 | 1777 | ||
1746 | if (!(mode_options & OPT_QUIET) && access (name, R_OK) == 0) | 1778 | if (!(mode_options & OPT_QUIET) && access (name, R_OK) == 0) |
1747 | { | 1779 | { |
1748 | char *p; | ||
1749 | int ok; | 1780 | int ok; |
1750 | 1781 | ||
1751 | mu_asprintf (&p, _("File %s already exists. Rewrite"), name); | 1782 | ok = mh_getyn (_("File %s already exists. Rewrite"), name); |
1752 | ok = mh_getyn (p); | ||
1753 | free (p); | ||
1754 | if (!ok) | 1783 | if (!ok) |
1755 | { | 1784 | { |
1756 | free (name); | 1785 | free (name); |
... | @@ -2429,7 +2458,7 @@ edit_mime (char *cmd, struct compose_env *env, mu_message_t *msg, int level) | ... | @@ -2429,7 +2458,7 @@ edit_mime (char *cmd, struct compose_env *env, mu_message_t *msg, int level) |
2429 | mu_body_t body; | 2458 | mu_body_t body; |
2430 | mu_stream_t in, out = NULL, fstr; | 2459 | mu_stream_t in, out = NULL, fstr; |
2431 | char *encoding; | 2460 | char *encoding; |
2432 | char *p, *typestr; | 2461 | char *typestr, *typeargs; |
2433 | char *shell_cmd; | 2462 | char *shell_cmd; |
2434 | int flags; | 2463 | int flags; |
2435 | 2464 | ||
... | @@ -2442,8 +2471,8 @@ edit_mime (char *cmd, struct compose_env *env, mu_message_t *msg, int level) | ... | @@ -2442,8 +2471,8 @@ edit_mime (char *cmd, struct compose_env *env, mu_message_t *msg, int level) |
2442 | 2471 | ||
2443 | mu_rtrim_class (cmd, MU_CTYPE_SPACE); | 2472 | mu_rtrim_class (cmd, MU_CTYPE_SPACE); |
2444 | 2473 | ||
2445 | _get_content_type (hdr, &typestr, NULL); | 2474 | _get_content_type (hdr, &typestr, &typeargs); |
2446 | shell_cmd = mhn_compose_command (typestr, &flags, cmd); | 2475 | shell_cmd = mhn_compose_command (typestr, typeargs, &flags, cmd); |
2447 | free (typestr); | 2476 | free (typestr); |
2448 | 2477 | ||
2449 | /* Open the input stream, whatever it is */ | 2478 | /* Open the input stream, whatever it is */ |
... | @@ -2452,7 +2481,7 @@ edit_mime (char *cmd, struct compose_env *env, mu_message_t *msg, int level) | ... | @@ -2452,7 +2481,7 @@ edit_mime (char *cmd, struct compose_env *env, mu_message_t *msg, int level) |
2452 | if (mhn_exec (&in, cmd, flags)) | 2481 | if (mhn_exec (&in, cmd, flags)) |
2453 | return 1; | 2482 | return 1; |
2454 | } | 2483 | } |
2455 | else if (p == cmd) | 2484 | else if (cmd[0] == 0) |
2456 | { | 2485 | { |
2457 | mu_error (_("%s:%lu: missing filename"), | 2486 | mu_error (_("%s:%lu: missing filename"), |
2458 | input_file, | 2487 | input_file, | ... | ... |
... | @@ -74,11 +74,10 @@ ali: mh_aliases2:2: `mh_aliases' already included at top level | ... | @@ -74,11 +74,10 @@ ali: mh_aliases2:2: `mh_aliases' already included at top level |
74 | ]) | 74 | ]) |
75 | 75 | ||
76 | MH_CHECK([ali: group name],[ali04 ali-group-name],[ | 76 | MH_CHECK([ali: group name],[ali04 ali-group-name],[ |
77 | grep ^root: /etc/group >/dev/null || AT_SKIP_TEST | 77 | awk -F : '$4!="" { print $1; print $4; exit 0 }' /etc/group > tmpout |
78 | AT_DATA([mh_aliases],[ | 78 | test -s tmpout || AT_SKIP_TEST |
79 | korzen: =root | 79 | sed -n '1s/.*/korzen: =&/p' tmpout > mh_aliases |
80 | ]) | 80 | sed '1d' tmpout | tr -d ' ' > expout |
81 | awk -F : '$1=="root" { print $4 }' /etc/group | tr -d ' ' > expout | ||
82 | ali -a ./mh_aliases korzen | tr -d ' ' | 81 | ali -a ./mh_aliases korzen | tr -d ' ' |
83 | ], | 82 | ], |
84 | [0], | 83 | [0], | ... | ... |
... | @@ -87,7 +87,7 @@ do | ... | @@ -87,7 +87,7 @@ do |
87 | mv Mail/inbox/$i Mail/inbox/${i}0 | 87 | mv Mail/inbox/$i Mail/inbox/${i}0 |
88 | done | 88 | done |
89 | folder -pack || exit $? | 89 | folder -pack || exit $? |
90 | find Mail/inbox | 90 | find Mail/inbox | sort |
91 | ], | 91 | ], |
92 | [0], | 92 | [0], |
93 | [Mail/inbox | 93 | [Mail/inbox |
... | @@ -105,7 +105,7 @@ do | ... | @@ -105,7 +105,7 @@ do |
105 | mv Mail/inbox/$i Mail/inbox/${i}0 | 105 | mv Mail/inbox/$i Mail/inbox/${i}0 |
106 | done | 106 | done |
107 | folder --pack=1 || exit $? | 107 | folder --pack=1 || exit $? |
108 | find Mail/inbox | 108 | find Mail/inbox | sort |
109 | ], | 109 | ], |
110 | [0], | 110 | [0], |
111 | [Mail/inbox | 111 | [Mail/inbox | ... | ... |
... | @@ -21,7 +21,7 @@ AT_CHECK([ | ... | @@ -21,7 +21,7 @@ AT_CHECK([ |
21 | mkdir home | 21 | mkdir home |
22 | dir=`cd home; pwd` | 22 | dir=`cd home; pwd` |
23 | HOME=$dir MH=$dir/mh_profile install-mh -auto || exit $? | 23 | HOME=$dir MH=$dir/mh_profile install-mh -auto || exit $? |
24 | find home | 24 | find home | sort |
25 | HOME=$dir MH=$dir/mh_profile install-mh -auto 2>errout | 25 | HOME=$dir MH=$dir/mh_profile install-mh -auto 2>errout |
26 | echo $? | 26 | echo $? |
27 | cat errout | 27 | cat errout | ... | ... |
... | @@ -192,7 +192,7 @@ chmod +w Mail/inbox/4 | ... | @@ -192,7 +192,7 @@ chmod +w Mail/inbox/4 |
192 | 192 | ||
193 | echo "mhn-store-application: %%-%m%P.%s-%p" >> $MH | 193 | echo "mhn-store-application: %%-%m%P.%s-%p" >> $MH |
194 | mhn +inbox -store 4 | remove_curdir || exit $? | 194 | mhn +inbox -store 4 | remove_curdir || exit $? |
195 | find . -name '%*' | 195 | find . -name '%*' | sort |
196 | ], | 196 | ], |
197 | [0], | 197 | [0], |
198 | [storing message 4 part 1 as file 4.1.plain | 198 | [storing message 4 part 1 as file 4.1.plain |
... | @@ -333,7 +333,12 @@ And the mome raths outgrabe. | ... | @@ -333,7 +333,12 @@ And the mome raths outgrabe. |
333 | 333 | ||
334 | MH_CHECK([mhn-show type=tar],[mhn13 mhn-show-type=tar],[ | 334 | MH_CHECK([mhn-show type=tar],[mhn13 mhn-show-type=tar],[ |
335 | MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mime,[Mail/inbox]) | 335 | MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mime,[Mail/inbox]) |
336 | mhn -show 2 | sed /^X-IMAPbase/d | 336 | AT_DATA([filter.awk],[ |
337 | /^X-IMAPbase/ { next } | ||
338 | /^-rw-r--r--/ { print $1, $2, $3, $6; next } | ||
339 | { print } | ||
340 | ]) | ||
341 | mhn -show 2 | awk -f filter.awk | ||
337 | ], | 342 | ], |
338 | [0], | 343 | [0], |
339 | [Date: Mon, 29 Nov 2010 14:04:19 +0200 | 344 | [Date: Mon, 29 Nov 2010 14:04:19 +0200 |
... | @@ -348,8 +353,8 @@ X-Envelope-Sender: gray@example.net | ... | @@ -348,8 +353,8 @@ X-Envelope-Sender: gray@example.net |
348 | part 1 text/plain 15 | 353 | part 1 text/plain 15 |
349 | Initial text. | 354 | Initial text. |
350 | 355 | ||
351 | -rw-r--r-- gray/staff 1418 2010-11-29 13:58 Father_William | 356 | -rw-r--r-- gray/staff 1418 Father_William |
352 | -rw-r--r-- gray/staff 937 2010-11-29 13:58 Jabberwocky | 357 | -rw-r--r-- gray/staff 937 Jabberwocky |
353 | ]) | 358 | ]) |
354 | 359 | ||
355 | # FIXME: What about exit code? | 360 | # FIXME: What about exit code? |
... | @@ -379,7 +384,12 @@ MH_CHECK([mhn-show- variable (with subtype)], | ... | @@ -379,7 +384,12 @@ MH_CHECK([mhn-show- variable (with subtype)], |
379 | [mhn15 mhn-show-with-subtype],[ | 384 | [mhn15 mhn-show-with-subtype],[ |
380 | MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mime,[Mail/inbox]) | 385 | MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mime,[Mail/inbox]) |
381 | echo "mhn-show-application/x-tar: %ltar tvf '%F'" >> $MH | 386 | echo "mhn-show-application/x-tar: %ltar tvf '%F'" >> $MH |
382 | mhn -show 1 | sed '/^X-IMAPbase/d;s/ *$//' | 387 | AT_DATA([filter.awk],[ |
388 | /^X-IMAPbase/ { next } | ||
389 | /^-rw-r--r--/ { print $1, $2, $3, $6; next } | ||
390 | { sub(/ *$/,""); print } | ||
391 | ]) | ||
392 | mhn -show 1 | awk -f filter.awk | ||
383 | ], | 393 | ], |
384 | [0], | 394 | [0], |
385 | [Date: Mon, 29 Nov 2010 14:00:03 +0200 | 395 | [Date: Mon, 29 Nov 2010 14:00:03 +0200 |
... | @@ -395,15 +405,20 @@ part 1 text/plain 15 | ... | @@ -395,15 +405,20 @@ part 1 text/plain 15 |
395 | Initial text. | 405 | Initial text. |
396 | 406 | ||
397 | part 2 application/x-tar 13835 | 407 | part 2 application/x-tar 13835 |
398 | -rw-r--r-- gray/staff 1418 2010-11-29 13:58 Father_William | 408 | -rw-r--r-- gray/staff 1418 Father_William |
399 | -rw-r--r-- gray/staff 937 2010-11-29 13:58 Jabberwocky | 409 | -rw-r--r-- gray/staff 937 Jabberwocky |
400 | ]) | 410 | ]) |
401 | 411 | ||
402 | MH_CHECK([mhn-show- variable (without subtype)], | 412 | MH_CHECK([mhn-show- variable (without subtype)], |
403 | [mhn16 mhn-show-without-subtype],[ | 413 | [mhn16 mhn-show-without-subtype],[ |
404 | MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mime,[Mail/inbox]) | 414 | MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mime,[Mail/inbox]) |
405 | echo "mhn-show-application: %ltar tvf '%F'" >> $MH | 415 | echo "mhn-show-application: %ltar tvf '%F'" >> $MH |
406 | mhn -show 1 | sed '/^X-IMAPbase/d;s/ *$//' | 416 | AT_DATA([filter.awk],[ |
417 | /^X-IMAPbase/ { next } | ||
418 | /^-rw-r--r--/ { print $1, $2, $3, $6; next } | ||
419 | { sub(/ *$/,""); print } | ||
420 | ]) | ||
421 | mhn -show 1 | awk -f filter.awk | ||
407 | ], | 422 | ], |
408 | [0], | 423 | [0], |
409 | [Date: Mon, 29 Nov 2010 14:00:03 +0200 | 424 | [Date: Mon, 29 Nov 2010 14:00:03 +0200 |
... | @@ -419,8 +434,8 @@ part 1 text/plain 15 | ... | @@ -419,8 +434,8 @@ part 1 text/plain 15 |
419 | Initial text. | 434 | Initial text. |
420 | 435 | ||
421 | part 2 application/x-tar 13835 | 436 | part 2 application/x-tar 13835 |
422 | -rw-r--r-- gray/staff 1418 2010-11-29 13:58 Father_William | 437 | -rw-r--r-- gray/staff 1418 Father_William |
423 | -rw-r--r-- gray/staff 937 2010-11-29 13:58 Jabberwocky | 438 | -rw-r--r-- gray/staff 937 Jabberwocky |
424 | ]) | 439 | ]) |
425 | 440 | ||
426 | dnl ------------------------------------------------------------------- | 441 | dnl ------------------------------------------------------------------- | ... | ... |
... | @@ -27,6 +27,7 @@ mhparam -all | tr '\t' ' ' | sed 's/^Path:.*/Path: Mail/;s/^mhetcdir:.*/mhetcdir | ... | @@ -27,6 +27,7 @@ mhparam -all | tr '\t' ' ' | sed 's/^Path:.*/Path: Mail/;s/^mhetcdir:.*/mhetcdir |
27 | [0], | 27 | [0], |
28 | [Path: Mail | 28 | [Path: Mail |
29 | mhetcdir: dir | 29 | mhetcdir: dir |
30 | moreproc: /bin/cat | ||
30 | Sequence-Negation: not | 31 | Sequence-Negation: not |
31 | Draft-Folder: Mail/drafts | 32 | Draft-Folder: Mail/drafts |
32 | Aliasfile: .mh_aliases | 33 | Aliasfile: .mh_aliases | ... | ... |
... | @@ -21,7 +21,7 @@ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) | ... | @@ -21,7 +21,7 @@ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) |
21 | MUT_MBCOPY($abs_top_srcdir/testsuite/mh/teaparty,[Mail]) | 21 | MUT_MBCOPY($abs_top_srcdir/testsuite/mh/teaparty,[Mail]) |
22 | echo 'Current-Folder: inbox' > Mail/context | 22 | echo 'Current-Folder: inbox' > Mail/context |
23 | rmf +teaparty || exit $? | 23 | rmf +teaparty || exit $? |
24 | find Mail -type d | 24 | find Mail -type d | sort |
25 | ], | 25 | ], |
26 | [0], | 26 | [0], |
27 | 27 | ||
... | @@ -33,7 +33,7 @@ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) | ... | @@ -33,7 +33,7 @@ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) |
33 | MUT_MBCOPY($abs_top_srcdir/testsuite/mh/teaparty,[Mail]) | 33 | MUT_MBCOPY($abs_top_srcdir/testsuite/mh/teaparty,[Mail]) |
34 | echo 'Current-Folder: teaparty' > Mail/context | 34 | echo 'Current-Folder: teaparty' > Mail/context |
35 | rmf || exit $? | 35 | rmf || exit $? |
36 | find Mail -type d | 36 | find Mail -type d | sort |
37 | ], | 37 | ], |
38 | [0], | 38 | [0], |
39 | [[[+inbox now current]] | 39 | [[[+inbox now current]] | ... | ... |
... | @@ -66,7 +66,7 @@ export MTA_APPEND | ... | @@ -66,7 +66,7 @@ export MTA_APPEND |
66 | 66 | ||
67 | send ./input.1 ./input.2 || exit $? | 67 | send ./input.1 ./input.2 || exit $? |
68 | sed 's/: Date: .*/: Date: now/' $MTA_DIAG | 68 | sed 's/: Date: .*/: Date: now/' $MTA_DIAG |
69 | find . -name ',input.[[12]]' | 69 | find . -name ',input.[[12]]' | sort |
70 | ], | 70 | ], |
71 | [0], | 71 | [0], |
72 | [ENVELOPE FROM: mhtester@example.net | 72 | [ENVELOPE FROM: mhtester@example.net | ... | ... |
... | @@ -24,6 +24,7 @@ export MH | ... | @@ -24,6 +24,7 @@ export MH |
24 | cat > $MH <<EOT | 24 | cat > $MH <<EOT |
25 | Path: $curdir/Mail | 25 | Path: $curdir/Mail |
26 | mhetcdir: $abs_top_srcdir/mh/etc | 26 | mhetcdir: $abs_top_srcdir/mh/etc |
27 | moreproc: /bin/cat | ||
27 | EOT | 28 | EOT |
28 | MTSTAILOR=$curdir/mtstailor | 29 | MTSTAILOR=$curdir/mtstailor |
29 | export MTSTAILOR | 30 | export MTSTAILOR | ... | ... |
... | @@ -180,13 +180,12 @@ com_connect (int argc, char **argv) | ... | @@ -180,13 +180,12 @@ com_connect (int argc, char **argv) |
180 | { | 180 | { |
181 | if (strcmp (argv[i], "-tls") == 0) | 181 | if (strcmp (argv[i], "-tls") == 0) |
182 | { | 182 | { |
183 | if (WITH_TLS) | 183 | #ifdef WITH_TLS |
184 | tls = 1; | 184 | tls = 1; |
185 | else | 185 | #else |
186 | { | 186 | mu_error ("TLS not supported"); |
187 | mu_error ("TLS not supported"); | 187 | return 0; |
188 | return 0; | 188 | #endif |
189 | } | ||
190 | } | 189 | } |
191 | else | 190 | else |
192 | break; | 191 | break; | ... | ... |
-
Please register or sign in to post a comment