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 }