当前位置: 首页>>代码示例>>C++>>正文


C++ cbits函数代码示例

本文整理汇总了C++中cbits函数的典型用法代码示例。如果您正苦于以下问题:C++ cbits函数的具体用法?C++ cbits怎么用?C++ cbits使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了cbits函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: casehcode

void
casehcode(void)
{
	tchar	c, d;
	int	k;

	lgf++;
	if (skip(1))
		return;
	do {
		c = getch();
		if (skip(1))
			break;
		d = getch();
		if (c && d && !ismot(c) && !ismot(d)) {
			if ((k = cbits(c)) >= nhcode) {
				hcode = realloc(hcode, (k+1) * sizeof *hcode);
				memset(&hcode[nhcode], 0,
					(k+1-nhcode) * sizeof *hcode);
				nhcode = k+1;
			}
			hcode[k] = cbits(d);
		}
	} while (!skip(0));
}
开发者ID:aksr,项目名称:heirloom,代码行数:25,代码来源:n5.c

示例2: n_setps

void n_setps(void )
{
	int i, j;

	i = cbits(getch());
	if (isdigit(i)) {		/* \sd or \sdd */
		i -= '0';
		if (i == 0)		/* \s0 */
			;
		else if (i <= 3 && (ch=getch()) && isdigit(cbits(ch))) {	/* \sdd */
			ch = 0;
		}
	} else if (i == '(') {		/* \s(dd */
		getch();
		getch();
	} else if (i == '+' || i == '-') {	/* \s+, \s- */
		j = cbits(getch());
		if (isdigit(j)) {		/* \s+d, \s-d */
			;
		} else if (j == '(') {		/* \s+(dd, \s-(dd */
			getch();
			getch();
		}
	}
}
开发者ID:n-t-roff,项目名称:DWB3.3,代码行数:25,代码来源:n6.c

示例3: setbra

void setbra(void)
{
	int k;
	Tchar i, *j, dwn;
	int cnt, delim;
	Tchar brabuf[NC];

	if (ismot(i = getch()))
		return;
	delim = cbits(i);
	j = brabuf + 1;
	cnt = 0;
	if (NROFF)
		dwn = (2 * t.Halfline) | MOT | VMOT;
	else
		dwn = EM | MOT | VMOT;
	while ((k = cbits(i = getch())) != delim && k != '\n' && j <= brabuf + NC - 4) {
		*j++ = i | ZBIT;
		*j++ = dwn;
		cnt++;
	}
	if (--cnt < 0)
		return;
	else if (!cnt) {
		ch = *(j - 2);
		return;
	}
	*j = 0;
	if (NROFF)
		*--j = *brabuf = (cnt * t.Halfline) | MOT | NMOT | VMOT;
	else
		*--j = *brabuf = (cnt * EM) / 2 | MOT | NMOT | VMOT;
	*--j &= ~ZBIT;
	pushback(brabuf);
}
开发者ID:00001,项目名称:plan9port,代码行数:35,代码来源:n9.c

示例4: setvline

int
setvline(void)
{
	int	i;
	tchar c, rem, ver, neg;
	int	cnt, delim, v;
	tchar vlbuf[NC];
	tchar *vlp;

	if (ismot(c = getch()))
		return (0);
	delim = cbits(c);
	dfact = lss;
	vflag++;
	i = quant(atoi(), VERT);
	dfact = 1;
	if (!i) {
		eat(delim);
		vflag = 0;
		return (0);
	}
	if ((cbits(c = getch())) == delim) {
		c = BOXRULE | chbits;	/* default box rule */
	} else
		getch();
	c |= ZBIT;
	neg = 0;
	if (i < 0) {
		i = -i;
		neg = NMOT;
	}
#ifdef NROFF
	v = 2 * t.Halfline;
#endif
#ifndef NROFF
	v = EM;
#endif
	cnt = i / v;
	rem = makem(i % v) | neg;
	ver = makem(v) | neg;
	vlp = vlbuf;
	if (!neg)
		*vlp++ = ver;
	if (absmot(rem) != 0) {
		*vlp++ = c;
		*vlp++ = rem;
	}
	while ((vlp < (vlbuf + NC - 3)) && cnt--) {
		*vlp++ = c;
		*vlp++ = ver;
	}
	*(vlp - 2) &= ~ZBIT;
	if (!neg)
		vlp--;
	*vlp++ = 0;
	pushback(vlbuf);
	vflag = 0;

	return (0);
}
开发者ID:drscream,项目名称:illumos-joyent,代码行数:60,代码来源:n9.c

示例5: casetr

