2.50

2.49

2.48

2.47

2.46

2.45

2.44

2.43

2.42

2.41

2.40

2.39

2.38

2.37

2.36

2.35

2.34

2.33

2.32

2.31

Thanks a lot Jason.

2.30

2.29

2.28

2.27

2.26

2.25

2.24

2.23

2.22

2.21

2.20

2.19

2.18

2.17

2.16

2.15 - fixed Bug in SaveConfig***, which didn't work.

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.

2.13 - fixed bug reported by Steffen Schwigon <schwigon@webit.de>.

           the parser was still active inside a here-doc, which
           cause weird results if the here-doc contained
           multiple <<XXX strings.
           this bug has been fixed by re-organizing the _read()
           method. now the parser is only active outside of
           here-docs.

         - here-doc parsing bug fixed, which ignored the
           -SplitPolicy settings completely, now it is aware
           of the split policy

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.

2.11 - heavy change in the variable interpolation code.

           Peter Sergeant <pete@clueball.com> reported this
           mis-behavior. The problem was that the whole hash
           was feeded to ::Interpolated.pm, but as we all
           know, perl hashes doesn't preserve the order. So,
           in our case the module sometimes was unable to
           resolve variablenames, because they were stored
           in a different location as it occured in the config.
           The change is, that Config::General now calls
           ::Interpolate.pm (new sub: _interpolate()) itself
           directly on a per-key/value pair basis. The internal
           varstack is now stored on $this globally. So, now
           a variable will be known when it occurs. period :-)

2.10 - added -StrictVars documentation section to the POD,

which was missing.

2.09 - added bugfix in '#' comment parsing. If current state

           was within a block, then /^   #/ was not ignored as
           comment but instead added as variable. Reported by
           Lupe Christoph <lupe@lupe-christoph.de>

         - added -StrictObjects parameter support in the following
           ::Extended methods: hash() and value().

         - added better parameter checks in the ::Extended::obj()
           method. Its now no more possible to create a new (sub-)
           object from an undefined key or a key which does not
           point to a hash reference.

         - simplified storing of ConfigFile and ConfigHash in new()
           removed my variable $configfile.

         - the original parameter list will now be saved, which is
           required for ::Extended to create new objects with the
           same config as their parents.

2.08 - added option -StrictVars, which causes Interpolate.pm to

           ignore undefined variables and replaces such occurences
           with the emppty string.

         - applied patch by Stefan Moser <sm@open.ch>, which fixes
           some weird bevavior if -MergeDuplicateOptions was turned
           on, the parser croaked regardless -MergeDuplicateBlocks
           was set or not. Now the two options behave almost independent
           from each other, which allows one to merge duplicate
           blocks but duplicate options not.

         - changed behavior of setting -MergeDuplicateOptions which
           implied in previous versions -AllowMultiOptions to be
           false. Now this will only be done if the user does not
           set -AllowMultiOptions by himself. This allows one to
           have duplicate blocks which will be turned into an
           array but duplicate options to be merged.

         - applied patch by Matthias Pitzl <matthias@izb.net>, which    
           fixes a bug at parsing apache-like include directive
           (Include ...). It did not properly trim unnecessary whitespaces
           so that the filename to be included became invalid. This
           bug espessially occurred if one saved a hash containing
           a key/value pair like this: "Include" => "/etc/grs.cfg",
           which was then saved as "Include   /etc/grs.cfg", the
           parser returned "  /etc/grs.cfg" which, of course, does
           not exists. odd...

