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

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

?? hteval.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
字號:
/*  *	HT Editor *	hteval.cc * *	Copyright (C) 1999-2002 Stefan Weyergraf * *	This program is free software; you can redistribute it and/or modify *	it under the terms of the GNU General Public License version 2 as *	published by the Free Software Foundation. * *	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., 675 Mass Ave, Cambridge, MA 02139, USA. */#include <string.h>#include "atom.h"#include "htctrl.h"#include "endianess.h"#include "hthist.h"#include "htiobox.h"#include "htpal.h"#include "strtools.h"#include "str.h"#include "snprintf.h"#include "syntax.h"#include "textedit.h"#include "textfile.h"extern "C" {#include "evalx.h"}static eval_func_handler real_func_handler;static eval_symbol_handler real_symbol_handler;static bool have_last_result;static eval_scalar last_result;static bool symbol_eval(eval_scalar *r, char *symbol){	if (strcmp(symbol, "_") == 0) {		if (have_last_result) {			 scalar_clone(r, &last_result);			 return true;		} else {			set_eval_error("no previous result...");			return false;		}			}	return real_symbol_handler ? real_symbol_handler(r, symbol) : false;}static bool func_eval(eval_scalar *r, char *name, eval_scalarlist *params){	eval_func myfuncs[] = {		{"_", 0, {SCALAR_ANY}, "last result"},		{NULL},	};	if (std_eval_func_handler(r, name, params, myfuncs)) return true;	return real_func_handler ? real_func_handler(r, name, params) : false;}/* *	eval help */#define	FH_HEAD		1#define	FH_DESC		2// FIXME: disfunctional...class ht_help_lexer: public ht_syntax_lexer {public:/* overwritten */	virtual	vcp getcolor_syntax(uint pal_index)	{		return VCP(VC_BLUE, VC_TRANSPARENT);	}	virtual	lexer_state getinitstate()	{		return FH_HEAD;	}	virtual	lexer_token geterrortoken()	{		return 3;	}	virtual	const char *getname()	{		return "bla";	}	virtual	lexer_token gettoken(void *buf, uint buflen, text_pos p, bool start_of_line, lexer_state *ret_state, uint *ret_len)	{		*ret_len = buflen;		lexer_token last = *ret_state;		if (start_of_line && buflen == 0) {			*ret_state = FH_HEAD;		} else {			*ret_state = FH_DESC;		}		return buflen ? last : 0;	}	virtual	vcp gettoken_color(lexer_token t)	{		switch (t) {		case FH_HEAD:			return VCP(VC_LIGHT(VC_WHITE), VC_TRANSPARENT);		case FH_DESC:			return VCP(VC_BLACK, VC_TRANSPARENT);		}		return VCP(VC_RED, VC_TRANSPARENT);	}};static void dialog_fhelp(File *f){	ht_help_lexer *l = new ht_help_lexer();	l->init();	ht_ltextfile *t = new ht_ltextfile(f, true, NULL);	Bounds b, c;	app->getbounds(&c);	b = c;	b.w = 70;	b.h = 19;	b.x = (c.w - b.w) / 2,	b.y = (c.h - b.h) / 2;	c = b;	ht_dialog dialog;	dialog.init(&b, "eval() - functions", FS_KILLER | FS_TITLE | FS_MOVE | FS_RESIZE);	b.x = 0;	b.y = 0;	b.w -= 2;	b.h -= 2;	ht_text_viewer *v = new ht_text_viewer();	v->init(&b, true, t, NULL);	v->set_lexer(l, true);	dialog.insert(v);	b = c;	b.x = b.w-2;	b.y = 0;	b.w = 1;	b.h-=2;	ht_scrollbar *hs=new ht_scrollbar();	hs->init(&b, &dialog.pal, true);	dialog.setvscrollbar(hs);	dialog.setpalette(palkey_generic_cyan);	dialog.run(0);	dialog.done();}void dialog_eval_help(eval_func_handler func_handler, eval_symbol_handler symbol_handler, void *context){	real_func_handler = func_handler;	real_symbol_handler = symbol_handler;	eval_scalar res;	if (eval(&res, "help()", func_eval, symbol_eval, context)) {		eval_str s;		scalar_context_str(&res, &s);		scalar_destroy(&res);		ConstMemMapFile *f = new ConstMemMapFile(s.value, s.len);		dialog_fhelp(f);		string_destroy(&s);	}}/* * */static int sprint_base2(char *x, uint32 value, bool leading_zeros){	char *ix = x;	bool draw = leading_zeros;	for (int i=0; i<32; i++) {		bool v = value & (1<<(32-i-1));		if (v) draw = true;		if (draw) *x++ = v ? '1' : '0';	}	*x = 0;	return x-ix;}static int sprint_base2_0(char *x, uint32 value, int zeros){	char *ix = x;	char vi = 0;	uint32 m = 0x80000000;	while (zeros < 32) {m >>= 1; zeros++;}	do {		if (value & m) {			while (vi--) *(x++)='0';			vi = 0;			*x = '1';			x++;		} else {			vi++;		}		m >>= 1;	} while (m);	if (!value) *(x++)='0';	*x = 0;	return x-ix;}static void nicify(char *dest, const char *src, int d){	*dest = *src;	int l = strlen(src);	if (!l) return;	dest++;	src++;	while (l--) {		if ((l%d==0) && (l>1)) {			*dest='\'';			dest++;		}		*dest++ = *src++;	}	*dest=0;}static void do_eval(ht_strinputfield *s, ht_statictext *t, const char *b, eval_func_handler func_handler, eval_symbol_handler symbol_handler, void *context){	eval_scalar r;	String x;		real_func_handler = func_handler;	real_symbol_handler = symbol_handler;		if (eval(&r, b, func_eval, symbol_eval, context)) {		switch (r.type) {			case SCALAR_INT: {				char buf1[1024];				char buf2[1024];				ht_snprintf(buf1, sizeof buf1, "%qx", r.scalar.integer.value);				nicify(buf2, buf1, 4);				x.assignFormat("64bit integer:\nhex   %s\n", buf2);				ht_snprintf(buf1, sizeof buf1, "%qu", r.scalar.integer.value);				nicify(buf2, buf1, 3);				x.appendFormat("dec   %s\n", buf2);				if ((sint64)r.scalar.integer.value < 0) {					ht_snprintf(buf1, sizeof buf1, "%qd", r.scalar.integer.value);					nicify(buf2, buf1+1, 3);					x.appendFormat("sdec  -%s\n", buf2);				}				ht_snprintf(buf1, sizeof buf1, "%qo", r.scalar.integer.value);				nicify(buf2, buf1, 3);				x.appendFormat("oct   %s\n", buf2);				uint32 l = r.scalar.integer.value;				ht_snprintf(buf1, sizeof buf1, "%032b", l);				nicify(buf2, buf1, 8);				x.appendFormat("binlo %s\n", buf2);				if (r.scalar.integer.value >> 32) {					l = r.scalar.integer.value >> 32;					ht_snprintf(buf1, sizeof buf1, "%032b", l);					nicify(buf2, buf1, 8);					x.appendFormat("binhi %s\n", buf2);				}				byte bb[4];				/* big-endian string */				x += "string \"";				createForeignInt(bb, r.scalar.integer.value, 4, big_endian);				x.append(bb, 4);				x += "\" 32bit big-endian (e.g. network)\n";				/* little-endian string */				x += "string \"";				createForeignInt(bb, r.scalar.integer.value, 4, little_endian);				x.append(bb, 4);				x += "\" 32bit little-endian (e.g. x86)\n";				break;			}			case SCALAR_STR: {				char buf1[1024];				/* c-escaped */				x = "string:\nc-escaped \"";				x.append((byte*)buf1, escape_special(buf1, sizeof buf1, r.scalar.str.value, r.scalar.str.len, NULL, true));				/* raw */				x += "'\nraw       '";				x.append((byte*)r.scalar.str.value, r.scalar.str.len);				x += "'\n";				break;			}			case SCALAR_FLOAT: {				char buf1[1024];				x.appendFormat("val   %.20f\nnorm  %.20e", r.scalar.floatnum.value, r.scalar.floatnum.value);				// FIXME: endianess/hardware format				float ff = ((float)r.scalar.floatnum.value);				uint32 f;				memcpy(&f, &ff, 4);				x += "\n-- IEEE-754, 32 bit --";				x.appendFormat("\nhex   %08x\nbin   ", f);				x.append((byte*)buf1, sprint_base2(buf1, f, true));				x.appendFormat("\nsplit %c1.", (f>>31) ? '-' : '+');				x.append((byte*)buf1, sprint_base2_0(buf1, f&((1<<23)-1), 23));				x.appendFormat("b * 2^%d", ((f>>23)&255)-127);				break;			}			default:				x = "?";		}		if (have_last_result) scalar_destroy(&last_result);		scalar_clone(&last_result, &r);		have_last_result = true;				scalar_destroy(&r);	} else {		const char *str="?";		int pos=0;		get_eval_error(&str, &pos);		s->isetcursor(pos);		x.assignFormat("error at pos %d: %s", pos+1, str);	}	String in;	in.assign('\0');	x.translate(in, " ");	t->settext(x.contentChar());}#define BUTTON_HELP	100void eval_dialog(eval_func_handler func_handler, eval_symbol_handler symbol_handler, void *context){	Bounds b, c;	app->getbounds(&c);	b.w=70;	b.h=17;	b.x=(c.w-b.w)/2;	b.y=(c.h-b.h)/2;	ht_dialog *d=new ht_dialog();	c=b;	const char *hint="type integer, float or string expression to evaluate";	d->init(&b, "evaluate", FS_TITLE | FS_MOVE | FS_RESIZE);	List *ehist = (List*)getAtomValue(HISTATOM_EVAL_EXPR);	/* input line */	b.assign(1, 1, c.w-14, 1);	ht_strinputfield *s = new ht_strinputfield();	s->init(&b, 255, ehist);	d->insert(s);	/* help button */	ht_button *bhelp = new ht_button();	b.assign(c.w-12, 1, 10, 2);	bhelp->init(&b, "~Functions", BUTTON_HELP);	d->insert(bhelp);	/* result text */	b.assign(1, 3, c.w-4, c.h-5);	ht_statictext *t = new ht_statictext();	t->init(&b, hint, align_left);	t->growmode = MK_GM(GMH_LEFT, GMV_FIT);	d->insert(t);	int button;	while ((button = d->run(false)) != button_cancel) {		switch (button) {		case button_ok: {			ht_strinputfield_data str;			char b[1024];			ViewDataBuf vdb(s, &str, sizeof str);			if (str.textlen) {				bin2str(b, str.text, str.textlen);				insert_history_entry(ehist, b, 0);				do_eval(s, t, b, func_handler, symbol_handler, context);			} else {				t->settext(hint);			}			break;		}		case BUTTON_HELP:			dialog_eval_help(func_handler, symbol_handler, context);			break;		}	}	d->done();	delete d;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产三级精品在线| 久久久国产精品午夜一区ai换脸| 国产精品亚洲午夜一区二区三区| 婷婷开心激情综合| 亚洲国产成人精品视频| 亚洲一区二区在线观看视频| 亚洲综合色婷婷| 婷婷综合另类小说色区| 香蕉乱码成人久久天堂爱免费| 一区二区成人在线| 性久久久久久久久久久久| 免费人成精品欧美精品| 麻豆精品视频在线观看| 国产宾馆实践打屁股91| 成人18视频在线播放| 91在线观看免费视频| 欧美视频一区二区| 欧美精品第1页| 欧美精品一区二区三区很污很色的| 精品日韩在线观看| 国产精品视频一二三区| 国产精品超碰97尤物18| 亚洲国产成人tv| 久久97超碰国产精品超碰| 懂色av一区二区三区免费看| 91亚洲资源网| 日韩欧美一区二区视频| 国产三级欧美三级| 亚洲在线免费播放| 精品一二三四在线| 92精品国产成人观看免费| 欧美吻胸吃奶大尺度电影| 日韩欧美国产综合一区 | 国产精品久久久久久久久晋中| ●精品国产综合乱码久久久久| 亚洲一二三区在线观看| 国产老女人精品毛片久久| 一本一道综合狠狠老| 精品久久久影院| 亚洲麻豆国产自偷在线| 国产福利一区在线| 欧美日韩你懂得| 国产精品―色哟哟| 久热成人在线视频| 在线精品亚洲一区二区不卡| 精品噜噜噜噜久久久久久久久试看| 综合久久国产九一剧情麻豆| 另类小说图片综合网| 91蝌蚪porny成人天涯| 久久综合九色综合97婷婷| 亚洲精品国产a久久久久久 | 国产欧美综合在线| 麻豆精品在线播放| 欧美日韩国产首页在线观看| 欧美激情一区在线| 精品一二线国产| 欧美一区二区三区在线看| 一区二区三区日韩欧美精品| 国产一区二区三区高清播放| 日韩手机在线导航| 爽爽淫人综合网网站| 欧美日韩在线免费视频| 亚洲人精品午夜| 成人av在线资源网站| 久久噜噜亚洲综合| 国产一区激情在线| 精品国产伦一区二区三区观看体验 | 亚洲欧美日韩久久精品| 国产盗摄一区二区| 久久综合九色欧美综合狠狠| 日日夜夜精品免费视频| 欧美日韩精品免费观看视频| 亚洲乱码国产乱码精品精98午夜 | 欧美丝袜自拍制服另类| 1024成人网| 91在线高清观看| 亚洲精品videosex极品| 色婷婷久久综合| 一区二区在线免费| 欧美日韩中字一区| 天天操天天综合网| 日韩一区二区在线看| 精品一区二区三区日韩| 精品国产一区二区三区忘忧草| 精品亚洲国产成人av制服丝袜| 欧美电影免费观看高清完整版 | 99九九99九九九视频精品| 国产精品色一区二区三区| jlzzjlzz国产精品久久| 综合欧美一区二区三区| 日本二三区不卡| 亚洲丶国产丶欧美一区二区三区| 欧洲精品视频在线观看| 日本不卡在线视频| 久久只精品国产| 成人精品亚洲人成在线| 亚洲三级电影网站| 欧美人狂配大交3d怪物一区 | 久久久久久久久久看片| 成人黄色综合网站| 一区二区三区精品在线观看| 欧美日韩成人综合天天影院 | 美女免费视频一区| 欧美国产欧美综合| 91国内精品野花午夜精品| 日本三级亚洲精品| 国产欧美一区二区三区网站| 在线观看亚洲专区| 国产一区二区不卡| 亚洲精品欧美专区| 欧美电视剧免费全集观看| 成人激情综合网站| 日韩黄色片在线观看| 中文一区二区在线观看| 欧美日韩在线观看一区二区| 国产一区二区三区四区五区美女 | 精品一区二区在线观看| 亚洲视频中文字幕| 日韩久久久久久| 91麻豆国产精品久久| 另类小说色综合网站| 亚洲精品美国一| 久久综合九色综合欧美就去吻| 97超碰欧美中文字幕| 国产一区免费电影| 日韩成人免费电影| 亚洲欧美日韩在线不卡| 国产欧美一区二区精品性| 在线成人高清不卡| 在线免费观看一区| 成人av在线电影| 麻豆国产欧美一区二区三区| 午夜不卡av在线| 亚洲黄网站在线观看| 国产精品嫩草影院av蜜臀| 日韩欧美国产三级电影视频| 欧美日韩亚洲另类| 91美女视频网站| 国产成人精品影院| 国产一区二区0| 另类小说欧美激情| 日本sm残虐另类| 日韩av在线播放中文字幕| 亚洲欧美乱综合| 亚洲免费高清视频在线| 国产精品欧美经典| 国产精品盗摄一区二区三区| 久久精品亚洲一区二区三区浴池 | 五月婷婷激情综合网| 亚洲欧美一区二区三区极速播放| 国产欧美日韩不卡| 国产片一区二区| 日本一区二区三区免费乱视频| 久久久精品综合| 欧美激情在线免费观看| 国产日产欧美一区二区视频| 日本一区二区三区四区在线视频| 久久只精品国产| 国产欧美精品在线观看| 欧美高清在线一区二区| 国产精品三级av在线播放| 日本一区二区不卡视频| 亚洲国产激情av| 日韩毛片精品高清免费| 一卡二卡欧美日韩| 图片区小说区区亚洲影院| 免费观看91视频大全| 国产精品一卡二卡| 成人av资源在线观看| 日本高清视频一区二区| 欧美日韩夫妻久久| 日韩久久久精品| 中文子幕无线码一区tr| 一区二区成人在线观看| 日韩av电影天堂| 国产一区二区三区高清播放| 972aa.com艺术欧美| 欧美日韩不卡一区二区| 日韩欧美一区电影| 国产精品女人毛片| 丝袜国产日韩另类美女| 国产精品一区二区三区乱码| 99在线精品一区二区三区| 欧美日韩电影在线播放| 久久久99免费| 亚洲一区二区三区激情| 男人的j进女人的j一区| youjizz国产精品| 717成人午夜免费福利电影| 久久久久久久综合狠狠综合| 伊人色综合久久天天| 国产一区久久久| 欧美日韩午夜影院| 国产精品网曝门| 免播放器亚洲一区| 99热99精品| 久久蜜桃av一区精品变态类天堂 | 欧美精品一区在线观看| 亚洲精品网站在线观看| 国产一区二区三区在线看麻豆|