1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
diff -burN AppConfig-1.56.orig/lib/AppConfig/File.pm AppConfig-1.56/lib/AppConfig/File.pm
--- AppConfig-1.56.orig/lib/AppConfig/File.pm 2004-02-04 02:28:28.000000000 -0800
+++ AppConfig-1.56/lib/AppConfig/File.pm 2004-05-28 15:08:31.432761817 -0700
@@ -44,6 +44,7 @@
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;
@@ -87,7 +88,7 @@
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
@@ -201,7 +202,7 @@
$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 -burN AppConfig-1.56.orig/lib/AppConfig/State.pm AppConfig-1.56/lib/AppConfig/State.pm
--- AppConfig-1.56.orig/lib/AppConfig/State.pm 2004-02-04 02:11:23.000000000 -0800
+++ AppConfig-1.56/lib/AppConfig/State.pm 2004-05-28 14:42:23.588164697 -0700
@@ -57,7 +57,7 @@
# 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 );
@@ -98,6 +98,7 @@
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;
@@ -509,8 +510,8 @@
};
- # 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;
};
@@ -1020,6 +1021,13 @@
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,
|