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

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

?? range.c

?? 早期freebsd實現
?? C
字號:
/*	SC	A Spreadsheet Calculator *		Range Manipulations * *              Robert Bond, 4/87 * *		$Revision: 6.8 $ */#include <stdio.h>#include <curses.h>#include <ctype.h>#include "sc.h"#ifdef BSD42#include <strings.h>#else#ifndef SYSIII#include <string.h>#endif#endifstatic struct range *rng_base;add_range(name, left, right, is_range)char *name;struct ent_ptr left, right;int is_range;{    struct range *r;    register char *p;    int len;    int minr,minc,maxr,maxc;    int minrf, mincf, maxrf, maxcf;    if (left.vp->row < right.vp->row) {	minr = left.vp->row; minrf = left.vf & FIX_ROW;	maxr = right.vp->row; maxrf = right.vf & FIX_ROW;    } else {	minr = right.vp->row; minrf = right.vf & FIX_ROW;	maxr = left.vp->row; maxrf = right.vf & FIX_ROW;    }     if (left.vp->col < right.vp->col) {	minc = left.vp->col; mincf = left.vf & FIX_COL;	maxc = right.vp->col; maxcf = right.vf & FIX_COL;    } else {	minc = right.vp->col; mincf = right.vf & FIX_COL;	maxc = left.vp->col; maxcf = left.vf & FIX_COL;    }     left.vp = lookat(minr, minc);    left.vf = minrf | mincf;    right.vp = lookat(maxr, maxc);    right.vf = maxrf | maxcf;    if (find_range(name, strlen(name), (struct ent *)0, (struct ent *)0)) {	error("Error: range name already defined");	xfree(name);	return;    }    if (strlen(name) <= 2) {	error("Invalid range name - too short");	xfree(name);	return;    }    for(p=name, len=0; *p; p++, len++)	if (!((isalpha(*p) && (len<=2)) ||	    ((isdigit(*p) || isalpha(*p) || (*p == '_')) && (len>2)))) {	    error("Invalid range name - illegal combination");	    xfree(name);	    return;        }    r = (struct range *)xmalloc((unsigned)sizeof(struct range));    r->r_name = name;    r->r_left = left;    r->r_right = right;    r->r_next = rng_base;    r->r_prev = (struct range *)0;    r->r_is_range = is_range;    if (rng_base)        rng_base->r_prev = r;    rng_base = r;}del_range(left, right)struct ent *left, *right;{    register struct range *r;    int minr,minc,maxr,maxc;    minr = left->row < right->row ? left->row : right->row;    minc = left->col < right->col ? left->col : right->col;    maxr = left->row > right->row ? left->row : right->row;    maxc = left->col > right->col ? left->col : right->col;    left = lookat(minr, minc);    right = lookat(maxr, maxc);    if (!(r = find_range((char *)0, 0, left, right))) 	return;    if (r->r_next)        r->r_next->r_prev = r->r_prev;    if (r->r_prev)        r->r_prev->r_next = r->r_next;    else	rng_base = r->r_next;    xfree((char *)(r->r_name));    xfree((char *)r);}clean_range(){    register struct range *r;    register struct range *nextr;    r = rng_base;    rng_base = (struct range *)0;    while (r) {	nextr = r->r_next;	xfree((char *)(r->r_name));	xfree((char *)r);	r = nextr;    }}/* Match on name or lmatch, rmatch */struct range *find_range(name, len, lmatch, rmatch)char *name;int len;struct ent *lmatch;struct ent *rmatch;{    struct range *r;    register char *rp, *np;    register int c;    if (name) {	for (r = rng_base; r; r = r->r_next) {	    for (np = name, rp = r->r_name, c = len;		 c && *rp && (*rp == *np);		 rp++, np++, c--) /* */;	    if (!c && !*rp)		return(r);	}	return((struct range *)0);    }    for (r = rng_base; r; r= r->r_next) {	if ((lmatch == r->r_left.vp) && (rmatch == r->r_right.vp)) 	    return(r);    }    return((struct range *)0);}sync_ranges(){    register struct range *r;    r = rng_base;    while(r) {	r->r_left.vp = lookat(r->r_left.vp->row, r->r_left.vp->col);	r->r_right.vp = lookat(r->r_right.vp->row, r->r_right.vp->col);	r = r->r_next;    }}write_range(f)FILE *f;{    register struct range *r;    for (r = rng_base; r; r = r->r_next) {	(void) fprintf(f, "define \"%s\" %s%s%s%d",			r->r_name,			r->r_left.vf & FIX_COL ? "$":"",			coltoa(r->r_left.vp->col), 			r->r_left.vf & FIX_ROW ? "$":"",			r->r_left.vp->row);	if (r->r_is_range)	    (void) fprintf(f, ":%s%s%s%d\n",			    r->r_right.vf & FIX_COL ? "$":"",			    coltoa(r->r_right.vp->col), 			    r->r_right.vf & FIX_ROW ? "$":"",			    r->r_right.vp->row);	else	    (void) fprintf(f, "\n");    }}voidlist_range(f)FILE *f;{    register struct range *r;    (void) fprintf(f, "%-30s %s\n\n","Name","Definition");    for (r = rng_base; r; r = r->r_next) {	(void) fprintf(f, "%-30s %s%s%s%d",			    r->r_name,			    r->r_left.vf & FIX_COL ? "$":"",			    coltoa(r->r_left.vp->col), 			    r->r_left.vf & FIX_ROW ? "$":"",			    r->r_left.vp->row);	if (r->r_is_range)	    (void) fprintf(f, ":%s%s%s%d\n",			    r->r_right.vf & FIX_COL ? "$":"",			    coltoa(r->r_right.vp->col), 			    r->r_right.vf & FIX_ROW ? "$":"",			    r->r_right.vp->row);	else	    (void) fprintf(f, "\n");    }}char *v_name(row, col)int row, col;{    struct ent *v;    struct range *r;    static char buf[20];    v = lookat(row, col);    if (r = find_range((char *)0, 0, v, v)) {	return(r->r_name);    } else {        (void) sprintf(buf, "%s%d", coltoa(col), row);	return(buf);    }}char *r_name(r1, c1, r2, c2)int r1, c1, r2, c2;{    struct ent *v1, *v2;    struct range *r;    static char buf[100];    v1 = lookat(r1, c1);    v2 = lookat(r2, c2);    if (r = find_range((char *)0, 0, v1, v2)) {	return(r->r_name);    } else {        (void) sprintf(buf, "%s", v_name(r1, c1));	(void) sprintf(buf+strlen(buf), ":%s", v_name(r2, c2));	return(buf);    }}are_ranges(){return (rng_base != 0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞电影一区二区| 懂色av中文字幕一区二区三区 | 精品99久久久久久| 国产欧美精品日韩区二区麻豆天美| 综合欧美一区二区三区| 免费成人在线网站| 一本高清dvd不卡在线观看| 欧美一区二区黄| 亚洲欧美日韩电影| 国产乱国产乱300精品| 欧美亚洲日本一区| 国产精品久久免费看| 奇米综合一区二区三区精品视频| 99国产精品久久久久| 亚洲精品一区二区三区香蕉| 亚洲午夜在线观看视频在线| 菠萝蜜视频在线观看一区| 欧美电影免费观看高清完整版在线观看 | 国产精品99久久久久久久女警 | 色999日韩国产欧美一区二区| 久久亚洲春色中文字幕久久久| 日韩制服丝袜av| 91丨九色丨尤物| 中文字幕的久久| 国产精品一二二区| 精品av综合导航| 美腿丝袜亚洲综合| 欧美久久一二三四区| 亚洲国产美国国产综合一区二区| 99久久精品免费看国产 | 亚洲国产精品激情在线观看| 精品一区二区三区的国产在线播放| 欧美久久一区二区| 偷拍自拍另类欧美| 欧美日韩成人在线| 亚洲永久精品国产| 欧美三级韩国三级日本一级| 亚洲精品大片www| 一本色道久久综合亚洲精品按摩| 国产精品久久久久久亚洲毛片| 国产麻豆欧美日韩一区| 久久美女艺术照精彩视频福利播放| 久久99精品久久久久久| 欧美电视剧在线看免费| 韩国女主播一区| 亚洲精品一区二区精华| 激情综合网天天干| 久久精品日产第一区二区三区高清版| 国产一区久久久| 欧美国产精品专区| 99久久久国产精品免费蜜臀| 一区二区三区在线观看国产 | 欧美三级资源在线| 亚洲第一综合色| 欧美一卡在线观看| 国产麻豆精品一区二区| 国产精品久久久久久久久动漫| 99久久99精品久久久久久| 中文字幕一区二区在线播放| 欧美亚洲另类激情小说| 日产精品久久久久久久性色| 2023国产精品| 91丨porny丨国产| 亚洲123区在线观看| 日韩精品一区二区三区视频播放| 国产精品系列在线播放| 亚洲精选免费视频| 日韩一区二区三区三四区视频在线观看 | 粉嫩av一区二区三区在线播放 | 久久久99免费| 91免费视频大全| 免费欧美在线视频| 国产精品乱码久久久久久| 欧美日韩一本到| 国产一区二区不卡老阿姨| 一区二区成人在线| 日韩欧美国产wwwww| 色综合久久久久久久久久久| 欧美96一区二区免费视频| 欧美激情在线观看视频免费| 欧美性生活久久| 国产精品综合av一区二区国产馆| 亚洲精品中文字幕乱码三区| 欧美大胆人体bbbb| 91美女蜜桃在线| 国产专区欧美精品| 伊人婷婷欧美激情| 久久综合视频网| 久久久久99精品一区| 色狠狠av一区二区三区| 国产老妇另类xxxxx| 亚洲3atv精品一区二区三区| 国产精品久久久久久久久免费丝袜 | 亚洲成av人片一区二区| 中文在线资源观看网站视频免费不卡| 欧美日韩综合一区| 成人短视频下载| 精品一区二区三区av| 丝袜诱惑亚洲看片| 一区二区三区在线免费播放| 国产日韩三级在线| 精品欧美一区二区三区精品久久| 欧美性色黄大片手机版| 成人app网站| 国产91高潮流白浆在线麻豆 | 日韩精品综合一本久道在线视频| 91成人看片片| www.日韩精品| 粉嫩一区二区三区在线看| 国产一区二区三区久久久| 日本亚洲免费观看| 五月天一区二区三区| 一区二区三区 在线观看视频| 国产精品久久久久久久久搜平片 | 在线这里只有精品| av在线不卡电影| www..com久久爱| 成人性视频免费网站| 国产成人av一区二区| 国产一区欧美二区| 国产成人精品在线看| 国产成人在线视频网址| 国产成人精品一区二| 国内精品国产成人| 国产成人精品免费一区二区| 国产精品一区二区三区四区| 91激情五月电影| 欧洲精品视频在线观看| 欧美午夜在线观看| 欧美午夜电影网| 欧美精品 国产精品| 91精品中文字幕一区二区三区| 欧美日韩国产一级二级| 在线不卡一区二区| 欧美v国产在线一区二区三区| 精品av久久707| 国产精品白丝在线| 亚洲精品少妇30p| 爽好多水快深点欧美视频| 青青青爽久久午夜综合久久午夜| 久久99精品久久久| 国产成人免费视频| 色噜噜夜夜夜综合网| 欧美男人的天堂一二区| 精品少妇一区二区三区在线视频| 精品国产一区a| 最新中文字幕一区二区三区| 亚洲最大色网站| 久草在线在线精品观看| 成人动漫一区二区在线| 欧美日韩一级片在线观看| 亚洲精品一区二区三区四区高清| 中文字幕乱码日本亚洲一区二区| 樱桃视频在线观看一区| 蜜臀久久久99精品久久久久久| 国产成人在线电影| 在线亚洲一区观看| 精品av综合导航| 亚洲免费在线电影| 久久99精品久久久久久| 色综合久久久久综合| 日韩久久久久久| 亚洲美女淫视频| 精品制服美女丁香| 在线观看一区二区视频| 精品国产乱码久久久久久闺蜜| 亚洲老妇xxxxxx| 久久成人久久爱| 在线观看一区二区精品视频| 26uuu国产日韩综合| 亚洲午夜视频在线| 懂色中文一区二区在线播放| 91精品在线观看入口| 亚洲欧美激情视频在线观看一区二区三区 | 亚洲成人动漫av| 国产成人精品三级麻豆| 91精品视频网| 亚洲乱码中文字幕综合| 精彩视频一区二区| 欧美另类videos死尸| 亚洲视频电影在线| 国产成人精品亚洲777人妖| 777午夜精品视频在线播放| 亚洲欧美日本在线| 国产成人综合亚洲网站| 欧美mv和日韩mv国产网站| 亚洲国产另类精品专区| 91丝袜国产在线播放| 国产色综合久久| 免费久久99精品国产| 欧美日韩黄色影视| 亚洲五月六月丁香激情| 99精品视频一区二区三区| 国产日韩欧美综合一区| 黑人精品欧美一区二区蜜桃| 这里是久久伊人| 首页欧美精品中文字幕| 欧美日韩免费高清一区色橹橹| 亚洲人成亚洲人成在线观看图片 | 国产一区二区三区黄视频|