File: string16.h

package info (click to toggle)
speech-tools 1%3A2.5.0-14
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,040 kB
  • sloc: cpp: 67,350; ansic: 12,174; sh: 4,055; java: 3,748; makefile: 1,106; lisp: 711; perl: 396; awk: 85; xml: 9
file content (113 lines) | stat: -rw-r--r-- 3,901 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*************************************************************************/
/*                                                                       */
/* Copyright (c) 1997-98 Richard Tobin, Language Technology Group, HCRC, */
/* University of Edinburgh.                                              */
/*                                                                       */
/* THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,     */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
/* IN NO EVENT SHALL THE AUTHOR OR THE UNIVERSITY OF EDINBURGH BE LIABLE */
/* FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF    */
/* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION    */
/* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.       */
/*                                                                       */
/*************************************************************************/
#ifndef STRING16_H
#define STRING16_H

#ifndef FOR_LT
#define STD_API
#define WIN_IMP
#endif

#include "charset.h"
#include <stddef.h>		/* for size_t */

/* String functions */
#include <string.h>
#if 0
/* Don't want to include string.h while testing */

int strcmp(const char *, const char *);
WIN_IMP int strncmp(const char *, const char *, size_t);
int strcasecmp(const char *, const char *);
size_t strlen(const char *);
WIN_IMP char *strchr(const char *, int);
char *strcpy(char *, const char *);
WIN_IMP char *strncpy(char *, const char *, size_t);
char *strcat(char *, const char *);
WIN_IMP char *strstr(const char *, const char *);
int memcmp(const void *, const void *, size_t);
#ifndef memcpy
void *memcpy(void *, const void *, size_t);
#endif
void *memset(void *, int, size_t);
WIN_IMP size_t strspn(const char *, const char *);
WIN_IMP size_t strcspn(const char *, const char *);
#endif

STD_API char8 *strdup8(const char8 *s);
#define strchr8(s, c)strchr((s), c)
#define strlen8(s) strlen((s))
#define strcmp8(s1, s2) strcmp((s1), (s2))
#define strncmp8(s1, s2, n) strncmp((s1), (s2), n)
#define strcpy8(s1, s2) strcpy((s1), (s2))
#define strncpy8(s1, s2, n) strncpy((s1), (s2), n)

#define strcat8(s1, s2) strcat((s1), (s2))
STD_API int strcasecmp8(const char8 *, const char8 *);
STD_API int strncasecmp8(const char8 *, const char8 *, size_t);
#define strstr8(s1, s2) strstr(s1, s2)

STD_API char16 *strdup16(const char16 *s);
STD_API char16 *strchr16(const char16 *, int);
STD_API size_t strlen16(const char16 *);
STD_API int strcmp16(const char16 *, const char16 *);
STD_API int strncmp16(const char16 *, const char16 *, size_t);
STD_API char16 *strcpy16(char16 *, const char16 *);
STD_API char16 *strncpy16(char16 *, const char16 *, size_t);
STD_API char16 *strcat16(char16 *, const char16 *);
STD_API int strcasecmp16(const char16 *, const char16 *);
STD_API int strncasecmp16(const char16 *, const char16 *, size_t);
STD_API char16 *strstr16(const char16 *, const char16 *);

STD_API char16 *char8tochar16(const char8 *s);
STD_API char8 *char16tochar8(const char16 *s);

#if CHAR_SIZE == 8

#define Strdup strdup8
#define Strchr strchr8
#define Strlen strlen8
#define Strcmp strcmp8
#define Strncmp strncmp8
#define Strcpy strcpy8
#define Strncpy strncpy8
#define Strcat strcat8
#define Strcasecmp strcasecmp8
#define Strncasecmp strncasecmp8
#define Strstr strstr8

#define char8toChar(x) (x)
#define Chartochar8(x) (x)

#else

#define Strdup strdup16
#define Strchr strchr16
#define Strlen strlen16
#define Strcmp strcmp16
#define Strncmp strncmp16
#define Strcpy strcpy16
#define Strncpy strncpy16
#define Strcat strcat16
#define Strcasecmp strcasecmp16
#define Strncasecmp strncasecmp16
#define Strstr strstr16

#define char8toChar char8tochar16
#define Chartochar8 char16tochar8

#endif

#endif /* STRING16_H */