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

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

?? mbswidth.c

?? Linux下文件工具。
?? C
字號:
/* Determine the number of screen columns needed for a string.   Copyright (C) 2000-2001 Free Software Foundation, Inc.   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.  *//* Written by Bruno Haible <haible@clisp.cons.org>.  */#ifdef HAVE_CONFIG_H# include <config.h>#endif/* Get MB_CUR_MAX.  */#include <stdlib.h>#include <string.h>/* Get isprint().  */#include <ctype.h>/* Get mbstate_t, mbrtowc(), mbsinit(), wcwidth().  */#if HAVE_WCHAR_H# include <wchar.h>#endif/* Get iswprint(), iswcntrl().  */#if HAVE_WCTYPE_H# include <wctype.h>#endif#if !defined iswprint && !HAVE_ISWPRINT# define iswprint(wc) 1#endif#if !defined iswcntrl && !HAVE_ISWCNTRL# define iswcntrl(wc) 0#endif#ifndef mbsinit# if !HAVE_MBSINIT#  define mbsinit(ps) 1# endif#endif#ifndef HAVE_DECL_WCWIDTH"this configure-time declaration test was not run"#endif#if !HAVE_DECL_WCWIDTHint wcwidth ();#endif#ifndef wcwidth# if !HAVE_WCWIDTH/* wcwidth doesn't exist, so assume all printable characters have   width 1.  */#  define wcwidth(wc) ((wc) == 0 ? 0 : iswprint (wc) ? 1 : -1)# endif#endif/* Get ISPRINT.  */#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))# define IN_CTYPE_DOMAIN(c) 1#else# define IN_CTYPE_DOMAIN(c) isascii(c)#endif/* Undefine to protect against the definition in wctype.h of solaris2.6.   */#undef ISPRINT#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))#undef ISCNTRL#define ISCNTRL(c) (IN_CTYPE_DOMAIN (c) && iscntrl (c))#include "mbswidth.h"/* Returns the number of columns needed to represent the multibyte   character string pointed to by STRING.  If a non-printable character   occurs, and MBSW_REJECT_UNPRINTABLE is specified, -1 is returned.   With flags = MBSW_REJECT_INVALID | MBSW_REJECT_UNPRINTABLE, this is   the multibyte analogon of the wcswidth function.  */intmbswidth (string, flags)     const char *string;     int flags;{  return mbsnwidth (string, strlen (string), flags);}/* Returns the number of columns needed to represent the multibyte   character string pointed to by STRING of length NBYTES.  If a   non-printable character occurs, and MBSW_REJECT_UNPRINTABLE is   specified, -1 is returned.  */intmbsnwidth (string, nbytes, flags)     const char *string;     size_t nbytes;     int flags;{  const char *p = string;  const char *plimit = p + nbytes;  int width;  width = 0;#if HAVE_MBRTOWC  if (MB_CUR_MAX > 1)    {      while (p < plimit)	switch (*p)	  {	    case ' ': case '!': case '"': case '#': case '%':	    case '&': case '\'': case '(': case ')': case '*':	    case '+': case ',': case '-': case '.': case '/':	    case '0': case '1': case '2': case '3': case '4':	    case '5': case '6': case '7': case '8': case '9':	    case ':': case ';': case '<': case '=': case '>':	    case '?':	    case 'A': case 'B': case 'C': case 'D': case 'E':	    case 'F': case 'G': case 'H': case 'I': case 'J':	    case 'K': case 'L': case 'M': case 'N': case 'O':	    case 'P': case 'Q': case 'R': case 'S': case 'T':	    case 'U': case 'V': case 'W': case 'X': case 'Y':	    case 'Z':	    case '[': case '\\': case ']': case '^': case '_':	    case 'a': case 'b': case 'c': case 'd': case 'e':	    case 'f': case 'g': case 'h': case 'i': case 'j':	    case 'k': case 'l': case 'm': case 'n': case 'o':	    case 'p': case 'q': case 'r': case 's': case 't':	    case 'u': case 'v': case 'w': case 'x': case 'y':	    case 'z': case '{': case '|': case '}': case '~':	      /* These characters are printable ASCII characters.  */	      p++;	      width++;	      break;	    default:	      /* If we have a multibyte sequence, scan it up to its end.  */	      {		mbstate_t mbstate;		memset (&mbstate, 0, sizeof mbstate);		do		  {		    wchar_t wc;		    size_t bytes;		    int w;		    bytes = mbrtowc (&wc, p, plimit - p, &mbstate);		    if (bytes == (size_t) -1)		      /* An invalid multibyte sequence was encountered.  */		      {			if (!(flags & MBSW_REJECT_INVALID))			  {			    p++;			    width++;			    break;			  }			else			  return -1;		      }		    if (bytes == (size_t) -2)		      /* An incomplete multibyte character at the end.  */		      {			if (!(flags & MBSW_REJECT_INVALID))			  {			    p = plimit;			    width++;			    break;			  }			else			  return -1;		      }		    if (bytes == 0)		      /* A null wide character was encountered.  */		      bytes = 1;		    w = wcwidth (wc);		    if (w >= 0)		      /* A printable multibyte character.  */		      width += w;		    else		      /* An unprintable multibyte character.  */		      if (!(flags & MBSW_REJECT_UNPRINTABLE))			width += (iswcntrl (wc) ? 0 : 1);		      else			return -1;		    p += bytes;		  }		while (! mbsinit (&mbstate));	      }	      break;	  }      return width;    }#endif  while (p < plimit)    {      unsigned char c = (unsigned char) *p++;      if (ISPRINT (c))	width++;      else if (!(flags & MBSW_REJECT_UNPRINTABLE))	width += (ISCNTRL (c) ? 0 : 1);      else	return -1;    }  return width;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产真实乱对白精彩久久| 日韩一区二区麻豆国产| 免费观看在线综合| 一区二区三区在线免费观看| 欧美一级免费观看| 欧美视频在线一区| 91猫先生在线| 91年精品国产| 一本大道综合伊人精品热热| 91影院在线免费观看| 岛国精品在线播放| 国产成人精品免费看| 激情伊人五月天久久综合| 久久久国产一区二区三区四区小说 | 乱中年女人伦av一区二区| 亚洲一区二区三区四区的| 一区二区三区精密机械公司| 亚洲男人的天堂网| 久久九九99视频| 国产亚洲美州欧州综合国| 久久婷婷色综合| 26uuu色噜噜精品一区| 精品国产区一区| 欧美v日韩v国产v| 欧美一级在线视频| 日韩一区二区三区免费看| 日韩丝袜情趣美女图片| 日韩一区二区三区视频在线观看| 欧美日韩国产一级片| 亚洲国产成人精品视频| 日韩精品国产精品| 成人精品视频一区二区三区 | 久久99精品视频| 国产福利不卡视频| 欧美色综合久久| 337p粉嫩大胆噜噜噜噜噜91av | 中文字幕一区二区三区精华液 | 欧美一卡在线观看| 国产精品久久久久一区| 日韩av不卡在线观看| 99久久99久久综合| 精品粉嫩超白一线天av| 亚洲综合免费观看高清完整版在线| 久久精品二区亚洲w码| 欧美色中文字幕| 中文字幕不卡一区| 极品美女销魂一区二区三区免费| 97精品久久久午夜一区二区三区 | 欧美婷婷六月丁香综合色| 精品国产精品一区二区夜夜嗨| 中文字幕亚洲综合久久菠萝蜜| 免费欧美日韩国产三级电影| 欧美亚州韩日在线看免费版国语版| 久久久久国产精品麻豆| 蜜桃久久久久久| 欧美日韩免费视频| 亚洲精品国产高清久久伦理二区| 国产黄人亚洲片| 日韩一区二区电影在线| 亚洲影视在线观看| 一本大道av伊人久久综合| 中文字幕在线观看一区| 成人午夜在线视频| 国产亚洲成aⅴ人片在线观看 | 97精品超碰一区二区三区| 久久影院视频免费| 极品少妇一区二区三区精品视频| 欧美老肥妇做.爰bbww| 一级精品视频在线观看宜春院| 国产.精品.日韩.另类.中文.在线.播放| 日韩欧美成人一区| 喷白浆一区二区| 精品免费99久久| 九色|91porny| 精品成人一区二区| 久久99精品国产麻豆不卡| 精品精品国产高清一毛片一天堂| 精品一区二区三区免费| 久久五月婷婷丁香社区| 国产精品一线二线三线| 国产农村妇女毛片精品久久麻豆| 国产精品一区免费在线观看| 国产日韩欧美综合一区| 风间由美中文字幕在线看视频国产欧美| 国产亚洲精品bt天堂精选| 成人免费高清在线观看| 亚洲日本欧美天堂| 欧美性受xxxx黑人xyx性爽| 亚洲国产美女搞黄色| 91精品一区二区三区在线观看| 日日摸夜夜添夜夜添国产精品| 91精品国产91久久久久久一区二区| 日本不卡视频一二三区| 久久久久99精品国产片| 91在线观看成人| 日本在线不卡一区| 国产日韩v精品一区二区| 日本精品一区二区三区高清| 日韩成人一级大片| 国产精品入口麻豆九色| 欧洲一区在线电影| 国模一区二区三区白浆| ㊣最新国产の精品bt伙计久久| 欧美日韩精品系列| 国产在线精品一区二区| 亚洲美女一区二区三区| 欧美一区日韩一区| 国产福利精品一区二区| 亚洲国产va精品久久久不卡综合| 欧美精品一区视频| 色94色欧美sute亚洲线路一久| 麻豆精品在线看| 亚洲美女屁股眼交3| 日韩亚洲欧美高清| 色综合天天综合色综合av | 日韩av一二三| 亚洲欧洲色图综合| www国产亚洲精品久久麻豆| 欧美色国产精品| 成人精品视频一区二区三区 | 亚洲欧美色一区| 久久综合九色综合97_久久久| 色综合久久久久综合体 | 中文字幕日韩精品一区| 日韩一区二区免费在线观看| 91免费视频大全| 国产久卡久卡久卡久卡视频精品| 亚洲成精国产精品女| 日韩一区有码在线| 久久午夜电影网| 欧美va天堂va视频va在线| 欧洲人成人精品| 色婷婷亚洲精品| 成人ar影院免费观看视频| 国产精品小仙女| 国产真实乱对白精彩久久| 老汉av免费一区二区三区| 亚洲成人免费影院| 亚洲精品福利视频网站| 亚洲日本成人在线观看| 国产精品毛片久久久久久久| 久久久国产精品不卡| 日韩欧美国产系列| 欧美精品国产精品| 欧美乱熟臀69xxxxxx| 欧美日韩视频在线观看一区二区三区| 99热这里都是精品| 91一区二区在线| 色狠狠桃花综合| 欧美午夜片在线观看| 欧美日韩久久久一区| 欧美日本乱大交xxxxx| 欧美日本一区二区三区| 欧美日韩一区二区在线观看| 欧美性大战久久| 91超碰这里只有精品国产| 欧美精品一二三四| 日韩欧美国产1| 国产清纯白嫩初高生在线观看91| 久久久精品2019中文字幕之3| 国产三级精品三级在线专区| 国产精品免费免费| 一个色在线综合| 免费在线欧美视频| 国产伦精一区二区三区| 国产mv日韩mv欧美| 色一区在线观看| 91精品国产综合久久精品app| 日韩一级精品视频在线观看| 精品88久久久久88久久久| 欧美极品xxx| 亚洲午夜视频在线| 精品一区精品二区高清| av电影天堂一区二区在线观看| 欧美主播一区二区三区美女| 91精品国产欧美一区二区| 久久精品视频一区| 亚洲永久免费av| 国产在线视频不卡二| 99re热视频精品| 日韩一区二区三区精品视频| 国产精品免费av| 蜜臀久久99精品久久久久久9 | 亚洲影视资源网| 美日韩黄色大片| 91蜜桃视频在线| 精品久久人人做人人爱| 亚洲视频免费在线| 精品一区二区在线看| 色呦呦国产精品| 26uuu色噜噜精品一区| 亚洲午夜精品17c| 国产jizzjizz一区二区| 欧美精品v国产精品v日韩精品| 中文字幕av一区 二区| 日韩二区三区四区| 色婷婷精品久久二区二区蜜臂av| 精品人伦一区二区色婷婷| 亚洲精品欧美专区| 成人黄色在线看|