summaryrefslogtreecommitdiff
path: root/mail/mail.h
diff options
context:
space:
mode:
Diffstat (limited to 'mail/mail.h')
-rw-r--r--mail/mail.h71
1 files changed, 59 insertions, 12 deletions
diff --git a/mail/mail.h b/mail/mail.h
index a92cd2a76..c4480e315 100644
--- a/mail/mail.h
+++ b/mail/mail.h
@@ -1,5 +1,5 @@
/* GNU Mailutils -- a suite of utilities for electronic mail
- Copyright (C) 1999-2019 Free Software Foundation, Inc.
+ Copyright (C) 1999-2024 Free Software Foundation, Inc.
GNU Mailutils is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -93,7 +93,7 @@ typedef int function_t (int, char **);
#define EF_REG 0x00 /* Regular command */
#define EF_FLOW 0x01 /* Flow control command */
#define EF_SEND 0x02 /* Send command */
-#define EF_HIDDEN 0x04 /* Hiddent command */
+#define EF_HIDDEN 0x04 /* Hidden command */
typedef struct compose_env
{
@@ -145,7 +145,7 @@ union mailvar_value
{
char *string;
int number;
- int bool;
+ int boolean;
};
struct mailvar_variable
@@ -166,7 +166,6 @@ struct mailvar_variable
#define mailvar_name_asksub "asksub"
#define mailvar_name_autoinc "autoinc"
#define mailvar_name_autoprint "autoprint"
-#define mailvar_name_byname "byname"
#define mailvar_name_bang "bang"
#define mailvar_name_charset "charset"
#define mailvar_name_cmd "cmd"
@@ -182,6 +181,7 @@ struct mailvar_variable
#define mailvar_name_flipr "flipr"
#define mailvar_name_folder "folder"
#define mailvar_name_fromfield "fromfield"
+#define mailvar_name_fullnames "fullnames"
#define mailvar_name_gnu_last_command "gnu-last-command"
#define mailvar_name_header "header"
#define mailvar_name_headline "headline"
@@ -199,6 +199,7 @@ struct mailvar_variable
#define mailvar_name_mode "mode"
#define mailvar_name_nullbody "nullbody"
#define mailvar_name_nullbodymsg "nullbodymsg"
+#define mailvar_name_outfilename "outfilename"
#define mailvar_name_outfolder "outfolder"
#define mailvar_name_page "page"
#define mailvar_name_prompt "prompt"
@@ -229,16 +230,15 @@ struct mailvar_variable
#define mailvar_name_mime "mime"
#define mailvar_name_onehop "onehop"
#define mailvar_name_quiet "quiet"
-#define mailvar_name_PID "PID"
+#define mailvar_name_PID "PID"
+#define mailvar_name_useragent "useragent"
typedef struct message_set msgset_t;
struct message_set
{
msgset_t *next; /* Link to the next message set */
- unsigned int npart; /* Number of parts in this set */
- size_t *msg_part; /* Array of part numbers: msg_part[0] is the
- message number */
+ mu_coord_t crd;
};
typedef int (*msg_handler_t) (msgset_t *mp, mu_message_t mesg, void *data);
@@ -306,6 +306,7 @@ int mail_touch (int argc, char **argv);
int mail_unalias (int argc, char **argv);
int mail_undelete (int argc, char **argv);
int mail_unfold (int argc, char **argv);
+int mail_unread (int argc, char **argv);
int mail_unset (int argc, char **argv);
int mail_version (int argc, char **argv);
int mail_visual (int argc, char **argv);
@@ -323,7 +324,7 @@ int if_cond (void);
void mail_mainloop (char *(*input) (void *, int), void *closure, int do_history);
int mail_copy0 (int argc, char **argv, int mark);
-int mail_send0 (compose_env_t *env, int save_to);
+int mail_compose_send (compose_env_t *env, int save_to);
void free_env_headers (compose_env_t *env);
/*extern void print_message (mu_message_t mesg, char *prefix, int all_headers, FILE *file);*/
@@ -402,6 +403,35 @@ int msgset_parse (const int argc, char **argv, int flags, msgset_t **mset);
int msgset_member (msgset_t *set, size_t n);
msgset_t *msgset_negate (msgset_t *set);
size_t msgset_count (msgset_t *set);
+static inline size_t
+msgset_length (msgset_t *set)
+{
+ return mu_coord_length (set->crd);
+}
+static inline size_t
+msgset_msgno (msgset_t *set)
+{
+ return set->crd[1];
+}
+static inline char *
+msgset_part_str (const msgset_t *set, size_t n)
+{
+ return mu_coord_part_string (set->crd, n);
+}
+static inline char *
+msgset_str (const msgset_t *set)
+{
+ return mu_coord_string (set->crd);
+}
+
+/* Constants for naming outgoing mail files */
+enum
+ {
+ outfilename_local, /* File is named by local part of the recipient email. */
+ outfilename_email, /* File is named by entire email. */
+ outfilename_domain /* File is named by domain part. */
+ };
+extern int outfilename_mode;
#define MDHINT_SELECTED_HEADERS 0x1
@@ -469,6 +499,7 @@ char *util_get_homedir (void);
char *util_fullpath (const char *inpath);
char *util_folder_path (const char *name);
char *util_get_sender (int msgno, int strip);
+char *util_message_sender (mu_message_t msg, int strip);
void util_slist_print (mu_list_t list, int nl);
int util_slist_lookup (mu_list_t list, const char *str);
@@ -477,6 +508,7 @@ void util_slist_remove (mu_list_t *list, char *value);
void util_slist_destroy (mu_list_t *list);
char *util_slist_to_string (mu_list_t list, const char *delim);
void util_strcat (char **dest, const char *str);
+char *util_outfilename (mu_address_t addr);
char *util_outfolder_name (char *str);
void util_save_outgoing (mu_message_t msg, char *savefile);
int util_error_range (size_t msgno);
@@ -488,8 +520,12 @@ void util_msgset_iterate (msgset_t *msgset,
void util_get_content_type (mu_header_t hdr, char **value, char **args);
void util_get_hdr_value (mu_header_t hdr, const char *name, char **value);
int util_merge_addresses (char **addr_str, const char *value);
-int util_header_expand (mu_header_t *hdr);
+void util_address_expand_aliases (mu_address_t *paddr);
+int util_header_expand_aliases (mu_header_t *hdr);
int util_get_message (mu_mailbox_t mbox, size_t msgno, mu_message_t *msg);
+int util_get_message_part (mu_mailbox_t mbox, msgset_t *msgset,
+ mu_message_t *ret_msg);
+
void util_cache_command (mu_list_t *list, const char *fmt, ...)
MU_PRINTFLIKE(2,3);
void util_run_cached_commands (mu_list_t *list);
@@ -503,7 +539,8 @@ const char *util_url_to_string (mu_url_t url);
mu_stream_t open_pager (size_t lines);
-void format_msgset (mu_stream_t str, const msgset_t *msgset, size_t *count);
+int print_message_body (mu_message_t msg, mu_stream_t out, size_t *stat);
+
char *sender_string (mu_message_t msg);
int is_address_field (const char *name);
@@ -524,6 +561,15 @@ const char *alias_iterate_next (alias_iterator_t itr);
const char *alias_iterate_first (const char *p, alias_iterator_t *itr);
void alias_iterate_end (alias_iterator_t *itr);
+/* Auxiliary functions for accessing folders */
+enum
+ {
+ any_folder,
+ local_folder
+ };
+
+int util_get_folder (mu_folder_t *pfolder, mu_url_t url, int type);
+
int mail_sender (int argc, char **argv);
int mail_nosender (int argc, char **argv);
mu_address_t get_sender_address (mu_message_t msg);
@@ -535,7 +581,7 @@ mu_address_t get_sender_address (mu_message_t msg);
void compose_init (compose_env_t *env);
int compose_header_set (compose_env_t *env, const char *name,
const char *value, int replace);
-char *compose_header_get (compose_env_t *env, char *name, char *defval);
+char const *compose_header_get (compose_env_t *env, char *name, char *defval);
void compose_destroy (compose_env_t *env);
#ifndef HAVE_READLINE_READLINE_H
@@ -547,6 +593,7 @@ char *readline (char *prompt);
#define MSG_NODELETED 0x0001
#define MSG_SILENT 0x0002
#define MSG_COUNT 0x0004
+#define MSG_ALLOWPART 0x0008
/* Message attributes */
#define MAIL_ATTRIBUTE_MBOXED 0x0001

Return to:

Send suggestions and report system problems to the System administrator.