summaryrefslogtreecommitdiff
path: root/libc/misc/regex
diff options
context:
space:
mode:
Diffstat (limited to 'libc/misc/regex')
-rw-r--r--libc/misc/regex/_regex.h24
-rw-r--r--libc/misc/regex/regex.c13
-rw-r--r--libc/misc/regex/regex_old.c3
3 files changed, 25 insertions, 15 deletions
diff --git a/libc/misc/regex/_regex.h b/libc/misc/regex/_regex.h
index cf3a5a2c1..01bb21158 100644
--- a/libc/misc/regex/_regex.h
+++ b/libc/misc/regex/_regex.h
@@ -4,42 +4,42 @@
#include <regex.h>
/* Document internal interfaces. */
-extern reg_syntax_t __re_set_syntax (reg_syntax_t syntax);
+extern reg_syntax_t __re_set_syntax (reg_syntax_t syntax) attribute_hidden;
extern const char *__re_compile_pattern (const char *pattern, size_t length,
- struct re_pattern_buffer *buffer);
+ struct re_pattern_buffer *buffer) attribute_hidden;
-extern int __re_compile_fastmap (struct re_pattern_buffer *buffer);
+extern int __re_compile_fastmap (struct re_pattern_buffer *buffer) attribute_hidden;
extern int __re_search (struct re_pattern_buffer *buffer, const char *string,
int length, int start, int range,
- struct re_registers *regs);
+ struct re_registers *regs) attribute_hidden;
extern int __re_search_2
(struct re_pattern_buffer *buffer, const char *string1,
int length1, const char *string2, int length2,
- int start, int range, struct re_registers *regs, int stop);
+ int start, int range, struct re_registers *regs, int stop) attribute_hidden;
extern int __re_match
(struct re_pattern_buffer *buffer, const char *string,
- int length, int start, struct re_registers *regs);
+ int length, int start, struct re_registers *regs) attribute_hidden;
extern int __re_match_2
(struct re_pattern_buffer *buffer, const char *string1,
int length1, const char *string2, int length2,
- int start, struct re_registers *regs, int stop);
+ int start, struct re_registers *regs, int stop) attribute_hidden;
extern void __re_set_registers
(struct re_pattern_buffer *buffer, struct re_registers *regs,
- unsigned num_regs, regoff_t *starts, regoff_t *ends);
+ unsigned num_regs, regoff_t *starts, regoff_t *ends) attribute_hidden;
-extern int __regcomp (regex_t *__preg, const char *__pattern, int __cflags);
+extern int __regcomp (regex_t *__preg, const char *__pattern, int __cflags) attribute_hidden;
extern int __regexec (const regex_t *__preg, const char *__string,
- size_t __nmatch, regmatch_t __pmatch[], int __eflags);
+ size_t __nmatch, regmatch_t __pmatch[], int __eflags) attribute_hidden;
extern size_t __regerror (int __errcode, const regex_t *__preg,
- char *__errbuf, size_t __errbuf_size);
+ char *__errbuf, size_t __errbuf_size) attribute_hidden;
-extern void __regfree (regex_t *__preg);
+extern void __regfree (regex_t *__preg) attribute_hidden;
#endif
diff --git a/libc/misc/regex/regex.c b/libc/misc/regex/regex.c
index 789e78b49..0eefa85c9 100644
--- a/libc/misc/regex/regex.c
+++ b/libc/misc/regex/regex.c
@@ -32,9 +32,17 @@
#include <stdint.h>
#ifdef __UCLIBC_HAS_WCHAR__
#define RE_ENABLE_I18N
+#define wcscoll __wcscoll
+#define mbrtowc __mbrtowc
+#define iswctype __iswctype
+#define iswlower __iswlower
+#define iswalnum __iswalnum
#include <wchar.h>
#include <wctype.h>
+/* attribute_hidden produces text relocation */
+//extern int __wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) __THROW /*attribute_hidden*/;
+
extern size_t __wcrtomb (char *__restrict __s, wchar_t __wc,
mbstate_t *__restrict __ps) attribute_hidden;
@@ -42,7 +50,7 @@ extern wint_t __btowc (int __c) attribute_hidden;
extern wctype_t __wctype (__const char *__property) attribute_hidden;
-extern int __iswctype (wint_t __wc, wctype_t __desc) /*attribute_hidden*/;
+//extern int __iswctype (wint_t __wc, wctype_t __desc) /*attribute_hidden*/;
#endif
#define memcmp __memcmp
@@ -55,10 +63,9 @@ extern int __iswctype (wint_t __wc, wctype_t __desc) /*attribute_hidden*/;
#define strncpy __strncpy
#define getenv __getenv
#define strcasecmp __strcasecmp
-#define wcscoll __wcscoll
extern void *__mempcpy (void *__restrict __dest,
- __const void *__restrict __src, size_t __n) /*attribute_hidden*/;
+ __const void *__restrict __src, size_t __n) attribute_hidden;
#endif
/* Make sure noone compiles this code with a C++ compiler. */
diff --git a/libc/misc/regex/regex_old.c b/libc/misc/regex/regex_old.c
index 486e29c40..ab471ee1e 100644
--- a/libc/misc/regex/regex_old.c
+++ b/libc/misc/regex/regex_old.c
@@ -28,7 +28,10 @@
#define wcslen __wcslen
/* for some reason this does not work */
#define memcpy __memcpy
+#define mbrtowc __mbrtowc
#define wcscoll __wcscoll
+#define iswctype __iswctype
+#define iswalnum __iswalnum
/* To exclude some unwanted junk.... */
#undef _LIBC