void
casetr(int flag)
{
	register int i, j;
	tchar k;

	lgf++;
	skip(1);
	while ((i = cbits(k=getch())) != '\n') {
		if (ismot(k))
			return;
		if (ismot(k = getch()))
			return;
		if ((j = cbits(k)) == '\n')
			j = ' ';
		trtab[i] = j;
		if (flag & 1)
			trintab[j] = i;
		else
			trintab[j] = 0;
		if (flag & 2)
			trnttab[i] = i;
		else
			trnttab[i] = j;
	}
}
开发者ID:aksr,项目名称:heirloom,代码行数:26,代码来源:n5.c

示例6: eatblk

void
eatblk(int inblk)
{	register int cnt, i;
	tchar	ii;

	cnt = 0;
	do {
		if (ch)	{
			i = cbits(ii = ch);
			ch = 0;
		} else
			i = cbits(ii = getch0());
		if (i == ESC)
			cnt++;
		else {
			if (cnt == 1)
				switch (i) {
				case '{':  i = LEFT; break;
				case '}':  i = RIGHT; break;
				case '\n': i = 'x'; break;
				}
			cnt = 0;
		}
		if (i == LEFT) eatblk(1);
	} while ((!inblk && (i != '\n')) || (inblk && (i != RIGHT)));
	if (i == '\n') {
		nlflg++;
		tailflg = istail(ii);
	}
}
开发者ID:aksr,项目名称:heirloom,代码行数:30,代码来源:n5.c

示例7: setvline

void setvline(void)
{
	int i;
	Tchar c, rem, ver, neg;
	int cnt, delim, v;
	Tchar vlbuf[NC];
	Tchar *vlp;

	if (ismot(c = getch()))
		return;
	delim = cbits(c);
	dfact = lss;
	vflag++;
	i = quant(atoi0(), VERT);
	dfact = 1;
	if (!i) {
		eat(delim);
		vflag = 0;
		return;
	}
	if ((cbits(c = getch())) == delim) {
		c = BOXRULE | chbits;	/*default box rule*/
	} else 
		getch();
	c |= ZBIT;
	neg = 0;
	if (i < 0) {
		i = -i;
		neg = NMOT;
	}
	if (NROFF)
		v = 2 * t.Halfline;
	else {
		v = EM;
		if (v < VERT)		/* ATT EVK hack: Erik van Konijnenburg, */
			v = VERT;	/* hvlpb!evkonij, ATT NSI Hilversum, Holland */
	}

	cnt = i / v;
	rem = makem(i % v) | neg;
	ver = makem(v) | neg;
	vlp = vlbuf;
	if (!neg)
		*vlp++ = ver;
	if (absmot(rem) != 0) {
		*vlp++ = c;
		*vlp++ = rem;
	}
	while (vlp < vlbuf + NC - 3 && cnt--) {
		*vlp++ = c;
		*vlp++ = ver;
	}
	*(vlp - 2) &= ~ZBIT;
	if (!neg)
		vlp--;
	*vlp = 0;
	pushback(vlbuf);
	vflag = 0;
}
开发者ID:00001,项目名称:plan9port,代码行数:59,代码来源:n9.c

示例8: warn1

static int
warn1(void)
{
	char	name[NC];
	int	n, sign;
	size_t	i;
	tchar	c;

	switch (cbits(c = getch())) {
	case '-':
		c = getch();
		sign = -1;
		break;
	case '+':
		c = getch();
		sign = 1;
		break;
	default:
		sign = 0;
		break;
	case 0:
		return 1;
	}
	ch = c;
	n = atoi0();
	if ((i = cbits(ch)) != 0 && i != ' ' && i != '\n') {
		if (c != ch) {
			while (getach());
			errprint("illegal number, char %c", i);
			return 1;
		}
		for (i = 0; i < sizeof name - 2; i++) {
			if ((c = getach()) == 0)
				break;
			name[i] = c;
		}
		name[i] = 0;
		for (i = 0; warnnames[i].s; i++)
			if (strcmp(name, warnnames[i].s) == 0) {
				n = warnnames[i].n;
				break;
			}
		if (warnnames[i].s == NULL) {
			errprint("unknown warning category %s", name);
			return 1;
		}
	}
	switch (sign) {
	case 1:
		warn |= n;
		break;
	case -1:
		warn &= ~n;
		break;
	default:
		warn = n;
	}
	return 0;
}
开发者ID:n-t-roff,项目名称:heirloom-doctools,代码行数:59,代码来源:n9.c

示例9: eat

tchar 
eat(tchar c)
{
	register tchar i;

	while (i = getch(), !issame(i, c) &&  (cbits(i) != '\n'))
		;
	if (cbits(c) != ' ' && !issame(i, c))
		nodelim(c);
	return(i);
}
开发者ID:n-t-roff,项目名称:heirloom-doctools,代码行数:11,代码来源:n9.c

示例10: chget

