r22259 - gnucash/trunk/test-templates - Fix make-testfile to count references in UI files

John Ralls jralls at code.gnucash.org
Mon Jul 2 17:24:07 EDT 2012


Author: jralls
Date: 2012-07-02 17:24:07 -0400 (Mon, 02 Jul 2012)
New Revision: 22259
Trac: http://svn.gnucash.org/trac/changeset/22259

Modified:
   gnucash/trunk/test-templates/make-testfile
Log:
Fix make-testfile to count references in UI files

Some functions may be called only by callback reference in a GtkBuilder
XML file (*.glade, *.xml, or *.ui). Indicate that usage in the test-file
function summary.

Modified: gnucash/trunk/test-templates/make-testfile
===================================================================
--- gnucash/trunk/test-templates/make-testfile	2012-07-02 18:16:13 UTC (rev 22258)
+++ gnucash/trunk/test-templates/make-testfile	2012-07-02 21:24:07 UTC (rev 22259)
@@ -117,6 +117,19 @@
     return ($calls, $files);
 }
 
+sub search_glade {
+    my ($name) = @_;
+    my $calls = `egrep -r $name --include="*.glade" --include=*.xml"  --include=*.ui" src | wc -l`;
+    chomp $calls;
+    $calls =~ s/\s//g;
+    my $files = `egrep -rl $name --include="*.glade" --include=*.xml"  --include=*.ui" src | wc -l`;
+    chomp $files;
+    $files =~ s/\s//g;
+
+    return ($calls, $files);
+}
+
+
 sub search_local {
     my ($name, $inpath) = @_;
     open INFILE, "<$inpath" or die "Failed to open $inpath: $!";
@@ -147,7 +160,7 @@
 
 sub process_function {
     my ($c_name, $static, $func, $inpath) = @_;
-    my ($ext_calls, $ext_files, $scm_calls, $scm_files, $not_used);
+    my ($ext_calls, $ext_files, $scm_calls, $scm_files, $ui_calls, $ui_files, $not_used);
     my $gobject_re = qr/_(?:init|constructor|dispose|finalize|[sg]et_property)$/;
     if ($c_name =~ /$gobject_re/) {
 	print OUTFH "/* $c_name\n";
@@ -158,9 +171,10 @@
     unless ($static) {
 	($ext_calls, $ext_files) = search_external($c_name, $inpath);
 	($scm_calls, $scm_files) = search_scheme($c_name);
+	($ui_calls, $ui_files) = search_glade($c_name);
     }
     my ($local_calls, $local_callbacks, $local_refs) = search_local($c_name, $inpath);
-    unless ($ext_calls || $scm_calls) {
+    unless ($ext_calls || $scm_calls || $ui_calls) {
 	my $local_use = $local_calls + $local_callbacks + $local_refs;
 	print OUTFH "// Make Static\n" if !$static && $local_use > 1;
 	unless ($local_use) {
@@ -175,11 +189,13 @@
 	print OUTFH "/* $c_name\n";
 	print OUTFH join("\n", @$func);
 	print OUTFH "// ";
-	print OUTFH "External: 0\n" if $ext_calls + $scm_calls == 0;
+	print OUTFH "External: 0\n" if $ext_calls + $scm_calls + $ui_calls == 0;
 	print OUTFH "C: $ext_calls " if $ext_calls > 0;
 	print OUTFH "in $ext_files " if $ext_calls > 1;
 	print OUTFH "SCM: $scm_calls " if $scm_calls > 0;
 	print OUTFH "in $scm_files" if $scm_calls > 1;
+	print OUTFH "UI: $ui_calls " if $ui_calls > 0;
+	print OUTFH "in $ui_files" if $ui_calls > 1;
 	print OUTFH " Local: $local_calls:$local_callbacks:$local_refs\n";
         print OUTFH "*/\n";
     }



More information about the gnucash-changes mailing list