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

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

?? misc.c

?? 開發板bios源碼 開發板bios源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
					put_ulong(&buf, value, 10, 0, NULL, width, prec, f);
				} else {
					if (f & flag_hash && value != 0) {
						if (c == 'x') {
							put_ulong(&buf, value, 16, 0, T("0x"), width, 
								prec, f);
						} else {
							put_ulong(&buf, value, 16, 1, T("0X"), width, 
								prec, f);
						}
					} else {
                  /* 04 Apr 02 BgP -- changed so that %X correctly outputs
                   * uppercase hex digits when requested.
						put_ulong(&buf, value, 16, 0, NULL, width, prec, f);
                   */
						put_ulong(&buf, value, 16, ('X' == c) , NULL, width, prec, f);
					}
				}

			} else if (c == 'c') {
				char_t value = va_arg(arg, int);
				put_char(&buf, value);

			} else if (c == 's' || c == 'S') {
				char_t *value = va_arg(arg, char_t *);
				if (value == NULL) {
					put_string(&buf, T("(null)"), -1, width, prec, f);
				} else if (f & flag_hash) {
					put_string(&buf,
						value + 1, (char_t) *value, width, prec, f);
				} else {
					put_string(&buf, value, -1, width, prec, f);
				}
			} else if (c == 'p') {
				void *value = va_arg(arg, void *);
				put_ulong(&buf,
					(unsigned long int) value, 16, 0, T("0x"), width, prec, f);
			} else if (c == 'n') {
				if (f & flag_short) {
					short int *value = va_arg(arg, short int *);
					*value = buf.count;
				} else if (f & flag_long) {
					long int *value = va_arg(arg, long int *);
					*value = buf.count;
				} else {
					int *value = va_arg(arg, int *);
					*value = buf.count;
				}
			} else {
				put_char(&buf, c);
			}
		}
	}
	if (buf.s == NULL) {
		put_char(&buf, '\0');
	}

/*
 *	If the user requested a dynamic buffer (*s == NULL), ensure it is returned.
 */
	if (*s == NULL || msize != 0) {
		*s = buf.s;
	}

	if (*s != NULL && size > 0) {
		if (buf.count < size) {
			(*s)[buf.count] = '\0';
		} else {
			(*s)[buf.size - 1] = '\0';
		}
	}

	if (msize != 0) {
		return buf.size;
	}
	return buf.count;
}

/******************************************************************************/
/*
 *	Return the length of a string limited by a given length
 */

static int strnlen(char_t *s, unsigned int n)
{
	unsigned int 	len;

	len = gstrlen(s);
	return min(len, n);
}

/******************************************************************************/
/*
 *	Add a character to a string buffer
 */

static void put_char(strbuf_t *buf, char_t c)
{
	if (buf->count >= (buf->size - 1)) {
		if (! (buf->flags & STR_REALLOC)) {
			return;
		}
		buf->size += STR_INC;
		if (buf->size > buf->max && buf->size > STR_INC) {
/*
 *			Caller should increase the size of the calling buffer
 */
			buf->size -= STR_INC;
			return;
		}
		if (buf->s == NULL) {
			buf->s = balloc(B_L, buf->size * sizeof(char_t));
		} else {
			buf->s = brealloc(B_L, buf->s, buf->size * sizeof(char_t));
		}
	}
	buf->s[buf->count] = c;
	if (c != '\0') {
		++buf->count;
	}
}

/******************************************************************************/
/*
 *	Add a string to a string buffer
 */

static void put_string(strbuf_t *buf, char_t *s, int len, int width,
		int prec, enum flag f)
{
	int		i;

	if (len < 0) { 
		len = strnlen(s, prec >= 0 ? prec : ULONG_MAX); 
	} else if (prec >= 0 && prec < len) { 
		len = prec; 
	}
	if (width > len && !(f & flag_minus)) {
		for (i = len; i < width; ++i) { 
			put_char(buf, ' '); 
		}
	}
	for (i = 0; i < len; ++i) { 
		put_char(buf, s[i]); 
	}
	if (width > len && f & flag_minus) {
		for (i = len; i < width; ++i) { 
			put_char(buf, ' '); 
		}
	}
}

