File: xr2cairo

package info (click to toggle)
cairo 1.18.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie, trixie-proposed-updates
  • size: 72,788 kB
  • sloc: ansic: 217,451; cpp: 2,108; cs: 1,763; xml: 1,280; sh: 990; python: 433; javascript: 347; awk: 89; makefile: 83
file content (49 lines) | stat: -rwxr-xr-x 1,508 bytes parent folder | download | duplicates (13)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh
set -e

if [ $# -lt 1 ]; then
    argv0=`basename $0`
    echo "$argv0: Convert source code written for Xr to use Cairo instead." >&2
    echo "" >&2
    echo "Usage: $argv0 file [...]" >&2
    exit 1
fi

xr2cairo() {
	file=$1
	backup=$file.xr

	if [ -e $backup ]; then
		echo "Warning: Backup file $backup already exists --- not backing up this time." >&2
	else
		cp $file $backup
	fi
	sed -e '
		s/\(Xr[a-zA-Z]*\)RGB/\1Rgb/g
		s/\(Xr[a-zA-Z]*\)NextTo/\1Similar/g

		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
		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
		s/Xr\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z]\+\)/\Lcairo_\1_\2_\3\E/g
		s/Xr\([A-Z]\+[a-z]\+\)\([A-Z]\+[a-z0-9]\+\)/\Lcairo_\1_\2\E/g
		s/Xr\([A-Z]\+[a-z]\+\)/\Lcairo_\1\E/g

		s/\(cairo_\(operator\|status\|fill_rule\|line_cap\|line_join\|filter\|format\)_[a-z0-9_]\{2,\}\)/\U\1/g

		s/cairo_\(fill_rule\|line_cap\|line_join\|format\|operator\|status\|filter\|surface\|matrix\)$/cairo_\1_t/g
		s/cairo_\(fill_rule\|line_cap\|line_join\|format\|operator\|status\|filter\|surface\|matrix\)\([^_]\)/cairo_\1_t\2/g
		s/_cairo_\(fill_rule\|line_cap\|line_join\|format\|operator\|status\|filter\|surface\|matrix\)_t/cairo_\1/g
		s/cairo_state/cairo_t/g
		s/_cairo_t\([^a-zA-Z0-9_]\)/cairo\1/g

		s/Xr\.h/cairo.h/g

		' $backup > $file
}

while [ $# -gt 0 ]; do
	file=$1
	shift
	xr2cairo $file
done