OSDN Git Service

Define strdupa if it is not defined
authorChih-Wei Huang <cwhuang@linux.org.tw>
Thu, 10 Jan 2019 08:44:38 +0000 (16:44 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Thu, 10 Jan 2019 08:44:38 +0000 (16:44 +0800)
Android does not include strdupa in <string.h>. Define strdupa if it has
not already been defined.

Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
src/util.h

index ba8fee3..d42baf4 100644 (file)
@@ -252,6 +252,17 @@ lcm(uint64_t x, uint64_t y)
         return (x / n) * y;
 }
 
+#ifndef strdupa
+#define strdupa(s)                                                      \
+       (__extension__ ({                                                \
+                const char *__in = (s);                                 \
+                size_t __len = strlen (__in);                           \
+                char *__out = (char *) alloca (__len + 1);              \
+                strcpy(__out, __in);                                    \
+                __out;                                                  \
+        }))
+#endif
+
 #ifndef strndupa
 #define strndupa(s, l)                                                  \
        (__extension__ ({                                                \