Warning, file /sdk/kde-dev-scripts/kf5/convert-ksavefile.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 # KSaveFile->QSaveFile 0005 # find -iname "*.cpp" -o -iname "*.h" |xargs kde-dev-scripts/kf5/convert-ksavefile.pl 0006 # TODO need to improve it. 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 my %finalized_called = (); 0018 my @l = map { 0019 my $orig = $_; 0020 0021 #KSaveFile file( filename ); 0022 0023 my $regexp = qr/ 0024 ^(\s*) # (1) Indentation 0025 KSaveFile\s+ 0026 (\w+) # (2) variable name 0027 /x; # /x Enables extended whitespace mode 0028 if (my ($left, $var) = $_ =~ $regexp) { 0029 $varname{$var} = 1; 0030 s/\bKSaveFile\b/QSaveFile/; 0031 } 0032 if (/(\w+)\.finalize\(/) { 0033 my $var = $1; 0034 if ( defined $varname{$var} ) { 0035 s/$var\.finalize/$var\.commit/; 0036 $finalized_called{$var} = 1; 0037 } 0038 } 0039 # Add default argument 0040 if (/(\w+)\.open\(\s*\)/) { 0041 my $var = $1; 0042 if ( defined $varname{$var} ) { 0043 s/$var\.open\(\s*\)/$var\.open\(QIODevice::WriteOnly\)/; 0044 } 0045 } 0046 if (/(\w+)\.abort\(\s*\)/) { 0047 my $var = $1; 0048 if ( defined $varname{$var} ) { 0049 s/$var\.abort\(\s*\)/$var\.cancelWriting\(\)/; 0050 } 0051 } 0052 0053 s/\bKSaveFile\b/QSaveFile/g; 0054 s/\<KSaveFile\b\>/\<QSaveFile>/ if (/#include/); 0055 s/\<ksavefile.h\>/\<QSaveFile>/ if (/#include/); 0056 $modified ||= $orig ne $_; 0057 $_; 0058 } <$FILE>; 0059 0060 foreach my $var (keys %varname) { 0061 if (not defined($finalized_called{$var})) { 0062 warn "WARNING: add $var.commit() at the time it is destructed. KSaveFile called finalize() in the dtor, and this code never calls it, but QSaveFile requires an explicit call to commit(), otherwise the changes are discarded\n"; 0063 } 0064 } 0065 0066 if ($modified) { 0067 open (my $OUT, ">", $file); 0068 print $OUT @l; 0069 close ($OUT); 0070 } 0071 } 0072 0073 functionUtilkde::diffFile( "@ARGV" );