File: ad2c

package info (click to toggle)
offix-clipboard 2.4-5
  • links: PTS
  • area: main
  • in suites: slink
  • size: 252 kB
  • ctags: 155
  • sloc: ansic: 798; sh: 202; makefile: 45
file content (70 lines) | stat: -rwxr-xr-x 1,755 bytes parent folder | download | duplicates (10)
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/sh
#
#	ad2c : Convert app-defaults file to C strings decls.
#
#	George Ferguson, ferguson@cs.rcohester.edu, 12 Nov 1990.
#	19 Mar 1991: gf
#		Made it self-contained.
#	6 Jan 1992: mycroft@gnu.ai.mit.edu (Charles Hannum)
#		Removed use of "-n" and ":read" label since Gnu and
#		IBM sed print pattern space on "n" command. Still works
#		with Sun sed, of course.
#	7 Jan 1992: matthew@sunpix.East.Sun.COM (Matthew Stier)
#		Escape quotes after escaping backslashes.
#	8 Jul 1992: Version 1.6
#		Manpage fixes.
#	19 Apr 1993: Version 1.7
#		Remove comments that were inside the sed command since
#		some versions of sed don't like them. The comments are
#		now given here in the header.
#       15 Oct 1996: a.hentz@ieee.org (Andre Hentz)
#               Escape \\ in \\< and \\> (\\> turns into \\\\>) 
#
# Comments on the script by line:
# /^!/d		Remove comments
# /^$/d		Remove blanks
# s/\\/\\\\/g	Escape backslashes...
# s/\\$//g	...except the line continuation ones
# s/"/\\"/g	Escape quotes
# s/^/"/	Add leading quote
# : test	Establish label for later branch
# /\\$/b slash	Branch to label "slash" if line ends in backslash
# s/$/",/	Otherwise add closing quote and comma...
# p		...output the line...
# d		...and clear the pattern space so it's not printed again
# : slash	Branch comes here if line ends in backslash
# n		Read next line, append to pattern space
# [...]		The "d" and "s" commands that follow just delete
#		comments and blank lines and escape control sequences
# b test	Branch up to see if the line ends in backslash or not
#

sed '
: init
/^!/d
/^$/d
s/\\/\\\\/g
s/\\$//g
s/"/\\"/g
s/^/"/
: test
/\\$/b slash
s/$/",/
p
d
n
b init
: slash
n
/^!/d
/^$/d
s/\\/\\\\/g
s/\\$//g
s/"/\\"/g
/\\$/b slash
s/$/",/
p
d
n
b init
' "$@"