Don't fall off the end of perl functions
authorAndrew Dunstan <andrew@dunslane.net>
Sun, 27 May 2018 13:08:42 +0000 (09:08 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Sun, 27 May 2018 13:08:42 +0000 (09:08 -0400)
This complies with the perlcritic policy
Subroutines::RequireFinalReturn, which is a severity 4 policy. Since we
only currently check at severity level 5, the policy is raised to that
level until we move to level 4 or lower, so that any new infringements
will be caught.

A small cosmetic piece of tidying of the pgperlcritic script is
included.

Mike Blackwell

Discussion: https://postgr.es/m/CAESHdJpfFm_9wQnQ3koY3c91FoRQsO-fh02za9R3OEMndOn84A@mail.gmail.com

47 files changed:
contrib/bloom/t/001_wal.pl
contrib/intarray/bench/create_test.pl
src/backend/catalog/Catalog.pm
src/backend/catalog/genbki.pl
src/backend/parser/check_keywords.pl
src/backend/utils/mb/Unicode/convutils.pm
src/backend/utils/sort/gen_qsort_tuple.pl
src/bin/pg_archivecleanup/t/010_pg_archivecleanup.pl
src/bin/pg_rewind/RewindTest.pm
src/bin/pg_rewind/t/001_basic.pl
src/bin/pg_rewind/t/002_databases.pl
src/bin/pg_rewind/t/003_extrafiles.pl
src/bin/pg_rewind/t/004_pg_xlog_symlink.pl
src/bin/pgbench/t/001_pgbench_with_server.pl
src/bin/pgbench/t/002_pgbench_no_server.pl
src/include/catalog/reformat_dat_file.pl
src/interfaces/ecpg/preproc/parse.pl
src/pl/plperl/plc_perlboot.pl
src/pl/plperl/text2macro.pl
src/test/authentication/t/001_password.pl
src/test/authentication/t/002_saslprep.pl
src/test/kerberos/t/001_auth.pl
src/test/ldap/t/001_auth.pl
src/test/perl/PostgresNode.pm
src/test/perl/SimpleTee.pm
src/test/perl/TestLib.pm
src/test/recovery/t/001_stream_rep.pl
src/test/recovery/t/003_recovery_targets.pl
src/test/recovery/t/007_sync_rep.pl
src/test/recovery/t/009_twophase.pl
src/test/ssl/ServerSetup.pm
src/tools/copyright.pl
src/tools/git_changelog
src/tools/msvc/Install.pm
src/tools/msvc/MSBuildProject.pm
src/tools/msvc/Mkvcbuild.pm
src/tools/msvc/Project.pm
src/tools/msvc/Solution.pm
src/tools/msvc/VCBuildProject.pm
src/tools/msvc/builddoc.pl
src/tools/msvc/gendef.pl
src/tools/msvc/vcregress.pl
src/tools/pginclude/pgcheckdefines
src/tools/pgindent/pgindent
src/tools/pgperlcritic/perlcriticrc
src/tools/pgperlcritic/pgperlcritic
src/tools/version_stamp.pl

index 55f2167d7fac8c066538d03f61de26a2e4eadd84..0f2628b5575f3d4530cbee9fbc0f785940435e32 100644 (file)
@@ -36,6 +36,7 @@ SELECT * FROM tst WHERE i = 7 AND t = 'e';
    my $standby_result = $node_standby->safe_psql("postgres", $queries);
 
    is($master_result, $standby_result, "$test_name: query result matches");
+   return;
 }
 
 # Initialize master node
index f3262df05b25aa1b2ce4a41d6a0aad766a8a560c..d2c678bb53c3fcb257aa6e24898a4cd44195584d 100755 (executable)
@@ -83,4 +83,5 @@ sub copytable
    while (<$fff>) { print; }
    close $fff;
    print "\\.\n";
+   return;
 }
index 95bf619c9124028209fbe721066367f6165a81f6..ae5b499b6adca3029b61b01be3027e7f06749166 100644 (file)
@@ -367,6 +367,7 @@ sub RenameTempFile
    {
        rename($temp_name, $final_name) || die "rename: $temp_name: $!";
    }
+   return;
 }
 
 # Find a symbol defined in a particular header file and extract the value.
index ebdc919414fbd6c7e158940cfbbe27430e915842..9be51d28b038d25037639b300a4ab63f661505df 100644 (file)
@@ -649,6 +649,7 @@ sub gen_pg_attribute
            }
        }
    }
+   return;
 }
 
 # Given $pgattr_schema (the pg_attribute schema for a catalog sufficient for
@@ -706,6 +707,7 @@ sub morph_row_for_pgattr
    }
 
    Catalog::AddDefaultValues($row, $pgattr_schema, 'pg_attribute');
+   return;
 }
 
 # Write an entry to postgres.bki.
@@ -744,6 +746,7 @@ sub print_bki_insert
        push @bki_values, $bki_value;
    }
    printf $bki "insert %s( %s )\n", $oid, join(' ', @bki_values);
+   return;
 }
 
 # Given a row reference, modify it so that it becomes a valid entry for
@@ -786,6 +789,7 @@ sub morph_row_for_schemapg
        # Only the fixed-size portions of the descriptors are ever used.
        delete $row->{$attname} if $column->{is_varlen};
    }
+   return;
 }
 
 # Perform OID lookups on an array of OID names.
index ad41e134ac2e5d8c23889f3b0e834ebc625479bf..718441c2151431a0735c89506e204f7efa4c5357 100644 (file)
@@ -18,6 +18,7 @@ sub error
 {
    print STDERR @_;
    $errors = 1;
+   return;
 }
 
 $, = ' ';     # set output field separator
index 69ec099f29e9019e7be4b5dc71d273b1662cf336..103bd0264e5448f49282d81e653bd32739ab122c 100644 (file)
@@ -99,6 +99,7 @@ sub print_conversion_tables
        $charset);
    print_conversion_tables_direction($this_script, $csname, TO_UNICODE,
        $charset);
+   return;
 }
 
 #############################################################################
@@ -160,6 +161,7 @@ sub print_conversion_tables_direction
    }
 
    close($out);
+   return;
 }
 
 sub print_from_utf8_combined_map
@@ -194,6 +196,7 @@ sub print_from_utf8_combined_map
    }
    print $out "\t/* $last_comment */" if ($verbose && $last_comment ne "");
    print $out "\n};\n";
