Send/reply with an attachment. More...
#include "config.h"#include <locale.h>#include <stdbool.h>#include <stdio.h>#include "mutt/lib.h"#include "address/lib.h"#include "config/lib.h"#include "email/lib.h"#include "core/lib.h"#include "alias/lib.h"#include "gui/lib.h"#include "mutt.h"#include "recvcmd.h"#include "attach/lib.h"#include "editor/lib.h"#include "expando/lib.h"#include "history/lib.h"#include "index/lib.h"#include "question/lib.h"#include "send/lib.h"#include "copy.h"#include "globals.h"#include "handler.h"#include "mutt_body.h"#include "mutt_logging.h"#include "protos.h"#include <libintl.h>
Include dependency graph for recvcmd.c:Go to the source code of this file.
Functions | |
| static bool | check_msg (struct Body *b, bool err) |
| Are we working with an RFC822 message. | |
| static bool | check_all_msg (struct AttachCtx *actx, struct Body *b, bool err) |
| Are all the Attachments RFC822 messages? | |
| static bool | check_can_decode (struct AttachCtx *actx, struct Body *b) |
| Can we decode all tagged attachments? | |
| static short | count_tagged (struct AttachCtx *actx) |
| Count the number of tagged attachments. | |
| static short | count_tagged_children (struct AttachCtx *actx, short i) |
| Tagged children below a multipart/message attachment. | |
| void | attach_bounce_message (struct Mailbox *m, FILE *fp, struct AttachCtx *actx, struct Body *b) |
| Bounce function, from the attachment menu. | |
| void | mutt_attach_resend (FILE *fp, struct Mailbox *m, struct AttachCtx *actx, struct Body *b) |
| Resend-message, from the attachment menu. | |
| static struct AttachPtr * | find_common_parent (struct AttachCtx *actx, short nattach) |
| Find a common parent message for the tagged attachments. | |
| static int | is_parent (short i, struct AttachCtx *actx, const struct Body *b) |
| Check whether one attachment is the parent of another. | |
| static struct AttachPtr * | find_parent (struct AttachCtx *actx, struct Body *b, short nattach) |
| Find the parent of an Attachment. | |
| static void | include_header (bool quote, FILE *fp_in, struct Email *e, FILE *fp_out, const char *prefix) |
| Write an email header to a file, optionally quoting it. | |
| static struct Body ** | copy_problematic_attachments (struct Body **last, struct AttachCtx *actx, bool force) |
| Attach the body parts which can't be decoded. | |
| static void | attach_forward_bodies (FILE *fp, struct Email *e, struct AttachCtx *actx, struct Body *b, short nattach) |
| Forward one or several MIME bodies. | |
| static void | attach_forward_msgs (FILE *fp, struct AttachCtx *actx, struct Body *b, SendFlags flags) |
| Forward one or several message-type attachments. | |
| void | mutt_attach_forward (FILE *fp, struct Email *e, struct AttachCtx *actx, struct Body *b, SendFlags flags) |
| Forward an Attachment. | |
| static int | attach_reply_envelope_defaults (struct Envelope *env, struct AttachCtx *actx, struct Email *parent, SendFlags flags) |
| Create the envelope defaults for a reply. | |
| static void | attach_include_reply (FILE *fp, FILE *fp_tmp, struct Email *e) |
| This is very similar to send.c's include_reply() | |
| void | mutt_attach_reply (FILE *fp, struct Mailbox *m, struct Email *e, struct AttachCtx *actx, struct Body *b, SendFlags flags) |
| Attach a reply. | |
| void | mutt_attach_mail_sender (struct AttachCtx *actx, struct Body *b) |
| Compose an email to the sender in the email attachment. | |
Send/reply with an attachment.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Definition in file recvcmd.c.
|
static |
Are we working with an RFC822 message.
| b | Body of email |
| err | If true, display a message if this isn't an RFC822 message |
| true | This is an RFC822 message |
some helper functions to verify that we are exclusively operating on message/rfc822 attachments
Definition at line 72 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:Are all the Attachments RFC822 messages?
| actx | Attachment context |
| b | Current message |
| err | If true, report errors |
| true | All parts are RFC822 messages |
Definition at line 90 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:Can we decode all tagged attachments?
| actx | Attachment context |
| b | Body of email |
| true | All tagged attachments are decodable |
Definition at line 114 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
Tagged children below a multipart/message attachment.
| actx | Attachment context |
| i | Index of first attachment |
| num | Number of tagged attachments |
Definition at line 147 of file recvcmd.c.
Here is the caller graph for this function:| void attach_bounce_message | ( | struct Mailbox * | m, |
| FILE * | fp, | ||
| struct AttachCtx * | actx, | ||
| struct Body * | b ) |
Bounce function, from the attachment menu.
Definition at line 166 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:Resend-message, from the attachment menu.
| fp | File containing email |
| m | Current mailbox |
| actx | Attachment context |
| b | Attachment |
Definition at line 290 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:Find a common parent message for the tagged attachments.
| actx | Attachment context |
| nattach | Number of tagged attachments |
| ptr | Parent attachment |
| NULL | Failure, no common parent |
Definition at line 319 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:Check whether one attachment is the parent of another.
| i | Index of parent Attachment |
| actx | Attachment context |
| b | Potential child Attachment |
| true | Attachment |
check whether attachment i is a parent of the attachment pointed to by b
Definition at line 353 of file recvcmd.c.
Here is the caller graph for this function:
|
static |
Find the parent of an Attachment.
| actx | Attachment context |
| b | Attachment (OPTIONAL) |
| nattach | Use the nth attachment |
| ptr | Parent attachment |
| NULL | No parent exists |
Definition at line 374 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Write an email header to a file, optionally quoting it.
| quote | If true, prefix the lines |
| fp_in | File to read from |
| e | |
| fp_out | File to write to |
| prefix | Prefix for each line (OPTIONAL) |
Definition at line 407 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Attach the body parts which can't be decoded.
| [out] | last | Body pointer to update |
| [in] | actx | Attachment context |
| [in] | force | If true, attach parts that can't be decoded |
| ptr | Pointer to last Body part |
This code is shared by forwarding and replying.
Definition at line 453 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Forward one or several MIME bodies.
| fp | File to read from |
| e | |
| actx | Attachment Context |
| b | Body of email |
| nattach | Number of tagged attachments |
(non-message types)
Definition at line 478 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Forward one or several message-type attachments.
| fp | File handle to attachment |
| actx | Attachment Context |
| b | Attachment to forward (OPTIONAL) |
| flags | Send mode, see SendFlags |
This is different from the previous function since we want to mimic the index menu's behavior.
Code reuse from mutt_send_message() is not possible here. It relies on a context structure to find messages, while, on the attachment menu, messages are referenced through the attachment index.
Definition at line 662 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void mutt_attach_forward | ( | FILE * | fp, |
| struct Email * | e, | ||
| struct AttachCtx * | actx, | ||
| struct Body * | b, | ||
| SendFlags | flags ) |
Forward an Attachment.
| fp | Handle to the attachment |
| e | |
| actx | Attachment Context |
| b | Current message |
| flags | Send mode, see SendFlags |
Definition at line 793 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Create the envelope defaults for a reply.
| env | Envelope to fill in |
| actx | Attachment Context |
| parent | Parent Email |
| flags | Flags, see SendFlags |
| 0 | Success |
| -1 | Error |
This function can be invoked in two ways.
Either, parent is NULL. In this case, all tagged bodies are of a message type, and the header information is fetched from them.
Or, parent is non-NULL. In this case, cur is the common parent of all the tagged attachments.
Note that this code is horribly similar to envelope_defaults() from send.c.
Definition at line 826 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
This is very similar to send.c's include_reply()
| fp | File handle to attachment |
| fp_tmp | File handle to temporary file |
| e |
Definition at line 919 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void mutt_attach_reply | ( | FILE * | fp, |
| struct Mailbox * | m, | ||
| struct Email * | e, | ||
| struct AttachCtx * | actx, | ||
| struct Body * | b, | ||
| SendFlags | flags ) |
Attach a reply.
| fp | File handle to reply |
| m | Mailbox |
| e | |
| actx | Attachment Context |
| b | Current message |
| flags | Send mode, see SendFlags |
Definition at line 949 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function:Compose an email to the sender in the email attachment.
| actx | Attachment Context |
| b | Current attachment |
Definition at line 1127 of file recvcmd.c.
Here is the call graph for this function:
Here is the caller graph for this function: