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

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

?? l10nflist.c

?? 對各種手機進行編程的工具包源碼gsmlib 1.9版本。
?? C
字號:
/* Handle list of needed message catalogs   Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.   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 HAVE_STRING_H || defined _LIBC# ifndef _GNU_SOURCE#  define _GNU_SOURCE	1# endif# include <string.h>#else# include <strings.h># ifndef memcpy#  define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)# endif#endif#if !HAVE_STRCHR && !defined _LIBC# ifndef strchr#  define strchr index# endif#endif#if defined _LIBC || defined HAVE_ARGZ_H# include <argz.h>#endif#include <ctype.h>#include <sys/types.h>#if defined STDC_HEADERS || defined _LIBC# include <stdlib.h>#endif#include "loadinfo.h"/* On some strange systems still no definition of NULL is found.  Sigh!  */#ifndef NULL# if defined __STDC__ && __STDC__#  define NULL ((void *) 0)# else#  define NULL 0# endif#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.  */# ifndef stpcpy#  define stpcpy(dest, src) __stpcpy(dest, src)# endif#else# ifndef HAVE_STPCPYstatic char *stpcpy PARAMS ((char *dest, const char *src));# endif#endif/* Define function which are usually not available.  */#if !defined _LIBC && !defined HAVE___ARGZ_COUNT/* Returns the number of strings in ARGZ.  */static size_t argz_count__ PARAMS ((const char *argz, size_t len));static size_targz_count__ (argz, len)     const char *argz;     size_t len;{  size_t count = 0;  while (len > 0)    {      size_t part_len = strlen (argz);      argz += part_len + 1;      len -= part_len + 1;      count++;    }  return count;}# undef __argz_count# define __argz_count(argz, len) argz_count__ (argz, len)#endif	/* !_LIBC && !HAVE___ARGZ_COUNT */#if !defined _LIBC && !defined HAVE___ARGZ_STRINGIFY/* Make '\0' separated arg vector ARGZ printable by converting all the '\0's   except the last into the character SEP.  */static void argz_stringify__ PARAMS ((char *argz, size_t len, int sep));static voidargz_stringify__ (argz, len, sep)     char *argz;     size_t len;     int sep;{  while (len > 0)    {      size_t part_len = strlen (argz);      argz += part_len;      len -= part_len + 1;      if (len > 0)	*argz++ = sep;    }}# undef __argz_stringify# define __argz_stringify(argz, len, sep) argz_stringify__ (argz, len, sep)#endif	/* !_LIBC && !HAVE___ARGZ_STRINGIFY */#if !defined _LIBC && !defined HAVE___ARGZ_NEXTstatic char *argz_next__ PARAMS ((char *argz, size_t argz_len,				  const char *entry));static char *argz_next__ (argz, argz_len, entry)     char *argz;     size_t argz_len;     const char *entry;{  if (entry)    {      if (entry < argz + argz_len)        entry = strchr (entry, '\0') + 1;      return entry >= argz + argz_len ? NULL : (char *) entry;    }  else    if (argz_len > 0)      return argz;    else      return 0;}# undef __argz_next# define __argz_next(argz, len, entry) argz_next__ (argz, len, entry)#endif	/* !_LIBC && !HAVE___ARGZ_NEXT *//* Return number of bits set in X.  */static int pop PARAMS ((int x));static inline intpop (x)     int x;{  /* We assume that no more than 16 bits are used.  */  x = ((x & ~0x5555) >> 1) + (x & 0x5555);  x = ((x & ~0x3333) >> 2) + (x & 0x3333);  x = ((x >> 4) + x) & 0x0f0f;  x = ((x >> 8) + x) & 0xff;  return x;}struct loaded_l10nfile *_nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,		    territory, codeset, normalized_codeset, modifier, special,		    sponsor, revision, filename, do_allocate)     struct loaded_l10nfile **l10nfile_list;     const char *dirlist;     size_t dirlist_len;     int mask;     const char *language;     const char *territory;     const char *codeset;     const char *normalized_codeset;     const char *modifier;     const char *special;     const char *sponsor;     const char *revision;     const char *filename;     int do_allocate;{  char *abs_filename;  struct loaded_l10nfile *last = NULL;  struct loaded_l10nfile *retval;  char *cp;  size_t entries;  int cnt;  /* Allocate room for the full file name.  */  abs_filename = (char *) malloc (dirlist_len				  + strlen (language)				  + ((mask & TERRITORY) != 0				     ? strlen (territory) + 1 : 0)				  + ((mask & XPG_CODESET) != 0				     ? strlen (codeset) + 1 : 0)				  + ((mask & XPG_NORM_CODESET) != 0				     ? strlen (normalized_codeset) + 1 : 0)				  + (((mask & XPG_MODIFIER) != 0				      || (mask & CEN_AUDIENCE) != 0)				     ? strlen (modifier) + 1 : 0)				  + ((mask & CEN_SPECIAL) != 0				     ? strlen (special) + 1 : 0)				  + (((mask & CEN_SPONSOR) != 0				      || (mask & CEN_REVISION) != 0)				     ? (1 + ((mask & CEN_SPONSOR) != 0					     ? strlen (sponsor) + 1 : 0)					+ ((mask & CEN_REVISION) != 0					   ? strlen (revision) + 1 : 0)) : 0)				  + 1 + strlen (filename) + 1);  if (abs_filename == NULL)    return NULL;  retval = NULL;  last = NULL;  /* Construct file name.  */  memcpy (abs_filename, dirlist, dirlist_len);  __argz_stringify (abs_filename, dirlist_len, ':');  cp = abs_filename + (dirlist_len - 1);  *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_NORM_CODESET) != 0)    {      *cp++ = '.';      cp = stpcpy (cp, normalized_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 | CEN_REVISION)) != 0)    {      *cp++ = ',';      if ((mask & CEN_SPONSOR) != 0)	cp = stpcpy (cp, sponsor);      if ((mask & CEN_REVISION) != 0)	{	  *cp++ = '_';	  cp = stpcpy (cp, revision);	}    }  *cp++ = '/';  stpcpy (cp, filename);  /* Look in list of already loaded domains whether it is already     available.  */  last = NULL;  for (retval = *l10nfile_list; retval != NULL; retval = retval->next)    if (retval->filename != NULL)      {	int compare = strcmp (retval->filename, abs_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 (abs_filename);      return retval;    }  retval = (struct loaded_l10nfile *)    malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len)				* (1 << pop (mask))				* sizeof (struct loaded_l10nfile *)));  if (retval == NULL)    return NULL;  retval->filename = abs_filename;  retval->decided = (__argz_count (dirlist, dirlist_len) != 1		     || ((mask & XPG_CODESET) != 0			 && (mask & XPG_NORM_CODESET) != 0));  retval->data = NULL;  if (last == NULL)    {      retval->next = *l10nfile_list;      *l10nfile_list = retval;    }  else    {      retval->next = last->next;      last->next = retval;    }  entries = 0;  /* If the DIRLIST is a real list the RETVAL entry corresponds not to     a real file.  So we have to use the DIRLIST separation mechanism     of the inner loop.  */  cnt = __argz_count (dirlist, dirlist_len) == 1 ? mask - 1 : mask;  for (; cnt >= 0; --cnt)    if ((cnt & ~mask) == 0	&& ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)	&& ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))      {	/* Iterate over all elements of the DIRLIST.  */	char *dir = NULL;	while ((dir = __argz_next ((char *) dirlist, dirlist_len, dir))	       != NULL)	  retval->successor[entries++]	    = _nl_make_l10nflist (l10nfile_list, dir, strlen (dir) + 1, cnt,				  language, territory, codeset,				  normalized_codeset, modifier, special,				  sponsor, revision, filename, 1);      }  retval->successor[entries] = NULL;  return retval;}/* Normalize codeset name.  There is no standard for the codeset   names.  Normalization allows the user to use any of the common   names.  */const char *_nl_normalize_codeset (codeset, name_len)     const unsigned char *codeset;     size_t name_len;{  int len = 0;  int only_digit = 1;  char *retval;  char *wp;  size_t cnt;  for (cnt = 0; cnt < name_len; ++cnt)    if (isalnum (codeset[cnt]))      {	++len;	if (isalpha (codeset[cnt]))	  only_digit = 0;      }  retval = (char *) malloc ((only_digit ? 3 : 0) + len + 1);  if (retval != NULL)    {      if (only_digit)	wp = stpcpy (retval, "iso");      else	wp = retval;      for (cnt = 0; cnt < name_len; ++cnt)	if (isalpha (codeset[cnt]))	  *wp++ = tolower (codeset[cnt]);	else if (isdigit (codeset[cnt]))	  *wp++ = codeset[cnt];      *wp = '\0';    }  return (const char *) 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一区二区三区免费野_久草精品视频
亚洲私人黄色宅男| 日韩精彩视频在线观看| 一级中文字幕一区二区| 日本一道高清亚洲日美韩| 国产精品美女久久久久久2018| 成人综合激情网| 欧美日韩国产乱码电影| 韩国av一区二区三区| 91视频www| 欧美国产一区二区在线观看| 日本麻豆一区二区三区视频| 精品一区二区三区免费观看| 国产喂奶挤奶一区二区三区| 日本系列欧美系列| 欧美日韩中文精品| 日本午夜一本久久久综合| 国产精品毛片无遮挡高清| 国产精品福利一区| 欧美日韩国产精品自在自线| 色8久久精品久久久久久蜜 | 不卡的av在线| 亚洲女同一区二区| 欧美制服丝袜第一页| 国产高清精品久久久久| 国产精品毛片高清在线完整版| 99国产精品99久久久久久| 国产成人精品影视| 国产精品系列在线播放| 成人av免费在线| 91麻豆精品国产91久久久使用方法| 久久久精品欧美丰满| 久久综合久久综合九色| 亚洲国产岛国毛片在线| 亚洲自拍偷拍av| 国产成人午夜99999| 欧美乱妇20p| 国产精品久久综合| 亚洲成人一区二区在线观看| 韩国视频一区二区| 欧美日免费三级在线| 欧美激情一区不卡| 一区在线播放视频| 国产欧美精品国产国产专区| 91片黄在线观看| 亚洲国产一区视频| 国产三级一区二区| 国产亚洲欧美一区在线观看| 一本久久a久久免费精品不卡| 91福利精品视频| 欧美视频一区二区| 日韩一区二区视频| 偷窥国产亚洲免费视频| 久久精品视频一区二区| 亚洲精品亚洲人成人网在线播放| 国产欧美日产一区| 国产欧美一区二区精品婷婷| 日韩亚洲欧美在线观看| 色综合天天性综合| 久久精品国产久精国产| 亚洲午夜免费电影| 国产精品久久久久影院| 精品国产乱码久久久久久闺蜜 | 一本高清dvd不卡在线观看| 另类小说一区二区三区| 日韩黄色免费电影| 一区二区三区资源| 国产精品天干天干在观线| 精品亚洲欧美一区| 国产精品福利一区二区三区| 91麻豆精品国产自产在线观看一区| 91蜜桃传媒精品久久久一区二区| 国产精品一品视频| 国产精品影音先锋| 国产自产视频一区二区三区| 国产综合成人久久大片91| 久久精品国产精品亚洲精品| 免费成人美女在线观看.| 亚洲午夜精品网| 天堂在线一区二区| 蜜桃av噜噜一区| 久久er精品视频| 国产麻豆成人精品| 国产成人亚洲综合色影视| 国产成人免费视频| 一本久久综合亚洲鲁鲁五月天| 色狠狠桃花综合| 91精品国产免费| 国产视频视频一区| 一区二区三区精品视频在线| 亚洲成人动漫av| 国内精品伊人久久久久影院对白| 懂色av一区二区三区蜜臀| 色先锋久久av资源部| 欧美体内she精视频| 精品电影一区二区三区 | 欧美三级韩国三级日本三斤| 欧美一级片免费看| 国产精品久99| 美腿丝袜亚洲综合| 99久久国产免费看| 日韩视频一区二区在线观看| 欧美国产禁国产网站cc| 午夜不卡av在线| 国产福利一区二区三区| 欧美日韩一区二区三区四区五区| 精品区一区二区| 亚洲欧美日韩一区| 精品一区二区三区久久久| 97se亚洲国产综合自在线| 日韩欧美国产精品一区| 一区二区欧美国产| 国产不卡高清在线观看视频| 日韩午夜中文字幕| 亚洲午夜激情av| 97精品国产露脸对白| 国产亚洲欧美日韩俺去了| 美国十次综合导航| 欧美日韩高清一区二区三区| 亚洲视频一区二区在线观看| 秋霞av亚洲一区二区三| 在线观看亚洲精品| 国产一区二区在线电影| 在线日韩一区二区| 亚洲女人的天堂| 91理论电影在线观看| 国产精品久久久久一区二区三区| 韩国毛片一区二区三区| 日韩精品专区在线影院重磅| 日韩激情av在线| 日韩视频免费直播| 久久精品国产秦先生| 日韩精品一区二区三区视频在线观看 | 91视频一区二区三区| 国产精品久久毛片a| 99re这里只有精品首页| 亚洲人成网站色在线观看| eeuss鲁片一区二区三区在线观看| 国产欧美日韩亚州综合| 国产精品一卡二| 国产视频一区在线观看| 午夜亚洲国产au精品一区二区| 6080日韩午夜伦伦午夜伦| 日韩激情一二三区| 久久一留热品黄| 国产成都精品91一区二区三| 国产精品天天看| 欧美网站大全在线观看| 麻豆91精品视频| 国产精品久久夜| 91网站在线观看视频| 亚洲gay无套男同| 久久免费偷拍视频| 欧美视频完全免费看| 激情综合亚洲精品| 亚洲另类一区二区| 精品欧美乱码久久久久久1区2区| 成人自拍视频在线| 午夜精品福利一区二区三区av | 91在线小视频| 久久国内精品自在自线400部| 国产精品久久久爽爽爽麻豆色哟哟| 色综合久久88色综合天天 | 色综合天天在线| 久久97超碰国产精品超碰| 综合色天天鬼久久鬼色| 91精品国产综合久久小美女| eeuss鲁片一区二区三区在线看| 美女视频网站黄色亚洲| 伊人一区二区三区| 国产日韩成人精品| 精品久久国产老人久久综合| 欧美日韩一区成人| 91蜜桃免费观看视频| 国产成人亚洲精品青草天美| 日韩不卡一区二区三区| 一区二区三区中文免费| 中文字幕一区在线| 国产欧美日韩在线视频| 欧美精品一区二区三区久久久| 欧美性大战久久| 欧美性淫爽ww久久久久无| 本田岬高潮一区二区三区| 国产精品一二三在| 国产在线精品视频| 韩国av一区二区| 国产精品中文有码| 国产91富婆露脸刺激对白| 国产老妇另类xxxxx| 韩国女主播一区| 国产米奇在线777精品观看| 精品一区二区在线视频| 精品一区二区三区香蕉蜜桃| 美女任你摸久久| 精品一区二区久久久| 国产一区二区三区最好精华液| 九九视频精品免费| 粉嫩aⅴ一区二区三区四区五区| 成人小视频在线| 色悠悠亚洲一区二区| 欧美日本高清视频在线观看|