+   return;
 }
 
 sub print_to_utf8_combined_map
@@ -230,6 +233,7 @@ sub print_to_utf8_combined_map
    }
    print $out "\t/* $last_comment */" if ($verbose && $last_comment ne "");
    print $out "\n};\n";
+   return;
 }
 
 #######################################################################
@@ -625,6 +629,7 @@ sub print_radix_table
    if ($off != $tblsize) { die "table size didn't match!"; }
 
    print $out "};\n";
+   return;
 }
 
 ###
index 6186d0a5babda42aea2b72efb2fb50e890812aa0..b6b2ffa7d0be161a0b474034dd247c6bd111ddb3 100644 (file)
@@ -130,6 +130,8 @@ swapfunc(SortTuple *a, SortTuple *b, size_t n)
 #define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n)
 
 EOM
+
+   return;
 }
 
 sub emit_qsort_implementation
@@ -263,4 +265,6 @@ loop:
    }
 }
 EOM
+
+   return;
 }
index c84674c00ac24863842e63d64ad36e6af7e329cc..22782d304207be3c66d191d02d4b4d6a7b2a2742 100644 (file)
@@ -21,6 +21,7 @@ sub create_files
        print $file 'CONTENT';
        close $file;
    }
+   return;
 }
 
 create_files();
@@ -89,6 +90,7 @@ sub run_check
        "$test_name: newer WAL file was not cleaned up");
    ok(-f "$tempdir/unrelated_file",
        "$test_name: unrelated file was not cleaned up");
+   return;
 }
 
 run_check('',                 'pg_archivecleanup');
index 52531bba7a3e5f66df55ca817da1c3492735fbf9..60b54119e7a743165820c66404bab103d17185c1 100644 (file)
@@ -71,6 +71,7 @@ sub master_psql
 
    system_or_bail 'psql', '-q', '--no-psqlrc', '-d',
      $node_master->connstr('postgres'), '-c', "$cmd";
+   return;
 }
 
 sub standby_psql
@@ -79,6 +80,7 @@ sub standby_psql
 
    system_or_bail 'psql', '-q', '--no-psqlrc', '-d',
      $node_standby->connstr('postgres'), '-c', "$cmd";
+   return;
 }
 
 # Run a query against the master, and check that the output matches what's
@@ -112,6 +114,7 @@ sub check_query
        $stdout =~ s/\r//g if $Config{osname} eq 'msys';
        is($stdout, $expected_stdout, "$test_name: query result matches");
    }
+   return;
 }
 
 sub setup_cluster
@@ -130,6 +133,7 @@ sub setup_cluster
        'postgresql.conf', qq(
 wal_keep_segments = 20
 ));
+   return;
 }
 
 sub start_master
@@ -138,6 +142,8 @@ sub start_master
 
    #### Now run the test-specific parts to initialize the master before setting
    # up standby
+
+   return;
 }
 
 sub create_standby
@@ -162,6 +168,8 @@ recovery_target_timeline='latest'
 
    # The standby may have WAL to apply before it matches the primary.  That
    # is fine, because no test examines the standby before promotion.
+
+   return;
 }
 
 sub promote_standby
@@ -183,6 +191,8 @@ sub promote_standby
    # after promotion so quickly that when pg_rewind runs, the standby has not
    # performed a checkpoint after promotion yet.
    standby_psql("checkpoint");
+
+   return;
 }
 
 sub run_pg_rewind
@@ -266,6 +276,8 @@ recovery_target_timeline='latest'
    $node_master->start;
 
    #### Now run the test-specific parts to check the result
+
+   return;
 }
 
 # Clean up after the test. Stop both servers, if they're still running.
@@ -273,6 +285,7 @@ sub clean_rewind_test
 {
    $node_master->teardown_node  if defined $node_master;
    $node_standby->teardown_node if defined $node_standby;
+   return;
 }
 
 1;
index 87bb71e8ed3d165b7adddfedb7be66328a9418e0..53dbf45be29d394e53e4bd78710e72f70f257058 100644 (file)
@@ -97,6 +97,7 @@ in master, before promotion
    }
 
    RewindTest::clean_rewind_test();
+   return;
 }
 
 # Run the test in both modes
index bef0e173dcaec6729bc8f1797d4bb534ef0e90c5..2c9e427831139ac4cc7235298fcb76965bb80bd2 100644 (file)
@@ -53,6 +53,7 @@ template1
    }
 
    RewindTest::clean_rewind_test();
+   return;
 }
 
 # Run the test in both modes.
index 8b469cdae8c7b1cab2bf0f4d1bf544951e472ebc..496f38c4570c52eef1d5db41d86f420cab18b7fb 100644 (file)
@@ -81,6 +81,7 @@ sub run_test
        "file lists match");
 
    RewindTest::clean_rewind_test();
+   return;
 }
 
 # Run the test in both modes.
index feadaa6a0ff6e33f837508813d45c29f2a6120ca..280eceb9929f41791453c47b095921d9bd96e96c 100644 (file)
@@ -72,6 +72,7 @@ in standby, after promotion
        'table content');
 
    RewindTest::clean_rewind_test();
+   return;
 }
 
 # Run the test in both modes
index 00fb04fe1ef9799623022be390b9f324534cc4bf..b9308f7367b1ed338534edf978fc3a0b7d2793f6 100644 (file)
@@ -42,6 +42,8 @@ sub pgbench
 
    # cleanup?
    #unlink @filenames or die "cannot unlink files (@filenames): $!";
+
+   return;
 }
 
 # Test concurrent insertion into table with UNIQUE oid column.  DDL expects
@@ -817,6 +819,7 @@ sub check_pgbench_logs
        };
    }
    ok(unlink(@logs), "remove log files");
+   return;
 }
 
 my $bdir = $node->basedir;
index a9e067ba4e49c0b374a7a451799e7c8668362e6d..aa47710ace5a3cf9801fec2da4923c2e1c35319e 100644 (file)
@@ -24,6 +24,7 @@ sub pgbench
    print STDERR "opts=$opts, stat=$stat, out=$out, err=$err, name=$name";
    command_checks_all([ 'pgbench', split(/\s+/, $opts) ],
        $stat, $out, $err, $name);
+   return;
 }
 
 # invoke pgbench with scripts
@@ -48,6 +49,7 @@ sub pgbench_scripts
        }
    }
    command_checks_all(\@cmd, $stat, $out, $err, $name);
+   return;
 }
 
 #
index 7f6dc6e4c5b2a9eff0b14be69ad2fee5ff19d4b9..687aca0b16484c31784a1f36581e0df918087492 100755 (executable)
@@ -207,6 +207,7 @@ sub strip_default_values
    {
        delete $row->{pronargs} if defined $row->{proargtypes};
    }
+   return;
 }
 
 # Format the individual elements of a Perl hash into a valid string
index 983c3a3d89f92322690d5d07ba97ac241434d3c7..b20383ab17a2228cad71dfa4eda1b3eb0440fb4d 100644 (file)
@@ -415,6 +415,7 @@ sub main
            }
        }
    }
+   return;
 }
 
 
@@ -431,6 +432,7 @@ sub include_file
        add_to_buffer($buffer, $_);
    }
    close($fh);
+   return;
 }
 
 sub include_addon
@@ -472,6 +474,7 @@ sub include_addon
 sub add_to_buffer
 {
    push(@{ $buff{ $_[0] } }, "$_[1]\n");
+   return;
 }
 
 sub dump_buffer
@@ -480,6 +483,7 @@ sub dump_buffer
    print '/* ', $buffer, ' */', "\n";
    my $ref = $buff{$buffer};
    print @$ref;
+   return;
 }
 
 sub dump_fields
@@ -582,6 +586,7 @@ sub dump_fields
            add_to_buffer('rules', ' { $$ = NULL; }');
        }
    }
+   return;
 }
 
 
@@ -673,4 +678,5 @@ sub preload_addons
            push(@{ $x->{lines} }, @code);
        }
    }
+   return;
 }
index 05334a662d3317fb2c3dbd9b91acead3c58ba00d..f41aa80e80b062943d155494c32f5ff24dd1ec04 100644 (file)
@@ -62,6 +62,7 @@ sub ::encode_array_constructor
        (my $msg = shift) =~ s/\(eval \d+\) //g;
        chomp $msg;
        &::elog(&::WARNING, $msg);
+       return;
    }
    $SIG{__WARN__} = \&plperl_warn;
 
index 27c6ef7e4275c37f10fc3a8218b054d0a22a6865..52fcbe1be1c8261d9f1eda7020d7b7d36535c697 100644 (file)
@@ -99,4 +99,5 @@ sub selftest
    warn "Test string: $string\n";
    warn "Result     : $result";
    die "Failed!" if $result ne "$string\n";
+   return;
 }
index c8dc6606be968511fcb820bfc49b8c0d9aba65f7..3a3b0eb7e80c1923699b943202f46646ea7ef15d 100644 (file)
@@ -31,6 +31,7 @@ sub reset_pg_hba
    unlink($node->data_dir . '/pg_hba.conf');
    $node->append_conf('pg_hba.conf', "local all all $hba_method");
    $node->reload;
+   return;
 }
 
 # Test access for a single role, useful to wrap all tests into one.
@@ -47,6 +48,7 @@ sub test_role
    my $res = $node->psql('postgres', undef, extra_params => [ '-U', $role ]);
    is($res, $expected_res,
        "authentication $status_string for method $method, role $role");
+   return;
 }
 
 # Initialize master node
index e09273edd4663b7f6613d1b8f7a36fbedbfeedd5..c4b335c45fe986a66e71446eec871ecdc0247d0d 100644 (file)
@@ -27,6 +27,7 @@ sub reset_pg_hba
    unlink($node->data_dir . '/pg_hba.conf');
    $node->append_conf('pg_hba.conf', "local all all $hba_method");
    $node->reload;
+   return;
 }
 
 # Test access for a single role, useful to wrap all tests into one.
@@ -45,6 +46,7 @@ sub test_login
    is($res, $expected_res,
        "authentication $status_string for role $role with password $password"
    );
+   return;
 }
 
 # Initialize master node. Force UTF-8 encoding, so that we can use non-ASCII
index 5e638eb2eb498e2f9c08789562f32888caddf518..54f564779d663d82519ccf1663764186471f1b0d 100644 (file)
@@ -164,6 +164,7 @@ sub test_access
            '-U', $role
        ]);
    is($res, $expected_res, $test_name);
+   return;
 }
 
 unlink($node->data_dir . '/pg_hba.conf');
index 9ade9a2b000d381bfe12b1f8bc345196afc817fc..67b406c981b360439882788fc7346078441f433e 100644 (file)
@@ -144,6 +144,7 @@ sub test_access
    my $res =
      $node->psql('postgres', 'SELECT 1', extra_params => [ '-U', $role ]);
    is($res, $expected_res, $test_name);
+   return;
 }
 
 note "simple bind";
index 82a2611a1e9fa41b6e9b468eae6f6a567fd2359a..d12dd60e732a9cf2a2c9b4dc7a8fb9adee6d3832 100644 (file)
@@ -372,6 +372,7 @@ sub dump_info
 {
    my ($self) = @_;
    print $self->info;
+   return;
 }
 
 
@@ -393,6 +394,7 @@ sub set_replication_conf
          "host replication all $test_localhost/32 sspi include_realm=1 map=regress\n";
    }
    close $hba;
+   return;
 }
 
 =pod
@@ -487,6 +489,7 @@ sub init
 
    $self->set_replication_conf if $params{allows_streaming};
    $self->enable_archiving     if $params{has_archiving};
+   return;
 }
 
 =pod
@@ -512,6 +515,8 @@ sub append_conf
 
    chmod($self->group_access() ? 0640 : 0600, $conffile)
      or die("unable to set permissions for $conffile");
+
+   return;
 }
 
 =pod
@@ -538,6 +543,7 @@ sub backup
    TestLib::system_or_bail('pg_basebackup', '-D', $backup_path, '-p', $port,
        '--no-sync');
    print "# Backup finished\n";
+   return;
 }
 
 =item $node->backup_fs_hot(backup_name)
@@ -556,6 +562,7 @@ sub backup_fs_hot
 {
    my ($self, $backup_name) = @_;
    $self->_backup_fs($backup_name, 1);
+   return;
 }
 
 =item $node->backup_fs_cold(backup_name)
@@ -572,6 +579,7 @@ sub backup_fs_cold
 {
    my ($self, $backup_name) = @_;
    $self->_backup_fs($backup_name, 0);
+   return;
 }
 
 
@@ -612,6 +620,7 @@ sub _backup_fs
    }
 
    print "# Backup finished\n";
+   return;
 }
 
 
