1#!/bin/sh 2# 3# ad2c : Convert app-defaults file to C strings decls. 4# 5# George Ferguson, ferguson@cs.rcohester.edu, 12 Nov 1990. 6# 19 Mar 1991: gf 7# Made it self-contained. 8# 6 Jan 1992: mycroft@gnu.ai.mit.edu (Charles Hannum) 9# Removed use of "-n" and ":read" label since Gnu and 10# IBM sed print pattern space on "n" command. Still works 11# with Sun sed, of course. 12# 7 Jan 1992: matthew@sunpix.East.Sun.COM (Matthew Stier) 13# Escape quotes after escaping backslashes. 14# 8 Jul 1992: Version 1.6 15# Manpage fixes. 16# 19 Apr 1993: Version 1.7 17# Remove comments that were inside the sed command since 18# some versions of sed don't like them. The comments are 19# now given here in the header. 20# 21# Comments on the script by line: 22# /^!/d Remove comments 23# /^$/d Remove blanks 24# s/\\/\\\\/g Escape backslashes... 25# s/\\$//g ...except the line continuation ones 26# s/"/\\"/g Escape quotes 27# s/^/"/ Add leading quote 28# : test Establish label for later branch 29# /\\$/b slash Branch to label "slash" if line ends in backslash 30# s/$/",/ Otherwise add closing quote and comma... 31# p ...output the line... 32# d ...and clear the pattern space so it's not printed again 33# : slash Branch comes here if line ends in backslash 34# n Read next line, append to pattern space 35# [...] The "d" and "s" commands that follow just delete 36# comments and blank lines and escape control sequences 37# b test Branch up to see if the line ends in backslash or not 38# 39 40sed ' 41/^!/d 42/^$/d 43s/\\/\\\\/g 44s/\\$//g 45s/"/\\"/g 46s/^/"/ 47: test 48/\\$/b slash 49s/$/",/ 50p 51d 52: slash 53n 54/^!/d 55/^$/d 56s/"/\\"/g 57s/\\\\/\\/g 58s/\\n/\\\\n/g 59s/\\t/\\\\t/g 60s/\\f/\\\\f/g 61s/\\b/\\\\b/g 62b test' "$@" 63