]> sourceware.org Git - glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Wed, 7 Feb 2001 18:46:03 +0000 (18:46 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 7 Feb 2001 18:46:03 +0000 (18:46 +0000)
2001-02-07  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/gnu/netinet/tcp.h: Correct values of TCP_ macros.
Patch by Pekka.Pietikainen@cern.ch.

* posix/regex.c: Correct several problems with 64-bit architectures
introduced in the MBS changes.
Patch by Isamu Hasegawa <isamu@yamato.ibm.com>.

2001-02-07  Jakub Jelinek  <jakub@redhat.com>

* math/tgmath.h: Only add l suffixes if __NO_LONG_DOUBLE_MATH is
not defined.
* sysdeps/alpha/fpu/bits/mathinline.h: Honour __NO_MATH_INLINES.

ChangeLog
posix/regex.c
sysdeps/alpha/fpu/bits/mathinline.h
sysdeps/gnu/netinet/tcp.h

index 0d9b83637815f29c026524bb897b9c6bc5d61801..efcb817c8a5c82df302e46089bc3e2ae3f254a2d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2001-02-07  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/gnu/netinet/tcp.h: Correct values of TCP_ macros.
+       Patch by Pekka.Pietikainen@cern.ch.
+
+       * posix/regex.c: Correct several problems with 64-bit architectures
+       introduced in the MBS changes.
+       Patch by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+2001-02-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * math/tgmath.h: Only add l suffixes if __NO_LONG_DOUBLE_MATH is
+       not defined.
+       * sysdeps/alpha/fpu/bits/mathinline.h: Honour __NO_MATH_INLINES.
+
 2001-02-07  Andreas Jaeger  <aj@suse.de>
 
        * manual/install.texi (Tools for Compilation): Fix typo.
index a6e6507542c9217fb240e1654454b957d6b26c4b..ec25642e3186bc4795aae98705d954a568a3170b 100644 (file)
@@ -62,6 +62,7 @@
 # define US_CHAR_TYPE wchar_t/* unsigned character type */
 # define COMPILED_BUFFER_VAR wc_buffer
 # define OFFSET_ADDRESS_SIZE 1 /* the size which STORE_NUMBER macro use */
+# define CHAR_CLASS_SIZE (sizeof(wctype_t)/sizeof(CHAR_TYPE)+1)
 # define PUT_CHAR(c) \
   do {                                                                       \
     if (MC_CUR_MAX == 1)                                                     \
@@ -2643,6 +2644,7 @@ regex_compile (pattern, size, syntax, bufp)
               charset[5] = p (= length of chars)
 
                charset[6] = char_class (wctype_t)
+               charset[6+CHAR_CLASS_SIZE] = char_class (wctype_t)
                          ...
                charset[l+5]  = char_class (wctype_t)
 
@@ -2817,15 +2819,16 @@ regex_compile (pattern, size, syntax, bufp)
                         if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
 
                        /* Allocate the space for character class.  */
-                        GET_BUFFER_SPACE(1);
+                        GET_BUFFER_SPACE(CHAR_CLASS_SIZE);
                        /* Update the pointer to indicate end of buffer.  */
-                        b++;
+                        b += CHAR_CLASS_SIZE;
                        /* Move data which follow character classes
                            not to violate the data.  */
-                        insert_space(1, laststart+6, b-1);
+                        insert_space(CHAR_CLASS_SIZE, laststart + 6, b - 1);
                        /* Store the character class.  */
-                        laststart[6] = (CHAR_TYPE) wt;
-                        laststart[1]++; /* Update length of char_classes */
+                        *((wctype_t*)(laststart + 6)) = wt;
+                        /* Update length of char_classes */
+                        laststart[1] += CHAR_CLASS_SIZE;
 
                         had_char_class = true;
                       }
@@ -2991,7 +2994,7 @@ regex_compile (pattern, size, syntax, bufp)
                                    /* Adjust for the alignment.  */
                                    idx = (idx + 3) & ~4;
 
-                                   str[0] = (wchar_t) &extra[idx + 4];
+                                   str[0] = (wchar_t) idx + 4;
                                  }
                                else if (symb_table[2 * elem] == 0 && c1 == 1)
                                  {
@@ -4356,7 +4359,8 @@ group_in_compile_stack (compile_stack, regnum)
 }
 
 #ifdef MBS_SUPPORT
-/* This insert space into the pattern.  */
+/* This insert space, which size is "num", into the pattern at "loc".
+   "end" must point the end of the allocated buffer.  */
 static void
 insert_space (num, loc, end)
      int num;
