[rtems commit] score: Simplify _Objects_Name_to_string()

Sebastian Huber sebh at rtems.org
Tue Jun 5 07:12:51 UTC 2018


Module:    rtems
Branch:    master
Commit:    b8774933223f0573833c6ee0f668e0fea0fc8fbc
Changeset: http://git.rtems.org/rtems/commit/?id=b8774933223f0573833c6ee0f668e0fea0fc8fbc

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri May 25 14:12:22 2018 +0200

score: Simplify _Objects_Name_to_string()

Do not use isprint() from <ctype.h> since it depends on the heavy weight
C locale implementation in Newlib.

---

 cpukit/score/src/objectgetnameasstring.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/cpukit/score/src/objectgetnameasstring.c b/cpukit/score/src/objectgetnameasstring.c
index 7a6177a..f23b159 100644
--- a/cpukit/score/src/objectgetnameasstring.c
+++ b/cpukit/score/src/objectgetnameasstring.c
@@ -21,7 +21,17 @@
 
 #include <rtems/score/threadimpl.h>
 
-#include <ctype.h>
+/*
+ * Do not use isprint() from <ctypes.h> since this depends on the heavy weight
+ * C locale support of Newlib.
+ */
+static bool _Objects_Name_char_is_printable( char c )
+{
+  unsigned char uc;
+
+  uc = (unsigned char) c;
+  return uc >= ' ' && uc <= '~';
+}
 
 size_t _Objects_Name_to_string(
   Objects_Name  name,
@@ -55,7 +65,7 @@ size_t _Objects_Name_to_string(
   if ( s != NULL ) {
     while ( *s != '\0' ) {
       if ( i < buffer_size ) {
-        *d = isprint((unsigned char) *s) ? *s : '*';
+        *d = _Objects_Name_char_is_printable(*s) ? *s : '*';
         ++d;
       }
 



More information about the vc mailing list