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

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

?? dcigettext.c

?? 研讀AxCrypt對加解密的處理方法
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* Implementation of the internal dcigettext function.
   Copyright (C) 1995-1999, 2000-2005 Free Software Foundation, Inc.

   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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
   USA.  */

/* Tell glibc's <string.h> to provide a prototype for mempcpy().
   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 <sys/types.h>

#ifdef __GNUC__
# define alloca __builtin_alloca
# define HAVE_ALLOCA 1
#else
# ifdef _MSC_VER
#  include <malloc.h>
#  define alloca _alloca
# else
#  if defined HAVE_ALLOCA_H || defined _LIBC
#   include <alloca.h>
#  else
#   ifdef _AIX
 #pragma alloca
#   else
#    ifndef alloca
char *alloca ();
#    endif
#   endif
#  endif
# endif
#endif

#include <errno.h>
#ifndef errno
extern int errno;
#endif
#ifndef __set_errno
# define __set_errno(val) errno = (val)
#endif

#include <stddef.h>
#include <stdlib.h>
#include <string.h>

#if defined HAVE_UNISTD_H || defined _LIBC
# include <unistd.h>
#endif

#include <locale.h>

#ifdef _LIBC
  /* Guess whether integer division by zero raises signal SIGFPE.
     Set to 1 only if you know for sure.  In case of doubt, set to 0.  */
# if defined __alpha__ || defined __arm__ || defined __i386__ \
     || defined __m68k__ || defined __s390__
#  define INTDIV0_RAISES_SIGFPE 1
# else
#  define INTDIV0_RAISES_SIGFPE 0
# endif
#endif
#if !INTDIV0_RAISES_SIGFPE
# include <signal.h>
#endif

#if defined HAVE_SYS_PARAM_H || defined _LIBC
# include <sys/param.h>
#endif

#include "gettextP.h"
#include "plural-exp.h"
#ifdef _LIBC
# include <libintl.h>
#else
# include "libgnuintl.h"
#endif
#include "hash-string.h"

/* Thread safetyness.  */
#ifdef _LIBC
# include <bits/libc-lock.h>
#else
/* Provide dummy implementation if this is outside glibc.  */
# define __libc_lock_define_initialized(CLASS, NAME)
# define __libc_lock_lock(NAME)
# define __libc_lock_unlock(NAME)
# define __libc_rwlock_define_initialized(CLASS, NAME)
# define __libc_rwlock_rdlock(NAME)
# define __libc_rwlock_unlock(NAME)
#endif

/* Alignment of types.  */
#if defined __GNUC__ && __GNUC__ >= 2
# define alignof(TYPE) __alignof__ (TYPE)
#else
# define alignof(TYPE) \
    ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2)
#endif

/* The internal variables in the standalone libintl.a must have different
   names than the internal variables in GNU libc, otherwise programs
   using libintl.a cannot be linked statically.  */
#if !defined _LIBC
# define _nl_default_default_domain libintl_nl_default_default_domain
# define _nl_current_default_domain libintl_nl_current_default_domain
# define _nl_default_dirname libintl_nl_default_dirname
# define _nl_domain_bindings libintl_nl_domain_bindings
#endif

/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>.  */
#ifndef offsetof
# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
#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 getcwd __getcwd
# ifndef stpcpy
#  define stpcpy __stpcpy
# endif
# define tfind __tfind
#else
# if !defined HAVE_GETCWD
char *getwd ();
#  define getcwd(buf, max) getwd (buf)
# else
#  if VMS
#   define getcwd(buf, max) (getcwd) (buf, max, 0)
#  else
char *getcwd ();
#  endif
# endif
# ifndef HAVE_STPCPY
static char *stpcpy (char *dest, const char *src);
# endif
# ifndef HAVE_MEMPCPY
static void *mempcpy (void *dest, const void *src, size_t n);
# endif
#endif

/* Amount to increase buffer size by in each try.  */
#define PATH_INCR 32

/* The following is from pathmax.h.  */
/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
   PATH_MAX but might cause redefinition warnings when sys/param.h is
   later included (as on MORE/BSD 4.3).  */
#if defined _POSIX_VERSION || (defined HAVE_LIMITS_H && !defined __GNUC__)
# include <limits.h>
#endif

#ifndef _POSIX_PATH_MAX
# define _POSIX_PATH_MAX 255
#endif