@@ -4397,13 +4401,15 @@ compile_range (range_start_char, p_ptr, pend, translate, syntax, b,
     {
       const char *collseq = (const char *) _NL_CURRENT(LC_COLLATE,
                                                       _NL_COLLATE_COLLSEQWC);
+      const unsigned char *extra = (const unsigned char *)
+       _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
 
       if (range_start_char < -1)
        {
          /* range_start is a collating symbol.  */
          int32_t *wextra;
          /* Retreive the index and get collation sequence value.  */
-         wextra = (int32_t*)char_set[-range_start_char];
+         wextra = (int32_t*)(extra + char_set[-range_start_char]);
          start_val = wextra[1 + *wextra];
        }
       else
@@ -5993,19 +5999,26 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
               2*ranges_length + chars_length;
 
             /* match with char_class?  */
-           for (i = 0; i < char_class_length ; i++)
-              if (iswctype((wint_t)c, (wctype_t)(*workp++)))
-                goto char_set_matched;
+           for (i = 0; i < char_class_length ; i += CHAR_CLASS_SIZE)
+             {
+               wctype_t wctype = *((wctype_t*)workp);
+               workp += CHAR_CLASS_SIZE;
+               if (iswctype((wint_t)c, wctype))
+                 goto char_set_matched;
+             }
 
             /* match with collating_symbol?  */
 # ifdef _LIBC
            if (nrules != 0)
              {
+               const unsigned char *extra = (const unsigned char *)
+                 _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
+
                for (workp2 = workp + coll_symbol_length ; workp < workp2 ;
                     workp++)
                  {
                    int32_t *wextra;
-                   wextra = (int32_t*) *workp++;
+                   wextra = (int32_t*)(extra + *workp++);
                    for (i = 0; i < *wextra; ++i)
                      if (TRANSLATE(d[i]) != wextra[1 + i])
                        break;
@@ -6125,7 +6138,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 
                /* Update d, however d will be incremented at
                   char_set_matched:, we decrement d here.  */
-               d = backup_d + (wint_t)cp - (wint_t)str_buf - 1;
+               d = backup_d + ((wchar_t*)cp - (wchar_t*)str_buf - 1);
                if (d >= dend)
                  {
                    if (dend == end_match_2)
index 065009c626917910ec6b08500ce4ee97576c1835..b7d5c3c95e34eeb40fe2e50fdffe23434e4c133a 100644 (file)
@@ -1,5 +1,5 @@
 /* Inline math functions for Alpha.
-   Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David Mosberger-Tang.
 
@@ -58,6 +58,8 @@
       !isunordered(__x, __y) && __x != __y; }))
 #endif /* ISO C99 */
 
+#if !defined __NO_MATH_INLINES && defined __OPTIMIZE__
+
 #define __inline_copysign(NAME, TYPE)                                  \
 __MATH_INLINE TYPE                                                     \
 NAME (TYPE __x, TYPE __y) __THROW                                      \
@@ -174,4 +176,6 @@ __MATH_INLINE double fdim (double __x, double __y) __THROW
   return __x < __y ? 0.0 : __x - __y;
 }
 
-#endif
+#endif /* C99 */
+
+#endif /* __NO_MATH_INLINES */
index cafb6b18801608db8b1597ee2b1bc6138537f6bb..076e332c18a4939f672ccddfa0bda095e024c26e 100644 (file)
 /*
  * User-settable options (used with setsockopt).
  */
-#define        TCP_NODELAY      0x01   /* Don't delay send to coalesce packets  */
-#define        TCP_MAXSEG       0x02   /* Set maximum segment size  */
-#define TCP_CORK        0x03   /* Control sending of partial frames  */
-#define TCP_KEEPIDLE    0x04   /* Start keeplives after this period */
-#define TCP_KEEPINTVL   0x05   /* Interval between keepalives */
-#define TCP_KEEPCNT     0x06   /* Number of keepalives before death */
-#define TCP_SYNCNT      0x07   /* Number of SYN retransmits */
-#define TCP_LINGER2     0x08   /* Life time of orphaned FIN-WAIT-2 state */
-#define TCP_DEFER_ACCEPT 0x09  /* Wake up listener only when data arrive */
-#define TCP_WINDOW_CLAMP 0x10  /* Bound advertised window */
-#define TCP_INFO        0x11   /* Information about this connection. */
+#define        TCP_NODELAY      1      /* Don't delay send to coalesce packets  */
+#define        TCP_MAXSEG       2      /* Set maximum segment size  */
+#define TCP_CORK        3      /* Control sending of partial frames  */
+#define TCP_KEEPIDLE    4      /* Start keeplives after this period */
+#define TCP_KEEPINTVL   5      /* Interval between keepalives */
+#define TCP_KEEPCNT     6      /* Number of keepalives before death */
+#define TCP_SYNCNT      7      /* Number of SYN retransmits */
+#define TCP_LINGER2     8      /* Life time of orphaned FIN-WAIT-2 state */
+#define TCP_DEFER_ACCEPT 9     /* Wake up listener only when data arrive */
+#define TCP_WINDOW_CLAMP 10    /* Bound advertised window */
+#define TCP_INFO        11     /* Information about this connection. */
 
 #ifdef __USE_MISC
 # include <sys/types.h>
This page took 0.061579 seconds and 5 git commands to generate.