1/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2   file Copyright.txt or https://cmake.org/licensing#kwsys for details.  */
3#ifndef @KWSYS_NAMESPACE@_String_h
4#define @KWSYS_NAMESPACE@_String_h
5
6#include <@KWSYS_NAMESPACE@/Configure.h>
7
8#include <stddef.h> /* size_t */
9
10/* Redefine all public interface symbol names to be in the proper
11   namespace.  These macros are used internally to kwsys only, and are
12   not visible to user code.  Use kwsysHeaderDump.pl to reproduce
13   these macros after making changes to the interface.  */
14#if !defined(KWSYS_NAMESPACE)
15#  define kwsys_ns(x) @KWSYS_NAMESPACE@##x
16#  define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
17#endif
18#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
19#  define kwsysString_strcasecmp kwsys_ns(String_strcasecmp)
20#  define kwsysString_strncasecmp kwsys_ns(String_strncasecmp)
21#endif
22
23#if defined(__cplusplus)
24extern "C" {
25#endif
26
27/**
28 * Compare two strings ignoring the case of the characters.  The
29 * integer returned is negative, zero, or positive if the first string
30 * is found to be less than, equal to, or greater than the second
31 * string, respectively.
32 */
33kwsysEXPORT int kwsysString_strcasecmp(const char* lhs, const char* rhs);
34
35/**
36 * Identical to String_strcasecmp except that only the first n
37 * characters are considered.
38 */
39kwsysEXPORT int kwsysString_strncasecmp(const char* lhs, const char* rhs,
40                                        size_t n);
41
42#if defined(__cplusplus)
43} /* extern "C" */
44#endif
45
46/* If we are building a kwsys .c or .cxx file, let it use these macros.
47   Otherwise, undefine them to keep the namespace clean.  */
48#if !defined(KWSYS_NAMESPACE)
49#  undef kwsys_ns
50#  undef kwsysEXPORT
51#  if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
52#    undef kwsysString_strcasecmp
53#    undef kwsysString_strncasecmp
54#  endif
55#endif
56
57#endif
58