string.h handling (OSX)
authorClaus Gittinger <cg@exept.de>
Fri, 19 Jan 2018 16:02:39 +0100
changeset 22491 e3e465028518
parent 22490 baf93496672d
child 22492 62a273a6d887
string.h handling (OSX)
Character.st
Float.st
LongFloat.st
Make.spec
OSXOperatingSystem.st
ReadStream.st
SHA1Stream.st
ShortFloat.st
String.st
UnixOperatingSystem.st
--- a/Character.st	Fri Jan 19 15:06:27 2018 +0100
+++ b/Character.st	Fri Jan 19 16:02:39 2018 +0100
@@ -2268,7 +2268,7 @@
 	    if (lowByte == 0xF1) { RETURN (false); }
 	    if (lowByte == 0xC0) { RETURN (false); }
 	    if (lowByte == 0xF0) { RETURN (false); }
-	    if (((lowByte & 0x000F) >= 0x0000) && ((lowByte & 0x000F) <= 0x0007)) { RETURN (true); }
+	    if ((lowByte & 0x000F) <= 0x0007) { RETURN (true); }
 	    RETURN (false);
 
 	case 0x20:
--- a/Float.st	Fri Jan 19 15:06:27 2018 +0100
+++ b/Float.st	Fri Jan 19 16:02:39 2018 +0100
@@ -156,7 +156,10 @@
 # define NO_ATANH
 
 # ifdef __MINGW__
-#  include <string.h>
+#  ifndef _STRING_H_INCLUDED_
+#   include <string.h>
+#   define _STRING_H_INCLUDED_
+#  endif
 # endif
 
 #endif /* __win32__ */
--- a/LongFloat.st	Fri Jan 19 15:06:27 2018 +0100
+++ b/LongFloat.st	Fri Jan 19 16:02:39 2018 +0100
@@ -104,11 +104,14 @@
 # define NO_ATANH
 
 # ifdef __MINGW__
-#  include <string.h>
-
-// sigh: the default ming setup uses the microsoft printf,
-// which does not support long doubles
-# define snprintf  __mingw_snprintf
+#  ifndef _STRING_H_INCLUDED_
+#   include <string.h>
+#   define _STRING_H_INCLUDED_
+#  endif
+
+   // sigh: the default ming setup uses the microsoft printf,
+   // which does not support long doubles
+#  define snprintf  __mingw_snprintf
 # endif /* __MINGW__ */
 
 #endif /* __win32__ */
--- a/Make.spec	Fri Jan 19 15:06:27 2018 +0100
+++ b/Make.spec	Fri Jan 19 16:02:39 2018 +0100
@@ -154,10 +154,10 @@
 	Association \
 	Block \
 	CascadingNotification \
+	CharacterEncoderImplementations::TwoByteEncoder \
 	CharacterEncoderImplementations::ISO10646_to_UTF16BE \
 	CharacterEncoderImplementations::ISO10646_to_UTF8 \
 	CharacterEncoderImplementations::SingleByteEncoder \
-	CharacterEncoderImplementations::TwoByteEncoder \
 	ClassDescription \
 	Complex \
 	ControlRequest \
@@ -233,6 +233,7 @@
 	CharacterEncoderImplementations::MS_Hebrew \
 	CharacterEncoderImplementations::MS_Symbol \
 	CharacterEncoderImplementations::MS_Turkish \
+	CharacterEncoderImplementations::ISO10646_1 \
 	CheapBlock \
 	CmdLineOptionError \
 	Fraction \
@@ -548,10 +549,10 @@
     $(OUTDIR)Association.$(O) \
     $(OUTDIR)Block.$(O) \
     $(OUTDIR)CascadingNotification.$(O) \
+    $(OUTDIR)CharacterEncoderImplementations__TwoByteEncoder.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__ISO10646_to_UTF16BE.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__ISO10646_to_UTF8.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__SingleByteEncoder.$(O) \
-    $(OUTDIR)CharacterEncoderImplementations__TwoByteEncoder.$(O) \
     $(OUTDIR)ClassDescription.$(O) \
     $(OUTDIR)Complex.$(O) \
     $(OUTDIR)ControlRequest.$(O) \
@@ -627,6 +628,7 @@
     $(OUTDIR)CharacterEncoderImplementations__MS_Hebrew.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__MS_Symbol.$(O) \
     $(OUTDIR)CharacterEncoderImplementations__MS_Turkish.$(O) \
+    $(OUTDIR)CharacterEncoderImplementations__ISO10646_1.$(O) \
     $(OUTDIR)CheapBlock.$(O) \
     $(OUTDIR)CmdLineOptionError.$(O) \
     $(OUTDIR)Fraction.$(O) \
