view 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 source

/**
 * 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);