#!/bin/bash
more diff.txt | awk '
function printp(str) {
print(NR" "str)
}
BEGIN{
cur=-1
last_func_display=""
size=0
still_in_origin_function_flag=1
}
{
if($1=="diff" || $1=="@@"){
/* printp("1") */
still_in_origin_function_flag = 1
if(last_func_display==""){
/* printp("2") */
}else{
/* printp("3") */
for(new_func in found_new_funcs){
print(fn[cur]"("found_new_funcs[new_func])
}
delete found_new_funcs
size=0
last_func_display=""
}
}
if($1=="+++"){
/* printp("4") */
cur++
fn[cur]=$2;
}else if($1=="@@"){
/* printp("5") */
last_func_display=$6
}else if($0~/^\+[0-z_]+ +[0-z_]+ *\(/){
/* printp("6") */
found_new_funcs[size++]=$2
still_in_origin_function_flag=0
}else if($0~/^\+[^+]/ && still_in_origin_function_flag==1){
/* printp("7") */
found_new_funcs[size++]=last_func_display
still_in_origin_function_flag=0
}
}
END{
for(new_func in found_new_funcs){
print(fn[cur]"("found_new_funcs[new_func])
}
}
'
more diff.txt | awk '
function printp(str) {
print(NR" "str)
}
BEGIN{
cur=-1
last_func_display=""
size=0
still_in_origin_function_flag=1
}
{
if($1=="diff" || $1=="@@"){
/* printp("1") */
still_in_origin_function_flag = 1
if(last_func_display==""){
/* printp("2") */
}else{
/* printp("3") */
for(new_func in found_new_funcs){
print(fn[cur]"("found_new_funcs[new_func])
}
delete found_new_funcs
size=0
last_func_display=""
}
}
if($1=="+++"){
/* printp("4") */
cur++
fn[cur]=$2;
}else if($1=="@@"){
/* printp("5") */
last_func_display=$6
}else if($0~/^\+[0-z_]+ +[0-z_]+ *\(/){
/* printp("6") */
found_new_funcs[size++]=$2
still_in_origin_function_flag=0
}else if($0~/^\+[^+]/ && still_in_origin_function_flag==1){
/* printp("7") */
found_new_funcs[size++]=last_func_display
still_in_origin_function_flag=0
}
}
END{
for(new_func in found_new_funcs){
print(fn[cur]"("found_new_funcs[new_func])
}
}
'