MagickCore  6.7.5
string_.h
Go to the documentation of this file.
00001 /*
00002   Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization
00003   dedicated to making software imaging solutions freely available.
00004   
00005   You may not use this file except in compliance with the License.
00006   obtain a copy of the License at
00007   
00008     http://www.imagemagick.org/script/license.php
00009   
00010   Unless required by applicable law or agreed to in writing, software
00011   distributed under the License is distributed on an "AS IS" BASIS,
00012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013   See the License for the specific language governing permissions and
00014   limitations under the License.
00015 
00016   MagickCore string methods.
00017 */
00018 #ifndef _MAGICKCORE_STRING_H_
00019 #define _MAGICKCORE_STRING_H_
00020 
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024 
00025 #include <stdarg.h>
00026 #include <time.h>
00027 #include "MagickCore/exception.h"
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 } StringInfo;
00041 
00042 extern MagickExport char
00043   *AcquireString(const char *),
00044   *CloneString(char **,const char *),
00045   *ConstantString(const char *),
00046   *DestroyString(char *),
00047   **DestroyStringList(char **),
00048   *EscapeString(const char *,const char),
00049   *FileToString(const char *,const size_t,ExceptionInfo *),
00050   *GetEnvironmentValue(const char *),
00051   *StringInfoToHexString(const StringInfo *),
00052   *StringInfoToString(const StringInfo *),
00053   **StringToArgv(const char *,int *),
00054   *StringToken(const char *,char **),
00055   **StringToList(const char *);
00056 
00057 extern MagickExport const char
00058   *GetStringInfoPath(const StringInfo *);
00059 
00060 extern MagickExport double
00061   InterpretSiPrefixValue(const char *restrict,char **restrict);
00062 
00063 extern MagickExport int
00064   CompareStringInfo(const StringInfo *,const StringInfo *),
00065   LocaleCompare(const char *,const char *),
00066   LocaleNCompare(const char *,const char *,const size_t);
00067 
00068 extern MagickExport MagickBooleanType
00069   ConcatenateString(char **,const char *),
00070   SubstituteString(char **,const char *,const char *);
00071 
00072 extern MagickExport size_t
00073   ConcatenateMagickString(char *,const char *,const size_t)
00074     magick_attribute((nonnull)),
00075   CopyMagickString(char *,const char *,const size_t)
00076     magick_attribute((nonnull)),
00077   GetStringInfoLength(const StringInfo *);
00078 
00079 extern MagickExport ssize_t
00080   FormatMagickSize(const MagickSizeType,const MagickBooleanType,char *),
00081   FormatMagickTime(const time_t,const size_t,char *);
00082 
00083 extern MagickExport StringInfo
00084   *AcquireStringInfo(const size_t),
00085   *BlobToStringInfo(const void *,const size_t),
00086   *CloneStringInfo(const StringInfo *),
00087   *ConfigureFileToStringInfo(const char *),
00088   *DestroyStringInfo(StringInfo *),
00089   *FileToStringInfo(const char *,const size_t,ExceptionInfo *),
00090   *SplitStringInfo(StringInfo *,const size_t),
00091   *StringToStringInfo(const char *);
00092 
00093 extern MagickExport unsigned char
00094   *GetStringInfoDatum(const StringInfo *);
00095 
00096 extern MagickExport void
00097   ConcatenateStringInfo(StringInfo *,const StringInfo *)
00098     magick_attribute((nonnull)),
00099   LocaleLower(char *),
00100   LocaleUpper(char *),
00101   PrintStringInfo(FILE *file,const char *,const StringInfo *),
00102   ResetStringInfo(StringInfo *),
00103   SetStringInfo(StringInfo *,const StringInfo *),
00104   SetStringInfoDatum(StringInfo *,const unsigned char *),
00105   SetStringInfoLength(StringInfo *,const size_t),
00106   SetStringInfoPath(StringInfo *,const char *),
00107   StripString(char *);
00108 
00109 #if defined(__cplusplus) || defined(c_plusplus)
00110 }
00111 #endif
00112 
00113 #endif