1 module dmagick.c.magickString;
2 
3 import core.stdc.stdio;
4 import core.stdc.time;
5 import core.vararg;
6 
7 import dmagick.c.exception;
8 import dmagick.c.magickType;
9 import dmagick.c.magickVersion;
10 
11 alias ptrdiff_t ssize_t;
12 
13 extern(C)
14 {
15 	struct StringInfo
16 	{
17 		char[MaxTextExtent]
18 			path;
19 
20 		ubyte*
21 			datum;
22 
23 		size_t
24 			length,
25 			signature;
26 	}
27 
28 	char*  AcquireString(const(char)*);
29 	char*  CloneString(char**, const(char)*);
30 	char*  ConstantString(const(char)*);
31 	char*  DestroyString(char*);
32 	char** DestroyStringList(char**);
33 	char*  EscapeString(const(char)*, const char);
34 	char*  FileToString(const(char)*, const size_t, ExceptionInfo*);
35 	char*  GetEnvironmentValue(const(char)*);
36 	char*  StringInfoToHexString(const(StringInfo)*);
37 	char*  StringInfoToString(const(StringInfo)*);
38 	char** StringToArgv(const(char)*, int*);
39 	char*  StringToken(const(char)*, char**);
40 	char** StringToList(const(char)*);
41 
42 	const(char)* GetStringInfoPath(const(StringInfo)*);
43 
44 	static if ( MagickLibVersion >= 0x674 )
45 	{
46 		double InterpretSiPrefixValue(const(char)*, char**);
47 	}
48 	static if ( MagickLibVersion >= 0x677 )
49 	{
50 		double* StringToArrayOfDoubles(const(char)*, ssize_t*, ExceptionInfo*);
51 	}
52 
53 	int	CompareStringInfo(const(StringInfo)*, const(StringInfo)*);
54 	int	LocaleCompare(const(char)*, const(char)*);
55 	int	LocaleNCompare(const(char)*, const(char)*, const size_t);
56 
57 	MagickBooleanType ConcatenateString(char**, const(char)*);
58 
59 	static if ( MagickLibVersion >= 0x677 )
60 	{
61 		MagickBooleanType IsStringTrue(const(char)*);
62 		MagickBooleanType IsStringNotFalse(const(char)*);
63 	}
64 
65 	MagickBooleanType SubstituteString(char**, const(char)*, const(char)*);
66 
67 	size_t ConcatenateMagickString(char*, const(char)*, const size_t);
68 	size_t CopyMagickString(char*, const(char)*, const size_t);
69 	size_t GetStringInfoLength(const(StringInfo)*);
70 
71 	ssize_t	FormatMagickSize(const MagickSizeType, const MagickBooleanType, char*);
72 
73 	static if ( MagickLibVersion < 0x670 )
74 	{
75 		ssize_t	FormatMagickString(char*, const size_t, const(char)*, ...);
76 		ssize_t	FormatMagickStringList(char*, const size_t, const(char)*, va_list);
77 	}
78 
79 	ssize_t	FormatMagickTime(const time_t, const size_t, char*);
80 
81 	StringInfo* AcquireStringInfo(const size_t);
82 
83 	static if ( MagickLibVersion >= 0x673 )
84 	{
85 		StringInfo* BlobToStringInfo(const(void)*, const size_t);
86 	}
87 
88 	StringInfo* CloneStringInfo(const(StringInfo)*);
89 	StringInfo* ConfigureFileToStringInfo(const(char)*);
90 	StringInfo* DestroyStringInfo(StringInfo*);
91 	StringInfo* FileToStringInfo(const(char)*, const size_t, ExceptionInfo*);
92 	StringInfo* SplitStringInfo(StringInfo*, const size_t);
93 	StringInfo* StringToStringInfo(const(char)*);
94 
95 	ubyte* GetStringInfoDatum(const(StringInfo)*);
96 
97 	void ConcatenateStringInfo(StringInfo*, const(StringInfo)*);
98 	void LocaleLower(char*);
99 	void LocaleUpper(char*);
100 	void PrintStringInfo(FILE *file, const(char)*, const(StringInfo)*);
101 	void ResetStringInfo(StringInfo*);
102 	void SetStringInfo(StringInfo*, const(StringInfo)*);
103 	void SetStringInfoDatum(StringInfo*, const(ubyte)*);
104 	void SetStringInfoLength(StringInfo*, const size_t);
105 	void SetStringInfoPath(StringInfo*, const(char)*);
106 	void StripString(char*);
107 }