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