1251875Speter#!/usr/bin/perl -w 2251875Speteruse strict; 3251875Speteruse ExtUtils::MakeMaker qw(prompt); 4251875Speteruse File::Find; 5251875Speter 6251875Spetermy $just_check = @ARGV ? $ARGV[0] eq '-c' : 0; 7251875Spetershift if $just_check; 8251875Spetermy $dir = shift || '.'; 9251875Spetermy %names; 10251875Speter 11251875Spetermy $prefix = 'apr_'; 12251875Speter 13251875Speterwhile (<DATA>) { 14251875Speter chomp; 15251875Speter my($old, $new) = grep { s/^$prefix//o } split; 16251875Speter next unless $old and $new; 17251875Speter $names{$old} = $new; 18251875Speter} 19251875Speter 20251875Spetermy $pattern = join '|', keys %names; 21251875Speter#print "replacement pattern=$pattern\n"; 22251875Speter 23251875Speterfind sub { 24251875Speter chomp; 25251875Speter return unless /\.[ch]$/; 26251875Speter my $file = "$File::Find::dir/$_"; 27251875Speter print "looking in $file\n"; 28251875Speter 29251875Speter replace($_, !$just_check); 30251875Speter 31251875Speter}, $dir; 32251875Speter 33251875Spetersub replace { 34251875Speter my($file, $replace) = @_; 35251875Speter local *IN, *OUT; 36251875Speter my @lines; 37251875Speter my $found = 0; 38251875Speter 39251875Speter open IN, $file or die "open $file: $!"; 40251875Speter 41251875Speter while (<IN>) { 42251875Speter for (m/[^_\"]*$prefix($pattern)\b/og) { 43251875Speter $found++; 44251875Speter print " $file:$. apr_$_ -> apr_$names{$_}\n"; 45251875Speter } 46251875Speter push @lines, $_ if $replace; 47251875Speter } 48251875Speter 49251875Speter close IN; 50251875Speter 51251875Speter return unless $found and $replace; 52251875Speter 53251875Speter# my $ans = prompt("replace?", 'y'); 54251875Speter# return unless $ans =~ /^y/i; 55251875Speter 56251875Speter open OUT, ">$file" or die "open $file: $!"; 57251875Speter 58251875Speter for (@lines) { 59251875Speter unless (/^\#include/) { 60251875Speter s/([^_\"]*$prefix)($pattern)\b/$1$names{$2}/og; 61251875Speter } 62251875Speter print OUT $_; 63251875Speter } 64251875Speter 65251875Speter close OUT; 66251875Speter} 67251875Speter 68251875Speter__DATA__ 69251875Speterapr_time_t: 70251875Speterapr_implode_gmt apr_time_exp_gmt_get 71251875Speter 72251875Speterapr_socket_t: 73251875Speterapr_close_socket apr_socket_close 74251875Speterapr_create_socket apr_socket_create 75251875Speterapr_get_sockaddr apr_socket_addr_get 76251875Speterapr_get_socketdata apr_socket_data_get 77251875Speterapr_set_socketdata apr_socket_data_set 78251875Speterapr_shutdown apr_socket_shutdown 79251875Speterapr_bind apr_socket_bind 80251875Speterapr_listen apr_socket_listen 81251875Speterapr_accept apr_socket_accept 82251875Speterapr_connect apr_socket_connect 83251875Speterapr_send apr_socket_send 84251875Speterapr_sendv apr_socket_sendv 85251875Speterapr_sendto apr_socket_sendto 86251875Speterapr_recvfrom apr_socket_recvfrom 87251875Speterapr_sendfile apr_socket_sendfile 88251875Speterapr_recv apr_socket_recv 89251875Speter 90251875Speterapr_filepath_*: 91251875Speterapr_filename_of_pathname apr_filepath_name_get 92251875Speter 93251875Speterapr_gid_t: 94251875Speterapr_get_groupid apr_gid_get 95251875Speterapr_get_groupname apr_gid_name_get 96251875Speterapr_group_name_get apr_gid_name_get 97251875Speterapr_compare_groups apr_gid_compare 98251875Speter 99251875Speterapr_uid_t: 100251875Speterapr_get_home_directory apr_uid_homepath_get 101251875Speterapr_get_userid apr_uid_get 102251875Speterapr_current_userid apr_uid_current 103251875Speterapr_compare_users apr_uid_compare 104251875Speterapr_get_username apr_uid_name_get 105251875Speterapr_compare_users apr_uid_compare 106251875Speter 107