mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #! /bin/sh
 | |
| 
 | |
| # (C) 1998, 2007 Free Software Foundation
 | |
| # Originally by Alexandre Oliva <oliva@lsd.ic.unicamp.br>
 | |
| 
 | |
| # This gawk/shell script 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 3, or (at your option)
 | |
| # any later version.
 | |
| 
 | |
| # Given a preprocessed C/C++ code snippet, this script will replace any
 | |
| # standard header files with an actual #include <...> directive.
 | |
| 
 | |
| # Example:
 | |
| #     # 1 "test.c"
 | |
| #     # 1 "/usr/include/stdio.h" 1 3
 | |
| #     <snip>
 | |
| #     # 1 "test.c" 2
 | |
| #     
 | |
| #     main() { printf("Hello world!\n"); }
 | |
| 
 | |
| # is replaced with
 | |
| #     # 1 "test.c"
 | |
| #     #include <stdio.h>
 | |
| #     main() { printf("Hello world!\n"); }
 | |
| 
 | |
| 
 | |
| # Header files whose pathnames contain any of the following patterns
 | |
| # are considered as standard headers: usr/include, g++-include,
 | |
| # include/g++, include/c++/<version>, gcc-lib/<anything>/include.
 | |
| 
 | |
| gawk ${EXCLUDEPATT+-vexclude="$EXCLUDEPATT"} \
 | |
|      ${INCLUDEPATT+-vinclude="$INCLUDEPATT"} '
 | |
| BEGIN { 
 | |
|   skipping = 0; 
 | |
|   cppline = "^# [0-9]+ \"[^\"]*/(usr/include|g\\+\\+-include|include/g\\+\\+|include/c\\+\\+/[^/]+|gcc-lib/[^\"]+/include|gcc/include)/([^\"]+)\"( [1-4])*$"
 | |
| }
 | |
| !skipping && $0 ~ cppline && 
 | |
| (exclude == "" || $3 !~ exclude) && (include == "" || $3 ~ include) {
 | |
|   skipping = 1;
 | |
|   printf "%s\n", "#include <" gensub(cppline, "\\2", 1, $0) ">"
 | |
|   next;
 | |
| }
 | |
| skipping && /^# [0-9]+ / && $3 == lastincluded {
 | |
|   skipping = 0;
 | |
|   next;
 | |
| }
 | |
| !skipping && /^# [0-9]+ / { 
 | |
|   lastincluded = $3;
 | |
| }
 | |
| !skipping { print }
 | |
| ' ${1+"$@"}
 |