summaryrefslogtreecommitdiff
path: root/scripts
Unidiff
Diffstat (limited to 'scripts') (more/less context) (ignore whitespace changes)
-rwxr-xr-xscripts/fixincludes34
1 files changed, 17 insertions, 17 deletions
diff --git a/scripts/fixincludes b/scripts/fixincludes
index 95fc129..da8613c 100755
--- a/scripts/fixincludes
+++ b/scripts/fixincludes
@@ -27,126 +27,126 @@ $experimental = 0; # try&error if an include is obsolete (slow!!)
27# statistic variables 27# statistic variables
28$exp_success = 0; 28$exp_success = 0;
29$exp_failure = 0; 29$exp_failure = 0;
30 30
31while (defined ($ARGV[0])) 31while (defined ($ARGV[0]))
32{ 32{
33 $_ = shift; 33 $_ = shift;
34 if (/^--help$|^-h$/) { 34 if (/^--help$|^-h$/) {
35 print "Usage: fixincludes [--verbose | -v] [--experimental | -e ] [--modify | -m ]\n"; 35 print "Usage: fixincludes [--verbose | -v] [--experimental | -e ] [--modify | -m ]\n";
36 exit 0; 36 exit 0;
37 } 37 }
38 elsif (/^--verbose$|^-v$/) { 38 elsif (/^--verbose$|^-v$/) {
39 $verbose = 1; # Oh is there a problem...? 39 $verbose = 1; # Oh is there a problem...?
40 } 40 }
41 elsif (/^--modify$|^-m$/) { 41 elsif (/^--modify$|^-m$/) {
42 $modify = 1; 42 $modify = 1;
43 } 43 }
44 elsif (/^--experimental$|^-e$/) { 44 elsif (/^--experimental$|^-e$/) {
45 $modify = 1; 45 $modify = 1;
46 $experimental = 1; 46 $experimental = 1;
47 } 47 }
48 elsif (!/^-/) { 48 elsif (!/^-/) {
49 push @explicitfiles, $_; 49 push @explicitfiles, $_;
50 } 50 }
51} 51}
52 52
53$cppExt = "(cpp|cc|cxx|C|c\\+\\+)"; 53$cppExt = "(cpp|cc|cxx|C|c\\+\\+)";
54$hExt = "(h|H|hh|hxx|hpp|h\\+\\+)"; 54$hExt = "(h|H|hh|hxx|hpp|h\\+\\+)";
55 55
56# list of compat headers. scroll down ... much of boring stuff here.. 56# list of compat headers. scroll down ... much of boring stuff here..
57%compatmap = ( 57%compatmap = (
58 'qapp.h' => "qapplication.h", 58 'qapp.h' => "qapplication.h",
59 'qarray.h' => "qmemarray.h", 59 #'qarray.h' => "qmemarray.h",
60 'qbitarry.h' => "qbitarray.h", 60 #'qbitarry.h' => "qbitarray.h",
61 'qbttngrp.h' => "qbuttongroup.h", 61 'qbttngrp.h' => "qbuttongroup.h",
62 'qchkbox.h' => "qcheckbox.h", 62 #'qchkbox.h' => "qcheckbox.h",
63 'qclipbrd.h' => "qclipboard.h", 63 'qclipbrd.h' => "qclipboard.h",
64 'qcollect.h' => "qptrcollection.h", 64 #'qcollect.h' => "qptrcollection.h",
65 'qcollection.h' => "qptrcollection.h", 65 #'qcollection.h' => "qptrcollection.h",
66 'qcombo.h' => "qcombobox.h", 66 'qcombo.h' => "qcombobox.h",
67 'qconnect.h' => "qconnection.h", 67 'qconnect.h' => "qconnection.h",
68 'qdatetm.h' => "qdatetime.h", 68 'qdatetm.h' => "qdatetime.h",
69 'qdrawutl.h' => "qdrawutil.h", 69 'qdrawutl.h' => "qdrawutil.h",
70 'qdstream.h' => "qdatastream.h", 70 'qdstream.h' => "qdatastream.h",
71 'qfiledef.h' => "private/qfiledefs_p.h", 71 #'qfiledef.h' => "private/qfiledefs_p.h",
72 'qfiledlg.h' => "qfiledialog.h", 72 'qfiledlg.h' => "qfiledialog.h",
73 'qfileinf.h' => "qfileinfo.h", 73 'qfileinf.h' => "qfileinfo.h",
74 'qfontdta.h' => "qfontdata.h", 74 'qfontdta.h' => "qfontdata.h",
75 'qfontinf.h' => "qfontinfo.h", 75 'qfontinf.h' => "qfontinfo.h",
76 'qfontmet.h' => "qfontmetrics.h", 76 'qfontmet.h' => "qfontmetrics.h",
77 'qgrpbox.h' => "qgroupbox.h", 77 'qgrpbox.h' => "qgroupbox.h",
78 'qintcach.h' => "qintcache.h", 78 'qintcach.h' => "qintcache.h",
79 'qiodev.h' => "qiodevice.h", 79 'qiodev.h' => "qiodevice.h",
80 'qlcdnum.h' => "qlcdnumber.h", 80 'qlcdnum.h' => "qlcdnumber.h",
81 'qlined.h' => "qlineedit.h", 81 'qlined.h' => "qlineedit.h",
82 'qlist.h' => "qptrlist.h", 82 #'qlist.h' => "qptrlist.h",
83 'qmenudta.h' => "qmenudata.h", 83 'qmenudta.h' => "qmenudata.h",
84 'qmetaobj.h' => "qmetaobject.h", 84 'qmetaobj.h' => "qmetaobject.h",
85 'qmlined.h' => "qtmultilineedit.h", 85 'qmlined.h' => "qtmultilineedit.h",
86 'qmsgbox.h' => "qmessagebox.h", 86 'qmsgbox.h' => "qmessagebox.h",
87 'qmultilinedit.h' => "qmultilineedit.h", 87 'qmultilinedit.h' => "qmultilineedit.h",
88 'qobjcoll.h' => "qobjectlist.h>\n\#include <qobjectdict.h", 88 'qobjcoll.h' => "qobjectlist.h>\n\#include <qobjectdict.h",
89 'qobjdefs.h' => "qobjectdefs.h", 89 'qobjdefs.h' => "qobjectdefs.h",
90 'qpaintd.h' => "qpaintdevice.h", 90 'qpaintd.h' => "qpaintdevice.h",
91 'qpaintdc.h' => "qpaintdevicedefs.h", 91 'qpaintdc.h' => "qpaintdevicedefs.h",
92 'qpdevmet.h' => "qpaintdevicemetrics.h", 92 'qpdevmet.h' => "qpaintdevicemetrics.h",
93 'qpmcache.h' => "qpixmapcache.h", 93 'qpmcache.h' => "qpixmapcache.h",
94 'qpntarry.h' => "qpointarray.h", 94 'qpntarry.h' => "qpointarray.h",
95 'qpopmenu.h' => "qpopupmenu.h", 95 'qpopmenu.h' => "qpopupmenu.h",
96 'qprndlg.h' => "qprintdialog.h", 96 'qprndlg.h' => "qprintdialog.h",
97 'qprogbar.h' => "qprogressbar.h", 97 'qprogbar.h' => "qprogressbar.h",
98 'qprogdlg.h' => "qprogressdialog.h", 98 'qprogdlg.h' => "qprogressdialog.h",
99 'qpsprn.h' => "<private/qpsprinter_p.h>", 99 'qpsprn.h' => "<private/qpsprinter_p.h>",
100 'qpushbt.h' => "qpushbutton.h", 100 'qpushbt.h' => "qpushbutton.h",
101 'qqueue.h' => "qptrqueue.h", 101 'qqueue.h' => "qptrqueue.h",
102 'qradiobt.h' => "qradiobutton.h", 102 'qradiobt.h' => "qradiobutton.h",
103 'qrangect.h' => "qrangecontrol.h", 103 'qrangect.h' => "qrangecontrol.h",
104 'qscrbar.h' => "qscrollbar.h", 104 'qscrbar.h' => "qscrollbar.h",
105 'qsocknot.h' => "qsocketnotifier.h", 105 'qsocknot.h' => "qsocketnotifier.h",
106 'qstack.h' => "qptrstack.h", 106# 'qstack.h' => "qptrstack.h",
107 'qtabdlg.h' => "qtabdialog.h", 107 'qtabdlg.h' => "qtabdialog.h",
108 'qtstream.h' => "qtextstream.h", 108 'qtstream.h' => "qtextstream.h",
109 'qvector.h' => "qptrvector.h", 109# 'qvector.h' => "qptrvector.h",
110 'qwidcoll.h' => "qwidgetlist.h\n\#include <qwidgetintdict.h", 110 'qwidcoll.h' => "qwidgetlist.h\n\#include <qwidgetintdict.h",
111 'qwindefs.h' => "qwindowdefs.h", 111 'qwindefs.h' => "qwindowdefs.h",
112 112
113# and now the KDE specific compat includes 113# and now the KDE specific compat includes
114 'kapp.h' => "kapplication.h", 114# 'kapp.h' => "kapplication.h",
115 'kstddirs.h' => "kstandarddirs.h", 115# 'kstddirs.h' => "kstandarddirs.h",
116 'kuniqueapp.h' => "kuniqueapplication.h", 116# 'kuniqueapp.h' => "kuniqueapplication.h",
117 'ktmainwindow.h'=> "kmainwindow.h", 117# 'ktmainwindow.h'=> "kmainwindow.h",
118 'kcolorbtn.h' => "kcolorbutton.h", 118# 'kcolorbtn.h' => "kcolorbutton.h",
119 'kcolordlg.h' => "kcolordialog.h", 119# 'kcolordlg.h' => "kcolordialog.h",
120 'kxmlgui.h' => "kxmlguifactory.h", 120# 'kxmlgui.h' => "kxmlguifactory.h",
121); 121);
122 122
123 123
124# now it starts to get interesting again 124# now it starts to get interesting again
125 125
126# Look for source files in the given directory ($dir, first parameter) 126# Look for source files in the given directory ($dir, first parameter)
127sub find_fixable_sources ($) 127sub find_fixable_sources ($)
128{ 128{
129 # for now I grep the directory (requires srcdir==builddir) 129 # for now I grep the directory (requires srcdir==builddir)
130 # actually it should read the Makefile and 130 # actually it should read the Makefile and
131 # find the _SOURCES / _OBJECTS tags that are put there by 131 # find the _SOURCES / _OBJECTS tags that are put there by
132 # automake and am_edit, but thats an excercise to the reader ;-) 132 # automake and am_edit, but thats an excercise to the reader ;-)
133 133
134 my ( $dir ) = @_; 134 my ( $dir ) = @_;
135 135
136 opendir (DIR, "$dir") || die "Couldn't read '$dir'\n"; 136 opendir (DIR, "$dir") || die "Couldn't read '$dir'\n";
137 my @sources = grep { /^.*\.$cppExt$/o } readdir(DIR); 137 my @sources = grep { /^.*\.$cppExt$/o } readdir(DIR);
138 closedir(DIR); 138 closedir(DIR);
139 139
140 print "found sources: [ " . join(' ', @sources) . " ] in $dir\n" if ($verbose); 140 print "found sources: [ " . join(' ', @sources) . " ] in $dir\n" if ($verbose);
141 141
142 # prefix them with $dir 142 # prefix them with $dir
143 my @retsources = (); 143 my @retsources = ();
144 foreach $source(@sources) { 144 foreach $source(@sources) {
145 push @retsources, "$dir/$source"; 145 push @retsources, "$dir/$source";
146 } 146 }
147 147
148 return @retsources; 148 return @retsources;
149} 149}
150 150
151# Look for header files in the given directory ($dir, first parameter) 151# Look for header files in the given directory ($dir, first parameter)
152sub find_fixable_headers ($) 152sub find_fixable_headers ($)
@@ -433,65 +433,65 @@ sub fix_unnecessary($)
433 my $output = `$makecmd $blanksrc.lo 2>&1`; 433 my $output = `$makecmd $blanksrc.lo 2>&1`;
434 $objextension = ".lo" if ( 0 == ($? >> 8)); 434 $objextension = ".lo" if ( 0 == ($? >> 8));
435 if($objextension eq "BUG") { 435 if($objextension eq "BUG") {
436 print "failed with .lo... "; 436 print "failed with .lo... ";
437 unlink "$blanksrc.o"; 437 unlink "$blanksrc.o";
438 $output = `$makecmd $blanksrc.o 2>&1`; 438 $output = `$makecmd $blanksrc.o 2>&1`;
439 $objextension = ".o" if ( 0 == ($? >> 8)); 439 $objextension = ".o" if ( 0 == ($? >> 8));
440 } 440 }
441 if($objextension eq "BUG") { 441 if($objextension eq "BUG") {
442 warn "can't figure out right compile command for $srcfile :-(\n??? unused, or didn't compile in the first place?\n"; 442 warn "can't figure out right compile command for $srcfile :-(\n??? unused, or didn't compile in the first place?\n";
443 warn "$output"; 443 warn "$output";
444 chdir($origdir); 444 chdir($origdir);
445 return; 445 return;
446 } 446 }
447 447
448 print "worked with $objextension\n"; 448 print "worked with $objextension\n";
449 449
450 # now try to drop some includes 450 # now try to drop some includes
451 foreach $include (@includes) { 451 foreach $include (@includes) {
452 # kdatastream is special because 452 # kdatastream is special because
453 # it will break the application if removed even 453 # it will break the application if removed even
454 # if it continues to compile 454 # if it continues to compile
455 next if( $include eq "kdatastream.h"); 455 next if( $include eq "kdatastream.h");
456 # I also like to have kdebug.h still in 456 # I also like to have kdebug.h still in
457 # so that it's easy to add kdDebug calls 457 # so that it's easy to add kdDebug calls
458 next if( $include eq "kdebug.h"); 458 next if( $include eq "kdebug.h");
459 # avoid this one as it might cause 459 # avoid this one as it might cause
460 # certain code parts to be disabled from compilation 460 # certain code parts to be disabled from compilation
461 next if( $include eq "qmodules.h"); 461 next if( $include eq "qmodules.h");
462 # check if it is its own header file 462 # check if it is its own header file
463 my $blankhdr = $include; 463 my $blankhdr = $include;
464 $blankhdr =~ s/(.*)\.[^\.]+/$1/; 464 $blankhdr =~ s/(.*)\.[^\.]+/$1/;
465 next if ($blankhdr eq $blanksrc); 465 next if ($blankhdr eq $blanksrc);
466 466
467 chdir($srcdir); 467 chdir($srcdir);
468 468
469 local $localbackup = $srcfile . "#fixincludes"; 469 local $localbackup = $srcfile . "#fixincludes";
470 470
471 # preserve timestamp if possible for CVS 471 # preserve timestamp if possible for CVS
472 unlink $localbackup; 472 unlink $localbackup;
473 rename $srcfile, $localbackup; 473 rename $srcfile, $localbackup;
474 copy_file($localbackup, $srcfile); 474 copy_file($localbackup, $srcfile);
475 475
476 # revert to backup in case of interrupt (Ctrl+C) 476 # revert to backup in case of interrupt (Ctrl+C)
477 $SIG{'INT'} = \&sighandler_fix_unnecessary; 477 $SIG{'INT'} = \&sighandler_fix_unnecessary;
478 478
479 # check if it still compiles 479 # check if it still compiles
480 if($verbose) { 480 if($verbose) {
481 chdir($builddir); 481 chdir($builddir);
482 unlink "$builddir/$blanksrc$objextension"; 482 unlink "$builddir/$blanksrc$objextension";
483 `$makecmd $blanksrc$objextension 2>&1`; 483 `$makecmd $blanksrc$objextension 2>&1`;
484 die "unexpected error $output\nexitcode=" . ($? >> 8) if($? >> 8); 484 die "unexpected error $output\nexitcode=" . ($? >> 8) if($? >> 8);
485 chdir($srcdir); 485 chdir($srcdir);
486 } 486 }
487 487
488 # duplicates have to be nuked here , so it will be dropped maximum once 488 # duplicates have to be nuked here , so it will be dropped maximum once
489 print "trying without $include: "; 489 print "trying without $include: ";
490 &remove_include($srcfile, $include, 1); 490 &remove_include($srcfile, $include, 1);
491 491
492 chdir($builddir); 492 chdir($builddir);
493 493
494 # try if it compiles 494 # try if it compiles
495 unlink "$builddir/$blanksrc$objextension"; 495 unlink "$builddir/$blanksrc$objextension";
496 $output=`$makecmd $blanksrc$objextension 2>&1`; 496 $output=`$makecmd $blanksrc$objextension 2>&1`;
497 my $retcode = ($? >> 8); 497 my $retcode = ($? >> 8);