Hi Tor, Thanks a lot for reviewing and the comments, I haven't even known the '(un)expand' until you told :) To make it concise, do you think it is enough to replace 'Inital' Tabs with 4 space characters, while change other tabs with 1 space character. In addition the trailing spaces could be removed at the same time as the final step.
Here is the method I intend to update the patch, your further comments are appreciated, thank you! step 1. Replace Initial tabs with 4 space characters: $ cat /tmp/tabfile | while read fn ; do expand -i -t 4 $fn > /tmp/no_initabfile; mv /tmp/no_initabfile $fn; done step 2. Replace all tabs in the middle/at the end of code with 1 space character: $ cat /tmp/tabfile | while read fn; do expand -t 1 $fn > /tmp/no_tabfile; mv /tmp/no_tabfile $fn; done step 3. Remove all trailing spaces stepping through inc and bas files: $ find | grep -e bas$ -e inc$ | while read fn; do sed -r 's/ +$//' $fn > /tmp/no_trailingspaces ; mv /tmp/no_trailingspaces $fn; done Best wishes, Yifan On Mon, Jan 03, 2011 at 04:51:28AM -0700, Tor Lillqvist wrote: > > cat /tmp/tabfile | sed 's/ / /' > /tmp/notabfile; > > Sorry, but just replacing every TAB character with a fixed number (in this > case, four) of SPACE characters is incorrect. To properly expand TAB > characters, each TAB needs to be replaced with a variable number of SPACE > characters, depending on which column the TAB is in. > > For instance if you have a line: > > foo bar > > (i.e. "foo", a TAB, and "bar"), the TAB should be replaced with just one > SPACE. (Assuming the intended tab width is four columns, as it is in OOo/LO. > Note that traditionally the tab width is eight columns.) > > (Also, you would want to use the "g" modifier in the sed 's' command to > replace every TAB on each line, not just the first.) > > Anyway, the "expand" command is the right tool to expand tabs. > > P.S. Your script can be written much simpler, no need to use "cat" so much: > > while read fn </tmp/tabs.auto.filelist.txt; do > sed 's/ / /g' < $fn > /tmp/notabfile > mv /tmp/notabfile $fn > done > > (Here still incorrectly using "sed" and not "expand".) > > --tml > _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice