Skip to content

Commit b3e0aa0

Browse files
Oops, add files
1 parent dc0c4b3 commit b3e0aa0

3 files changed

Lines changed: 170 additions & 17 deletions

File tree

‎Misc/sbom.spdx.json‎

Lines changed: 36 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Modules/expat/xcs.c‎

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
/*
2+
__ __ _
3+
___\ \/ /_ __ __ _| |_
4+
/ _ \\ /| '_ \ / _` | __|
5+
| __// \| |_) | (_| | |_
6+
\___/_/\_\ .__/ \__,_|\__|
7+
|_| XML parser
8+
9+
Copyright (c) 2022-2026 Sebastian Pipping <sebastian@pipping.org>
10+
Licensed under the MIT license:
11+
12+
Permission is hereby granted, free of charge, to any person obtaining
13+
a copy of this software and associated documentation files (the
14+
"Software"), to deal in the Software without restriction, including
15+
without limitation the rights to use, copy, modify, merge, publish,
16+
distribute, sublicense, and/or sell copies of the Software, and to permit
17+
persons to whom the Software is furnished to do so, subject to the
18+
following conditions:
19+
20+
The above copyright notice and this permission notice shall be included
21+
in all copies or substantial portions of the Software.
22+
23+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
26+
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27+
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
28+
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
29+
USE OR OTHER DEALINGS IN THE SOFTWARE.
30+
31+
SPDX-License-Identifier: MIT
32+
*/
33+
34+
#include "xcs.h"
35+
36+
#if defined(XML_UNICODE)
37+
# if defined(XML_UNICODE_WCHAR_T)
38+
# include <wchar.h> // for wcscmp, wcslen, wcsncmp
39+
# endif
40+
#else
41+
# include <string.h> // for strcmp, strlen, strncmp
42+
#endif
43+
44+
size_t
45+
xcslen(const XML_Char *s) {
46+
#ifdef XML_UNICODE
47+
# ifdef XML_UNICODE_WCHAR_T
48+
return wcslen(s);
49+
# else
50+
// XML_Char is unsigned short
51+
size_t len = 0;
52+
while (s[len]) {
53+
len++;
54+
}
55+
return len;
56+
# endif
57+
#else
58+
return strlen(s);
59+
#endif
60+
}
61+
62+
int
63+
xcscmp(const XML_Char *a, const XML_Char *b) {
64+
#if defined(XML_UNICODE)
65+
# if defined(XML_UNICODE_WCHAR_T)
66+
return wcscmp(a, b);
67+
# else
68+
for (; a[0] && b[0] && a[0] == b[0]; a++, b++)
69+
;
70+
return a[0] - b[0];
71+
# endif
72+
#else
73+
return strcmp(a, b);
74+
#endif
75+
}
76+
77+
int
78+
xcsncmp(const XML_Char *a, const XML_Char *b, size_t len) {
79+
#if defined(XML_UNICODE)
80+
# if defined(XML_UNICODE_WCHAR_T)
81+
return wcsncmp(a, b, len);
82+
# else
83+
for (; len > 0 && a[0] && b[0] && a[0] == b[0]; len--, a++, b++) {
84+
}
85+
return (len == 0) ? 0 : (a[0] - b[0]);
86+
# endif
87+
#else
88+
return strncmp(a, b, len);
89+
#endif
90+
}

‎Modules/expat/xcs.h‎

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
__ __ _
3+
___\ \/ /_ __ __ _| |_
4+
/ _ \\ /| '_ \ / _` | __|
5+
| __// \| |_) | (_| | |_
6+
\___/_/\_\ .__/ \__,_|\__|
7+
|_| XML parser
8+
9+
Copyright (c) 2026 Sebastian Pipping <sebastian@pipping.org>
10+
Licensed under the MIT license:
11+
12+
Permission is hereby granted, free of charge, to any person obtaining
13+
a copy of this software and associated documentation files (the
14+
"Software"), to deal in the Software without restriction, including
15+
without limitation the rights to use, copy, modify, merge, publish,
16+
distribute, sublicense, and/or sell copies of the Software, and to permit
17+
persons to whom the Software is furnished to do so, subject to the
18+
following conditions:
19+
20+
The above copyright notice and this permission notice shall be included
21+
in all copies or substantial portions of the Software.
22+
23+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
26+
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27+
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
28+
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
29+
USE OR OTHER DEALINGS IN THE SOFTWARE.
30+
31+
SPDX-License-Identifier: MIT
32+
*/
33+
34+
#if ! defined(EXPAT_XCS_H)
35+
36+
# include <stddef.h> // size_t
37+
# include "expat_external.h" // for XML_Char
38+
39+
extern size_t xcslen(const XML_Char *s);
40+
41+
extern int xcscmp(const XML_Char *a, const XML_Char *b);
42+
extern int xcsncmp(const XML_Char *a, const XML_Char *b, size_t len);
43+
44+
#endif // ! defined(EXPAT_XCS_H)

0 commit comments

Comments
 (0)