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

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

?? finddomain.c

?? 站點映像程序
?? C
字號:
/* finddomain.c -- handle list of needed message catalogs   Copyright (C) 1995 Software Foundation, Inc.   Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe 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 ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */#ifdef HAVE_CONFIG_H# include <config.h>#endif#include <errno.h>#include <stdio.h>#include <sys/types.h>#if defined STDC_HEADERS || defined _LIBC# include <stdlib.h>#else# ifdef HAVE_MALLOC_H#  include <malloc.h># elsevoid free ();# endif#endif#if defined HAVE_STRING_H || defined _LIBC# include <string.h>#else# include <strings.h>#endif#if !HAVE_STRCHR && !defined _LIBC# ifndef strchr#  define strchr index# endif#endif#if defined HAVE_UNISTD_H || defined _LIBC# include <unistd.h>#endif#include "gettext.h"#include "gettextP.h"#ifdef _LIBC# include <libintl.h>#else# include "libgettext.h"#endif/* @@ end of prolog @@ */#ifdef _LIBC/* Rename the non ANSI C functions.  This is required by the standard   because some ANSI C functions will require linking with this object   file and the name space must not be polluted.  */# define stpcpy __stpcpy#endif/* Encoding of locale name parts.  */#define CEN_REVISION	1#define CEN_SPONSOR	2#define CEN_SPECIAL	4#define XPG_CODESET	8#define TERRITORY	16#define CEN_AUDIENCE	32#define XPG_MODIFIER	64#define CEN_SPECIFIC	(CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE)#define XPG_SPECIFIC	(XPG_CODESET|XPG_MODIFIER)/* List of already loaded domains.  */static struct loaded_domain *_nl_loaded_domains;/* Prototypes for local functions.  */static struct loaded_domain *make_entry_rec __P ((const char *dirname,						  int mask,						  const char *language,						  const char *territory,						  const char *codeset,						  const char *modifier,						  const char *special,						  const char *sponsor,						  const char *revision,						  const char *domainname,						  int do_allocate));/* Substitution for systems lacking this function in their C library.  */#if !_LIBC && !HAVE_STPCPYstatic char *stpcpy __P ((char *dest, const char *src));#endif/* Return a data structure describing the message catalog described by   the DOMAINNAME and CATEGORY parameters with respect to the currently   established bindings.  */struct loaded_domain *_nl_find_domain (dirname, locale, domainname)     const char *dirname;     char *locale;     const char *domainname;{  enum { undecided, xpg, cen } syntax;  struct loaded_domain *retval;  const char *language;  const char *modifier = NULL;  const char *territory = NULL;  const char *codeset = NULL;  const char *special = NULL;  const char *sponsor = NULL;  const char *revision = NULL;  const char *alias_value = NULL;  char *cp;  int mask;  /* CATEGORYVALUE now possibly contains a colon separated list of     locales.  Each single locale can consist of up to four recognized     parts for the XPG syntax:		language[_territory[.codeset]][@modifier]     and six parts for the CEN syntax:	language[_territory][+audience][+special][,sponsor][_revision]     Beside the first all of them are allowed to be missing.  If the     full specified locale is not found, the less specific one are     looked for.  The various part will be stripped of according to     the following order:		(1) revision		(2) sponsor		(3) special		(4) codeset		(5) territory		(6) audience/modifier   */  /* If we have already tested for this locale entry there has to     be one data set in the list of loaded domains.  */  retval = make_entry_rec (dirname, 0, locale, NULL, NULL, NULL,			   NULL, NULL, NULL, domainname, 0);  if (retval != NULL)    {      /* We know something about this locale.  */      int cnt;      if (retval->decided == 0)	_nl_load_domain (retval); /* @@@ */      if (retval->data != NULL)	return retval;      for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)	{	  if (retval->successor[cnt]->decided == 0)	    _nl_load_domain (retval->successor[cnt]);	  if (retval->successor[cnt]->data != NULL)	    break;	}      /* We really found some usable information.  */      return cnt >= 0 ? retval : NULL;      /* NOTREACHED */    }  /* See whether the locale value is an alias.  If yes its value     *overwrites* the alias name.  No test for the original value is     done.  */  alias_value = _nl_expand_alias (locale);  if (alias_value != NULL)    {      size_t len = strlen (alias_value) + 1;      locale = (char *) malloc (len);      if (locale == NULL)	return NULL;      memcpy (locale, alias_value, len);    }  /* Now we determine the single parts of the locale name.  First     look for the language.  Termination symbols are `_' and `@' if     we use XPG4 style, and `_', `+', and `,' if we use CEN syntax.  */  mask = 0;  syntax = undecided;  language = cp = locale;  while (cp[0] != '\0' && cp[0] != '_' && cp[0] != '@'	 && cp[0] != '+' && cp[0] != ',')    ++cp;  if (language == cp)    /* This does not make sense: language has to be specified.  Use       this entry as it is without exploding.  Perhaps it is an alias.  */    cp = strchr (language, '\0');  else if (cp[0] == '_')    {      /* Next is the territory.  */      cp[0] = '\0';      territory = ++cp;      while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@'	     && cp[0] != '+' && cp[0] != ',' && cp[0] != '_')	++cp;      mask |= TERRITORY;      if (cp[0] == '.')	{	  /* Next is the codeset.  */	  syntax = xpg;	  cp[0] = '\0';	  codeset = ++cp;	  while (cp[0] != '\0' && cp[0] != '@')	    ++cp;	  mask |= XPG_CODESET;	}    }  if (cp[0] == '@' || (syntax != xpg && cp[0] == '+'))    {      /* Next is the modifier.  */      syntax = cp[0] == '@' ? xpg : cen;      cp[0] = '\0';      modifier = ++cp;      while (syntax == cen && cp[0] != '\0' && cp[0] != '+'	     && cp[0] != ',' && cp[0] != '_')	++cp;      mask |= XPG_MODIFIER | CEN_AUDIENCE;    }  if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_'))    {      syntax = cen;      if (cp[0] == '+')	{ 	  /* Next is special application (CEN syntax).  */	  cp[0] = '\0';	  special = ++cp;	  while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_')	    ++cp;	  mask |= CEN_SPECIAL;	}      if (cp[0] == ',')	{ 	  /* Next is sponsor (CEN syntax).  */	  cp[0] = '\0';	  sponsor = ++cp;	  while (cp[0] != '\0' && cp[0] != '_')	    ++cp;	  mask |= CEN_SPONSOR;	}      if (cp[0] == '_')	{ 	  /* Next is revision (CEN syntax).  */	  cp[0] = '\0';	  revision = ++cp;	  mask |= CEN_REVISION;	}    }  /* For CEN sytnax values it might be important to have the     separator character in the file name, not for XPG syntax.  */  if (syntax == xpg)    {      if (territory != NULL && territory[0] == '\0')	mask &= ~TERRITORY;      if (codeset != NULL && codeset[0] == '\0')	mask &= ~XPG_CODESET;      if (modifier != NULL && modifier[0] == '\0')	mask &= ~XPG_MODIFIER;    }  /* Create all possible locale entries which might be interested in     generalzation.  */  retval = make_entry_rec (dirname, mask, language, territory, codeset,			   modifier, special, sponsor, revision,			   domainname, 1);  if (retval == NULL)    /* This means we are out of core.  */    return NULL;  if (retval->decided == 0)    _nl_load_domain (retval);  if (retval->data == NULL)    {      int cnt;      for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)	{	  if (retval->successor[cnt]->decided == 0)	    _nl_load_domain (retval->successor[cnt]);	  if (retval->successor[cnt]->data != NULL)	    break;	  /* Signal that locale is not available.  */	  retval->successor[cnt] = NULL;	}      if (retval->successor[cnt] == NULL)	retval = NULL;    }  /* The room for an alias was dynamically allocated.  Free it now.  */  if (alias_value != NULL)    free (locale);  return retval;}static struct loaded_domain *make_entry_rec (dirname, mask, language, territory, codeset, modifier,		special, sponsor, revision, domain, do_allocate)     const char *dirname;     int mask;     const char *language;     const char *territory;     const char *codeset;     const char *modifier;     const char *special;     const char *sponsor;     const char *revision;     const char *domain;     int do_allocate;{  char *filename = NULL;  struct loaded_domain *last = NULL;  struct loaded_domain *retval;  char *cp;  size_t entries;  int cnt;  /* Process the current entry described by the MASK only when it is     valid.  Because the mask can have in the first call bits from     both syntaces set this is necessary to prevent constructing     illegal local names.  */  /* FIXME: Rewrite because test is necessary only in first round.  */  if ((mask & CEN_SPECIFIC) == 0 || (mask & XPG_SPECIFIC) == 0)    {      /* Allocate room for the full file name.  */      filename = (char *) malloc (strlen (dirname) + 1				  + strlen (language)				  + ((mask & TERRITORY) != 0				     ? strlen (territory) : 0)				  + ((mask & XPG_CODESET) != 0				     ? strlen (codeset) : 0)				  + ((mask & XPG_MODIFIER) != 0 ?				     strlen (modifier) : 0)				  + ((mask & CEN_SPECIAL) != 0				     ? strlen (special) : 0)				  + ((mask & CEN_SPONSOR) != 0				     ? strlen (sponsor) : 0)				  + ((mask & CEN_REVISION) != 0				     ? strlen (revision) : 0) + 1				  + strlen (domain) + 1);      if (filename == NULL)	return NULL;      retval = NULL;      last = NULL;      /* Construct file name.  */      cp = stpcpy (filename, dirname);      *cp++ = '/';      cp = stpcpy (cp, language);      if ((mask & TERRITORY) != 0)	{	  *cp++ = '_';	  cp = stpcpy (cp, territory);	}      if ((mask & XPG_CODESET) != 0)	{	  *cp++ = '.';      cp = stpcpy (cp, codeset);	}      if ((mask & (XPG_MODIFIER | CEN_AUDIENCE)) != 0)	{	  /* This component can be part of both syntaces but has different	     leading characters.  For CEN we use `+', else `@'.  */	  *cp++ = (mask & CEN_AUDIENCE) != 0 ? '+' : '@';	  cp = stpcpy (cp, modifier);	}      if ((mask & CEN_SPECIAL) != 0)	{	  *cp++ = '+';	  cp = stpcpy (cp, special);	}      if ((mask & CEN_SPONSOR) != 0)	{	  *cp++ = ',';	  cp = stpcpy (cp, sponsor);	}      if ((mask & CEN_REVISION) != 0)	{	  *cp++ = '_';	  cp = stpcpy (cp, revision);	}      *cp++ = '/';      stpcpy (cp, domain);      /* Look in list of already loaded domains whether it is already	 available.  */      last = NULL;      for (retval = _nl_loaded_domains; retval != NULL; retval = retval->next)	if (retval->filename != NULL)	  {	    int compare = strcmp (retval->filename, filename);	    if (compare == 0)	      /* We found it!  */	      break;	    if (compare < 0)	      {		/* It's not in the list.  */		retval = NULL;		break;	      }	    last = retval;	  }      if (retval != NULL || do_allocate == 0)	{	  free (filename);	  return retval;	}    }  retval = (struct loaded_domain *) malloc (sizeof (*retval));  if (retval == NULL)    return NULL;  retval->filename = filename;  retval->decided = 0;  if (last == NULL)    {      retval->next = _nl_loaded_domains;      _nl_loaded_domains = retval;    }  else    {      retval->next = last->next;      last->next = retval;    }  entries = 0;  for (cnt = 126; cnt >= 0; --cnt)    if (cnt < mask && (cnt & ~mask) == 0	&& ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0))      retval->successor[entries++] = make_entry_rec (dirname, cnt,						     language, territory,						     codeset, modifier,						     special, sponsor,						     revision, domain, 1);  retval->successor[entries] = NULL;  return retval;}/* @@ begin of epilog @@ *//* We don't want libintl.a to depend on any other library.  So we   avoid the non-standard function stpcpy.  In GNU C Library this   function is available, though.  Also allow the symbol HAVE_STPCPY   to be defined.  */#if !_LIBC && !HAVE_STPCPYstatic char *stpcpy (dest, src)     char *dest;     const char *src;{  while ((*dest++ = *src++) != '\0')    /* Do nothing. */ ;  return dest - 1;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美妇女性影城| 亚洲欧美中日韩| 国产精品一区二区三区网站| 国产日韩欧美a| av亚洲精华国产精华| 一区二区三区高清| 91.xcao| 久久99精品久久久| 中文乱码免费一区二区| 色婷婷国产精品| 日韩av二区在线播放| 2021国产精品久久精品| 99这里只有久久精品视频| 一区二区三区在线看| 91精品国产综合久久蜜臀| 国产乱一区二区| 亚洲日本欧美天堂| 欧美精品黑人性xxxx| 国产麻豆91精品| 亚洲欧美日韩国产另类专区| 欧美伦理电影网| 国产福利一区二区| 亚洲国产一区视频| 久久蜜桃香蕉精品一区二区三区| 99视频国产精品| 日日夜夜精品视频免费| 久久久亚洲高清| 欧美少妇xxx| 国产一区二区三区| 亚洲精品乱码久久久久久日本蜜臀| 欧美丰满少妇xxxbbb| 成人激情图片网| 石原莉奈一区二区三区在线观看| 久久男人中文字幕资源站| 欧美综合亚洲图片综合区| 国精产品一区一区三区mba视频| 中文字幕在线一区免费| 欧美一区中文字幕| 成人av在线网站| 秋霞电影一区二区| 国产精品久久久久影院色老大 | 9191久久久久久久久久久| 国产91精品一区二区麻豆亚洲| 亚洲午夜在线电影| 久久精品综合网| 91精品免费观看| 99久久久精品免费观看国产蜜| 另类综合日韩欧美亚洲| 色综合久久久久| 久99久精品视频免费观看| 亚洲精品成a人| 久久视频一区二区| 欧美日韩精品欧美日韩精品一综合| 国产精品亚洲а∨天堂免在线| 亚洲成年人网站在线观看| 中文字幕第一区综合| 91精品国产色综合久久不卡电影| 92国产精品观看| 国产精品伊人色| 免费一级片91| 亚洲一区二区在线免费观看视频| 国产亚洲精品精华液| 91精品国产黑色紧身裤美女| 99精品欧美一区二区三区小说| 国产综合一区二区| 午夜成人在线视频| 一区二区三区久久久| 欧美激情一区二区三区全黄| 日韩欧美一级在线播放| 在线免费观看一区| 91网上在线视频| 国产99久久久国产精品潘金| 男男gaygay亚洲| 夜夜嗨av一区二区三区四季av| 国产精品污网站| 国产婷婷色一区二区三区四区| 日韩一区二区三| 在线观看91精品国产麻豆| 91成人在线观看喷潮| 97精品国产97久久久久久久久久久久| 国产一区三区三区| 免费观看91视频大全| 偷拍日韩校园综合在线| 亚洲国产精品久久艾草纯爱| 欧美天天综合网| 91在线精品一区二区| 丁香天五香天堂综合| 国产二区国产一区在线观看| 国产在线视频精品一区| 久久99国产乱子伦精品免费| 免费不卡在线观看| 免费成人美女在线观看| 日韩 欧美一区二区三区| 日韩二区三区在线观看| 五月天激情综合网| 五月天丁香久久| 日韩精品一卡二卡三卡四卡无卡| 亚洲国产精品久久人人爱 | 午夜视频一区在线观看| 一区二区三区视频在线看| 亚洲免费看黄网站| 亚洲免费电影在线| 亚洲黄色av一区| 艳妇臀荡乳欲伦亚洲一区| 一区二区三区电影在线播| 亚洲综合区在线| 亚洲大片免费看| 午夜精品久久久久久久久久久| 无吗不卡中文字幕| 免费成人av资源网| 久久99国内精品| 国产精品一区在线观看你懂的| 国产福利精品一区二区| 成人激情小说网站| 91亚洲大成网污www| 欧美制服丝袜第一页| 欧美日韩精品电影| 777奇米四色成人影色区| 日韩亚洲欧美高清| 久久综合色8888| 国产精品毛片久久久久久久| 亚洲日本va午夜在线影院| 一区二区三区不卡视频| 天天爽夜夜爽夜夜爽精品视频| 免费成人在线影院| 国产高清视频一区| 91同城在线观看| 欧美日韩精品欧美日韩精品 | 综合久久国产九一剧情麻豆| 亚洲精品亚洲人成人网| 午夜不卡av免费| 精品一区二区av| 国产成人av一区二区三区在线| 91视视频在线观看入口直接观看www| 日本道色综合久久| 日韩一级黄色片| 国产日产欧美一区二区三区| 日韩美女视频一区| 天天影视色香欲综合网老头| 国模一区二区三区白浆| 99国产精品久久| 制服丝袜中文字幕一区| 久久这里只有精品6| 亚洲日本乱码在线观看| 777色狠狠一区二区三区| 欧美精品电影在线播放| 一本到一区二区三区| 7777精品伊人久久久大香线蕉| 精品电影一区二区| 亚洲视频资源在线| 日本欧美大码aⅴ在线播放| 国产精品亚洲成人| 狂野欧美性猛交blacked| 一区二区成人在线观看| 国产日韩欧美综合在线| 91精品国产美女浴室洗澡无遮挡| 成人深夜在线观看| 成人丝袜18视频在线观看| 国产毛片精品视频| 亚洲综合区在线| 日韩美女啊v在线免费观看| 国产午夜精品一区二区| 久久精品男人天堂av| 欧美精品一区二区三区在线| 亚洲一区二区三区爽爽爽爽爽| 国产在线观看免费一区| 欧美日韩一区国产| 中文字幕日韩av资源站| 国产麻豆精品一区二区| 日韩欧美一区在线观看| 亚洲一区在线视频观看| 色综合久久久久久久久| 欧美极品美女视频| 国产真实乱对白精彩久久| 欧美一区二区三区在线电影| 亚洲一线二线三线视频| 成人av午夜影院| 国产精品1区2区3区| 日韩高清不卡一区二区| 亚洲综合在线视频| 三级在线观看一区二区| 国产在线不卡一区| 日韩视频在线你懂得| 亚洲成人精品在线观看| 色综合视频在线观看| 国产精品天美传媒沈樵| 国产精品性做久久久久久| 精品国产伦一区二区三区观看方式 | 一区二区在线免费| 波多野结衣中文字幕一区 | 亚洲色图欧美偷拍| 91麻豆免费在线观看| 国产精品不卡一区二区三区| 成人av在线播放网站| 国产精品久久久久久久久果冻传媒 | 91国偷自产一区二区开放时间| 国产精品久久福利| proumb性欧美在线观看| 亚洲免费在线看| 欧美日韩精品一区二区三区四区 |