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

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

?? httext.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
字號:
/*  *	HT Editor *	httext.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 "htsearch.h"#include "httext.h"#include "stream.h"#include <string.h>ht_view *httext_init(Bounds *b, File *file, ht_format_group *group){	/* no httext for file > 5 MiB */	if (file->getSize() > 5*1024*1024) {		return NULL;	}	ht_text_viewer2 *v=new ht_text_viewer2();	v->init(b, TEXT_DESC, 0/*VC_EDIT | VC_GOTO | VC_SEARCH | VC_BLOCKOP | VC_TRUNCATE*/, file, group);	v->search_caps|=SEARCHMODE_BIN | SEARCHMODE_EVALSTR;	ht_text_sub *t=new ht_text_sub();	t->init(file, 0x0, file->getSize());	v->insertsub(t);	return v;}format_viewer_if httext_if = {	httext_init,	0};/* *	CLASS ht_text_viewer2 *//*bool ht_text_viewer2::offset_to_pos(FileOfs ofs, viewer_pos *pos){	pos->u.sub = first_sub;	pos->u.line_id.id1 = ofs;	pos->u.line_id.id2 = 0;	pos->u.tag_idx = 0;	pos->u.tag_group = 0;	return true;}bool ht_text_viewer2::pos_to_offset(viewer_pos pos, FileOfs *ofs){	*ofs = pos.u.line_id.id1;	return true;}*/void ht_text_viewer2::handlemsg(htmsg *msg){	switch (msg->msg) {	case msg_keypressed:		switch (msg->data1.integer) {		case K_Left: {			// FIXME: send cmd_bla when available			htmsg m;			m.msg = msg_keypressed;			m.type = mt_empty;			m.data1.integer = K_Control_Left;			sendmsg(&m);			clearmsg(msg);			return;		}		case K_Right: {			// FIXME: send cmd_bla when available			htmsg m;			m.msg = msg_keypressed;			m.type = mt_empty;			m.data1.integer = K_Control_Right;			sendmsg(&m);			clearmsg(msg);			return;		}		}		break;	}	return ht_uformat_viewer::handlemsg(msg);}/* *	CLASS ht_text_sub *//* FIXME: put it somewhere else..., why ain't this a POSIX function ? */void *memrchr(const void *string, int ch, size_t num){	while (num--) {		if (((char*)string)[num]==ch) return ((char*)string)+num;	}	return NULL;} #define TEXT_SUB_READSIZE		256#define TEXT_SUB_MAX_LINELEN		512#define TEXT_SUB_MAX_LINEENDLEN	2#define TEXT_SUB_TABSIZE			5byte ht_text_sub_line[TEXT_SUB_MAX_LINELEN];void ht_text_sub::init(File *file, FileOfs offset, int size){	ht_linear_sub::init(file, offset, size);}void ht_text_sub::done(){	ht_linear_sub::done();}bool ht_text_sub::convert_ofs_to_id(const FileOfs offset, LINE_ID *line_id){	clear_line_id(line_id);	line_id->id1 = offset;	prev_line_id(line_id, 1);	return true;}bool ht_text_sub::convert_id_to_ofs(const LINE_ID line_id, FileOfs *offset){	return false;}uint ht_text_sub::find_linelen_backwd(byte *buf, uint maxbuflen, FileOfs ofs, int *le_len){	uint readlen=(maxbuflen>TEXT_SUB_READSIZE) ? TEXT_SUB_READSIZE : maxbuflen;	uint oreadlen=readlen;	FileOfs oofs=ofs;	byte *bufp;	uint s;	uint len=0;	uint lineends=0;	if (le_len) *le_len=0;	do {		if (ofs==fofs) break;		if (readlen>ofs) readlen=ofs;		if (ofs-readlen<fofs) readlen=ofs-fofs;		ofs-=readlen;		file->seek(ofs);/* make sure current and next read overlap   to guarantee proper lineend-matching */		if (readlen==oreadlen) ofs+=TEXT_SUB_MAX_LINEENDLEN-1; else			if (ofs+readlen+TEXT_SUB_MAX_LINEENDLEN-1<=oofs)				readlen+=TEXT_SUB_MAX_LINEENDLEN-1;		s=file->read(buf, readlen);		int l;		bufp=match_lineend_backwd(buf, s, &l);		if (bufp) {			lineends++;			if (lineends==1) {				bufp=match_lineend_backwd(buf, bufp-buf, &l);				if (bufp) lineends++;			}			if (lineends==2) {				len+=buf+s-bufp-1;				if (len>TEXT_SUB_MAX_LINELEN) {					len=TEXT_SUB_MAX_LINELEN;					break;				}				if (le_len) *le_len=l;				break;			}		}		len+=s;		if (len>TEXT_SUB_MAX_LINELEN) {			len=TEXT_SUB_MAX_LINELEN;			break;		}	} while (s);	return len;}uint ht_text_sub::find_linelen_forwd(byte *buf, uint maxbuflen, FileOfs ofs, int *le_len){	uint readlen=(maxbuflen>TEXT_SUB_READSIZE) ? TEXT_SUB_READSIZE : maxbuflen;	byte *bufp;	uint s;	uint len = 0;	if (le_len) *le_len = 0;	do {		file->seek(ofs);		s = file->read(buf, readlen);		int l;		bufp = match_lineend_forwd(buf, s, &l);		if (bufp) {			len += bufp-buf+l;			if (le_len) *le_len = l;			break;		}		if (s != readlen) {			len += s;			break;		}		/* make sure current and next read overlap		   to guarantee proper lineend-matching */		if (s > (TEXT_SUB_MAX_LINEENDLEN-1)) {			len += s-(TEXT_SUB_MAX_LINEENDLEN-1);		}		ofs += s-(TEXT_SUB_MAX_LINEENDLEN-1);	} while (s == readlen);	if (len > TEXT_SUB_MAX_LINELEN) {		len = TEXT_SUB_MAX_LINELEN;		if (le_len) *le_len = 0;	}	return len;}void ht_text_sub::first_line_id(LINE_ID *line_id){	clear_line_id(line_id);	line_id->id1 = 0;}bool ht_text_sub::getline(char *line, int maxlen, const LINE_ID line_id){	byte *bufp = (byte*)line;	FileOfs ofs = line_id.id1;	int ll;	uint l = find_linelen_forwd(ht_text_sub_line, sizeof ht_text_sub_line, ofs, &ll);	if (l) {		l -= ll;		if (l > 255) l = 255;		file->seek(ofs);		l = file->read(line, l);		while (l--) {			if (*bufp=='\e' || *bufp==0) *bufp = '.';			bufp++;		}		*bufp = 0;		return true;	}	return false;}void ht_text_sub::last_line_id(LINE_ID *line_id){	clear_line_id(line_id);	FileOfs ofs = fofs+fsize;	uint l = find_linelen_backwd(ht_text_sub_line, sizeof ht_text_sub_line, ofs, NULL);	line_id->id1 = ofs-l;}byte *ht_text_sub::match_lineend_forwd(byte *buf, uint buflen, int *le_len){	byte *result=NULL;		byte *n=(byte*)memchr(buf, '\n', buflen);	if (n) {		if ((n>buf) && (n[-1] == '\r')) {			*le_len=2;			result=n-1;		} else {			*le_len=1;			result=n;		}	}	return result;}byte *ht_text_sub::match_lineend_backwd(byte *buf, uint buflen, int *le_len){	byte *result=NULL;		byte *n=(byte*)memrchr(buf, '\n', buflen);	if (n) {		if ((n>buf) && (n[-1] == '\r')) {			*le_len=2;			result=n-1;		} else {			*le_len=1;			result=n;		}	}	return result;}int ht_text_sub::next_line_id(LINE_ID *line_id, int n){	FileOfs ofs = line_id->id1;	int r=0;	while (n--) {		uint l=find_linelen_forwd(ht_text_sub_line, sizeof ht_text_sub_line, ofs, NULL);		ofs+=l;		if (!l) break;		r++;	}	line_id->id1 = ofs;	return r;}int ht_text_sub::prev_line_id(LINE_ID *line_id, int n){	FileOfs ofs = line_id->id1;	int r=0;	while (n--) {		uint l=find_linelen_backwd(ht_text_sub_line, sizeof ht_text_sub_line, ofs, NULL);		ofs-=l;		if (!l) break;		r++;	}	line_id->id1 = ofs;	return r;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情在线看| 国产一区二区在线看| 秋霞av亚洲一区二区三| 国产不卡免费视频| 欧美人体做爰大胆视频| 欧美国产97人人爽人人喊| 日韩成人dvd| 色久优优欧美色久优优| 久久久www免费人成精品| 日韩av不卡在线观看| 色综合久久天天| 欧美激情一区在线| 老司机精品视频导航| 欧美色男人天堂| 亚洲丝袜美腿综合| 国产大陆精品国产| 精品久久一二三区| 日韩电影免费一区| 欧美日韩精品综合在线| 亚洲丝袜精品丝袜在线| 在线观看亚洲一区| 国产亚洲精品7777| 美女高潮久久久| 欧美日韩免费不卡视频一区二区三区| 国产精品麻豆网站| 国产精品66部| 日本一区二区成人| 国产99一区视频免费| 国产亚洲综合av| 国产精品123区| 亚洲国产电影在线观看| 国产成人精品亚洲777人妖| 久久色视频免费观看| 狠狠色狠狠色综合日日91app| 欧美剧情片在线观看| 亚洲va韩国va欧美va| 欧美在线一二三四区| 亚洲精品国产高清久久伦理二区| 成人免费高清在线观看| 中文字幕 久热精品 视频在线 | 精品国产精品网麻豆系列| 婷婷久久综合九色国产成人| 欧美久久久久中文字幕| 免费观看一级特黄欧美大片| 日韩一区二区在线观看视频 | 亚洲国产精品嫩草影院| 欧美日韩综合不卡| 亚洲国产精品视频| 555www色欧美视频| 久久精品国产成人一区二区三区 | 久久久久久久精| 国产.欧美.日韩| 成人欧美一区二区三区白人| 一本一道久久a久久精品综合蜜臀| 亚洲欧美电影一区二区| 91 com成人网| 经典三级在线一区| 成人免费在线观看入口| 欧美人狂配大交3d怪物一区 | 日韩中文字幕一区二区三区| 日韩欧美高清一区| 国产91丝袜在线播放| 亚洲欧美日韩在线播放| 欧美精品久久天天躁| 国产在线视视频有精品| 中文字幕视频一区| 91精品在线一区二区| 国产999精品久久久久久绿帽| 亚洲品质自拍视频| 欧美一区二区三区公司| 成人不卡免费av| 日日噜噜夜夜狠狠视频欧美人| 久久久综合视频| 一本大道综合伊人精品热热 | 亚洲mv在线观看| 久久先锋影音av鲁色资源网| 日本黄色一区二区| 国产老妇另类xxxxx| 亚洲精品国久久99热| 久久亚洲二区三区| 欧美精品久久久久久久多人混战| 国产精品夜夜爽| 国产成人精品一区二| 丝袜美腿一区二区三区| 欧美国产乱子伦| 欧美电影精品一区二区| 欧美日韩成人高清| 99久久99精品久久久久久 | 午夜欧美在线一二页| 国产精品国产馆在线真实露脸 | 日本韩国一区二区| 国产精品一二三区在线| 久久精品国产免费看久久精品| 亚洲男女一区二区三区| 日本一区二区久久| 精品久久久久久久久久久久久久久久久 | 欧美在线影院一区二区| 成人福利电影精品一区二区在线观看| 婷婷中文字幕综合| 一区二区三区在线观看动漫| 国产精品天美传媒| 国产人久久人人人人爽| 精品国产乱码久久久久久老虎| 精品婷婷伊人一区三区三| av男人天堂一区| 粉嫩久久99精品久久久久久夜| 久久成人麻豆午夜电影| 日本欧美一区二区| 亚洲高清久久久| 曰韩精品一区二区| 亚洲日本丝袜连裤袜办公室| 国产精品欧美一区二区三区| 精品国产青草久久久久福利| 欧美一区日韩一区| 91精品国产91综合久久蜜臀| 69堂国产成人免费视频| 欧美日韩午夜在线视频| 欧美三级在线看| 欧美日韩一区二区不卡| 欧美日韩国产天堂| 欧美一区二区三区视频在线观看| 欧美一区二区三区的| 91精品蜜臀在线一区尤物| 欧美一二三在线| 欧美一区二区免费观在线| 日韩欧美激情一区| 日韩一区二区在线观看| 精品盗摄一区二区三区| 久久精品一区四区| 综合激情网...| 亚洲一区二区三区视频在线播放| 亚洲五码中文字幕| 免费看日韩精品| 国产精选一区二区三区| 国产不卡一区视频| 在线影视一区二区三区| 日韩一区二区在线观看视频| 26uuu久久天堂性欧美| 中文字幕欧美三区| 亚洲最新视频在线观看| 日韩国产在线观看一区| 久久er99精品| 99热这里都是精品| 91精品中文字幕一区二区三区| 久久久一区二区| 综合久久一区二区三区| 亚洲成国产人片在线观看| 国产在线精品一区二区| 91网站在线观看视频| 在线播放国产精品二区一二区四区| 日韩亚洲欧美中文三级| 国产精品三级av| 亚洲aⅴ怡春院| 大胆欧美人体老妇| 欧美亚州韩日在线看免费版国语版| 91精品国产91综合久久蜜臀| 国产欧美视频一区二区| 丝袜美腿一区二区三区| 丁香网亚洲国际| 欧美精品久久一区二区三区| 国产精品成人一区二区三区夜夜夜| 亚洲一线二线三线视频| 国产**成人网毛片九色| 制服视频三区第一页精品| 国产欧美日韩精品在线| 日本少妇一区二区| av电影一区二区| 精品免费99久久| 亚洲成人午夜电影| 91丝袜美腿高跟国产极品老师 | 亚洲综合色噜噜狠狠| 国产999精品久久久久久| 91精品国产全国免费观看| 国产精品第五页| 国产成人免费网站| 欧美mv和日韩mv国产网站| 午夜亚洲福利老司机| 91欧美激情一区二区三区成人| 26uuu国产日韩综合| 日日夜夜精品视频免费| 欧美视频一区二区三区四区| 国产精品视频在线看| 国产精品一区二区你懂的| 欧美电影影音先锋| 一区二区三区不卡视频| 91丨porny丨在线| 国产精品电影一区二区三区| 国产91高潮流白浆在线麻豆| 精品盗摄一区二区三区| 六月丁香婷婷久久| 欧美日韩国产首页| 亚洲va韩国va欧美va| 欧美无砖专区一中文字| 亚洲精品国产无套在线观| 91免费小视频| 亚洲欧美一区二区三区久本道91| 99久久综合色| 亚洲日本一区二区三区| 色婷婷一区二区| 一区二区三区成人|