initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / doc / Doxygen / tools / fix-Class
blob8c3d69578249056597a32666c3363737bd23b789
1 #!/bin/sh
2 # -----------------------------------------------------------------------------
3 # ========= |
4 # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 # \\ / O peration |
6 # \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
7 # \\/ M anipulation |
8 # ------------------------------------------------------------------------------
9 # License
10 # This file is part of OpenFOAM.
12 # OpenFOAM is free software; you can redistribute it and/or modify it
13 # under the terms of the GNU General Public License as published by the
14 # Free Software Foundation; either version 2 of the License, or (at your
15 # option) any later version.
17 # OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
18 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 # for more details.
22 # You should have received a copy of the GNU General Public License
23 # along with OpenFOAM; if not, write to the Free Software Foundation,
24 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 # Script
27 # fix-Class
29 # Description
30 # Process the lists given on the command line.
31 # Column 1 = fileName, column 2 = Class or action
32 # See find-suspiciousTags for details.
34 # 1. fix ClassWithTrailingInformation by hand
35 # 2. InClass and InNamespace fixup
36 # 3. change
37 # |Class
38 # | anything
39 # ->
40 # |Class
41 # | className
43 # -----------------------------------------------------------------------------
45 # stop if trailing junk has been detected
46 for fileList
48 [ -f $fileList -a -r $fileList ] || {
49 echo "cannot read file list: $fileList"
50 exit 1
53 grep ClassWithTrailingInformation $fileList
54 if [ $? = 0 ]
55 then
56 echo "#"
57 echo "# fix ClassWithTrailingInformation by hand"
58 echo "#"
59 exit 99
61 done
63 for fileList
65 # repair InClass, InNamespace
66 for tag in Class Namespace
68 backup=".repair-In$tag"
69 for file in $(sed -n -e "s/In$tag *$//p" $fileList)
71 echo "repair In$tag: $file"
72 perl -i$backup -pe "s/^$tag/In$tag/" $file
73 done
74 done
76 # repair the class names (with namespace)
77 backup=".repair-reclassify"
78 cat $fileList | while read fileName className
80 # use classes with '::' separator to avoid too
81 # many false positives
82 perl -i$backup -x $0 $fileName $className
83 done
84 done
86 exit 0
88 # ---------------------------------------------------------------- end-of-file
89 # embedded Perl program
90 #!/usr/bin/perl -w
91 use strict;
93 # args: fileName className
94 # - className must contain '::'
95 my $className = pop;
96 @ARGV == 1 and ($className ||= '') =~ /::/ or exit 1;
98 warn "repair: @ARGV $className\n";
100 while (<>)
102 if (/^Class\s*$/) {
103 print;
104 $_ = <>; # get and discard the next line
105 $_ = " $className\n";
108 print;
111 # ---------------------------------------------------------------- end-of-file