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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? l10nflist.c

?? linux下的串口工具
?? C
字號(hào):
/* Copyright (C) 1995-1999, 2000, 2001, 2002 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 Library 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   Library General Public License for more details.   You should have received a copy of the GNU Library 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.  *//* Tell glibc's <string.h> to provide a prototype for stpcpy().   This must come before <config.h> because <config.h> may include   <features.h>, and once <features.h> has been included, it's too late.  */#ifndef _GNU_SOURCE# define _GNU_SOURCE	1#endif#ifdef HAVE_CONFIG_H# include <config.h>#endif#include <string.h>#if defined _LIBC || defined HAVE_ARGZ_H# include <argz.h>#endif#include <ctype.h>#include <sys/types.h>#include <stdlib.h>#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/* Pathname support.   ISSLASH(C)           tests whether C is a directory separator character.   IS_ABSOLUTE_PATH(P)  tests whether P is an absolute path.  If it is not,                        it may be concatenated to a directory pathname. */#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__  /* Win32, OS/2, DOS */# define ISSLASH(C) ((C) == '/' || (C) == '\\')# define HAS_DEVICE(P) \    ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \     && (P)[1] == ':')# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))#else  /* Unix */# define ISSLASH(C) ((C) == '/')# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])#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)#else# ifdef _LIBC#  define __argz_count(argz, len) INTUSE(__argz_count) (argz, len)# endif#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)#else# ifdef _LIBC#  define __argz_stringify(argz, len, sep) \  INTUSE(__argz_stringify) (argz, len, sep)# endif#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 **lastp;  struct loaded_l10nfile *retval;  char *cp;  size_t dirlist_count;  size_t entries;  int cnt;  /* If LANGUAGE contains an absolute directory specification, we ignore     DIRLIST.  */  if (IS_ABSOLUTE_PATH (language))    dirlist_len = 0;  /* 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) : 0)					+ ((mask & CEN_REVISION) != 0					   ? strlen (revision) + 1 : 0)) : 0)				  + 1 + strlen (filename) + 1);  if (abs_filename == NULL)    return NULL;  /* Construct file name.  */  cp = abs_filename;  if (dirlist_len > 0)    {      memcpy (cp, dirlist, dirlist_len);      __argz_stringify (cp, dirlist_len, PATH_SEPARATOR);      cp += dirlist_len;      cp[-1] = '/';    }  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.  */  lastp = l10nfile_list;  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;	  }	lastp = &retval->next;      }  if (retval != NULL || do_allocate == 0)    {      free (abs_filename);      return retval;    }  dirlist_count = (dirlist_len > 0 ? __argz_count (dirlist, dirlist_len) : 1);  /* Allocate a new loaded_l10nfile.  */  retval =    (struct loaded_l10nfile *)    malloc (sizeof (*retval)	    + (((dirlist_count << pop (mask)) + (dirlist_count > 1 ? 1 : 0))	       * sizeof (struct loaded_l10nfile *)));  if (retval == NULL)    return NULL;  retval->filename = abs_filename;  /* We set retval->data to NULL here; it is filled in later.     Setting retval->decided to 1 here means that retval does not     correspond to a real file (dirlist_count > 1) or is not worth     looking up (if an unnormalized codeset was specified).  */  retval->decided = (dirlist_count > 1		     || ((mask & XPG_CODESET) != 0			 && (mask & XPG_NORM_CODESET) != 0));  retval->data = NULL;  retval->next = *lastp;  *lastp = retval;  entries = 0;  /* Recurse to fill the inheritance list of RETVAL.     If the DIRLIST is a real list (i.e. DIRLIST_COUNT > 1), the RETVAL     entry does not correspond to a real file; retval->filename contains     colons.  In this case we loop across all elements of DIRLIST and     across all bit patterns dominated by MASK.     If the DIRLIST is a single directory or entirely redundant (i.e.     DIRLIST_COUNT == 1), we loop across all bit patterns dominated by     MASK, excluding MASK itself.     In either case, we loop down from MASK to 0.  This has the effect     that the extra bits in the locale name are dropped in this order:     first the modifier, then the territory, then the codeset, then the     normalized_codeset.  */  for (cnt = dirlist_count > 1 ? mask : mask - 1; cnt >= 0; --cnt)    if ((cnt & ~mask) == 0	&& ((cnt & CEN_SPECIFIC) == 0 || (cnt & XPG_SPECIFIC) == 0)	&& ((cnt & XPG_CODESET) == 0 || (cnt & XPG_NORM_CODESET) == 0))      {	if (dirlist_count > 1)	  {	    /* 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);	  }	else	  retval->successor[entries++]	    = _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len,				  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.  The return value is dynamically allocated and has to be   freed by the caller.  */const char *_nl_normalize_codeset (codeset, name_len)     const 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 ((unsigned char) codeset[cnt]))      {	++len;	if (isalpha ((unsigned char) 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 ((unsigned char) codeset[cnt]))	  *wp++ = tolower ((unsigned char) codeset[cnt]);	else if (isdigit ((unsigned char) 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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕制服丝袜一区二区三区 | 亚洲免费观看在线观看| 亚洲人成精品久久久久| 美日韩一区二区三区| 99久久精品费精品国产一区二区| 欧美美女黄视频| 国产精品久久久久国产精品日日| 男女性色大片免费观看一区二区 | 日韩欧美色综合网站| 亚洲欧洲精品一区二区精品久久久| 三级在线观看一区二区| 91麻豆视频网站| 欧美mv和日韩mv的网站| 亚洲国产精品久久久久婷婷884| 国产69精品久久777的优势| 欧美一卡2卡3卡4卡| 一区二区三区四区蜜桃| 成人永久免费视频| 久久久久久久久99精品| 日韩成人av影视| 欧美手机在线视频| 亚洲卡通欧美制服中文| 成人av片在线观看| 亚洲国产精品ⅴa在线观看| 毛片av一区二区| 欧美一级欧美三级在线观看| 亚洲成人资源在线| 欧美人与禽zozo性伦| 亚洲精品成人精品456| 丁香婷婷综合激情五月色| 欧美mv日韩mv国产| 国内精品写真在线观看| 精品国产1区二区| 久久国产夜色精品鲁鲁99| 欧美一区二区免费视频| 日韩国产高清影视| 欧美一区二区三级| 久久99国产精品尤物| 欧美大胆人体bbbb| 激情综合色播五月| 久久综合色一综合色88| 国产最新精品免费| 国产性天天综合网| 不卡的av在线| 亚洲精品你懂的| 欧美日韩免费一区二区三区| 日韩一区精品字幕| 精品日韩一区二区| 国产91高潮流白浆在线麻豆 | 欧美精品一区二区三区久久久| 另类欧美日韩国产在线| 久久久久久久免费视频了| 国产高清视频一区| 亚洲另类在线一区| 制服丝袜在线91| 黑人精品欧美一区二区蜜桃| 欧美激情在线看| 日本国产一区二区| 免费在线看一区| 国产亚洲人成网站| 色综合中文字幕国产 | 久久综合狠狠综合久久激情| 国产成人夜色高潮福利影视| 中文字幕在线不卡一区二区三区| 91蜜桃免费观看视频| 亚洲6080在线| 久久尤物电影视频在线观看| av一区二区三区黑人| 亚洲国产日韩a在线播放性色| 日韩午夜av电影| 成人短视频下载| 五月婷婷色综合| 国产欧美日产一区| 欧美日韩国产另类不卡| 国产成人欧美日韩在线电影| 亚洲综合色丁香婷婷六月图片| 欧美一级精品大片| 99re亚洲国产精品| 精品无人码麻豆乱码1区2区| 一区二区三区在线免费| 久久久影院官网| 欧美日韩免费在线视频| 成人激情午夜影院| 日韩高清在线一区| 亚洲视频免费观看| 久久亚洲免费视频| 7777精品久久久大香线蕉| caoporn国产精品| 老司机精品视频导航| 夜夜嗨av一区二区三区网页| www成人在线观看| 88在线观看91蜜桃国自产| 丁香另类激情小说| 麻豆一区二区三| 亚洲欧美另类图片小说| 久久综合精品国产一区二区三区| 欧美视频一区二区三区| 97精品久久久久中文字幕| 韩国理伦片一区二区三区在线播放| 亚洲一区二区影院| 亚洲视频一区在线| 欧美国产日本视频| 久久精品人人爽人人爽| 精品噜噜噜噜久久久久久久久试看 | 精品视频在线看| 一本大道av一区二区在线播放| 国产一区二区三区精品视频| 麻豆精品久久久| 婷婷久久综合九色综合绿巨人 | 日韩欧美一级特黄在线播放| 欧美三区免费完整视频在线观看| 国产.精品.日韩.另类.中文.在线.播放| 久久精品国产成人一区二区三区| 三级影片在线观看欧美日韩一区二区| 亚洲色图欧美在线| 国产精品久久精品日日| 国产精品沙发午睡系列990531| 久久久蜜桃精品| 久久久久国产精品麻豆ai换脸| 欧美一级在线视频| 日韩欧美自拍偷拍| 日韩免费看的电影| 精品99999| 国产欧美一区二区精品婷婷| 国产欧美日韩一区二区三区在线观看| 久久精品免视看| 日本一区二区三区高清不卡| 国产精品久久久久影院老司| 综合中文字幕亚洲| 亚洲综合在线电影| 天天影视涩香欲综合网| 首页国产欧美久久| 久久97超碰色| 懂色av一区二区三区免费观看| 不卡的av在线| 欧美日韩亚洲国产综合| 日韩一区二区三区三四区视频在线观看 | 精品三级av在线| 国产日韩欧美一区二区三区乱码 | 日韩精品最新网址| 久久久精品免费网站| 国产精品国产三级国产专播品爱网 | 久久久久久一二三区| 日本一区二区三区视频视频| 亚洲视频免费在线| 视频一区在线视频| 国产成人超碰人人澡人人澡| 色综合久久综合中文综合网| 欧美日韩亚洲综合在线 | 欧美日韩中文一区| 中文在线资源观看网站视频免费不卡| 亚洲人成影院在线观看| 奇米精品一区二区三区四区 | 日韩一区二区高清| 国产午夜精品久久久久久久 | 亚洲成精国产精品女| 精品午夜一区二区三区在线观看| 丁香婷婷综合网| 91精品国产手机| 国产欧美一区二区精品秋霞影院 | 91麻豆产精品久久久久久 | 亚洲精品乱码久久久久久 | 亚洲一区视频在线| 国产一区欧美二区| 欧美综合一区二区| 久久久久国产精品厨房| 亚洲成人av一区二区三区| 国产精品白丝av| 欧美精品国产精品| 亚洲视频在线观看三级| 国产乱色国产精品免费视频| 欧美午夜在线一二页| 国产精品免费视频观看| 蜜臀a∨国产成人精品| 色综合视频一区二区三区高清| 精品国内二区三区| 丝瓜av网站精品一区二区| 99久久久精品| 久久新电视剧免费观看| 日韩国产欧美在线播放| 91麻豆精品一区二区三区| 久久众筹精品私拍模特| 在线观看亚洲专区| 欧美国产日韩亚洲一区| 精品一区二区av| 欧美一区二区三区公司| 亚洲国产你懂的| 色婷婷久久久亚洲一区二区三区| 欧美国产成人在线| 国产一二精品视频| 日韩精品一区二区三区在线播放| 亚洲国产精品嫩草影院| 91视频.com| 亚洲视频免费在线| 色综合久久中文综合久久97| 国产精品区一区二区三区| 国产69精品久久久久777| 国产视频在线观看一区二区三区| 狠狠色丁香九九婷婷综合五月| 日韩午夜在线影院|