(linenum→info "unix/slp.c:2238")

glibc/2.7/manual/xtract-typefun.awk

    1: #! /usr/local/bin/gawk -f
    2: BEGIN {
    3:   last_node="";
    4: }
    5: 
    6: /^@node/ {
    7:   name = $0;
    8:   sub(/^@node +/, "", name);
    9:   sub(/[@,].*$/, "", name);
   10:   last_node = name;
   11: }
   12: 
   13: /^@deftype(fn|vr)/ {
   14: # The string we want is $4, except that if there were brace blocks
   15: # before that point then it gets shifted to the right, since awk
   16: # doesn't know from brace blocks.
   17:   id = 4; check = 2; squig = 0;
   18:   while(check < id)
   19:   {
   20:     if($check ~ /{/) squig++;
   21:     if($check ~ /}/) squig--;
   22:     if(squig) id++;
   23:     check++;
   24:   }
   25: 
   26:   gsub(/[(){}*]/, "", $id);
   27:   printf ("* %s: (libc)%s.\n", $id, last_node);
   28: }
   29: 
   30: /^@deftypefun/ {
   31: # Likewise, except it's $3 theoretically.
   32:   id = 3; check = 2; squig = 0;
   33:   while(check < id)
   34:   {
   35:     if($check ~ /{/) squig++;
   36:     if($check ~ /}/) squig--;
   37:     if(squig) id++;
   38:     check++;
   39:   }
   40: 
   41:   gsub(/[(){}*]/, "", $id);
   42:   printf ("* %s: (libc)%s.\n", $id, last_node);
   43: }
Syntax (Markdown)