@@ -672,6 +681,7 @@ port = $port
 ));
    $self->enable_streaming($root_node) if $params{has_streaming};
    $self->enable_restoring($root_node) if $params{has_restoring};
+   return;
 }
 
 =pod
@@ -703,6 +713,7 @@ sub start
    }
 
    $self->_update_pid(1);
+   return;
 }
 
 =pod
@@ -728,6 +739,7 @@ sub stop
    print "### Stopping node \"$name\" using mode $mode\n";
    TestLib::system_or_bail('pg_ctl', '-D', $pgdata, '-m', $mode, 'stop');
    $self->_update_pid(0);
+   return;
 }
 
 =pod
@@ -746,6 +758,7 @@ sub reload
    my $name   = $self->name;
    print "### Reloading node \"$name\"\n";
    TestLib::system_or_bail('pg_ctl', '-D', $pgdata, 'reload');
+   return;
 }
 
 =pod
@@ -767,6 +780,7 @@ sub restart
    TestLib::system_or_bail('pg_ctl', '-D', $pgdata, '-l', $logfile,
        'restart');
    $self->_update_pid(1);
+   return;
 }
 
 =pod
@@ -787,6 +801,7 @@ sub promote
    print "### Promoting node \"$name\"\n";
    TestLib::system_or_bail('pg_ctl', '-D', $pgdata, '-l', $logfile,
        'promote');
+   return;
 }
 
 # Internal routine to enable streaming replication on a standby node.
@@ -802,6 +817,7 @@ sub enable_streaming
 primary_conninfo='$root_connstr application_name=$name'
 standby_mode=on
 ));
+   return;
 }
 
 # Internal routine to enable archive recovery command on a standby node
@@ -830,6 +846,7 @@ sub enable_restoring
 restore_command = '$copy_command'
 standby_mode = on
 ));
+   return;
 }
 
 # Internal routine to enable archiving
@@ -859,6 +876,7 @@ sub enable_archiving
 archive_mode = on
 archive_command = '$copy_command'
 ));
+   return;
 }
 
 # Internal method
@@ -885,6 +903,7 @@ sub _update_pid
 
    # Complain if we expected to find a pidfile.
    BAIL_OUT("postmaster.pid unexpectedly not present") if $is_running;
+   return;
 }
 
 =pod
@@ -1014,7 +1033,7 @@ sub teardown_node
    my $self = shift;
 
    $self->stop('immediate');
-
+   return;
 }
 
 =pod
@@ -1030,6 +1049,7 @@ sub clean_node
    my $self = shift;
 
    rmtree $self->{_basedir} unless defined $self->{_pid};
+   return;
 }
 
 =pod
@@ -1351,6 +1371,7 @@ sub command_ok
    local $ENV{PGPORT} = $self->port;
 
    TestLib::command_ok(@_);
+   return;
 }
 
 =pod
@@ -1368,6 +1389,7 @@ sub command_fails
    local $ENV{PGPORT} = $self->port;
 
    TestLib::command_fails(@_);
+   return;
 }
 
 =pod
@@ -1385,6 +1407,7 @@ sub command_like
    local $ENV{PGPORT} = $self->port;
 
    TestLib::command_like(@_);
+   return;
 }
 
 =pod
@@ -1402,6 +1425,7 @@ sub command_checks_all
    local $ENV{PGPORT} = $self->port;
 
    TestLib::command_checks_all(@_);
+   return;
 }
 
 =pod
@@ -1427,6 +1451,7 @@ sub issues_sql_like
    ok($result, "@$cmd exit code 0");
    my $log = TestLib::slurp_file($self->logfile);
    like($log, $expected_sql, "$test_name: SQL found in server log");
+   return;
 }
 
 =pod
@@ -1445,6 +1470,7 @@ sub run_log
    local $ENV{PGPORT} = $self->port;
 
    TestLib::run_log(@_);
+   return;
 }
 
 =pod
@@ -1548,6 +1574,7 @@ sub wait_for_catchup
    $self->poll_query_until('postgres', $query)
      or croak "timed out waiting for catchup";
    print "done\n";
+   return;
 }
 
 =pod
@@ -1590,6 +1617,7 @@ sub wait_for_slot_catchup
    $self->poll_query_until('postgres', $query)
      or croak "timed out waiting for catchup";
    print "done\n";
+   return;
 }
 
 =pod
index ea2f2ee82871004e581a25fbdcd1a81d7cf27c30..9de7b1ac323a1484eabf3e29ac769fa03352eed4 100644 (file)
@@ -13,7 +13,7 @@ use strict;
 sub TIEHANDLE
 {
    my $self = shift;
-   bless \@_, $self;
+   return bless \@_, $self;
 }
 
 sub PRINT
index c9f824b4c65f325281e566faacfddb456e2351c7..77499c01e969ef25ceb108918bd36d2e5a82c0b3 100644 (file)
@@ -194,6 +194,7 @@ sub system_or_bail
    {
        BAIL_OUT("system $_[0] failed");
    }
+   return;
 }
 
 sub run_log
@@ -244,6 +245,7 @@ sub append_to_file
      or die "could not write \"$filename\": $!";
    print $fh $str;
    close $fh;
+   return; 
 }
 
 # Check that all file/dir modes in a directory match the expected values,
@@ -338,6 +340,7 @@ sub chmod_recursive
            }
        },
        $dir);
+   return;
 }
 
 # Check presence of a given regexp within pg_config.h for the installation
@@ -366,6 +369,7 @@ sub command_ok
    my ($cmd, $test_name) = @_;
    my $result = run_log($cmd);
    ok($result, $test_name);
+   return;
 }
 
 sub command_fails
@@ -373,6 +377,7 @@ sub command_fails
    my ($cmd, $test_name) = @_;
    my $result = run_log($cmd);
    ok(!$result, $test_name);
+   return;
 }
 
 sub command_exit_is
@@ -394,6 +399,7 @@ sub command_exit_is
      ? ($h->full_results)[0]
      : $h->result(0);
    is($result, $expected, $test_name);
+   return;
 }
 
 sub program_help_ok
@@ -406,6 +412,7 @@ sub program_help_ok
    ok($result, "$cmd --help exit code 0");
    isnt($stdout, '', "$cmd --help goes to stdout");
    is($stderr, '', "$cmd --help nothing to stderr");
+   return;
 }
 
 sub program_version_ok