--- a/OSXOperatingSystem.st	Fri Jan 19 15:06:27 2018 +0100
+++ b/OSXOperatingSystem.st	Fri Jan 19 16:02:39 2018 +0100
@@ -23,7 +23,14 @@
 !OSXOperatingSystem primitiveDefinitions!
 %{
 
-#ifndef __OSX__
+#ifdef __osx__
+// mhm - how could they forget this????
+# ifndef __XPC_IOS_SIMULATOR_AVAILABLE_STARTING
+#  define __XPC_IOS_SIMULATOR_AVAILABLE_STARTING(version)
+# endif
+#endif
+
+#ifndef __osx__
 # define NO_QUARTZ
 # define NO_COCOA
 #endif
@@ -57,18 +64,18 @@
 #   undef INT
 #   undef UINT
 
-#include <ApplicationServices/ApplicationServices.h>
-#include <CoreFoundation/CoreFoundation.h>
+# include <ApplicationServices/ApplicationServices.h>
+# include <CoreFoundation/CoreFoundation.h>
 // #include <Foundation/Foundation.h>
 
 // #include <CoreGraphics/CGEventTypes.h>
 
-#include <stdlib.h>
-#include <stdio.h>
-#include <IOKit/graphics/IOGraphicsLib.h>
+# include <stdlib.h>
+# include <stdio.h>
+# include <IOKit/graphics/IOGraphicsLib.h>
 
-#include <objc/runtime.h>
-#include <objc/message.h>
+# include <objc/runtime.h>
+# include <objc/message.h>
 
 #  ifdef __DEF_Array
 #   define Array __DEF_Array
--- a/ReadStream.st	Fri Jan 19 15:06:27 2018 +0100
+++ b/ReadStream.st	Fri Jan 19 16:02:39 2018 +0100
@@ -23,11 +23,25 @@
 !ReadStream primitiveDefinitions!
 %{
 
-#include <stdio.h>
-#define _STDIO_H_INCLUDED_
-#include <stdlib.h>
-#include <string.h>
-#include <memory.h>
+#ifndef _STDIO_H_INCLUDED_
+# include <stdio.h>
+# define _STDIO_H_INCLUDED_
+#endif
+
+#ifndef _STDLIB_H_INCLUDED_
+# include <stdlib.h>
+# define _STDLIB_H_INCLUDED_
+#endif
+
+#ifndef _STRING_H_INCLUDED_
+# include <string.h>
+# define _STRING_H_INCLUDED_
+#endif
+
+#ifndef _MEMORY_H_INCLUDED_
+# include <memory.h>
+# define _MEMORY_H_INCLUDED_
+#endif
 
 %}
 ! !
--- a/SHA1Stream.st	Fri Jan 19 15:06:27 2018 +0100
+++ b/SHA1Stream.st	Fri Jan 19 16:02:39 2018 +0100
@@ -31,8 +31,15 @@
 
 #define SHA1HANDSOFF /* Copies data before messing with it. */
 
-#include <stdio.h>
-#include <string.h>
+#ifndef _STDIO_H_INCLUDED_
+# include <stdio.h>
+# define _STDIO_H_INCLUDED_
+#endif
+
+#ifndef _STRING_H_INCLUDED_
+# include <string.h>
+# define _STRING_H_INCLUDED_
+#endif
 
 typedef struct {
     unsigned int32 state[5];
--- a/ShortFloat.st	Fri Jan 19 15:06:27 2018 +0100
+++ b/ShortFloat.st	Fri Jan 19 16:02:39 2018 +0100
@@ -136,7 +136,10 @@
 # endif
 
 # ifdef __MINGW__
-#  include <string.h>
+#  ifndef _STRING_H_INCLUDED_
+#   include <string.h>
+#   define _STRING_H_INCLUDED_
+#  endif
 # endif
 
 #endif /* __win32__ */
--- a/String.st	Fri Jan 19 15:06:27 2018 +0100
+++ b/String.st	Fri Jan 19 16:02:39 2018 +0100
@@ -25,24 +25,31 @@
 !String primitiveDefinitions!
 %{
 
-#include <stdio.h>
-#define _STDIO_H_INCLUDED_
-#include <stdlib.h>
-#include <ctype.h>
+#ifndef _STDIO_H_INCLUDED_
+# include <stdio.h>
+# define _STDIO_H_INCLUDED_
+#endif
+
+#ifndef _STDLIB_H_INCLUDED_
+# include <stdlib.h>
+# define _STDLIB_H_INCLUDED_
+#endif
+
+#ifndef _CTYPE_H_INCLUDED_
+# include <ctype.h>
+# define _CTYPE_H_INCLUDED_
+#endif
 
 #ifdef LINUX
 # define __STRINGDEFS__
 # include <linuxIntern.h>
 #endif
 
-#ifdef __osx__
-# include <string.h>
-# include <stdlib.h>
-#endif
-
-#ifdef __MINGW__
-# include <string.h>
-# include <stdlib.h>
+#if defined(__osx__) || defined(__MINGW__)
+# ifndef _STRING_H_INCLUDED_
+#  include <string.h>
+#  define _STRING_H_INCLUDED_
+# endif
 #endif
 
 /*
--- a/UnixOperatingSystem.st	Fri Jan 19 15:06:27 2018 +0100
+++ b/UnixOperatingSystem.st	Fri Jan 19 16:02:39 2018 +0100
@@ -282,15 +282,25 @@
 # endif /* aix */
 
 # ifdef __osx__
-#  include <string.h>
-#  include <stdlib.h>
+#  ifndef _STRING_H_INCLUDED_
+#   include <string.h>
+#   define _STRING_H_INCLUDED_
+#  endif
+
+#  ifndef _STDLIB_H_INCLUDED_
+#   include <stdlib.h>
+#   define _STDLIB_H_INCLUDED_
+#  endif
+
 #  include <time.h>
+
 #  ifndef _TIME_H_
-/* hack if the osx has been configured with case-ignoring filenames,
- * my own time.h was included above
- */
+   /* hack if __osx__ has been configured with case-ignoring filenames,
+    * my own time.h was included above
+    */
 #   include "/usr/include/time.h"
 #  endif
+
 #  include <sys/time.h>
 #  define HAS_TIMEGM