summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rwxr-xr-xconfigure2
-rw-r--r--configure.in3
-rw-r--r--iconvdata/iso-2022-jp.c108
-rw-r--r--manual/lang.texi2
-rw-r--r--string/bits/string2.h4
6 files changed, 82 insertions, 55 deletions
diff --git a/ChangeLog b/ChangeLog
index 471f60fd2d..e4d2743d61 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2002-05-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * configure.in (DO_STATIC_NSS): Define if --disable-shared.
+
+2002-05-26 Bruno Haible <bruno@clisp.org>
+
+ * iconvdata/iso-2022-jp.c (BODY for TO_LOOP): Avoid running off the
+ end of the ISO-8859-7 from idx table.
+
+2002-05-27 Ulrich Drepper <drepper@redhat.com>
+
+ * manual/lang.texi: Fix FLT_EPSILON description [PR libc/3649].
+
+2002-05-24 David S. Miller <davem@redhat.com>
+
+ * string/bits/string2.h (memset): Do not try to optimize when
+ not _STRING_ARCH_unaligned if GCC will do the right thing.
+
2002-05-21 Isamu Hasegawa <isamu@yamato.ibm.com>
* posix/regex.c: Define `inline' as a macro into nothing for the
diff --git a/configure b/configure
index bb663a7983..27f2e23969 100755
--- a/configure
+++ b/configure
@@ -860,7 +860,7 @@ else
static_nss=no
fi
-if test x"$static_nss" = xyes; then
+if test x"$static_nss" = xyes || test x"$shared" = xno; then
cat >> confdefs.h <<\EOF
#define DO_STATIC_NSS 1
EOF
diff --git a/configure.in b/configure.in
index 3501f858c0..f763792750 100644
--- a/configure.in
+++ b/configure.in
@@ -177,7 +177,8 @@ dnl static NSS modules.
AC_ARG_ENABLE(static-nss, dnl
[ --enable-static-nss build static NSS modules [default=no]],
static_nss=$enableval, static_nss=no)
-if test x"$static_nss" = xyes; then
+dnl Enable static NSS also if we build no shared objects.
+if test x"$static_nss" = xyes || test x"$shared" = xno; then
AC_DEFINE(DO_STATIC_NSS)
fi
diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c
index 5e4ddaa441..18a89cd16a 100644
--- a/iconvdata/iso-2022-jp.c
+++ b/iconvdata/iso-2022-jp.c
@@ -708,25 +708,29 @@ static const cvlist_t conversion_lists[4] =
} \
else if (set2 == ISO88597_set) \
{ \
- const struct gap *rp = from_idx; \
- \
- while (ch > rp->end) \
- ++rp; \
- if (ch >= rp->start) \
+ if (__builtin_expect (ch < 0xffff, 1)) \
{ \
- unsigned char res = iso88597_from_ucs4[ch - 0xa0 + rp->idx]; \
- if (res != '\0') \
+ const struct gap *rp = from_idx; \
+ \
+ while (ch > rp->end) \
+ ++rp; \
+ if (ch >= rp->start) \
{ \
- if (__builtin_expect (outptr + 3 > outend, 0)) \
+ unsigned char res = \
+ iso88597_from_ucs4[ch - 0xa0 + rp->idx]; \
+ if (res != '\0') \
{ \
- result = __GCONV_FULL_OUTPUT; \
- break; \
- } \
+ if (__builtin_expect (outptr + 3 > outend, 0)) \
+ { \
+ result = __GCONV_FULL_OUTPUT; \
+ break; \
+ } \
\
- *outptr++ = ESC; \
- *outptr++ = 'N'; \
- *outptr++ = res; \
- written = 3; \
+ *outptr++ = ESC; \
+ *outptr++ = 'N'; \
+ *outptr++ = res; \
+ written = 3; \
+ } \
} \
} \
} \
@@ -817,43 +821,45 @@ static const cvlist_t conversion_lists[4] =
} \
\
/* Try ISO 8859-7 upper half. */ \
- { \
- const struct gap *rp = from_idx; \
+ if (__builtin_expect (ch < 0xffff, 1)) \
+ { \
+ const struct gap *rp = from_idx; \
\
- while (ch > rp->end) \
- ++rp; \
- if (ch >= rp->start) \
- { \
- unsigned char res = \
- iso88597_from_ucs4[ch - 0xa0 + rp->idx]; \
- if (res != '\0') \
- { \
- if (set2 != ISO88597_set) \
- { \
- if (__builtin_expect (outptr + 3 > outend, 0))\
- { \
- result = __GCONV_FULL_OUTPUT; \
- break; \
- } \
- *outptr++ = ESC; \
- *outptr++ = '.'; \
- *outptr++ = 'F'; \
- set2 = ISO88597_set; \
- } \
- \
- if (__builtin_expect (outptr + 3 > outend, 0)) \
- { \
- result = __GCONV_FULL_OUTPUT; \
- break; \
- } \
- *outptr++ = ESC; \
- *outptr++ = 'N'; \
- *outptr++ = res; \
- result = __GCONV_OK; \
- break; \
- } \
- } \
- } \
+ while (ch > rp->end) \
+ ++rp; \
+ if (ch >= rp->start) \
+ { \
+ unsigned char res = \
+ iso88597_from_ucs4[ch - 0xa0 + rp->idx]; \
+ if (res != '\0') \
+ { \
+ if (set2 != ISO88597_set) \
+ { \
+ if (__builtin_expect (outptr + 3 > outend, \
+ 0)) \
+ { \
+ result = __GCONV_FULL_OUTPUT; \
+ break; \
+ } \
+ *outptr++ = ESC; \
+ *outptr++ = '.'; \
+ *outptr++ = 'F'; \
+ set2 = ISO88597_set; \
+ } \
+ \
+ if (__builtin_expect (outptr + 3 > outend, 0)) \
+ { \
+ result = __GCONV_FULL_OUTPUT; \
+ break; \
+ } \
+ *outptr++ = ESC; \
+ *outptr++ = 'N'; \
+ *outptr++ = res; \
+ result = __GCONV_OK; \
+ break; \
+ } \
+ } \
+ } \
\
break; \
\
diff --git a/manual/lang.texi b/manual/lang.texi
index ecde184c79..9f5c540735 100644
--- a/manual/lang.texi
+++ b/manual/lang.texi
@@ -1202,7 +1202,7 @@ macro's value is the same as the type it describes.
@comment ISO
@item FLT_EPSILON
-This is the maximum positive floating point number of type @code{float}
+This is the minimum positive floating point number of type @code{float}
such that @code{1.0 + FLT_EPSILON != 1.0} is true. It's supposed to
be no greater than @code{1E-5}.
diff --git a/string/bits/string2.h b/string/bits/string2.h
index da168facc2..a02b0558f1 100644
--- a/string/bits/string2.h
+++ b/string/bits/string2.h
@@ -178,10 +178,12 @@ __STRING2_COPY_TYPE (8);
\
__s; })
# else
-# define memset(s, c, n) \
+# if ! __GNUC_PREREQ (3, 0)
+# define memset(s, c, n) \
(__extension__ (__builtin_constant_p (c) && (c) == '\0' \
? ({ void *__s = (s); __bzero (__s, n); __s; }) \
: memset (s, c, n)))
+# endif
# endif
/* GCC optimizes memset(s, 0, n) but not bzero(s, n).