*p = 0;
}
-LIST *mutt_add_list (LIST * head, const char *data)
-{
+LIST *mutt_add_list (LIST * head, const char *data) {
+ size_t len = mutt_strlen (data);
+ return (mutt_add_list_n (head, data, len ? len + 1 : 0));
+}
+
+LIST *mutt_add_list_n (LIST *head, const void *data, size_t len) {
LIST *tmp;
for (tmp = head; tmp && tmp->next; tmp = tmp->next);
+
if (tmp) {
tmp->next = safe_malloc (sizeof (LIST));
tmp = tmp->next;
- }
- else
+ } else
head = tmp = safe_malloc (sizeof (LIST));
- tmp->data = safe_strdup (data);
+ tmp->data = safe_malloc (len);
+ if (len)
+ memcpy (tmp->data, data, len);
tmp->next = NULL;
return head;
}
}
#endif
- if (stat (s, st) != -1) {
- if (magic == -1) {
- mutt_error (_("%s is not a mailbox!"), s);
- return 1;
- }
-
+ if (magic > 0 && !mx_access (s, W_OK)) {
if (option (OPTCONFIRMAPPEND) &&
- (!TrashPath || (mutt_strcmp (s, TrashPath) != 0)))
+ (!TrashPath || (mutt_strcmp (s, TrashPath) != 0))) {
/* if we're appending to the trash, there's no point in asking */
- {
snprintf (tmp, sizeof (tmp), _("Append messages to %s?"), s);
if ((rc = mutt_yesorno (tmp, M_YES)) == M_NO)
ret = 1;
ret = -1;
}
}
+
+ if (stat (s, st) != -1) {
+ if (magic == -1) {
+ mutt_error (_("%s is not a mailbox!"), s);
+ return 1;
+ }
+ }
else {
#ifdef USE_IMAP
if (magic != M_IMAP)