Warning, file /sdk/kde-dev-scripts/kf5/convert-kmenu.pl was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 #!/usr/bin/perl -w 0002 0003 # Laurent Montel <montel@kde.org> (2014) 0004 # KMenu => QMenu 0005 # find -iname "*.cpp" -o -iname "*.h" |xargs kde-dev-scripts/kf5/convert-kmenu.pl 0006 0007 use strict; 0008 use File::Basename; 0009 use lib dirname($0); 0010 use functionUtilkde; 0011 0012 foreach my $file (@ARGV) { 0013 0014 my $modified; 0015 open(my $FILE, "<", $file) or warn "We can't open file $file:$!\n"; 0016 my %varname = (); 0017 0018 my @l = map { 0019 my $orig = $_; 0020 my $regexpKMenuLocal = qr/ 0021 ^(\s*) # (1) Indentation 0022 KMenu\s+ 0023 (\w+) # (2) variable name 0024 /x; # /x Enables extended whitespace mode 0025 if (my ($left, $var) = $_ =~ $regexpKMenuLocal) { 0026 $varname{$var} = 1; 0027 s/\bKMenu\b/QMenu/; 0028 } 0029 0030 my $regexp = qr/ 0031 ^(\s*) # (1) Indentation, possibly "Classname *" (the ? means non-greedy) 0032 (.*?) # (2) Possibly "Classname *" (the ? means non-greedy) 0033 (\w+) # (3) variable name 0034 \s*=\s* # assignment 0035 new\s+KMenu\s*\((.*)\) # (4) new KMenu(...,...,...,...); 0036 (.*)$ # (5) afterreg 0037 /x; # /x Enables extended whitespace mode 0038 if (my ($indent, $left, $var, $argument, $afterreg) = $_ =~ $regexp) { 0039 warn "KMenu found \'$var\' \'$argument\'\n"; 0040 $varname{$var} = 1; 0041 s/\bKMenu\b/QMenu/; 0042 } 0043 0044 my $regexpKMenuFunction = qr/ 0045 (.*?) 0046 KMenu\s*\* 0047 (\w+) # (2) variable name 0048 /x; # /x Enables extended whitespace mode 0049 if (my ($left, $var) = $_ =~ $regexpKMenuFunction) { 0050 warn "Found KMenu in function!!!! $var\n"; 0051 $varname{$var} = 1; 0052 s/\bKMenu\b/QMenu/; 0053 } 0054 0055 if (/(\w+)\.addTitle\(/) { 0056 my $var = $1; 0057 if ( defined $varname{$var} ) { 0058 s/$var\.addTitle/$var\.addSection/; 0059 } 0060 } 0061 if (/(\w+)->addTitle\s*\(/) { 0062 #warn "found addTitle $1\n"; 0063 my $var = $1; 0064 if ( defined $varname{$var} ) { 0065 s/$var\-\>addTitle/$var\-\>addSection/; 0066 } 0067 } 0068 0069 0070 s/\bKMenu\b/QMenu/g; 0071 s/\<KMenu\b\>/\<QMenu>/ =~ /#include/ ; 0072 s/\<kmenu.h\>/\<QMenu>/ =~ /#include/ ; 0073 0074 $modified ||= $orig ne $_; 0075 $_; 0076 } <$FILE>; 0077 0078 if ($modified) { 0079 open (my $OUT, ">", $file); 0080 print $OUT @l; 0081 close ($OUT); 0082 } 0083 } 0084 0085 functionUtilkde::diffFile( "@ARGV" );