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

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

?? era.c

?? Linux下頭文件time.h的實現源碼
?? C
字號:
/* Helper functions used by strftime/strptime to handle locale-specific "eras".   Copyright (C) 1995-2001,02 Free Software Foundation, Inc.   This file is part of the GNU C Library.   The GNU C Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.   The GNU C Library 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   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with the GNU C Library; if not, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  */#include "../locale/localeinfo.h"#include <bits/libc-lock.h>#include <stdlib.h>#include <wchar.h>#include <string.h>/* Some of the functions here must not be used while setlocale is called.  */__libc_lock_define (extern, __libc_setlocale_lock attribute_hidden)#define CURRENT(item)		(current->values[_NL_ITEM_INDEX (item)].string)#define CURRENT_WORD(item)	(current->values[_NL_ITEM_INDEX (item)].word)#define ERA_DATE_CMP(a, b) \  (a[0] < b[0] || (a[0] == b[0] && (a[1] < b[1]				      \				    || (a[1] == b[1] && a[2] <= b[2]))))/* Look up the era information in CURRENT's locale strings and   cache it in CURRENT->private.  */static void internal_function_nl_init_era_entries (struct locale_data *current){  size_t cnt;  struct lc_time_data *data;  /* Avoid touching CURRENT if there is no data at all, for _nl_C_LC_TIME.  */  if (CURRENT_WORD (_NL_TIME_ERA_NUM_ENTRIES) == 0)    return;  __libc_lock_lock (__libc_setlocale_lock);  if (current->private.time == NULL)    {      current->private.time = malloc (sizeof *current->private.time);      if (current->private.time == NULL)	goto out;      memset (current->private.time, 0, sizeof *current->private.time);      current->private.cleanup = &_nl_cleanup_time;    }  data = current->private.time;  if (! data->era_initialized)    {      size_t new_num_eras = CURRENT_WORD (_NL_TIME_ERA_NUM_ENTRIES);      if (new_num_eras == 0)	{	  if (data->eras != NULL)	    {	      free (data->eras);	      data->eras = NULL;	    }	}      else	{	  struct era_entry *new_eras = data->eras;	  if (data->num_eras != new_num_eras)	    new_eras =	      (struct era_entry *) realloc (data->eras,					    new_num_eras					    * sizeof (struct era_entry));	  if (new_eras == NULL)	    {	      free (data->eras);	      data->num_eras = 0;	      data->eras = NULL;	    }          else	    {	      const char *ptr = CURRENT (_NL_TIME_ERA_ENTRIES);	      data->num_eras = new_num_eras;	      data->eras = new_eras;	      for (cnt = 0; cnt < new_num_eras; ++cnt)		{		  const char *base_ptr = ptr;		  memcpy ((void *) (new_eras + cnt), (const void *) ptr,			  sizeof (uint32_t) * 8);		  if (ERA_DATE_CMP(new_eras[cnt].start_date,				   new_eras[cnt].stop_date))		    if (new_eras[cnt].direction == (uint32_t) '+')		      new_eras[cnt].absolute_direction = 1;		    else		      new_eras[cnt].absolute_direction = -1;		  else		    if (new_eras[cnt].direction == (uint32_t) '+')		      new_eras[cnt].absolute_direction = -1;		    else		      new_eras[cnt].absolute_direction = 1;		  /* Skip numeric values.  */		  ptr += sizeof (uint32_t) * 8;		  /* Set and skip era name.  */		  new_eras[cnt].era_name = ptr;		  ptr = strchr (ptr, '\0') + 1;		  /* Set and skip era format.  */		  new_eras[cnt].era_format = ptr;		  ptr = strchr (ptr, '\0') + 1;		  ptr += 3 - (((ptr - (const char *) base_ptr) + 3) & 3);		  /* Set and skip wide era name.  */		  new_eras[cnt].era_wname = (wchar_t *) ptr;		  ptr = (char *) (wcschr ((wchar_t *) ptr, L'\0') + 1);		  /* Set and skip wide era format.  */		  new_eras[cnt].era_wformat = (wchar_t *) ptr;		  ptr = (char *) (wcschr ((wchar_t *) ptr, L'\0') + 1);		}	    }	}      data->era_initialized = 1;    } out:  __libc_lock_unlock (__libc_setlocale_lock);}struct era_entry *internal_function_nl_get_era_entry (const struct tm *tp, struct locale_data *current){  if (current->private.time == NULL || !current->private.time->era_initialized)    _nl_init_era_entries (current);  if (current->private.time != NULL)    {      /* Now compare date with the available eras.  */      const int32_t tdate[3] = { tp->tm_year, tp->tm_mon, tp->tm_mday };      size_t cnt;      for (cnt = 0; cnt < current->private.time->num_eras; ++cnt)	if ((ERA_DATE_CMP (current->private.time->eras[cnt].start_date, tdate)	     && ERA_DATE_CMP (tdate,			      current->private.time->eras[cnt].stop_date))	    || (ERA_DATE_CMP (current->private.time->eras[cnt].stop_date,			      tdate)		&& ERA_DATE_CMP (tdate,				 current->private.time->eras[cnt].start_date)))	  return &current->private.time->eras[cnt];    }  return NULL;}struct era_entry *internal_function_nl_select_era_entry (int cnt, struct locale_data *current){  if (current->private.time == NULL || !current->private.time->era_initialized)    _nl_init_era_entries (current);  return (current->private.time == NULL	  ? NULL : &current->private.time->eras[cnt]);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区在线免费播放| 色婷婷综合久久| 日韩中文字幕1| 亚洲亚洲精品在线观看| 亚洲综合激情小说| 一区二区日韩电影| 亚洲综合色在线| 亚洲另类一区二区| 国产精品不卡视频| 亚洲欧美日本在线| 一片黄亚洲嫩模| 一区二区三区欧美视频| 亚洲自拍另类综合| 三级欧美韩日大片在线看| 免费看日韩精品| 精品一区二区三区免费视频| 国产精品自在在线| 不卡视频免费播放| 色欧美日韩亚洲| 欧美一区二区成人| 国产日韩高清在线| 亚洲欧美日韩一区| 日本大胆欧美人术艺术动态| 国产美女精品人人做人人爽| 91麻豆国产精品久久| 欧美图区在线视频| 精品剧情在线观看| 国产精品久久久久久久久快鸭| 综合电影一区二区三区| 午夜在线电影亚洲一区| 韩国女主播成人在线| 99国产精品视频免费观看| 欧美绝品在线观看成人午夜影视| 精品美女一区二区三区| 亚洲欧美aⅴ...| 久久99精品久久久久久| 一本久久a久久精品亚洲| 欧美一区二区福利在线| 亚洲三级小视频| 韩国av一区二区| 欧美日韩一区久久| 国产日韩亚洲欧美综合| 首页亚洲欧美制服丝腿| 成人精品免费网站| 欧美刺激午夜性久久久久久久| 亚洲日本va午夜在线影院| 久久激情五月婷婷| 欧美视频一区二区三区在线观看| 国产欧美日韩在线| 久久精品国产久精国产| 在线观看视频一区二区| 一区二区中文视频| 国产一区二区三区在线观看精品 | 一本久道久久综合中文字幕| 91精品国产一区二区三区香蕉 | 91视频观看视频| 久久日韩精品一区二区五区| 性久久久久久久久| 91视频.com| 中文字幕一区二区三区在线不卡| 狠狠色丁香九九婷婷综合五月| 欧美系列日韩一区| 一区二区三区精品在线| 不卡的av在线播放| 久久精品综合网| 国产精品一区在线| 精品国产青草久久久久福利| 香蕉加勒比综合久久| 色婷婷一区二区三区四区| **性色生活片久久毛片| 成人免费的视频| 国产精品网站在线观看| 国产成人精品免费网站| 国产偷国产偷亚洲高清人白洁 | 国产精品美女视频| 国产精品一级片| 国产日韩欧美制服另类| 国产精品资源在线看| 国产欧美日本一区二区三区| 国产成人免费视频精品含羞草妖精| 日韩精品一区二区三区视频在线观看 | 欧美一级高清片| 麻豆成人91精品二区三区| 日韩一区国产二区欧美三区| 日韩国产欧美在线播放| 精品国产一区二区三区忘忧草| 久久草av在线| 久久久久久麻豆| 国产福利精品导航| 国产精品电影一区二区| 欧美制服丝袜第一页| 亚洲一区二区精品3399| 欧美一卡2卡3卡4卡| 国精产品一区一区三区mba视频| 亚洲精品在线网站| 国产999精品久久| 亚洲人成7777| 欧美日本视频在线| 精品中文字幕一区二区| 国产欧美一区二区精品秋霞影院 | 欧美军同video69gay| 久久福利资源站| 欧美激情一区三区| www.久久精品| 日产国产欧美视频一区精品| 精品国产一二三| 91豆麻精品91久久久久久| 麻豆传媒一区二区三区| 国产精品乱码人人做人人爱| 欧美日韩精品系列| 国产69精品久久777的优势| 亚洲同性同志一二三专区| 9191久久久久久久久久久| 99久久久久久| 日本女优在线视频一区二区| 中文字幕在线一区二区三区| 欧美高清性hdvideosex| 国产91富婆露脸刺激对白| 亚洲图片有声小说| 国产亚洲综合在线| 在线免费观看一区| 国产露脸91国语对白| 午夜精品福利一区二区三区av| 国产亚洲综合色| 在线不卡中文字幕| 色综合天天天天做夜夜夜夜做| 日韩成人一区二区三区在线观看| 中文字幕欧美日本乱码一线二线| 欧美一区二区三区视频在线| 99v久久综合狠狠综合久久| 九色porny丨国产精品| 亚洲国产日日夜夜| 国产精品对白交换视频| 国产香蕉久久精品综合网| 日韩欧美亚洲国产精品字幕久久久| 91影视在线播放| 成人av在线看| 丁香桃色午夜亚洲一区二区三区| 玖玖九九国产精品| 五月激情丁香一区二区三区| 亚洲欧美日韩精品久久久久| 亚洲国产高清在线| 欧美经典一区二区三区| 26uuu色噜噜精品一区| 欧美成人a视频| 91精品国产美女浴室洗澡无遮挡| 欧美亚洲免费在线一区| 色哟哟一区二区三区| 成人av电影免费在线播放| 成人免费视频app| 国产精品1区二区.| 高清av一区二区| 顶级嫩模精品视频在线看| 国产成人av一区二区三区在线| 91啪亚洲精品| 色综合视频在线观看| 在线一区二区三区做爰视频网站| 91蝌蚪porny| 日本道在线观看一区二区| 欧美性xxxxxxxx| 91精品国产色综合久久不卡蜜臀| 91精品国产综合久久福利软件 | 久久国产精品99久久人人澡| 日本中文字幕一区| 精品亚洲国产成人av制服丝袜| 久久激情五月婷婷| 国产成人午夜视频| 91污片在线观看| 欧美偷拍一区二区| 6080午夜不卡| 久久精品免视看| 亚洲精品写真福利| 日韩国产欧美在线播放| 国产真实精品久久二三区| 成人av电影在线| 欧美肥妇毛茸茸| 国产三级精品在线| 一区二区激情视频| 日韩精品乱码av一区二区| 精品制服美女丁香| 91麻豆高清视频| 欧美一区二区三区白人| 中文字幕欧美日韩一区| 亚洲成人自拍偷拍| 国产一区二区在线影院| 94-欧美-setu| 日韩欧美国产麻豆| 亚洲人成7777| 韩国一区二区三区| 欧美制服丝袜第一页| 精品国产免费视频| 亚洲香肠在线观看| 国产一区二区h| 91精品国产综合久久久久久漫画| 国产欧美日韩视频在线观看| 性做久久久久久| 91在线观看视频| 久久免费精品国产久精品久久久久| 亚洲欧美日韩国产手机在线 | 国产精品色婷婷久久58|