# HG changeset patch # User Rik # Date 1530505749 25200 # Node ID d068c71d4eedd40a18159e1166fd2df5e2c451ff # Parent e5208e98ab92c4ad079b7044ee95185ca144cd5c build: Work around bug in perl 5.28.0 (bug #54202). * build-aux/inplace_edit.pl: New Perl script to replace using 'perl -i -pe' * doc/interpreter/module.mk: Replace instance of 'perl -i -pe' with call to inplace_edit.pl. diff -r e5208e98ab92 -r d068c71d4eed build-aux/inplace_edit.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build-aux/inplace_edit.pl Sun Jul 01 21:29:09 2018 -0700 @@ -0,0 +1,33 @@ +#!/usr/bin/perl -w + +################################################################################ +## File: inplace_edit.pl +## Usage: perl inplace_edit.pl 'PERL_CODE' file1 [file2] [...] +## Purpose: Run snippet of PERL_CODE on each line in a file and replace +## existing line with the results of running the code. +## This replaces perl -i -pe 'PERL_CODE' file1 [file2] ... +## due to a problem in Perl 5.28 which restricts the number of files +################################################################################ + +## Create Perl code from first argument (-e CODE) +eval "sub per_line_code { $ARGV[0]; }"; +shift @ARGV; + +## Loop over each file +foreach $fname (@ARGV) +{ + rename ($fname, "$fname.$$") or die "Rename failed:$fname:$!"; + open (my $FHI, "<", "$fname.$$") or die "Open failed:$fname.$$:$!"; + open (my $FHO, ">", "$fname") or die "Open failed:$fname:$!"; + + ## Loop over each line + while (<$FHI>) + { + per_line_code (); + print $FHO $_; + } + + close ($FHI); + close ($FHO); + unlink "$fname.$$" or die "Delete failed:$fname.$$:$!"; +} diff -r e5208e98ab92 -r d068c71d4eed doc/interpreter/module.mk --- a/doc/interpreter/module.mk Mon Jul 02 12:21:32 2018 -0700 +++ b/doc/interpreter/module.mk Sun Jul 01 21:29:09 2018 -0700 @@ -300,7 +300,7 @@ --css-ref=octave.css \ -o $(OCTAVE_HTML_TMP_DIR) `test -f '%reldir%/octave.texi' || echo '$(abs_top_srcdir)/'`%reldir%/octave.texi; \ then \ - $(PERL) -i -pe 's|(?<=): ||g' $(OCTAVE_HTML_TMP_DIR)/* && \ + $(PERL) $(srcdir)/build-aux/inplace_edit.pl 's|(?<=): ||g' $(OCTAVE_HTML_TMP_DIR)/* && \ rm -rf $(OCTAVE_HTML_DIR) && \ mv $(OCTAVE_HTML_TMP_DIR) $(OCTAVE_HTML_DIR) && \ touch $@; \