|  | #!/bin/sh | 
|  |  | 
|  | # reindent a libpng C source | 
|  |  | 
|  | # COPYRIGHT: Written by Glenn Randers-Pehrson, 2016. | 
|  | # To the extent possible under law, the author has waived all copyright and | 
|  | # related or neighboring rights to this work.  This work is published from: | 
|  | # United States. | 
|  |  | 
|  | # Usage: | 
|  | # reindent inputtabsize outputtabsize inputcontinuestring outputcontinuestring | 
|  | # | 
|  | # Assumes that continued lines begin with indentation plus one space, and | 
|  | # that continued comments begin with indentation plus " *". | 
|  | # | 
|  | # eg, to change libpng coding style from 3-space indentation with 4-space | 
|  | # continuations to 4-space indentation with 2-space continuations: | 
|  | # | 
|  | #  reindent 3 4 "\t " "  " < example.c > example.c_4_2 | 
|  | # and to restore the file back to libpng coding style | 
|  | #  reindent 4 3 "  " "    " < example.c_4_2 > example.c_3_4 | 
|  |  | 
|  | unexpand --first-only --t $1 | \ | 
|  | sed -e "/^	*$3[^\*]/{s/$3/$4/}" | \ | 
|  | expand -t $2 |