#!/bin/sh # # $Id: Summarize-Headers,v 0.2 1991/09/15 09:58:32 linus Exp $ # Copyright (C) 1991 Lysator Academic Computer Association. # # This file is part of the LysKOM server. # # LysKOM is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 1, or (at your option) # any later version. # # LysKOM is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with LysKOM; see the file COPYING. If not, write to # Lysator, c/o ISY, Linkoping University, S-581 83 Linkoping, SWEDEN, # or the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, # MA 02139, USA. # # Please mail bug reports to bug-lyskom@lysator.liu.se. # # Summarize a .h file # Since we write our .h files with documentation in line, they # tend to get rather long, and it gets somewhat difficult to get # a quick overview of what functions are declared in the file. # This script cuts out all the "unnecessary" information. AWK=gawk $AWK '/^[ \t]*#[ \t]*define/ { print $0 ; define = 1 ; next ; } define != 0 { if (substr($0, length(), 1) == "\\") { printf ("\n") ; next ; } else { printf ("\n") ; define = 0 ; next ; } } /^\/\*/,/\*\/$/ { printf ("\n") ; next ; } /\/\// { next ; } (define == 0) && \ (comment == 0) { print $0 ; } /\/\*/ { comment = 1 ; } /\*\// { comment = 0 ; } ' $1 | $AWK 'BEGIN { blank_lines = 0; } $1 == "" { if (blank_lines++ == 0) print $0; } $1 != "" { print $0; blank_lines = 0; } '