Commit Graph

33 Commits

Author SHA1 Message Date
Thomas von Dein
a49de35c81 fix rt.cpan.org#115326, added IFDefine support, fix POD indentation
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@111 be1acefe-a474-0410-9a34-9b3221f2030f
2016-07-08 08:46:02 +00:00
Thomas von Dein
7a48e048cf fixed rt.cpan.org#113671: recognize BOM at start of a utf8 file
fixed rt.cpan.org#112857: Same Line Closing Block Breaks Parser



git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@110 be1acefe-a474-0410-9a34-9b3221f2030f
2016-04-18 13:09:45 +00:00
Thomas von Dein
6b154a6254 add support for apache's IncludeOptional feature
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@104 be1acefe-a474-0410-9a34-9b3221f2030f
2015-10-11 18:37:08 +00:00
Thomas von Dein
61ed23ca3a fix rt.cpan.org#104548
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@102 be1acefe-a474-0410-9a34-9b3221f2030f
2015-05-20 17:28:38 +00:00
Thomas von Dein
480548e19d fixed rt.cpan.org#39814.
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@99 be1acefe-a474-0410-9a34-9b3221f2030f
2014-05-01 11:19:25 +00:00
Thomas von Dein
e690b33942 => 2.52, see changelog
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@96 be1acefe-a474-0410-9a34-9b3221f2030f
2013-07-03 08:37:11 +00:00
Thomas von Dein
e3f94758a7 fixed bugs and added -NoEscape + -Normalize(Option|Block|Value) parameters.
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@94 be1acefe-a474-0410-9a34-9b3221f2030f
2012-07-18 13:06:33 +00:00
Thomas von Dein
90f215d98c - fixed rt.cpan.org#63487 documentation error.
- fixed rt.cpan.org#61302, now croak if the config file
          parameter is a directory and directory include is not
          turned on.

        - fixed rt.cpan.org#60429 META.yml typo

        - added new option -AllowSingleQuoteInterpolation, which
          turns on interpolation for variables inside single quotes.

        - added test case for the new option



git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@91 be1acefe-a474-0410-9a34-9b3221f2030f
2010-12-01 10:42:39 +00:00
Todd R
376bbfb12d RT 58262 - Add failing test for defined \%hash deprecation in perl 5.12
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@89 be1acefe-a474-0410-9a34-9b3221f2030f
2010-10-15 19:03:51 +00:00
Thomas von Dein
5f3800ba29 fixed rt.cpan.org#56532
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@84 be1acefe-a474-0410-9a34-9b3221f2030f
2010-06-08 06:58:32 +00:00
Thomas von Dein
fd8e051059 added -ForceArray flag which makes it possible to use single value arrays
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@78 be1acefe-a474-0410-9a34-9b3221f2030f
2010-04-09 08:56:40 +00:00
Thomas von Dein
aaaab71992 Splat with 2.46
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@76 be1acefe-a474-0410-9a34-9b3221f2030f
2010-04-08 15:48:03 +00:00
Thomas von Dein
045aed9c39 Splat with 2.45
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@74 be1acefe-a474-0410-9a34-9b3221f2030f
2010-04-08 15:47:22 +00:00
Thomas von Dein
afc1678d5d -
git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@72 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-19 19:45:20 +00:00
Thomas von Dein
db567b0713 2.43
- fixed rt.cpan.org#40925, $indichar replaced by internal
	  configuration variable EOFseparator, which contains
	  a 256 bit SHA checksum of the date I fixed the bug.
	  This will prevent future conflicts hopefully. In addition
	  it makes it possible to make it customizable, if neccessary,
	  in a future release.

	- fixed rt.cpan.org#42721, return undef for empty values

	- fixed rt.cpan.org#42331, return undef for empty objects

	- fixed rt.cpan.org#44600, comments after blockname
	  causes parser failure.

	- fixed rt.cpan.org#42287, whitespace at beginning or end
	  of a quoted value gets lost after save().

	- fixed rt.cpan.org#46184, variables that were not previously
	  defined are deleted when -InterPolateEnv is enabled. 

	- fixed bug in config loader for FileHandle objects, it
	  supports now any compatible object. Hint by Ingo Schmiegel.

	- applied spelling- and speedup patches by Ville Skyttä.

	- applied documentation patch by Jordan Macdonald.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@69 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:46:35 +00:00
