freebsd-dev/lib/libc
Tim J. Robbins e5996857ad Make regular expression matching aware of multibyte characters. The general
idea is that we perform multibyte->wide character conversion while parsing
and compiling, then convert byte sequences to wide characters when they're
needed for comparison and stepping through the string during execution.

As with tr(1), the main complication is to efficiently represent sets of
characters in bracket expressions. The old bitmap representation is replaced
by a bitmap for the first 256 characters combined with a vector of individual
wide characters, a vector of character ranges (for [A-Z] etc.), and a vector
of character classes (for [[:alpha:]] etc.).

One other point of interest is that although the Boyer-Moore algorithm had
to be disabled in the general multibyte case, it is still enabled for UTF-8
because of its self-synchronizing nature. This greatly speeds up matching
by reducing the number of multibyte conversions that need to be done.
2004-07-12 07:35:59 +00:00
..
alpha Implement the classification macros isfinite(), isinf(), isnan(), and 2004-07-09 03:32:40 +00:00
amd64 Implement the classification macros isfinite(), isinf(), isnan(), and 2004-07-09 03:32:40 +00:00
arm Implement the classification macros isfinite(), isinf(), isnan(), and 2004-07-09 03:32:40 +00:00
compat-43 Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
db Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
gdtoa
gen Unbreak alpha: On alpha a long double is the same as a double and 2004-07-10 15:52:26 +00:00
gmon Document the location of the header file which declares the function 2004-06-14 18:41:24 +00:00
i386 Implement the classification macros isfinite(), isinf(), isnan(), and 2004-07-09 03:32:40 +00:00
ia64 Implement the classification macros isfinite(), isinf(), isnan(), and 2004-07-09 03:32:40 +00:00
include When a dynamic NSS module is built and linked against a thread 2004-03-30 15:56:15 +00:00
locale Add fast paths for conversion of plain ASCII characters. 2004-07-09 15:46:06 +00:00
net Markup nits. 2004-07-07 20:15:31 +00:00
nls
posix1e Fix the NAME section making whatis(1) happy in particular. 2004-07-05 17:12:53 +00:00
powerpc Implement the classification macros isfinite(), isinf(), isnan(), and 2004-07-09 03:32:40 +00:00
quad
regex Make regular expression matching aware of multibyte characters. The general 2004-07-12 07:35:59 +00:00
rpc Eliminate double whitespace. 2004-07-03 22:30:10 +00:00
softfloat Import the softfloat emulation library, needed for FreeBSD/arm right now. 2004-05-14 12:13:06 +00:00
sparc64 Implement the classification macros isfinite(), isinf(), isnan(), and 2004-07-09 03:32:40 +00:00
stdio Slightly reorganize and simplify. 2004-07-09 15:12:10 +00:00
stdlib mdoc(7) fixes. 2004-07-07 19:57:16 +00:00
stdtime Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
string Mechanically kill hard sentence breaks. 2004-07-02 23:52:20 +00:00
sys Document the new PT_LWPINFO request. In fact, the request is so new 2004-07-12 04:43:58 +00:00
uuid
xdr We use __arm__, not __arm32__. 2004-05-14 11:51:22 +00:00
yp
Makefile Import the FreeBSD/arm libc bits. 2004-05-14 12:04:31 +00:00