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

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

?? htapp.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
?? 第 1 頁 / 共 5 頁
字號:
/* *	HT Editor *	htapp.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 "analy.h"#include "cmds.h"#include "log.h"#include "mfile.h"#include "htapp.h"#include "atom.h"#include "display.h"#include "htcfg.h"#include "htclipboard.h"#include "htdialog.h"#include "hteval.h"#include "hthist.h"#include "htidle.h"#include "htinfo.h"#include "htiobox.h"#include "keyb.h"#include "htmenu.h"#include "htpal.h"#include "htsearch.h"#include "strtools.h"#include "sys.h"#include "httree.h"#include "infoview.h"#include "snprintf.h"#include "stream.h"#include "textedit.h"#include "textfile.h"#include "tools.h"#include "vfsview.h"#include "formats.h"#include <errno.h>#include <stdarg.h>#include <stdlib.h>#include <string.h>#include <sys/stat.h>#include <sys/types.h>#include <time.h>#include <unistd.h>#include <exception>extern "C" {#include "regex.h"}#define ATOM_HT_APP			MAGIC32("APP\x00")#define ATOM_HT_PROJECT			MAGIC32("APP\x01")#define ATOM_HT_PROJECT_ITEM		MAGIC32("APP\x02")#define ATOM_COMPARE_KEYS_PROJECT_ITEM	MAGIC32("APP\x10")#define HT_PROJECT_CONFIG_SUFFIX     	".htprj"#define HT_FILE_CONFIG_SUFFIX 		".htcfg"ht_log *loglines;/* *	CLASS ht_help_window */class ht_help_window : public ht_window {public:/* overwritten */	virtual void handlemsg(htmsg *msg);};void ht_help_window::handlemsg(htmsg *msg){	ht_window::handlemsg(msg);	if (msg->msg == msg_keypressed) {		switch (msg->data1.integer) {		case K_Escape: {			htmsg m;			m.type = mt_empty;			m.msg = cmd_window_close;			((ht_app*)app)->queuemsg(app, m);			clearmsg(msg);			return;		}						}					}}bool file_new_dialog(uint *mode){	Bounds b, c;		app->getbounds(&b);	b.x = (b.w - 40) / 2,	b.y = (b.h - 8) / 2;	b.w = 40;	b.h = 8;		ht_dialog *d=new ht_dialog();	d->init(&b, "create new file", FS_KILLER | FS_TITLE | FS_MOVE | FS_RESIZE);		b.x=0;	b.y=0;			/* mode (input) */	c=b;	c.x=0;	c.y=1;	c.w=b.w-2-c.x;	c.h=b.h-2-c.y;	ht_text_listbox *mode_input = new ht_text_listbox();	mode_input->init(&c);		mode_input->insert_str(FOM_TEXT, "text");	mode_input->insert_str(FOM_BIN, "binary");	mode_input->update();	d->insert(mode_input);		/* mode (text) */	c=b;	c.x=0;	c.y=0;	c.w=12;	c.h=1;	ht_label *mode_text=new ht_label();	mode_text->init(&c, "choose ~type", mode_input);	d->insert(mode_text);	bool retval = false;	if (d->run(false)) {		ht_listbox_data type;		ViewDataBuf vdb(mode_input, &type, sizeof type);		*mode = mode_input->getID(type.data->cursor_ptr);				retval = true;	}	d->done();	delete d;	return retval;}/* *	class FileBrowserVfsListbox */ class FileBrowser;#define FileBrowserVfsListboxData VfsListboxDataclass FileBrowserVfsListbox: public VfsListbox {protected:	FileBrowser *file_browser;public:		void init(Bounds *b, List *vfs_list, ht_text *show_pos, FileBrowser *file_browser);/* overwritten */	virtual	void stateChanged();};/* *	class FileBrowser */ struct FileBrowserData {	ht_strinputfield_data name;	ht_listbox_data listbox;};class FileBrowser: public ht_dialog {protected:	ht_strinputfield *name_input;	FileBrowserVfsListbox *listbox;public:	virtual	void init(Bounds *b, Bounds *clientarea, const char *title, const char *starturl);	virtual void setstate(int state, int return_val);	virtual	bool extract_url(char *buf);	virtual	void listbox_changed();};/**/void	FileBrowserVfsListbox::init(Bounds *b, List *vfs_list, ht_text *show_pos, FileBrowser *fb){	file_browser = NULL;	VfsListbox::init(b, vfs_list, show_pos);	file_browser = fb;}void FileBrowserVfsListbox::stateChanged(){	if (file_browser) file_browser->listbox_changed();	VfsListbox::stateChanged();}/**/void FileBrowser::init(Bounds *n, Bounds *clientarea, const char *title, const char *starturl){	ht_dialog::init(n, title, FS_KILLER | FS_TITLE | FS_MOVE | FS_RESIZE);	Bounds b = *clientarea, c;	/* name (input) */	c = b;	c.x = 1;	c.y = 1;	c.w -= 2;	c.h = 1;	List *hist = (List*)getAtomValue(HISTATOM_FILE);		name_input = new ht_strinputfield();	name_input->init(&c, 128, hist);	insert(name_input);		/* name (text) */	c = b;	c.x = 1;	c.y = 0;	c.w = 9;	c.h = 1;	ht_label *name_text = new ht_label();	name_text->init(&c, "~name", name_input);	insert(name_text);	/* vfslistbox */	c = b;	c.x = 1;	c.y = 4;	c.w -= 2;	c.h -= 4;	listbox = new FileBrowserVfsListbox();	listbox->init(&c, virtual_fs_list, NULL, this);	listbox->changeURL(starturl);	insert(listbox);	/* vfslistbox (text) */	c.assign(1, 3, 9, 1);	ht_label *name_listbox = new ht_label();	name_listbox->init(&c, "~files", listbox);	insert(name_listbox);}bool FileBrowser::extract_url(char *buf){	ht_strinputfield_data i;	ViewDataBuf vdb(name_input, &i, sizeof i);/*	ht_text_listbox_item *t = (ht_text_listbox_item*)listbox->getbyid(d.listbox.cursor_id);	vfs_extra *x = (vfs_extra*)t->extra_data;*/	Vfs *vfs = listbox->getCurVfs();	if (vfs) {		int buflen = ht_snprintf(buf, VFS_URL_MAX, "%s:", listbox->getCurProto());		char fname[VFS_URL_MAX];		bin2str(fname, i.text, i.textlen);		vfs->canonicalize(buf+buflen, fname, listbox->getCurDir());		return true;	}	return false;}void FileBrowser::listbox_changed(){	FileBrowserVfsListboxData l;	ViewDataBuf vdb(listbox, &l, sizeof l);	ht_text_listbox_item *t = (ht_text_listbox_item*)l.data->cursor_ptr;	if (t) {		vfs_extra *x = (vfs_extra*)t->extra_data;		ht_strinputfield_data i;		i.textlen = strlen(x->name);		i.text = (byte*)x->name;		name_input->databuf_set(&i, sizeof i);	}}void FileBrowser::setstate(int state, int return_val){	if (state == ds_term_ok) {		ht_strinputfield_data i;		ViewDataBuf vdb(name_input, &i, sizeof i);		pstat_t s;		String fn(i.text, i.textlen);		int e = sys_pstat(s, fn.contentChar());		if (e == 0 && (s.caps & pstat_mode_type) && (s.mode & HT_S_IFDIR)) {			fn.prepend("local:");			listbox->changeURL(fn.contentChar());			return;		}	} 	ht_dialog::setstate(state, return_val);}/**/bool file_chooser(const char *title, char *buf, int bufsize){	Bounds b, c;		app->getbounds(&b);	c = b;	b.w = 60;	b.h = 20;	b.x = (c.w - b.w) / 2,	b.y = (c.h - b.h) / 2;	c = b;	c.x = 0;	c.y = 0;	c.w -= 2;	c.h -= 3;	// FIXME: hacked!	char cwd[HT_NAME_MAX];	strcpy(cwd, "local:");	if (!getcwd(cwd+6, (sizeof cwd)-6)) {		cwd[6] = 0;	}	FileBrowser *d = new FileBrowser();	d->init(&b, &c, title, cwd);	List *hist = (List*)getAtomValue(HISTATOM_FILE);	/* go! */	if (d->run(false)) {		char b[VFS_URL_MAX];		d->extract_url(b);		// FIXME: urls not fully supported...		if (ht_strncmp(b, "local:", 6) == 0) {			ht_strlcpy(buf, b+6, bufsize);			if (hist) insert_history_entry(hist, buf, 0);			d->done();			delete d;			return true;		}	}	d->done();	delete d;	return false;}/**/bool file_open_dialog(char **name, uint *mode){	Bounds b, c;		app->getbounds(&b);	c = b;	b.w = 60;	b.h = 20;	b.x = (c.w - b.w) / 2,	b.y = (c.h - b.h) / 2;	c = b;	c.x = 0;	c.y = 0;	c.w -= 2;	c.h -= 5;	// FIXME: hacked!	char cwd[HT_NAME_MAX];	strcpy(cwd, "local:");	if (!getcwd(cwd+6, (sizeof cwd)-6)) {		cwd[6] = 0;	}	FileBrowser *d = new FileBrowser();	d->init(&b, &c, "open file", cwd);		List *hist = (List*)getAtomValue(HISTATOM_FILE);		/* mode (input) */	c = b;	c.x = 6;	c.y = b.h-4;	c.w = 12;	c.h = 1;	ht_listpopup *mode_input = new ht_listpopup();	mode_input->init(&c);		mode_input->insertstring("autodetect");	mode_input->insertstring("binary");	mode_input->insertstring("text");		mode_input->growmode = MK_GM(GMH_LEFT, GMV_BOTTOM);		d->insert(mode_input);		/* mode (text) */	c = b;	c.x = 1;	c.y = b.h-4;	c.w = 9;	c.h = 1;	ht_label *mode_text = new ht_label();	mode_text->init(&c, "~mode", mode_input);	mode_text->growmode = MK_GM(GMH_LEFT, GMV_BOTTOM);	d->insert(mode_text);	/* go! */	if (d->run(false)) {		struct {			FileBrowserData browser;			ht_listpopup_data mode;		} data;		ViewDataBuf vdb(d, &data, sizeof data);		char buf[VFS_URL_MAX];		d->extract_url(buf);		// FIXME: urls not fully supported...		if (ht_strncmp(buf, "local:", 6) == 0) {			*name = ht_strdup(buf+6);			if (hist) insert_history_entry(hist, *name, 0);			switch (data.mode.cursor_pos) {				case 0: *mode=FOM_AUTO; break;				case 1: *mode=FOM_BIN; break;				case 2: *mode=FOM_TEXT; break;			}			d->done();			delete d;			return true;		}	}	d->done();	delete d;	return false;}static uint autodetect_file_open_mode(const char *filename){#define AUTODETECT_SIZE	128	FILE *f=fopen(filename, "rb");	uint r=FOM_BIN;	if (f) {		byte buf[AUTODETECT_SIZE];		int c=fread(buf, 1, AUTODETECT_SIZE, f);		/* empty files are text files */		if (!c) return FOM_TEXT;		bool is_bin=false;		uint prob_bin_chars=0;		for (int i=0; i<c; i++) {			if (buf[i]==0) {				is_bin=true;				break;			} else if (buf[i]<32) {				prob_bin_chars++;			} else if (buf[i]>0xa9) {				prob_bin_chars++;			}		}		if (c) {			if (prob_bin_chars*100/c>=50) is_bin=true;		} else is_bin=true;		if (!is_bin) r=FOM_TEXT;		fclose(f);		return r;	}	return FOM_BIN;}void file_window_load_fcfg_func(ObjectStream &f, void *context){	ht_file_window *w = (ht_file_window*)context;	pstat_t p;		FileOfs oldsize = GETX_INT64D(f, "filesize");	uint32 oldtime = GETX_INT32X(f, "filetime");	FileOfs newsize = w->file->getSize();	w->file->pstat(p);	uint32 newtime = (p.caps & pstat_mtime) ? p.mtime : 0;		if (newsize != oldsize || newtime != oldtime) {		char s_oldtime[64], s_newtime[64];		struct tm *t;		time_t tt = newtime;		t = localtime(&tt);		strftime(s_newtime, sizeof s_newtime, "%X %d %b %Y", t);		tt = oldtime;		t = localtime(&tt);		strftime(s_oldtime, sizeof s_oldtime, "%X %d %b %Y", t);		String fn;		if (confirmbox_c("\ecconfig file applies to different version of file '%y'.\n\n"		    "\elcurrent: %10qd %s\n\elold:     %10qd %s\n\n"		    "\ecload config file?", &w->file->getDesc(fn), newsize, s_newtime, oldsize, s_oldtime) != button_yes) {			return;		}	}	Analyser *a = f.getObject("analyser");	htmsg m;	m.msg = msg_set_analyser;	m.type = mt_broadcast;	m.data1.ptr = a;	w->sendmsg(&m);}void file_window_store_fcfg_func(ObjectStream &f, void *context){	ht_file_window *w = (ht_file_window*)context;	htmsg m;	m.msg = msg_get_analyser;	m.type = mt_broadcast;	m.data1.ptr = NULL;	w->sendmsg(&m);	if (m.msg == msg_retval && m.data1.ptr) {		pstat_t s;		w->file->pstat(s);		uint32 t = (s.caps & pstat_mtime) ? s.mtime : 0;		PUTX_INT64D(f, w->file->getSize(), "filesize");		PUTX_INT32X(f, t, "filetime");				Analyser *a = (Analyser*)m.data1.ptr;		f.putObject(a, "analyser");	}}void file_project_store_fcfg_func(ObjectStream &f, void *context){	PUT_OBJECT(f, (Object*)project);}void file_project_load_fcfg_func(ObjectStream &f, void *context){	Object *p;	GET_OBJECT(f, p);	project = p;}/* *   app_stream_error_func() */#if 0int app_stream_error_func(ht_stream *stream){	int err=stream->get_error();	const char *name = stream->get_desc();	if (err & STERR_SYSTEM) {		err=err&0xffff;		switch (err) {			case 4: {	/* EACCES*/#ifdef DJGPP				struct stat sbuf;				stat(name, &sbuf);				if (!(sbuf.st_mode & S_IWUSR)) {					if (msgbox(btmask_yes | btmask_no, "title", 1, align_center, "%s: stream error (Permission denied), seems to be a (DOS) read-only file. Change attribute?", name)==button_yes) {						if (chmod(name, S_IRUSR | S_IWUSR)) {							errorbox_modal("%s: error (%04x) changing attribute", name, errno & 0xffff);						} else {							stat(name, &sbuf);							if (!(sbuf.st_mode & S_IWUSR)) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品尤物av久久免费看| 欧美国产日韩精品免费观看| 久久一区二区视频| 亚洲精品免费在线观看| 国产美女精品人人做人人爽| 欧美三级电影在线观看| 综合电影一区二区三区| 国产一区二区调教| 欧美va亚洲va国产综合| 午夜精品123| 欧美性受极品xxxx喷水| 日韩一区在线看| 高清国产一区二区| 久久久无码精品亚洲日韩按摩| 日本最新不卡在线| 欧美日韩一二三区| 一区二区三区日韩精品| 99国产精品视频免费观看| 久久久久久久久久久久久久久99 | 美脚の诱脚舐め脚责91| 欧日韩精品视频| 亚洲免费资源在线播放| 99天天综合性| 国产精品日韩精品欧美在线| 国产高清亚洲一区| 国产午夜精品福利| 国产成人精品免费| 国产精品色眯眯| 本田岬高潮一区二区三区| 国产精品久久久久影院亚瑟 | 亚洲天堂久久久久久久| 国产91色综合久久免费分享| 久久久久久久久伊人| 极品美女销魂一区二区三区免费| 欧美一区二区啪啪| 日韩 欧美一区二区三区| 日韩一级完整毛片| 极品少妇一区二区| 欧美高清在线一区| 色天天综合色天天久久| 亚洲夂夂婷婷色拍ww47| 欧美午夜精品电影| 免费在线观看成人| 久久综合色天天久久综合图片| 国内精品久久久久影院薰衣草| 精品国产伦一区二区三区观看方式| 麻豆精品国产传媒mv男同| 精品日韩在线观看| 东方欧美亚洲色图在线| 亚洲欧美激情视频在线观看一区二区三区 | 一区二区三区在线播| 欧美精品高清视频| 黄色资源网久久资源365| 国产精品美女久久久久久2018| 97久久精品人人做人人爽| 一区二区高清免费观看影视大全 | 93久久精品日日躁夜夜躁欧美| 玉米视频成人免费看| 欧美一区永久视频免费观看| 极品少妇xxxx精品少妇| 亚洲欧美一区二区三区久本道91| 欧美三级乱人伦电影| 国产成人精品免费网站| 亚洲国产视频在线| 欧美精品一区二区三区高清aⅴ| 不卡在线视频中文字幕| 蜜臀91精品一区二区三区 | 久久综合色播五月| 91免费视频大全| 久久精品国产精品青草| 亚洲欧美日韩人成在线播放| 欧美一级国产精品| 91丨porny丨最新| 另类小说一区二区三区| 亚洲欧美一区二区三区极速播放| 91精品国产综合久久久蜜臀粉嫩| 成人高清免费在线播放| 久久草av在线| 香蕉久久一区二区不卡无毒影院| 国产偷国产偷精品高清尤物| 欧美精品久久久久久久多人混战| 菠萝蜜视频在线观看一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲欧美韩国综合色| 国产日韩欧美精品电影三级在线| 91精品蜜臀在线一区尤物| 91视视频在线观看入口直接观看www | 美女视频黄久久| 亚洲国产成人tv| 亚洲日本韩国一区| 国产欧美一区二区精品婷婷| 91精品欧美一区二区三区综合在 | 成人精品小蝌蚪| 韩国欧美国产1区| 日韩电影网1区2区| 亚洲大片免费看| 亚洲一区二区三区四区在线观看| 国产精品污www在线观看| 久久婷婷成人综合色| 欧美一级生活片| 欧美视频在线观看一区| 色香蕉久久蜜桃| 91在线观看一区二区| 成人小视频免费在线观看| 狠狠色丁香婷综合久久| 麻豆国产精品视频| 日韩电影在线观看一区| 日韩黄色片在线观看| 亚洲va在线va天堂| 亚洲国产精品影院| 亚洲第一精品在线| 午夜精品久久久久久久蜜桃app| 一区二区理论电影在线观看| 亚洲精品成人精品456| 亚洲视频在线一区二区| 亚洲另类中文字| 一区二区三区四区蜜桃| 亚洲一区日韩精品中文字幕| 亚洲午夜久久久久中文字幕久| 亚洲激情自拍视频| 亚洲成av人片一区二区梦乃| 日韩高清不卡一区二区三区| 日韩av一二三| 激情成人综合网| 岛国av在线一区| 色综合久久中文字幕综合网| 欧美在线制服丝袜| 欧美精品久久99久久在免费线 | 一卡二卡三卡日韩欧美| 亚洲一区二区在线免费观看视频| 一区二区三区在线播放| 日韩中文字幕麻豆| 久久精品免费观看| 国产成人精品一区二| 色哟哟一区二区三区| 正在播放亚洲一区| 久久久www免费人成精品| 国产精品九色蝌蚪自拍| 一区二区三区精密机械公司| 日韩高清不卡一区二区| 国产ts人妖一区二区| 欧美综合久久久| 久久婷婷久久一区二区三区| 国产精品电影院| 五月天视频一区| 国产盗摄一区二区| 欧美日韩dvd在线观看| 26uuu色噜噜精品一区| 亚洲精品高清在线观看| 激情五月播播久久久精品| 91丨porny丨户外露出| 欧美大白屁股肥臀xxxxxx| 国产精品丝袜在线| 日本成人在线电影网| fc2成人免费人成在线观看播放| 欧美日韩免费观看一区三区| 久久久精品免费免费| 夜夜嗨av一区二区三区中文字幕| 久久91精品国产91久久小草| 99视频国产精品| 精品黑人一区二区三区久久| 一区二区三区免费在线观看| 精品一区二区三区在线视频| 欧美性感一类影片在线播放| 亚洲国产精品av| 久久精品国产成人一区二区三区 | 自拍偷在线精品自拍偷无码专区 | 久久一日本道色综合| 亚洲成va人在线观看| 国产sm精品调教视频网站| 欧美三区免费完整视频在线观看| 国产清纯在线一区二区www| 日韩电影免费在线观看网站| 色综合激情久久| 欧美高清一级片在线观看| 精品一区在线看| 欧美狂野另类xxxxoooo| 亚洲免费av高清| 国产91精品欧美| 久久综合狠狠综合久久综合88 | 亚洲电影中文字幕在线观看| 高清日韩电视剧大全免费| 欧美变态口味重另类| 日韩国产精品久久久久久亚洲| 色天使色偷偷av一区二区| 国产精品欧美极品| 国产一区二区91| 精品国产91洋老外米糕| 视频一区二区欧美| 欧美日韩免费观看一区二区三区| 亚洲美腿欧美偷拍| 91一区二区三区在线观看| 国产精品美女久久久久久| 岛国av在线一区| 国产精品色眯眯| 91麻豆精品秘密| 亚洲情趣在线观看| 91国偷自产一区二区使用方法| 亚洲私人黄色宅男| 91极品美女在线|