/******************************************************************************/
/*
 *	Add a long to a string buffer
 */

static void put_ulong(strbuf_t *buf, unsigned long int value, int base,
		int upper, char_t *prefix, int width, int prec, enum flag f)
{
	unsigned long	x, x2;
	int				len, zeros, i;

	for (len = 1, x = 1; x < ULONG_MAX / base; ++len, x = x2) {
		x2 = x * base;
		if (x2 > value) { 
			break; 
		}
	}
	zeros = (prec > len) ? prec - len : 0;
	width -= zeros + len;
	if (prefix != NULL) { 
		width -= strnlen(prefix, ULONG_MAX); 
	}
	if (!(f & flag_minus)) {
		if (f & flag_zero) {
			for (i = 0; i < width; ++i) { 
				put_char(buf, '0'); 
			}
		} else {
			for (i = 0; i < width; ++i) { 
				put_char(buf, ' '); 
			}
		}
	}
	if (prefix != NULL) { 
		put_string(buf, prefix, -1, 0, -1, flag_none); 
	}
	for (i = 0; i < zeros; ++i) { 
		put_char(buf, '0'); 
	}
	for ( ; x > 0; x /= base) {
		int digit = (value / x) % base;
		put_char(buf, (char) ((digit < 10 ? '0' : (upper ? 'A' : 'a') - 10) +
			digit));
	}
	if (f & flag_minus) {
		for (i = 0; i < width; ++i) { 
			put_char(buf, ' '); 
		}
	}
}

/******************************************************************************/
/*
 *	Convert an ansi string to a unicode string. On an error, we return the
 * 	original ansi string which is better than returning NULL. nBytes is the
 *	size of the destination buffer (ubuf) in _bytes_.
 */

char_t *ascToUni(char_t *ubuf, char *str, int nBytes)
{
#ifdef UNICODE
	if (MultiByteToWideChar(CP_ACP, 0, str, nBytes / sizeof(char_t), ubuf,
			nBytes / sizeof(char_t)) < 0) {
		return (char_t*) str;
	}
#else
	strncpy(ubuf, str, nBytes);
#endif
	return ubuf;
}

/******************************************************************************/
/*
 *	Convert a unicode string to an ansi string. On an error, return the
 *	original unicode string which is better than returning NULL.
 *	N.B. nBytes is the number of _bytes_ in the destination buffer, buf.
 */

char *uniToAsc(char *buf, char_t *ustr, int nBytes)
{
#ifdef UNICODE
	if (WideCharToMultiByte(CP_ACP, 0, ustr, nBytes, buf, nBytes, NULL,
			NULL) < 0) {
		return (char*) ustr;
	}
#else
	strncpy(buf, ustr, nBytes);
#endif
	return (char*) buf;
}

/******************************************************************************/
/*
 *	allocate (balloc) a buffer and do ascii to unicode conversion into it.
 *	cp points to the ascii buffer.  alen is the length of the buffer to be
 *	converted not including a terminating NULL.  Return a pointer to the
 *	unicode buffer which must be bfree'd later.  Return NULL on failure to
 *	get buffer.  The buffer returned is NULL terminated.
 */

char_t *ballocAscToUni(char *cp, int alen)
{
	char_t *unip;
	int ulen;

	ulen = (alen + 1) * sizeof(char_t);
	if ((unip = balloc(B_L, ulen)) == NULL) {
		return NULL;
	}
	ascToUni(unip, cp, ulen);
	unip[alen] = 0;
	return unip;
}

/******************************************************************************/
/*
 *	allocate (balloc) a buffer and do unicode to ascii conversion into it.
 *	unip points to the unicoded string. ulen is the number of characters
 *	in the unicode string not including a teminating null.  Return a pointer
 *	to the ascii buffer which must be bfree'd later.  Return NULL on failure
 *	to get buffer.  The buffer returned is NULL terminated.
 */

