Joseph S. Myers wrote:

> On Tue, 29 May 2012, Jim Meyering wrote:
>
>> Running the following command spots over 1500 typos, and suggests fixes:
>>
>>   $ git ls-files|misspellings -f -|grep -v '^ERROR:'|perl -pe \
>>   's/^(.*?)\[(\d+)\]: (\w+) -> "(.*?)"$/sed -i '\''${2}s!$3!$4!'\'' $1/' > k
>
> This command has some bugs in how it produces fixes, fixing them would
> make the output more useful in some cases:
>
>> sed -i '1811s!MISCELANEOUS!Miscellaneous!' gcc/config/mn10300/mn10300.md
>
> Should preserve the case of all-uppercase words.

I suppose that would be useful.

>> sed -i '2102s!hasnt!hasn't!' gcc/config/picochip/picochip.c
>
> Needs to allow for the ' in the replacement string.

I can do that on the command line, but it may not be worth it.
It's getting pretty ugly:

git ls-files|misspellings -f -|grep -v '^ERROR:'|perl -p \
  -e '/^(.*?)\[(\d+)\]: (\w+) -> "(.*?)"$/ or next;' \
  -e '($file,$N,$L,$R)=($1,$2,$3,$4); $q="'\''"; $R=~s/$q/$q\\$q$q/g;' \
  -e 's/.*/sed -i $q${N}s!$L!$R!$q $file/'

I.e., it would print this:

    sed -i '2102s!hasnt!hasn'\''t!' gcc/config/picochip/picochip.c

Reply via email to