Fix spelling errors.
[tinc] / src / xalloc.h
index 42d0d95..d9877a8 100644 (file)
@@ -1,7 +1,10 @@
+#ifndef TINC_XALLOC_H
+#define TINC_XALLOC_H
+
 /*
 /*
-   xalloc.h -- malloc and related fuctions with out of memory checking
+   xalloc.h -- malloc and related functions with out of memory checking
    Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
    Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
-   Copyright (C) 2011 Guus Sliepen <guus@tinc-vpn.org>
+   Copyright (C) 2011-2013 Guus Sliepen <guus@tinc-vpn.org>
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc., Foundation,
 
    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc., Foundation,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.  */
-
-#ifndef __TINC_XALLOC_H__
-#define __TINC_XALLOC_H__
+   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
 
 
+static inline void *xmalloc(size_t n) __attribute__((__malloc__));
 static inline void *xmalloc(size_t n) {
        void *p = malloc(n);
 static inline void *xmalloc(size_t n) {
        void *p = malloc(n);
-       if(!p)
+
+       if(!p) {
                abort();
                abort();
+       }
+
        return p;
 }
 
        return p;
 }
 
-static inline void *xmalloc_and_zero(size_t n) {
+static inline void *xzalloc(size_t n) __attribute__((__malloc__));
+static inline void *xzalloc(size_t n) {
        void *p = calloc(1, n);
        void *p = calloc(1, n);
-       if(!p)
+
+       if(!p) {
                abort();
                abort();
+       }
+
        return p;
 }
 
 static inline void *xrealloc(void *p, size_t n) {
        p = realloc(p, n);
        return p;
 }
 
 static inline void *xrealloc(void *p, size_t n) {
        p = realloc(p, n);
-       if(!p)
+
+       if(!p) {
                abort();
                abort();
+       }
+
        return p;
 }
 
        return p;
 }
 
+static inline char *xstrdup(const char *s) __attribute__((__malloc__, __nonnull__));
 static inline char *xstrdup(const char *s) {
        char *p = strdup(s);
 static inline char *xstrdup(const char *s) {
        char *p = strdup(s);
-       if(!p)
+
+       if(!p) {
                abort();
                abort();
+       }
+
        return p;
 }
 
 static inline int xvasprintf(char **strp, const char *fmt, va_list ap) {
        return p;
 }
 
 static inline int xvasprintf(char **strp, const char *fmt, va_list ap) {
+#ifdef HAVE_MINGW
+       char buf[1024];
+       int result = vsnprintf(buf, sizeof(buf), fmt, ap);
+
+       if(result < 0) {
+               abort();
+       }
+
+       *strp = xstrdup(buf);
+#else
        int result = vasprintf(strp, fmt, ap);
        int result = vasprintf(strp, fmt, ap);
-       if(result < 0)
+
+       if(result < 0) {
                abort();
                abort();
+       }
+
+#endif
        return result;
 }
 
        return result;
 }
 
+static inline int xasprintf(char **strp, const char *fmt, ...) __attribute__((__format__(printf, 2, 3)));
 static inline int xasprintf(char **strp, const char *fmt, ...) {
        va_list ap;
        va_start(ap, fmt);
 static inline int xasprintf(char **strp, const char *fmt, ...) {
        va_list ap;
        va_start(ap, fmt);