00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef MAGICKCORE_STRING_H_
00019 #define MAGICKCORE_STRING_H_
00020
00021 #include <stdarg.h>
00022 #include <time.h>
00023 #include "magick/exception.h"
00024
00025 #if defined(__cplusplus) || defined(c_plusplus)
00026 extern "C" {
00027 #endif
00028
00029 typedef struct _StringInfo
00030 {
00031 char
00032 path[MaxTextExtent];
00033
00034 unsigned char
00035 *datum;
00036
00037 size_t
00038 length,
00039 signature;
00040
00041 char
00042 *name;
00043 } StringInfo;
00044
00045 extern MagickExport char
00046 *AcquireString(const char *),
00047 *CloneString(char **,const char *),
00048 *ConstantString(const char *),
00049 *DestroyString(char *),
00050 **DestroyStringList(char **),
00051 *EscapeString(const char *,const char),
00052 *FileToString(const char *,const size_t,ExceptionInfo *),
00053 *GetEnvironmentValue(const char *),
00054 *SanitizeString(const char *),
00055 *StringInfoToHexString(const StringInfo *),
00056 *StringInfoToString(const StringInfo *),
00057 **StringToArgv(const char *,int *),
00058 *StringToken(const char *,char **),
00059 **StringToList(const char *),
00060 **StringToStrings(const char *,size_t *);
00061
00062 extern MagickExport const char
00063 *GetStringInfoName(const StringInfo *),
00064 *GetStringInfoPath(const StringInfo *);
00065
00066 extern MagickExport double
00067 InterpretSiPrefixValue(const char *magick_restrict,char **magick_restrict),
00068 *StringToArrayOfDoubles(const char *,ssize_t *, ExceptionInfo *);
00069
00070 extern MagickExport int
00071 CompareStringInfo(const StringInfo *,const StringInfo *);
00072
00073 extern MagickExport MagickBooleanType
00074 ConcatenateString(char **magick_restrict,const char *magick_restrict),
00075 IsStringTrue(const char *) magick_attribute((__pure__)),
00076 IsStringNotFalse(const char *) magick_attribute((__pure__)),
00077 SubstituteString(char **,const char *,const char *);
00078
00079 extern MagickExport size_t
00080 ConcatenateMagickString(char *magick_restrict,const char *magick_restrict,
00081 const size_t) magick_attribute((__nonnull__)),
00082 CopyMagickString(char *magick_restrict,const char *magick_restrict,
00083 const size_t) magick_attribute((__nonnull__)),
00084 GetStringInfoLength(const StringInfo *);
00085
00086 extern MagickExport ssize_t
00087 FormatMagickSize(const MagickSizeType,const MagickBooleanType,char *);
00088
00089 extern MagickExport StringInfo
00090 *AcquireStringInfo(const size_t),
00091 *BlobToStringInfo(const void *,const size_t),
00092 *CloneStringInfo(const StringInfo *),
00093 *ConfigureFileToStringInfo(const char *),
00094 *DestroyStringInfo(StringInfo *),
00095 *FileToStringInfo(const char *,const size_t,ExceptionInfo *),
00096 *SplitStringInfo(StringInfo *,const size_t),
00097 *StringToStringInfo(const char *);
00098
00099 extern MagickExport unsigned char
00100 *GetStringInfoDatum(const StringInfo *);
00101
00102 extern MagickExport void
00103 ConcatenateStringInfo(StringInfo *,const StringInfo *)
00104 magick_attribute((__nonnull__)),
00105 PrintStringInfo(FILE *file,const char *,const StringInfo *),
00106 ResetStringInfo(StringInfo *),
00107 SetStringInfo(StringInfo *,const StringInfo *),
00108 SetStringInfoDatum(StringInfo *,const unsigned char *),
00109 SetStringInfoLength(StringInfo *,const size_t),
00110 SetStringInfoName(StringInfo *,const char *),
00111 SetStringInfoPath(StringInfo *,const char *),
00112 StripString(char *);
00113
00114 #if defined(__cplusplus) || defined(c_plusplus)
00115 }
00116 #endif
00117
00118 #endif