@@ -418,6 +425,7 @@ sub program_version_ok
    ok($result, "$cmd --version exit code 0");
    isnt($stdout, '', "$cmd --version goes to stdout");
    is($stderr, '', "$cmd --version nothing to stderr");
+   return;
 }
 
 sub program_options_handling_ok
@@ -430,6 +438,7 @@ sub program_options_handling_ok
      '2>', \$stderr;
    ok(!$result, "$cmd with invalid option nonzero exit code");
    isnt($stderr, '', "$cmd with invalid option prints error message");
+   return;
 }
 
 sub command_like
@@ -441,6 +450,7 @@ sub command_like
    ok($result, "$test_name: exit code 0");
    is($stderr, '', "$test_name: no stderr");
    like($stdout, $expected_stdout, "$test_name: matches");
+   return;
 }
 
 sub command_like_safe
@@ -460,6 +470,7 @@ sub command_like_safe
    ok($result, "$test_name: exit code 0");
    is($stderr, '', "$test_name: no stderr");
    like($stdout, $expected_stdout, "$test_name: matches");
+   return;
 }
 
 sub command_fails_like
@@ -470,6 +481,7 @@ sub command_fails_like
    my $result = IPC::Run::run $cmd, '>', \$stdout, '2>', \$stderr;
    ok(!$result, "$test_name: exit code not 0");
    like($stderr, $expected_stderr, "$test_name: matches");
+   return;
 }
 
 # Run a command and check its status and outputs.
@@ -509,6 +521,8 @@ sub command_checks_all
    {
        like($stderr, $re, "$test_name stderr /$re/");
    }
+   
+   return;
 }
 
 1;
index a29a6c720ba884b104dfa4af414d06cdae7a9af8..a0d3e8f3572ce90dd67148eede453397155c2e57 100644 (file)
@@ -97,6 +97,8 @@ sub test_target_session_attrs
        1,
        "connect to node $target_name if mode \"$mode\" and $node1_name,$node2_name listed"
    );
+
+   return;
 }
 
 # Connect to master in "read-write" mode with master,standby1 list.
@@ -195,6 +197,7 @@ sub replay_check
    $node_standby_2->safe_psql('postgres',
        qq[SELECT 1 FROM replayed WHERE val = $newval])
      or die "standby_2 didn't replay standby_1 value $newval";
+   return;
 }
 
 replay_check();
index 824fa4da529f5e71b1418d936c2eca3b8491b676..e867479f2061f60930bf351ee6d8e41fb8e69341 100644 (file)
@@ -41,6 +41,8 @@ sub test_recovery_standby
 
    # Stop standby node
    $node_standby->teardown_node;
+
+   return;
 }
 
 # Initialize master node
index 0ddf70b8b82ce750ba6794be581daec2ddeae59d..bba47da17a4d498d6c69a1db5666d16d0afdd79c 100644 (file)
@@ -24,6 +24,7 @@ sub test_sync_state
    }
 
    ok($self->poll_query_until('postgres', $check_sql, $expected), $msg);
+   return;
 }
 
 # Initialize master node
index 93c22d181c45e33a8b042a87ea4d5ff5815c6480..9ea3bd65fc1ee59d070e35203ab3dd6ba7f02dae 100644 (file)
@@ -20,6 +20,7 @@ sub configure_and_reload
    ));
    $node->psql('postgres', "SELECT pg_reload_conf()", stdout => \$psql_out);
    is($psql_out, 't', "reload node $name with $parameter");
+   return;
 }
 
 # Set up two nodes, which will alternately be master and replication standby.
index ced279c31b926f46b6f3b484aece46f3bfc274fb..1cd3badaa1dd6f9af92c414e95863194669ab0b9 100644 (file)
@@ -47,6 +47,7 @@ sub test_connect_ok
    ];
 
    command_ok($cmd, $test_name);
+   return;
 }
 
 sub test_connect_fails
@@ -60,6 +61,7 @@ sub test_connect_fails
    ];
 
    command_fails_like($cmd, $expected_stderr, $test_name);
+   return;
 }
 
 # Copy a set of files, taking into account wildcards
@@ -75,6 +77,7 @@ sub copy_files
        copy($orig_file, "$dest/$base_file")
          or die "Could not copy $orig_file to $dest";
    }
+   return;
 }
 
 sub configure_test_server_for_ssl
@@ -130,6 +133,8 @@ sub configure_test_server_for_ssl
 
    # Change pg_hba after restart because hostssl requires ssl=on
    configure_hba_for_ssl($node, $serverhost, $authmethod);
+
+   return;
 }
 
 # Change the configuration to use given server cert file, and reload
@@ -150,6 +155,7 @@ sub switch_server_cert
    close $sslconf;
 
    $node->restart;
+   return;
 }
 
 sub configure_hba_for_ssl
@@ -173,4 +179,7 @@ sub configure_hba_for_ssl
    print $hba
      "hostssl certdb          all             ::1/128                 cert\n";
    close $hba;
+   return;
 }
+
+1;
\ No newline at end of file
index 41cb93d658ae9ebd34932687c81672c6a0ee8005..08b9e5b42e3d25e046322ae4fd73f9dfe163164a 100755 (executable)
@@ -62,6 +62,7 @@ sub wanted
        $line =~ s/$cc (\d{4}), $pgdg/$ccliteral $1-$year, $pgdg/i;
    }
    untie @lines;
+   return;
 }
 
 print "Manually update:\n";
index 1262bc104c26208d29fa0e7f534c96f6043a863d..af9afcf1f0fb383fa0617208f1ed586901ff24aa 100755 (executable)
@@ -333,6 +333,7 @@ sub push_commit
    push @{ $all_commits_by_branch{ $c->{'branch'} } }, $cc;
    $cc->{'branch_position'}{ $c->{'branch'} } =
      -1 + @{ $all_commits_by_branch{ $c->{'branch'} } };
+   return;
 }
 
 sub hash_commit
@@ -355,6 +356,7 @@ sub parse_datetime
 sub output_str
 {
    ($oldest_first) ? ($output_line .= sprintf(shift, @_)) : printf(@_);
+   return;
 }
 
 sub output_details
@@ -395,6 +397,7 @@ sub output_details
        }
    }
    output_str("\n");
+   return;
 }
 
 sub usage
index 67124bb109ab28f0b502ecc780a04eef8be36578..6f1c30546aeee1184e71f44477cc024dac7dbb6c 100644 (file)
@@ -40,6 +40,7 @@ sub lcopy
    copy($src, $target)
      || confess "Could not copy $src to $target\n";
 