Thomas von Dein
e2819aa525 2.41
- fixed rt.cpan.org#38635. apache-like include now supports
	  quoted strings.

        - fixed rt.cpan.org#41748. saving config with -tie enabled
	  now keeps the tie as documented.

	- added unit test for -tie. For this to work, a copy of
	  Tie::LxHash module is delivered with Config::General
	  source, but will not installed, in fact, it is only
	  used for 'make test' (number 50)

	- fixed rt.cpan.org#39159. documentation of functional interface
          now reflects that qw$method) is now required.

	- applied patch by AlexK fixing rt.cpan.org#41030:
	  if files are included by means of a glob pattern having the -IncludeGlob
	  option activated, paths specified by the -ConfigPath option are being
	  neglected when trying to spot the files. This patch fixes this

	- applied patch by fbicknel, fixes rt.cpan.org#41570: 
	  An array of scalars (eg: option = [1,2,3]) cannot
	  be used for interpolation (which element shall we use?!), so
	  we ignore those types of lists and don't build a __stack for them.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@67 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:45:27 +00:00
Thomas von Dein
d6b03e1ef7 2.40
- fixed SplitDelimiter parser regex, it does no more consider
	  non-whitespaces (\S+?) as the option name but anything
	  before the delimiter (.+?), this fixes bug rt.cpan.org#36607,
	  the fix of 2.39 were not sufficient. Thanks to
	  Jeffrey Ratcliffe for pointing it out.

	- added new parameter -SaveSorted. The default value is 0,
	  that means configs will be saved unsorted (as always),
	  however if you want to save it sorted, turn this parameter
	  to 1. Thanks to Herbert Breunung for the hint.

	- added complexity test, which checks a combination
	  of various complex features of the parser.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@66 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:44:49 +00:00
