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

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

?? fserve.c

?? 遠程桌面連接工具
?? C
?? 第 1 頁 / 共 5 頁
字號:
    else        fsfont->inkMetrics = pCI;    if (_fs_read_pad(conn, (char *) fsci,		     SIZEOF(fsXCharInfo) * rep.num_extents) == -1) {	fs_free_font(bfont);	xfree(fsci);	return StillWorking;    }    fsd->glyphs_to_get = 0;    fscip = (pointer) fsci;    ci = fsfont->inkMetrics;    for (i = 0; i < rep.num_extents; i++) {	memcpy(&fscilocal, fscip, SIZEOF(fsXCharInfo)); /* align it */	_fs_convert_char_info(&fscilocal, &ci->metrics);	fscip += SIZEOF(fsXCharInfo);	/* Initialize the bits field for later glyph-caching use */	if (NONZEROMETRICS(&ci->metrics))	{	    if (!haveInk &&		(ci->metrics.leftSideBearing == ci->metrics.rightSideBearing ||		 ci->metrics.ascent == -ci->metrics.descent))		pCI[i].bits = &_fs_glyph_zero_length;	    else	    {		pCI[i].bits = &_fs_glyph_undefined;		fsd->glyphs_to_get++;	    }	}	else	    pCI[i].bits = (char *)0;	ci++;    }    xfree(fsci);    /* build bitmap metrics, ImageRectMax style */    if (haveInk)    {	FontInfoRec *fi = &bfont->pfont->info;	CharInfoPtr ii;	ci = fsfont->encoding;	ii = fsfont->inkMetrics;	for (i = 0; i < rep.num_extents; i++, ci++, ii++)	{	    if (NONZEROMETRICS(&ii->metrics))	    {		ci->metrics.leftSideBearing = FONT_MIN_LEFT(fi);		ci->metrics.rightSideBearing = FONT_MAX_RIGHT(fi);		ci->metrics.ascent = FONT_MAX_ASCENT(fi);		ci->metrics.descent = FONT_MAX_DESCENT(fi);		ci->metrics.characterWidth = FONT_MAX_WIDTH(fi);		ci->metrics.attributes = ii->metrics.attributes;	    }	    else	    {		ci->metrics = ii->metrics;	    }	}    }    {	unsigned int r, c, numCols, firstCol;	firstCol = bfont->pfont->info.firstCol;	numCols = bfont->pfont->info.lastCol - firstCol + 1;	c = bfont->pfont->info.defaultCh;	fsfont->pDefault = 0;	if (bfont->pfont->info.lastRow)	{	    r = c >> 8;	    r -= bfont->pfont->info.firstRow;	    c &= 0xff;	    c -= firstCol;	    if (r < bfont->pfont->info.lastRow-bfont->pfont->info.firstRow+1 &&		c < numCols)		fsfont->pDefault = &pCI[r * numCols + c];	}	else	{	    c -= firstCol;	    if (c < numCols)		fsfont->pDefault = &pCI[c];	}    }    bfont->state = FS_GLYPHS_REPLY;    if (bfont->flags & FontLoadBitmaps) {	fs_send_query_bitmaps(fpe, blockrec);	return StillWorking;    }    return Successful;}/* * XXX should probably continue to read here if we can, but must be sure * it's our packet waiting, rather than another interspersed */static intfs_do_open_font(fpe, blockrec, readheader)    FontPathElementPtr fpe;    FSBlockDataPtr blockrec;    Bool        readheader;{    FSBlockedFontPtr bfont = (FSBlockedFontPtr) blockrec->data;    FSFpePtr    conn = (FSFpePtr) fpe->private;    int         err;    switch (bfont->state) {    case FS_OPEN_REPLY:	if (readheader) {	    /* get the next header */	    if (_fs_read(conn, (char *) &blockrec->header,			 SIZEOF(fsGenericReply)) == -1) {		fs_free_font(bfont);		err = StillWorking;		break;	    }	}	bfont->errcode = fs_read_open_font(fpe, blockrec);	if (bfont->errcode != StillWorking) {	/* already loaded, or error */	    /* if font's already loaded, massage error code */	    switch (bfont->state) {	    case FS_DONE_REPLY:		bfont->errcode = Successful;		break;	    case FS_DEPENDING:		bfont->errcode = StillWorking;		break;	    }	    err = bfont->errcode;	    break;	}	/* if more data to read or Sync, fall thru, else return */	if (!(bfont->flags & FontOpenSync)) {	    err = bfont->errcode;	    break;	} else {	    if (_fs_read(conn, (char *) &blockrec->header,			 SIZEOF(fsGenericReply)) == -1) {		fs_free_font(bfont);		err = StillWorking;		break;	    }	}	/* fall through */    case FS_INFO_REPLY:	bfont->errcode = fs_read_query_info(fpe, blockrec);	if (bfont->errcode != StillWorking) {	    err = bfont->errcode;	    break;	}	if (!(bfont->flags & FontOpenSync)) {	    err = bfont->errcode;	    break;	    /* if more data to read, fall thru, else return */	} else {	    if (_fs_read(conn, (char *) &blockrec->header,			 SIZEOF(fsGenericReply))) {		fs_free_font(bfont);		err = StillWorking;		break;	    }	}	/* fall through */    case FS_EXTENT_REPLY:	bfont->errcode = fs_read_extent_info(fpe, blockrec);	if (bfont->errcode != StillWorking) {	    err = bfont->errcode;	    break;	}	if (!(bfont->flags & FontOpenSync)) {	    err = bfont->errcode;	    break;	} else if (bfont->flags & FontLoadBitmaps) {	    if (_fs_read(conn, (char *) &blockrec->header,			 SIZEOF(fsGenericReply))) {		fs_free_font(bfont);		err = StillWorking;		break;	    }	}	/* fall through */    case FS_GLYPHS_REPLY:	if (bfont->flags & FontLoadBitmaps) {	    bfont->errcode = fs_read_glyphs(fpe, blockrec);	}	err = bfont->errcode;	break;    case FS_DEPENDING:		/* can't happen */	err = bfont->errcode;    default:	err = bfont->errcode;	break;    }    if (err != StillWorking) {	bfont->state = FS_DONE_REPLY;	/* for _fs_load_glyphs() */	while (blockrec = blockrec->depending) {	    bfont = (FSBlockedFontPtr) blockrec->data;	    bfont->errcode = err;	    bfont->state = FS_DONE_REPLY;	/* for _fs_load_glyphs() */	}    }    return err;}/* ARGSUSED */static voidfs_block_handler(data, wt, LastSelectMask)    pointer     data;    struct timeval **wt;    fd_set*      LastSelectMask;{    static struct timeval recon_timeout;    Time_t      now,                soonest;    FSFpePtr    recon;    XFD_ORSET(LastSelectMask, LastSelectMask, &_fs_fd_mask);    if (recon = awaiting_reconnect) {	now = time((Time_t *) 0);	soonest = recon->time_to_try;	while (recon = recon->next_reconnect) {	    if (recon->time_to_try < soonest)		soonest = recon->time_to_try;	}	if (soonest < now)	    soonest = now;	soonest = soonest - now;	recon_timeout.tv_sec = soonest;	recon_timeout.tv_usec = 0;	if (*wt == (struct timeval *) 0) {	    *wt = &recon_timeout;	} else if ((*wt)->tv_sec > soonest) {	    **wt = recon_timeout;	}    }}static voidfs_handle_unexpected(conn, rep)    FSFpePtr    conn;    fsGenericReply *rep;{    if (rep->type == FS_Event && rep->data1 == KeepAlive) {	fsNoopReq   req;	/* ping it back */	req.reqType = FS_Noop;	req.length = SIZEOF(fsNoopReq) >> 2;	_fs_add_req_log(conn, FS_Noop);	_fs_write(conn, (char *) &req, SIZEOF(fsNoopReq));    }    /* this should suck up unexpected replies and events */    _fs_eat_rest_of_error(conn, (fsError *) rep);}static intfs_wakeup(fpe, LastSelectMask)    FontPathElementPtr fpe;    fd_set* LastSelectMask;{    FSBlockDataPtr blockrec,                br;    FSFpePtr    conn = (FSFpePtr) fpe->private;    int         err;    fsGenericReply rep;    if (awaiting_reconnect) {	_fs_try_reconnect();    }    /* see if there's any data to be read */    /*      * Don't continue if the fd is -1 (which will be true when the     * font server terminates     */    if (conn->fs_fd == -1)	return FALSE;    if (FD_ISSET(conn->fs_fd, LastSelectMask)) {#if defined(NOTDEF) || defined(__EMX__)		/* bogus - doesn't deal with EOF very well,				 * now does it ... */	/*	 * make sure it isn't spurious - mouse events seem to trigger extra	 * problems. Under OS/2, this is especially true ...	 */	if (_fs_data_ready(conn) <= 0) {	    return FALSE;	}#endif	/* get the header */	if (_fs_read(conn, (char *) &rep, SIZEOF(fsGenericReply)) == -1)	    return FALSE;	/* find the matching block record */	for (br = (FSBlockDataPtr) conn->blocked_requests; br; br = br->next) {	    if ((CARD16)(br->sequence_number & 0xffff) ==		(CARD16)(rep.sequenceNumber - 1))		break;	}	if (!br) {	    fs_handle_unexpected(conn, &rep);	    return FALSE;	}	blockrec = br;	memcpy(&blockrec->header, &rep, SIZEOF(fsGenericReply));	/* go read it, and if we're done, wake up the appropriate client */	switch (blockrec->type) {	case FS_OPEN_FONT:	    err = fs_do_open_font(fpe, blockrec, FALSE);	    break;	case FS_LOAD_GLYPHS:	    err = fs_read_glyphs(fpe, blockrec);	    break;	case FS_LIST_FONTS:	    err = fs_read_list(fpe, blockrec);	    break;	case FS_LIST_WITH_INFO:	    err = fs_read_list_info(fpe, blockrec);	    break;	default:	    break;	}	if (err != StillWorking) {	    while (blockrec) {		ClientSignal(blockrec->client);		blockrec = blockrec->depending;	    }	}	/*	 * Xx we could loop here and eat any additional replies, but it should	 * feel more responsive for other clients if we come back later	 */    } else if (awaiting_reconnect) {	_fs_try_reconnect();    }    return FALSE;}/* * Reconnection code */void_fs_connection_died(conn)    FSFpePtr    conn;{    if (!conn->attemptReconnect)	return;    conn->attemptReconnect = FALSE;    fs_close_conn(conn);    conn->time_to_try = time((Time_t *) 0) + FS_RECONNECT_WAIT;    conn->reconnect_delay = FS_RECONNECT_WAIT;    conn->fs_fd = -1;    conn->trans_conn = NULL;    conn->next_reconnect = awaiting_reconnect;    awaiting_reconnect = conn;}static int_fs_restart_connection(conn)    FSFpePtr    conn;{    FSBlockDataPtr block;    conn->current_seq = 0;    FD_SET(conn->fs_fd, &_fs_fd_mask);    if (!fs_send_init_packets(conn))	return FALSE;    while (block = (FSBlockDataPtr) conn->blocked_requests) {	ClientSignal(block->client);	fs_abort_blockrec(conn, block);    }    return TRUE;}static void_fs_try_reconnect(){    FSFpePtr    conn,               *prev;    Time_t      now;    prev = &awaiting_reconnect;    now = time((Time_t *) 0);    while (conn = *prev) {	if (now - conn->time_to_try > 0) {	    if (_fs_reopen_server(conn) && _fs_restart_connection(conn)) {		conn->attemptReconnect = TRUE;		*prev = conn->next_reconnect;		if (prev == &awaiting_reconnect) continue;	    } else {		if (conn->reconnect_delay < FS_MAX_RECONNECT_WAIT)		    conn->reconnect_delay *= 2;		now = time((Time_t *) 0);		conn->time_to_try = now + conn->reconnect_delay;	    }	}	prev = &conn->next_reconnect;    }}/* * sends the actual request out *//* ARGSUSED */static intfs_send_open_font(client, fpe, flags, name, namelen, format, fmask, id, ppfont)    pointer     client;    FontPathElementPtr fpe;    Mask        flags;    char       *name;    int         namelen;    fsBitmapFormat format;    fsBitmapFormatMask fmask;    XID         id;    FontPtr    *ppfont;{    FontPtr     newfont;    FSBlockDataPtr blockrec = NULL;    FSBlockedFontPtr blockedfont;    FSFontDataPtr fsd;    FSFontPtr   fsfont;    FSFpePtr    conn;    fsOpenBitmapFontReq openreq;    int         err = Suspended;    XID         newid;    unsigned char buf[1024];    char       *fontname;    if (flags & FontReopen)    {	Atom nameatom, fn = None;	int i;	newfont = *ppfont;	fsd = (FSFontDataPtr)newfont->fpePrivate;	fsfont = (FSFontPtr)newfont->fontPrivate;	fpe = newfont->fpe;	format = fsd->format;	fmask = fsd->fmask;	newid = fsd->fontid;	/* This is an attempt to reopen a font.  Did the font have a	   NAME property? */	if ((nameatom = MakeAtom("FONT", 4, 0)) != None)	{	    for (i = 0; i < newfont->info.nprops; i++)		if (newfont->info.props[i].name == nameatom &&		    newfont->info.isStringProp[i])		{		    fn = newfont->info.props[i].value;		    break;		}	}	if (fn == None || !(name = NameForAtom(fn)))	{	    name = fsd->name;	    namelen = fsd->namelen;	}	else	    namelen = strlen(name);    }    conn = (FSFpePtr) fpe->private;    if (namelen > sizeof (buf) - 1)	return BadFontName;    _fs_client_access (conn, client, (flags & FontOpenSync) != 0);    _fs_client_resolution(conn);    if (!(flags & FontReopen))    {	newid = GetNewFontClientID();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情久久五月天| 精品福利一区二区三区| 精品一区二区三区在线视频| 亚洲国产精品久久久久秋霞影院| 国产精品久久二区二区| 国产精品二三区| 亚洲日本va在线观看| 樱花影视一区二区| 亚洲一区av在线| 丝袜诱惑制服诱惑色一区在线观看 | 中文字幕一区免费在线观看| 国产欧美日产一区| 成人免费在线视频| 亚洲国产成人porn| 美腿丝袜一区二区三区| 免费人成网站在线观看欧美高清| 日韩电影免费一区| 国产乱理伦片在线观看夜一区| 国产成人精品综合在线观看| 成人高清免费在线播放| 一本色道**综合亚洲精品蜜桃冫| 色美美综合视频| 欧美日韩免费不卡视频一区二区三区| 欧美日韩国产一级片| 日韩精品一区二区三区视频播放 | 99国产精品久久| 欧美日韩高清不卡| 欧美精品一区二| 亚洲国产va精品久久久不卡综合| 视频精品一区二区| 国产91精品露脸国语对白| 在线欧美日韩国产| 久久综合久久综合九色| 亚洲乱码日产精品bd| 久久国产日韩欧美精品| 91一区一区三区| 欧美v日韩v国产v| 亚洲免费观看高清完整版在线观看| 日韩av电影天堂| 97精品国产露脸对白| 欧美一三区三区四区免费在线看| 欧美激情一区在线| 日韩av一区二| av不卡免费在线观看| 欧美日韩日日夜夜| 亚洲欧洲av另类| 久久国产免费看| 欧美日韩国产片| 1000精品久久久久久久久| 黄网站免费久久| 91精品国产欧美一区二区成人| 国产精品乱人伦一区二区| 九色porny丨国产精品| 欧美性感一类影片在线播放| 国产精品三级电影| 国产精品自拍三区| 日韩美女主播在线视频一区二区三区| 亚洲精品免费看| 成人av在线网站| 国产亚洲精久久久久久| 免费在线看一区| 7777精品伊人久久久大香线蕉经典版下载 | 精品成人a区在线观看| 亚洲男人天堂av网| 97久久精品人人做人人爽50路 | 中文字幕在线一区免费| 国产美女视频91| 欧美不卡一区二区三区四区| 日本大胆欧美人术艺术动态 | 大桥未久av一区二区三区中文| 精品久久久久久久久久久久包黑料 | 欧美韩日一区二区三区四区| 久草在线在线精品观看| 日韩欧美一二三| 美女一区二区视频| 亚洲精品一线二线三线| 裸体健美xxxx欧美裸体表演| 欧美一区二区三区视频免费| 蜜臀久久久99精品久久久久久| 日韩午夜小视频| 开心九九激情九九欧美日韩精美视频电影 | 亚洲一二三级电影| 欧美三区在线观看| 免费av网站大全久久| 91精品国产综合久久久久久久久久| 亚洲高清在线视频| 欧美视频一区二区三区| 亚洲综合999| 日韩欧美国产精品| 国产原创一区二区| 国产精品拍天天在线| 色婷婷久久99综合精品jk白丝| 一区二区三区资源| 欧美日韩夫妻久久| 国产精品18久久久久久久网站| 国产精品素人视频| 欧美偷拍一区二区| 黄色成人免费在线| 国产精品久久久久久久久久久免费看 | 久久久久久久久岛国免费| 成人综合在线视频| 亚洲综合另类小说| 精品久久久久久久久久久久久久久| 国产精品亚洲第一 | 色999日韩国产欧美一区二区| **网站欧美大片在线观看| 欧日韩精品视频| 国产一区二区不卡| 亚洲影院久久精品| 色屁屁一区二区| 美日韩一级片在线观看| 亚洲精品国产视频| 精品福利av导航| 欧美亚州韩日在线看免费版国语版| 免费成人在线影院| 亚洲精品写真福利| 久久精品人人爽人人爽| 在线看日本不卡| 国产不卡一区视频| 奇米四色…亚洲| 中文乱码免费一区二区| 6080亚洲精品一区二区| 91免费观看国产| 国产成人av电影在线观看| 亚洲福利一区二区| 亚洲区小说区图片区qvod| 精品国产亚洲一区二区三区在线观看| 色av成人天堂桃色av| 波多野结衣亚洲一区| 国内精品免费**视频| 亚洲mv大片欧洲mv大片精品| 亚洲欧洲精品一区二区三区| 久久久久久电影| 精品黑人一区二区三区久久 | 日本不卡一区二区| 亚洲精品欧美激情| 国产精品久久久久久久浪潮网站| 久久蜜桃一区二区| 久久综合一区二区| 日韩视频免费直播| 欧美一区二区播放| 欧美精品自拍偷拍| 欧美日韩一区二区三区四区 | 亚洲成人黄色小说| 一区二区三区国产精华| 亚洲人成网站色在线观看| 日本一区二区电影| 中文字幕不卡在线观看| 国产午夜一区二区三区| 2024国产精品| 久久免费视频色| 欧美激情在线一区二区三区| 欧美国产日韩一二三区| 国产精品丝袜黑色高跟| 亚洲欧洲国产日本综合| 亚洲色图欧美在线| 一区二区三区在线观看视频| 亚洲午夜久久久久久久久久久| 亚洲香蕉伊在人在线观| 亚洲sss视频在线视频| 蜜臀久久99精品久久久久久9 | 伊人一区二区三区| 亚洲老妇xxxxxx| 午夜成人免费电影| 蜜臀精品久久久久久蜜臀| 精品一区在线看| 粉嫩蜜臀av国产精品网站| 99久久精品免费看| 欧美亚洲综合一区| 欧美一区二区三区视频在线| 久久色.com| 成人免费在线播放视频| 亚洲成a人片在线不卡一二三区| 婷婷开心激情综合| 韩国v欧美v亚洲v日本v| 91视视频在线观看入口直接观看www | 一区二区三区中文字幕| 午夜免费欧美电影| 国产自产高清不卡| 97久久精品人人做人人爽| 91精品国产手机| 国产三级精品在线| 一区二区在线电影| 久久国产精品区| 日本道色综合久久| 欧美成人三级在线| 亚洲少妇屁股交4| 蜜乳av一区二区| eeuss影院一区二区三区| 欧美三级日韩三级国产三级| 国产亚洲一区二区在线观看| 亚洲综合偷拍欧美一区色| 狠狠色狠狠色综合系列| 欧美性感一类影片在线播放| 国产日韩欧美精品一区| 日韩专区在线视频| 色综合色狠狠综合色| 欧美成人a视频| 五月天久久比比资源色| 成人av电影在线观看|