+   return;
 }
 
 sub Install
@@ -173,6 +174,7 @@ sub Install
    GenerateNLSFiles($target, $config->{nls}, $majorver) if ($config->{nls});
 
    print "Installation complete.\n";
+   return;
 }
 
 sub EnsureDirectories
@@ -183,6 +185,7 @@ sub EnsureDirectories
    {
        mkdir $target . '/' . $d unless -d ($target . '/' . $d);
    }
+   return;
 }
 
 sub CopyFiles
@@ -200,6 +203,7 @@ sub CopyFiles
        lcopy($f, $target . basename($f));
    }
    print "\n";
+   return;
 }
 
 sub CopySetOfFiles
@@ -215,6 +219,7 @@ sub CopySetOfFiles
        lcopy($_, $tgt) || croak "Could not copy $_: $!\n";
    }
    print "\n";
+   return;
 }
 
 sub CopySolutionOutput
@@ -340,6 +345,7 @@ sub CopySolutionOutput
        print ".";
    }
    print "\n";
+   return;
 }
 
 sub GenerateConversionScript
@@ -377,6 +383,7 @@ sub GenerateConversionScript
    print $F $sql;
    close($F);
    print "\n";
+   return;
 }
 
 sub GenerateTimezoneFiles
@@ -408,6 +415,7 @@ sub GenerateTimezoneFiles
 
    system(@args);
    print "\n";
+   return;
 }
 
 sub GenerateTsearchFiles
@@ -449,6 +457,7 @@ sub GenerateTsearchFiles
    }
    close($F);
    print "\n";
+   return;
 }
 
 sub CopyContribFiles
@@ -475,6 +484,7 @@ sub CopyContribFiles
        }
    }
    print "\n";
+   return;
 }
 
 sub CopySubdirFiles
@@ -561,6 +571,7 @@ sub CopySubdirFiles
            print '.';
        }
    }
+   return;
 }
 
 sub ParseAndCleanRule
@@ -676,6 +687,7 @@ sub CopyIncludeFiles
        $target . '/include/informix/esql/',
        'src/interfaces/ecpg/include/',
        split /\s+/, $1);
+   return;
 }
 
 sub GenerateNLSFiles
@@ -719,6 +731,7 @@ sub GenerateNLSFiles
        }
    }
    print "\n";
+   return;
 }
 
 sub DetermineMajorVersion
index 2726d603afd290fc9c7357fc8fc3c2b683fcf87d..27397ba3fb123db98cb481e1911d19721098e6aa 100644 (file)
@@ -80,6 +80,7 @@ EOF
            strpool => 'true',
            runtime => 'MultiThreadedDLL'
        });
+   return;
 }
 
 sub AddDefine
@@ -87,6 +88,7 @@ sub AddDefine
    my ($self, $def) = @_;
 
    $self->{defines} .= $def . ';';
+   return;
 }
 
 sub WriteReferences
@@ -112,6 +114,7 @@ EOF
   </ItemGroup>
 EOF
    }
+   return;
 }
 
 sub WriteFiles
@@ -223,6 +226,7 @@ EOF
   </ItemGroup>
 EOF
    }
+   return;
 }
 
 sub WriteConfigurationHeader
@@ -234,6 +238,7 @@ sub WriteConfigurationHeader
       <Platform>$self->{platform}</Platform>
     </ProjectConfiguration>
 EOF
+   return;
 }
 
 sub WriteConfigurationPropertyGroup
@@ -252,6 +257,7 @@ sub WriteConfigurationPropertyGroup
     <WholeProgramOptimization>$p->{wholeopt}</WholeProgramOptimization>
   </PropertyGroup>
 EOF
+   return;
 }
 
 sub WritePropertySheetsPropertyGroup
@@ -262,6 +268,7 @@ sub WritePropertySheetsPropertyGroup
     <Import Project="\$(UserRootDir)\\Microsoft.Cpp.\$(Platform).user.props" Condition="exists('\$(UserRootDir)\\Microsoft.Cpp.\$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
 EOF
+   return;
 }
 
 sub WriteAdditionalProperties
@@ -272,6 +279,7 @@ sub WriteAdditionalProperties
     <IntDir Condition="'\$(Configuration)|\$(Platform)'=='$cfgname|$self->{platform}'">.\\$cfgname\\$self->{name}\\</IntDir>
     <LinkIncremental Condition="'\$(Configuration)|\$(Platform)'=='$cfgname|$self->{platform}'">false</LinkIncremental>
 EOF
+   return;
 }
 
 sub WriteItemDefinitionGroup
@@ -364,6 +372,7 @@ EOF
    print $f <<EOF;
   </ItemDefinitionGroup>
 EOF
+   return;
 }
 
 sub Footer
@@ -377,6 +386,7 @@ sub Footer
   </ImportGroup>
 </Project>
 EOF
+   return;
 }
 
 package VC2010Project;
@@ -441,6 +451,7 @@ sub WriteConfigurationPropertyGroup
     <PlatformToolset>$self->{PlatformToolset}</PlatformToolset>
   </PropertyGroup>
 EOF
+   return;
 }
 
 package VC2013Project;
index d0d7d464952a19cf3cddfc13dac2aebbf10e89e3..4543d87d83b6ff9d9298201f251762a67ba5a091 100644 (file)
@@ -964,6 +964,7 @@ sub AddContrib
 
    # Are there any output data files to build?
    GenerateContribSqlFiles($n, $mf);
+   return;
 }
 
 sub GenerateContribSqlFiles
@@ -1010,6 +1011,7 @@ sub GenerateContribSqlFiles
            }
        }
    }
+   return;
 }
 
 sub AdjustContribProj
@@ -1020,6 +1022,7 @@ sub AdjustContribProj
        \@contrib_uselibpq,       \@contrib_uselibpgport,
        \@contrib_uselibpgcommon, $contrib_extralibs,
        $contrib_extrasource,     $contrib_extraincludes);
+   return;
 }
 
 sub AdjustFrontendProj
@@ -1030,6 +1033,7 @@ sub AdjustFrontendProj
        \@frontend_uselibpq,       \@frontend_uselibpgport,
        \@frontend_uselibpgcommon, $frontend_extralibs,
        $frontend_extrasource,     $frontend_extraincludes);
+   return;
 }
 
 sub AdjustModule
