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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? outbasic.c

?? ELFkickers是一組elf工具
?? C
字號(hào):
/* outbasic.c: The low-level output functions. * * Copyright (C) 1999-2001 by Brian Raiter, under the GNU General * Public License. No warranty. See COPYING for details. */#include	<stdio.h>#include	<string.h>#include	<ctype.h>#include	<stdarg.h>#include	"gen.h"#include	"elftoc.h"#include	"outbasic.h"/* The right-hand margin of the output. The output should never extend * more than a few characters past this column. */static int const	rmargin = 76;/* How many spaces to indent within a block. */static int const	indent = 2;/* The stack of booleans for each level of indentation. A true value * on the top of the stack means that the braces around the current * block should appear alone on a line. */static char		blockstack[80];/* The current level of indentation. */static int		level = 0;/* The cursor's current x-position. */static int		xpos = 0;/* True if a comma should separate the next item that is output. * Separating commas are not output until a sibling item arrives for * output, so that the final item in a block will not have a trailing * comma. */static int		pendingseparator = 0;/* Outputs a string and updates xpos. */static void textout(char const *str){    int	n;    n = strlen(str);    fputs(str, outfile);    xpos += n;    str = strrchr(str, '\n');    if (str)	xpos = strlen(str + 1);}/* Returns the C representation for a character value as a literal * character constant. */char const *cqchar(int ch){    static char	buf[8];    switch (ch) {      case '\a': return "'\\a'";	case '\t': return "'\\t'";      case '\b': return "'\\b'";	case '\v': return "'\\t'";      case '\f': return "'\\f'";	case '\0': return "'\\0'";      case '\n': return "'\\n'";	case '\'': return "'\\''";      case '\r': return "'\\r'";	case '\\': return "'\\\\'";    }    if (isprint(ch) || ch == ' ') {	buf[0] = '\'';	buf[1] = ch;	buf[2] = '\'';	buf[3] = '\0';    } else	sprintf(buf, "0x%02X", (unsigned char)ch);    return buf;}/* Returns the C representation for a character value, as it should * appear within a literal string constant. */char const *sqchar(char const *ptr){    static char	buf[8];    switch (*ptr) {      case '\a': return "\\a";		case '\r': return "\\r";      case '\b': return "\\b";		case '\t': return "\\t";      case '\f': return "\\f";		case '\v': return "\\v";      case '\n': return "\\n";		case '\\': return "\\\\";      case '"':  return "\\\"";    }    if (!*ptr && !(ptr[1] >= '0' && ptr[1] <= '7'))	return "\\0";    else if (isprint(*ptr) || *ptr == ' ') {	buf[0] = *ptr;	buf[1] = '\0';    } else {	buf[0] = '\\';	buf[1] = '0' + ((unsigned char)*ptr / 64);	buf[2] = '0' + (((unsigned char)*ptr / 8) % 8);	buf[3] = '0' + (*ptr % 8);	buf[4] = '\0';    }    return buf;}/* Given a series of length bytes at str, returns the number of * characters that would be required to output those bytes within a * literal C string. */int stringsize(char const *str, int length){    int	size = 0;    for ( ; length ; ++str, --length) {	if (isprint(*str))	    ++size;	else	    switch (*str) {	      case ' ':		++size;		break;	      case '\0':		size += length > 1 && str[1] >= '0' && str[1] <= '7' ? 4 : 2;		break;	      case '\a': case '\r':	      case '\b': case '\t':	      case '\f': case '\v':	      case '\n': case '\\':	      case '"':		size += 2;		break;	      default:		size += 4;		break;	    }    }    return size;}/* Moves the output to the beginning of the next line, if the current * cursor position is not already at the beginning of a line. */void linebreak(void){    static char	spaces[80];    int		n;    if (pendingseparator) {	textout(",");	pendingseparator = 0;    }    n = level * indent;    if (xpos > n)	textout("\n");    if (xpos < n) {	n -= xpos;	memset(spaces, ' ', n);	spaces[n] = '\0';	textout(spaces);    }}/* Starts a new block: outputs a left brace and increases the current * indentation level by one. If brk is true, then the block's braces * will be followed by line breaks; otherwise, the block's contents * will appear on the same lines as the braces. */void beginblock(int brk){    linebreak();    blockstack[level] = brk;    ++level;    pendingseparator = 0;    textout("{");    if (brk) {	textout("\n");	linebreak();    } else	textout(" ");}/* Closes the current block: outputs a right brace and decrements the * level of indentation. */void endblock(void){    pendingseparator = 0;    --level;    if (blockstack[level])	linebreak();    else	textout(" ");    textout("}");    if (level)	pendingseparator = -1;    else	textout(";\n");}/* Outputs a string, and if the indentation level is not zero (i.e., * if the current output is inside a block, a separator is set as * pending. */void out(char const *str){    int	n;    n = strlen(str);    if (xpos + n >= rmargin)	linebreak();    if (pendingseparator) {	if (pendingseparator > 0 && xpos + 2 < rmargin)	    textout(", ");	else	    linebreak();    }    textout(str);    pendingseparator = level > 0;}/* Calls out after building a formatted string. */void outf(char const *fmt, ...){    static char	       *buf = NULL;    static int		bufsize = 0;    va_list		args;    int			n;    va_start(args, fmt);#if 0    while (!bufsize || (n = vsnprintf(buf, bufsize, fmt, args)) < 0) {	bufsize += rmargin;	xalloc(buf, bufsize);    }#else    for (;;) {	bufsize += rmargin;	xalloc(buf, bufsize);	n = vsnprintf(buf, bufsize, fmt, args);	if (n >= 0 && n < bufsize)	    break;    }#endif    va_end(args);    out(buf);}/* Takes an integer and outputs it in hexadecimal notation. */void outword(unsigned int word){    if (word > 0xFFFFFF)	outf("0x%08X", word);    else if (word > 0xFFFF)	outf("0x%06X", word);    else if (word > 15)	outf("0x%X", word);    else	outf("%u", word);}/* Takes a string (not necessarily null-terminated) and outputs it as * a literal C string, as a single item. */void outstring(char const *str, int length){    char const *s;    int		ps, i;    if (xpos >= rmargin || (length > 4 && xpos + 8 >= rmargin))	linebreak();    out("\"");    ps = pendingseparator;    pendingseparator = 0;    ++level;    for (i = 0, s = str ; i < length ; ++i, ++s) {	textout(sqchar(s));	if (xpos >= rmargin && i + 2 < length) {	    textout("\"");	    linebreak();	    textout("\"");	}    }    --level;    textout("\"");    pendingseparator = ps;}/* Outputs a given string as a C comment, with no separator pending * afterwards. */void outcomment(char const *str){    int	n;    n = strlen(str);    if (pendingseparator) {	if (pendingseparator < 0 || xpos + n + 9 >= rmargin) {	    textout(",");	    linebreak();	} else	    textout(", ");	pendingseparator = 0;    } else {	if (xpos + n + 7 >= rmargin)	    linebreak();    }    textout("/* ");    textout(str);    textout(" */ ");}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品福利一区二区三区| 欧美日韩小视频| 国产精品午夜在线| 成人污视频在线观看| 久久综合九色欧美综合狠狠 | 国产精品99久| 久久精品网站免费观看| 成人午夜av在线| 亚洲天堂2016| 欧美日本在线看| 九九精品一区二区| 国产人伦精品一区二区| 色天使色偷偷av一区二区| 亚洲二区在线视频| 亚洲精品在线观看网站| 成人午夜短视频| 亚洲综合色在线| 日韩欧美视频一区| 成人sese在线| 亚洲国产成人tv| 久久伊99综合婷婷久久伊| 99综合影院在线| 免费观看日韩av| 国产精品国产三级国产专播品爱网 | 欧美日韩视频在线一区二区| 精品一区免费av| 亚洲欧美激情插| 精品日韩99亚洲| 91成人网在线| 黄网站免费久久| 亚洲bt欧美bt精品| 国产精品欧美经典| 日韩欧美色综合| 欧美中文字幕亚洲一区二区va在线 | 亚洲精品成人少妇| 91精品国产aⅴ一区二区| 国产成都精品91一区二区三| 亚洲.国产.中文慕字在线| 久久久99免费| 欧美一区二区在线播放| www.日韩大片| 国内外精品视频| 亚洲高清三级视频| 国产精品全国免费观看高清 | 国产很黄免费观看久久| 亚洲第一精品在线| 中文字幕欧美一| 精品99久久久久久| 欧美猛男gaygay网站| 国产99久久久久久免费看农村| 天天综合日日夜夜精品| 亚洲色图视频网| 久久综合久久久久88| 欧美日韩一区二区三区在线| 国产91富婆露脸刺激对白| 免费精品视频最新在线| 亚洲午夜免费视频| 亚洲欧美一区二区不卡| 国产精品美女久久久久aⅴ国产馆| 日韩一区二区三区四区五区六区 | 亚洲国产精品精华液网站| 国产精品久久影院| 精品国产一区二区三区四区四| 在线观看亚洲专区| 91亚洲精品久久久蜜桃网站| 国产成人精品影视| 久久99精品久久久久婷婷| 日本不卡在线视频| 日韩av一级片| 日本视频一区二区三区| 天天做天天摸天天爽国产一区| 亚洲一区在线免费观看| 一区二区三区在线看| 中文字幕一区二区三区精华液 | 综合中文字幕亚洲| 国产精品福利一区| 亚洲三级小视频| 亚洲另类中文字| 亚洲一区二区三区自拍| 五月婷婷欧美视频| 日本欧美一区二区| 免费不卡在线观看| 国内精品视频一区二区三区八戒 | 94-欧美-setu| 色中色一区二区| 欧美午夜一区二区三区| 欧美久久久久久久久| 日韩免费看的电影| 国产亚洲精久久久久久| 国产精品久久久99| 亚洲午夜视频在线观看| 日本91福利区| 国产综合色在线| voyeur盗摄精品| 欧美性感一类影片在线播放| 欧美精品乱码久久久久久| 日韩一区二区免费视频| 久久久久九九视频| 亚洲欧洲中文日韩久久av乱码| 香蕉久久夜色精品国产使用方法| 日韩精品亚洲专区| 国产成人aaa| 91免费观看视频在线| 91精品国产免费| 国产无人区一区二区三区| 亚洲天天做日日做天天谢日日欢| 亚洲国产人成综合网站| 精品一区二区在线观看| 国产成人精品亚洲日本在线桃色| 99re这里只有精品首页| 欧美一区二区在线不卡| 国产精品理论片在线观看| 亚洲一区二区三区四区在线免费观看 | 91丨九色丨尤物| 日韩三级视频在线看| 国产精品卡一卡二| 日本不卡一二三| 成人综合在线网站| 欧美日韩国产一区二区三区地区| 久久综合久久综合亚洲| 一区二区三区四区蜜桃| 久久99九九99精品| 欧美三级中文字| 欧美国产激情二区三区| 丝袜亚洲另类欧美综合| 91免费看片在线观看| 久久久午夜电影| 亚洲成人av资源| 白白色亚洲国产精品| 日韩女优av电影在线观看| 一区二区三区小说| 懂色av一区二区三区蜜臀 | 欧美三级乱人伦电影| 国产日韩精品一区二区三区在线| 亚洲丰满少妇videoshd| www.99精品| 久久久777精品电影网影网| 日韩电影在线一区| 欧美性色黄大片| 亚洲欧美日韩国产中文在线| 国产九色精品成人porny| 欧美一区二区精品在线| 亚洲激情成人在线| 成人激情小说网站| 国产欧美精品在线观看| 日韩精品视频网| 欧美日本免费一区二区三区| 亚洲免费av网站| 91小视频在线观看| 中文字幕佐山爱一区二区免费| 国产精品亚洲专一区二区三区 | av资源站一区| 中文字幕第一页久久| 国产毛片精品国产一区二区三区| 欧美一区二区私人影院日本| 国产成人av在线影院| 欧美mv日韩mv| 久久国产精品无码网站| 日韩欧美第一区| 久久精品国产免费看久久精品| 制服丝袜亚洲精品中文字幕| 日韩精品福利网| 欧美一区二区三区四区久久| 日韩在线a电影| 555夜色666亚洲国产免| 日本伊人午夜精品| 精品日韩欧美一区二区| 国精品**一区二区三区在线蜜桃| 精品999在线播放| 成人综合日日夜夜| 国产精品免费久久| 不卡的av在线播放| 自拍偷自拍亚洲精品播放| 91麻豆视频网站| 亚洲国产精品人人做人人爽| 制服丝袜日韩国产| 激情图区综合网| 国产欧美日本一区二区三区| 99精品1区2区| 香蕉久久夜色精品国产使用方法 | 欧美三级韩国三级日本一级| 日韩有码一区二区三区| www日韩大片| 成人h精品动漫一区二区三区| 亚洲精选视频在线| 欧美男女性生活在线直播观看| 蜜桃视频一区二区三区在线观看| 精品噜噜噜噜久久久久久久久试看| 国产综合色产在线精品| 国产欧美一区二区精品性色 | 日韩一级二级三级| 国产永久精品大片wwwapp| 国产精品理伦片| 欧美狂野另类xxxxoooo| 高清在线成人网| 亚洲成在人线免费| 久久久精品一品道一区| 欧美午夜影院一区| 国产精品系列在线观看| 亚洲福利电影网|