File: ws.sh

package info (click to toggle)
bzflag 2.0.2.20050318
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 20,464 kB
  • ctags: 24,134
  • sloc: cpp: 110,038; ansic: 9,514; sh: 4,105; makefile: 1,922; perl: 280; python: 221; xml: 180; objc: 178; php: 143
file content (84 lines) | stat: -rwxr-xr-x 2,963 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/sh

# thanx!
#
# removed a trailing space from your post. ;-)
# unexpand works for leading space but not later in the lines.
# adding --all will convert 2 spaces to a tab inside a string
# if they are aligned correctly. That's a Bad Thing.
# GNU "indent" screws up all kinds of stuff including
# *foo and &foo references. It has no knowledge of c++
#
# other thoughts?

# Welcome to the whitespace posting board.
#
# "man unexpand"
#
# unexpand -t 8 -a file > file2  (then do some moving)
#
# That program takes the tab positions into account.
# I don't know how standard it is (it is in the debian
# coreutils package if that's any indication), but I
# would suggest having the script simply bail on that
# conversion if it isn't present.


# Note: this script will not alter any files that already
# meet the BZFlag whitespace usage guidelines.
# if your files are being messed up by this, then chances
# are they are _already_ messed up when others look at them
# ie: you are now seeing what others see when they look at your
# messed up whitespace. If you find that this script can be
# improved to help your files be more compliant with the
# BZFlag whitespace guidelines, feel free to improve the script
# it will soon be run automatically from time to time, so
# if it messes up your code, then either fix it, or fix your code.
# Feel free to send specific examples to Tim Riker and he'll try
# to improve the script.
#	Thanx! Tim "ws king" Riker

# hmm... the 8 spaces to tab rule is a likely candidate:
# this        foo
# this	      foo
# those two line up before the script and won't afterwards
# timr will look into fixing that.


# cleanup whitespace issues
# could use new sed, but not everybody has that yet
# sed -i -e 's/search/replace/g' filename1 ...
# perl -pi -e 's/search/replace/g;' filename1 ...
# grep them first to not touch the file date/time

#temp=$$.tmp
files=`find . -name \*.cxx -o -name \*.h -o -name \*.cpp -o -name \*.c -o -name Makefile.am | sort`
# convert 8 spaces to tab
for file in $files ; do
 # don't actually include 8 spaces or they might get replaced. ;-)
 # that's a space in the []
 if grep -q '[ ]       ' $file ; then
  #sed -i -e 's/[ ]       /\t/g' $file
  perl -pi -e 's/[ ]       /\t/g' $file
  #unexpand --all --tabs=8 < $file > $tmp
  #cat $tmp > $file
 fi
done

files=`find . -name \*.cxx -o -name \*.h -o -name \*.cpp -o -name \*.c -o -name Makefile.am -o -name README\* -o -name \*.dsp -o -name \*.fmt | sort`
# remove trailing whitespace and convert spacetab to tab
for file in $files ; do
 # that's a tab in the []
 if grep -q ' [	]' $file ; then
  #sed -i -e 's/ \t/\t/g' $file
  perl -pi -e 's/ *\t/\t/g' $file
 fi
 if grep -q '[[:space:]][[:space:]]*$' $file ; then
  #sed -i -e 's/[[:space:]]*$//' $file
  perl -pi -e 's/\s*$/\n/' $file
 fi
done

# show any that remain for potential hand edits
echo files with trailing whitespace:
grep -Irsl '[[:space:]][[:space:]]*$' . | grep -v Makefile$