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 		static if ( MagickLibVersion >= 0x699 )
28 		{
29 			char*
30 				name;
31 		}
32 	}
33 
34 	char*  AcquireString(const(char)*);
35 	char*  CloneString(char**, const(char)*);
36 	char*  ConstantString(const(char)*);
37 	char*  DestroyString(char*);
38 	char** DestroyStringList(char**);
39 	char*  EscapeString(const(char)*, const char);
40 	char*  FileToString(const(char)*, const size_t, ExceptionInfo*);
41 	char*  GetEnvironmentValue(const(char)*);
42 
43 	static if ( MagickLibVersion >= 0x694 )
44 	{
45 		char* SanitizeString(const(char)*);
46 	}
47 
48 	char*  StringInfoToHexString(const(StringInfo)*);
49 	char*  StringInfoToString(const(StringInfo)*);
50 	char** StringToArgv(const(char)*, int*);
51 	char*  StringToken(const(char)*, char**);
52 	char** StringToList(const(char)*);
53 
54 	static if ( MagickLibVersion >= 0x699 )
55 	{
56 		const(char)* GetStringInfoName(const(StringInfo)*);
57 	}
58 
59 	const(char)* GetStringInfoPath(const(StringInfo)*);
60 
61 	static if ( MagickLibVersion >= 0x674 )
62 	{
63 		double InterpretSiPrefixValue(const(char)*, char**);
64 	}
65 	static if ( MagickLibVersion >= 0x677 )
66 	{
67 		double* StringToArrayOfDoubles(const(char)*, ssize_t*, ExceptionInfo*);
68 	}
69 
70 	int	CompareStringInfo(const(StringInfo)*, const(StringInfo)*);
71 
72 	MagickBooleanType ConcatenateString(char**, const(char)*);
73 
74 	static if ( MagickLibVersion >= 0x677 )
75 	{
76 		MagickBooleanType IsStringTrue(const(char)*);
77 		MagickBooleanType IsStringNotFalse(const(char)*);
78 	}
79 
80 	MagickBooleanType SubstituteString(char**, const(char)*, const(char)*);
81 
82 	size_t ConcatenateMagickString(char*, const(char)*, const size_t);
83 	size_t CopyMagickString(char*, const(char)*, const size_t);
84 	size_t GetStringInfoLength(const(StringInfo)*);
85 
86 	static if ( MagickLibVersion >= 0x699 )
87 	{
88 		size_t SetStringInfoName(StringInfo* ,const(char)*);
89 	}
90 
91 
92 	ssize_t	FormatMagickSize(const MagickSizeType, const MagickBooleanType, char*);
93 
94 	static if ( MagickLibVersion < 0x670 )
95 	{
96 		ssize_t	FormatMagickString(char*, const size_t, const(char)*, ...);
97 		ssize_t	FormatMagickStringList(char*, const size_t, const(char)*, va_list);
98 	}
99 
100 	ssize_t	FormatMagickTime(const time_t, const size_t, char*);
101 
102 	StringInfo* AcquireStringInfo(const size_t);
103 
104 	static if ( MagickLibVersion >= 0x673 )
105 	{
106 		StringInfo* BlobToStringInfo(const(void)*, const size_t);
107 	}
108 
109 	StringInfo* CloneStringInfo(const(StringInfo)*);
110 	StringInfo* ConfigureFileToStringInfo(const(char)*);
111 	StringInfo* DestroyStringInfo(StringInfo*);
112 	StringInfo* FileToStringInfo(const(char)*, const size_t, ExceptionInfo*);
113 	StringInfo* SplitStringInfo(StringInfo*, const size_t);
114 	StringInfo* StringToStringInfo(const(char)*);
115 
116 	ubyte* GetStringInfoDatum(const(StringInfo)*);
117 
118 	void ConcatenateStringInfo(StringInfo*, const(StringInfo)*);
119 	void PrintStringInfo(FILE *file, const(char)*, const(StringInfo)*);
120 	void ResetStringInfo(StringInfo*);
121 	void SetStringInfo(StringInfo*, const(StringInfo)*);
122 	void SetStringInfoDatum(StringInfo*, const(ubyte)*);
123 	void SetStringInfoLength(StringInfo*, const size_t);
124 	void SetStringInfoPath(StringInfo*, const(char)*);
125 	void StripString(char*);
126 }