string_.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /*
  2. Copyright 1999 ImageMagick Studio LLC, a non-profit organization
  3. dedicated to making software imaging solutions freely available.
  4. You may not use this file except in compliance with the License. You may
  5. obtain a copy of the License at
  6. https://imagemagick.org/script/license.php
  7. Unless required by applicable law or agreed to in writing, software
  8. distributed under the License is distributed on an "AS IS" BASIS,
  9. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  10. See the License for the specific language governing permissions and
  11. limitations under the License.
  12. MagickCore string methods.
  13. */
  14. #ifndef MAGICKCORE_STRING_H_
  15. #define MAGICKCORE_STRING_H_
  16. #include <stdarg.h>
  17. #include <time.h>
  18. #include "magick/exception.h"
  19. #if defined(__cplusplus) || defined(c_plusplus)
  20. extern "C" {
  21. #endif
  22. typedef struct _StringInfo
  23. {
  24. char
  25. path[MaxTextExtent];
  26. unsigned char
  27. *datum;
  28. size_t
  29. length,
  30. signature;
  31. char
  32. *name;
  33. } StringInfo;
  34. extern MagickExport char
  35. *AcquireString(const char *),
  36. *CloneString(char **,const char *),
  37. *ConstantString(const char *),
  38. *DestroyString(char *),
  39. **DestroyStringList(char **),
  40. *EscapeString(const char *,const char),
  41. *FileToString(const char *,const size_t,ExceptionInfo *),
  42. *GetEnvironmentValue(const char *),
  43. *SanitizeString(const char *),
  44. *StringInfoToHexString(const StringInfo *),
  45. *StringInfoToString(const StringInfo *),
  46. **StringToArgv(const char *,int *),
  47. *StringToken(const char *,char **),
  48. **StringToList(const char *),
  49. **StringToStrings(const char *,size_t *);
  50. extern MagickExport const char
  51. *GetStringInfoName(const StringInfo *),
  52. *GetStringInfoPath(const StringInfo *);
  53. extern MagickExport double
  54. InterpretSiPrefixValue(const char *magick_restrict,char **magick_restrict),
  55. *StringToArrayOfDoubles(const char *,ssize_t *, ExceptionInfo *);
  56. extern MagickExport int
  57. CompareStringInfo(const StringInfo *,const StringInfo *);
  58. extern MagickExport MagickBooleanType
  59. ConcatenateString(char **magick_restrict,const char *magick_restrict),
  60. IsStringTrue(const char *) magick_attribute((__pure__)),
  61. IsStringNotFalse(const char *) magick_attribute((__pure__)),
  62. SubstituteString(char **,const char *,const char *);
  63. extern MagickExport size_t
  64. ConcatenateMagickString(char *magick_restrict,const char *magick_restrict,
  65. const size_t) magick_attribute((__nonnull__)),
  66. CopyMagickString(char *magick_restrict,const char *magick_restrict,
  67. const size_t) magick_attribute((__nonnull__)),
  68. GetStringInfoLength(const StringInfo *);
  69. extern MagickExport ssize_t
  70. FormatMagickSize(const MagickSizeType,const MagickBooleanType,char *);
  71. extern MagickExport StringInfo
  72. *AcquireStringInfo(const size_t),
  73. *BlobToStringInfo(const void *,const size_t),
  74. *CloneStringInfo(const StringInfo *),
  75. *ConfigureFileToStringInfo(const char *),
  76. *DestroyStringInfo(StringInfo *),
  77. *FileToStringInfo(const char *,const size_t,ExceptionInfo *),
  78. *SplitStringInfo(StringInfo *,const size_t),
  79. *StringToStringInfo(const char *);
  80. extern MagickExport unsigned char
  81. *GetStringInfoDatum(const StringInfo *);
  82. extern MagickExport void
  83. ConcatenateStringInfo(StringInfo *,const StringInfo *)
  84. magick_attribute((__nonnull__)),
  85. PrintStringInfo(FILE *file,const char *,const StringInfo *),
  86. ResetStringInfo(StringInfo *),
  87. SetStringInfo(StringInfo *,const StringInfo *),
  88. SetStringInfoDatum(StringInfo *,const unsigned char *),
  89. SetStringInfoLength(StringInfo *,const size_t),
  90. SetStringInfoName(StringInfo *,const char *),
  91. SetStringInfoPath(StringInfo *,const char *),
  92. StripString(char *);
  93. #if defined(__cplusplus) || defined(c_plusplus)
  94. }
  95. #endif
  96. #endif