diff dstep/coreservices/carboncore/TextUtils.d @ 11:07194b026fa4

Added bindings to a couple of frameworks, new license + some other things
author Jacob Carlborg <doob@me.com>
date Sat, 01 Aug 2009 15:03:28 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dstep/coreservices/carboncore/TextUtils.d	Sat Aug 01 15:03:28 2009 +0200
@@ -0,0 +1,83 @@
+/**
+ * Copyright: Copyright (c) 2009 Jacob Carlborg.
+ * Authors: Jacob Carlborg
+ * Version: Initial created: Jul 21, 2009 
+ * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
+ */
+module dstep.coreservices.carboncore.TextUtils;
+
+//import dstep.AvailabilityMacros;
+import dstep.coreservices.carboncore.DateTimeUtils;
+import dstep.coreservices.carboncore.IntlResources;
+import dstep.coreservices.carboncore.MacTypes;
+import dstep.coreservices.carboncore.NumberFormatting;
+import dstep.coreservices.carboncore.StringCompare;
+import dstep.internal.Types;
+import dstep.internal.Version;
+
+extern (C)
+{
+	int Munger (Handle h, int offset, void* ptr1, int len1, void* ptr2, int len2);
+}
+
+static if (!D_LP64)
+{
+	struct ScriptRunStatus
+	{
+		byte script;
+		byte runVariant;
+	}
+	
+	struct BreakTable
+	{
+		char[256] charTypes;
+		short tripleLength;
+		short[1] triples;
+	}
+	
+	alias BreakTable* BreakTablePtr;
+	
+	struct NBreakTable
+	{
+		byte flags1;
+		byte flags2;
+		short version_;
+		short classTableOff;
+		short auxCTableOff;
+		short backwdTableOff;
+		short forwdTableOff;
+		short doBackup;
+		short length;
+		char[256] charTypes;
+		short[1] tables;
+	}
+	
+	alias NBreakTable* NBreakTablePtr;
+	
+	extern (C)
+	{
+		StringHandle NewString (ConstStr255Param theString);
+		void SetString (StringHandle theString, ConstStr255Param);
+		StringHandle GetString (short stringID);
+		void GetIndString (Str255 theString, short strListID, short itemIndex);
+		void FindWordBreaks (Ptr textPtr, short textLength, short offset, bool leadingEdge, BreakTablePtr breaks, OffsetTable offsets, ScriptCode script);
+		void LowercaseText (Ptr textPtr, short len, ScriptCode script);
+		void UppercaseText (Ptr textPtr, short len, ScriptCode script);
+		void StripDiacritics (Ptr textPtr, short len, ScriptCode script);
+		void UppercaseStripDiacritics (Ptr textPtr, short len, ScriptCode script);
+		ScriptRunStatus FindScriptRun (Ptr textPtr, c_long textLen, c_long lenUsed);
+		void UpperString (Str255 theString, bool diacSensitive);
+		void upperstring (char* theString, bool diacSensitive);
+		void c2pstrcpy (Str255 dst, /*const*/ char* src);
+		void p2cstrcpy (char* dst, ConstStr255Param src);
+		void CopyPascalStringToC (ConstStr255Param src, char* dst);
+		void CopyCStringToPascal (/*const*/ char* src, Str255 dst);
+		StringPtr c2pstr (char* aStr);
+		StringPtr C2PStr (Ptr cString);
+		char* p2cstr (StringPtr aStr);
+		Ptr P2CStr (StringPtr pString);
+	}
+}
+
+extern (C):
+c_long Munger (Handle h, c_long offset, /*const*/ void* ptr1, c_long len1, /*const*/ void* ptr2, c_long len2);
\ No newline at end of file