blob: 2ec45ed9afd52f4720f01547fd8efacb424d85d9 (
plain)
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
|
#! /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.
# 31 May 2004: Werner Lemberg <wl@gnu.org>
# Force casts to 'String'.
#
# 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 and cast
# : 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 '
/^!/d
/^$/d
s/\\/\\\\/g
s/\\$//g
s/"/\\"/g
s/^/(String)"/
: test
/\\$/b slash
s/$/",/
p
d
: slash
n
/^!/d
/^$/d
s/"/\\"/g
s/\\\\/\\/g
s/\\n/\\\\n/g
s/\\t/\\\\t/g
s/\\f/\\\\f/g
s/\\b/\\\\b/g
b test' "$@"
|