Thomas von Dein
5f92f52e0a 2.39
- fixed rt.cpan.org#35122. This one was one of the most
	  intriguing bugs I've ever observed in my own code. The
	  internal temporary __stack hashref were copied from one
	  subhash to another to enable inheritance of variables.
	  However, the hashes were copied by reference, so once a
	  value changed later, that value were overwritten because
	  the __stack in question were just a reference. I introduced
	  a simple function _copy() which copies the contents of
	  the __stack by value, which solved the bug.
	  Conclusion: beware of perl hash refs!

	- fixed rt.cpan.org#36607, accept whitespaces in heredoc
	  names if split delimiter is gues (equalsign or whitespace)

	- fixed rt.cpan.org#34080 (typo)

	- fixed rt.cpan.org#35766. Variables inside single quoted
	  strings will no more interpolated (as the docu states).
	  Also added test case for this.

	- fixed bug rt.cpan.org#33766. Checking for defined not true
	  in ::Extended::AUTOLOAD().

	- added -UTF8 flag, which opens files in utf8 mode
	  (suggested by KAORU, rt.cpan.org#35583)
	  I decided not to add a test case for this, since perls
	  utf8 support is not stable with all versions.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@65 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:43:54 +00:00
Thomas von Dein
61397677d3 2.38
- fixed rt.cpan.org#31529 variable inheritance failed
	  with multiple named blocks.

	- fixed rt.cpan.org#33447, regex to catch variable
	  names were too strict, now - . + or : are allowed too.

	- fixed rt.cpan.org#33385 and #32978 - using arrayrefs
	  as param to -String didn't work anymore (sic)

	- fixed rt.cpan.org#33216 - variable stack were not properly
	  re-constructed for pre-existing variables if 
	  -MergeDuplicateOptions is turned on.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@64 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:43:18 +00:00
Thomas von Dein
f85e18462c 2.37
- "fixed" rt.cpan.org#30199 - check for invalid and
	  unsupported structures, especially mixing blocks
	  and scalars with identical names.

	- added checks to 'make test' to test for the above
	  checks.

	- revoked patch of rt.cpan.org#27225, it broke running
	  code.

	- fixed rt.cpan.org#30063 (and #27225!) by reimplementing
	  the whole interpolation code. The internal stack is
	  no more a class variable of the module but stored
	  directly within the generated config hash and cleaned
	  before returning to the user.

	- added (modified) patch rt.cpan.org#30063 to check
	  if interpolation works with supplied default config
	  works.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@63 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:42:58 +00:00
Thomas von Dein
0b78a916bb 2.34
- fixed rt.cpan.org#27271 - removed output file from
          manifest.

	- fixed rt.cpan.org#27225 - clear vars off the stack
          if entering a new block, so old vars get not re-used.

	- fixed rt.cpan.org#27110 - re-implemented support
          for arrayref as -String parameter.

	- fixed rt.cpan.org#24155 - relative include bug fixed.

	- applied patch by GWYN, (see fixed rt.cpan.org#27622)
 	  which allows the same file included multiple times.
	  there is no loop detection if turned on. new option
	  introduced: -IncludeAgain => 1 (default turned off).

	- added support for -IncludeAgain to directory include
	  code too.

	- the directory globbing code used slashes to join
	  directory and file names. changed this to use catfile()
	  instead.



git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@60 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:40:22 +00:00
Thomas von Dein
72fdf51f16 2.32
- fixed rt.cpan.org#24232 - import ENV vars only if defined

	- fixed rt.cpan.org#20742 - dont' overwrite a var if re-defined
	  in current scope, interpolation failed for re-defined vars and used
	  the value of the var defined in outer scope, not the current one.

	- fixed rt.cpan.org#17852 - a 0 as blockname were ignored. applied
	  patch by SCOP to t/run.t to test for 0 in blocks.

	- applied most hints Perl::Critic had about Config::General:
	  o the functions ParseConfig SaveConfig SaveConfigString must
	    now imported implicitly. This might break existing code, but
	    is easily to fix.
	  o using IO::File instead of open().
	  o General.pm qualifies for "stern" level after all.

	- added much more tests to t/run.t for 'make test'.

	- using Test::More now.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@58 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:38:28 +00:00
Thomas von Dein
80bcb7ddae 2.31
- applied patches by Jason Rhinelander <jagerman@jagerman.com>:
	  	o bugfix: multiple levels if include files didn't
		  work properly.

		o new option -IncludeDirectories, which allows
		  to include all files of a directory. The directory
		  must be specified by -ConfigFile as usual.

		o new option -IncludeGlob, which allows to
		  use globs (wildcards) to include multiple files.

		o -ConfigPath can be speciefied using a single
		  scalar value instead of an array if there is only
		  one path.

		o bugfix: quotes from quoted block names were
		  not removed properly.

		o fixes and updates for tests (make test) for
		  the above patches.
	   
	   Thanks a lot Jason.

	 - fixed number of tests in run.t

	 - applied suggestion by Eric Kisiel <eric.kisiel@adelphia.com>:
	   ::Extended::keys() returns an empty hash if the
	   referring object is not hash.

	 - fixed bug #14770, "Use of uninitialized value.." during
	   environment variable interpolation.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@57 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:36:29 +00:00
Thomas von Dein
c0eafd9b8f 2.28
- fixed bug in save(), now blocks containing whitespaces
	   will be saved using quotes, in addition the parser observes
	   the quoting feature, added portion about this to the pod
	   doc. pointed out by Jeff Murphy <jcmurphy@jeffmurphy.org>.

	 - added internal list of files opened so far to avoid
	   reading in the same file multiple times.
	   Suggested by Michael Graham.

	 - added new method files() which returns the above list.

	 - added workaround for foolish perl installation on
	   debian systems (croak() doesn't work anymore as of
	   5.8.4, it's a shame!)

	 - applied patch by Michael Graham which fixes IncludeRelative
	   feature, now an included file is being included relative
	   to the calling config file, not the first one.

	 - added 'make test' targets for files() and include
	   stuff. (by Michael too)


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@54 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:31:34 +00:00
Thomas von Dein
cc6bb346f7 2.14 - fixed bug reported by Francisco Olarte Sanz
<folarte@peoplecall.com>, which caused _parse to
	   ignore blocks with the name "0": 
	   <0> .. </0>, because it checked just if $block (the name
	   between < and >) is true, and from the perl point
	   of view "0" is not. Changed it to check for defined.
	   Normally I avoid using 'defined' but in this case
	   it will not be possible that $block contains the
	   empty string, so defined is ok here.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@40 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:26:19 +00:00
Thomas von Dein
39d25e3738 2.12 - fixed cpan bugid #1768, stuff inside a hash given
by the -DefaultConfig parameter was ignored by
	   the new interpolation code, this has been fixed.

	 - fixed another bug in the new interpolation code,
	   which made variable global, the variable scope
	   were ignored. Now a special constructed hash
	   exists, which makes sure, that variables only
	   valid within its correct scope.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@38 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:25:41 +00:00
Thomas von Dein
f5ac2b6b75 2.03 - fixed bug in the _parse() routine (better: design flaw).
after the last patch for allowing whitespaces in
	   option names, it had a problem with here-docs which
	   contained equal signs. option/value splitting resulted
	   in weird output.

	 - as a side effect of the bug fix below it is now
	   possible to use equal signs inside quoted values, which
	   will then be ignored, thus not used for splitting
	   the line into an option/value assignment.

	 - added a new test, which tests for all possible notations
	   of option/value lines.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@29 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:22:10 +00:00
Thomas von Dein
8a7ed54c44 2.02 - added patch by Jens Heunemann, which allows to use
whitespaces in option names.

         - changed the save() calls in the test script (t/run.t)
           to save_file()

	 - removed new() from ::Interpolated and ::Extended.
	   This may break existing code (they will need to
	   move to the flags of Config::General::new() ), but
	   this decision must be made. The problem was that
	   both the old way of directly using the subclasses
	   and the enw way did not work together. So, now
	   subclasses are only method holders and used by
	   Config::General on request. Direct use of subclasses
	   is prohibited. (you receive a warning if you do).


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@28 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:21:31 +00:00
Thomas von Dein
c3eced799c 1.36 - simplified new() parameter parsing, should be now a little
bit better to understand.

	 - added new parameter -DefaultConfig, which can hold a hashref
	   or a string, which will be used to pre-define values
	   of the resulting hash after parsing a config.
	   Thanks to Mark Hampton <mark.hampton@qualis.com> for the
	   suggestion.

	 - added new parameter -MergeDuplicateOptions, which allows
	   one to overwrite duplicate options, which is required,
	   if you turn on -DefaultConfig, because otherwise a
 	   array would be created, which is probably not what you
	   wanted.

	 - added patch by Danial Pearce <danial@infoxchange.net.au>
	   to Config::General::Extended::keys(), which allows to
	   retrieve the keys of the object itself (which was not
	   directly possible before)

	 - added patch by Danial Pearce <danial@infoxchange.net.au>
	   to Config::General::Extended::value(), which allows to
	   set a value to a (perlish-) nontrue value. This was a
	   bug.

	 - added patch by Danial Pearce <danial@infoxchange.net.au>
	   to Config::General::_parse_value, which fixes a bug in
	   this method, which in prior versions caused values of
	   "0" (zero digit) to be wiped out of the config.

	 - added tests in t/run.t for the new default config feature.


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@25 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:19:00 +00:00
Thomas von Dein
f9c0a5a8f3 1.32 - *argl* ... I forgot Interpolated.pm, don't know how that
could happen, in 1.29 it was "lost". However - 
	   I added it again now.
	 - added patch by Peder Stray <peder@linpro.no> to
	   the _store() method, which makes it possible to catch
	   arrays of hashes to be stored correctly.
	 - cleaned up the t/run.t testscript to reflect the
	   changes (in fact I did not touch it since 1.18 or so).
	 - added test number 16 to test variable interpolation
	   using ::Interpolated in t/run.t.
	 - fixed bug with new() parameter -AllowMultiOptions which
	   generated a croak() if set to something other than "no".
	 - changed Extended::save() to reflect the API change,
	   it calls now save_file(). 


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@21 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:17:24 +00:00
Thomas von Dein
95195c0038 i 1.24: - AllowMultiOptions printed out the value and not the
option itself, if more than one of this particular
           option occured.
         - added -UseApacheInclude feature, contributed by
           Thomas Klausner <domm@zsi.at>
         - fixed bug with multiple options stuff, which did not
           work with blocks or named blocks. Pointed out by
           Thomas Klausner <domm@zsi.at>, who meant it being
           feature request, but in fact it was a bug (IMHO).
	 - Config::General does now contain also it's OO-sister
	   Config::General::Extended, which is from now on
 	   no more available as an extra module, because it
	   lived a shadowy existence.
	 - finally(!) created a Changelog file (this one, yes).


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@12 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:11:25 +00:00
Thomas von Dein
1ffbf95665 1.22: - added a new option to new(): -LowerCaseNames, which
lowercases all option-names (feature request)


git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@10 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:10:12 +00:00
Thomas von Dein
f1c21f4750 revision 1.16
date: 2000/08/03 16:54:58;  author: jens;  state: Exp;  lines: +4 -1
An jedes File eine Sektion
# Local Variables: ***
# perl-master-file: ../../webmin/index.pl ***
# End: ***

rangehängt, damit ich mit C-c d das debugging von jedem File aus 
einschalten kann
(siehe mein .emacs file)
----------------------------
revision 1.15
date: 2000/08/01 09:12:52;  author: tom;  state: Exp;  lines: +57 -68
added comments to _open() and _parse()
----------------------------
revision 1.14
date: 2000/07/31 18:07:12;  author: tom;  state: Exp;  lines: +44 -19
added <<include ... >> capability
----------------------------
revision 1.13
date: 2000/07/16 18:35:33;  author: tom;  state: Exp;  lines: +135 -10
added here-doc and multi-line feature, updated perlpod
----------------------------
revision 1.12
date: 2000/07/14 14:56:09;  author: tom;  state: Exp;  lines: +2 -2
bug fixed, it did not ignore options inside c-comments with a # comment 
@ the end of line
----------------------------
revision 1.11
date: 2000/07/14 11:26:04;  author: tom;  state: Exp;  lines: +42 -6
added C-Style comments and allow also comments after a statement.
----------------------------
revision 1.10
date: 2000/07/12 14:04:51;  author: tom;  state: Exp;  lines: +2 -1
i woas ned
----------------------------
revision 1.9
date: 2000/07/12 10:59:53;  author: jens;  state: Exp;  lines: +5 -3
hehe :)
----------------------------
revision 1.8
date: 2000/07/12 10:43:20;  author: tom;  state: Exp;  lines: +5 -2
fixed bug in getall(), which doubled %config if called more than onse.
----------------------------
revision 1.7
date: 2000/07/12 09:09:33;  author: tom;  state: Exp;  lines: +22 -24
100% Apache Config complete ;-) it supports now "named blocks"!
----------------------------
revision 1.6
date: 2000/07/11 23:43:03;  author: tom;  state: Exp;  lines: +72 -19
added named block support (<server holland>)
----------------------------
revision 1.5
date: 2000/07/11 20:49:47;  author: tom;  state: Exp;  lines: +2 -2
typo in pod corrected
----------------------------
revision 1.4
date: 2000/07/11 17:07:04;  author: tom;  state: Exp;  lines: +61 -7
a config file can now contain an option more than once and will be 
returned as array
----------------------------
revision 1.3
date: 2000/07/07 11:27:38;  author: cvs;  state: Exp;  lines: +2 -2
folgende Parameterform geht jetzt auch:
parameter=   blabla

vorher musste man
parameter =     blabla
schreiben
----------------------------
revision 1.2
date: 2000/07/04 13:21:12;  author: tom;  state: Exp;  lines: +9 -4
added better failurehandling in case of missing block start/end statements
----------------------------
revision 1.1
date: 2000/07/04 12:52:09;  author: tom;  state: Exp;
implemented module and method getall, works as expected.




git-svn-id: http://dev.catalyst.perl.org/repos/Config-General/trunk@5 be1acefe-a474-0410-9a34-9b3221f2030f
2009-10-10 16:07:21 +00:00