char *ballocUniToAsc(char_t *unip, int ulen)
{
	char * cp;

	if ((cp = balloc(B_L, ulen+1)) == NULL) {
		return NULL;
	}
	uniToAsc(cp, unip, ulen);
	cp[ulen] = '\0';
	return cp;
}

/******************************************************************************/
/*
 *	convert a hex string to an integer. The end of the string or a non-hex
 *	character will indicate the end of the hex specification.
 */

unsigned int hextoi(char_t *hexstring)
{
	register char_t			*h;
	register unsigned int	c, v;

	v = 0;
	h = hexstring;
	if (*h == '0' && (*(h+1) == 'x' || *(h+1) == 'X')) {
		h += 2;
	}
	while ((c = (unsigned int)*h++) != 0) {
		if (c >= '0' && c <= '9') {
			c -= '0';
		} else if (c >= 'a' && c <= 'f') {
			c = (c - 'a') + 10;
		} else if (c >=  'A' && c <= 'F') {
			c = (c - 'A') + 10;
		} else {
			break;
		}
		v = (v * 0x10) + c;
	}
	return v;
}

/******************************************************************************/
/*
 *	convert a string to an integer. If the string starts with "0x" or "0X"
 *	a hexidecimal conversion is done.
 */

unsigned int gstrtoi(char_t *s)
{
	if (*s == '0' && (*(s+1) == 'x' || *(s+1) == 'X')) {
		s += 2;
		return hextoi(s);
	}
	return gatoi(s);
}