int 
chget(int c)
{
	tchar i = 0;

	charf++;
	if (skip(0) || ismot(i = getch()) || cbits(i) == ' ' || cbits(i) == '\n') {
		ch = i;
		return(c);
	} else 
		return(cbits(i));
}
开发者ID:aksr,项目名称:heirloom,代码行数:12,代码来源:n5.c

示例11: n_setwd

void n_setwd(void)
{
	int base, wid;
	Tchar i;
	int	delim, emsz, k;
	int	savhp, savapts, savapts1, savfont, savfont1, savpts, savpts1;

	base = numtabp[ST].val = wid = numtabp[CT].val = 0;
	if (ismot(i = getch()))
		return;
	delim = cbits(i);
	savhp = numtabp[HP].val;
	numtabp[HP].val = 0;
	savapts = apts;
	savapts1 = apts1;
	savfont = font;
	savfont1 = font1;
	savpts = pts;
	savpts1 = pts1;
	setwdf++;
	while (cbits(i = getch()) != delim && !nlflg) {
		k = width(i);
		wid += k;
		numtabp[HP].val += k;
		if (!ismot(i)) {
			emsz = (INCH * pts + 36) / 72;
		} else if (isvmot(i)) {
			k = absmot(i);
			if (isnmot(i))
				k = -k;
			base -= k;
			emsz = 0;
		} else 
			continue;
		if (base < numtabp[SB].val)
			numtabp[SB].val = base;
		if ((k = base + emsz) > numtabp[ST].val)
			numtabp[ST].val = k;
	}
	setn1(wid, 0, (Tchar) 0);
	numtabp[HP].val = savhp;
	apts = savapts;
	apts1 = savapts1;
	font = savfont;
	font1 = savfont1;
	pts = savpts;
	pts1 = savpts1;
	mchbits();
	setwdf = 0;
}
开发者ID:n-t-roff,项目名称:DWB3.3,代码行数:50,代码来源:n6.c

示例12: copys

void copys(void)
{
	Tchar i;

	copyf++;
	if (skip())
		goto c0;
	if (cbits(i = getch()) != '"')
		wbf(i);
	while (cbits(i = getch()) != '\n')
		wbf(i);
c0:
	wbf((Tchar)0);
	copyf--;
}
开发者ID:AustenConrad,项目名称:plan-9,代码行数:15,代码来源:n3.c

示例13: n_width

int
n_width(Tchar j)
{
	int i, k;

	if (iszbit(j))
		return 0;
	if (ismot(j)) {
		if (isvmot(j))
			return(0);
		k = absmot(j);
		if (isnmot(j))
			k = -k;
		return(k);
	}
	i = cbits(j);
	if (i < ' ') {
		if (i == '\b')
			return(-widthp);
		if (i == PRESC)
			i = eschar;
		else if (i == HX)
			return(0);
	}
	if (i == ohc)
		return(0);
	i = trtab[i];
	if (i < ' ')
		return(0);
	k = t.width[i] * t.Char;
	widthp = k;
	return(k);
}
开发者ID:n-t-roff,项目名称:DWB3.3,代码行数:33,代码来源:n6.c

示例14: caselpfx

void
caselpfx(void)
{
	int	n;
	tchar	c;

	if (skip(0)) {
		free(lpfx);
		lpfx = NULL;
		nlpfx = 0;
	} else {
		for (n = 0; ; n++) {
			if (n+1 >= nlpfx) {
				nlpfx += 10;
				lpfx = realloc(lpfx, nlpfx * sizeof *lpfx);
			}
			c = getch();
			if (nlflg)
				break;
			if (n == 0 && cbits(c) == '"')
				continue;
			lpfx[n] = c;
		}
		lpfx[n] = 0;
	}
}
开发者ID:aksr,项目名称:heirloom,代码行数:26,代码来源:n5.c

示例15: gettch

Tchar gettch(void)
{
	extern int c_isalnum;
	Tchar i;
	int j;

	if (TROFF)
		return getch();

	i = getch();
	j = cbits(i);
	if (ismot(i) || fbits(i) != ulfont)
		return(i);
	if (cu) {
		if (trtab[j] == ' ') {
			setcbits(i, '_');
			setfbits(i, FT);	/* default */
		}
		return(i);
	}
	/* should test here for characters that ought to be underlined */
	/* in the old nroff, that was the 200 bit on the width! */
	/* for now, just do letters, digits and certain special chars */
	if (j <= 127) {
		if (!isalnum(j))
			setfbits(i, FT);
	} else {
		if (j < c_isalnum)
			setfbits(i, FT);
	}
	return(i);
}
开发者ID:99years,项目名称:plan9,代码行数:32,代码来源:n7.c


注:本文中的cbits函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。