• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1      * Summary: set of routines to process strings
2      * Description: type and interfaces needed for the internal string
3      *              handling of the library, especially UTF8 processing.
4      *
5      * Copy: See Copyright for the status of this software.
6      *
7      * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
8
9      /if not defined(XML_STRING_H__)
10      /define XML_STRING_H__
11
12      /include "libxmlrpg/xmlversion"
13      /include "libxmlrpg/xmlTypesC"
14      /include "libxmlrpg/xmlstdarg"
15
16      * xmlChar:
17      *
18      * This is a basic byte in an UTF-8 encoded string.
19      * It's unsigned allowing to pinpoint case where char * are assigned
20      * to xmlChar * (possibly making serialization back impossible).
21
22     d xmlChar         s                   based(######typedef######)
23     d                                     like(xmlCuchar)
24
25      * xmlChar handling
26
27     d xmlStrdup       pr              *   extproc('xmlStrdup')                 xmlChar *
28     d  cur                            *   value options(*string)               const xmlChar *
29
30     d xmlStrndup      pr              *   extproc('xmlStrndup')                xmlChar *
31     d  cur                            *   value options(*string)               const xmlChar *
32     d  len                          10i 0 value
33
34     d xmlCharStrndup  pr              *   extproc('xmlCharStrndup')            xmlChar *
35     d  cur                            *   value options(*string)               const char *
36     d  len                          10i 0 value
37
38     d xmlCharStrdup   pr              *   extproc('xmlCharStrdup')             xmlChar *
39     d  cur                            *   value options(*string)               const char *
40
41     d xmlStrsub       pr              *   extproc('xmlStrsub')                 const xmlChar *
42     d  str                            *   value options(*string)               const xmlChar *
43     d  start                        10i 0 value
44     d  len                          10i 0 value
45
46     d xmlStrchr       pr              *   extproc('xmlStrchr')                 const xmlChar *
47     d  str                            *   value options(*string)               const xmlChar *
48     d  val                                value like(xmlChar)
49
50     d xmlStrstr       pr              *   extproc('xmlStrstr')                 const xmlChar *
51     d  str                            *   value options(*string)               const xmlChar *
52     d  val                            *   value options(*string)               const xmlChar *
53
54     d xmlStrcasestr   pr              *   extproc('xmlStrcasestr')             const xmlChar *
55     d  str                            *   value options(*string)               const xmlChar *
56     d  val                            *   value options(*string)               const xmlChar *
57
58     d xmlStrcmp       pr            10i 0 extproc('xmlStrcmp')
59     d  str1                           *   value options(*string)               const xmlChar *
60     d  str2                           *   value options(*string)               const xmlChar *
61
62     d xmlStrncmp      pr            10i 0 extproc('xmlStrncmp')
63     d  str1                           *   value options(*string)               const xmlChar *
64     d  str2                           *   value options(*string)               const xmlChar *
65     d  len                          10i 0 value
66
67     d xmlStrcasecmp   pr            10i 0 extproc('xmlStrcasecmp')
68     d  str1                           *   value options(*string)               const xmlChar *
69     d  str2                           *   value options(*string)               const xmlChar *
70
71     d xmlStrncasecmp  pr            10i 0 extproc('xmlStrncasecmp')
72     d  str1                           *   value options(*string)               const xmlChar *
73     d  str2                           *   value options(*string)               const xmlChar *
74     d  len                          10i 0 value
75
76     d xmlStrEqual     pr            10i 0 extproc('xmlStrEqual')
77     d  str1                           *   value options(*string)               const xmlChar *
78     d  str2                           *   value options(*string)               const xmlChar *
79
80     d xmlStrQEqual    pr            10i 0 extproc('xmlStrQEqual')
81     d  pref                           *   value options(*string)               const xmlChar *
82     d  name                           *   value options(*string)               const xmlChar *
83     d  stre                           *   value options(*string)               const xmlChar *
84
85     d xmlStrlen       pr            10i 0 extproc('xmlStrlen')
86     d  str                            *   value options(*string)               const xmlChar *
87
88     d xmlStrcat       pr              *   extproc('xmlStrcat')                 xmlChar *
89     d  cur                            *   value options(*string)               xmlChar *
90     d  add                            *   value options(*string)               const xmlChar *
91
92     d xmlStrncat      pr              *   extproc('xmlStrncat')                xmlChar *
93     d  cur                            *   value options(*string)               xmlChar *
94     d  add                            *   value options(*string)               const xmlChar *
95     d  len                          10i 0 value
96
97     d xmlStrncatNew   pr              *   extproc('xmlStrncatNew')             xmlChar *
98     d  str1                           *   value options(*string)               const xmlChar *
99     d  str2                           *   value options(*string)               const xmlChar *
100     d  len                          10i 0 value
101
102      * xmlStrPrintf() is a vararg function.
103      * The following prototype supports up to 8 pointer arguments.
104      * Other argument signature can be achieved by defining alternate
105      *   prototypes redirected to the same function.
106
107     d xmlStrPrintf    pr            10i 0 extproc('xmlStrPrintf')
108     d  buf                            *   value options(*string)               xmlChar *
109     d  len                          10i 0 value
110     d  msg                            *   value options(*string)               const xmlChar *
111     d  arg1                           *   value options(*string: *nopass)
112     d  arg2                           *   value options(*string: *nopass)
113     d  arg3                           *   value options(*string: *nopass)
114     d  arg4                           *   value options(*string: *nopass)
115     d  arg5                           *   value options(*string: *nopass)
116     d  arg6                           *   value options(*string: *nopass)
117     d  arg7                           *   value options(*string: *nopass)
118     d  arg8                           *   value options(*string: *nopass)
119
120     d xmlStrVPrintf   pr            10i 0 extproc('xmlStrVPrintf')
121     d  buf                            *   value options(*string)               xmlChar *
122     d  len                          10i 0 value
123     d  msg                            *   value options(*string)               const xmlChar *
124     d  ap                                 likeds(xmlVaList)
125
126     d xmlGetUTF8Char  pr            10i 0 extproc('xmlGetUTF8Char')
127     d  utf                            *   value options(*string)               const uns. char *
128     d  len                          10i 0
129
130     d xmlCheckUTF8    pr            10i 0 extproc('xmlCheckUTF8')
131     d  utf                            *   value options(*string)               const uns. char *
132
133     d xmlUTF8Strsize  pr            10i 0 extproc('xmlUTF8Strsize')
134     d  utf                            *   value options(*string)               const xmlChar *
135     d  len                          10i 0 value
136
137     d xmlUTF8Strndup  pr              *   extproc('xmlUTF8Strndup')            xmlChar *
138     d  utf                            *   value options(*string)               const xmlChar *
139     d  len                          10i 0 value
140
141     d xmlUTF8Strpos   pr              *   extproc('xmlUTF8Strpos')             const xmlChar *
142     d  utf                            *   value options(*string)               const xmlChar *
143     d  pos                          10i 0 value
144
145     d xmlUTF8Strloc   pr            10i 0 extproc('xmlUTF8Strloc')
146     d  utf                            *   value options(*string)               const xmlChar *
147     d  utfchar                        *   value options(*string)               const xmlChar *
148
149     d xmlUTF8Strsub   pr              *   extproc('xmlUTF8Strsub')             xmlChar *
150     d  utf                            *   value options(*string)               const xmlChar *
151     d  start                        10i 0 value
152     d  len                          10i 0 value
153
154     d xmlUTF8Strlen   pr            10i 0 extproc('xmlUTF8Strlen')
155     d  utf                            *   value options(*string)               const xmlChar *
156
157     d xmlUTF8Size     pr            10i 0 extproc('xmlUTF8Size')
158     d  utf                            *   value options(*string)               const xmlChar *
159
160     d xmlUTF8Charcmp  pr            10i 0 extproc('xmlUTF8Charcmp')
161     d  utf1                           *   value options(*string)               const xmlChar *
162     d  utf2                           *   value options(*string)               const xmlChar *
163
164      /endif                                                                    XML_STRING_H__
165