2.07 - fixed cpan bugid #1351, SaveConfig contained a deprecated

           function call which caused the module to croak.
         - added feature request, if in extended mode (OOP turned
           on with -ExtendedAccess => 1 access to non-existent keys     
           caused a croak. While this is still the default behavior
           it is now possible to turn this off using -StrictObjects => 0.
         - added this to the related pod section in ::Extended.
         - fixed bug in new() which caused a couple of errors
           if the ConfigFile parameter is not set, or is set to
           undef. In this case it will now simply create an empty
           object.
         - fixed related bug in save_file() which will save "" to
           a file now if the config is uninitialized (i.e. the case
           mentioned below arrived).

2.06 - added -SplitPolicy, -SplitDelimiter and -StoreDelimiter

2.05 - fixed bug in ::Extended. It exported for some weird

           reason I cant remember all of its methods. This included
           keys() exists() and delete(), which are perl internals.
           If one used keys() on a normal hash, then the ::Extended
           own keys() were used instead of perls own one. I removed
           the export line.

2.04 - added RFE from rt.cpan.org (ID: 1218). the ::Interpolate

           module populates now uses of uninitialized variables in
           config files itself instead of just letting perl die().
           The other suggestion of the RFE was declined.

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.

2.02 - added patch by Jens Heunemann, which allows to use

whitespaces in option names.

2.01 - added -ConfigFile (in replace for -file) and

           -ConfigHash (in replace for -hash) to get a consistent
           parameter naming scheme. The old names are still
           supported for backward compatibility, but no more
           documented.

         - the parameter -BaseHash has been dropped because
           -DefaultConfig already has the capabilities of
           defining a custom backing hash. The pod section for
           -DefaultConfig has been enhanced to reflect this.

         - README changed something. Removed the 'small' keyword,
           because the module isn't really small anymore :-)
           At least IMHO.

2.00 - fixed a bug in the ::Extended::keys() method, which

           caused a beloved "use of uninitialized ..." message.
           Reported by Danial Pearce <danial@infoxchange.net.au>.

         - Removed all deprecated methods (in fact, they are still
           there for shouting out a warn that its deprecated. But
           the pod sections are removed. These are NoMultiOptions()
           and save().

         - added two new parameters to new(): -InterPolateVars and
           -ExtendedAccess, which allows one to use the functionalites
           of the supplied submodules without the need to decide
           for one of them. This makes it possible to use variable
           interpolation and oop access in the same time. Suggested
           by Jared Rhine <jared@wordzoo.com>.

         - added new parameter -BaseHash which makes it possible
           to supply your own hash which stores the parsed contents
           of the config. This can be a tied hash o the like.
           Suggested by Jared Rhine <jared@wordzoo.com> too.

         - switched to release 2.00 because the above is a major
           change.

1.36 - simplified new() parameter parsing, should be now a little

bit better to understand.

1.35 - the here-doc identifier in saved configs will now created

           in a way which avoids the existence of this identifier
           inside the here-doc, which if it happens results in
           weird behavior in the resulting config.

1.34 - Danial Pearce <danial@infoxchange.net.au> reported a bug

           in _store(), which caused the module to create scalar
           entries even if the entry contained newlines. While
           Danial supplied a patch to fix this - thx(TM) - I
           did not apply it, because I "outsourced" this kind of
           stuff to the subroutine writescalar(), see next.

         - added internal methods writescalar() and writehash()
           to simplify _store(), which did the same thing more
           than once, which is a good time to create a sub which
           does the job.

         - fixed cut'n paste bug in General/Extended.pm reported by
           Danial Pearce <danial@infoxchange.net.au>, which caused
           Config::General::Extended::is_scalar() to return true even
           when the key you pass in is an array.

         - added new method Config::General::Extended::delete() suggested
           by Danial Pearce <danial@infoxchange.net.au>, which deletes
           the given key from the config.

1.33 - fixed bug in parsevalue() which caused perl to complain

           with "Use of uninitialized value in..." if a value was
           empty.

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 savefile(). 

1.31: - i'm such a moron ... I forgot to do a make clean

in 1.30, pf. So this is 1.31, which is clean.

1.30: - fixed typo, which made 1.29 unusable (undefined var %config)

1.29:

1.28:

1.27: - "make test" complained about uninitialized value

in :146, which is now fixed.

1.26: - added filehandle capability to -file.

1.25: - include statements are now case insensitive

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).

1.23: - fixed bug, which removed trailing or leading " even

no matching " was there.

1.22: - added a new option to new(): -LowerCaseNames, which

lowercases all option-names (feature request)

1.21: - lines with just one "#" became an option array named

"#" with empty entries, very weird, fixed

1.20: - added an if(exists... to new() for checking of the

           existence of -AllowMultiOptions.
         - use now "local $_" because it caused weird results
           if a user used $_ with the module.

1.19: - you can escape "" characters using a backslash: "\"

           which will now no more treated as a comment.
         - comments inside here-documents will now remain in the
           here-doc value.

history logs 1.17+1.18 are lost in space :-(

older history logs (stripped from CVS):

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.