From 0924661c3e041468c72aec1294f429fe3f7ae8bc Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 28 Aug 2012 19:01:14 +0000 Subject: [PATCH] Add perror() git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5061 42af7a65-404d-4744-a932-0658087f49c3 --- ChangeLog.txt | 4 ++-- nshlib/Kconfig | 3 +++ nshlib/README.txt | 4 +++- nshlib/nsh.h | 7 ++++++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 361fb97dc..e5c0b33a5 100755 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -289,5 +289,5 @@ threds to no more than 3 of each priority. Bad things happen when the existing logic tried to created several hundred test treads! - - + * apps/nshlib/nsh.h: Both CONFIG_LIBC_STRERROR and CONFIG_NSH_STRERROR + must be defined to use strerror() with NSH. diff --git a/nshlib/Kconfig b/nshlib/Kconfig index 7e419bdde..ff692f43b 100644 --- a/nshlib/Kconfig +++ b/nshlib/Kconfig @@ -148,9 +148,12 @@ config NSH_FILEIOSIZE config NSH_STRERROR bool "Use strerror()" default n + depends on LIBC_STRERROR ---help--- strerror(errno) makes more readable output but strerror() is very large and will not be used unless this setting is 'y' + This setting depends upon the strerror() having been enabled + with LIBC_STRERROR. config NSH_LINELEN int "Max command line length" diff --git a/nshlib/README.txt b/nshlib/README.txt index d8edd8969..0f6aee759 100644 --- a/nshlib/README.txt +++ b/nshlib/README.txt @@ -915,7 +915,9 @@ NSH-Specific Configuration Settings * CONFIG_NSH_STRERROR strerror(errno) makes more readable output but strerror() is - very large and will not be used unless this setting is 'y' + very large and will not be used unless this setting is 'y'. + This setting depends upon the strerror() having been enabled + with CONFIG_LIBC_STRERROR. * CONFIG_NSH_LINELEN The maximum length of one command line and of one output line. diff --git a/nshlib/nsh.h b/nshlib/nsh.h index 439c2ffd1..dac91ba05 100644 --- a/nshlib/nsh.h +++ b/nshlib/nsh.h @@ -238,9 +238,14 @@ #define NSH_MAX_ARGUMENTS 6 /* strerror() produces much nicer output but is, however, quite large and - * will only be used if CONFIG_NSH_STRERROR is defined. + * will only be used if CONFIG_NSH_STRERROR is defined. Note that the strerror + * interface must also have been enabled with CONFIG_LIBC_STRERROR. */ +#ifndef CONFIG_LIBC_STRERROR +# undef CONFIG_NSH_STRERROR +#endif + #ifdef CONFIG_NSH_STRERROR # define NSH_ERRNO strerror(errno) # define NSH_ERRNO_OF(err) strerror(err)