From 296508794205c6524bcf6c606d14f54488725796 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 9 Jun 2007 19:45:33 +0000 Subject: [PATCH] No longer uses _GNU_SOURCE-specific asprintf() git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@276 7fd9a85b-ad96-42d3-883c-3090e2eb8679 --- nuttx/ChangeLog | 2 ++ nuttx/Documentation/NuttX.html | 2 ++ nuttx/tools/mkconfig.c | 18 ++++++++++++------ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index d5f148c2c..c02857e72 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -169,5 +169,7 @@ * Restructured some Makefiles to better handle enabling and disabling NuttX features without having so much conditional compilation in the source files. + * tools/mkconfig.c: No long depends on asprintf() and _GNU_SOURCE and + so should now build in non-GNU, non-GLIBC environments. * Started m68322 diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html index 32ce071ba..1adab64be 100644 --- a/nuttx/Documentation/NuttX.html +++ b/nuttx/Documentation/NuttX.html @@ -603,6 +603,8 @@ Other memory: * Restructured some Makefiles to better handle enabling and disabling NuttX features without having so much conditional compilation in the source files. + * tools/mkconfig.c: No long depends on asprintf() and _GNU_SOURCE and + so should now build in non-GNU, non-GLIBC environments. * Started m68322 diff --git a/nuttx/tools/mkconfig.c b/nuttx/tools/mkconfig.c index b9c91598c..20611ff1e 100644 --- a/nuttx/tools/mkconfig.c +++ b/nuttx/tools/mkconfig.c @@ -33,16 +33,16 @@ * ************************************************************/ -#define _GNU_SOURCE #include #include #include +#include #include #include #include #define DEFCONFIG ".config" -#define LINESIZE 256 +#define LINESIZE ( PATH_MAX > 256 ? PATH_MAX : 256 ) static char line[LINESIZE+1]; @@ -154,6 +154,13 @@ static void parse_file(FILE *stream) while (ptr); } +static inline char *getfilepath(const char *name) +{ + snprintf(line, PATH_MAX, "%s/" DEFCONFIG, name); + line[PATH_MAX] = '\0'; + return strdup(line); +} + static void show_usage(const char *progname) { fprintf(stderr, "USAGE: %s \n", progname); @@ -164,7 +171,6 @@ int main(int argc, char **argv, char **envp) { char *filepath; FILE *stream; - int status; if (argc != 2) { @@ -172,10 +178,10 @@ int main(int argc, char **argv, char **envp) show_usage(argv[0]); } - status = asprintf(&filepath, "%s/" DEFCONFIG, argv[1]); - if (status < 0) + filepath = getfilepath(argv[1]); + if (!filepath) { - fprintf(stderr, "asprintf failed\n"); + fprintf(stderr, "getfilepath failed\n"); exit(2); }