#if !defined PATH_MAX && defined _PC_PATH_MAX
# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
#endif

/* Don't include sys/param.h if it already has been.  */
#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
# include <sys/param.h>
#endif

#if !defined PATH_MAX && defined MAXPATHLEN
# define PATH_MAX MAXPATHLEN
#endif

#ifndef PATH_MAX
# define PATH_MAX _POSIX_PATH_MAX
#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.
   IS_PATH_WITH_DIR(P)  tests whether P contains a directory specification.
 */
#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
  /* Win32, Cygwin, 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))
# define IS_PATH_WITH_DIR(P) \
    (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
#else
  /* Unix */
# define ISSLASH(C) ((C) == '/')
# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
#endif

/* This is the type used for the search tree where known translations
   are stored.  */
struct known_translation_t
{
  /* Domain in which to search.  */
  char *domainname;

  /* The category.  */
  int category;

  /* State of the catalog counter at the point the string was found.  */
  int counter;

  /* Catalog where the string was found.  */
  struct loaded_l10nfile *domain;

  /* And finally the translation.  */
  const char *translation;
  size_t translation_length;

  /* Pointer to the string in question.  */
  char msgid[ZERO];
};

/* Root of the search tree with known translations.  We can use this
   only if the system provides the `tsearch' function family.  */
#if defined HAVE_TSEARCH || defined _LIBC
# include <search.h>

static void *root;

# ifdef _LIBC
#  define tsearch __tsearch
# endif

/* Function to compare two entries in the table of known translations.  */
static int
transcmp (const void *p1, const void *p2)
{
  const struct known_translation_t *s1;
  const struct known_translation_t *s2;
  int result;

  s1 = (const struct known_translation_t *) p1;
  s2 = (const struct known_translation_t *) p2;

  result = strcmp (s1->msgid, s2->msgid);
  if (result == 0)
    {
      result = strcmp (s1->domainname, s2->domainname);
      if (result == 0)
	/* We compare the category last (though this is the cheapest
	   operation) since it is hopefully always the same (namely
	   LC_MESSAGES).  */
	result = s1->category - s2->category;
    }

  return result;
}
#endif

#ifndef INTVARDEF
# define INTVARDEF(name)
#endif
#ifndef INTUSE
# define INTUSE(name) name
#endif

/* Name of the default domain used for gettext(3) prior any call to
   textdomain(3).  The default value for this is "messages".  */
const char _nl_default_default_domain[] attribute_hidden = "messages";

/* Value used as the default domain for gettext(3).  */
const char *_nl_current_default_domain attribute_hidden
     = _nl_default_default_domain;

/* Contains the default location of the message catalogs.  */
#if defined __EMX__
extern const char _nl_default_dirname[];
#else
const char _nl_default_dirname[] = LOCALEDIR;
INTVARDEF (_nl_default_dirname)
#endif

/* List with bindings of specific domains created by bindtextdomain()
   calls.  */
struct binding *_nl_domain_bindings;

/* Prototypes for local functions.  */
static char *plural_lookup (struct loaded_l10nfile *domain,
			    unsigned long int n,
			    const char *translation, size_t translation_len)
     internal_function;
static const char *guess_category_value (int category,
					 const char *categoryname)
     internal_function;
#ifdef _LIBC
# include "../locale/localeinfo.h"
# define category_to_name(category)	_nl_category_names[category]
#else
static const char *category_to_name (int category) internal_function;
#endif


/* For those loosing systems which don't have `alloca' we have to add
   some additional code emulating it.  */
#ifdef HAVE_ALLOCA
/* Nothing has to be done.  */
# define freea(p) /* nothing */
# define ADD_BLOCK(list, address) /* nothing */
# define FREE_BLOCKS(list) /* nothing */
#else
struct block_list
{
  void *address;
  struct block_list *next;
};
# define ADD_BLOCK(list, addr)						      \
  do {									      \
    struct block_list *newp = (struct block_list *) malloc (sizeof (*newp));  \
    /* If we cannot get a free block we cannot add the new element to	      \
       the list.  */							      \
    if (newp != NULL) {							      \
      newp->address = (addr);						      \
      newp->next = (list);						      \
      (list) = newp;							      \
    }									      \
  } while (0)
# define FREE_BLOCKS(list)						      \
  do {									      \
    while (list != NULL) {						      \
      struct block_list *old = list;					      \
      list = list->next;						      \
      free (old->address);						      \
      free (old);							      \
    }									      \
  } while (0)
