⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frame.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include "grap.h"#include "y.tab.h"double	frame_ht;	/* default frame height */double	frame_wid;	/* and width */int	nsides	= 0;		/* how many sides given on this frame */char	*sides[] = {		"\tline from Frame.nw to Frame.ne",		"\tline from Frame.sw to Frame.se",		"\tline from Frame.sw to Frame.nw",		"\tline from Frame.se to Frame.ne"};char	*newsides[4] = { 0, 0, 0, 0 };	/* filled in later */void frame(void)		/* pump out frame definition, reset for next */{	int i;	fprintf(tfd, "\tframeht = %g\n", frame_ht);	fprintf(tfd, "\tframewid = %g\n", frame_wid);	fprintf(tfd, "Frame:\tbox ht frameht wid framewid with .sw at 0,0 ");	if (nsides == 0)		fprintf(tfd, "\n");	else {		fprintf(tfd, "invis\n");		for (i = 0; i < 4; i++) {			if (newsides[i]) {				fprintf(tfd, "%s\n", newsides[i]);				free(newsides[i]);				newsides[i] = 0;			} else				fprintf(tfd, "%s\n", sides[i]);		}		nsides = 0;	}}void frameht(double f)	/* set height of frame */{	frame_ht = f;}void framewid(double f)	/* set width of frame */{	frame_wid = f;}void frameside(int type, Attr *desc)	/* create and remember sides */{	int n;	char buf[100];	nsides++;	switch (type) {	case 0:		/* no side specified; kludge up all */		frameside(TOP, desc);		frameside(BOT, desc);		frameside(LEFT, desc);		frameside(RIGHT, desc);		return;	case TOP:	n = 0; break;	case BOT:	n = 1; break;	case LEFT:	n = 2; break;	case RIGHT:	n = 3; break;	}	sprintf(buf, "%s %s", sides[n], desc_str(desc));	newsides[n] = tostring(buf);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -