From d6b0035a325d060d7f175705c33b0a2d7b60e533 Mon Sep 17 00:00:00 2001 From: Eric Busboom Date: Mon, 15 May 2000 06:18:21 +0000 Subject: reparing damage from removing files svn path=/trunk/; revision=3042 --- libical/scripts/mkrestrictiontable.pl | 86 +++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100755 libical/scripts/mkrestrictiontable.pl (limited to 'libical/scripts/mkrestrictiontable.pl') diff --git a/libical/scripts/mkrestrictiontable.pl b/libical/scripts/mkrestrictiontable.pl new file mode 100755 index 0000000000..c91f3d0bc4 --- /dev/null +++ b/libical/scripts/mkrestrictiontable.pl @@ -0,0 +1,86 @@ +#!/usr/bin/perl + +use Getopt::Std; +getopts('i:'); + +# the argument should be the path to the restriction datafile, usually +# design-data/restrictions.csv +open(F,"$ARGV[0]") || die "Can't open restriction data file $ARGV[0]:$!"; + +# Write the file inline by copying everything before a demarcation +# line, and putting the generated data after the demarcation + +if ($opt_i) { + + open(IN,$opt_i) || die "Can't open input file $opt_i"; + + while(){ + + if (/Do not edit/){ + last; + } + + print; + + } + + print "/* Everything below this line is machine generated. Do not edit. */\n"; + + + close IN; +} + +print "icalrestriction_property_record icalrestriction_property_records[] = {\n"; + +while() +{ + + chop; + + s/\#.*$//; + + my($method,$targetcomp,$prop,$subcomp,$restr,$sub) = split(/,/,$_); + + next if !$method; + + if(!$sub) { + $sub = "0"; + } + + if($prop ne "NONE"){ + print(" \{ICAL_METHOD_${method},ICAL_${targetcomp}_COMPONENT,ICAL_${prop}_PROPERTY,ICAL_RESTRICTION_${restr},$sub\},\n"); + } + +} + + +print " {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_PROPERTY,ICAL_RESTRICTION_NONE}\n"; + +print "};\n"; + +print "icalrestriction_component_record icalrestriction_component_records[] = {\n"; + + +close(F); +open(F,"$ARGV[0]") || die "Can't open restriction data file $ARGV[0]:$!"; + +while() +{ + + chop; + + s/\#.*$//; + + my($method,$targetcomp,$prop,$subcomp,$restr) = split(/,/,$_); + + next if !$method; + + + if($subcomp ne "NONE"){ + print(" \{ICAL_METHOD_${method},ICAL_${targetcomp}_COMPONENT,ICAL_${subcomp}_COMPONENT,ICAL_RESTRICTION_${restr}\},\n"); + } + +} + +print " {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_COMPONENT,ICAL_RESTRICTION_NONE}\n"; +print "};\n"; -- cgit v1.2.3