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

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

?? mysnprintf.c

?? FreeWRLduneInputDevice和FreeWRL一起可以讓用戶用帶有6DoF的輸入設備檢索3D VRML/X3D數據。它基于FreeWRL的"/tmp/inpdev"擴展傳感器輸入接口和w
?? C
?? 第 1 頁 / 共 2 頁
字號:
/************************************************************** * Original: * Patrick Powell Tue Apr 11 09:48:21 PDT 1995 * A bombproof version of doprnt (dopr) included. * Sigh.  This sort of thing is always nasty do deal with.  Note that * the version here does not include floating point... * * snprintf() is used instead of sprintf() as it does limit checks * for string length.  This covers a nasty loophole. * * The other functions are there to prevent NULL pointers from * causing nast effects. * * More Recently: *  Brandon Long <blong@fiction.net> 9/15/96 for mutt 0.43 *  This was ugly.  It is still ugly.  I opted out of floating point *  numbers, but the formatter understands just about everything *  from the normal C string format, at least as far as I can tell from *  the Solaris 2.5 printf(3S) man page. * *  Brandon Long <blong@fiction.net> 10/22/97 for mutt 0.87.1 *    Ok, added some minimal floating point support, which means this *    probably requires libm on most operating systems.  Don't yet *    support the exponent (e,E) and sigfig (g,G).  Also, fmtint() *    was pretty badly broken, it just wasn't being exercised in ways *    which showed it, so that's been fixed.  Also, formated the code *    to mutt conventions, and removed dead code left over from the *    original.  Also, there is now a builtin-test, just compile with: *           gcc -DTEST_SNPRINTF -o snprintf snprintf.c -lm *    and run snprintf for results. *  *  Thomas Roessler <roessler@guug.de> 01/27/98 for mutt 0.89i *    The PGP code was using unsigned hexadecimal formats.  *    Unfortunately, unsigned formats simply didn't work. * *  Michael Elkins <me@cs.hmc.edu> 03/05/98 for mutt 0.90.8 *    The original code assumed that both snprintf() and vsnprintf() were *    missing.  Some systems only have snprintf() but not vsnprintf(), so *    the code is now broken down under HAVE_SNPRINTF and HAVE_VSNPRINTF. * **************************************************************/#include "config.h"#include <string.h>#include <ctype.h>#include <sys/types.h>#include <math.h>#ifdef _WIN32#include <io.h>#include <stdio.h>#include <windows.h>#else#include <unistd.h>#endif/* varargs declarations: */#if defined(HAVE_STDARG_H)# include <stdarg.h># define HAVE_STDARGS    /* let's hope that works everywhere (mj) */# define VA_LOCAL_DECL   va_list ap# define VA_START(f)     va_start(ap, f)# define VA_SHIFT(v,t)  ;   /* no-op for ANSI */# define VA_END          va_end(ap)#else# if defined(HAVE_VARARGS_H)#  include <varargs.h>#  undef HAVE_STDARGS#  define VA_LOCAL_DECL   va_list ap#  define VA_START(f)     va_start(ap)      /* f is ignored! */#  define VA_SHIFT(v,t) v = va_arg(ap,t)#  define VA_END        va_end(ap)# else/*XX ** NO VARARGS ** XX*/# error no either stdarg or varargs needed# endif#endifstatic void dopr (char *buffer, size_t maxlen, const char *format,                   va_list args);static void fmtstr (char *buffer, size_t *currlen, size_t maxlen,		    char *value, int flags, int min, int max);static void fmtint (char *buffer, size_t *currlen, size_t maxlen,		    long value, int base, int min, int max, int flags);static void fmtfp (char *buffer, size_t *currlen, size_t maxlen,		   long double fvalue, int min, int max, int flags);static void fmtefp (char *buffer, size_t *currlen, size_t maxlen,		   long double fvalue, int min, int max, int flags);static void dopr_outch (char *buffer, size_t *currlen, size_t maxlen, char c );/*  * myisdigit(): signalhandlerparanoia isdigit version independend of C-Library */static int myisdigit(int c)   {   switch(c)      {      case '0':         return 1;      case '1':         return 1;      case '2':         return 1;      case '3':         return 1;      case '4':         return 1;      case '5':         return 1;      case '6':         return 1;      case '7':         return 1;      case '8':         return 1;      case '9':         return 1;      default:         return 0;       }   }/*  * mystrlen(): signalhandlerparanoia strlen version independend of C-Library */size_t mystrlen (const char *s)   {   int strln;   for (strln = 0; s[strln]; ++strln);   return strln;   }/*  * mystrcpy(): signalhandlerparanoia strcpy version independend of C-Library */char *mystrcpy(char *s1, const char *s2)   {   int strln;   for (strln = 0; s2[strln]; ++strln)      s1[strln]=s2[strln];   s1[strln]=0;   return s1;   }/*  * mystrcat(): signalhandlerparanoia strcpy version independend of C-Library */char *mystrcat(char *s1, const char *s2)   {   int strln;   int length=mystrlen(s1);   for (strln = 0; s2[strln]; ++strln)      s1[length+strln]=s2[strln];   s1[length+strln]=0;   return s1;   }/* * dopr(): poor man's version of doprintf *//* format read states */#define DP_S_DEFAULT 0#define DP_S_FLAGS   1#define DP_S_MIN     2#define DP_S_DOT     3#define DP_S_MAX     4#define DP_S_MOD     5#define DP_S_CONV    6#define DP_S_DONE    7/* format flags - Bits */#define DP_F_MINUS 	(1 << 0)#define DP_F_PLUS  	(1 << 1)#define DP_F_SPACE 	(1 << 2)#define DP_F_NUM   	(1 << 3)#define DP_F_ZERO  	(1 << 4)#define DP_F_UP    	(1 << 5)#define DP_F_UNSIGNED 	(1 << 6)/* Conversion Flags */#define DP_C_SHORT   1#define DP_C_LONG    2#define DP_C_LDOUBLE 3#define char_to_int(p) (p - '0')#ifndef MAX# define MAX(p,q) ((p >= q) ? p : q)#endifstatic void dopr (char *buffer, size_t maxlen, const char *format, va_list args){  char ch;  long value;  long double fvalue;  char *strvalue;  int min;  int max;  int state;  int flags;  int cflags;  size_t currlen;    state = DP_S_DEFAULT;  currlen = flags = cflags = min = 0;  max = -1;  ch = *format++;  while (state != DP_S_DONE)  {    if ((ch == '\0') || (currlen >= maxlen))       state = DP_S_DONE;    switch(state)     {    case DP_S_DEFAULT:      if (ch == '%') 	state = DP_S_FLAGS;      else 	dopr_outch (buffer, &currlen, maxlen, ch);      ch = *format++;      break;    case DP_S_FLAGS:      switch (ch)       {      case '-':	flags |= DP_F_MINUS;        ch = *format++;	break;      case '+':	flags |= DP_F_PLUS;        ch = *format++;	break;      case ' ':	flags |= DP_F_SPACE;        ch = *format++;	break;      case '#':	flags |= DP_F_NUM;        ch = *format++;	break;      case '0':	flags |= DP_F_ZERO;        ch = *format++;	break;      default:	state = DP_S_MIN;	break;      }      break;    case DP_S_MIN:      if (myisdigit((unsigned char)ch))       {	min = 10*min + char_to_int (ch);	ch = *format++;      }       else if (ch == '*')       {	min = va_arg (args, int);	ch = *format++;	state = DP_S_DOT;      }       else 	state = DP_S_DOT;      break;    case DP_S_DOT:      if (ch == '.')       {	state = DP_S_MAX;	ch = *format++;      }       else 	state = DP_S_MOD;      break;    case DP_S_MAX:      if (myisdigit((unsigned char)ch))       {	if (max < 0)	  max = 0;	max = 10*max + char_to_int (ch);	ch = *format++;      }       else if (ch == '*')       {	max = va_arg (args, int);	ch = *format++;	state = DP_S_MOD;      }       else 	state = DP_S_MOD;      break;    case DP_S_MOD:      /* Currently, we don't support Long Long, bummer */      switch (ch)       {      case 'h':	cflags = DP_C_SHORT;	ch = *format++;	break;      case 'l':	cflags = DP_C_LONG;	ch = *format++;	break;      case 'L':	cflags = DP_C_LDOUBLE;	ch = *format++;	break;      default:	break;      }      state = DP_S_CONV;      break;    case DP_S_CONV:      switch (ch)       {      case 'd':      case 'i':	if (cflags == DP_C_SHORT) 	  value =(short int)  va_arg (args, int);	else if (cflags == DP_C_LONG)	  value = va_arg (args, long int);	else	  value = va_arg (args, int);	fmtint (buffer, &currlen, maxlen, value, 10, min, max, flags);	break;      case 'o':	flags |= DP_F_UNSIGNED;	if (cflags == DP_C_SHORT)	  value = (unsigned short int) va_arg (args, int);	else if (cflags == DP_C_LONG)	  value = va_arg (args, unsigned long int);	else	  value = va_arg (args, unsigned int);	fmtint (buffer, &currlen, maxlen, value, 8, min, max, flags);	break;      case 'u':	flags |= DP_F_UNSIGNED;	if (cflags == DP_C_SHORT)	  value = (unsigned short int) va_arg (args, int);	else if (cflags == DP_C_LONG)	  value = va_arg (args, unsigned long int);	else	  value = va_arg (args, unsigned int);	fmtint (buffer, &currlen, maxlen, value, 10, min, max, flags);	break;      case 'X':	flags |= DP_F_UP;      case 'x':	flags |= DP_F_UNSIGNED;	if (cflags == DP_C_SHORT)	  value = (unsigned short int) va_arg (args, int);	else if (cflags == DP_C_LONG)	  value = va_arg (args, unsigned long int);	else	  value = va_arg (args, unsigned int);	fmtint (buffer, &currlen, maxlen, value, 16, min, max, flags);	break;      case 'f':	if (cflags == DP_C_LDOUBLE)	  fvalue = va_arg (args, long double);	else	  fvalue = va_arg (args, double);	/* um, floating point? */	fmtfp (buffer, &currlen, maxlen, fvalue, min, max, flags);	break;      case 'E':	flags |= DP_F_UP;      case 'e':	if (cflags == DP_C_LDOUBLE)	  fvalue = va_arg (args, long double);	else	  fvalue = va_arg (args, double);	/* um, floating point? */	fmtefp (buffer, &currlen, maxlen, fvalue, min, max, flags);	break;      case 'G':	flags |= DP_F_UP;      case 'g':	if (cflags == DP_C_LDOUBLE)	  fvalue = va_arg (args, long double);	else	  fvalue = va_arg (args, double);	/* um, floating point? */	fmtefp (buffer, &currlen, maxlen, fvalue, min, max, flags);	break;      case 'c':	dopr_outch (buffer, &currlen, maxlen, va_arg (args, int));	break;      case 's':	strvalue = va_arg (args, char *);	if (max < 0) 	  max = maxlen; /* ie, no max */	fmtstr (buffer, &currlen, maxlen, strvalue, flags, min, max);	break;      case 'p':	strvalue = va_arg (args, void *);	fmtint (buffer, &currlen, maxlen, (long) strvalue, 16, min, max, flags);	break;      case 'n':	if (cflags == DP_C_SHORT) 	{	  short int *num;	  num = va_arg (args, short int *);	  *num = currlen;        } 	else if (cflags == DP_C_LONG) 	{	  long int *num;	  num = va_arg (args, long int *);	  *num = currlen;        } 	else 	{	  int *num;	  num = va_arg (args, int *);	  *num = currlen;        }	break;      case '%':	dopr_outch (buffer, &currlen, maxlen, ch);	break;      case 'w':	/* not supported yet, treat as next char */	ch = *format++;	break;      default:	/* Unknown, skip */	break;      }      ch = *format++;      state = DP_S_DEFAULT;      flags = cflags = min = 0;      max = -1;      break;    case DP_S_DONE:      break;    default:      /* hmm? */      break; /* some picky compilers need this */    }  }  if (currlen < maxlen - 1)     buffer[currlen] = '\0';  else     buffer[maxlen - 1] = '\0';}static void fmtstr (char *buffer, size_t *currlen, size_t maxlen,		    char *value, int flags, int min, int max){  int padlen, strln;     /* amount to pad */  int cnt = 0;    if (value == 0)  {    value = "<NULL>";  }  for (strln = 0; value[strln]; ++strln); /* strlen */  padlen = min - strln;  if (padlen < 0)     padlen = 0;  if (flags & DP_F_MINUS)     padlen = -padlen; /* Left Justify */  while ((padlen > 0) && (cnt < max))   {    dopr_outch (buffer, currlen, maxlen, ' ');    --padlen;    ++cnt;  }  while (*value && (cnt < max))   {    dopr_outch (buffer, currlen, maxlen, *value++);    ++cnt;  }  while ((padlen < 0) && (cnt < max))   {    dopr_outch (buffer, currlen, maxlen, ' ');    ++padlen;    ++cnt;  }}/* Have to handle DP_F_NUM (ie 0x and 0 alternates) */static void fmtint (char *buffer, size_t *currlen, size_t maxlen,		    long value, int base, int min, int max, int flags){  int signvalue = 0;  unsigned long uvalue;  char convert[20];  int place = 0;  int spadlen = 0; /* amount to space pad */  int zpadlen = 0; /* amount to zero pad */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合视频在线观看| 亚洲国产日日夜夜| 欧美精品一区二区久久久| 欧美日韩国产首页在线观看| 一本一道久久a久久精品综合蜜臀| 粉嫩久久99精品久久久久久夜| 国产91对白在线观看九色| 丁香网亚洲国际| 93久久精品日日躁夜夜躁欧美| 色综合天天综合网天天看片| 欧美国产激情一区二区三区蜜月| 久久伊99综合婷婷久久伊| 亚洲精品一区二区三区影院| 国产喂奶挤奶一区二区三区| 国产欧美一区二区在线观看| **网站欧美大片在线观看| 亚洲一区二区三区小说| 麻豆免费看一区二区三区| 国产在线播放一区三区四| 不卡电影免费在线播放一区| 在线观看一区二区视频| 在线播放日韩导航| 国产午夜亚洲精品理论片色戒| 国产精品国产三级国产普通话99 | 日日骚欧美日韩| 免费成人在线观看视频| 成人高清免费观看| 欧美日本在线看| 三级一区在线视频先锋| 国产成人午夜精品影院观看视频 | 欧美精品乱人伦久久久久久| 欧美大肚乱孕交hd孕妇| 国产清纯在线一区二区www| 一区二区三区 在线观看视频 | 久久一区二区三区四区| 亚洲精品欧美专区| 国产乱人伦偷精品视频免下载| 91蝌蚪porny九色| 欧美xxxx老人做受| 亚洲一区二区成人在线观看| 国产精品亚洲第一| 欧美一级一区二区| 一区二区视频在线看| 国产一区二区三区在线观看免费 | 天天影视色香欲综合网老头| 国产精品综合一区二区| 欧美日精品一区视频| 国产精品―色哟哟| 久久精品国产网站| 3atv一区二区三区| 一区二区欧美精品| 色综合久久天天| 久久精品视频一区二区三区| 亚洲一区中文日韩| 91网上在线视频| 中文字幕av资源一区| 精品无人区卡一卡二卡三乱码免费卡 | 国产剧情一区在线| 91超碰这里只有精品国产| 亚洲美腿欧美偷拍| 99天天综合性| 日本女人一区二区三区| 99精品久久99久久久久| 国产精品进线69影院| 国产成人精品三级| 国产蜜臀av在线一区二区三区| 久久不见久久见免费视频7| 7799精品视频| 麻豆精品久久精品色综合| 欧美男同性恋视频网站| 亚洲成人av在线电影| 在线影视一区二区三区| 亚洲精品乱码久久久久久久久| 国产在线不卡一区| 欧美一区二区国产| 日韩av一二三| 精品国产免费视频| 国产精品一卡二卡| 中文字幕国产一区| av一本久道久久综合久久鬼色| 国产欧美精品区一区二区三区| 国产一区二区美女诱惑| 美腿丝袜一区二区三区| 精品久久久久久久久久久久包黑料| 图片区小说区国产精品视频| 欧美性猛交xxxx黑人交| 亚洲成av人片在www色猫咪| 欧美日韩国产电影| 国产主播一区二区三区| 国产日韩av一区| 91网上在线视频| 午夜伦理一区二区| 精品精品国产高清a毛片牛牛| 激情五月激情综合网| 日本一区二区在线不卡| 色婷婷av一区二区三区软件| 日韩中文字幕av电影| 欧美日韩国产综合一区二区三区| 另类小说视频一区二区| 中文字幕欧美激情一区| 欧美中文字幕一区二区三区亚洲| 天堂蜜桃91精品| 中文一区在线播放| 在线观看91精品国产入口| 欧美日韩一区二区在线观看视频| 精品一区精品二区高清| 中文字幕在线视频一区| 欧美精品第一页| 激情六月婷婷久久| 一区二区三区成人在线视频| 欧美一卡二卡三卡| 色美美综合视频| 精品一区二区在线播放| 夜夜揉揉日日人人青青一国产精品| 欧美一区二区三区的| av在线不卡免费看| 天天av天天翘天天综合网| 国产精品系列在线| 91精品在线免费| 色婷婷久久久久swag精品| 国产乱码精品1区2区3区| 性久久久久久久久| 亚洲精品一卡二卡| 久久久久久免费| 欧美一级理论性理论a| 91一区二区在线| 国产中文一区二区三区| 日本精品免费观看高清观看| 久久91精品久久久久久秒播| 亚洲一区二区精品3399| 中文字幕一区二区三区色视频| 26uuu精品一区二区| 日韩一区二区三区免费看| 在线观看欧美日本| 91丨porny丨国产入口| www.日韩av| 成人性生交大片| 国产精品1区二区.| 国产裸体歌舞团一区二区| 久久99精品久久久| 久久精品国产免费看久久精品| 亚洲va欧美va人人爽| 亚洲综合男人的天堂| 亚洲一区二三区| 亚洲综合免费观看高清完整版在线 | 精品久久久久久久一区二区蜜臀| 欧美无人高清视频在线观看| 在线国产亚洲欧美| 色八戒一区二区三区| 91免费版在线| 在线观看日韩电影| 911精品国产一区二区在线| 欧美性高清videossexo| 日本精品一级二级| 在线观看91精品国产麻豆| 欧美日韩亚洲国产综合| 欧美日韩亚洲综合在线| 在线播放欧美女士性生活| 日韩视频一区在线观看| 久久只精品国产| 日本一区二区动态图| 国产精品久久久久久久岛一牛影视| 欧美激情一区二区三区不卡 | 欧洲精品一区二区三区在线观看| av一区二区三区| 欧美中文一区二区三区| 欧美精品 国产精品| 日韩一区二区三| 精品亚洲aⅴ乱码一区二区三区| 韩国女主播一区| 99视频超级精品| 欧美精品乱人伦久久久久久| 精品国产一区二区三区忘忧草| 国产日产亚洲精品系列| 亚洲精品成人精品456| 午夜精品在线视频一区| 精品夜夜嗨av一区二区三区| 99久久免费精品高清特色大片| 欧美性欧美巨大黑白大战| 欧美精品一区二区三区视频| 国产精品色眯眯| 日本va欧美va欧美va精品| 国产1区2区3区精品美女| 欧美性大战xxxxx久久久| 久久影音资源网| 亚洲成av人片在线观看无码| 国产乱一区二区| 欧美精品一卡两卡| 国产精品嫩草影院av蜜臀| 亚洲一区二区三区四区中文字幕| 久久成人麻豆午夜电影| 91猫先生在线| 久久久久国产精品人| 首页综合国产亚洲丝袜| 成人91在线观看| 午夜欧美电影在线观看| caoporen国产精品视频| 欧美一区二区三区免费大片| 日韩美女久久久| 国产99久久久国产精品潘金网站|