* intl/dcigettext.c (DCIGETTEXT): Restore errno only right before
authorRoland McGrath <roland@gnu.org>
Fri, 20 Sep 2002 23:25:36 +0000 (23:25 +0000)
committerRoland McGrath <roland@gnu.org>
Fri, 20 Sep 2002 23:25:36 +0000 (23:25 +0000)
returning.

ChangeLog
intl/dcigettext.c

index 98cfd31..0678bff 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2002-09-19  Bruno Haible  <bruno@clisp.org>
+
+       * intl/dcigettext.c (DCIGETTEXT): Restore errno only right before
+       returning.
+
 2002-09-17  Bruno Haible  <bruno@clisp.org>
 
        * sysdeps/generic/utmp-equal.h: New file, extracted from utmp_file.c.
index 81bfdce..42d39a1 100644 (file)
@@ -597,7 +597,6 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
              /* Found the translation of MSGID1 in domain DOMAIN:
                 starting at RETVAL, RETLEN bytes.  */
              FREE_BLOCKS (block_list);
-             __set_errno (saved_errno);
 #if defined HAVE_TSEARCH || defined _LIBC
              if (foundp == NULL)
                {
@@ -636,6 +635,8 @@ DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
                  (*foundp)->translation_length = retlen;
                }
 #endif
+             __set_errno (saved_errno);
+
              /* Now deal with plural.  */
              if (plural)
                retval = plural_lookup (domain, n, retval, retlen);