On Fri, 8 Jun 2007 08:40:42 +0200 Oleg Verych <[EMAIL PROTECTED]> wrote:
> After running this script with filename as parameter, > look (with diff) for, what can be corrected. Sorry, but "run it and see what it did" is pretty poor documentation. > Only "*.diff" and "*.patch" files are handled as patches. > > Signed-off-by: Oleg Verych <[EMAIL PROTECTED]> > -- > Two clean rules added, that can change look of damaged lines. > Yet script still fits one ordinary screen, so read the code! > > test cases: include/linux/ipv6.h, arch/x86_64/lib/{copy_user, memcpy}.S > > It's like lguest -- just for fun. > > clean-whitespace.sh | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > --- /dev/null 2007-04-04 10:55:19.204075250 +0200 > +++ linux-just-for-fun/scripts/clean-whitespace.sh 2007-06-08 > 07:53:21.000000000 +0200 > @@ -0,0 +1,28 @@ > +#!/bin/sh -e > +# clean whitespace damage; i/o = $1/$1.clean > + > +IFS='' ; t="`printf '\t'`" ; s=' ' ; s4="$s$s$s$s" ; w79=79 ; > +i="$1" ; o="$1.clean" > +strip_file_end='/^$/{N;s_^\n$_&_;T e;:n;N;s_^.*\n\n$_&_;t n;:e;};' > +not_patch_line='/^+[^+]/' > + > +case $1 in *[.]diff | *[.]patch) > + file=patch ; sp='+[!+]' ; p='+' ; addr="$not_patch_line";; > +esac > + > +sed -n "${addr:-$strip_file_end} { > +s|[$t$s]*$||; # trailing whitespace > +:next; # x*8 spaces on the line start -> x*tabs > +s|^\([\n]*\)$p\($t*\)$s4$s4|\1$p\2$t|;t next; # \n is needed after N > command > +s|^\([\n]*\)$p\($t*\)$s*$t|\1$p\2$t|g; # strip spaces between > tabs > +s|$s4$s4$s$s*|$t$t|g # more than 8 spaces -> 2 tabs > +s|$s*$t|$t|g # strip spaces before tab; tradeoff: may break some alignment ! > +};p" -- "$i" >"$o" && echo " > +please, see clean ${file:=source} file: $o > +" > +exec expand $i | while read -r line # check for long line > +do [ ${#line} -gt $w79 ] && case "$line" in $sp*) echo \ > +"at least one line wider than $w79 chars, found > +check your $file, please > +" 1>&2 ; exit ;; esac > +done Then again, it's a better strategy than trying to read the code ;) Please, tell us what it does, so that we can decide whether we want it in Linux. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/