# undef alloca
# define alloca(size) (malloc (size))
# define freea(p) free (p)
#endif	/* have alloca */


#ifdef _LIBC
/* List of blocks allocated for translations.  */
typedef struct transmem_list
{
  struct transmem_list *next;
  char data[ZERO];
} transmem_block_t;
static struct transmem_list *transmem_list;
#else
typedef unsigned char transmem_block_t;
#endif


/* 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 DCIGETTEXT __dcigettext
#else
# define DCIGETTEXT libintl_dcigettext
#endif

/* Lock variable to protect the global data in the gettext implementation.  */
#ifdef _LIBC
__libc_rwlock_define_initialized (, _nl_state_lock attribute_hidden)
#endif

/* Checking whether the binaries runs SUID must be done and glibc provides
   easier methods therefore we make a difference here.  */
#ifdef _LIBC
# define ENABLE_SECURE __libc_enable_secure
# define DETERMINE_SECURE
#else
# ifndef HAVE_GETUID
#  define getuid() 0
# endif
# ifndef HAVE_GETGID
#  define getgid() 0
# endif
# ifndef HAVE_GETEUID
#  define geteuid() getuid()
# endif
# ifndef HAVE_GETEGID
#  define getegid() getgid()
# endif
static int enable_secure;
# define ENABLE_SECURE (enable_secure == 1)
# define DETERMINE_SECURE \
  if (enable_secure == 0)						      \
    {									      \
      if (getuid () != geteuid () || getgid () != getegid ())		      \
	enable_secure = 1;						      \
      else								      \
	enable_secure = -1;						      \
    }
#endif

