亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bindtextdom.c

?? Gsm手機(短信息,電話簿)開發庫C++源代碼
?? C
字號:
/* Implementation of the bindtextdomain(3) function
   Copyright (C) 1995, 1996, 1997, 1998 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 <gsm_config.h>
#endif

#if defined STDC_HEADERS || defined _LIBC
# include <stdlib.h>
#else
# ifdef HAVE_MALLOC_H
#  include <malloc.h>
# else
void free ();
# endif
#endif

#if defined 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.  */
extern const char _nl_default_dirname[];

/* List with bindings of specific domains.  */
extern struct 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
# ifndef strdup
#  define strdup(str) __strdup (str)
# endif
#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)
     const char *domainname;
     const char *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.  If the new value and the old
	 one are equal we simply do nothing.  Otherwise replace the
	 old binding.  */
      if (strcmp (dirname, binding->dirname) != 0)
	{
	  char *new_dirname;

	  if (strcmp (dirname, _nl_default_dirname) == 0)
	    new_dirname = (char *) _nl_default_dirname;
	  else
	    {
#if defined _LIBC || defined HAVE_STRDUP
	      new_dirname = strdup (dirname);
	      if (new_dirname == NULL)
		return NULL;
#else
	      size_t len = strlen (dirname) + 1;
	      new_dirname = (char *) malloc (len);
	      if (new_dirname == NULL)
		return NULL;

	      memcpy (new_dirname, dirname, len);
#endif
	    }

	  if (binding->dirname != _nl_default_dirname)
	    free (binding->dirname);

	  binding->dirname = new_dirname;
	}
    }
  else
    {
      /* We have to create a new binding.  */
#if !defined _LIBC && !defined HAVE_STRDUP
      size_t len;
#endif
      struct binding *new_binding =
	(struct binding *) malloc (sizeof (*new_binding));

      if (new_binding == NULL)
	return NULL;

#if defined _LIBC || defined HAVE_STRDUP
      new_binding->domainname = strdup (domainname);
      if (new_binding->domainname == NULL)
	return NULL;
#else
      len = strlen (domainname) + 1;
      new_binding->domainname = (char *) malloc (len);
      if (new_binding->domainname == NULL)
	return NULL;
      memcpy (new_binding->domainname, domainname, len);
#endif

      if (strcmp (dirname, _nl_default_dirname) == 0)
	new_binding->dirname = (char *) _nl_default_dirname;
      else
	{
#if defined _LIBC || defined HAVE_STRDUP
	  new_binding->dirname = strdup (dirname);
	  if (new_binding->dirname == NULL)
	    return NULL;
#else
	  len = strlen (dirname) + 1;
	  new_binding->dirname = (char *) malloc (len);
	  if (new_binding->dirname == NULL)
	    return NULL;
	  memcpy (new_binding->dirname, dirname, len);
#endif
	}

      /* Now enqueue it.  */
      if (_nl_domain_bindings == NULL
	  || strcmp (domainname, _nl_domain_bindings->domainname) < 0)
	{
	  new_binding->next = _nl_domain_bindings;
	  _nl_domain_bindings = new_binding;
	}
      else
	{
	  binding = _nl_domain_bindings;
	  while (binding->next != NULL
		 && strcmp (domainname, binding->next->domainname) > 0)
	    binding = binding->next;

	  new_binding->next = binding->next;
	  binding->next = new_binding;
	}

      binding = new_binding;
    }

  return binding->dirname;
}

