#endif
#include "mutt.h"
+#include "ascii.h"
#include "rfc1524.h"
+#include "attach.h"
+
+#include "lib/mem.h"
+#include "lib/intl.h"
+#include "lib/str.h"
+#include "lib/debug.h"
#include <string.h>
#include <stdlib.h>
break;
}
}
- mutt_remove_trailing_ws (s);
+ str_skip_trailws (s);
return ch;
}
static int get_field_text (char *field, char **entry,
char *type, char *filename, int line)
{
- field = mutt_skip_whitespace (field);
+ field = str_skip_initws (field);
if (*field == '=') {
if (entry) {
field++;
- field = mutt_skip_whitespace (field);
- mutt_str_replace (entry, field);
+ field = str_skip_initws (field);
+ str_replace (entry, field);
}
return 1;
}
/* ignore comments */
if (*buf == '#')
continue;
- dprint (2, (debugfile, "mailcap entry: %s\n", buf));
+ debug_print (2, ("mailcap entry: %s\n", buf));
/* check type */
ch = get_field (buf);
if (ascii_strcasecmp (buf, type) && (ascii_strncasecmp (buf, type, btlen) || (buf[btlen] != 0 && /* implicit wild */
- mutt_strcmp (buf + btlen, "/*")))) /* wildsubtype */
+ str_cmp (buf + btlen, "/*")))) /* wildsubtype */
continue;
/* next field is the viewcommand */
field = ch;
ch = get_field (ch);
if (entry)
- entry->command = safe_strdup (field);
+ entry->command = str_dup (field);
/* parse the optional fields */
found = TRUE;
while (ch) {
field = ch;
ch = get_field (ch);
- dprint (2, (debugfile, "field: %s\n", field));
+ debug_print (2, ("field: %s\n", field));
if (!ascii_strcasecmp (field, "needsterminal")) {
if (entry)
if (get_field_text (field + 4, &test_command, type, filename, line)
&& test_command) {
- len = mutt_strlen (test_command) + STRING;
- safe_realloc (&test_command, len);
+ len = str_len (test_command) + STRING;
+ mem_realloc (&test_command, len);
rfc1524_expand_command (a, a->filename, type, test_command, len);
if (mutt_system (test_command)) {
/* a non-zero exit code means test failed */
found = FALSE;
}
- FREE (&test_command);
+ mem_free (&test_command);
}
}
} /* while (ch) */
if (!found) {
/* reset */
if (entry) {
- FREE (&entry->command);
- FREE (&entry->composecommand);
- FREE (&entry->composetypecommand);
- FREE (&entry->editcommand);
- FREE (&entry->printcommand);
- FREE (&entry->nametemplate);
- FREE (&entry->convert);
+ mem_free (&entry->command);
+ mem_free (&entry->composecommand);
+ mem_free (&entry->composetypecommand);
+ mem_free (&entry->editcommand);
+ mem_free (&entry->printcommand);
+ mem_free (&entry->nametemplate);
+ mem_free (&entry->convert);
entry->needsterminal = 0;
entry->copiousoutput = 0;
}
} /* while (!found && (buf = mutt_read_line ())) */
fclose (fp);
} /* if ((fp = fopen ())) */
- FREE (&buf);
+ mem_free (&buf);
return found;
}
rfc1524_entry *rfc1524_new_entry (void)
{
- return (rfc1524_entry *) safe_calloc (1, sizeof (rfc1524_entry));
+ return (rfc1524_entry *) mem_calloc (1, sizeof (rfc1524_entry));
}
void rfc1524_free_entry (rfc1524_entry ** entry)
{
rfc1524_entry *p = *entry;
- FREE (&p->command);
- FREE (&p->testcommand);
- FREE (&p->composecommand);
- FREE (&p->composetypecommand);
- FREE (&p->editcommand);
- FREE (&p->printcommand);
- FREE (&p->nametemplate);
- FREE (entry);
+ mem_free (&p->command);
+ mem_free (&p->testcommand);
+ mem_free (&p->composecommand);
+ mem_free (&p->composetypecommand);
+ mem_free (&p->editcommand);
+ mem_free (&p->printcommand);
+ mem_free (&p->nametemplate);
+ mem_free (entry);
}
/*
path[x] = '\0';
mutt_expand_path (path, sizeof (path));
- dprint (2, (debugfile, "Checking mailcap file: %s\n", path));
+ debug_print (2, ("Checking mailcap file: %s\n", path));
found = rfc1524_mailcap_parse (a, path, type, entry, opt);
}
rmatch = 1;
- for (r = 0, j = mutt_strlen (oldfile) - 1, k =
- mutt_strlen (nametemplate) - 1;
+ for (r = 0, j = str_len (oldfile) - 1, k =
+ str_len (nametemplate) - 1;
j >= (lmatch ? i : 0) && k >= i + 2; j--, k--) {
if (nametemplate[k] != oldfile[j]) {
rmatch = 0;
}
}
- mutt_adv_mktemp (newfile, nflen);
+ mutt_adv_mktemp (NULL, newfile, nflen);
if (rmatch && lmatch)
return 0;