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

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

?? client.c

?? 打魔獸戰網的都知道他是什么
?? C
字號:
/* * Copyright (C) 1998,1999,2000  Ross Combs (rocombs@cs.nmsu.edu) * Copyright (C) 1999  Oleg Drokin (green@ccssu.ccssu.crimea.ua) * * 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. * * 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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */#include "common/setup_before.h"#include <stdio.h>#ifdef STDC_HEADERS# include <stdlib.h>#endif#ifdef HAVE_STRING_H# include <string.h>#else# ifdef HAVE_STRINGS_H#  include <strings.h># endif#endif#include "compat/strrchr.h"#ifdef HAVE_UNISTD_H# include <unistd.h>#endif#include "compat/read.h"#ifdef HAVE_SYS_IOCTL_H# include <sys/ioctl.h>#endif#ifdef HAVE_SYS_TYPES_H# include <sys/types.h>#endif#ifdef HAVE_SYS_SOCKET_H# include <sys/socket.h>#endif#include "compat/socket.h"#include "compat/psock.h"#include "common/packet.h"#include "common/network.h"#ifdef WIN32# include <conio.h> /* for kbhit() and getch() */#endif#include "client.h"#include "common/setup_after.h"extern int client_blocksend_packet(int sock, t_packet const * packet){    unsigned int size=0;        for (;;)        switch (net_send_packet(sock,packet,&size))	{	case -1:	    return -1;	    	case 0:	    continue;	    	default:	    return 0;	}}extern int client_blockrecv_packet(int sock, t_packet * packet){    unsigned int size=0;        for (;;)        switch (net_recv_packet(sock,packet,&size))        {        case -1:            return -1;                    case 0:            continue;        default:/*	    printf("Got packet len %u/%u type 0x%04x\n",size,packet_get_size(packet),packet_get_type(packet)); */            return 0;        }}extern int client_blockrecv_raw_packet(int sock, t_packet * packet, unsigned int len){    unsigned int size=0;        packet_set_size(packet,len);    for (;;)        switch (net_recv_packet(sock,packet,&size))        {        case -1:            return -1;        case 0:            continue;        case 1:	default:	    return 0;        }}extern int client_get_termsize(int fd, unsigned int * w, unsigned int * h){    if (fd<0 || !w || !h)	return -1;        *w = 0;    *h = 0;    #ifdef HAVE_IOCTL#ifdef TIOCGWINSZ    {	struct winsize ws;		if (ioctl(fd,TIOCGWINSZ,&ws)>=0)	{	    *w = (unsigned int)ws.ws_col;	    *h = (unsigned int)ws.ws_row;	}    }#endif#endif    #ifdef HAVE_GETENV    {	char const * str;	int          val;		if (!*w && (str = getenv("COLUMNS")) && (val = atoi(str))>0)	    *w = val;	if (!*h && (str = getenv("LINES")) && (val = atoi(str))>0)	    *h = val;    }#endif        if (!*w)	*w = DEF_SCREEN_WIDTH;    if (!*h)	*h = DEF_SCREEN_HEIGHT;        return 0;}/* This routine gets keyboard input. It handles printing the prompt, cursor positioning, and   text scrolling. It unfortunatly assumes that the chars read from stdin are in ASCII. *//* visible: -1=nothing, 0=prompt only, 1=prompt and text */extern int client_get_comm(char const * prompt, char * text, unsigned int maxlen, unsigned int * curpos, int visible, int redraw, unsigned int width){    char         temp;    unsigned int addlen;    unsigned int i;    unsigned int count;    int          beg_pos;        for (count=0; count<16; count++)    {	beg_pos = 0;	if (strlen(prompt)+1>=width)	    visible = 0; /* no room to show any of the text */	else if (*curpos+strlen(prompt)+1>=width)	    beg_pos = (int)(*curpos+strlen(prompt)+1-width);		if (redraw)	{	    if (visible!=-1)		printf("\r%s",prompt);	    if (visible==1)		printf("%s",text+beg_pos);	}		fflush(stdout);#ifndef WIN32	addlen = read(fileno(stdin),&temp,1);#else	if (kbhit())	{	  temp = getch();	  addlen=1;	}	else	{	  temp = 0;	  addlen=0;	}#endif	if (addlen<1)	    return addlen;		switch (temp)	{	case '\033': /* ESC */	    return -1;	case '\r':	case '\n':	    return 1;	case '\b':   /* BS */	case '\177': /* DEL */	    if (*curpos<1) /* already empty */	    {		if (visible==1)		    printf("\a");		continue;	    }	    (*curpos)--;	    text[*curpos] = '\0';	    if (visible==1)	    {		if (beg_pos>0)		{		    beg_pos--;		    printf("\r%s%s",prompt,text+beg_pos);		}		else		  { printf("\b \b"); }	    }	    continue;	case '\024': /* ^T */	    if (*curpos<2)	    {		if (visible==1)		    printf("\a");		continue;	    }	    {		char swap;				swap = text[*curpos-1];		text[*curpos-1] = text[*curpos-2];		text[*curpos-2] = swap;				if (visible==1)		{		    printf("\b\b");		    printf("%s",&text[*curpos-2]);		}	    }	    continue;	case '\027': /* ^W */	    if (*curpos<1)	    {		if (visible==1)		    printf("\a");		continue;	    }	    {		char * t=strrchr(text,' ');		unsigned int t1=beg_pos,t2;				addlen = t ? t - text : 0;		text[addlen] = '\0';		beg_pos -= *curpos - addlen;		if (beg_pos < 0)		    beg_pos=0;		if (visible==1)		{		    if (t1 == 0)			for (i=0; i < *curpos - addlen; i++)			    printf("\b \b");		    else		    {			/* the \r is counted in the return value, but that's ok			   because the last column is always blank */			t2 = printf("\r%s%s",prompt,text+beg_pos);			if (t1 > 0 && beg_pos == 0)			{			    for (i=0; i<width-t2; i++)				printf(" ");			    for (i=0; i<width-t2; i++)				printf("\b");			}		    }		}	    }	    *curpos = addlen;	    continue;	case '\025': /* ^U */	    if (visible==1)	    {		unsigned int t2;				t2 = printf("\r%s",prompt);		for (i=0; i<width-t2; i++)		    printf(" ");		printf("\r%s",prompt);	    }	    *curpos = 0;	    text[0] = '\0';	    continue;	default:	    if (temp>0 && temp<32) /* unhandled control char */	    {		if (visible==1)		    printf("\a");		continue;	    }	    if ((*curpos+1)>=maxlen) /* too full */	    {		if (visible==1)		    printf("\a");		continue;	    }	    if (visible==1)	    {		if (beg_pos>0 || (*curpos + strlen(prompt) + 2 > width))		{		    beg_pos++;		    printf("\r%s%s",prompt,text+beg_pos);		}		printf("%c",temp);	    }	    text[*curpos] = temp;	    (*curpos)++;	    text[*curpos] = '\0';	    continue;	}    }        return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩黄色免费网站| 91精品国产入口| 国产成人免费视频网站| 日韩成人免费电影| 天使萌一区二区三区免费观看| 一区在线观看视频| 久久蜜桃一区二区| 欧美高清一级片在线观看| 国产日韩精品视频一区| 中文字幕乱码一区二区免费| 欧美高清在线一区| 一个色在线综合| 手机精品视频在线观看| 男女男精品视频网| 国产精品一区二区无线| 国产成人激情av| 91视频观看视频| 欧美午夜免费电影| 日韩精品自拍偷拍| 日韩和欧美的一区| 91网页版在线| 久久久久久亚洲综合影院红桃| 欧美亚州韩日在线看免费版国语版| 色综合久久中文字幕| 欧美调教femdomvk| 久久综合视频网| 中文字幕永久在线不卡| 亚洲黄色小视频| 久久精品国产亚洲aⅴ| 国产成人免费9x9x人网站视频| 国产成人丝袜美腿| 欧美日韩久久久一区| 精品国产亚洲在线| 亚洲欧美另类在线| 免费三级欧美电影| 99久久99久久精品国产片果冻| 欧美影视一区在线| 久久久777精品电影网影网| 日韩理论电影院| 精品在线免费观看| 日本韩国一区二区三区视频| 日韩美女在线视频| 亚洲综合一区二区精品导航| 国内精品伊人久久久久av影院| 99vv1com这只有精品| 亚洲精品在线免费播放| 亚洲黄色免费电影| 国产精品综合二区| 911精品国产一区二区在线| 欧美国产日韩在线观看| 天天影视涩香欲综合网| 91在线观看免费视频| 欧美精品一区二区三区一线天视频| 亚洲免费观看高清完整版在线| 精品一区免费av| 欧美伦理电影网| 亚洲欧美日韩中文播放| 高清国产一区二区三区| 日韩精品在线一区二区| 一区二区三区不卡视频在线观看| 国产剧情一区二区| 日韩欧美亚洲国产另类| 亚洲国产中文字幕在线视频综合| 不卡高清视频专区| 国产精品人妖ts系列视频| 美女网站在线免费欧美精品| 欧美日韩另类一区| 一区二区三区在线观看视频| av综合在线播放| 欧美韩国日本不卡| 国产精品一卡二卡在线观看| 欧美刺激脚交jootjob| 免费观看日韩电影| 日韩欧美第一区| 美腿丝袜在线亚洲一区| 欧美福利视频一区| 水野朝阳av一区二区三区| 欧美日韩色综合| 石原莉奈一区二区三区在线观看| 在线免费观看成人短视频| 亚洲精品久久久久久国产精华液| 波多野结衣中文字幕一区 | 久热成人在线视频| 7777精品伊人久久久大香线蕉经典版下载| 亚洲综合区在线| 欧美视频一区二区三区在线观看| 一区二区三区中文在线| 欧美吞精做爰啪啪高潮| 日产国产高清一区二区三区| 日韩一区二区麻豆国产| 老司机精品视频在线| 精品国产区一区| 国产福利一区二区| 亚洲欧洲美洲综合色网| 色悠久久久久综合欧美99| 亚洲午夜羞羞片| 欧美大片在线观看一区二区| 国产黑丝在线一区二区三区| 国产精品天美传媒沈樵| 91福利国产成人精品照片| 人人狠狠综合久久亚洲| 中文字幕精品一区二区精品绿巨人 | 日本一区二区免费在线| 成人性生交大合| 亚洲一区二区四区蜜桃| 91精品国产综合久久福利| 国产精品一二三四| 尤物av一区二区| 欧美精品色综合| 豆国产96在线|亚洲| 亚洲一区二区不卡免费| 精品免费日韩av| 色综合天天天天做夜夜夜夜做| 亚洲电影第三页| 国产日韩欧美高清| 欧美日韩午夜在线| 成人黄色av网站在线| 日韩vs国产vs欧美| 国产精品久久久久影院亚瑟 | 亚洲一区二区三区四区的| 欧美一级二级在线观看| caoporn国产一区二区| 男女男精品视频| 一区二区免费在线播放| 久久一区二区三区国产精品| 在线观看欧美黄色| 成人福利视频在线看| 激情久久久久久久久久久久久久久久| 亚洲视频一二区| 国产三级三级三级精品8ⅰ区| 欧美性做爰猛烈叫床潮| 成人伦理片在线| 久久99久久99小草精品免视看| 亚洲主播在线播放| 中文字幕一区二区5566日韩| 日韩欧美在线网站| 欧美日韩情趣电影| 91福利资源站| 91丨九色丨蝌蚪富婆spa| 国内精品国产成人| 免费黄网站欧美| 日产国产欧美视频一区精品| 亚洲动漫第一页| 亚洲一区中文日韩| 亚洲日本va在线观看| 亚洲欧洲色图综合| 国产欧美日韩激情| 26uuuu精品一区二区| 日韩三级在线免费观看| 欧美另类变人与禽xxxxx| 精品视频全国免费看| 欧美视频中文字幕| 色菇凉天天综合网| 色菇凉天天综合网| 欧美在线小视频| 在线免费亚洲电影| 欧美另类高清zo欧美| 88在线观看91蜜桃国自产| 欧美日韩一本到| 91精品国产综合久久久久久久久久| 欧美性一级生活| 欧美精品乱码久久久久久| 欧美日韩在线亚洲一区蜜芽| 欧美三级电影一区| 9191成人精品久久| 欧美精品一区二区在线观看| 国产视频亚洲色图| 18成人在线观看| 亚洲电影一级黄| 免费高清成人在线| 国产自产v一区二区三区c| 丰满少妇久久久久久久| 成人永久看片免费视频天堂| 91亚洲大成网污www| 欧美日韩在线播放三区四区| 欧美日产在线观看| 日韩精品一区在线| 国产日韩欧美高清在线| 尤物av一区二区| 久99久精品视频免费观看| av男人天堂一区| 精品视频在线看| 久久久久九九视频| 亚洲免费伊人电影| 免费看日韩a级影片| 成人做爰69片免费看网站| 色婷婷精品久久二区二区蜜臀av | 精品一区二区三区免费观看| 国产精品99久| 欧美专区在线观看一区| www国产精品av| 亚洲一区在线播放| 国产精品综合在线视频| 欧美性大战xxxxx久久久| 久久综合中文字幕| 亚洲精品美腿丝袜| 国产成人免费av在线| 69久久夜色精品国产69蝌蚪网| 久久久久久久久伊人| 秋霞成人午夜伦在线观看|