4 #define COMPARE(A,B) ( ! strncmp ( A , B , strlen( B ) ) )
5 #define COMPARE2(A,B) ( ! strcmp ( A , B ) )
6 #define INLINELEN (4*8192)
8 #define MAXARGS (4*8192)
11 #define DIR "tools/code_dbase"
13 char levels
[MAXDEPTH
][VARLEN
] ;
15 main( int argc
, char *argv
[] )
20 indent
= atoi( argv
[1] ) ;
22 for ( i
= 0 ; i
< MAXDEPTH
; i
++ ) strcpy( levels
[i
] , "" ) ;
23 subinfo_calls ( rout
, indent
) ;
27 subinfo_calls ( char *rout
, int indent
)
31 char inln
[INLINELEN
], inln2
[INLINELEN
] ;
33 char fname
[VARLEN
], fname2
[VARLEN
], sf
[VARLEN
] ;
34 char u0
[VARLEN
] , u1
[VARLEN
] , u2
[VARLEN
] ;
35 char v0
[VARLEN
] , v1
[VARLEN
] , v2
[VARLEN
] ;
36 char u0_upper
[VARLEN
] ;
38 if ( COMPARE( rout
, "add_msg_" ) ||
39 COMPARE( rout
, "wrf_error" ) ||
40 COMPARE( rout
, "wrf_debug" ) ||
41 COMPARE( rout
, "wrf_message" ) ||
42 COMPARE( rout
, "stencil_" ) ||
43 COMPARE( rout
, "start_timing" ) ||
44 COMPARE( rout
, "end_timing" ) ) exit(0) ;
46 sprintf(fname
, "%s/calls", DIR ) ;
47 if (( CALLERS
= fopen( fname
, "r" )) == NULL
) { fprintf(stderr
,"subinfo_calls: cannot open %s\n",fname
) ; exit(1) ; }
49 while ( fgets( inln
, INLINELEN
, CALLERS
) != NULL
) {
50 get_token_n ( inln
, " ", 0, u0
) ; remove_nl(u0
) ;
51 get_token_n ( inln
, " ", 1, u1
) ; remove_nl(u1
) ;
52 get_token_n ( inln
, " ", 2, u2
) ; remove_nl(u2
) ;
53 if ( COMPARE2( rout
, u2
) && ! COMPARE( u2
, u0
) ) {
54 sprintf( fname2
, "%s/%s", DIR, u0
) ;
55 if (( CALLER
= fopen( fname2
, "r" )) == NULL
) { fprintf(stderr
,"subinfo_calls: cannot open %s\n",fname2
) ; exit(2) ; }
56 while ( fgets( inln2
, INLINELEN
, CALLER
) != NULL
) {
57 get_token_n ( inln2
, " ", 0, v0
) ; remove_nl ( v0
) ;
58 get_token_n ( inln2
, " ", 1, v1
) ; remove_nl ( v1
) ;
59 if ( COMPARE2( v0
, "sourcefile" ) ) { strcpy ( sf
, v1
) ; break ; }
62 for ( i
= 0 ; i
< indent
* 3 ; i
++ ) {
65 switch_little_big_f( sf
) ;
67 printf("<a href=\"%s.html\">%s</a> (<a href=\"../../%s\">%s</a>)<br>\n", u0
, u0
, sf
, sf
) ;
69 strcpy( u0_upper
, u0
) ; upper_case_str( u0_upper
) ;
70 printf("<a href=\"%s.html\">%s</a> (<a href=\"../../../wrfbrowser/html_code/%s.html#%s\">%s</a>)<br>\n", u0
, u0
, sf
, u0_upper
,sf
) ;
73 if ( ! COMPARE2( u0
, levels
[ indent
+1 ] ) ) {
74 strcpy( levels
[ indent
+1 ], u0
) ;
75 subinfo_calls ( u0
, indent
+ 1 ) ;