author | llornkcor <llornkcor> | 2005-08-10 00:45:31 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2005-08-10 00:45:31 (UTC) |
commit | cfc9ff35215081a33adde29872553513d08f58bb (patch) (side-by-side diff) | |
tree | c18beeaf0370f6eb44061fdaebec9c22728b6c38 /scripts/optimize-connect | |
parent | 944dd27abc957b8010fa006d34115de16924b8f6 (diff) | |
download | opie-cfc9ff35215081a33adde29872553513d08f58bb.zip opie-cfc9ff35215081a33adde29872553513d08f58bb.tar.gz opie-cfc9ff35215081a33adde29872553513d08f58bb.tar.bz2 |
adding optimize-conmect perl script, originally given to opie by trolltech (but since lost by opie, or not added to cvs). This removes any white spaces from the connect macro, to speed things up at runtime.
-rwxr-xr-x | scripts/optimize-connect | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/optimize-connect b/scripts/optimize-connect new file mode 100755 index 0000000..c81ecae --- a/dev/null +++ b/scripts/optimize-connect @@ -0,0 +1,34 @@ +#!/usr/bin/perl + +# Strips unnecessary whitespace from SIGNAL() and SLOT() macros, +# so that this doesn't have to be done at runtime. +# Believe it or not, this actually speeds things up. +# +# Limitation: only 1 set of (...) inside the macro, so it can't handle +# signals and slots that have function pointers as arguments. + +for $arg (@ARGV) { + if ( 0 ) { + # opts + } else { + push @files, $arg; + } +} + +sub canonWS { + my ($s) = @_; + $s =~ s/(.)\s+(\W)/$1$2/g; + $s =~ s/(\W)\s+(.)/$1$2/g; + return $s; +}; + +for $file (@files) { + open F, $file; + $c = join "",<F>; + close F; + $c =~ s/\b((?:SIGNAL|SLOT)\s*\(\s*)((?:[^\n;()]+|\([^()]*\))*)\)/"$1".canonWS($2).")"/egs; + open F, ">t$$"; + print F $c; + close F; + system("diff -u $file t$$"); +} |