From 7446cee72013a1f6f3d73b1815887cc209577b42 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@Germany>
Date: Tue, 22 Jul 2008 14:04:29 +0200
Subject: [PATCH] DebugSwitches in etc/controlDict is incomplete/incorrect

 Added doc/Doxygen/tools/find-debugNames to help but the problem requires
 more attention (Henry/Andy/Mattijs?)
 Caveat:
   - names defined with nested defines will be missed.
   - names defined via typename will be missed.

Cleanup example:

#!/bin/sh
(
cd $WM_PROJECT_DIR
doc/Doxygen/tools/find-debugNames|tee debugs.orig|sed -e 's@ *//.*$@@'>debugs
diff -uw etc/controlDict debugs > debugs.diff
echo "hand-resolve the conflicts - see debugs.diff"
)
---
 doc/Doxygen/tools/README          |  1 +
 doc/Doxygen/tools/find-debugNames | 62 +++++++++++++++++++++++++++++++
 etc/controlDict                   |  7 ++--
 3 files changed, 67 insertions(+), 3 deletions(-)
 create mode 100755 doc/Doxygen/tools/find-debugNames

diff --git a/doc/Doxygen/tools/README b/doc/Doxygen/tools/README
index 86c4e8ae734..136ca55443f 100644
--- a/doc/Doxygen/tools/README
+++ b/doc/Doxygen/tools/README
@@ -12,4 +12,5 @@ Misc Tools
 2.  find-its
 3.  find-junkFiles
 4.  find-longlines
+5.  find-debugNames (requires git)
 
diff --git a/doc/Doxygen/tools/find-debugNames b/doc/Doxygen/tools/find-debugNames
new file mode 100755
index 00000000000..38b4f80d79d
--- /dev/null
+++ b/doc/Doxygen/tools/find-debugNames
@@ -0,0 +1,62 @@
+#!/usr/bin/perl -w
+use strict;
+
+# -----------------------------------------------------------------------------
+#
+# Script
+#     find-debugNames
+#
+# Description
+#     Use git-grep to find these macros.
+#
+#         defineTypeNameAndDebug
+#         defineTemplateTypeNameAndDebugWithName
+#         defineTemplateTypeNameAndDebug
+#         defineNamedTemplateTypeNameAndDebug
+#
+#     print sorted list
+#
+# Note
+#     will miss debug switches that are defined usign two defines
+# -----------------------------------------------------------------------------
+
+$ENV{WM_PROJECT_DIR} and chdir "$ENV{WM_PROJECT_DIR}"
+  or die "cannot change to OpenFOAM dir\n";
+
+local @ARGV =
+q{git-grep -e 'define\(Named\)*\(Template\)*TypeNameAndDebug\(WithName\)*' src applications |};
+
+# parse stuff that looks like this:
+# ODE/ODESolvers/KRR4/KRR4.C:defineTypeNameAndDebug(Foam::KRR4, 0);
+
+my %debug;
+
+while (<>) {
+    /#/ and next;    # avoid defines
+    if (s{,\s*(\d+)\s*\)\s*\;\s*$}{})    # get value and chop end
+    {
+        my $v = $1;
+        s{\s*,.*$}{};                    # remove all trailing info
+        s{^(.+?):(.+?)\(\s*(Foam::)?}{} or next;    # get file and chop begin
+
+        my $file = $1;
+        my $k    = $_;
+
+        $debug{$k} = [ $v, $file ];
+    }
+}
+
+print "DebugSwitches\n{\n";
+
+for my $k ( sort keys %debug ) {
+    my ( $v, $file ) = @{ $debug{$k} };
+    my $pad = ( 20 - length $k );
+    while ( $pad <= 1 ) {
+        $pad += 4;
+    }
+    $pad = ' ' x $pad;
+
+    print "    $k$pad$v;    // $file\n";
+}
+
+print "}\n";
diff --git a/etc/controlDict b/etc/controlDict
index 2cf2ce334aa..cb03f106d69 100644
--- a/etc/controlDict
+++ b/etc/controlDict
@@ -57,8 +57,8 @@ DebugSwitches
     C8H18               0;
     C9H20               0;
     CH3OH               0;
-    CallbackRegistry    0;
-    CarnahanStarling    0;
+    CallbackRegistryName    0;
+    CarnahanStarlingRadial  0;
     ChomiakInjector     0;
     Cloud<indexedParticle>  0;
     Cloud<kinematicParcel>  0;
@@ -208,7 +208,7 @@ DebugSwitches
     SIBS                0;
     SKA                 0;
     SLTS                0;
-    STARCDRotation      0;
+    STARCDCoordinateRotation    0;
     Schaeffer           0;
     SchillerNaumann     0;
     SinclairJackson     0;
@@ -781,6 +781,7 @@ DebugSwitches
     volVectorField      0;
     volVectorField::DimensionedInternalField 0;
     vtk                 0;
+    vtkPV3Foam          0;
     walkPatch           0;
     wall                0;
     wallHeatTransfer    0;
-- 
GitLab