/******************************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频中文字幕| 亚洲欧美在线视频观看| 国产日韩欧美精品一区| 一区二区三区在线免费播放 | 色婷婷综合中文久久一本| 在线中文字幕不卡| 久久免费看少妇高潮| 亚洲超碰精品一区二区| 成人理论电影网| 日韩一区二区免费在线观看| 亚洲日本青草视频在线怡红院| 精品一区二区三区香蕉蜜桃| 欧美日韩一区成人| 最近日韩中文字幕| 91久久精品一区二区| 久久久久国产精品免费免费搜索| 日韩精品一二区| 在线观看日韩电影| 亚洲欧洲日韩av| 国产精品一二三四五| 日韩精品一区二区三区视频播放| 亚洲第一精品在线| 欧美亚州韩日在线看免费版国语版| 欧美精彩视频一区二区三区| 国产精品一品二品| 久久一二三国产| 精品亚洲免费视频| 精品欧美久久久| 麻豆精品在线看| 欧美一区二区三区在线视频| 午夜精品福利一区二区三区蜜桃| 色8久久精品久久久久久蜜| 秋霞电影网一区二区| 欧美乱熟臀69xxxxxx| 日韩精品久久久久久| 91精品免费观看| 久久精品国产精品亚洲红杏| 日韩精品一区二区三区swag| 精品在线亚洲视频| 久久免费国产精品| gogo大胆日本视频一区| 国产精品成人在线观看| 色综合久久中文字幕综合网 | 9人人澡人人爽人人精品| 欧美极品少妇xxxxⅹ高跟鞋 | 国产精品欧美极品| 成人av影院在线| 视频一区中文字幕| 日韩一区二区精品葵司在线| 国精产品一区一区三区mba视频 | 亚洲日本在线天堂| 91亚洲精品久久久蜜桃| 亚洲一区二区欧美| 日韩一级片网站| 国产精品一区二区三区99| 国产精品久久国产精麻豆99网站| 一本久久a久久精品亚洲| 五月天国产精品| 久久久五月婷婷| 色哟哟在线观看一区二区三区| 亚洲国产精品久久艾草纯爱| 欧美成人一区二区| 97久久久精品综合88久久| 天天综合天天做天天综合| 中文字幕一区三区| 欧美日韩一区二区三区免费看| 蜜桃传媒麻豆第一区在线观看| 日本一区二区三区久久久久久久久不| 色www精品视频在线观看| 美脚の诱脚舐め脚责91| 亚洲国产精品精华液ab| 欧美性生活影院| 国产麻豆精品在线| 亚洲国产一区在线观看| 久久久99精品免费观看| 欧美怡红院视频| 丁香六月综合激情| 日韩av网站免费在线| 国产精品久久久99| 欧美va亚洲va在线观看蝴蝶网| 91最新地址在线播放| 麻豆免费精品视频| 亚洲国产一区视频| 中文一区二区完整视频在线观看| 欧美日韩一区高清| av网站一区二区三区| 91老师片黄在线观看| 视频一区视频二区在线观看| 亚洲图片欧美激情| 国产日产欧美一区二区视频| 91精品福利在线一区二区三区 | 三级精品在线观看| 18涩涩午夜精品.www| 久久久久一区二区三区四区| 91精品国产乱码久久蜜臀| 在线亚洲免费视频| 99国内精品久久| 福利电影一区二区| 国产一区二区调教| 麻豆久久一区二区| 秋霞电影网一区二区| 日日摸夜夜添夜夜添亚洲女人| 青青草原综合久久大伊人精品优势 | 麻豆精品在线看| 婷婷国产v国产偷v亚洲高清| 夜夜爽夜夜爽精品视频| 亚洲天堂免费看| 国产精品久久久久久久蜜臀| 欧美激情在线一区二区三区| 26uuu亚洲| 久久麻豆一区二区| 久久久电影一区二区三区| 久久久噜噜噜久久人人看 | 国产欧美久久久精品影院| 欧美大片一区二区三区| 日韩一区二区在线观看| 91精品蜜臀在线一区尤物| 欧美一区二区在线免费观看| 91麻豆精品国产| 久久精品在这里| 欧美国产成人在线| √…a在线天堂一区| 亚洲精选免费视频| 亚洲一区免费观看| 日韩精品久久理论片| 美女视频网站久久| 国产激情视频一区二区三区欧美| 国内精品国产成人国产三级粉色| 国产麻豆精品一区二区| 成人久久18免费网站麻豆| 成人美女视频在线看| 91搞黄在线观看| 欧美日韩国产天堂| 欧美刺激午夜性久久久久久久| 精品国产sm最大网站免费看| 亚洲一本大道在线| 五月天亚洲精品| 久久成人综合网| 成人久久视频在线观看| 色一区在线观看| 日韩一区二区三免费高清| 久久久久九九视频| 亚洲精品自拍动漫在线| 日韩黄色免费电影| 国产美女视频91| 在线观看网站黄不卡| 日韩欧美一级精品久久| 中文字幕乱码亚洲精品一区| 一区二区三区av电影| 极品美女销魂一区二区三区| 成人av在线播放网站| 91精品麻豆日日躁夜夜躁| 国产视频一区在线观看| 亚洲国产一区在线观看| 国产成人高清视频| 欧美日韩一级视频| 欧美激情在线免费观看| 日韩国产在线观看| av福利精品导航| 欧美一级理论性理论a| 国产精品美女一区二区| 日韩av高清在线观看| 99re视频精品| www国产亚洲精品久久麻豆| 肉丝袜脚交视频一区二区| av影院午夜一区| 欧美不卡一二三| 一区二区成人在线| 国产高清在线观看免费不卡| 这里只有精品电影| 亚洲欧美国产毛片在线| 国产在线不卡一卡二卡三卡四卡| 在线精品视频一区二区| 欧美国产一区二区| 美腿丝袜在线亚洲一区| 欧美视频你懂的| 亚洲人成在线播放网站岛国| 国产在线国偷精品免费看| 欧美丰满嫩嫩电影| 亚洲一区二区三区国产| 97久久精品人人做人人爽| 国产喂奶挤奶一区二区三区| 热久久国产精品| 欧美日韩国产高清一区二区| 中文字幕在线一区二区三区| 国产精品一色哟哟哟| 日韩午夜av电影| 午夜精品久久久久久久久| 欧美一级二级在线观看| 亚洲高清视频中文字幕| 色婷婷亚洲一区二区三区| 国产精品久久久久久久久免费樱桃 | 91精品国产麻豆| 亚洲第一搞黄网站| 欧美性猛片aaaaaaa做受| 亚洲视频免费在线| 91在线精品秘密一区二区| 日本一区二区三区高清不卡| 国产精品影视在线| 国产日韩精品视频一区|