Package: electric-fence Version: 2.0.5-4 Severity: wishlist I have a program with a regression test suite; the tests include checks that the program's stderr output is as expected. Unfortunately, I can't test the program properly when linked with the current version of Electric Fence because it fails all the tests - the banner message causes the test harness to think the test program has failed (or at least misbehaved) !
Please find below a patch which remedies this problem. It provides a new global external variable / environment variable EF_DISABLE_BANNER. This is documented, with a warning about the risks of setting it (particularly as a variable). I changed the debian/changelog (so that it would build well and install on my system), but I didn't change the CHANGES file. Bruce: the current Debian package lists your Pixar address in the upstream tarfile. Does this still work ? I've also tried a half-remembered hams.com address. Ian. Only in electric-fence-2.0.5: build diff -ru orig/electric-fence-2.0.5/debian/changelog electric-fence-2.0.5/debian/changelog --- orig/electric-fence-2.0.5/debian/changelog Thu Jul 15 00:16:17 1999 +++ electric-fence-2.0.5/debian/changelog Thu Jul 15 00:14:35 1999 @@ -1,3 +1,9 @@ +electric-fence (2.0.5-4.0.1) unstable; urgency=low + + * Added support for EF_DISABLE_BANNER (- Ian Jackson). + + -- Ian Jackson <[EMAIL PROTECTED]> Thu, 15 Jul 1999 00:14:23 +0100 + electric-fence (2.0.5-4) unstable; urgency=low * recompiled for libc6; added an extra condition around the sys_errlist Only in electric-fence-2.0.5/debian: changelog~ Only in electric-fence-2.0.5/debian: files Only in electric-fence-2.0.5/debian: substvars Only in electric-fence-2.0.5/debian: tmp diff -ru orig/electric-fence-2.0.5/efence.3 electric-fence-2.0.5/efence.3 --- orig/electric-fence-2.0.5/efence.3 Fri Jan 20 07:12:58 1995 +++ electric-fence-2.0.5/efence.3 Thu Jul 15 00:13:43 1999 @@ -46,6 +46,12 @@ .LP .nf .ft B +extern int EF_DISABLE_BANNER; +.ft +.fi +.LP +.nf +.ft B extern int EF_ALIGNMENT; .ft .fi @@ -133,6 +139,15 @@ the shell environment, or by setting the value of global integer variables using a debugger. These switches change what bugs Electric Fence will detect, so it's important that you know how to use them. +.TP +EF_DISABLE_BANNER +This is an integer which if nonzero specifies that the usual Electric +Fence banner and copyright notice should not be printed. This is +provided for certain circumstances where the banner can be annoying +(eg, running a regression test suite that also monitors stderr). Note +that you should almost certainly not set this in your program, because +then you might leave Electric Fence linked into the production +version, which would be very bad. .TP EF_ALIGNMENT This is an integer that specifies the alignment for any memory allocations Only in electric-fence-2.0.5: efence.3~ diff -ru orig/electric-fence-2.0.5/efence.c electric-fence-2.0.5/efence.c --- orig/electric-fence-2.0.5/efence.c Fri Jan 20 05:23:39 1995 +++ electric-fence-2.0.5/efence.c Thu Jul 15 00:13:43 1999 @@ -79,6 +79,13 @@ typedef struct _Slot Slot; /* + * EF_DISABLE_BANNER is a global variable used to control whether + * Electric Fence prints its usual startup message. If the value is + * -1, it will be set from the environment default to 0 at run time. + */ +int EF_DISABLE_BANNER = -1; + +/* * EF_ALIGNMENT is a global variable used to control the default alignment * of buffers returned by malloc(), calloc(), and realloc(). It is all-caps * so that its name matches the name of the environment variable that is used @@ -191,7 +198,15 @@ char * string; Slot * slot; - EF_Print(version); + if ( EF_DISABLE_BANNER == -1 ) { + if ( (string = getenv("EF_DISABLE_BANNER")) != 0 ) + EF_DISABLE_BANNER = atoi(string); + else + EF_DISABLE_BANNER = 0; + } + + if ( EF_DISABLE_BANNER == 0 ) + EF_Print(version); /* * Import the user's environment specification of the default Only in electric-fence-2.0.5: efence.c~ Only in electric-fence-2.0.5: efence.o Only in electric-fence-2.0.5: eftest Only in electric-fence-2.0.5: libefence.so.0.0 Only in electric-fence-2.0.5: page.o Only in electric-fence-2.0.5: print.o Only in electric-fence-2.0.5: tstheap