1
0

replace_lang.sh 968 B

1234567891011121314151617181920212223242526
  1. #! /bin/bash
  2. langfile="$1"
  3. for define in $(grep "#define.*\"" $langfile|awk '{print $2}'); do
  4. str="$(grep "#define \<${define}\>.*\"" $langfile|grep -v STR|sed -e 's/.*"\(.*\)"/\1/')"
  5. # Cleanup newline
  6. str="$(echo "$str"|sed -e 's/\\n/\\\\n/g')"
  7. # Cleanup /
  8. # str="$(echo "$str"|sed -e 's:/:\/:g')"
  9. str=${str/\//\\/}
  10. str=${str/(/\\(}
  11. str=${str/)/\\)}
  12. str=${str/]/\\]}
  13. str=${str/[/\\[}
  14. replaced=0
  15. echo "$define -> $str"
  16. for file in $(find src -type f \! -name $(basename $langfile) -name "*.c"|grep -v svn); do
  17. grep "\<$define\>" $file > /dev/null 2>&1 && sed -i -e "s/\<$define\>/\"${str}\"/g" $file && echo "replace $define in $file" && replaced=1
  18. #grep "[,(?:]*\<$define\>" $file > /dev/null 2>&1 && sed -i -e "s/\([,(?:]\) *\<$define\>/\1 \"${str}\"/g" $file && echo "replace $define in $file" && replaced=1
  19. done
  20. if [ $replaced -eq 1 ]; then
  21. cp $langfile tmp
  22. grep -v "#define \<${define}\>" tmp > $langfile
  23. fi
  24. done