summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-perl/AppConfig/files/blockdiffs.patch')
-rw-r--r--dev-perl/AppConfig/files/blockdiffs.patch83
1 files changed, 83 insertions, 0 deletions
diff --git a/dev-perl/AppConfig/files/blockdiffs.patch b/dev-perl/AppConfig/files/blockdiffs.patch
new file mode 100644
index 000000000000..2e30310a8884
--- /dev/null
+++ b/dev-perl/AppConfig/files/blockdiffs.patch
@@ -0,0 +1,83 @@
+diff -Naurp AppConfig-1.65.orig/lib/AppConfig/File.pm AppConfig-1.65/lib/AppConfig/File.pm
+--- AppConfig-1.65.orig/lib/AppConfig/File.pm 2007-05-30 07:24:09.000000000 -0400
++++ AppConfig-1.65/lib/AppConfig/File.pm 2007-06-09 07:08:21.000000000 -0400
+@@ -38,6 +38,7 @@ sub new {
+ STATE => $state, # AppConfig::State ref
+ DEBUG => $state->_debug(), # store local copy of debug
+ PEDANTIC => $state->_pedantic, # and pedantic flags
++ BLOCKSEP => $state->_blocksep, # and block separator
+ };
+
+ bless $self, $class;
+@@ -80,7 +81,7 @@ sub parse {
+ my $flag;
+
+ # take a local copy of the state to avoid much hash dereferencing
+- my ($state, $debug, $pedantic) = @$self{ qw( STATE DEBUG PEDANTIC ) };
++ my ($state, $debug, $pedantic, $blocksep) = @$self{ qw( STATE DEBUG PEDANTIC BLOCKSEP ) };
+
+ # we want to install a custom error handler into the AppConfig::State
+ # which appends filename and line info to error messages and then
+@@ -163,7 +164,7 @@ sub parse {
+ s/\s+$//;
+
+ # look for a [block] to set $prefix
+- if (/^\[([^\]]+)\]$/) {
++ if (/^\[\s*([^\]\s]+)\s*\]$/) {
+ $prefix = $1;
+ print STDERR "Entering [$prefix] block\n" if $debug;
+ next;
+@@ -194,7 +195,7 @@ sub parse {
+ $flag = $1;
+
+ # $variable gets any $prefix
+- $variable = $prefix . '_' . $variable
++ $variable = $prefix . $blocksep . $variable
+ if length $prefix;
+
+ # if the variable doesn't exist, we call set() to give
+diff -Naurp AppConfig-1.65.orig/lib/AppConfig/State.pm AppConfig-1.65/lib/AppConfig/State.pm
+--- AppConfig-1.65.orig/lib/AppConfig/State.pm 2007-05-30 07:24:20.000000000 -0400
++++ AppConfig-1.65/lib/AppConfig/State.pm 2007-06-09 07:11:16.000000000 -0400
+@@ -53,7 +53,7 @@ my %METHVARS;
+
+ # internal values that AUTOLOAD should provide access to
+ my %METHFLAGS;
+- @METHFLAGS{ qw( PEDANTIC ) } = ();
++ @METHFLAGS{ qw( PEDANTIC BLOCKSEP ) } = ();
+
+ # variable attributes that may be specified in GLOBAL;
+ my @GLOBAL_OK = qw( DEFAULT EXPAND VALIDATE ACTION ARGS ARGCOUNT );
+@@ -94,6 +94,7 @@ sub new {
+ PEDANTIC => 0, # return immediately on parse warnings
+ EHANDLER => undef, # error handler (let's hope we don't need it!)
+ ERROR => '', # error message
++ BLOCKSEP => '_', # separator between [block] and variable name
+ };
+
+ bless $self, $class;
+@@ -504,8 +505,8 @@ sub _configure {
+ next;
+ };
+
+- # CASE, CREATE and PEDANTIC are stored as they are
+- $opt =~ /^CASE|CREATE|PEDANTIC$/i && do {
++ # CASE, CREATE, PEDANTIC and BLOCKSEP are stored as they are
++ $opt =~ /^CASE|CREATE|PEDANTIC|BLOCKSEP$/i && do {
+ $self->{ uc $opt } = $cfg->{ $opt };
+ next;
+ };
+@@ -1015,6 +1016,13 @@ instantiated with a reference to an App:
+ DEBUG (and also PEDANTIC) values of the state at that time. Subsequent
+ changes to the AppConfig::State debug value will not affect them.
+
++=item BLOCKSEP
++
++When parsing configuration files that are grouped using constructions
++like [block], this string parameter determines what is used to
++separate the name of the block from the name of each variable
++contained within it. If unspecified, BLOCKSEP defaults to '_'.
++
+ =item GLOBAL
+
+ The GLOBAL option allows default values to be set for the DEFAULT, ARGCOUNT,