# include "config.h"
#endif
+#include <lib-lib/mem.h>
+#include <lib-lib/str.h>
+#include <lib-lib/macros.h>
+#include <lib-lib/file.h>
+#include <lib-lib/mapping.h>
+
#include "mutt.h"
#include "mutt_menu.h"
#include "mutt_idna.h"
-#include "mapping.h"
#include "sort.h"
-#include "lib/mem.h"
-#include "lib/intl.h"
-#include "lib/str.h"
#include "lib/debug.h"
#include <string.h>
#include <ctype.h>
typedef struct query {
- ADDRESS *addr;
+ address_t *addr;
char *name;
char *other;
struct query *next;
{N_("Make Alias"), OP_CREATE_ALIAS},
{N_("Search"), OP_SEARCH},
{N_("Help"), OP_HELP},
- {NULL}
+ {NULL, OP_NULL}
};
/* Variables for outsizing output format */
static void query_menu (char *buf, size_t buflen, QUERY * results,
int retbuf);
-static ADDRESS *result_to_addr (QUERY * r)
+static address_t *result_to_addr (QUERY * r)
{
- static ADDRESS *tmp;
+ static address_t *tmp;
- tmp = rfc822_cpy_adr (r->addr);
+ tmp = address_list_dup (r->addr);
if (!tmp->next && !tmp->personal)
- tmp->personal = str_dup (r->name);
+ tmp->personal = m_strdup(r->name);
mutt_addrlist_to_idna (tmp, NULL);
return tmp;
if (first == NULL) {
FirstColumn = 0;
SecondColumn = 0;
- first = (QUERY *) safe_calloc (1, sizeof (QUERY));
+ first = p_new(QUERY, 1);
cur = first;
}
else {
- cur->next = (QUERY *) safe_calloc (1, sizeof (QUERY));
+ cur->next = p_new(QUERY, 1);
cur = cur->next;
}
l = mutt_strwidth (p);
if (l > FirstColumn)
FirstColumn = l;
- cur->name = str_dup (p);
+ cur->name = m_strdup(p);
p = strtok (NULL, "\t\n");
if (p) {
- cur->other = str_dup (p);
+ cur->other = m_strdup(p);
}
}
}
}
- FREE (&buf);
+ p_delete(&buf);
fclose (fp);
if (mutt_wait_filter (thepid)) {
debug_print (1, ("Error: %s\n", msg));
mutt_format_string (buf2, sizeof (buf2),
FirstColumn + 2, FirstColumn + 2,
0, ' ', table[num].data->name,
- str_len (table[num].data->name), 0);
+ m_strlen(table[num].data->name), 0);
snprintf (s, slen, " %c %3d %s %-*.*s %s",
table[num].tagged ? '*' : ' ',
int mutt_query_complete (char *buf, size_t buflen)
{
QUERY *results = NULL;
- ADDRESS *tmpa;
+ address_t *tmpa;
if (!QueryCmd) {
mutt_error _("Query command not defined.");
mutt_addrlist_to_local (tmpa);
buf[0] = '\0';
rfc822_write_address (buf, buflen, tmpa, 0);
- rfc822_free_address (&tmpa);
+ address_delete (&tmpa);
mutt_clear_error ();
return (0);
}
for (queryp = results; queryp; queryp = queryp->next)
menu->max++;
- menu->data = QueryTable =
- (ENTRY *) safe_calloc (menu->max, sizeof (ENTRY));
+ menu->data = QueryTable = p_new(ENTRY, menu->max);
for (i = 0, queryp = results; queryp; queryp = queryp->next, i++)
QueryTable[i].data = queryp;
if (op == OP_QUERY) {
queryp = results;
while (queryp) {
- rfc822_free_address (&queryp->addr);
- FREE (&queryp->name);
- FREE (&queryp->other);
+ address_delete (&queryp->addr);
+ p_delete(&queryp->name);
+ p_delete(&queryp->other);
results = queryp->next;
- FREE (&queryp);
+ p_delete(&queryp);
queryp = results;
}
results = newresults;
- FREE (&QueryTable);
+ p_delete(&QueryTable);
}
else {
/* append */
menu->max++;
if (op == OP_QUERY) {
- menu->data = QueryTable =
- (ENTRY *) safe_calloc (menu->max, sizeof (ENTRY));
+ menu->data = QueryTable = p_new(ENTRY, menu->max);
for (i = 0, queryp = results; queryp;
queryp = queryp->next, i++)
int clear = 0;
/* append */
- safe_realloc (&QueryTable, menu->max * sizeof (ENTRY));
+ p_realloc(&QueryTable, menu->max);
menu->data = QueryTable;
case OP_CREATE_ALIAS:
if (menu->tagprefix) {
- ADDRESS *naddr = NULL;
+ address_t *naddr = NULL;
for (i = 0; i < menu->max; i++)
if (QueryTable[i].tagged) {
- ADDRESS *a = result_to_addr (QueryTable[i].data);
-
- rfc822_append (&naddr, a);
- rfc822_free_address (&a);
+ address_list_append(&naddr, result_to_addr(QueryTable[i].data));
}
mutt_create_alias (NULL, naddr);
}
else {
- ADDRESS *a = result_to_addr (QueryTable[menu->current].data);
+ address_t *a = result_to_addr (QueryTable[menu->current].data);
mutt_create_alias (NULL, a);
- rfc822_free_address (&a);
+ address_delete (&a);
}
break;
else {
for (i = 0; i < menu->max; i++)
if (QueryTable[i].tagged) {
- ADDRESS *a = result_to_addr (QueryTable[i].data);
-
- rfc822_append (&msg->env->to, a);
- rfc822_free_address (&a);
+ address_list_append(&msg->env->to, result_to_addr(QueryTable[i].data));
}
}
ci_send_message (0, msg, NULL, Context, NULL);
int tagged = 0;
size_t curpos = 0;
- memset (buf, 0, buflen);
+ p_clear(buf, buflen);
/* check for tagged entries */
for (i = 0; i < menu->max; i++) {
if (QueryTable[i].tagged) {
if (curpos == 0) {
- ADDRESS *tmpa = result_to_addr (QueryTable[i].data);
+ address_t *tmpa = result_to_addr (QueryTable[i].data);
mutt_addrlist_to_local (tmpa);
tagged = 1;
rfc822_write_address (buf, buflen, tmpa, 0);
- curpos = str_len (buf);
- rfc822_free_address (&tmpa);
+ curpos = m_strlen(buf);
+ address_delete (&tmpa);
}
else if (curpos + 2 < buflen) {
- ADDRESS *tmpa = result_to_addr (QueryTable[i].data);
+ address_t *tmpa = result_to_addr (QueryTable[i].data);
mutt_addrlist_to_local (tmpa);
strcat (buf, ", "); /* __STRCAT_CHECKED__ */
rfc822_write_address ((char *) buf + curpos + 1,
buflen - curpos - 1, tmpa, 0);
- curpos = str_len (buf);
- rfc822_free_address (&tmpa);
+ curpos = m_strlen(buf);
+ address_delete (&tmpa);
}
}
}
/* then enter current message */
if (!tagged) {
- ADDRESS *tmpa = result_to_addr (QueryTable[menu->current].data);
+ address_t *tmpa = result_to_addr (QueryTable[menu->current].data);
mutt_addrlist_to_local (tmpa);
rfc822_write_address (buf, buflen, tmpa, 0);
- rfc822_free_address (&tmpa);
+ address_delete (&tmpa);
}
}
queryp = results;
while (queryp) {
- rfc822_free_address (&queryp->addr);
- FREE (&queryp->name);
- FREE (&queryp->other);
+ address_delete (&queryp->addr);
+ p_delete(&queryp->name);
+ p_delete(&queryp->other);
results = queryp->next;
- FREE (&queryp);
+ p_delete(&queryp);
queryp = results;
}
- FREE (&QueryTable);
+ p_delete(&QueryTable);
/* tell whoever called me to redraw the screen when I return */
set_option (OPTNEEDREDRAW);