#! /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 # 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' "$@"