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

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

?? windiv.c

?? minicom2.0源代碼
?? C
字號:
/* * windiv.c	Some extra window routines for minicom, that *		I did not want to fold into window.c * *		This file is part of the minicom communications package, *		Copyright 1991-1995 Miquel van Smoorenburg. * *		This program is free software; you can redistribute it and/or *		modify it under the terms of the GNU General Public License *		as published by the Free Software Foundation; either version *		2 of the License, or (at your option) any later version. * * hgk+jl 02.98 File selection window (no longer used this way..) */#ifdef HAVE_CONFIG_H#include <config.h>#endif#include "rcsid.h"RCSID("$Id: windiv.c,v 1.2 2000/01/27 11:25:31 misiek Exp $")#include <dirent.h>#include <sys/stat.h>#include "port.h"#include "minicom.h"#include "intl.h"#ifndef max  #define max(a,b)	((a)>(b)?(a):(b))#endif#ifndef min  #define min(a,b)	((a)<(b)?(a):(b))#endif/* * Popup a window and put a text in it. */  /*VARARGS1*/WIN *mc_tell(s, a1, a2, a3, a4)char *s, *a1, *a2, *a3, *a4;{  WIN *w;  char buf[128];  if (stdwin == NIL_WIN) return(NULL);  snprintf(buf, sizeof(buf), s, a1, a2, a3, a4);  w = wopen((COLS / 2) - 2 - strlen(buf) / 2, 8,	    (COLS / 2) + 2 + strlen(buf) / 2, 10,  	     BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);  wcursor(w, CNONE);	  wlocate(w, 2, 1);  wputs(w, buf);  wredraw(w, 1);  return(w);}/* * Show an error message. *//*VARARGS1*/void werror(s, a1, a2, a3, a4)char *s, *a1, *a2, *a3, *a4;{  WIN *tellwin;    tellwin = mc_tell(s, a1, a2, a3, a4);  sleep(2);  wclose(tellwin, 1);}/* * Vertical "wselect" function. */int ask(what, s)char *what;char *s[];{  int num = 0;  int cur = 0, ocur = 0;  int f, c;  WIN *w;  int size, offs;  for(f = 0; s[f]; f++) num++;  size = 5 * num;  offs = 0;  if (strlen(what) > 2 * size + 4) {	size = strlen(what) / 2 + 2;	offs = size - 5*num;  }  w = wopen((COLS / 2) - size , 8, (COLS / 2) + 1 + size, 9,		BSINGLE, stdattr, mfcolor, mbcolor, 0, 0, 1);	  dirflush = 0;  wcursor(w, CNONE);  wlocate(w, 1 + size - (strlen(what) / 2), 0);  wputs(w, what);  for(f = 1; f < num; f++) {  	wlocate(w, 2 + offs + 10*f, 1);  	wputs(w, _(s[f]));  }  wredraw(w, 1);  while(1) {  	wlocate(w, 2 + offs + 10*cur, 1);	if (!useattr)		wprintf(w, ">%s", _(s[cur]) + 1);	else {	  	wsetattr(w, XA_REVERSE | stdattr);  		wputs(w, _(s[cur]));	}  	ocur = cur;  	wflush();  	switch(c = wxgetch()) {  		case ' ':  		case 27:  		case 3:  			dirflush = 1;  			wclose(w, 1);  			return(-1);  		case '\r':  		case '\n':  			dirflush = 1;  			wclose(w, 1);  			return(cur);  		case K_LT:  		case 'h':  			cur--;  			if (cur < 0) cur = num - 1;  			break;  		default:  			cur = (cur + 1) % num;  			break;  	}  	wlocate(w, 2 + offs + 10*ocur, 1);  	wsetattr(w, stdattr);	if (!useattr)		wputs(w, " ");	else  		wputs(w, _(s[ocur]));  }}extern int editline();/* * Popup a window and ask for input. */char *input(s, buf)char *s;char *buf;{  WIN *w;  w = wopen((COLS / 2) - 20, 11, (COLS / 2) + 20, 12,		BDOUBLE, stdattr, mfcolor, mbcolor, 1, 0, 1);  wputs(w, s);  wlocate(w, 0, 1);  wprintf(w, "> %-38.38s", buf);  wlocate(w, 2, 1);  if (wgets(w, buf, 38, 128) < 0) buf = CNULL;  wclose(w, 1);  return(buf);}#if 0 	/* these functions have been replaced *//*--- File-Select-Extension by H.G.Keller, modified by jl ------------ * *  * a bit simpler as Smoorenburg's but considerably more convinient  * than the previous case * *//* Compare two directory entries. */static int cmpdir(d1, d2)struct dirent *d1;struct dirent *d2;{  return(strcmp(d1->d_name, d2->d_name));}/* Sort the directory list. */static void sortdir( base, elements )void *base;size_t elements;{  qsort (base, elements, sizeof(struct dirent), cmpdir);}char *fselect(file_dir)char *file_dir;{  #define ESC	0x1B  #define CR	0xD  #define TRUE  (1==1)  #define FALSE	(1==0)  char* SELECTION_TITLE = _("Select File(s) to Upload");  static char fname[2048];  static char buf[160];  WIN *w;  DIR *dir;  struct dirent *dirent;  struct dirent *dirlist;  int *selflag;  int	nMaxFiles, nCnt;  int	nNrOfRows, nMaxWidth;  int	strow, nMaxRows, nOldAttr;  int   nRunFlag, hlight;  struct stat statBuf;  /*   * generate File-List   */  *fname = '\0';  if ((dir = opendir(file_dir)) == NULL) {    wbell();    return(fname);   }  nMaxFiles = 0;  while(1){  				/* count all the entries */    dirent = readdir (dir);    if (dirent)      nMaxFiles++;    else      break;  }  closedir(dir);  /*   * allocate memory for the list and fill the list   */  dirlist = (struct dirent *)malloc( sizeof(struct dirent) * (nMaxFiles+1) );  selflag = calloc(nMaxFiles+1, sizeof(int));  if( dirlist ){    dir = opendir (file_dir);		/* check is not needed again	*/    nCnt = nMaxWidth = 0;    while( (dirent = readdir( dir )) ){      /* skip dir's, special-files, sockets ... */      if((strcmp(dirent->d_name, ".") == 0 ) 	 || (strcmp( dirent->d_name, ".." ) == 0))	continue;      stat(dirent->d_name, &statBuf);      if (!S_ISREG(statBuf.st_mode))	continue;      /* get regular files */      dirlist[nCnt].d_ino    = dirent->d_ino;      dirlist[nCnt].d_off    = dirent->d_off;      dirlist[nCnt].d_reclen = dirent->d_reclen;      strcpy(dirlist[nCnt].d_name, dirent->d_name );      nMaxWidth = max(nMaxWidth, strlen(dirent->d_name));      nCnt++;    }    sortdir( dirlist, nMaxRows=nCnt );     nNrOfRows  = min( 18, nCnt );    nMaxWidth  = max(min( COLS-4, nMaxWidth ), strlen(SELECTION_TITLE)+5);    nMaxWidth /= 2; nMaxWidth++;        w = wopen( (COLS / 2)-nMaxWidth,   12-nNrOfRows/2,                (COLS / 2)+nMaxWidth-1, 12+nNrOfRows/2-((nNrOfRows+1)&0x1),		BDOUBLE, stdattr, mfcolor, mbcolor, 1, 0, 1);    wcursor(w, CNONE);	    wtitle( w, TMID, SELECTION_TITLE );    nRunFlag = TRUE;    hlight = strow = 0;    buf[0]='\0';    while( nRunFlag ){      wlocate(w, 1, 0);      for( nCnt=0; nCnt < nNrOfRows; nCnt++ ){        if( strlen(dirlist[nCnt+strow].d_name) ){          nOldAttr = w->attr;          if( nCnt == hlight )	    w->attr = COLATTR(mfcolor, mbcolor);	  else if(selflag[nCnt+strow])	    w->attr = COLATTR(mbcolor, mfcolor);          strncpy(fname,dirlist[nCnt+strow].d_name,		  2*nMaxWidth-1);          *(fname+2*nMaxWidth-1) = '\0';          wputs(w, fname );  wclreol(w);          wlocate(w, 1, 1+nCnt);          w->attr = nOldAttr;        }        wflush();      }            switch( wxgetch() ){        case K_UP:          case '+':        case 'k':        case 'K':          if( hlight )	    hlight--;          else if( strow )	    strow--;	  break;        case '-':        case K_DN:        case 'j':        case 'J':          if( hlight < nNrOfRows-1 )	    hlight++;          else if( nMaxRows - strow > nNrOfRows )	    strow++;	  break;        case ESC:             nRunFlag=FALSE;				  break;        case CR:    	  nRunFlag = FALSE;        case ' ':  /* do this also with CR.. */	  if(strlen(buf) + strlen(dirlist[strow+hlight].d_name) <	     sizeof(buf) + 2 && selflag[strow+hlight]==0) {	    strcat(buf, dirlist[strow+hlight].d_name);	    strcat(buf," ");	    selflag[strow+hlight] = 1;	  }	  if (hlight < nNrOfRows-1)	    hlight++;	  break;      }    }    free( dirlist );    wclose(w, 1);  }  else{    /*     * Memory-Allocation-Error     */  }  return( (char *)buf);}#endif#if 0/* Here I mean to work on a file selection window. *//* Maybe minicom 1.70 - MvS. */struct file {  char *name;  char isdir;};static struct filelist **list;static int nrlist;/* Compare two directory entries. */static int cmpdir(d1, d2)struct file *d1;struct file *d2;{  if (strcmp(d1->name, "..")) return(-1);  return(strcmp(d1->name, d2->name));}/* Sort the directory list. */static int sortdir(){  qsort(list, nrlist, sizeof(struct file *), cmpdir);}/* Create file list of directory. */static int makelist(){  DIR *dir;  struct dirent *d;  struct file **new;  int left = 0;  int f;  if ((dir = opendir(".")) == NULL) {	wbell();	return(-1);  }  /* Free the old list if nessecary. */  if (list) {	for(f = 0; f < nrlist; f++) free(list[f]);	free(list);	list = NULL;  }  while(d = readdir(dir)) {	/* Skip "." entry. */	if (strcmp(d->d_name, ".") == 0) continue;	/* Add this to our list. */	if (left == 0) {		/* Re-malloc. */		if ((new = malloc(nrents + 10 * sizeof(void *))) == NULL) {			closedir(dir);			return(-1);		}		if (list) {			memcpy(new, list, nrlist * sizeof(struct file **));			free(list);		}		list = new;		left = 10;	}	/* Stat this file. */#ifdef S_IFLNK	(void) lstat(d->d_name, &st);#else	(void) stat(d->d_name, &st);#endif	list[nrlist]->isdir = S_ISDIR(st.st_mode);	f = 0;	if (S_ISDIR(st.st_mode)) f = '/';#ifdef S_ISLNK	if (S_ISLNK(st.st_mode)) f = '@';#endif#ifdef S_ISFIFO	if (S_ISFIFO(st.st_mode)) f = '|';#endif#ifdef S_ISSOCK	if (S_ISSOCK(st.st_mode)) f = '=';#endif	if (S_ISREG(st.st_mode) && (st.st_mode & 0x111)) f = '*';	/* Fill in name. */	if ((list[nrlist]->name = malloc(strlen(d->d_name + 2))) == NULL) {		closedir(dir);		return(-1);	}	sprintf(list[nrlist]->name, "%s%c", d->d_name, f);	nrlist++;	left--;  }  closedir(dir);  return(0);}/* Select a file. */char *wfilesel(){  WIN *w;  char cwd[64];  /* Open one window. */  w = wopen((COLS / 2) - 20, 5, (COLS / 2) + 20, 20,		BDOUBLE, stdattr, mfcolor, mbcolor, 1, 0, 1);  getcwd(cwd, 64);  while(1) {	makelist();	sortdir();#endif /* DEVEL */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看成人av| 亚洲激情在线激情| 国产精品丝袜在线| 色哟哟国产精品免费观看| 午夜精品123| 国产精品女上位| 欧美一区欧美二区| 成人福利在线看| 天天综合日日夜夜精品| 国产精品久久午夜| 日韩一区国产二区欧美三区| 成人免费观看男女羞羞视频| 日韩精品成人一区二区三区| 欧美一级欧美一级在线播放| 色视频成人在线观看免| 成人av免费在线观看| 国产91精品入口| 国产一区二区三区久久久| 日韩国产在线一| 亚洲成人免费观看| 日本不卡的三区四区五区| 男女性色大片免费观看一区二区| 免费观看30秒视频久久| 中文字幕综合网| 欧美激情一区三区| 国产欧美精品区一区二区三区| xfplay精品久久| 久久综合狠狠综合久久综合88 | 亚洲图片激情小说| 久久精品一区二区三区av| 久久综合九色综合97婷婷| 制服丝袜av成人在线看| 成人免费视频一区二区| 成人97人人超碰人人99| 色婷婷av久久久久久久| 精品视频一区二区不卡| 欧美一区二区视频在线观看2022| 91精品国产91久久综合桃花 | 天堂蜜桃91精品| 久久成人免费电影| 国产精品91一区二区| 成人av网址在线| 精品视频一区三区九区| 日韩三级免费观看| 欧美一区二区三区免费视频 | 成人免费视频视频| 欧美夫妻性生活| 日本一区二区成人| 亚洲欧美一区二区在线观看| 亚洲电影第三页| 国产精品456露脸| 欧美日韩一区二区在线观看视频| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产91丝袜在线观看| 欧亚洲嫩模精品一区三区| 欧美v日韩v国产v| 亚洲美女淫视频| 青娱乐精品在线视频| 色综合久久久久| 久久综合99re88久久爱| 一区二区三区中文字幕在线观看| 国产精品1区2区3区在线观看| 欧洲另类一二三四区| 久久久激情视频| 免费成人小视频| 精品视频资源站| 亚洲综合免费观看高清完整版在线 | 日韩一二三四区| 亚洲成人免费观看| 日韩欧美色综合| 天堂影院一区二区| 91精品国产手机| 精品无人区卡一卡二卡三乱码免费卡| 制服.丝袜.亚洲.中文.综合| 日韩中文字幕亚洲一区二区va在线| 欧美日韩成人在线| 日韩精品免费专区| 久久精品男人的天堂| av在线不卡电影| 亚洲.国产.中文慕字在线| 欧美久久久久久久久| 黄网站免费久久| 中文字幕欧美三区| 在线观看av不卡| 精品在线一区二区三区| 国产精品美女久久久久aⅴ| 在线观看91精品国产入口| 日韩精品色哟哟| 欧美激情资源网| 在线不卡中文字幕| 国产成人亚洲综合a∨婷婷图片| 亚洲欧洲日韩女同| 欧美一卡2卡三卡4卡5免费| 国产成人综合亚洲91猫咪| 亚洲国产一区视频| 日韩av中文字幕一区二区三区| 日本一区二区三区视频视频| 欧美视频一区二| 9l国产精品久久久久麻豆| 精品一区二区三区影院在线午夜 | 久久嫩草精品久久久久| 色呦呦国产精品| 成人毛片视频在线观看| 久久99国产精品免费网站| 亚洲国产欧美日韩另类综合| 国产精品久久久久影院色老大| 欧美mv和日韩mv的网站| 91九色02白丝porn| 成人av在线资源网站| 国产精品综合二区| 国产主播一区二区三区| 美女精品一区二区| 日本午夜一本久久久综合| 有码一区二区三区| 亚洲欧美日韩国产综合在线| 国产亚洲欧美日韩在线一区| 日韩亚洲欧美在线| 欧美xxxxxxxx| 国产精品天天摸av网| 国产区在线观看成人精品| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲日本一区二区| 国产精品成人午夜| 一区二区三区四区高清精品免费观看| 国产欧美精品区一区二区三区| 日本一区二区三区在线不卡| 中文字幕在线观看一区| 亚洲欧美日韩在线播放| 一区av在线播放| 日本欧美在线看| 国产一区二区中文字幕| 粉嫩蜜臀av国产精品网站| 色综合天天综合| 欧美另类久久久品| 久久久久久久久岛国免费| 亚洲欧美一区二区久久| 亚洲成人综合视频| 久久草av在线| 99精品国产视频| 91精品国产综合久久精品麻豆| 欧美tickle裸体挠脚心vk| 国产精品久久久久影院亚瑟 | 日本最新不卡在线| 丰满放荡岳乱妇91ww| 欧美日韩成人在线| 国产欧美1区2区3区| 午夜av一区二区三区| 福利一区二区在线观看| 欧美精品日韩综合在线| 国产精品久久久久一区二区三区共| 天天av天天翘天天综合网色鬼国产| 国产麻豆成人传媒免费观看| 精品视频1区2区3区| 亚洲天堂2014| 国产精品自在在线| 日韩欧美久久久| 五月天激情综合网| 91网站最新地址| 国产精品少妇自拍| 国产乱码精品一品二品| 日韩欧美在线综合网| 亚洲成a人片综合在线| 一本色道久久综合亚洲91| 国产精品亲子乱子伦xxxx裸| 蜜桃精品视频在线| 中文字幕高清一区| 国产精品99久久久久| 久久久国际精品| 韩国精品在线观看| 精品久久久久香蕉网| 久久99精品久久久久| 久久精品一级爱片| 国产夫妻精品视频| 久久精品人人做人人综合| 成人激情午夜影院| 中文字幕中文字幕一区| av电影天堂一区二区在线观看| 欧美激情一区不卡| 97久久精品人人做人人爽50路| 一区二区视频在线看| 欧美日韩色一区| 久久99精品国产91久久来源| 久久久久久麻豆| 91视频你懂的| 久久99精品久久久久久国产越南 | 麻豆国产欧美日韩综合精品二区| 欧美一区二视频| 国产aⅴ综合色| 亚洲综合在线视频| 日韩欧美国产一二三区| 国产精品一二三四| 亚洲国产精品视频| 久久久99免费| 欧美疯狂做受xxxx富婆| 在线日韩av片| 精品一区二区在线免费观看| 国产精品美女视频| 日韩欧美一二三| 欧美无乱码久久久免费午夜一区| 精品无人码麻豆乱码1区2区|