diff src/config/settings-get.pl @ 10177:d589d568a19d HEAD

Changed all settings related structs to const and changed APIs to make it work.
author Timo Sirainen <tss@iki.fi>
date Fri, 23 Oct 2009 20:10:17 -0400
parents dcda7c495eb6
children afe52d60989c
line wrap: on
line diff
--- a/src/config/settings-get.pl	Fri Oct 23 19:11:19 2009 -0400
+++ b/src/config/settings-get.pl	Fri Oct 23 20:10:17 2009 -0400
@@ -31,11 +31,11 @@
 	  /struct setting_define.*{/ ||
 	  /struct .*_default_settings = {/) {
 	$state++;
-      } elsif (/^(static )?struct setting_parser_info (.*) = {/) {
-	$state++;
+      } elsif (/^(static )?const struct setting_parser_info (.*) = {/) {
 	$cur_name = $2;
-      } elsif (/^extern struct setting_parser_info (.*);/) {
-	$externs .= "extern struct setting_parser_info $1;\n";
+	$state++ if ($cur_name !~ /^\*default_/);
+      } elsif (/^extern const struct setting_parser_info (.*);/) {
+	$externs .= "extern const struct setting_parser_info $1;\n";
       } elsif (/\/\* <settings checks> \*\//) {
 	$state = 4;
 	$code .= $_;
@@ -62,7 +62,7 @@
 	  my $value = $1;
 	  if ($value =~ /.*&(.*)\)/) {
 	    $parsers{$1} = 0;
-	    $externs .= "extern struct setting_parser_info $1;\n";
+	    $externs .= "extern const struct setting_parser_info $1;\n";
 	  } else {
 	    $state = 3;
 	  }