#ifdef _LIBC
/* Alias for function name in GNU C Library.  */
weak_alias (__bindtextdomain, bindtextdomain);
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲少妇30p| 久久电影网电视剧免费观看| www..com久久爱| 国产精品久久久久一区二区三区 | 欧美亚洲一区三区| 亚洲日本一区二区| 在线免费观看日韩欧美| 亚洲成人中文在线| 欧美一个色资源| 国产裸体歌舞团一区二区| 日本一区二区综合亚洲| av在线不卡免费看| 亚洲一区二区三区爽爽爽爽爽| 在线观看欧美精品| 欧美a级理论片| 久久精品夜色噜噜亚洲aⅴ| va亚洲va日韩不卡在线观看| 亚洲国产欧美另类丝袜| 日韩视频一区二区三区| 成人在线一区二区三区| 一区二区久久久| 欧美xxxxx裸体时装秀| 国内久久精品视频| 亚洲精品国产成人久久av盗摄 | 麻豆国产精品一区二区三区 | 欧美激情一区二区三区不卡 | 91精品国产综合久久久久久久 | 人人爽香蕉精品| 久久综合视频网| 色综合av在线| 久久99精品久久久久久动态图| 中文字幕不卡一区| 欧美军同video69gay| 国产精品1区2区| 五月婷婷欧美视频| 中文字幕欧美日本乱码一线二线| 欧美三级视频在线观看| 国产高清精品久久久久| 亚洲一卡二卡三卡四卡| 久久精品免视看| 欧美色图在线观看| 国产精品资源在线看| 午夜欧美电影在线观看| 国产欧美中文在线| 91精品国产高清一区二区三区蜜臀| 大白屁股一区二区视频| 免费人成网站在线观看欧美高清| 中文字幕中文字幕一区二区| 337p亚洲精品色噜噜噜| 成人国产一区二区三区精品| 日日噜噜夜夜狠狠视频欧美人| 国产精品麻豆久久久| 欧美日韩高清一区二区三区| 91在线视频播放地址| 国产一区在线观看视频| 日韩国产一二三区| 一区二区三区日韩在线观看| 国产亚洲一区二区三区| 日韩欧美国产系列| 欧美日韩国产一级二级| 色婷婷综合久久久中文字幕| 成人一级片网址| 国产一区二区电影| 久99久精品视频免费观看| 日韩成人一区二区三区在线观看| 亚洲欧美日本在线| 最新日韩av在线| 国产精品久久一级| 欧美国产禁国产网站cc| 国产午夜一区二区三区| 日韩免费一区二区| 欧美成人精品高清在线播放| 欧美精品777| 欧美丰满少妇xxxbbb| 欧日韩精品视频| 在线视频欧美精品| 日本韩国欧美三级| 在线免费观看成人短视频| 色素色在线综合| 91麻豆视频网站| 欧洲国内综合视频| 欧美手机在线视频| 欧美顶级少妇做爰| 日韩欧美一级在线播放| 日韩欧美美女一区二区三区| 日韩精品一区二区三区四区| 精品久久久久久久久久久久包黑料 | 精品一区二区三区免费播放| 免费视频最近日韩| 国模娜娜一区二区三区| 懂色av一区二区三区免费观看| 国产成人8x视频一区二区| 成人黄色综合网站| 色呦呦网站一区| 欧美久久久久久蜜桃| 日韩欧美黄色影院| 国产网红主播福利一区二区| 国产精品久久久久久久久搜平片| 中文字幕一区二区三区蜜月| 悠悠色在线精品| 日韩国产欧美三级| 国产精品一级在线| 日本丶国产丶欧美色综合| 欧美体内she精视频| 日韩精品一区二区三区在线播放 | 色老汉一区二区三区| 欧美三级三级三级| 日韩三级在线免费观看| 国产精品污污网站在线观看| 亚洲精品乱码久久久久久日本蜜臀| 亚洲国产一区二区三区青草影视| 奇米亚洲午夜久久精品| 国产精品538一区二区在线| 91视频国产观看| 日韩欧美的一区二区| 国产人成亚洲第一网站在线播放 | 欧美v亚洲v综合ⅴ国产v| 欧美国产日本韩| 亚洲国产精品久久不卡毛片| 久国产精品韩国三级视频| 色系网站成人免费| 久久综合九色综合久久久精品综合| 国产精品日韩成人| 人人超碰91尤物精品国产| 成人免费看片app下载| 欧美精选在线播放| 国产精品传媒在线| 麻豆成人免费电影| 在线免费观看视频一区| 国产午夜亚洲精品午夜鲁丝片 | 26uuu亚洲综合色欧美| 夜夜嗨av一区二区三区四季av| 久久www免费人成看片高清| 色婷婷国产精品久久包臀| 国产亚洲一二三区| 久久精品国产一区二区三 | 91成人在线观看喷潮| 精品国产凹凸成av人网站| 一区二区三区加勒比av| 成人少妇影院yyyy| 精品1区2区在线观看| 亚洲一区二区精品3399| 99久久免费国产| 国产欧美日韩视频在线观看| 男女性色大片免费观看一区二区| 91视频国产资源| 国产欧美一区二区精品性色 | 99视频热这里只有精品免费| 欧美电影免费提供在线观看| 亚洲成人在线免费| a美女胸又www黄视频久久| 久久精品亚洲精品国产欧美| 狠狠色狠狠色综合| 日韩精品一区二区三区在线播放| 日韩精品一区第一页| 欧美性videosxxxxx| 亚洲男女毛片无遮挡| jizzjizzjizz欧美| 成人免费在线视频观看| 成人中文字幕电影| 国产精品不卡在线| 99久久国产免费看| 国产精品女同一区二区三区| 国产伦精品一区二区三区视频青涩| 日韩欧美在线影院| 麻豆成人91精品二区三区| 欧美一区二区视频网站| 午夜电影一区二区三区| 欧美群妇大交群的观看方式| 亚洲成在人线免费| 欧美日本一区二区在线观看| 夜夜精品浪潮av一区二区三区| 91美女片黄在线观看91美女| 亚洲主播在线观看| 91蝌蚪porny九色| 亚洲美女电影在线| 色悠悠亚洲一区二区| 亚洲女子a中天字幕| 91成人在线免费观看| 婷婷国产在线综合| 欧美大白屁股肥臀xxxxxx| 韩国毛片一区二区三区| 国产欧美日韩激情| 91天堂素人约啪| 亚洲小少妇裸体bbw| 制服丝袜av成人在线看| 狠狠色丁香婷婷综合久久片| 国产日韩欧美a| av在线这里只有精品| 亚洲综合在线电影| 欧美日韩国产一二三| 精品一区在线看| 国产精品网站在线播放| 在线看国产一区二区| 免费欧美在线视频| 亚洲国产成人在线| 欧美日韩免费在线视频| 久久99国产精品久久| 国产精品久久久久aaaa樱花| 欧美视频中文字幕|