1#!/bin/sh 2set -e 3 4if [ $# -lt 1 ]; then 5 argv0=`basename $0` 6 echo "$argv0: Convert source code written for Xr to use Cairo instead." >&2 7 echo "" >&2 8 echo "Usage: $argv0 file [...]" >&2 9 exit 1 10fi 11 12xr2cairo() { 13 file=$1 14 backup=$file.xr 15 16 if [ -e $backup ]; then 17 echo "Warning: Backup file $backup already exists --- not backing up this time." >&2 18 else 19 cp $file $backup 20 fi 21 sed -e ' 22 s/\(Xr[a-zA-Z]*\)RGB/\1Rgb/g 23 s/\(Xr[a-zA-Z]*\)NextTo/\1Similar/g 24 25 s/Xr\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z]\+\)/\Lcairo_\1_\2_\3_\4_\5\E/g 26 s/Xr\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z]\+\)/\Lcairo_\1_\2_\3_\4\E/g 27 s/Xr\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z]\+\)/\Lcairo_\1_\2_\3\E/g 28 s/Xr\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z0-9]\+\)/\Lcairo_\1_\2\E/g 29 s/Xr\([A-Z]\+[a-z]\+\)/\Lcairo_\1\E/g 30 31 s/\(cairo_\(operator\|status\|fill_rule\|line_cap\|line_join\|filter\|format\)_[a-z0-9_]\{2,\}\)/\U\1/g 32 33 s/cairo_\(fill_rule\|line_cap\|line_join\|format\|operator\|status\|filter\|surface\|matrix\)$/cairo_\1_t/g 34 s/cairo_\(fill_rule\|line_cap\|line_join\|format\|operator\|status\|filter\|surface\|matrix\)\([^_]\)/cairo_\1_t\2/g 35 s/_cairo_\(fill_rule\|line_cap\|line_join\|format\|operator\|status\|filter\|surface\|matrix\)_t/cairo_\1/g 36 s/cairo_state/cairo_t/g 37 s/_cairo_t\([^a-zA-Z0-9_]\)/cairo\1/g 38 39 s/Xr\.h/cairo.h/g 40 41 ' $backup > $file 42} 43 44while [ $# -gt 0 ]; do 45 file=$1 46 shift 47 xr2cairo $file 48done 49 50