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

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

?? journal.c

?? aee是一種易使用的文本編輯器。你可以不用說明書來使用它。它提供終端接口和本地的X-windows接口。它的特性包括即彈的菜單
?? C
?? 第 1 頁 / 共 2 頁
字號:
	while (((ret_val = open(lock_file_name, (O_CREAT | O_EXCL), 0700)) == -1) && (counter < 3))	{		sleep(1);		counter++;	}	if (ret_val != -1)		close(ret_val);	return(ret_val);}/* |	remove the lock file */void unlock_journal_fd(){	unlink(lock_file_name);}/* |	free the memory used in the list of files being edited and their  |	journal files */void free_db_list(list)struct journal_db *list;{	if (list->next != NULL)		free_db_list(list->next);	free(list->journal_name);	if (list->file_name != NULL)		free(list->file_name);	free(list);}/* |	read the file ~/.aeeinfo (which contains the name of the file  |	being edited and the name of the journal file associated with it) */struct journal_db *read_journal_db(){	char buffer[4092];	char *tmp;	int file_name_len;	int journ_name_len;	struct journal_db *top_of_list = NULL;	struct journal_db *list = NULL;	FILE *db_fp;	if (lock_journal_fd() == -1)		return(NULL);	if (db_file_name == NULL)		db_file_name = resolve_name("~/.aeeinfo");	db_fp = fopen(db_file_name, "r");	if (db_fp == NULL)	{		unlock_journal_fd();		return(NULL);	}	while ((tmp = fgets(buffer, 4092, db_fp)) != NULL)	{		if (list == NULL)			top_of_list = list = 			     (struct journal_db *) malloc(sizeof(struct journal_db));		else		{			list->next = (struct journal_db *) 					malloc(sizeof(struct journal_db));			list = list->next;		}		list->next = NULL;		if ((*tmp == ' ') || (*tmp == '\t'))			tmp = next_word(tmp);		file_name_len = atoi(tmp);		tmp = next_word(tmp);		journ_name_len = atoi(tmp);		if (file_name_len > 0)		{			tmp = next_word(tmp);			list->file_name = (char *) malloc(file_name_len + 1);			strncpy(list->file_name, tmp, file_name_len);			list->file_name[file_name_len] = (char)NULL;		}		else			list->file_name = NULL;		tmp = next_word(tmp);		list->journal_name = (char *) malloc(journ_name_len + 1);		strncpy(list->journal_name, tmp, journ_name_len);		list->journal_name[journ_name_len] = (char)NULL;	}	fclose(db_fp);	return(top_of_list);}/* |	Write the file ~/.aeeinfo . */void write_db_file(list)struct journal_db *list;{	struct journal_db *tmp;	FILE *db_fp;	db_fp = fopen(db_file_name, "w");	if (db_fp == NULL)		return;	for (tmp = list; (db_fp != NULL) && (tmp != NULL); tmp = tmp->next)	{		if (tmp->file_name != (char)NULL)		{			fprintf(db_fp, "%d %d %s %s\n", strlen(tmp->file_name), 				strlen(tmp->journal_name), tmp->file_name, 							tmp->journal_name);		}		else		{			fprintf(db_fp, "%d %d %s\n", 0, 				strlen(tmp->journal_name), tmp->journal_name);		}	}	fclose(db_fp);	unlock_journal_fd();}/* |	add an entry to the file ~/.aeeinfo (a new file being edited and  |	its associated journal file) */void add_to_journal_db(buffer)struct bufr *buffer;{	struct journal_db *top_of_list;	struct journal_db *list;	top_of_list = list = read_journal_db();	if (list == (struct journal_db *) -1)	/* could not open lock file */		return;	if (list == NULL)	{		top_of_list = list = 			(struct journal_db *) malloc(sizeof(struct journal_db));	}	else	{		/*		 |	Could check for duplicate file being edited here.		 */		while (list->next != NULL)			list = list->next;		list->next = (struct journal_db *) malloc(sizeof(struct journal_db));		list = list->next;	}	list->next = NULL;	list->journal_name = strdup(buffer->journal_file);	if (*buffer->full_name != (char)NULL)		list->file_name = strdup(buffer->full_name);	else		list->file_name = NULL;	write_db_file(top_of_list);	free_db_list(top_of_list);}/* |	remove an entry from the file ~/.aeeinfo (the editor is being  |	exited and it is time to delete the journal file, so remove the  |	reference) */void rm_journal_db_entry(buffer)struct bufr *buffer;{	struct journal_db *top_of_list;	struct journal_db *list;	struct journal_db *tmp;	int changed = FALSE;	top_of_list = list = read_journal_db();	if (list == (struct journal_db *) NULL)	/* could not open db file */	{		return;	}	if ((!strcmp(buffer->journal_file, top_of_list->journal_name)) && 		((top_of_list->file_name == NULL) || 		   ((top_of_list->file_name != NULL) && 		    (!strcmp(buffer->full_name, top_of_list->file_name)))))	{		top_of_list = list->next;		tmp = list;		changed = TRUE;	}	else	{		while (((list->next != NULL) && 		      (!((list->next->file_name != NULL) && 			    (!strcmp(buffer->full_name, list->next->file_name) 		 && !strcmp(buffer->journal_file, list->next->journal_name)))))		  && (!((list->next->file_name == NULL) && 		     !strcmp(buffer->journal_file, list->next->journal_name))))		{ 			list = list->next;		}		if (list->next != NULL)		{			tmp = list->next;			list->next = list->next->next;			changed = TRUE;		}	}	if (changed == TRUE)	{		if (top_of_list == NULL)	/* no entries for file	*/		{			unlink(db_file_name);			unlock_journal_fd();		}		else		{			write_db_file(top_of_list);		}		tmp->next = NULL;		free_db_list(tmp);	}	else		unlock_journal_fd();	if (top_of_list != NULL)		free_db_list(top_of_list);}/* |	check for the existence of a directory, and if it doesn't exist  |	create it (will recursively go through and create the directory  |	from the highest location where a directory does exist) */intcreate_dir(name)char *name;{	char *path;	struct stat buf;	int ret_val;	ret_val = stat(name, &buf);	if (ret_val == -1)	{		path = ae_dirname(name);		ret_val = create_dir(path);		if (ret_val != -1)			ret_val = mkdir(name, 0700);		free(path);	}	return(ret_val);}/* |	determine a name for a journal file and make sure no other journal  |	file of that name already exists (if one does, create a name based |	on the current date and time) */void journal_name(buffer, file_name)struct bufr *buffer;char *file_name;{	char *temp, *buff, *name;	int count;	if (*file_name == (char)NULL)		file_name = "no_file_journal";	if ((journal_dir != NULL) && (*journal_dir != (char) NULL))	{		name = ae_basename(file_name);		buffer->journal_file = temp = 			xalloc(strlen(name) + 5 + strlen(journal_dir));		strcpy(temp, journal_dir);		strcat(temp, "/");		strcat(temp, name);	}	if (buffer->journal_file == NULL)	{		buffer->journal_file = temp = xalloc(strlen(file_name) + 4);		strcpy(temp, file_name);	}	buff = ae_basename(temp);	temp = buff;	if (strlen(temp) >= (MAX_NAME_LEN - 3))	{		for (count = 1; count < (MAX_NAME_LEN - 3); count++)			temp++;	}	else	{		while(*temp != (char) NULL)			temp++;	}	copy_str(".rv", temp);}/* |	create and initialize the journal file */void open_journal_for_write(buffer)struct bufr *buffer;{	int ret_val;	int length;	int counter;	char *temp;	struct tm *time_info;	time_t t;	if (((buffer->journ_fd = 		open(buffer->journal_file, (O_CREAT | O_EXCL | O_WRONLY), 0600)) == -1) && 				(errno == EEXIST))	{		/*		 |	file already exists		 */		buffer->journal_file = realloc(buffer->journal_file, 					(strlen(buffer->journal_file) + 17));		/*		 |	find the last '/'		 */		temp = strrchr(buffer->journal_file, '/');		if (temp != NULL)			temp++;		else			temp = buffer->journal_file;		/*		 |	create a file name based on the date, e.g., 		 |	950913221206.rv		 |	Not a guarantee of uniqueness, but certainly not 		 |	likely to be repeated.		 */		t = time(NULL);		time_info = gmtime(&t);		ret_val = strftime(temp, 16, "%y%m%d%H%M%S.rv", time_info);		/*		 |	For some extra paranoia, check this one, and append 		 |	a character (a-z) to get uniqueness.		 */		counter = 'a';		length = strlen (buffer->journal_file);		while (((buffer->journ_fd = 			open(buffer->journal_file, (O_CREAT | O_EXCL | O_WRONLY), 0600)) == -1) 				&& (errno == EEXIST) && (counter <= 'z'))		{			buffer->journal_file[length] = counter;			buffer->journal_file[length + 1] = (char) NULL;			counter++;		}	}	if (buffer->journ_fd == -1)	{		wprintw(com_win, cant_opn_rcvr_fil_msg);		buffer->journalling = FALSE;		return;	}	add_to_journal_db(buffer);	if (*buffer->full_name != (char) NULL)	{		ret_val = write(buffer->journ_fd, buffer->full_name, 					strlen(buffer->full_name));	}	ret_val |= write(buffer->journ_fd, "\n", 1);	journ_info_init(buffer, buffer->first_line);}/* |	delete a journal file and delete its entry from the file ~/.aeeinfo */void remove_journal_file(buffer)struct bufr *buffer;{	close(buffer->journ_fd);	unlink(buffer->journal_file);	rm_journal_db_entry(buffer);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线亚洲一区蜜芽| 91麻豆高清视频| 亚洲午夜一区二区三区| 亚洲一二三四久久| 中文字幕日韩一区| 国产精品不卡在线观看| 日本一区二区久久| 亚洲欧美日韩中文字幕一区二区三区| 国产精品三级av在线播放| 国产欧美日韩不卡免费| 国产精品盗摄一区二区三区| 亚洲男人天堂av网| 婷婷六月综合亚洲| 久久成人免费网| 成人免费毛片片v| 日本乱人伦一区| 欧美精品久久久久久久多人混战 | 欧美一区二区啪啪| 欧美日韩国产一级片| 欧美一区二区三区四区在线观看| 日韩你懂的电影在线观看| 国产亚洲精久久久久久| 日韩理论片一区二区| 亚洲一区二区三区视频在线播放| 日本欧美一区二区三区| 国产高清不卡二三区| 91首页免费视频| 欧美伦理电影网| 国产偷国产偷精品高清尤物| 亚洲色图清纯唯美| 美腿丝袜一区二区三区| 成人av高清在线| 91麻豆精品国产91久久久久久久久 | 亚洲成年人影院| 韩国欧美一区二区| 色悠久久久久综合欧美99| 日韩欧美一区中文| 亚洲欧美偷拍另类a∨色屁股| 日本在线观看不卡视频| proumb性欧美在线观看| 欧美一区二区三区白人| 国产精品久久久久毛片软件| 蜜桃久久av一区| 色综合视频在线观看| 久久综合久久99| 首页欧美精品中文字幕| 99视频在线精品| 久久综合av免费| 天堂av在线一区| 91女厕偷拍女厕偷拍高清| 欧美精品一区二区三区在线播放 | 91欧美一区二区| 久久综合色8888| 午夜精品福利视频网站| 99精品黄色片免费大全| 久久久精品综合| 男女男精品视频网| 欧美日韩中文字幕一区二区| 国产精品久久久99| 国产激情偷乱视频一区二区三区| 欧美理论电影在线| 亚洲最新视频在线观看| 成人app在线| 日本一二三四高清不卡| 国产成人综合在线播放| 精品国产91亚洲一区二区三区婷婷| 亚洲高清视频中文字幕| 在线观看欧美黄色| 亚洲激情图片小说视频| 色婷婷综合久久久久中文| 日韩理论在线观看| 一本大道综合伊人精品热热| 亚洲欧洲国产日韩| av爱爱亚洲一区| 成人毛片在线观看| 一本一道久久a久久精品 | 色综合天天综合给合国产| 久久久国产午夜精品| 国产美女视频一区| 国产亚洲人成网站| 波多野结衣一区二区三区 | 国产精品一区二区久激情瑜伽| 91精品国产乱码久久蜜臀| 日韩成人免费看| 日韩精品一区二区三区蜜臀| 青青草97国产精品免费观看| 精品久久国产97色综合| 国产一区二区三区最好精华液| 国产日韩欧美综合在线| 成人国产视频在线观看| 亚洲乱码国产乱码精品精可以看 | 亚洲国产精品激情在线观看| 高潮精品一区videoshd| 亚洲色图都市小说| 欧美日韩成人一区| 国产精品一区二区在线播放 | 色婷婷国产精品久久包臀| 亚洲欧美另类久久久精品 | 精品黑人一区二区三区久久| 激情伊人五月天久久综合| 久久精品欧美一区二区三区不卡 | 亚洲人吸女人奶水| 欧美色老头old∨ideo| 精品一区中文字幕| 中文字幕视频一区二区三区久| 欧美亚洲国产怡红院影院| 久久国产精品露脸对白| 国产精品国产三级国产普通话蜜臀 | 日韩欧美一区二区视频| 国产精品123| 亚洲一区视频在线| 精品国产麻豆免费人成网站| 色偷偷88欧美精品久久久| 人人精品人人爱| 亚洲激情自拍视频| 久久午夜羞羞影院免费观看| 欧美优质美女网站| 国产一区二区三区日韩 | 日韩欧美激情四射| 97久久精品人人澡人人爽| 久久99蜜桃精品| 一区二区三区免费看视频| 精品国产sm最大网站| 欧美精选一区二区| a4yy欧美一区二区三区| 极品美女销魂一区二区三区| 亚洲高清不卡在线| 亚洲国产精品t66y| 欧美sm极限捆绑bd| 91麻豆精品国产| 色爱区综合激月婷婷| 国产成人超碰人人澡人人澡| 美女看a上一区| 亚洲成人一区在线| 亚洲日穴在线视频| 国产精品丝袜久久久久久app| 欧美xxxxxxxx| 国产人成一区二区三区影院| 欧美久久久影院| 欧洲另类一二三四区| 99re免费视频精品全部| 粉嫩高潮美女一区二区三区 | 国产精品国产三级国产普通话蜜臀| 欧美精品一区二区久久婷婷| 3d成人h动漫网站入口| 欧美日韩精品欧美日韩精品一| 在线观看亚洲精品| 欧美亚洲国产怡红院影院| 欧美午夜一区二区三区免费大片| 色又黄又爽网站www久久| www.欧美.com| 99视频一区二区| 色婷婷狠狠综合| 在线免费观看视频一区| 在线免费av一区| 欧美日韩一区二区三区四区五区| 日本久久电影网| 欧美日韩精品一二三区| 555www色欧美视频| 欧美一区二区三区日韩视频| 精品少妇一区二区三区在线播放 | 成人看片黄a免费看在线| 成人av在线播放网站| 一本大道av一区二区在线播放| 色噜噜狠狠色综合欧洲selulu| 一本久久a久久免费精品不卡| 日本道精品一区二区三区| 欧美三级日韩在线| 欧美一区二区视频在线观看2022| 欧美成人免费网站| 国产欧美日韩三区| 樱桃视频在线观看一区| 午夜精品影院在线观看| 久久国产视频网| 99r国产精品| 欧美另类久久久品| 久久精品日产第一区二区三区高清版 | 伊人夜夜躁av伊人久久| 亚洲成av人片在线观看无码| 久久精品72免费观看| 成人性视频免费网站| 欧美性大战久久久久久久| 精品嫩草影院久久| 亚洲六月丁香色婷婷综合久久 | 欧美一区三区四区| 国产女主播在线一区二区| 一区二区日韩av| 狠狠v欧美v日韩v亚洲ⅴ| 91蜜桃在线观看| 精品国产免费人成在线观看| 亚洲视频中文字幕| 国内久久婷婷综合| 在线亚洲免费视频| 国产精品久久久久永久免费观看| 三级欧美在线一区| bt7086福利一区国产| 26uuu成人网一区二区三区| 亚洲在线视频一区| 成人午夜av影视| 欧美成人aa大片|