File indexing completed on 2024-04-21 05:41:54

0001 #!/usr/bin/perl -w
0002 
0003 # Laurent Montel <montel@kde.org> (2014)
0004 # KMD5->QCryptographicHash(QCryptographicHash::Md5)
0005 # find -iname "*.cpp" -o -iname "*.h" |xargs kde-dev-scripts/kf5/convert-kmd5.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         my $regexp = qr/
0022           ^(\s*)           # (1) Indentation
0023           KMD5\s+
0024           (\w+)            # (2) variable name
0025           ${functionUtilkde::paren_begin}3${functionUtilkde::paren_end}  # (3) (args)         
0026           /x; # /x Enables extended whitespace mode
0027         if (my ($indent, $var, $argument) = $_ =~ $regexp ) {
0028            warn "VAR: $var , ARGUMENT $argument\n";
0029            $varname{$var} = 1;
0030            $_ = $indent . "QCryptographicHash $var(QCryptographicHash::Md5);\n";
0031            $_ .= $indent . "$var.addData$argument;\n";
0032         }
0033 
0034         if (/(\w+)\.base64Digest\s*\(\s*\)/) {
0035            my $var = $1;
0036            if ( defined $varname{$var} ) {
0037               s/$var\.base64Digest\b/$var.result().toBase64/;
0038            }
0039         }
0040         if (/(\w+)\.hexDigest\s*\(\s*\)/) {
0041            my $var = $1;
0042            if ( defined $varname{$var} ) {
0043               s/$var\.hexDigest\b/$var.result().toHex/;
0044            }
0045         }
0046 
0047 
0048         s/\<KMD5\b\>/\<QCryptographicHash>/ if (/#include/);
0049         s/\<kmd5.h\>/\<QCryptographicHash>/ if (/#include/);
0050         $modified ||= $orig ne $_;
0051         $_;
0052     } <$FILE>;
0053 
0054     if ($modified) {
0055         open (my $OUT, ">", $file);
0056         print $OUT @l;
0057         close ($OUT);
0058     }
0059 }
0060 
0061 functionUtilkde::diffFile( "@ARGV" );