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

📄 rfc_pg.c

📁 ipsec vpn
💻 C
字号:
/* *  $Header: /projects/xelerance/MASTER/cvs-master/openswan-2/doc/utils/rfc_pg.c,v 1.1 2002/07/23 18:42:43 mcr Exp $ * * from 2-nroff.template file. * *  Remove N lines following any line that contains a form feed (^L). *  (Why can't this be done with awk or sed?) * *  OPTION: *	-n#	Number of lines to delete following each ^L (0 default). * $Log: rfc_pg.c,v $ * Revision 1.1  2002/07/23 18:42:43  mcr * 	required utility from IETF to help with formatting of drafts. * */#include <stdio.h>#define FORM_FEED	'\f'#define OPTION		"n:N:"		/* for getopt() */extern char *optarg;extern int optind;main(argc, argv)int	argc;char	*argv[];{  int	c,				/* next input char */	nlines = 0;			/* lines to delete after ^L */  void	print_and_delete();		/* print line starting with ^L,					   then delete N lines *//*********************** Process option (-nlines) ***********************/  while ((c = getopt(argc, argv, OPTION)) != EOF)    switch(c)    {      case 'n' :      case 'N' :  nlines = atoi(optarg);		  break;    }/************************* READ AND PROCESS CHARS **********************/  while ((c = getchar()) != EOF)    if (c == FORM_FEED)      print_and_delete(nlines);		/* remove N lines after this one */    else      putchar(c);			/* we write the form feed */  exit(0);}/* *  Print rest of line, then delete next N lines. */void print_and_delete(n)int  n;					/* nbr of lines to delete */{  int	c,				/* next input char */	cntr = 0;			/* count of deleted lines */  while ((c = getchar()) != '\n')	/* finish current line */    putchar(c);  putchar('\n');			/* write the last CR */  putchar(FORM_FEED);  for ( ; cntr < n; cntr++)    while ((c = getchar()) != '\n')      if (c == EOF)	exit(0);			/* exit on EOF */  putchar(c);				/* write that last CR */}

⌨️ 快捷键说明

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