Tracing enhancements

libwww HTTrace function doesn't print the file name and line.
This information would be very helpful for debuging.
I offer the simple solution how to fix this problem.

in file HTUtils.h insert

#define LIBWWW_SHOW_LINES

#ifdef LIBWWW_SHOW_LINES
#define HTTRACE(args) {HTTrace("%s(%u)\t", __FILE__, __LINE__); HTTrace args;}
#else
#define HTTRACE(args) HTTrace args;
#endif /* LIBWWW_SHOW_LINES */

with very silly Perl scripts we can change LIBWWW source calls HTTrace to
HTTRACE.

go to src/ directory

Here are the necessary Perl scripts. Put them them into src directory.

---------------------------
file tr.pl
---------------------------
#! /bin/sh /usr/local/bin/perl

$flag = 1;

while(<>)
{
    if ( $flag )  
    {
        if ( s/HTTrace\(/HTTRACE\(\(/g )
        {
	    $flag = 0;
            if ( s/\)\;/\)\)\;/g ) 
            {
	        $flag = 1;
            }
	}
    }
    else
    {
        if ( s/\)\;/\)\)\;/g )
	{
	    $flag = 1;
	}
    }
    print $_;
}

---------------------------
file trmain.pl
---------------------------
#! /bin/sh /usr/local/bin/perl

@files = <*.c>;

foreach $i (@files)
{
    system "cat $i | tr.pl > ../new/$i";
}

------------------------

chmod +x tr.pl
chmod +x trmain.pl

mkdir ../old
cp *.c ../old
mkdir ../new
trmain.pl

The last command will change LIBWWW C Source files and put the output to 
../new directory

cp ../new/*.c ./
make
make install

Now libwww will print file name and line numbers when tracing is on
if you undefine LIBWWW_SHOW_LINES in HTUtils.h everything will work as before.

Mikhail Grouchinski


____________________________________________________________________
Get free e-mail and a permanent address at http://www.netaddress.com/?N=1

Received on Thursday, 18 February 1999 16:38:21 UTC