diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-06-09 13:24:03 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-06-09 13:24:03 +0300 |
commit | 1ba98c365c5e5ce5cbc02a82054749a90a34c689 (patch) | |
tree | c597899df9e286ef9dc1cfcc891f01035c228de7 /mh | |
parent | e4c393f9b98164f5a9c1f5076181227c52565bfc (diff) | |
parent | 263e2e9f9fcf721c11a61a16dca4cb38d6385fe9 (diff) | |
download | mailutils-1ba98c365c5e5ce5cbc02a82054749a90a34c689.tar.gz mailutils-1ba98c365c5e5ce5cbc02a82054749a90a34c689.tar.bz2 |
Merge recent fixes from master
Diffstat (limited to 'mh')
-rw-r--r-- | mh/mh.h | 3 | ||||
-rw-r--r-- | mh/mh_whatnow.c | 14 | ||||
-rw-r--r-- | mh/tests/atlocal.in | 6 | ||||
-rw-r--r-- | mh/tests/comp.at | 34 | ||||
-rw-r--r-- | mh/tests/forw.at | 38 | ||||
-rw-r--r-- | mh/tests/mhn.at | 38 | ||||
-rw-r--r-- | mh/tests/mhpath.at | 30 | ||||
-rw-r--r-- | mh/tests/repl.at | 12 |
8 files changed, 91 insertions, 84 deletions
@@ -210,13 +210,14 @@ struct mh_whatnow_env /* whatnow shell environment */ char *file; /* The file being processed */ char *msg; /* File name of the original message (if any) */ char *draftfile; /* File to preserve the draft into */ - const char *editor; + const char *editor; /* Default editor */ char *prompt; char *anno_field; /* Annotate field to be used */ mu_list_t anno_list; /* List of messages (mu_message_t) to annotate */ mu_mailbox_t mbox; int nowhatnowproc; int reedit:1; /* Set if the editor was already invoked */ + char *last_ed; /* Last used editor */ }; #define DISP_QUIT 0 diff --git a/mh/mh_whatnow.c b/mh/mh_whatnow.c index 71b6b221c..5dc15b553 100644 --- a/mh/mh_whatnow.c +++ b/mh/mh_whatnow.c @@ -323,6 +323,9 @@ _whatnow (struct mh_whatnow_env *wh, struct action_tab *tab) size_t size = 0; struct mu_wordsplit ws; int wsflags = MU_WRDSF_DEFFLAGS|MU_WRDSF_COMMENT; + + wh->reedit = 0; + wh->last_ed = NULL; do { @@ -360,6 +363,8 @@ _whatnow (struct mh_whatnow_env *wh, struct action_tab *tab) while (rc == 0); if (wsflags & MU_WRDSF_REUSE) mu_wordsplit_free (&ws); + free (wh->last_ed); + wh->last_ed = NULL; free (line); return status; } @@ -382,8 +387,9 @@ display (struct mh_whatnow_env *wh, int argc, char **argv, int *status) static int edit (struct mh_whatnow_env *wh, int argc, char **argv, int *whs) { - char const *ed = wh->editor; + char const *ed = wh->last_ed ? wh->last_ed : wh->editor; int i, rc, status; + char *p; if (wh->reedit) { @@ -455,8 +461,10 @@ edit (struct mh_whatnow_env *wh, int argc, char **argv, int *whs) else mu_error (_("problems with edit")); } - - wh->editor = ed; + + p = mu_strdup (ed); + free (wh->last_ed); + wh->last_ed = p; wh->reedit = 1; return 0; diff --git a/mh/tests/atlocal.in b/mh/tests/atlocal.in index 508e03f28..6a7f40528 100644 --- a/mh/tests/atlocal.in +++ b/mh/tests/atlocal.in @@ -3,10 +3,8 @@ # Copyright (C) 2004, 2010-2012, 2014-2017 Free Software Foundation, # Inc. -PATH=@abs_builddir@:@abs_top_builddir@/mh:$top_srcdir:$srcdir:$PATH -remove_curdir() { - sed "s|$HOME/*||;s| *$||" $* -} +PATH=@abs_builddir@:@abs_top_builddir@/testsuite:@abs_top_builddir@/mh:$top_srcdir:$srcdir:$PATH + # mimeflt [FILE] # Filter out all variable information from a MIME message in FILE. # If FILE is not given, filter stdin. diff --git a/mh/tests/comp.at b/mh/tests/comp.at index a8d4a4129..563310cca 100644 --- a/mh/tests/comp.at +++ b/mh/tests/comp.at @@ -19,7 +19,7 @@ m4_pushdef([MH_KEYWORDS],[comp]) m4_pushdef([compcmd],[comp -editor $abs_top_srcdir/mh/tests/mhed]) MH_CHECK([comp -file],[comp00 comp-file],[ -echo quit | compcmd -file ./infile | remove_curdir | sed 's/ *$//' +echo quit | compcmd -file $HOME/infile | cwdrepl | sed 's/ *$//' sed 's/ *$//' infile ], [0], @@ -39,7 +39,7 @@ Seen by mhed ]) MH_CHECK([comp -file (del)],[comp01 comp-file_del],[ -echo 'quit -delete' | compcmd -file ./infile | remove_curdir +echo 'quit -delete' | compcmd -file $HOME/infile | cwdrepl | sed 's/ *$//' ], [0], [-- Editor invocation: ./infile @@ -53,18 +53,18 @@ What now? ]) MH_CHECK([comp file],[comp02 comp_file],[ -echo 'quit' | compcmd file | remove_curdir | sed 's/ *$//' +echo 'quit' | compcmd file | cwdrepl | sed 's/ *$//' sed 's/ *$//' Mail/file ], [0], -[-- Editor invocation: Mail/file +[-- Editor invocation: ./Mail/file -- Input file: To: cc: Subject: -------- -- Input file end -What now? draft left on "Mail/file". +What now? draft left on "./Mail/file". To: cc: Subject: @@ -80,11 +80,11 @@ Subject: test input message body ]) -echo 'quit' | compcmd -use file | remove_curdir | sed 's/ *$//' +echo 'quit' | compcmd -use file | cwdrepl | sed 's/ *$//' sed 's/ *$//' Mail/file ], [0], -[-- Editor invocation: Mail/file +[-- Editor invocation: ./Mail/file -- Input file: From: gray To: root @@ -92,7 +92,7 @@ Subject: test input message body -- Input file end -What now? draft left on "Mail/file". +What now? draft left on "./Mail/file". From: gray To: root Subject: test input @@ -110,14 +110,14 @@ Subject: test input message body ]) -echo 'quit' | compcmd +inbox 1 | remove_curdir | sed 's/ *$//' +echo 'quit' | compcmd +inbox 1 | cwdrepl | sed 's/ *$//' echo Mail/draft sed 's/ *$//' Mail/draft echo Message sed 's/ *$//' Mail/inbox/1 ], [0], -[-- Editor invocation: Mail/draft +[-- Editor invocation: ./Mail/draft -- Input file: From: gray To: root @@ -125,7 +125,7 @@ Subject: test input message body -- Input file end -What now? draft left on "Mail/draft". +What now? draft left on "./Mail/draft". Mail/draft From: gray To: root @@ -143,18 +143,18 @@ message body MH_CHECK([comp -draftfolder],[comp05 comp-draftfolder draftfolder],[ mkdir Mail/drafts -echo 'quit' | compcmd -draftfolder drafts | remove_curdir | sed 's/ *$//' +echo 'quit' | compcmd -draftfolder drafts | cwdrepl | sed 's/ *$//' sed 's/ *$//' Mail/drafts/1 ], [0], -[-- Editor invocation: Mail/drafts/1 +[-- Editor invocation: ./Mail/drafts/1 -- Input file: To: cc: Subject: -------- -- Input file end -What now? draft left on "Mail/drafts/1". +What now? draft left on "./Mail/drafts/1". To: cc: Subject: @@ -172,11 +172,11 @@ message body ]) echo "cur: 1" > Mail/drafts/.mh_sequences -echo 'quit' | compcmd -draftfolder drafts -use| remove_curdir | sed 's/ *$//' +echo 'quit' | compcmd -draftfolder drafts -use| cwdrepl | sed 's/ *$//' sed 's/ *$//' Mail/drafts/1 ], [0], -[-- Editor invocation: Mail/drafts/1 +[-- Editor invocation: ./Mail/drafts/1 -- Input file: From: gray To: root @@ -184,7 +184,7 @@ Subject: test input message body -- Input file end -What now? draft left on "Mail/drafts/1". +What now? draft left on "./Mail/drafts/1". From: gray To: root Subject: test input diff --git a/mh/tests/forw.at b/mh/tests/forw.at index 4392fa2b9..e0566dfe7 100644 --- a/mh/tests/forw.at +++ b/mh/tests/forw.at @@ -27,7 +27,7 @@ Subject: test input message body ]) -echo quit | forwcmd +inbox 1 | remove_curdir +echo quit | forwcmd +inbox 1 | cwdrepl echo == Mail/draft == cat Mail/draft echo == Message == @@ -36,7 +36,7 @@ echo == Message == sed '/^X-IMAPbase/d' Mail/inbox/1 ], [0], -[-- Editor invocation: Mail/draft +[-- Editor invocation: ./Mail/draft -- Input file: To: cc: @@ -53,7 +53,7 @@ message body ------- End of Forwarded message -- Input file end -What now? draft left on "Mail/draft". +What now? draft left on "./Mail/draft". == Mail/draft == To: cc: @@ -87,7 +87,7 @@ Subject: test input message body ]) -echo quit | forwcmd -format +inbox 1 | remove_curdir +echo quit | forwcmd -format +inbox 1 | cwdrepl echo == Mail/draft == cat Mail/draft echo == Message == @@ -96,7 +96,7 @@ echo == Message == sed '/^X-IMAPbase/d' Mail/inbox/1 ], [0], -[-- Editor invocation: Mail/draft +[-- Editor invocation: ./Mail/draft -- Input file: To: cc: @@ -113,7 +113,7 @@ message body ------- End of Forwarded message -- Input file end -What now? draft left on "Mail/draft". +What now? draft left on "./Mail/draft". == Mail/draft == To: cc: @@ -153,7 +153,7 @@ Subject: 2nd message 2nd message body ]) -echo quit | forwcmd +inbox 1 2 | remove_curdir +echo quit | forwcmd +inbox 1 2 | cwdrepl echo == Mail/draft == cat Mail/draft echo == Message 1 == @@ -162,7 +162,7 @@ echo == Message 2 == cat Mail/inbox/2 ], [0], -[-- Editor invocation: Mail/draft +[-- Editor invocation: ./Mail/draft -- Input file: To: cc: @@ -188,7 +188,7 @@ Subject: 2nd message ------- End of Forwarded messages -- Input file end -What now? draft left on "Mail/draft". +What now? draft left on "./Mail/draft". == Mail/draft == To: cc: @@ -237,7 +237,7 @@ Subject: test input message body ]) -forwcmd -build +inbox 1 | remove_curdir +forwcmd -build +inbox 1 | cwdrepl echo == Mail/draft == cat Mail/draft echo == Message == @@ -282,9 +282,9 @@ Subject: 2nd message 2nd message body ]) -forwcmd -build -mime +inbox 1 2 | remove_curdir +forwcmd -build -mime +inbox 1 2 | cwdrepl echo == Mail/draft == -remove_curdir Mail/draft +cwdrepl < Mail/draft echo == Message 1 == sed '/^X-IMAPbase/d' Mail/inbox/1 echo == Message 2 == @@ -296,7 +296,7 @@ To: cc: Subject: -------- -#forw [] +Mail/inbox 1 2 +#forw [] +./Mail/inbox 1 2 == Message 1 == From: gray @@ -322,14 +322,14 @@ Subject: test input message body ]) -echo "quit" | forwcmd -draftfolder drafts 1 | remove_curdir +echo "quit" | forwcmd -draftfolder drafts 1 | cwdrepl echo == Mail/drafts/1 == cat Mail/drafts/1 echo == Message == sed '/^X-IMAPbase/d' Mail/inbox/1 ], [0], -[-- Editor invocation: Mail/drafts/1 +[-- Editor invocation: ./Mail/drafts/1 -- Input file: To: cc: @@ -346,7 +346,7 @@ message body ------- End of Forwarded message -- Input file end -What now? draft left on "Mail/drafts/1". +What now? draft left on "./Mail/drafts/1". == Mail/drafts/1 == To: cc: @@ -379,10 +379,10 @@ Subject: test input message body ]) -echo "quit" | forwcmd -file infile | remove_curdir +echo "quit" | forwcmd -file infile | cwdrepl ], [0], -[-- Editor invocation: Mail/draft +[-- Editor invocation: ./Mail/draft -- Input file: To: cc: @@ -394,7 +394,7 @@ Subject: test input message body -- Input file end -What now? draft left on "Mail/draft". +What now? draft left on "./Mail/draft". ]) m4_popdef([forwcmd]) diff --git a/mh/tests/mhn.at b/mh/tests/mhn.at index 51d579abf..30755ecb7 100644 --- a/mh/tests/mhn.at +++ b/mh/tests/mhn.at @@ -130,21 +130,21 @@ Be off, or I'll kick you down stairs!' MH_CHECK([mhn -store -auto],[mhn03 mhn-store-auto],[ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) -mhn +inbox -store -auto 4 | remove_curdir || exit $? +mhn +inbox -store -auto 4 | cwdrepl || exit $? ], [0], -[storing message 4 part 1 as file msg.21 -storing message 4 part 2.1 as file msg.22 -storing message 4 part 2.2.1 as file msg.23 -storing message 4 part 2.2.2 as file msg.24 +[storing message 4 part 1 as file ./msg.21 +storing message 4 part 2.1 as file ./msg.22 +storing message 4 part 2.2.1 as file ./msg.23 +storing message 4 part 2.2.2 as file ./msg.24 ]) MH_CHECK([mhn -store -auto -part],[mhn04 mhn-store-auto-part],[ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox],[700]) -mhn +inbox -store -auto -part 2.2.1 4 | remove_curdir || exit $? +mhn +inbox -store -auto -part 2.2.1 4 | cwdrepl || exit $? ], [0], -[storing message 4 part 2.2.1 as file msg.23 +[storing message 4 part 2.2.1 as file ./msg.23 ]) MH_CHECK([mhn -store -auto (pathname safety)],[mhn05 mhn-store-auto-safety],[ @@ -178,13 +178,13 @@ MUT_MBCHMOD(Mail/inbox, 700) mkdir out echo "mhn-storage: $HOME/out" >> $MH -mhn +inbox -store 4 | remove_curdir || echo $? +mhn +inbox -store 4 | cwdrepl || echo $? ], [0], -[storing message 4 part 1 as file out/4.1.plain -storing message 4 part 2.1 as file out/4.2.1.octet-stream -storing message 4 part 2.2.1 as file out/4.2.2.1.octet-stream -storing message 4 part 2.2.2 as file out/4.2.2.2.octet-stream +[storing message 4 part 1 as file ./out/4.1.plain +storing message 4 part 2.1 as file ./out/4.2.1.octet-stream +storing message 4 part 2.2.1 as file ./out/4.2.2.1.octet-stream +storing message 4 part 2.2.2 as file ./out/4.2.2.2.octet-stream ]) MH_CHECK([mhn-store-: all escapes],[mhn07 mhn-store_escapes],[ @@ -193,7 +193,7 @@ cp $abs_top_srcdir/testsuite/mh/mbox1/4 Mail/inbox MUT_MBCHMOD(Mail/inbox, 700) echo "mhn-store-application: %%-%m%P.%s-%p" >> $MH -mhn +inbox -store 4 | remove_curdir || exit $? +mhn +inbox -store 4 || exit $? find . -name '%*' | sort ], [0], @@ -213,13 +213,13 @@ cp $abs_top_srcdir/testsuite/mh/mbox1/4 Mail/inbox MUT_MBCHMOD(Mail/inbox, 700) echo "mhn-store-application: $HOME/out/%m%P.%s" >> $MH -mhn +inbox -store 4 | remove_curdir || exit $? +mhn +inbox -store 4 | cwdrepl || exit $? ], [0], [storing message 4 part 1 as file 4.1.plain -storing message 4 part 2.1 as file out/4.2.1.octet-stream -storing message 4 part 2.2.1 as file out/4.2.2.1.octet-stream -storing message 4 part 2.2.2 as file out/4.2.2.2.octet-stream +storing message 4 part 2.1 as file ./out/4.2.1.octet-stream +storing message 4 part 2.2.1 as file ./out/4.2.2.1.octet-stream +storing message 4 part 2.2.2 as file ./out/4.2.2.2.octet-stream ]) MH_CHECK([mhn-store-: +folder],[mhn09 mhn-store+folder],[ @@ -229,7 +229,7 @@ cp $abs_top_srcdir/testsuite/mh/mbox1/4 Mail/inbox MUT_MBCHMOD(Mail, 700) echo "mhn-store-application: +app" >> $MH -mhn +inbox -store 4 | remove_curdir || exit $? +mhn +inbox -store 4 | cwdrepl || exit $? ], [0], [storing message 4 part 1 as file 4.1.plain @@ -247,7 +247,7 @@ echo "Current-Folder: inbox" > Mail/context cat >> $MH <<EOT mhn-store-application/octet-stream: + EOT -mhn +inbox -store -part 2.2.1 4 | remove_curdir || exit $? +mhn +inbox -store -part 2.2.1 4 | cwdrepl || exit $? ], [0], [storing message 4 part 2.2.1 to folder inbox as message 5 diff --git a/mh/tests/mhpath.at b/mh/tests/mhpath.at index a04868710..d07a7c765 100644 --- a/mh/tests/mhpath.at +++ b/mh/tests/mhpath.at @@ -20,43 +20,43 @@ m4_pushdef([MH_KEYWORDS],[mhpath]) MH_CHECK([mhpath],[mhpath00],[ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) echo 'Current-Folder: inbox' > Mail/context -mhpath | remove_curdir +mhpath | cwdrepl ], [0], -[Mail/inbox +[./Mail/inbox ]) MH_CHECK([mhpath +],[mhpath01 mhpath+],[ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) echo 'Current-Folder: inbox' > Mail/context -mhpath +| remove_curdir +mhpath +| cwdrepl ], [0], -[Mail +[./Mail ]) MH_CHECK([mhpath msgs],[mhpath02 mhparam_msgs],[ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) -mhpath 1-3 | remove_curdir +mhpath 1-3 | cwdrepl ], [0], -[Mail/inbox/1 -Mail/inbox/2 -Mail/inbox/3 +[./Mail/inbox/1 +./Mail/inbox/2 +./Mail/inbox/3 ]) MH_CHECK([mhpath msgs (some nonexistent)],[mhpath03 mhparam_msgs_some_nonex],[ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) -mhpath 4-10 | remove_curdir +mhpath 4-10 | cwdrepl ], [0], -[Mail/inbox/4 -Mail/inbox/5 +[./Mail/inbox/4 +./Mail/inbox/5 ]) MH_CHECK([mhpath msgs (all nonexistent)],[mhpath04 mhparam_msgs_all_nonex],[ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) -mhpath 8-10 | remove_curdir +mhpath 8-10 | cwdrepl ], [0], [], @@ -87,7 +87,7 @@ mhpath 8-10 | remove_curdir MH_CHECK([mhpath nonexistent],[mhpath05 mhparam_nonexistent],[ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) -mhpath 10 | remove_curdir +mhpath 10 | cwdrepl ], [0], [], @@ -96,10 +96,10 @@ mhpath 10 | remove_curdir MH_CHECK([mhpath new],[mhpath06 mhparam_new],[ MUT_MBCOPY($abs_top_srcdir/testsuite/mh/mbox1,[Mail/inbox]) -mhpath new | remove_curdir +mhpath new | cwdrepl ], [0], -[Mail/inbox/6 +[./Mail/inbox/6 ]) m4_popdef[MH_KEYWORDS]) diff --git a/mh/tests/repl.at b/mh/tests/repl.at index 3520c631b..bd58e9f33 100644 --- a/mh/tests/repl.at +++ b/mh/tests/repl.at @@ -28,19 +28,19 @@ Subject: test input message body ]) -echo "quit" | replcmd +inbox 1 | remove_curdir +echo "quit" | replcmd +inbox 1 | cwdrepl echo == Mail/draft == cat Mail/draft ], [0], -[-- Editor invocation: Mail/draft +[-- Editor invocation: ./Mail/draft -- Input file: To: <gray@example.com> Subject: Re: test input X-Mailer: MH (AT_PACKAGE_NAME AT_PACKAGE_VERSION) -------- -- Input file end -What now? draft left on "Mail/draft". +What now? draft left on "./Mail/draft". == Mail/draft == To: <gray@example.com> Subject: Re: test input @@ -58,19 +58,19 @@ Subject: test input message body ]) -echo "quit" | replcmd -draftfolder drafts +inbox 1 | remove_curdir +echo "quit" | replcmd -draftfolder drafts +inbox 1 | cwdrepl echo == Mail/drafts/1 == cat Mail/drafts/1 ], [0], -[-- Editor invocation: Mail/drafts/1 +[-- Editor invocation: ./Mail/drafts/1 -- Input file: To: <gray@example.com> Subject: Re: test input X-Mailer: MH (AT_PACKAGE_NAME AT_PACKAGE_VERSION) -------- -- Input file end -What now? draft left on "Mail/drafts/1". +What now? draft left on "./Mail/drafts/1". == Mail/drafts/1 == To: <gray@example.com> Subject: Re: test input |