1#!/usr/bin/env perl 2# $Id: bibtex-openout-test.pl 17085 2010-02-18 18:03:18Z karl $ 3# Public domain. Originally written 2010, Karl Berry. 4# Check that bibtex does not break long strings (change in 2010). 5 6# srcdir = web2c (in the source tree) 7BEGIN { chomp ($srcdir = $ENV{"srcdir"} || `cd \`dirname $0\`/.. && pwd`); } 8require "$srcdir/../tests/common-test.pl"; 9 10exit (&main ()); 11 12sub main 13{ 14 # The blg and bbl file names are based on the aux name and cannot be 15 # overridden. We can't write to the aux (source) directory, though, 16 # because that's an absolute path and openout_any=p. Therefore, copy 17 # the input aux file to our working directory. 18 &test_file_copy ("$srcdir/tests/longline.aux", "./longline.aux"); 19 20 # Run BibTeX, quit if it fails. 21 my $ret = &test_run ("./bibtex", "./longline.aux"); 22 return 1 if $ret != 0; 23 24 # There should be lines longer than 80 chars in the output. 25 # (In older versions of BibTeX, they are forcibly split, with a %.) 26 local *IN; 27 $IN = "longline.bbl"; 28 open (IN) || die "open($IN) failed: $!"; 29 while (<IN>) { 30 last if length ($_) >= 80; 31 } 32 33 # We failed if all lines were < 80. 34 my $bad = ! (length $_ >= 80); 35 return $bad; 36} 37