@@ -1086,6 +1090,7 @@ sub AdjustModule
            $proj->AddFile($i);
        }
    }
+   return;
 }
 
 END
index 46c680d5367a1b60a804176dd75c77c751ae2d22..261c913ea072a5e538812b8cb8d89bf6e11fd871 100644 (file)
@@ -45,6 +45,7 @@ sub AddFile
    my ($self, $filename) = @_;
 
    $self->{files}->{$filename} = 1;
+   return;
 }
 
 sub AddFiles
@@ -56,6 +57,7 @@ sub AddFiles
    {
        $self->{files}->{ $dir . "/" . $f } = 1;
    }
+   return;
 }
 
 sub ReplaceFile
@@ -110,6 +112,7 @@ sub RelocateFiles
            $self->AddFile($targetdir . '/' . basename($f));
        }
    }
+   return;
 }
 
 sub AddReference
@@ -122,6 +125,7 @@ sub AddReference
        $self->AddLibrary(
            "__CFGNAME__/" . $ref->{name} . "/" . $ref->{name} . ".lib");
    }
+   return;
 }
 
 sub AddLibrary
@@ -138,6 +142,7 @@ sub AddLibrary
    {
        push @{ $self->{suffixlib} }, $lib;
    }
+   return;
 }
 
 sub AddIncludeDir
@@ -149,6 +154,7 @@ sub AddIncludeDir
        $self->{includes} .= ';';
    }
    $self->{includes} .= $inc;
+   return;
 }
 
 sub AddPrefixInclude
@@ -156,6 +162,7 @@ sub AddPrefixInclude
    my ($self, $inc) = @_;
 
    $self->{prefixincludes} = $inc . ';' . $self->{prefixincludes};
+   return;
 }
 
 sub AddDefine
@@ -164,6 +171,7 @@ sub AddDefine
 
    $def =~ s/"/&quot;&quot;/g;
    $self->{defines} .= $def . ';';
+   return;
 }
 
 sub FullExportDLL
@@ -173,6 +181,7 @@ sub FullExportDLL
    $self->{builddef} = 1;
    $self->{def}      = "./__CFGNAME__/$self->{name}/$self->{name}.def";
    $self->{implib}   = "__CFGNAME__/$self->{name}/$libname";
+   return;
 }
 
 sub UseDef
@@ -180,6 +189,7 @@ sub UseDef
    my ($self, $def) = @_;
 
    $self->{def} = $def;
+   return;
 }
 
 sub AddDir
@@ -284,6 +294,7 @@ sub AddDir
    }
 
    $self->AddDirResourceFile($reldir);
+   return;
 }
 
 # If the directory's Makefile bears a description string, add a resource file.
@@ -299,6 +310,7 @@ sub AddDirResourceFile
        if ($mf =~ /^PGAPPICON\s*=\s*(.*)$/m) { $ico = $1; }
        $self->AddResourceFile($reldir, $desc, $ico);
    }
+   return;
 }
 
 sub AddResourceFile
@@ -332,6 +344,7 @@ sub AddResourceFile
        close($i);
    }
    $self->AddFile("$dir/win32ver.rc");
+   return;
 }
 
 sub DisableLinkerWarnings
@@ -341,6 +354,7 @@ sub DisableLinkerWarnings
    $self->{disablelinkerwarnings} .= ','
      unless ($self->{disablelinkerwarnings} eq '');
    $self->{disablelinkerwarnings} .= $warnings;
+   return;
 }
 
 sub Save
@@ -366,6 +380,7 @@ sub Save
    $self->WriteFiles($f);
    $self->Footer($f);
    close($f);
+   return;
 }
 
 sub GetAdditionalLinkerDependencies
index a33e68eccf0559ab4516145df78189993e66fb7a..8f0b355fc0ea057dfbba381a86df20b66c0895df 100644 (file)
@@ -75,6 +75,7 @@ sub DeterminePlatform
    $? >> 8 == 0 or die "cl command not found";
    $self->{platform} = ($output =~ /^\/favor:<.+AMD64/m) ? 'x64' : 'Win32';
    print "Detected hardware platform: $self->{platform}\n";
+   return;
 }
 
 # Return 1 if $oldfile is newer than $newfile, or if $newfile doesn't exist.
@@ -112,6 +113,7 @@ sub copyFile
    }
    close($i);
    close($o);
+   return;
 }
 
 sub GenerateFiles
@@ -533,6 +535,7 @@ EOF
 <!ENTITY majorversion "$self->{majorver}">
 EOF
    close($o);
+   return;
 }
 
 sub GenerateDefFile
@@ -555,6 +558,7 @@ sub GenerateDefFile
        close($of);
        close($if);
    }
+   return;
 }
 
 sub AddProject
@@ -727,6 +731,7 @@ EOF
 EndGlobal
 EOF
    close($sln);
+   return;
 }
 
 sub GetFakeConfigure
index 57b8525f3fef370950e7d6080a5d2fecf443350d..03b890b9b7462c89276860a4ca726d8761cd15d6 100644 (file)
@@ -56,6 +56,7 @@ EOF
  </Configurations>
 EOF
    $self->WriteReferences($f);
+   return;
 }
 
 sub WriteFiles
@@ -152,6 +153,7 @@ EOF
    print $f <<EOF;
  </Files>
 EOF
+   return;
 }
 
 sub Footer
@@ -162,6 +164,7 @@ sub Footer
  <Globals/>
 </VisualStudioProject>
 EOF
+   return;
 }
 
 sub WriteConfiguration
@@ -227,6 +230,7 @@ EOF
    print $f <<EOF;
   </Configuration>
 EOF
+   return;
 }
 
 sub WriteReferences
@@ -239,6 +243,7 @@ sub WriteReferences
          "  <ProjectReference ReferencedProjectIdentifier=\"$ref->{guid}\" Name=\"$ref->{name}\" />\n";
    }
    print $f " </References>\n";
+   return;
 }
 
 sub GenerateCustomTool
index 8ab7385b9e8cc9c0c439fe13b757b2846af890e2..f6eb73db21208c356251290e6182a577b6fe8ae0 100644 (file)
@@ -107,7 +107,7 @@ sub renamefiles
        move $f, $nf;
    }
    chdir $savedir;
-
+  return;
 }
 
 sub missing
