File: Changelog

package info (click to toggle)
libconfig-general-perl 2.50-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 412 kB
  • sloc: perl: 1,661; makefile: 53; ansic: 2
file content (999 lines) | stat: -rw-r--r-- 37,519 bytes parent folder | download
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
 2.50
	- 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


 2.49
	- fixed rt.cpan.org#56532, '#' missed during fix for
	  56370 in 2.45.

	- added test case for this too


 2.48
	- arg, uploaded the wrong file to pause, so another version
	  bump up.

	- fixed typos in pod section for -ForceArray.


 2.47
	- fixed rt.cpan.org#53759 by adding new option -ForceArray.
	  when enabled a single config value enclosed in [] will become
	  an array forcefully.

	- fixed typo in license: it is "artistic", not "artificial".


 2.46
	- fixed rt.cpan.org#56370: there was a sort() call in _store()
	  left, which lead to sorted arrays even if -SaveSorted were
	  turned off.


 2.45
	- fixed rt.cpan.org#50647 escaping bug. Now escaped $ or
	  backslash characters are handled correctly (across save too)

	- fixed rt.cpan.org#52047, tied hash will remain tied
	  when savong to a file.

	- fixed rt.cpan.org#54580, preserve single quotes during
	  variable interpolation corrected. No more using rand()
	  to mark single quotes but an incrementor instead.

	- fixed rt.cpan.org#42721+54583, empty config values will no
	  more handed over to interpreting methods (as interpolate
	  or autotrue and the like) but returned as undef untouched.


 2.44
	- fixed rt.cpan.org#49023 by rolling back change in 2.43
	   in line 158, regarding GLOB support.
	
 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.


 2.42
	- dist tarball for 2.41 missed t/Tie/LxHash.pm. Dammit.
          the File to the MANIFEST.


 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.



 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.

 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.


 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.
	  

 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.


 2.36
	- oh my goodness! For some unknown reason I deleted the
	  Makefile.PL before packaging. Dammit. So, here it is
	  again.

 2.35
	- 'make test' failed under perl 5.5 because some prequisite
	  modules were not found. So now I added all requirements
	  to Makefile.PL, even if those modules are part of
	  recent perls (beginning with 5.6). I could have also 
	  added a 'use 5.6' to the code but this would users
	  of perl5 exclude. This way they have the possibility
	  to fix their installation. Hopefully.

	  No code changes otherwise.


 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.


 2.33
	- fixed rt.cpan.org#26333 - just return $con if env var
	  is undefined.

	- applied part of a patch supplied by Vincent Rivellino <vince@cuz.cx>
	  which turns off explicit empty block support if in
	  apache compatibility mode, see next.

	- added new option -ApacheCompatible, which makes the
	  module behave really apache compatible by setting the
	  required options.

	- a little bit re-organized the code, most of the stuff
	  in new() is now outsourced into several extra subs to
	  make maintenance of the code easier. The old new() sub
	  in fact was a nightmare.

	- fixed a bug reported by Otto Hirr <otto.hirr@olabinc.com>:
	  the _store() sub used sort() to sort the keys, which conflicts
	  with sorted hashes (eg. tied using Tie::IxHash).

	- fixed tie bug reported by King, Jason <kingj@newsltd.com.au>,
	  loading of the tie module didn't work.


 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.



 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.


 2.30
	 - applied patch by Branislav Zahradnik
	   <brano@blueorange.sk> which adds -InterPolateEnv.
	   This allows to use environment variables too. It
	   implies -InterPolateVars.

	 - added object list capability for the ::Extended::obj()
	   method. If a certain key points to an array of
	   hashrefs, then the whole arrayref is returned.
	   Suggested by Alan Hodgkinson <alan@softxs.ch>.

 2.29
	 - applied patch by brian@kronos.com via rt.cpan.org
	   #11211.
	
	 - applied patch by plasmaball@pchome.com.tw via
	   rt.cpan.org #5846

	 - added new files to MANIFEST file.

 	 - added example.cfg to show the config format.


 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)


 2.27
         - bugfix in _store, which caused warning when saving
	   a config containing empty hashes. Reported by 
	   herbert breunung <deirdre_skye@web.de>.

	 - removed applied patch (added in 2.20), there are no more
  	   calls to binmode(), this destroys portability, because
	   perls determines itself wether it uses \n or \r\n as newline.
	   Reported by herbert breunung too.
	
	 - applied patch by Danial Pearce <danial@infoxchange.net.au>,
	   scalars containing a backslash as the last character will
	   be written out as here-doc when storing a config to disk.


 2.26
	 - fixed invalid regexp in _open() which circumvented
	   explicit empty block to work when the block statement
	   included whitespaces.
	
	 - more finetuning in Makefile.PL for cleaning emacs'
	   ~ files.


 2.25
	 - fixed bug with not working -IncludeRelative setting when
	   including a config file. It were only included from the
	   location relative to the underlying config if it were
	   non-existent. reported by Dmitry Koteroff <dmitry@koteroff.ru>.

	 - applied patch by Danial Pearce <danial@infoxchange.net.au>
	   which adds the -BackslashEscape parameter to enable
	   general escaping of special characters using the 
	   backslash.

	 - fixed bug reported by Harold van Oostrom <cpan@lanceerplaats.nl>:
	   according to the documentation one can call new() with
	   a hash-ref as its single parameter which would then
	   used as the config. This didn't work and were fixed.

	 - added feature suggested by Eric Andreychek <eric@openthought.net>:
	   now block statements like this are allowed: "<directory blah/>"
	   which is called an explicit empty block. This generates just
	   an empty hash-ref and saves writing. In fact, internally it
	   will be converted to:
	      <directory blah>
	      </directory>

	 - fixed Makefile.PL: it cleans now files generated by 'make test'
	   properly. reported by: Dagfinn Ilmari Mannsker <ilmari@ilmari.org>

	 - updated MANIFEST (in fact I did this some years ago the last time!)
	   also reported by: Dagfinn Ilmari Mannsker <ilmari@ilmari.org>


 2.24
	 - fixed Bug #3869 (rt.cpan.org) reported by
	   "Mike Depot" <mdepot@comcast.net>

	 - applied patch by Roland Huss <Roland.Huss@consol.de>,
	   which fixes a bug with the -Tie option, sub-hashes of
	   named blocks were not properly created (in fact, not
	   tied).

	 - added documentation to Interpolated.pm that it does not
	   interpolate variables in keys, see bug #3773 (rt.cpan.org).
	   

 2.23
         - still versioning problem, stupid white man ;-)
	   Extended.pm is now 2.00 which *is* higher than 1.10.

 2.22
         - incremented all version numbers because of cpan problem.
	   no further changes. See Bug #3347 (rt.cpan.org).

 2.21
	 - fixed bug in new() used $this instead of $self for empty
	   hashref creation if no config file given.

 2.20
	 - fixed bug reported by Stefano di Sandro <stedis@ulis.it>: in
 	   OOP mode (extended access) the obj() method returned the whole
	   config object if the given key does not exist. Now it returns
	   a new empty object.

	 - added patch by David Dick <david_dick@iprimus.com.au> which
	   sets $/ if it is unset.

	 - added patch by David Dick <david_dick@iprimus.com.au> which
	   calls the binmode() function in case the modules is being
	   used under win32 systems. Read perldoc -f binmode for more
	   informations on this issue.

	 - added feature suggested by Chase Phillips <cmp@uiuc.edu>:
	   the new() method has a new parameter -Tie which takes the
	   name of a Tie class that each new hash should be based off
	   of. This makes it possible to create a config hash with
	   ordered contents across nested structures.

 2.19
	 - forgot to import 'catfile' from File::Spec. Bug reported by
 	   various people.

 	 - applied patch by Peter Tandler <Peter.Tandler@ipsi.fhg.de>
	   which adds a search-path feature for include files.

	 - applied patch by David Dick <david_dick@iprimus.com.au> which
	   adds an auto launder capability to the module which makes it
	   possible to use variables read by Config::General in a
	   tainted perlscript (executed with -T) for open(), backtick calls
	   or something which the taintmode considers to be dangerous.

 2.18
	 - fixed Bug #2325 (rt.cpan.org). The subs exported by File::Spec
	   will now imported explicitly.
	 - fixed warning about double my'ed variable $dummi, changed it
	   to undef because it was unused anyway.

 2.17
	 - added File::Spec support which makes the modules more portable
	   (i.e. on win32 systems),
	   as suggested by Peter Tandler <Peter.Tandler@ipsi.fhg.de>.

 2.16
	 - applied patch by Michael Gray <mjg17@eng.cam.ac.uk> which
	   fixes a bug in the Interpolate.pm submodule. A second variable,
	   when immediately following the first, did not get interpolated,
	   i.e. ${var1}${var2}.

 2.15    - fixed Bug in SaveConfig***, which didn't work.
         - applied patch by Robb Canfield <robb@canfield.com>,
	   which fixes a bug in the variable interpolation
	   scheme. It did not interpolate blocks nor
	   blocknames. This patch fixes this. Patch slightly
	   modified by me(interpolation on block and blocknames).
	 - enhanced test for variable interpolation to
	   reflect this.
	 - added check if a named block occurs after the underlying
	   block is already an array, which is not possible.
	   perl cannot add a hashref to an array. i.e.:
	   <bl>
 	     a = 1
	   </bl>
	   <bl>
 	     b = 1
	   </bl>
	   <bl blubber>
 	     c = 1
	   </bl>
	   As you can see, "<bl>" will be an array, and "blubber"
	   cannot be stored in any way on this array.
	   The module croaks now if such construct occurs.

 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.

         - fixed a formatting error in the POD documentation.


 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
	 - removed whitespace support in keys in the default parser
	   SplitPolicy 'guess', which was introduced in 2.02. Now
	   I (re-)use the old regex I used before. if you need
	   whitespaces in keys, use 'equalsign' as SplitPolicy.
	 - the write_scalar() method uses the StoreDelimiter for
	   separating options from values.
	 - added -CComments to make it possible to turn c-comment
	   parsing off.
	 - added support for FileHandle objects as parameter to the
	   -ConfigFile parameter. This makes it possible to use locking.

 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.

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


 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.

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

 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 _write_scalar(), see next.

         - added internal methods _write_scalar() and _write_hash()
	   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 _parse_value() 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 save_file(). 

 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)
         - added code to check if unknown parameters to new()
	   has been supplied.

 1.29:
	 - added 2 procedural functions ParseConf and SaveConf
	 - added new parameters -AutoTrue and -FlagBits
	 - added save_file() which replaces save(), which was
	   weird implemented. If the user only supplied a hash
           as parameter to save(), then the first key was
	   used as the filename and the rest was used
	   as a config hash (which was then of an uneven size).
	 - save_file() takes now instead of a hash a hash-ref
	   and a filename. And the hashref is optional, since
	   the object already contains a complete hash.
	 - new method save_string() added, which returns the
	   ready generated string instead of writing it to
	   disk. The user can then save it himself.
	 - POD updated.

 1.28:
	 - added contributed sub module Config::General::Interpolated
	   by "Wei-Hon Chen" <plasmaball@pchome.com.tw> with
	   help from "Autrijus Tang" <autrijus@autrijus.org>
	   which makes it possible to use variables inside
	   config files.
	 - _read() accepts now c-comments inside c-comments if
	   they are on a single line.
	 - _read() is now more tolerant to here-identifiers
	   (the ends of here-docs), whitespaces right after
	   such an identifier are allowed (i.e. "EOF  ").
	 - _read() does now behave somewhat different with
	   C-comments, they will be the first thing being
	   processed in a config, so the parser really
	   ignores everything inside C-comments. Previously
	   it did not do that, for example here-docs has
	   not been ignored.

 1.27:   - "make test" complained about uninitialized value
           in :146, which is now fixed.

 1.26:   - added filehandle capability to -file.
         - added -String parameter to new(), which allows
           one to supply the whole config as a string.
         - added -MergeDuplicateBlocks option, which causes
	   duplicate blocks to be merged.

 1.25:   - include statements are now case insensitive
 	 - include statements may now also being used with
	   indentation(leading and following whitespaces are
	   allowed)
	 - changed the end here-doc regexp from .+? to \S+?
	   so "  <<include..." works as expected (this was a bug, imo)
	 - added new option -IncludeRelative (idea contributed
	   by Valerio_Valdez Paolini <paolini@students.cs.unibo.it>
	   and Anton Luht <luht@ank.ru> :-)
	   This allows to include files from the location of
	   the configfile instead from the working directory.

 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: ***

rangehngt, 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.