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

0001 #!/usr/bin/perl
0002 
0003 # laurent Montel <montel@kde.org>
0004 # This function allows to adapt file to new kdelibs API
0005 
0006 use File::Basename;
0007 use lib dirname( $0 );
0008 use functionUtilkde;
0009 use strict;
0010 
0011 
0012 open(my $F, "-|", qw(find . -type f));
0013 my $file;
0014 while ($file = <$F>) {
0015     chomp $file;
0016     next if functionUtilkde::excludeFile( $file);
0017 
0018     my $modified;
0019     my $necessaryToAddInclude;
0020     my %convertHash = ();
0021     open(my $FILE, $file) or warn "We can't open file $$!\n";
0022     my @l = map {
0023         my $orig = $_;
0024         if (my ($blank, $variable, $contenu) = m!^(\s*.*)(KConfigGroupSaver.*?\()(.*)\s*\);$!) {
0025             #warn "initial value for variable: '$variable'\n";
0026             $variable =~ s!KConfigGroupSaver!!;
0027             $variable =~ s! !!g;
0028             $variable =~ s!\(!!;
0029             my $saver = $variable;
0030             $variable =~ s!groupSaver!configGroup!;
0031             $variable =~ s!saver!group!;
0032             $variable =~ s!Saver!Group!;
0033             $variable =~ s!cgs!configGroup!;
0034 
0035             if( my ($firstelement, $groupname) = m!.*?\(\s*(.*),\s*(.*)\);\s*$!) {
0036                 $_ =~ s!KConfigGroupSaver!KConfigGroup!g;
0037                 $_ =~ s!$saver!$variable!;
0038 
0039                 # Two cases:
0040                 # Value-based: KConfigGroupSaver(&config) and config.readEntry
0041                 # Pointer-based: KConfigGroupSaver(config) and config->readEntry
0042                 my $valueBased = 0;
0043                 $valueBased = 1 if ( $firstelement =~ s!^\&!! );
0044 
0045                 my $config = ($valueBased) ? "$firstelement\." : "$firstelement\->";
0046                 my $group = "$variable\.";
0047 
0048                 print "variable='$variable firstelement=$firstelement groupname=$groupname valueBased=$valueBased group=$group'\n";
0049 
0050                 #create tab for function entry
0051                 $convertHash{$config.'readEntry'} = $group.'readEntry';
0052                 $convertHash{$config.'writeEntry'} = $group.'writeEntry';
0053                 $convertHash{$config.'writePathEntry'} = $group.'writePathEntry';
0054                 $convertHash{$config.'deleteEntry'} = $group.'deleteEntry';
0055                 $convertHash{$config.'readBoolEntry'} = $group.'readBoolEntry';
0056                 $convertHash{$config.'readFontEntry'} = $group.'readFontEntry';
0057                 $convertHash{$config.'readRectEntry'} = $group.'readRectEntry';
0058                 $convertHash{$config.'readPointEntry'} = $group.'readPointEntry';
0059                 $convertHash{$config.'readListEntry'} = $group.'readListEntry';
0060                 $convertHash{$config.'readPathEntry'} = $group.'readPathEntry';
0061                 $convertHash{$config.'readPathListEntry'} = $group.'readPathListEntry';
0062                 $convertHash{$config.'readNumEntry'} = $group.'readNumEntry';
0063                 $convertHash{$config.'readSizeEntry'} = $group.'readSizeEntry';
0064                 $convertHash{$config.'readColorEntry'} = $group.'readColorEntry';
0065                 $convertHash{$config.'readDoubleNumEntry'} = $group.'readDoubleNumEntry';
0066                 $convertHash{$config.'readUnsignedNum64Entry'} = $group.'readUnsignedNum64Entry';
0067                 $convertHash{$config.'readLongNumEntry'} = $group.'readLongNumEntry';
0068                 $convertHash{$config.'readDateTimeEntry'} = $group.'readDateTimeEntry';
0069                 $convertHash{$config.'readEntryUntranslated'} = $group.'readEntryUntranslated';
0070                 $convertHash{$config.'entryIsImmutable'} = $group.'entryIsImmutable';
0071                 $convertHash{$config.'readUnsignedNumEntry'} = $group.'readUnsignedNumEntry';
0072                 $convertHash{$config.'hasKey'} = $group.'hasKey';
0073                 }
0074             
0075             }
0076             $modified ||= $orig ne $_;
0077         $_;
0078         } <$FILE>;
0079 
0080     if ($modified) {
0081         open (my $OUT, ">", $file);
0082         print $OUT @l;
0083     }
0084     if ($modified )
0085     {
0086         local *F;
0087         open F, "+<", $file or do { print STDOUT "open($file) failed : \"$!\"\n"; next };
0088         my $str = join '', <F>;
0089 
0090         while ( my ($search, $replace) = each(%convertHash) )
0091         {
0092             #warn "$search -> $replace\n";  
0093             $str =~ s!$search!$replace!g;
0094         }
0095         seek F, 0, 0;
0096         print F $str;
0097         truncate F, tell(F);
0098         close F;
0099     }
0100 }
0101 functionUtilkde::diffFile( <$F> );