/* Implementation of the bindtextdomain(3) function Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation,
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H # include <config.h> #endif
#ifdefined STDC_HEADERS || defined _LIBC # include <stdlib.h> #else # ifdef HAVE_MALLOC_H # include <malloc.h> # else void free (); # endif #endif
#ifdefined HAVE_STRING_H || defined _LIBC # include <string.h> #else # include <strings.h> # ifndef memcpy # define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num) # endif #endif
#ifdef _LIBC # include <libintl.h> #else # include "libgettext.h" #endif #include"gettext.h" #include"gettextP.h"
/* @@ end of prolog @@ */
/* Contains the default location of the message catalogs. */ externconstchar _nl_default_dirname[];
/* List with bindings of specific domains. */ externstruct binding *_nl_domain_bindings;
/* Names for the libintl functions are a problem. They must not clash with existing names and they should follow ANSI C. But this source code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */ #ifdef _LIBC # define BINDTEXTDOMAIN __bindtextdomain #else # define BINDTEXTDOMAIN bindtextdomain__ #endif
/* Specify that the DOMAINNAME message catalog will be found
in DIRNAME rather than in the system locale data base. */ char *
BINDTEXTDOMAIN (domainname, dirname) constchar *domainname; constchar *dirname;
{ struct binding *binding;
/* Some sanity checks. */ if (domainname == NULL || domainname[0] == '\0') return NULL;
for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
{ int compare = strcmp (domainname, binding->domainname); if (compare == 0) /* We found it! */ break; if (compare < 0)
{ /* It is not in the list. */
binding = NULL; break;
}
}
if (dirname == NULL) /* The current binding has be to returned. */ return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
if (binding != NULL)
{ /* The domain is already bound. Replace the old binding. */ char *new_dirname;
#ifdef _LIBC /* Alias for function name in GNU C Library. */
weak_alias (__bindtextdomain, bindtextdomain); #endif
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.16Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.