#!/bin/sh # ----------------------------------------------------------------------------- # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | # \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. # \\/ M anipulation | # ------------------------------------------------------------------------------ # License # This file is part of OpenFOAM. # # OpenFOAM is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # OpenFOAM is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with OpenFOAM; if not, write to the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # Script # doxyClassPatch # # Description # search for header files and fix up 'Class' section for doxygen # # change: # |Class # | className # -> # |Class # | Foam::className # # change: # |Class # | # -> # |Class # | Foam::(basename) # # leave untouched: # |Class # | Foam... # and # |Class # | Namespace::className # # # ----------------------------------------------------------------------------- backup=.unclassified remove=no for search do for file in $( find -H $search \ -type f -name "*.H" \ -exec perl -ne \ 'if (/^Class\s*$/) { $_ = <>; /(^\s*Foam|::)/ or print "$ARGV\n"; exit 0; }' \ \{\} \; ) do perl -i$backup -x $0 $file if [ -f $file$backup ] then [ $file -nt $file$backup ] && touch -r $file$backup $file [ "$remove" = yes ] && /bin/rm $file$backup 2>/dev/null fi done done exit 0 # ---------------------------------------------------------------- end-of-file # embedded Perl program #!/usr/bin/perl -wp use strict; my $namespace = "Foam::"; ( my $class = $ARGV ) =~ s{^.*/|\.[A-Za-z]$}{}g; if (/^Class\s*$/) { print; $_ = <>; # provide a reasonable guess for empty classes if (/^\s*$/) { $_ = " $namespace$class\n"; warn "modified $ARGV\n"; } elsif ( not /(^\s*Foam|::)/ ) { s{^\s+|\s*$}{}g; $_ = " $namespace$_\n"; warn "modified $ARGV\n"; } } # ---------------------------------------------------------------- end-of-file