1#!/usr/bin/env perl
2#
3# Copyright (C) 2006-2008, 2012, 2014  Internet Systems Consortium, Inc. ("ISC")
4#
5# Permission to use, copy, modify, and/or distribute this software for any
6# purpose with or without fee is hereby granted, provided that the above
7# copyright notice and this permission notice appear in all copies.
8#
9# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15# PERFORMANCE OF THIS SOFTWARE.
16
17# Id: convertxsl.pl,v 1.14 2008/07/17 23:43:26 jinmei Exp
18
19use strict;
20use warnings;
21
22my $rev = 'Id: convertxsl.pl,v 1.14 2008/07/17 23:43:26 jinmei Exp ';
23$rev =~ s/\$//g;
24$rev =~ s/,v//g;
25$rev =~ s/Id: //;
26
27my $xsl = "unknown";
28my $lines = '';
29
30while (<>) {
31    chomp;
32    # pickout the id for comment.
33    $xsl = $_ if (/<!-- .Id:.* -->/);
34    # convert Id string to a form not recognisable by cvs.
35    $_ =~ s/<!-- .Id:(.*). -->/<!-- \\045Id: $1\\045 -->/;
36    s/[\ \t]+/ /g;
37    s/\>\ \</\>\</g;
38    s/\"/\\\"/g;
39    s/^/\t\"/;
40    s/[\ \t]+$//g;
41    s/$/\\n\"/;
42    if ($lines eq "") {
43	    $lines .= $_;
44    } else {
45	    $lines .= "\n" . $_;
46    }
47}
48
49$xsl =~ s/\$//g;
50$xsl =~ s/<!-- Id: //;
51$xsl =~ s/ -->.*//;
52$xsl =~ s/,v//;
53
54print "/*\n * Generated by $rev \n * From $xsl\n */\n";
55print 'static char xslmsg[] =',"\n";
56print $lines;
57
58print ';', "\n";
59