Portability patch from rfelker. The bb_asprintf.c thing needs an eventual
authorRob Landley <rob@landley.net>
Thu, 9 Mar 2006 22:21:20 +0000 (22:21 -0000)
committerRob Landley <rob@landley.net>
Thu, 9 Mar 2006 22:21:20 +0000 (22:21 -0000)
follow up in platform.h to set the #ifdef, but the workaround works for
everybody, so...

editors/sed.c
include/inet_common.h
include/libbb.h
libbb/bb_asprintf.c

index 93d3f89d1d40b1ea8203f792a30b259aadce9a0e..44e86e24565b8a39ef894c0e463a05dae87ddbec 100644 (file)
@@ -434,7 +434,7 @@ static char *parse_cmd_args(sed_cmd_t *sed_cmd, char *cmdstr)
                while(isspace(*cmdstr)) cmdstr++;
                length = strcspn(cmdstr, semicolon_whitespace);
                if (length) {
-                       sed_cmd->string = strndup(cmdstr, length);
+                       sed_cmd->string = bb_xstrndup(cmdstr, length);
                        cmdstr += length;
                }
        }
index afea5deaa4d751ee071ba29336b140703c4f2804..f330aa90fd33c15fe70d255fad1874dcf6b071aa 100644 (file)
@@ -11,7 +11,7 @@
 #include <features.h>
 #include <sys/types.h>
 #include <sys/socket.h>
-#include <arpa/inet.h>
+#include <netinet/in.h>
 
 
 extern const char bb_INET_default[];    /* = "default" */
index bc3fa59908be126d062ba4bcb5daebb66ad83de0..0490ee35f59a3c58eb7d6079b61e72589a98cf52 100644 (file)
@@ -20,6 +20,7 @@
 #include <stdint.h>
 
 #include <netdb.h>
+#include <netinet/in.h>
 
 #include <features.h>
 
index 8658a54087e84411c67416bfb6854ec1ff8b3b44..191417a2dff63277ccb7373f834a58d4b175eaf4 100644 (file)
@@ -13,9 +13,19 @@ char *bb_xasprintf(const char *format, ...)
        int r;
        char *string_ptr;
 
+#ifdef HAVE_GNU_EXTENSIONS
        va_start(p, format);
        r = vasprintf(&string_ptr, format, p);
        va_end(p);
+#else
+       va_start(p, format);
+       r = vsnprintf(NULL, 0, format, p);
+       va_end(p);
+       string_ptr = xmalloc(r+1);
+       va_start(p, format);
+       r = vsnprintf(string_ptr, r+1, format, p);
+       va_end(p);
+#endif
 
        if (r < 0) {
                bb_perror_msg_and_die("bb_xasprintf");