index 9f0cf76fb357a3a36d3dab0191b2954eb88eadd1..77c3a775b05fa6a6ded9235bcf5da43388f9e063 100644 (file)
@@ -20,6 +20,7 @@ sub dumpsyms
    system("dumpbin /symbols /out:$tmpfile $_ >NUL")
      && die "Could not call dumpbin";
    rename($tmpfile, $symfile);
+   return;
 }
 
 # Given a symbol file path, loops over its contents
@@ -116,6 +117,7 @@ sub extract_syms
        $def->{ $pieces[6] } = $pieces[3];
    }
    close($f);
+   return;
 }
 
 sub writedef
@@ -143,6 +145,7 @@ sub writedef
        }
    }
    close($fh);
+   return;
 }
 
 
index a74adbaf998395bcab7541935d044cd825270f32..4dc051aa62812507579d4033f35312856d544e78 100644 (file)
@@ -111,6 +111,7 @@ sub installcheck
    system(@args);
    my $status = $? >> 8;
    exit $status if $status;
+   return;
 }
 
 sub check
@@ -132,6 +133,7 @@ sub check
    system(@args);
    my $status = $? >> 8;
    exit $status if $status;
+   return;
 }
 
 sub ecpgcheck
@@ -157,6 +159,7 @@ sub ecpgcheck
    system(@args);
    $status = $? >> 8;
    exit $status if $status;
+   return;
 }
 
 sub isolationcheck
@@ -173,6 +176,7 @@ sub isolationcheck
    system(@args);
    my $status = $? >> 8;
    exit $status if $status;
+   return;
 }
 
 sub tap_check
@@ -224,6 +228,7 @@ sub bincheck
        $mstat ||= $status;
    }
    exit $mstat if $mstat;
+   return;
 }
 
 sub taptest
@@ -244,6 +249,7 @@ sub taptest
    InstallTemp();
    my $status = tap_check(@args);
    exit $status if $status;
+   return;
 }
 
 sub mangle_plpython3
@@ -365,6 +371,7 @@ sub plcheck
    }
 
    chdir "$topdir";
+   return;
 }
 
 sub subdircheck
@@ -413,6 +420,7 @@ sub subdircheck
    print join(' ', @args), "\n";
    system(@args);
    chdir "..";
+   return;
 }
 
 sub contribcheck
@@ -434,6 +442,7 @@ sub contribcheck
        $mstat ||= $status;
    }
    exit $mstat if $mstat;
+   return;
 }
 
 sub modulescheck
@@ -447,6 +456,7 @@ sub modulescheck
        $mstat ||= $status;
    }
    exit $mstat if $mstat;
+   return;
 }
 
 sub recoverycheck
@@ -457,6 +467,7 @@ sub recoverycheck
    my $dir    = "$topdir/src/test/recovery";
    my $status = tap_check($dir);
    exit $status if $status;
+   return;
 }
 
 # Run "initdb", then reconfigure authentication.
@@ -501,6 +512,7 @@ sub generate_db
    system('createdb', quote_system_arg($dbname));
    my $status = $? >> 8;
    exit $status if $status;
+   return;
 }
 
 sub upgradecheck
@@ -586,6 +598,7 @@ sub upgradecheck
        print "dumps not identical!\n";
        exit(1);
    }
+   return;
 }
 
 sub fetchRegressOpts
@@ -680,6 +693,7 @@ sub InstallTemp
        Install("$tmp_installdir", "all", $config);
    }
    $ENV{PATH} = "$tmp_installdir/bin;$ENV{PATH}";
+   return;
 }
 
 sub usage
index c547df45ea58ed740aa5cc1e61cae54b696460ea..4edf7fc56e82109757d7c9bb4f98ae26aa5d81a1 100755 (executable)
@@ -297,4 +297,6 @@ sub checkit
    print "$file references $symbol, defined in @places\n";
 
    # print "includes: @includes\n";
+
+   return;
 }
index fc616e7a08c49ad08e27eed67b8cad03fb63efe8..2d81672e158b0d9b429b08a6441c140469f20b76 100755 (executable)
@@ -93,6 +93,8 @@ sub check_indent
          "You appear to have GNU indent rather than BSD indent.\n";
        exit 1;
    }
+
+   return;
 }
 
 
@@ -162,6 +164,7 @@ sub process_exclude
        }
        close($eh);
    }
+   return;
 }
 
 
@@ -189,6 +192,7 @@ sub write_source
      || die "cannot open file \"$source_filename\": $!\n";
    print $src_fh $source;
    close($src_fh);
+   return;
 }
 
 
@@ -316,6 +320,7 @@ sub diff
          . $pre_fh->filename . " "
          . $post_fh->filename
          . " >&2");
+   return;
 }
 
 
@@ -361,6 +366,7 @@ sub run_build
    $ENV{PGINDENT} = abs_path('pg_bsd_indent');
 
    chdir $save_dir;
+   return;
 }
 
 
@@ -382,6 +388,7 @@ sub build_clean
 
    system("rm -rf src/tools/pgindent/pg_bsd_indent");
    system("rm -f src/tools/pgindent/tmp_typedefs.list");
+   return;
 }
 
 
index 1059002ad50abfd13dfede0b55e3d40f393fe97f..c831086ae92261a5c6e51040d926845fa6bc926f 100644 (file)
@@ -12,3 +12,8 @@ theme = core
 
 # allow octal constants with leading zeros
 [-ValuesAndExpressions::ProhibitLeadingZeros]
+
+# for now raise severity of this to level 5
+[Subroutines::RequireFinalReturn]
+severity = 5
+
index 40d006bef6e6e35483f443d9a563d7ca21bf48af..28264b1a24287d5bc28ca3c514bf22186a8571e6 100755 (executable)
@@ -15,7 +15,7 @@ PERLCRITIC=${PERLCRITIC:-perlcritic}
 # locate all Perl files in the tree
 {
    # take all .pl and .pm files
-   find . -type f -a \( -name '*.pl' -o -name '*.pm' \) -print
+   find . -type f -name '*.p[lm]' -print
    # take executable files that file(1) thinks are perl files
    find . -type f -perm -100 -exec file {} \; -print |
    egrep -i ':.*perl[0-9]*\>' |
index 392fd4ae541fcc726502b04f93463a4465d4a98d..499e3deb3aee0097746c2c3129ee8471f03415ce 100755 (executable)
@@ -141,4 +141,5 @@ sub sed_file
      or die "mv failed: $?";
 
    $fixedfiles .= "\t$filename\n";
+   return;
 }