Surrounding a chunk of code by #ifdef and #endif


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Surrounding a chunk of code by #ifdef and #endif
# 1  
Old 05-09-2007
Power Surrounding a chunk of code by #ifdef and #endif

Hello the great gurus Smilie

I'm quite new to this, so perhaps I'm asking a simple and trivial question (which is good, because you'll answer for sure Smilie)))

Anyway. I have an amount of *.c files (about 100), and what I want to do, is to surround a specific function call with #ifdef and #endif.

Example:
Code:
MyFunc(a,b,c);

Should be
Code:
#ifdef JUST_DONT
MyFunc(a,b,c);
#endif

Now how do I do that?

Thank you very very much. Smilie
# 2  
Old 05-09-2007
Code:
perl -i -ne ' if ( /MyFunc\(a,b,c\);/ ) { print "#ifdef JUST_DONT\n$_#endif\n" ; } else { print; } ' file

# 3  
Old 05-09-2007
MMmmm, thanks!!! I'll try to make this work for me Smilie

Last edited by xxxaxa; 05-09-2007 at 07:56 AM..
# 4  
Old 05-09-2007
Code:
perl -i -ne ' if ( /^MyFunc\(.*\);$/ ) { print "#ifdef JUST_DONT\n$_#endif\n" ; } else { print; } ' file

# 5  
Old 05-09-2007
Code:
awk '/^MyFunc/{
		print "#ifdef JUST_DONT"
		print
		print "#endif"} 
     !/^MyFunc/
' file

# 6  
Old 05-09-2007
I'm sorry, one last question... I want to put the #endif thing one line after this function. I.E.

Code:
status = MyFunc(a, b, c);
CheckResults(status);

|
V

Code:
#ifdef JUST_DONT
status = MyFunc(a, b, c);
CheckResults(status);
#endif

How do I "insert" this extra newline into the search string? (I'm terribly sorry for my dumb questions, but I really didn't succeed to use the online help Smilie )
# 7  
Old 05-09-2007
From ghostdog74's solution :
Code:
awk '/^MyFunc/{
		print "#ifdef JUST_DONT"
		print
		getline
		print
		print "#endif"
		next
} 
1
' file

Jean-Pierre.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep pattern only and surrounding lines

Hello, I am trying to grep search a pattern and a line before it. cat input >record1 hello1hello2hellonhello3 >record2 helloohello1hello2hello3 When I use, grep with -o option and either of -A/B/C options, I still can't see lines before or after the pattern. But the exact pattern is... (5 Replies)
Discussion started by: jacobs.smith
5 Replies

2. Shell Programming and Scripting

How to use ifdef for bash variables in csh environment?

Hi Guys, I have a a bash script and i am exporting a variable in it. I am calling a csh script from this bash script. The variable "ABC" will be visible in csh script. ks.bash export ABC = abc ./kp.csh ab.csh echo $ABC setenv ABC =cde (i want to assign this value to ABC only if... (4 Replies)
Discussion started by: vdhingra123
4 Replies

3. Shell Programming and Scripting

Possible to grep string based on surrounding strings?

I was wondering if it was possible to grep a pattern based on the surround text. For example, if i have an input file like this: titleA titleB titlex titleC titleD titlex titleE And I want to grep "title" and save the results only if it is not followed with a "titlex". My output... (14 Replies)
Discussion started by: jl487
14 Replies

4. UNIX for Advanced & Expert Users

chunk server implementation

How unix file can be put in the hash table and how to write a program in which the chunk server acts as a client and server . Can you give me a comprehensive idea of implementation. (0 Replies)
Discussion started by: kswapnadevi
0 Replies

5. Shell Programming and Scripting

if else endif using csh

I am trying to use csh to do an if statement as below if ( $tmaxf2 > $tmaxf1 ) then set tmax = $tmaxf2 else set tmax = $tmaxf1 endif Does not work and I'm getting if: Badly formed number. (0 Replies)
Discussion started by: kristinu
0 Replies

6. Shell Programming and Scripting

how to get surrounding lines of my grep search?

hi, if I grep a file, sometimes I want to see as an eg 2 lines above and below my grep results. how can this be done thanks (3 Replies)
Discussion started by: JamesByars
3 Replies

7. UNIX for Advanced & Expert Users

then: then/endif not found

Hi All I am getting this error when i try to run script from root using other user profile. Command I am running is "su - user -c command" Error envounterd "then: then/endif not found" Can any body please help me on this ... (4 Replies)
Discussion started by: asadlone
4 Replies

8. Shell Programming and Scripting

how to get surrounding lines of grep result

hi, if i have a file and i want to search for the word error using grep, i usually want to see the surrounding lines too as they contain info about the error. what would be a nice way to achieve this? thanks (6 Replies)
Discussion started by: JamesByars
6 Replies

9. Linux

how to enable #ifdef macro in the command line of make?

Linux, C++, make, macro In source code, we used some #ifdef macros. How can I enable #ifdef macro in the command line of "make" (NOTE: I do NOT want to change source code or makefile to define that macro from time to time). e.g. test.cpp: ... #ifdef TEST1 // code segment for test1 ...... (3 Replies)
Discussion started by: princelinux
3 Replies

10. UNIX for Dummies Questions & Answers

How can you show lines surrounding a search string?

I would like to be able to grep (or some such thing) a search argument and then display the line plus the preceding 3 lines of the file and the following 3 lines of the file. Any ideas? Thanks in advance! :D (3 Replies)
Discussion started by: robster
3 Replies
Login or Register to Ask a Question