From acc2b77512ce0d8d708dda14dec1464f3eed830c Mon Sep 17 00:00:00 2001 From: tpearson Date: Fri, 14 May 2010 02:06:47 +0000 Subject: Second batch of kdepim stability and functionality repairs git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1126473 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- libkcal/libical/scripts/Makefile.am | 9 - libkcal/libical/scripts/mkderivedcomponents.pl | 170 ----------- libkcal/libical/scripts/mkderivedparameters.pl | 332 --------------------- libkcal/libical/scripts/mkderivedproperties.pl | 258 ---------------- libkcal/libical/scripts/mkderivedvalues.pl | 236 --------------- libkcal/libical/scripts/mkparameterrestrictions.pl | 85 ------ libkcal/libical/scripts/mkrestrictionrecords.pl | 109 ------- libkcal/libical/scripts/mkrestrictiontable.pl | 98 ------ libkcal/libical/scripts/readvaluesfile.pl | 130 -------- 9 files changed, 1427 deletions(-) delete mode 100644 libkcal/libical/scripts/Makefile.am delete mode 100755 libkcal/libical/scripts/mkderivedcomponents.pl delete mode 100755 libkcal/libical/scripts/mkderivedparameters.pl delete mode 100755 libkcal/libical/scripts/mkderivedproperties.pl delete mode 100755 libkcal/libical/scripts/mkderivedvalues.pl delete mode 100755 libkcal/libical/scripts/mkparameterrestrictions.pl delete mode 100755 libkcal/libical/scripts/mkrestrictionrecords.pl delete mode 100755 libkcal/libical/scripts/mkrestrictiontable.pl delete mode 100644 libkcal/libical/scripts/readvaluesfile.pl (limited to 'libkcal/libical/scripts') diff --git a/libkcal/libical/scripts/Makefile.am b/libkcal/libical/scripts/Makefile.am deleted file mode 100644 index 47ce3e6e4..000000000 --- a/libkcal/libical/scripts/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -EXTRA_DIST = \ -mkderivedcomponents.pl \ -mkderivedparameters.pl \ -mkderivedproperties.pl \ -mkderivedvalues.pl \ -mkparameterrestrictions.pl \ -mkrestrictionrecords.pl \ -mkrestrictiontable.pl \ -readvaluesfile.pl diff --git a/libkcal/libical/scripts/mkderivedcomponents.pl b/libkcal/libical/scripts/mkderivedcomponents.pl deleted file mode 100755 index 31743c3ba..000000000 --- a/libkcal/libical/scripts/mkderivedcomponents.pl +++ /dev/null @@ -1,170 +0,0 @@ -#!/usr/bin/env perl - -use Getopt::Std; -getopts('chspi:'); - - -# ARG 0 is components.txt -open(PV,"$ARGV[0]") || die "Can't open components file $ARGV[0]:$!"; - -my @components; - -while (){ - - s/#.*//; - - chop; - - push(@components,$_); - -} - -close PV; - -# 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; - - } - - if($opt_i){ - print "# Everything below this line is machine generated. Do not edit. \n"; - } else { - print "/* Everything below this line is machine generated. Do not edit. */\n"; - } - -} - -if ($opt_c or $opt_h and !$opt_i){ - -print < /* for va_arg functions */ - -EOM - -} - -if ($opt_p and !$opt_i){ - -print <1,RANGE=>1,RSVP=>1,XLICERRORTYPE=>1,XLICCOMPARETYPE=>1); - -%params = read_parameters_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 (//){ - insert_code(); - } else { - print; - } - - } - - if($opt_p){ - print "# Everything below this line is machine generated. Do not edit. \n"; - } else { - print "/* Everything below this line is machine generated. Do not edit. */\n"; - } - -} - -sub insert_code -{ - -# Write parameter enumerations and datatypes - -if($opt_h){ - print "typedef enum icalparameter_kind {\n ICAL_ANY_PARAMETER = 0,\n"; - foreach $param (sort keys %params) { - - next if !$param; - - next if $param eq 'NO' or $param eq 'ANY'; - - my $uc = join("",map {uc($_);} split(/-/,$param)); - - my @enums = @{$params{$param}->{'enums'}}; - - print " ICAL_${uc}_PARAMETER, \n"; - - } - print " ICAL_NO_PARAMETER\n} icalparameter_kind;\n\n"; - - # Now create enumerations for parameter values - $idx = 20000; - - print "#define ICALPARAMETER_FIRST_ENUM $idx\n\n"; - - foreach $param (sort keys %params) { - - next if !$param; - - next if $param eq 'NO' or $prop eq 'ANY'; - - my $type = $params{$param}->{"C"}; - my $ucv = join("",map {uc(lc($_));} split(/-/,$param)); - my @enums = @{$params{$param}->{'enums'}}; - - if(@enums){ - - print "typedef enum $type {\n"; - my $first = 1; - - unshift(@enums,"X"); - - push(@enums,"NONE"); - - foreach $e (@enums) { - if (!$first){ - print ",\n"; - } else { - $first = 0; - } - - my $uce = join("",map {uc(lc($_));} split(/-/,$e)); - - print " ICAL_${ucv}_${uce} = $idx"; - - $idx++; - } - $c_type =~ s/enum //; - - print "\n} $type;\n\n"; - } - } - - print "#define ICALPARAMETER_LAST_ENUM $idx\n\n"; - -} - -if ($opt_c){ - - - # Create the icalparameter_value to icalvalue_kind conversion table - my $count = 0; - my $out; - - foreach $enum (@{$params{'VALUE'}->{'enums'}}){ - next if $enum eq 'NO' or $enum eq 'ERROR'; - $uc = join("",map {uc(lc($_));} split(/-/,$enum)); - $out.=" {ICAL_VALUE_${uc},ICAL_${uc}_VALUE},\n"; - $count++; - } - - $count+=2; - print "struct icalparameter_value_kind_map value_kind_map[$count] = {\n"; - print $out; - print " {ICAL_VALUE_X,ICAL_X_VALUE},\n"; - print " {ICAL_VALUE_NONE,ICAL_NO_VALUE}\n};\n\n"; - - #Create the parameter Name map - - $out=""; - $count=0; - foreach $param (sort keys %params) { - - next if !$param; - - next if $param eq 'NO' or $prop eq 'ANY'; - - my $lc = join("",map {lc($_);} split(/-/,$param)); - my $uc = join("",map {uc(lc($_));} split(/-/,$param)); - - $count++; - $out.=" {ICAL_${uc}_PARAMETER,\"$param\"},\n"; - - } - $count+=1; - print "struct icalparameter_kind_map parameter_map[$count] = { \n"; - print $out; - print " { ICAL_NO_PARAMETER, \"\"}\n};\n\n"; - - # Create the parameter value map - $out =""; - $count=0; - foreach $param (sort keys %params) { - - next if !$param; - - next if $param eq 'NO' or $prop eq 'ANY'; - - my $type = $params{$param}->{"C"}; - my $uc = join("",map {uc(lc($_));} split(/-/,$param)); - my @enums = @{$params{$param}->{'enums'}}; - - if(@enums){ - - foreach $e (@enums){ - my $uce = join("",map {uc(lc($_));} split(/-/,$e)); - - $count++; - $out.=" {ICAL_${uc}_PARAMETER,ICAL_${uc}_${uce},\"$e\"},\n"; - } - - } - } - - $count+=3; - print "struct icalparameter_map icalparameter_map[] = {\n"; - print "{ICAL_ANY_PARAMETER,0,\"\"},\n"; - print $out; - print " {ICAL_NO_PARAMETER,0,\"\"}};\n\n"; - -} - -foreach $param (keys %params){ - - my $type = $params{$param}->{'C'}; - - my $ucf = join("",map {ucfirst(lc($_));} split(/-/,$param)); - - my $lc = lc($ucf); - my $uc = uc($lc); - - my $charorenum; - my $set_code; - my $pointer_check; - my $pointer_check_v; - my $xrange; - - if ($type=~/char/ ) { - - $charorenum = " icalerror_check_arg_rz( (param!=0), \"param\");\n return param->string;"; - - $set_code = "((struct icalparameter_impl*)param)->string = icalmemory_strdup(v);"; - - $pointer_check = "icalerror_check_arg_rz( (v!=0),\"v\");"; - $pointer_check_v = "icalerror_check_arg_rv( (v!=0),\"v\");"; - - } else { - - $xrange =" if (param->string != 0){\n return ICAL_${uc}_X;\n }\n" if !exists $no_xname{$uc}; - - $charorenum= "icalerror_check_arg( (param!=0), \"param\");\n$xrange\nreturn ($type)(param->data);"; - - $pointer_check = "icalerror_check_arg_rz(v >= ICAL_${uc}_X,\"v\");\n icalerror_check_arg_rz(v < ICAL_${uc}_NONE,\"v\");"; - - $pointer_check_v = "icalerror_check_arg_rv(v >= ICAL_${uc}_X,\"v\");\n icalerror_check_arg_rv(v < ICAL_${uc}_NONE,\"v\");"; - - $set_code = "((struct icalparameter_impl*)param)->data = (int)v;"; - - } - - - - if ($opt_c) { - - print <[0] = \$p; - - return \$self; -} - -sub get -{ - my \$self = shift; - my \$impl = \$self->_impl(); - - return Net::ICal::icalparameter_as_ical_string(\$impl); - -} - -sub set -{ - # This is hard to implement, so I've punted for now. - die "Set is not implemented"; -} - -EOM - -} - -} - -if ($opt_h){ - -print <){ - - if (//){ - insert_code(); - } else { - print; - } - - } - -} - -sub fudge_data { - my $prop = shift; - - my $value = $propmap{$prop}->{'lic_value'}; - - if (!$value){ - die "Can't find value for property \"$prop\"\n"; - } - my $ucf = join("",map {ucfirst(lc($_));} split(/-/,$prop)); - my $lc = lc($ucf); - my $uc = uc($lc); - - my $ucfvalue = join("",map {ucfirst(lc($_));} split(/-/,$value)); - my $lcvalue = lc($ucfvalue); - my $ucvalue = uc($lcvalue); - - my $type = $valuemap{$value}->{C}->[1]; - - return ($uc,$lc,$lcvalue,$ucvalue,$type); - -} - -sub insert_code { - -# Create the property map data -if($opt_c){ - - - my @props = sort keys %propmap; - my $count = scalar(@props); - - - print "struct icalproperty_map property_map[$count] = {\n"; - - foreach $prop (@props) { - - next if !$prop; - - next if $prop eq 'NO'; - - my ($uc,$lc,$lcvalue,$ucvalue,$type) = fudge_data($prop); - - print "{ICAL_${uc}_PROPERTY,\"$prop\",ICAL_${ucvalue}_VALUE},\n"; - - } - - $prop = "NO"; - - my ($uc,$lc,$lcvalue,$ucvalue,$type) = fudge_data($prop); - - print "{ICAL_${uc}_PROPERTY,\"\",ICAL_NO_VALUE}};\n\n"; - - $idx = 10000; - $count = 1; - my $out = ""; - - foreach $value (sort keys %valuemap) { - - next if !$value; - next if $value eq 'NO' or $prop eq 'ANY'; - - my $ucv = join("",map {uc(lc($_));} split(/-/,$value)); - my @enums = @{$valuemap{$value}->{'enums'}}; - - if(@enums){ - - my ($c_autogen,$c_type) = @{$valuemap{$value}->{'C'}}; - - unshift(@enums,"X"); - push(@enums,"NONE"); - - foreach $e (@enums) { - - my $uce = join("",map {uc(lc($_));} split(/-/,$e)); - - if($e ne "X" and $e ne "NONE"){ - $str = $e; - } else { - $str = ""; - } - - $out.=" {ICAL_${ucv}_PROPERTY,ICAL_${ucv}_${uce},\"$str\" }, /*$idx*/\n"; - - $idx++; - $count++; - } - - } - } - - $count++; - print "struct icalproperty_enum_map enum_map[$count] = {\n"; - print $out; - print " {ICAL_NO_PROPERTY,0,\"\"}\n};\n\n"; - - - -} - - -if($opt_h){ - - # Create the property enumerations list - print "typedef enum icalproperty_kind {\n ICAL_ANY_PROPERTY = 0,\n"; - foreach $prop (sort keys %propmap) { - - next if !$prop; - - next if $prop eq 'NO' or $prop eq 'ANY'; - - my ($uc,$lc,$lcvalue,$ucvalue,$type) = fudge_data($prop); - - print " ICAL_${uc}_PROPERTY, \n"; - - } - print " ICAL_NO_PROPERTY\n} icalproperty_kind;\n\n"; - - -} - - -foreach $prop (sort keys %propmap) { - - next if !$prop; - - next if $prop eq 'NO' or $prop eq 'ANY'; - - my ($uc,$lc,$lcvalue,$ucvalue,$type) = fudge_data($prop); - - - my $pointer_check; - if ($type =~ /\*/){ - $pointer_check = "icalerror_check_arg_rz( (v!=0),\"v\");\n" if $type =~ /\*/; - } elsif ( $type eq "void" ){ - $pointer_check = "icalerror_check_arg_rv( (v!=0),\"v\");\n" if $type =~ /\*/; - - } - - my $set_pointer_check = "icalerror_check_arg_rv( (v!=0),\"v\");\n" if $type =~ /\*/; - - if($opt_c) { # Generate C source - - if ($include_vanew) { - print< generate c code file - # h-> generate header file - - # Open with value-types.txt - -my %h = read_values_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 (//){ - insert_code(); - } else { - print; - } - - - } -} - -sub insert_code -{ - # Map type names to the value in the icalvalue_impl data union */ - -%union_map = ( - BOOLEAN => 'int', - CALADDRESS=>'string', - DATE=>'time', - DATETIME=>'time', - DATETIMEDATE=>'time', - DATETIMEPERIOD=>'period', - DURATION=>'duration', - INTEGER=>'int', - TEXT=>'string', - URI=>'string', - UTCOFFSET=>'int', - QUERY=>'string', - BINARY=>'string', - X=>'string' - ); - - -if($opt_h){ - - # First print out the value enumerations - $idx = 5000; - print "typedef enum icalvalue_kind {\n"; - print " ICAL_ANY_VALUE=$idx,\n"; - - foreach $value (keys %h) { - - $idx++; - my $ucv = join("",map {uc(lc($_));} split(/-/,$value)); - - next if $value eq "NO"; - - print " ICAL_${ucv}_VALUE=$idx,\n"; - } - - $idx++; - print " ICAL_NO_VALUE=$idx\n} icalvalue_kind ;\n\n"; - - # Now create enumerations for property values - $idx = 10000; - - print "#define ICALPROPERTY_FIRST_ENUM $idx\n\n"; - - foreach $value (sort keys %h) { - - next if !$value; - - next if $value eq 'NO' or $prop eq 'ANY'; - - my $ucv = join("",map {uc(lc($_));} split(/-/,$value)); - my @enums = @{$h{$value}->{'enums'}}; - - if(@enums){ - - my ($c_autogen,$c_type) = @{$h{$value}->{'C'}}; - print "typedef $c_type {\n"; - my $first = 1; - - unshift(@enums,"X"); - - push(@enums,"NONE"); - - foreach $e (@enums) { - if (!$first){ - print ",\n"; - } else { - $first = 0; - } - - my $uce = join("",map {uc(lc($_));} split(/-/,$e)); - - print " ICAL_${ucv}_${uce} = $idx"; - - $idx++; - } - - $c_type =~ s/enum //; - - print "\n} $c_type;\n\n"; - } - } - - print "#define ICALPROPERTY_LAST_ENUM $idx\n\n"; - -} - - -if($opt_c){ - - # print out the value to string map - - my $count = scalar(keys %h) + 1; - print "struct icalvalue_kind_map value_map[$count]={\n"; - - foreach $value (keys %h) { - - $idx++; - my $ucv = join("",map {uc(lc($_));} split(/-/,$value)); - - next if $value eq "NO"; - - print " {ICAL_${ucv}_VALUE,\"$value\"},\n"; - } - - - print " {ICAL_NO_VALUE,\"\"}\n};"; - -} - - -foreach $value (keys %h) { - - my $autogen = $h{$value}->{C}->[0]; - my $type = $h{$value}->{C}->[1]; - - my $ucf = join("",map {ucfirst(lc($_));} split(/-/,$value)); - - my $lc = lc($ucf); - my $uc = uc($lc); - - my $pointer_check = "icalerror_check_arg_rz( (v!=0),\"v\");\n" if $type =~ /\*/; - my $pointer_check_rv = "icalerror_check_arg_rv( (v!=0),\"v\");\n" if $type =~ /\*/; - - my $assign; - - if ($type =~ /char/){ - $assign = "icalmemory_strdup(v);\n\n if (impl->data.v_string == 0){\n errno = ENOMEM;\n }\n"; - } else { - $assign = "v;"; - } - - my $union_data; - - if(@{$h{$value}->{'enums'}}){ - $union_data = 'enum'; - - } elsif (exists $union_map{$uc} ){ - $union_data=$union_map{$uc}; - } else { - $union_data = $lc; - } - - if ($opt_c && $autogen) { - - print "\n\n\ -icalvalue* icalvalue_new_${lc} ($type v){\ - struct icalvalue_impl* impl = icalvalue_new_impl(ICAL_${uc}_VALUE);\ - $pointer_check\ - icalvalue_set_${lc}((icalvalue*)impl,v);\ - return (icalvalue*)impl;\ -}\ -void icalvalue_set_${lc}(icalvalue* value, $type v) {\ - struct icalvalue_impl* impl; \ - icalerror_check_arg_rv( (value!=0),\"value\");\ - $pointer_check_rv\ - icalerror_check_value_type(value, ICAL_${uc}_VALUE);\ - impl = (struct icalvalue_impl*)value;\n"; - - if( $union_data eq 'string') { - - print " if(impl->data.v_${union_data}!=0) {free((void*)impl->data.v_${union_data});}\n"; - } - - - print "\n\ - impl->data.v_$union_data = $assign \n\ - icalvalue_reset_kind(impl);\n}\n"; - - print "$type\ icalvalue_get_${lc}(const icalvalue* value)\ {\n"; - if ($type =~ m/(\*|int|float)$/) { - print " icalerror_check_arg_rz( (value!=0),\"value\");\n"; - } else { - print " icalerror_check_arg( (value!=0),\"value\");\n"; - } - print " icalerror_check_value_type(value, ICAL_${uc}_VALUE);\ - return ((struct icalvalue_impl*)value)->data.v_${union_data};\n}\n"; - - - } elsif($opt_h && $autogen) { - - print "\n /* $value */ \ -icalvalue* icalvalue_new_${lc}($type v); \ -$type icalvalue_get_${lc}(const icalvalue* value); \ -void icalvalue_set_${lc}(icalvalue* value, ${type} v);\n\n"; - - } - -} - - -if ($opt_h){ - print "#endif /*ICALVALUE_H*/\n"; - } - - -} diff --git a/libkcal/libical/scripts/mkparameterrestrictions.pl b/libkcal/libical/scripts/mkparameterrestrictions.pl deleted file mode 100755 index 2c57eb4ca..000000000 --- a/libkcal/libical/scripts/mkparameterrestrictions.pl +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/perl - -# Version: 1.0 -# Script last updated: 30May1999 GMD -# Change log: -# - - -# usually open params-in-prop.txt -open(F,"$ARGV[0]") || die "Can't open restriction file $ARGV[0]:$!"; - -print <) -{ - chop; - - # split line by whitespace - my @v = split(/\s+/,$_); - # property is first item on line - my $prop = shift @v; - my $prop_name = $prop; - if (substr($prop,0,1) eq "X") { $prop = "X"; } - $prop = join("",split(/-/,$prop)); - -print < - -# usually open restrictions.csv -open(F,"$ARGV[0]") || die "Can't open restriction file $ARGV[0]:$!"; - -print <) -{ - chop; - - # split line at commas - my ($method,$component,$property,$subcomponent,$restriction)=split(/\,/,$_); - - # - #put in code to generate comments here! - # - if ($method ne $last_method) - { - $need_header = 1; - $last_method = $method; - } - if ($component ne $last_component) - { - $need_header = 1; - $last_component = $component; - } - - if ($need_header) - { - print "\n\t/* METHOD: ${method}, COMPONENT: ${component} */\n"; - $need_header = 0; - } - - foreach $item ($component,$property,$subcomponent,$restriction) - { - # handle special cases. - if ($item eq "NONE") - { $item = "NO"; } - else { if (substr($item,0,1) eq "X") - { $item = "X"; }} - - # strip out dashes - $item = join("",split(/-/,$item)); - } - # strip leading V from component names - $component =~ s/^(V?)(\w+?)((SAVINGS)?)((TIME)?)$/$2/; - $subcomponent =~ s/^V(\w+)/$1/; - - print "\t\{ICAL_METHOD_${method},ICAL_${component}_COMPONENT,"; - print "ICAL_${property}_PROPERTY,ICAL_${subcomponent}_COMPONENT,"; - print "ICAL_RESTRICTION_${restriction}\},\n"; - -} - -print <){ - - if (/Do not edit/){ - last; - } - - print; - - } - - print "/* Everything below this line is machine generated. Do not edit. */\n"; - - - close IN; -} - -# First build the property restriction table -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"; - } else { - $sub = "icalrestriction_".$sub; - } - - if($prop ne "NONE"){ - print(" \{ICAL_METHOD_${method},ICAL_${targetcomp}_COMPONENT,ICAL_${prop}_PROPERTY,ICAL_RESTRICTION_${restr},$sub},\n"); - } - -} - - -# Print the terminating line -print " {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_PROPERTY,ICAL_RESTRICTION_NONE, 0}\n"; - -print "};\n"; - -print "icalrestriction_component_record icalrestriction_component_records[] = {\n"; - - -# Go back through the entire file and build the component restriction table -close(F); -open(F,"$ARGV[0]") || die "Can't open restriction data file $ARGV[0]:$!"; - -while() -{ - - chop; - - s/\#.*$//; - - my($method,$targetcomp,$prop,$subcomp,$restr,$sub) = split(/,/,$_); - - next if !$method; - - if(!$sub) { - $sub = "0"; - } else { - $sub = "icalrestriction_".$sub; - } - - - if($subcomp ne "NONE"){ - print(" \{ICAL_METHOD_${method},ICAL_${targetcomp}_COMPONENT,ICAL_${subcomp}_COMPONENT,ICAL_RESTRICTION_${restr},$sub\},\n"); - } - -} - -# print the terminating line -print " {ICAL_METHOD_NONE,ICAL_NO_COMPONENT,ICAL_NO_COMPONENT,ICAL_RESTRICTION_NONE, 0}\n"; -print "};\n"; diff --git a/libkcal/libical/scripts/readvaluesfile.pl b/libkcal/libical/scripts/readvaluesfile.pl deleted file mode 100644 index d5e2d36fd..000000000 --- a/libkcal/libical/scripts/readvaluesfile.pl +++ /dev/null @@ -1,130 +0,0 @@ - - -sub read_values_file { - - my $path = shift; - my %h; - - open(F,$path) || die "Can't open values file $path"; - - while(){ - - chop; - - s/#.*$//g; - s/\"//g; - - next if ! $_; - - @column = split(/,/,$_); - - my $value_name = $column[0]; - - my $c_type_str = $column[1]; - my $c_autogen = ($c_type_str =~ /\(a\)/); - - my $c_type = $c_type_str; - $c_type =~ s/\(.\)//; - - my $python_type = $column[2]; - my $components = $column[3]; - my $enum_values = $column[4]; - - my @components; - if($components ne "unitary"){ - @components = split(/;/,$components); - } else { - @components = (); - } - - my @enums; - if($enum_values) { - @enums = split(/;/,$enum_values); - - } else { - @enums = (); - } - - $h{$value_name} = { C => [$c_autogen,$c_type], - perl => $perl_type, - python => $python_type, - components=>[@components], - enums=>[@enums] - }; - } - - return %h; -} - -sub read_properties_file { - - my $path = shift; - my %h; - - open(F,$path) || die "Can't open properties file $path"; - - while(){ - - chop; - - s/#.*$//g; - s/\"//g; - - next if ! $_; - - @column = split(/,/,$_); - - my $property_name = $column[0]; - - my $lic_value = $column[1]; - my $default_value = $column[2]; - - $h{$property_name} = { lic_value => $lic_value, - default_value => $default_value - }; - } - - return %h; -} - -sub read_parameters_file { - - my $path = shift; - my %h; - - open(F,$path) || die "Can't open parameters file $path"; - - while(){ - - chop; - - s/#.*$//g; - s/\"//g; - - next if ! $_; - - @column = split(/\,/,$_); - - my $parameter_name = $column[0]; - - my $data_type = $column[1]; - my $enum_string = $column[2]; - - my @enums; - if($enum_string){ - @enums = split(/;/,$enum_string); - } - - $h{$parameter_name} = { C => $data_type, - enums => [@enums] - }; - } - - close(F); - - return %h; -} - - - -1; -- cgit v1.2.1