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

📄 print.c

📁 早期freebsd实现
💻 C
字号:
/* * Copyright (c) 1987, 1993, 1994 *	The Regents of the University of California.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */#ifndef lintstatic char sccsid[] = "@(#)print.c	8.3 (Berkeley) 4/2/94";#endif /* not lint */#include <limits.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include "ctags.h"/* * getline -- *	get the line the token of interest occurred on, *	prepare it for printing. */voidgetline(){	long	saveftell;	int	c;	int	cnt;	char	*cp;	saveftell = ftell(inf);	(void)fseek(inf, lineftell, L_SET);	if (xflag)		for (cp = lbuf; GETC(!=, '\n'); *cp++ = c)			continue;	/*	 * do all processing here, so we don't step through the	 * line more than once; means you don't call this routine	 * unless you're sure you've got a keeper.	 */	else for (cnt = 0, cp = lbuf; GETC(!=, EOF) && cnt < ENDLINE; ++cnt) {		if (c == '\\') {		/* backslashes */			if (cnt > ENDLINE - 2)				break;			*cp++ = '\\'; *cp++ = '\\';			++cnt;		}		else if (c == (int)searchar) {	/* search character */			if (cnt > ENDLINE - 2)				break;			*cp++ = '\\'; *cp++ = c;			++cnt;		}		else if (c == '\n') {	/* end of keep */			*cp++ = '$';		/* can find whole line */			break;		}		else			*cp++ = c;	}	*cp = EOS;	(void)fseek(inf, saveftell, L_SET);}/* * put_entries -- *	write out the tags */voidput_entries(node)	NODE	*node;{	if (node->left)		put_entries(node->left);	if (vflag)		printf("%s %s %d\n",		    node->entry, node->file, (node->lno + 63) / 64);	else if (xflag)		printf("%-16s%4d %-16s %s\n",		    node->entry, node->lno, node->file, node->pat);	else		fprintf(outf, "%s\t%s\t%c^%s%c\n",		    node->entry, node->file, searchar, node->pat, searchar);	if (node->right)		put_entries(node->right);}

⌨️ 快捷键说明

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