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

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

?? file.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
字號:
/*  *	HT Editor *	file.cc * *	Copyright (C) 1999-2004 Stefan Weyergraf (stefan@weyergraf.de) * *	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 "file.h"#include <ctype.h>#include <errno.h>#include <limits.h>#include <cstdarg>#include <cstdio>#include <cstdlib>#include <cstring>#include <sys/stat.h>#include "strtools.h"/* *	COMMON SYS */#ifndef S_IFMT#define S_IFMT 0xf000#endif#ifndef S_ISREG#	ifndef S_IFREG#		define S_ISREG(m) (0)#	else#		define S_ISREG(m) (((m) & S_IFMT)==S_IFREG)#	endif#endif#ifndef S_ISBLK#	ifndef S_IFBLK#		define S_ISBLK(m) (0)#	else#		define S_ISBLK(m) (((m) & S_IFMT)==S_IFBLK)#	endif#endif#ifndef S_ISCHR#	ifndef S_IFCHR#		define S_ISCHR(m) (0)#	else#		define S_ISCHR(m) (((m) & S_IFMT)==S_IFCHR)#	endif#endif#ifndef S_ISDIR#	ifndef S_IFDIR#		define S_ISDIR(m) (0)#	else#		define S_ISDIR(m) (((m) & S_IFMT)==S_IFDIR)#	endif#endif#ifndef S_ISFIFO#	ifndef S_IFFIFO#		define S_ISFIFO(m) (0)#	else#		define S_ISFIFO(m) (((m) & S_IFMT)==S_IFFIFO)#	endif#endif#ifndef S_ISLNK#	ifndef S_IFLNK#		define S_ISLNK(m) (0)#	else#		define S_ISLNK(m) (((m) & S_IFMT)==S_IFLNK)#	endif#endif#ifndef S_ISSOCK#	ifndef S_IFSOCK#		define S_ISSOCK(m) (0)#	else#		define S_ISSOCK(m) (((m) & S_IFMT)==S_IFSOCK)#	endif#endif#ifndef S_IRUSR#define S_IRUSR 0#endif#ifndef S_IRGRP#define S_IRGRP 0#endif#ifndef S_IROTH#define S_IROTH 0#endif#ifndef S_IWUSR#define S_IWUSR 0#endif#ifndef S_IWGRP#define S_IWGRP 0#endif#ifndef S_IWOTH#define S_IWOTH 0#endif#ifndef S_IXUSR#define S_IXUSR 0#endif#ifndef S_IXGRP#define S_IXGRP 0#endif#ifndef S_IXOTH#define S_IXOTH 0#endif#if defined(WIN32) || defined(__WIN32__)# include <windows.h># include <winreg.h>#endif//-----------------------------------------------------------------------------static char *_str_strip(char *str, int len){	char *pr =  ht_malloc(len + 1);	pr[len] = 0;	memcpy(pr, str, len);	return pr;}//-----------------------------------------------------------------------------/* 1. char *s            - old string 2. unsigned int s_len - old string len 3. char *r            - new string 4. unsigned int r_len - new string len 5. unsigned int at    - offset in old string 6. unsigned int len   - len of substring for delete ( at - start)*/static char *_substr_replace(char *s, unsigned int s_len, char *r, unsigned int r_len,\                                            unsigned int at, unsigned int len){	if (!s_len || !r_len) return NULL;	if (at > s_len) at = 0;	unsigned int nlen = s_len + r_len - len;	char *out = ht_malloc(nlen+1);	out[nlen] = 0; 	memcpy(out, s, at);	memcpy(out+at, r, r_len);	while (s_len-- > (at + len)) {		out[--nlen] = s[s_len];	}	return out;}//-----------------------------------------------------------------------------static char *_env_replace(char *str, unsigned int len){	bool e = false;	unsigned int cc = 0; // count	unsigned int sp = 0; // start pos	char *p = NULL;	char *prt = NULL;	char *t;	char *t2;	while (cc != len) {		t2 = prt?prt:str;#if defined(WIN32) || defined(__WIN32__) || defined(DJGPP) || defined(MSDOC)		if (t2[cc] == '%' || t2[cc] == ' ') {#else		if (t2[cc] == '$' || t2[cc] == ' ') {#endif			if (e) {				free(p);				p = _str_strip(t2 + sp, cc - sp);				if ((t = getenv(p)) != NULL) {					prt = _substr_replace(t2, prt?strlen(prt):strlen(str), t, strlen(t),                                                          sp-1, (cc - sp) + 2);					if (t2 != str) free(t2);					len = strlen(prt);					cc = sp;				}				e = false;			} else {				if (t2[cc] != ' ') {					sp = cc + 1;					e = true;				}			}		}		cc++;	}	if (prt == NULL) {		prt = ht_malloc(len+1);		prt[len] = 0;			memcpy(prt, str, len);	}	return prt;}//-----------------------------------------------------------------------------int sys_basename(char *result, const char *filename){	// FIXME: use is_path_delim	char *slash1 = strrchr(filename, '/');	char *slash2 = strrchr(filename, '\\');	char *slash = (slash1 > slash2) ? slash1 : slash2;	if (slash) {		int l = strlen(filename);		ht_strlcpy(result, slash+1, l-(slash-filename)+1);		return 0;	}	strcpy(result, filename);	return 0;}char *sys_dirname(char *path){	char *r;           // result	char *ptr = path;	int c = 0;	int last = 0;	do {		c++;		if (*ptr == '/' || *ptr == '\\') {			last = c;		} else if (*ptr == 0) {			r = ht_malloc(last + 1);			strncpy(r, path, last);			r[last] = 0;			return r;		}	} while (*ptr++);	return NULL;}/* filename and pathname must be canonicalized */int sys_relname(char *result, const char *filename, const char *cwd){	const char *f = filename, *p = cwd;	while ((*f == *p) && (*f)) {		f++;		p++;	}	if (*f == '/') f++;	const char *last = f, *h = f;	while (*h) {		if (*h == '/') {			*(result++) = '.';			*(result++) = '.';			*(result++) = '/';			last = h+1;		}		h++;	}	while (f<last) {		*(result++) = *f;		f++;	}	*result = 0;	strcat(result, last);	return 0;}char *sys_get_home_dir(void){#if defined(WIN32) || defined(__WIN32__)	HKEY hKey;	char path[HT_NAME_MAX];	/*	 LONG len = HT_NAME_MAX;	 if(RegOpenKey(HKEY_CURRENT_USER,	 "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders",	                                                      &hKey) == ERROR_SUCCESS){	  if(RegQueryValue(hKey, "Personal", path, &len) == ERROR_SUCCESS){	   RegCloseKey(hKey);	   if(len > HT_NAME_MAX) return NULL;	   else return _env_replace(path, len);	  }	 }	*/	// not work on Windows 3.1 ?	DWORD len = HT_NAME_MAX;	if (RegOpenKeyEx(HKEY_CURRENT_USER,		"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders",                0, KEY_QUERY_VALUE, &hKey ) == ERROR_SUCCESS) {				if (RegQueryValueEx(hKey, "Personal", NULL, NULL, (LPBYTE)path, &len) ==                                                                ERROR_SUCCESS) {			RegCloseKey(hKey);			if (len > HT_NAME_MAX) {				return NULL;			} else {				return _env_replace(path, len);			}		}	}#elif defined(MSDOS) 	// -?#elif defined(DJGPP)	// unknown...#else 	char *path = getenv("HOME");	if (path) return _env_replace(path, strlen(path));#endif	return NULL;}int sys_file_mode(int mode){	int m = 0;	if (S_ISREG(mode)) {		m |= HT_S_IFREG;	} else if (S_ISBLK(mode)) {		m |= HT_S_IFBLK;	} else if (S_ISCHR(mode)) {		m |= HT_S_IFCHR;	} else if (S_ISDIR(mode)) {		m |= HT_S_IFDIR;	} else if (S_ISFIFO(mode)) {		m |= HT_S_IFFIFO;	} else if (S_ISLNK(mode)) {		m |= HT_S_IFLNK;	} else if (S_ISSOCK(mode)) {		m |= HT_S_IFSOCK;	}	if (mode & S_IRUSR) m |= HT_S_IRUSR;	if (mode & S_IRGRP) m |= HT_S_IRGRP;	if (mode & S_IROTH) m |= HT_S_IROTH;		if (mode & S_IWUSR) m |= HT_S_IWUSR;	if (mode & S_IWGRP) m |= HT_S_IWGRP;	if (mode & S_IWOTH) m |= HT_S_IWOTH;		if (mode & S_IXUSR) m |= HT_S_IXUSR;	if (mode & S_IXGRP) m |= HT_S_IXGRP;	if (mode & S_IXOTH) m |= HT_S_IXOTH;	return m;}static char *next_delim(char *s, is_path_delim delim){	while (*s) {		s++;		if (delim(*s)) return s;	}	return NULL;}static int flatten_path(char *path, is_path_delim delim){	if (!path || !*path)		return 0;	char *q = next_delim(path, delim);	int pp = flatten_path(q, delim);	int ll = q ? (q-path-1) : strlen(path)-1;	if (ll == 2 && ht_strncmp(path+1, "..", 2) == 0) {		if (q) memmove(path, q, strlen(q)+1); else *path = 0;		pp++;	} else if (ll == 1 && ht_strncmp(path+1, ".", 1) == 0) {		if (q) memmove(path, q, strlen(q)+1); else *path = 0;	} else if (pp) {		if (q) memmove(path, q, strlen(q)+1); else *path = 0;		pp--;	}	return pp;}bool sys_path_is_absolute(const char *filename, is_path_delim delim){	return delim(filename[0]) || (isalpha(filename[0]) && (filename[1] == ':'));}int sys_common_canonicalize(char *result, const char *filename, const char *cwd, is_path_delim delim){	char *o = result;	if (!sys_path_is_absolute(filename, delim)) {		if (cwd) strcpy(o, cwd); else return EINVAL;		int ol = strlen(o);		if (ol && !delim(o[ol-1])) {			o[ol] = '/';			o[ol+1] = 0;		}	} else *o = 0;	strcat(o, filename);	int k = flatten_path(o, delim);	return (k == 0) ? 0 : EINVAL;}char *sys_filename_suffix(const char *fn){	const char *s = NULL;	while (fn && *fn) {		if (sys_is_path_delim(*fn)) s = fn+1;		fn++;	}	char *p = s ? strrchr(s, '.') : NULL;	return p ? p+1 : NULL;}int sys_tmpfile_fd(){#if 1	// FIXME: this might leak something...	FILE *f = tmpfile();	return fileno(f);#else	// is this better ?	return open(tmpnam(NULL), O_RDWR | O_EXCL | O_CREAT);#endif}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清在线不卡av| 91久久一区二区| 一区二区三区高清不卡| 欧美一卡2卡3卡4卡| 成人午夜电影久久影院| 天天色图综合网| 日韩毛片精品高清免费| 久久亚区不卡日本| 欧美做爰猛烈大尺度电影无法无天| 美女一区二区三区在线观看| 亚洲天堂网中文字| 欧美成人精品3d动漫h| 色先锋资源久久综合| 国产精品中文欧美| 免费一级片91| 一区二区三区蜜桃网| 国产精品乱码一区二区三区软件| 日韩视频在线你懂得| 欧美在线三级电影| 成人黄色大片在线观看| 韩国一区二区在线观看| 免费成人你懂的| 亚洲专区一二三| 亚洲激情男女视频| 日本一区二区久久| 久久亚洲二区三区| 精品国产成人系列| 日韩欧美电影在线| 9191国产精品| 欧美日韩黄色影视| 欧美综合久久久| 在线欧美日韩国产| 日本丶国产丶欧美色综合| 成人精品免费网站| www.综合网.com| 成人福利视频在线看| 粉嫩av一区二区三区在线播放 | 国产一区二区在线观看免费| 午夜激情一区二区三区| 亚洲妇熟xx妇色黄| 亚洲电影在线免费观看| 亚洲综合一区二区| 洋洋成人永久网站入口| 一区二区三区四区亚洲| 国产精品久久久久久久久久久免费看| 久久久.com| 国产农村妇女毛片精品久久麻豆 | 国产精品69久久久久水密桃 | 欧美日韩视频不卡| 欧美日韩一区国产| 欧美精品亚洲一区二区在线播放| 在线播放中文字幕一区| 欧美一级久久久久久久大片| 欧美成人video| 久久久精品综合| 欧美激情综合五月色丁香| 国产精品久久久久影院亚瑟| 国产精品美女久久久久aⅴ| 国产精品的网站| 亚洲综合激情小说| 亚洲成人av电影在线| 久久99国产精品麻豆| 国产毛片精品视频| 成人激情免费电影网址| 色av一区二区| 91精品国产一区二区三区香蕉| 日韩精品影音先锋| 国产精品视频看| 亚洲一区二区三区四区在线观看 | 国产在线播放一区二区三区| 国产成人精品一区二| av资源网一区| 欧美午夜不卡视频| 欧美不卡视频一区| 国产精品欧美经典| 图片区小说区区亚洲影院| 精品在线播放午夜| 99精品一区二区| 制服.丝袜.亚洲.中文.综合| 久久综合久色欧美综合狠狠| 最新中文字幕一区二区三区| 亚洲一区二区成人在线观看| 麻豆精品视频在线观看视频| 成人激情av网| 日韩一区二区免费高清| 国产免费久久精品| 亚洲成人综合视频| 国产精品66部| 欧美日韩精品久久久| 欧美国产精品一区二区| 亚洲国产成人porn| 国产成人午夜精品影院观看视频| 欧美专区亚洲专区| 国产亚洲1区2区3区| 天堂一区二区在线免费观看| 国产一区二区在线电影| 欧美日本一区二区三区四区| 国产女主播一区| 免费成人在线观看视频| 色综合久久综合网| 久久免费的精品国产v∧| 一区二区日韩av| 国产福利一区二区三区视频| 欧美欧美午夜aⅴ在线观看| 中文字幕在线不卡一区| 美脚の诱脚舐め脚责91| 欧美日韩色综合| ㊣最新国产の精品bt伙计久久| 国产做a爰片久久毛片| 欧美精品v国产精品v日韩精品| 国产精品久久久久久户外露出| 激情综合网最新| 欧美丰满少妇xxxxx高潮对白| 亚洲欧美在线视频| 国产高清久久久| 精品国内片67194| 日日夜夜免费精品视频| 欧美性猛片xxxx免费看久爱| 国产精品久久久久久久浪潮网站| 韩国成人精品a∨在线观看| 欧美乱妇20p| 亚洲一区二区影院| 色婷婷激情综合| 亚洲天堂免费在线观看视频| 成人性生交大片免费看在线播放 | 国产精品美女久久久久aⅴ国产馆| 麻豆成人免费电影| 欧美一区二区私人影院日本| 亚洲一区二区美女| 色婷婷国产精品| 亚洲黄一区二区三区| 99久久99久久综合| 亚洲欧洲国产日本综合| 懂色av一区二区三区免费看| 久久精品亚洲一区二区三区浴池| 精品无人区卡一卡二卡三乱码免费卡 | 色综合色狠狠天天综合色| 国产精品久久久久久福利一牛影视| 国产成人av影院| 国产亚洲va综合人人澡精品| 91在线免费视频观看| 国产精品白丝在线| 99国产精品视频免费观看| 18成人在线观看| 91极品视觉盛宴| 亚洲国产欧美日韩另类综合 | 在线观看成人小视频| 亚洲一区二区三区视频在线播放 | 午夜精品123| 日韩一级片在线观看| 久久9热精品视频| 久久久久久久久伊人| 成人免费黄色大片| 中文字幕永久在线不卡| 91碰在线视频| 亚洲大片一区二区三区| 91精品国产美女浴室洗澡无遮挡| 蜜桃视频一区二区三区| 久久这里只有精品6| 高清不卡一二三区| 亚洲三级小视频| 欧美色中文字幕| 蜜乳av一区二区三区| 久久嫩草精品久久久精品一| 91在线你懂得| 天堂va蜜桃一区二区三区漫画版| 精品粉嫩aⅴ一区二区三区四区| 国产一区在线不卡| 亚洲欧美日韩中文播放| 欧美美女激情18p| 国产一区二区免费看| 亚洲欧洲一区二区在线播放| 欧美色综合网站| 国产在线国偷精品产拍免费yy| 中文字幕一区二区三| 91超碰这里只有精品国产| 国产精品香蕉一区二区三区| 综合激情网...| 91精品国模一区二区三区| 国产成人免费网站| 亚洲综合偷拍欧美一区色| 精品国产青草久久久久福利| www.亚洲精品| 日韩中文欧美在线| 国产精品视频第一区| 555夜色666亚洲国产免| 大胆亚洲人体视频| 日产国产高清一区二区三区| 国产日韩精品一区二区三区| 精品婷婷伊人一区三区三| 国产乱码精品一品二品| 亚洲高清三级视频| 国产精品美女久久福利网站| 91精品国产欧美一区二区| 99久久伊人网影院| 捆绑调教美女网站视频一区| 亚洲日本韩国一区| 久久人人超碰精品| 欧美乱妇15p| 色伊人久久综合中文字幕|