From 40513d77ab8e30c0599c0641dcdaf838d0fea83e 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: svn://svn.code.sf.net/p/nuttx/code/trunk@276 42af7a65-404d-4744-a932-0658087f49c3 --- ChangeLog | 2 ++ Documentation/NuttX.html | 2 ++ tools/mkconfig.c | 18 ++++++++++++------ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index d5f148c2c7a..c02857e72c4 100644 --- a/ChangeLog +++ b/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/Documentation/NuttX.html b/Documentation/NuttX.html index 32ce071ba8a..1adab64be5b 100644 --- a/Documentation/NuttX.html +++ b/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/tools/mkconfig.c b/tools/mkconfig.c index b9c91598c60..20611ff1e58 100644 --- a/tools/mkconfig.c +++ b/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); }