#! /bin/sh /usr/share/dpatch/dpatch-run ## 80_msg_show_full.dpatch by ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Add -Mvf option, which prints full message to stdout @DPATCH@ Index: src/exim.c =================================================================== RCS file: /home/cvs/exim/exim-src/src/exim.c,v retrieving revision 1.55 diff -u -r1.55 exim.c --- trunk~/build-tree/src/exim.c 30 Jan 2007 15:10:59 -0000 1.55 +++ trunk/build-tree/src/exim.c 8 Jun 2007 18:54:11 -0000 @@ -2335,6 +2335,11 @@ msg_action = MSG_SHOW_HEADER; one_msg_action = TRUE; } + else if (Ustrcmp(argrest, "vf") == 0) + { + msg_action = MSG_SHOW_FULL; + one_msg_action = TRUE; + } else if (Ustrcmp(argrest, "vl") == 0) { msg_action = MSG_SHOW_LOG; Index: src/macros.h =================================================================== RCS file: /home/cvs/exim/exim-src/src/macros.h,v retrieving revision 1.33 diff -u -r1.33 macros.h --- trunk~/build-tree/src/macros.h 13 Mar 2007 15:32:48 -0000 1.33 +++ trunk/build-tree/src/macros.h 8 Jun 2007 18:54:11 -0000 @@ -732,7 +734,7 @@ enum { MSG_DELIVER, MSG_FREEZE, MSG_REMOVE, MSG_THAW, MSG_ADD_RECIPIENT, MSG_MARK_ALL_DELIVERED, MSG_MARK_DELIVERED, MSG_EDIT_SENDER, - MSG_SHOW_BODY, MSG_SHOW_HEADER, MSG_SHOW_LOG, MSG_LOAD }; + MSG_SHOW_FULL, MSG_SHOW_BODY, MSG_SHOW_HEADER, MSG_SHOW_LOG, MSG_LOAD }; /* Returns from the spool_read_header() function */ Index: src/queue.c =================================================================== RCS file: /home/cvs/exim/exim-src/src/queue.c,v retrieving revision 1.11 diff -u -r1.11 queue.c --- trunk~/build-tree/src/queue.c 8 Jan 2007 10:50:18 -0000 1.11 +++ trunk/build-tree/src/queue.c 8 Jun 2007 18:54:12 -0000 @@ -1093,10 +1093,17 @@ /* Take the necessary action. */ -printf("Message %s ", id); +if (action != MSG_SHOW_FULL) + printf("Message %s ", id); switch(action) { + case MSG_SHOW_FULL: + deliver_in_buffer = store_malloc(DELIVER_IN_BUFFER_SIZE); + deliver_out_buffer = store_malloc(DELIVER_OUT_BUFFER_SIZE); + transport_write_message(NULL, 1, 0, 0, NULL, NULL, NULL, NULL, NULL, 0); + break; + case MSG_FREEZE: if (deliver_freeze) {