#include "lib.h"
+#include "lib/mem.h"
+#include "lib/str.h"
+
extern short Umask;
void mutt_nocurses_error (const char *fmt, ...)
fputc ('\n', stderr);
}
-void *safe_calloc (size_t nmemb, size_t size)
-{
- void *p;
-
- if (!nmemb || !size)
- return NULL;
-
- if (((size_t) - 1) / nmemb <= size) {
- mutt_error _("Integer overflow -- can't allocate memory!");
-
- sleep (1);
- mutt_exit (1);
- }
-
- if (!(p = calloc (nmemb, size))) {
- mutt_error _("Out of memory!");
-
- sleep (1);
- mutt_exit (1);
- }
- return p;
-}
-
-void *safe_malloc (size_t siz)
-{
- void *p;
-
- if (siz == 0)
- return 0;
- if ((p = (void *) malloc (siz)) == 0) { /* __MEM_CHECKED__ */
- mutt_error _("Out of memory!");
-
- sleep (1);
- mutt_exit (1);
- }
- return (p);
-}
-
-void safe_realloc (void *ptr, size_t siz)
-{
- void *r;
- void **p = (void **) ptr;
-
- if (siz == 0) {
- if (*p) {
- free (*p); /* __MEM_CHECKED__ */
- *p = NULL;
- }
- return;
- }
-
- if (*p)
- r = (void *) realloc (*p, siz); /* __MEM_CHECKED__ */
- else {
- /* realloc(NULL, nbytes) doesn't seem to work under SunOS 4.1.x --- __MEM_CHECKED__ */
- r = (void *) malloc (siz); /* __MEM_CHECKED__ */
- }
-
- if (!r) {
- mutt_error _("Out of memory!");
-
- sleep (1);
- mutt_exit (1);
- }
-
- *p = r;
-}
-
-void safe_free (void *ptr)
-{
- void **p = (void **) ptr;
-
- if (*p) {
- free (*p); /* __MEM_CHECKED__ */
- *p = 0;
- }
-}
-
int safe_fclose (FILE ** f)
{
int r = 0;
if (!s || !*s)
return 0;
- l = strlen (s) + 1;
+ l = mutt_strlen (s) + 1;
p = (char *) safe_malloc (l);
memcpy (p, s, l);
return (p);
{
if (!p || !*p)
return;
- safe_realloc (p, strlen (*p) + 1);
+ safe_realloc (p, mutt_strlen (*p) + 1);
}
/* convert all characters in the string to lowercase */
char abs_oldpath[_POSIX_PATH_MAX];
if ((getcwd (abs_oldpath, sizeof abs_oldpath) == NULL) ||
- (strlen (abs_oldpath) + 1 + strlen (oldpath) + 1 >
+ (mutt_strlen (abs_oldpath) + 1 + mutt_strlen (oldpath) + 1 >
sizeof abs_oldpath))
return -1;
if (end)
len = end - begin;
else
- len = strlen (begin);
+ len = mutt_strlen (begin);
p = safe_malloc (len + 1);
memcpy (p, begin, len);
{
const char *fmt = "%s/%s";
- if (!*fname || (*dir && dir[strlen (dir) - 1] == '/'))
+ if (!*fname || (*dir && dir[mutt_strlen (dir) - 1] == '/'))
fmt = "%s%s";
snprintf (d, l, fmt, dir, fname);