Don't include gettext.h.
authordrepper <drepper>
Tue, 20 Mar 2001 00:41:59 +0000 (00:41 +0000)
committerdrepper <drepper>
Tue, 20 Mar 2001 00:41:59 +0000 (00:41 +0000)
(offsetof): Provide fallback for platforms that lack it, like SunOS4.
(set_binding_values): Use offsetof, not sizeof.
Include libgnuintl.h instead of libgettext.h.
(set_binding_values): Convert prototype to K&R C syntax.

intl/bindtextdom.c

index 45000a6..1b22bfc 100644 (file)
@@ -1,5 +1,5 @@
 /* Implementation of the bindtextdomain(3) function
-   Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public License as
@@ -42,9 +42,8 @@ void free ();
 #ifdef _LIBC
 # include <libintl.h>
 #else
-# include "libgettext.h"
+# include "libgnuintl.h"
 #endif
-#include "gettext.h"
 #include "gettextP.h"
 
 #ifdef _LIBC
@@ -65,6 +64,11 @@ void free ();
 # define _nl_domain_bindings _nl_domain_bindings__
 #endif
 
+/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>.  */
+#ifndef offsetof
+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
+#endif
+
 /* @@ end of prolog @@ */
 
 /* Contains the default location of the message catalogs.  */
@@ -93,8 +97,9 @@ __libc_rwlock_define (extern, _nl_state_lock)
 #endif
 
 /* Prototypes for local functions.  */
-static void set_binding_values (const char *domainname, const char **dirnamep,
-                               const char **codesetp);
+static void set_binding_values PARAMS ((const char *domainname,
+                                       const char **dirnamep,
+                                       const char **codesetp));
      
 /* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
    to be used for the DOMAINNAME message catalog.
@@ -234,7 +239,7 @@ set_binding_values (domainname, dirnamep, codesetp)
       /* We have to create a new binding.  */
       size_t len = strlen (domainname) + 1;
       struct binding *new_binding =
-       (struct binding *) malloc (sizeof (*new_binding) + len);
+       (struct binding *) malloc (offsetof (struct binding, domainname) + len);
 
       if (__builtin_expect (new_binding == NULL, 0))
        goto failed;