Signed-off-by: Pierre Habouzit <madcoder@debian.org>
* Disregards the 'destroy' flag, which seems reserved for caller.
* This is bad, but there's no apparent protocol for it.
*/
* Disregards the 'destroy' flag, which seems reserved for caller.
* This is bad, but there's no apparent protocol for it.
*/
-BUFFER *mutt_buffer_from (BUFFER * b, char *seed)
+BUFFER *mutt_buffer_from (BUFFER * b, const char *seed)
{
if (!seed)
return NULL;
{
if (!seed)
return NULL;
int mutt_extract_token (BUFFER *, BUFFER *, int);
BUFFER *mutt_buffer_init (BUFFER *);
int mutt_extract_token (BUFFER *, BUFFER *, int);
BUFFER *mutt_buffer_init (BUFFER *);
-BUFFER *mutt_buffer_from (BUFFER *, char *);
+BUFFER *mutt_buffer_from (BUFFER *, const char *);
void mutt_buffer_free (BUFFER **);
void mutt_buffer_add (BUFFER *, const char *, size_t);
void mutt_buffer_addstr (BUFFER *, const char *);
void mutt_buffer_free (BUFFER **);
void mutt_buffer_add (BUFFER *, const char *, size_t);
void mutt_buffer_addstr (BUFFER *, const char *);
*thepid = mutt_create_filter (s, NULL, &f, NULL);
mem_free (&s);
} else {
*thepid = mutt_create_filter (s, NULL, &f, NULL);
mem_free (&s);
} else {
- struct stat st;
-
- if (stat (path, &st) < 0)
- return (NULL);
- if (S_ISDIR (st.st_mode)) {
- errno = EINVAL;
- return (NULL);
- }
new->value = str_dup (buffer);
new->value = str_dup (buffer);
- debug_print (2, ("`%s' = `%s'\n", new->attribute ? new->attribute : "",
+ debug_print (2, ("`%s' = `%s'\n", new->attribute ? new->attribute : "",
new->value ? new->value : ""));
/* Add this parameter to the list */
new->value ? new->value : ""));
/* Add this parameter to the list */
char scratch[SHORT_STRING];
/* Don't modify our argument. Fixed-size buffer is ok here since
char scratch[SHORT_STRING];
/* Don't modify our argument. Fixed-size buffer is ok here since
- * the date format imposes a natural limit.
+ * the date format imposes a natural limit.
*/
strfcpy (scratch, s, sizeof (scratch));
*/
strfcpy (scratch, s, sizeof (scratch));
if (hdr) {
hdr->lines = atoi (p);
if (hdr) {
hdr->lines = atoi (p);
* HACK - mutt has, for a very short time, produced negative
* HACK - mutt has, for a very short time, produced negative
- * Lines header values. Ignore them.
+ * Lines header values. Ignore them.
*/
if (hdr->lines < 0)
hdr->lines = 0;
*/
if (hdr->lines < 0)
hdr->lines = 0;
* f stream to read from
*
* hdr header structure of current message (optional).
* f stream to read from
*
* hdr header structure of current message (optional).
* user_hdrs If set, store user headers. Used for recall-message and
* postpone modes.
* user_hdrs If set, store user headers. Used for recall-message and
* postpone modes.
* weed If this parameter is set and the user has activated the
* $weed option, honor the header weed list for user headers.
* Used for recall-message.
* weed If this parameter is set and the user has activated the
* $weed option, honor the header weed list for user headers.
* Used for recall-message.
* Returns: newly allocated envelope structure. You should free it by
* mutt_free_envelope() when envelope stay unneeded.
*/
* Returns: newly allocated envelope structure. You should free it by
* mutt_free_envelope() when envelope stay unneeded.
*/
int count_body_parts_check(LIST **checklist, BODY *b, int dflt) {
LIST *type;
ATTACH_MATCH *a;
int count_body_parts_check(LIST **checklist, BODY *b, int dflt) {
LIST *type;
ATTACH_MATCH *a;
/* If list is null, use default behavior. */
if (! *checklist) {
/*return dflt;*/
return 0;
}
/* If list is null, use default behavior. */
if (! *checklist) {
/*return dflt;*/
return 0;
}
for (type = *checklist; type; type = type->next) {
a = (ATTACH_MATCH *)type->data;
debug_print(5, ("cbpc: %s %d/%s ?? %s/%s [%d]... ",
for (type = *checklist; type; type = type->next) {
a = (ATTACH_MATCH *)type->data;
debug_print(5, ("cbpc: %s %d/%s ?? %s/%s [%d]... ",
#define AT_COUNT(why) { shallcount = 1; }
#define AT_NOCOUNT(why) { shallcount = 0; }
#define AT_COUNT(why) { shallcount = 1; }
#define AT_NOCOUNT(why) { shallcount = 0; }
-int count_body_parts (BODY *body, int flags) {
+int count_body_parts (BODY *body, int flags) {
int count = 0;
int shallcount, shallrecurse;
BODY *bp;
int count = 0;
int shallcount, shallrecurse;
BODY *bp;
if (body == NULL)
return 0;
if (body == NULL)
return 0;
for (bp = body; bp != NULL; bp = bp->next) {
/* Initial disposition is to count and not to recurse this part. */
AT_COUNT("default");
shallrecurse = 0;
for (bp = body; bp != NULL; bp = bp->next) {
/* Initial disposition is to count and not to recurse this part. */
AT_COUNT("default");
shallrecurse = 0;
debug_print(5, ("bp: desc=\"%s\"; fn=\"%s\", type=\"%d/%s\"\n",
bp->description ? bp->description : ("none"),
bp->filename ? bp->filename :
bp->d_filename ? bp->d_filename : "(none)",
bp->type, bp->subtype ? bp->subtype : "*"));
debug_print(5, ("bp: desc=\"%s\"; fn=\"%s\", type=\"%d/%s\"\n",
bp->description ? bp->description : ("none"),
bp->filename ? bp->filename :
bp->d_filename ? bp->d_filename : "(none)",
bp->type, bp->subtype ? bp->subtype : "*"));
if (bp->type == TYPEMESSAGE) {
shallrecurse = 1;
if (bp->type == TYPEMESSAGE) {
shallrecurse = 1;
/* If it's an external body pointer, don't recurse it. */
if (!ascii_strcasecmp (bp->subtype, "external-body"))
shallrecurse = 0;
/* If it's an external body pointer, don't recurse it. */
if (!ascii_strcasecmp (bp->subtype, "external-body"))
shallrecurse = 0;
/* Don't count containers if they're top-level. */
if (flags & M_PARTS_TOPLEVEL)
AT_NOCOUNT("top-level message/*");
/* Don't count containers if they're top-level. */
if (flags & M_PARTS_TOPLEVEL)
AT_NOCOUNT("top-level message/*");
shallrecurse = 1;
if (!str_casecmp(bp->subtype, "alternative"))
shallrecurse = 0;
shallrecurse = 1;
if (!str_casecmp(bp->subtype, "alternative"))
shallrecurse = 0;
/* Don't count containers if they're top-level. */
if (flags & M_PARTS_TOPLEVEL)
AT_NOCOUNT("top-level multipart");
}
/* Don't count containers if they're top-level. */
if (flags & M_PARTS_TOPLEVEL)
AT_NOCOUNT("top-level multipart");
}
if (bp->disposition == DISPINLINE &&
bp->type != TYPEMULTIPART && bp->type != TYPEMESSAGE && bp == body)
AT_NOCOUNT("ignore fundamental inlines");
if (bp->disposition == DISPINLINE &&
bp->type != TYPEMULTIPART && bp->type != TYPEMESSAGE && bp == body)
AT_NOCOUNT("ignore fundamental inlines");
/* If this body isn't scheduled for enumeration already, don't bother
* profiling it further. */
/* If this body isn't scheduled for enumeration already, don't bother
* profiling it further. */
if (shallcount) {
/* Turn off shallcount if message type is not in ok list,
* or if it is in except list. Check is done separately for
if (shallcount) {
/* Turn off shallcount if message type is not in ok list,
* or if it is in except list. Check is done separately for
AT_NOCOUNT("excluded");
}
}
AT_NOCOUNT("excluded");
}
}
if (shallcount)
count++;
bp->attach_qualifies = shallcount ? 1 : 0;
if (shallcount)
count++;
bp->attach_qualifies = shallcount ? 1 : 0;
-
- debug_print(5, ("cbp: %08x shallcount = %d\n", (unsigned int)bp, shallcount));
-
+
+ debug_print(5, ("cbp: %p shallcount = %d\n", bp, shallcount));
+
- debug_print(5, ("cbp: %08x pre count = %d\n", (unsigned int)bp, count));
+ debug_print(5, ("cbp: %p pre count = %d\n", bp, count));
bp->attach_count = count_body_parts(bp->parts, flags & ~M_PARTS_TOPLEVEL);
count += bp->attach_count;
bp->attach_count = count_body_parts(bp->parts, flags & ~M_PARTS_TOPLEVEL);
count += bp->attach_count;
- debug_print(5, ("cbp: %08x post count = %d\n", (unsigned int)bp, count));
+ debug_print(5, ("cbp: %p post count = %d\n", bp, count));
debug_print(5, ("bp: return %d\n", count < 0 ? 0 : count));
return count < 0 ? 0 : count;
}
debug_print(5, ("bp: return %d\n", count < 0 ? 0 : count));
return count < 0 ? 0 : count;
}
return (0);
if (hdr->attach_valid && !(flags & M_PARTS_RECOUNT))
return hdr->attach_total;
return (0);
if (hdr->attach_valid && !(flags & M_PARTS_RECOUNT))
return hdr->attach_total;
if (AttachAllow || AttachExclude || InlineAllow || InlineExclude)
hdr->attach_total = count_body_parts(hdr->content, flags | M_PARTS_TOPLEVEL);
else
hdr->attach_total = 0;
if (AttachAllow || AttachExclude || InlineAllow || InlineExclude)
hdr->attach_total = count_body_parts(hdr->content, flags | M_PARTS_TOPLEVEL);
else
hdr->attach_total = 0;
hdr->attach_valid = 1;
return hdr->attach_total;
}
hdr->attach_valid = 1;
return hdr->attach_total;
}
'=', M_DUPLICATED, 0, NULL}, {
'$', M_UNREFERENCED, 0, NULL}, {
'*', M_REALNAME, 0, NULL}, {
'=', M_DUPLICATED, 0, NULL}, {
'$', M_UNREFERENCED, 0, NULL}, {
'*', M_REALNAME, 0, NULL}, {
};
static pattern_t *SearchPattern = NULL; /* current search pattern */
};
static pattern_t *SearchPattern = NULL; /* current search pattern */
{N_("Make Alias"), OP_CREATE_ALIAS},
{N_("Search"), OP_SEARCH},
{N_("Help"), OP_HELP},
{N_("Make Alias"), OP_CREATE_ALIAS},
{N_("Search"), OP_SEARCH},
{N_("Help"), OP_HELP},
};
/* Variables for outsizing output format */
};
/* Variables for outsizing output format */
{N_("Pipe"), OP_PIPE},
{N_("Print"), OP_PRINT},
{N_("Help"), OP_HELP},
{N_("Pipe"), OP_PIPE},
{N_("Print"), OP_PRINT},
{N_("Help"), OP_HELP},
};
static int mutt_extract_path (char *filename, char *path)
};
static int mutt_extract_path (char *filename, char *path)
-static int edit_address (ADDRESS ** a, /* const */ char *field)
+static int edit_address (ADDRESS ** a, const char *field)
{
char buf[HUGE_STRING];
char *err = NULL;
{
char buf[HUGE_STRING];
char *err = NULL;
char *pgpkeylist = NULL;
/* save current value of "pgp_sign_as" */
char *pgpkeylist = NULL;
/* save current value of "pgp_sign_as" */
- char *signas = NULL;
- char *tag = NULL, *err = NULL;
+ char *signas = NULL, *err = NULL;
+ const char *tag = NULL;
char *ctype;
int rv = -1;
char *ctype;
int rv = -1;
const char *elsestring,
unsigned long data, format_flag flags)
{
const char *elsestring,
unsigned long data, format_flag flags)
{
- char fmt[SHORT_STRING], tmp[SHORT_STRING], *cp, *p;
+ char fmt[SHORT_STRING], tmp[SHORT_STRING];
+ const char *cp, *p;
int count, optional = (flags & M_FORMAT_OPTIONAL);
MUTTMENU *menu = (MUTTMENU *) data;
int count, optional = (flags & M_FORMAT_OPTIONAL);
MUTTMENU *menu = (MUTTMENU *) data;