Fix issues reported by new lint test. Change-Id: I077a829cb4a855cbb3b71b6eb5c66b2068be6def Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/646 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
		
			
				
	
	
		
			103 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Sed
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Sed
		
	
	
	
	
	
| #! /bin/sed -nf
 | |
| 
 | |
| # Remove C and C++ comments, by Brian Hiles (brian_hiles@rocketmail.com)
 | |
| 
 | |
| # Sped up (and bugfixed to some extent) by Paolo Bonzini (bonzini@gnu.org)
 | |
| # Works its way through the line, copying to hold space the text up to the
 | |
| # first special character (/, ", ').  The original version went exactly a
 | |
| # character at a time, hence the greater speed of this one.  But the concept
 | |
| # and especially the trick of building the line in hold space are entirely
 | |
| # merit of Brian.
 | |
| 
 | |
| # Taken from http://sed.sourceforge.net/grabbag/scripts/remccoms3.sed
 | |
| # According to http://sed.sourceforge.net/grabbag/ it's in the public domain
 | |
| # Changes:
 | |
| # 2010-11-06: Remove strings
 | |
| 
 | |
| :loop
 | |
| 
 | |
| # This line is sufficient to remove C++ comments!
 | |
| /^\/\// s,.*,,
 | |
| 
 | |
| # addition for coreboot-lint: For our purpose we don't need strings
 | |
| s,"[^"]*",,g
 | |
| 
 | |
| /^$/{
 | |
|   x
 | |
|   p
 | |
|   n
 | |
|   b loop
 | |
| }
 | |
| /^"/{
 | |
|   :double
 | |
|   /^$/{
 | |
|     x
 | |
|     p
 | |
|     n
 | |
|     /^"/b break
 | |
|     b double
 | |
|   }
 | |
| 
 | |
|   H
 | |
|   x
 | |
|   s,\n\(.[^\"]*\).*,\1,
 | |
|   x
 | |
|   s,.[^\"]*,,
 | |
| 
 | |
|   /^"/b break
 | |
|   /^\\/{
 | |
|     H
 | |
|     x
 | |
|     s,\n\(.\).*,\1,
 | |
|     x
 | |
|     s/.//
 | |
|   }
 | |
|   b double
 | |
| }
 | |
| 
 | |
| /^'/{
 | |
|   :single
 | |
|   /^$/{
 | |
|     x
 | |
|     p
 | |
|     n
 | |
|     /^'/b break
 | |
|     b single
 | |
|   }
 | |
|   H
 | |
|   x
 | |
|   s,\n\(.[^\']*\).*,\1,
 | |
|   x
 | |
|   s,.[^\']*,,
 | |
| 
 | |
|   /^'/b break
 | |
|   /^\\/{
 | |
|     H
 | |
|     x
 | |
|     s,\n\(.\).*,\1,
 | |
|     x
 | |
|     s/.//
 | |
|   }
 | |
|   b single
 | |
| }
 | |
| 
 | |
| /^\/\*/{
 | |
|   s/.//
 | |
|   :ccom
 | |
|   s,^.[^*]*,,
 | |
|   /^$/ n
 | |
|   /^\*\//{
 | |
|     s/..//
 | |
|     b loop
 | |
|   }
 | |
|   b ccom
 | |
| }
 | |
| 
 | |
| :break
 | |
| H
 | |
| x
 | |
| s,\n\(.[^"'/]*\).*,\1,
 | |
| x
 | |
| s/.[^"'/]*//
 | |
| b loop
 |