about summary refs log tree commit diff
path: root/iconv/strtab.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-08-28 04:52:25 +0000
committerUlrich Drepper <drepper@redhat.com>2001-08-28 04:52:25 +0000
commitc06a49c551ebfc7f320a05546b5a013714ac82e5 (patch)
tree99a3e7af0141dfca57cf119bb094b14cfe226af5 /iconv/strtab.c
parent497b760b341c38565531e964a33eec0eec343be5 (diff)
downloadglibc-c06a49c551ebfc7f320a05546b5a013714ac82e5.tar.gz
glibc-c06a49c551ebfc7f320a05546b5a013714ac82e5.tar.xz
glibc-c06a49c551ebfc7f320a05546b5a013714ac82e5.zip
Update.
2001-08-27  Ulrich Drepper  <drepper@redhat.com>

	* misc/syslog.c (vsyslog): Try a bit harder to use syslogd.  If
	the connection went down after we first used it try to connect
	again and resend the message before printing to the console.
	Reported by Coserea Gh. Tudor <tudore@tudore.gecadsoftware.com>.

2001-08-27  Jakub Jelinek  <jakub@redhat.com>

	* string/tst-strlen.c (main): Test strnlen (, -1) too.
	* sysdeps/generic/strnlen.c (__strnlen): Fix for maxlens with top
	bit set.

2001-08-27  Ulrich Drepper  <drepper@redhat.com>

	* iconv/strtab.c (searchstring): Use correct length for
	comparison.
	(strtabadd): Account total size correct if new string has old string as
	substring.
Diffstat (limited to 'iconv/strtab.c')
-rw-r--r--iconv/strtab.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/iconv/strtab.c b/iconv/strtab.c
index d567f57e88..4189f97281 100644
--- a/iconv/strtab.c
+++ b/iconv/strtab.c
@@ -193,7 +193,7 @@ searchstring (struct Strent **sep, struct Strent *newstr)
 
   /* Compare the strings.  */
   cmpres = memcmp ((*sep)->reverse, newstr->reverse,
-		   MIN ((*sep)->len, newstr->len));
+		   MIN ((*sep)->len, newstr->len) - 1);
   if (cmpres == 0)
     /* We found a matching string.  */
     return sep;
@@ -236,10 +236,9 @@ strtabadd (struct Strtab *st, const char *str, size_t len)
 	  /* When we get here it means that the string we are about to
 	     add has a common prefix with a string we already have but
 	     it is longer.  In this case we have to put it first.  */
+	  st->total += newstr->len - (*sep)->len;
 	  newstr->next = *sep;
 	  *sep = newstr;
-
-	  st->total += newstr->len - (*sep)->len;
 	}
       else
 	{