/* Get the function to evaluate the plural expression.  */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品成a人在线观看| 亚洲精选视频在线| 免费高清在线视频一区·| 91国模大尺度私拍在线视频| 91精品国产色综合久久不卡电影| 亚洲欧美日韩成人高清在线一区| 成人午夜视频在线| 国产欧美一区二区精品秋霞影院 | 日韩三级高清在线| 丝袜亚洲另类丝袜在线| 欧美日韩国产综合草草| 亚洲一区免费观看| 欧美日韩五月天| 性感美女极品91精品| 在线观看一区二区精品视频| 亚洲欧美国产毛片在线| 成人av电影免费在线播放| 亚洲欧洲性图库| 在线免费观看日韩欧美| 亚洲国产色一区| 欧美一区二区三区人| 日本aⅴ亚洲精品中文乱码| 在线不卡欧美精品一区二区三区| 天天色综合天天| 91精品国产综合久久久久久漫画| 日韩高清在线一区| 2022国产精品视频| 国产成人精品www牛牛影视| 国产精品久久久久久久岛一牛影视| 韩国午夜理伦三级不卡影院| 久久精品亚洲国产奇米99| www.欧美日韩国产在线| 亚洲欧美怡红院| 在线综合+亚洲+欧美中文字幕| 午夜精品成人在线视频| 欧美精品在线观看播放| 激情伊人五月天久久综合| 国产欧美一区二区在线| 欧美中文字幕亚洲一区二区va在线| 一区二区三区四区视频精品免费| 欧美高清dvd| 国产成人综合在线| 亚洲最大成人综合| 国产午夜亚洲精品理论片色戒| 成人永久aaa| 午夜影院在线观看欧美| 久久亚洲影视婷婷| 99精品黄色片免费大全| 日韩精品成人一区二区三区| 欧美激情一区二区三区全黄 | 精品国产乱码久久久久久久久 | 国产在线国偷精品免费看| 日本一区二区高清| 91精品欧美综合在线观看最新| 国产裸体歌舞团一区二区| 自拍视频在线观看一区二区| 51久久夜色精品国产麻豆| 成人毛片在线观看| 日韩精品三区四区| 亚洲欧美区自拍先锋| 欧美午夜免费电影| 国产91精品精华液一区二区三区| 亚洲国产成人91porn| 337p日本欧洲亚洲大胆精品 | 日本vs亚洲vs韩国一区三区二区| 国产欧美精品在线观看| 欧美在线一区二区| 成人教育av在线| 国产精品一区二区久激情瑜伽 | 亚洲视频一区二区在线| 久久久久久久网| 欧美大胆一级视频| 欧美伊人精品成人久久综合97| 国产传媒日韩欧美成人| 人人精品人人爱| 一区二区激情小说| 国产精品美日韩| 久久久久久久久97黄色工厂| 日韩一区二区三免费高清| 99精品视频在线播放观看| 国产精品正在播放| 久久精品国产亚洲a| 婷婷综合在线观看| 亚洲成人av在线电影| 中文子幕无线码一区tr| 国产亚洲短视频| 一区二区三区电影在线播| 国产精品水嫩水嫩| 国产欧美一区二区精品忘忧草| 亚洲精品在线观看视频| 日韩一区二区三区免费看 | 懂色中文一区二区在线播放| 极品销魂美女一区二区三区| 亚洲成人先锋电影| 视频在线观看一区| 午夜精品在线看| 五月天一区二区三区| 亚洲午夜一区二区| 日韩黄色一级片| 日本va欧美va瓶| 韩国一区二区在线观看| 国产一区二区美女| 国产乱码精品一区二区三区av | 7777精品伊人久久久大香线蕉的 | 日韩国产在线一| 国产在线乱码一区二区三区| www.视频一区| 337p亚洲精品色噜噜| 久久综合久久综合久久综合| 中文字幕一区二区三区四区| 日韩国产欧美在线观看| 成人免费看视频| 欧美日韩中文一区| 久久精品人人做人人爽97| 亚洲一区二区三区精品在线| 久久精品二区亚洲w码| 99久久免费国产| 日韩欧美在线不卡| 亚洲免费色视频| 国产乱码精品1区2区3区| 91久久精品一区二区三| 精品国产成人在线影院| 夜夜嗨av一区二区三区| 国产99精品国产| 欧美成人猛片aaaaaaa| 一区二区三区精品视频在线| 欧美三级日韩三级国产三级| 久久综合九色综合97_久久久| 亚洲激情图片一区| 国产东北露脸精品视频| 日韩西西人体444www| 亚洲精品中文在线观看| 国内一区二区在线| 制服丝袜中文字幕亚洲| 亚洲美女屁股眼交| 国产不卡视频在线观看| 欧美一区二区精品久久911| 亚洲精品中文字幕在线观看| 国产ts人妖一区二区| 精品久久久久香蕉网| 日韩和欧美一区二区| 欧美中文字幕一区二区三区亚洲| 国产精品久久精品日日| 激情欧美一区二区三区在线观看| 欧美综合天天夜夜久久| 中文字幕亚洲精品在线观看| 国产成人精品影视| 精品日产卡一卡二卡麻豆| 日韩高清欧美激情| 欧美日韩一区久久| 一区二区三区四区乱视频| 9色porny自拍视频一区二区| 国产色婷婷亚洲99精品小说| 蜜臀91精品一区二区三区| 69堂精品视频| 午夜精品影院在线观看| 欧美亚洲综合色| 亚洲国产乱码最新视频 | ...xxx性欧美| aaa欧美日韩| 亚洲美女区一区| 91福利在线观看| 一区二区三区波多野结衣在线观看| av一区二区三区在线| 国产精品久久久久久久久动漫| 成人18视频日本| 中文字幕中文字幕中文字幕亚洲无线| 国产成人丝袜美腿| 欧美极品aⅴ影院| 99久久综合精品| 亚洲欧美一区二区三区孕妇| 色综合久久综合网欧美综合网 | 偷窥国产亚洲免费视频| 欧美理论在线播放| 欧美aaa在线| 精品欧美一区二区在线观看| 国产一区二区三区免费| 2021久久国产精品不只是精品| 国产凹凸在线观看一区二区| 日本一区二区不卡视频| 色综合av在线| 日本91福利区| 欧美极品少妇xxxxⅹ高跟鞋| 99麻豆久久久国产精品免费| 亚洲一区二三区| 91精品国产综合久久久久| 激情伊人五月天久久综合| 国产欧美日韩综合| 色综合久久久久久久久久久| 亚洲福利视频一区二区| 精品久久久久久久久久久久久久久久久 | 日韩一区国产二区欧美三区| 麻豆免费精品视频| 中文字幕中文乱码欧美一区二区 | 日韩理论片在线| 欧美亚洲另类激情小说| 蜜桃一区二区三区四区| 欧美国产一区二区| 欧美日韩国产bt| 国产成人亚洲综合色影视|