Re: making user definable variables really global

Adrian Aichner <[email protected]> Tue, 17 Jun 2003 15:24:42 +0200
Newsgroups gmane.comp.tex.texi2html.devel
Organization Teradyne, Inc. -- Consumer Business Unit
Message-ID <[email protected]>
diruse.pl (application/octet-stream, 9.5 KB)
IyEgL3Vzci9sb2NhbC9iaW4vcGVybCAtdw0KIw0KIyAkSWQ6IGRpcnVzZS5wbCx2IDEuMTUg
MjAwMy8wNC8yNyAyMDoxNzo1NSBBaWNobmVyQWQgRXhwICQNCiMNCiMgQWRyaWFuIEFpY2hu
ZXIsIFRlcmFkeW5lIEdtYkguIE11bmljaCwgVHVlLCBNYXIuIDAyIDE5OTkuDQojDQojIENy
ZWF0ZSBkaXNrIHVzYWdlIHJlcG9ydCB1c2luZyBkaXJ1c2UuZXhlLCBwcm92aWRlZCBieSB0
aGUgV2luZG93cw0KIyBOVCBSZXNvdXJjZSBLaXQuDQoNCnVzZSBBUEE6OkR1bXBFeHQ7DQp1
c2UgQ0dJOjpDYXJwIHF3KGZhdGFsc1RvQnJvd3Nlcik7DQp1c2UgQ0dJOjpDYXJwOw0KdXNl
IENHSTsNCnVzZSBEYXRhOjpEdW1wZXI7DQp1c2UgR2V0b3B0OjpMb25nOw0KdXNlIFN5czo6
SG9zdG5hbWU7DQoNCm15ICVvcHRpb25zID0gKA0KICAgICAgICAgICAgICAgImhlbHAiDQog
ICAgICAgICAgICAgICA9PiAiRGlzcGxheSB0aGlzIGhlbHAgbWVzc2FnZSIsDQogICAgICAg
ICAgICAgICAia2V5c3Ryb2tlIg0KICAgICAgICAgICAgICAgPT4gIldhaXQgZm9yIGEga2V5
IHN0cm9rZSBiZWZvcmUgY29tcGxldGlvbiIsDQogICAgICAgICAgICAgICAiZmlsZT1zIg0K
ICAgICAgICAgICAgICAgPT4gIkNvbmZpZyBmaWxlIHRvIGJlIHVzZWQgKHJlcXVpcmVkKSIs
DQogICAgICAgICAgICAgICk7DQoNCnVzZSB2YXJzIHF3LyAkb3B0X2hlbHAgJG9wdF9rZXlz
dHJva2UgJG9wdF9maWxlIC87DQoNCm1haW4oKTsNCg0Kc3ViIG1haW4gew0KICAgIG15IChA
Y21kX2xpbmUpID0gKCQwLCBAQVJHVik7DQogICAgbXkgJGNvbmZpZzsNCiAgICBteSAkaW5k
ZW50ID0gIiAgIjsNCiAgICBpZiAoISBHZXRPcHRpb25zKGtleXMoJW9wdGlvbnMpKSBvciAk
b3B0X2hlbHAgb3IgISBkZWZpbmVkICRvcHRfZmlsZSkgew0KICAgICAgICBVc2FnZSgNCiAg
ICAgICAgICAgICAgXCVvcHRpb25zLA0KICAgICAgICAgICAgICAiJDAgY2FsbHMgZGlydXNl
LmV4ZSwgYWNjb3JkaW5nIHRvIGNvbmZpZ3VyYXRpb24gZmlsZS4iDQogICAgICAgICAgICAg
KTsNCiAgICB9DQogICAgaWYgKC1lICIkb3B0X2ZpbGUiKSB7DQogICAgICAgICRjb25maWcg
PSBkbyAiJG9wdF9maWxlIiBvciBkaWUgIkNhbm5vdCBvcGVuIFwnJG9wdF9maWxlJyI7DQog
ICAgfSBlbHNlIHsNCiAgICAgICAgJGNvbmZpZyA9IHsNCiAgICAgICAgICAgICAgICAgICAn
Y29tbWFuZF9kaXInID0+IHFbYzpcXE5UUkVTS0lUXSwNCiAgICAgICAgICAgICAgICAgICAn
b3V0cHV0JyA9PiAnYzpcXHRlbXBcXGRpcnVzZS5odG1sJywNCiAgICAgICAgICAgICAgICAg
ICAnb3B0aW9ucycgPT4gcVsvbSAvcyAvcTo1MCAvZF0sDQogICAgICAgICAgICAgICAgICAg
J2RpcnMnID0+IHFbYzpcXF0sDQogICAgICAgICAgICAgICAgICB9Ow0KICAgICAgICAjICRE
YXRhOjpEdW1wZXI6OkluZGVudCA9IDEsDQogICAgICAgICMgJERhdGE6OkR1bXBlcjo6UHVy
aXR5ID0gMSwNCiAgICAgICAgIyByY3MgPSAwOw0KICAgICAgICBkdW1wX2RhdGFfdG9fZmls
ZSgkY29uZmlnLCAiJG9wdF9maWxlIiwgMSwgMSwgMCk7DQogICAgICAgIHByaW50IFNUREVS
UiAiUGxlYXNlIGFkanVzdCBcIiRvcHRfZmlsZVwiIHRvIHlvdXIgbGlraW5nIGJlZm9yZSBy
ZS1ydW5uaW5nLiI7DQogICAgICAgIGV4aXQgMTsNCiAgICB9DQogICAgbXkgJGNvbW1hbmRf
ZGlyID0gJGNvbmZpZy0+eydjb21tYW5kX2Rpcid9Ow0KICAgICMgQVBBOiBZdWNrISAgSG93
IGRvIEkgZG8gdGhpcyByaWdodD8gIEkgcXVvdGUgaXQgaGVyZSBiZWNhdXNlIGl0DQogICAg
IyBnZXRzIGV2YWx1YXRlZCBvbmUgbW9yZSB0aW1lIGluIG9wZW4oQ01ESU4sIC4uLikuDQog
ICAgIyBBUEE6IHF1b3RlbWV0YSBub3QgbmVjZXNzYXJ5IGluIEFjdGl2ZVBlcmwhDQogICAg
IyBteSAkZGlycyA9IHF1b3RlbWV0YSgkY29uZmlnLT57J2RpcnMnfSk7DQogICAgbXkgJGRp
cnMgPSAkY29uZmlnLT57J2RpcnMnfTsNCiAgICBteSAkb3B0aW9ucyA9ICRjb25maWctPnsn
b3B0aW9ucyd9Ow0KICAgIG15ICRvdXRwdXQgPSAkY29uZmlnLT57J291dHB1dCd9Ow0KICAg
IG9wZW4oU0FWRU9VVCwgIj4gJG91dHB1dCIpOw0KICAgIGJpbm1vZGUgU0FWRU9VVDsNCiAg
ICBzZWxlY3QoU0FWRU9VVCk7DQogICAgIyBBUEE6IFl1Y2shIGNvbW1hbmRfZGlyIG11c3Qg
ZW5kIGluIGRpcmVjdG9yeV9zZXBfY2hhci4gIFRoaXMNCiAgICAjIHBhdGggc2hvdWxkIGJl
IGNvbnN0cnVjdGVkIHByb3Blcmx5IGluIHBlcmwhDQogICAgb3BlbiAoQ01ESU4sICIke2Nv
bW1hbmRfZGlyfURJUlVTRS5FWEUgJG9wdGlvbnMgJGRpcnMgfCIpOw0KICAgIGJpbm1vZGUg
Q01ESU47DQogICAgbXkoJGZvcm0pID0gbmV3IENHSSh7fSk7DQogICAgbXkgJHRpdGxlID0g
IkJpZyBEaXJlY3RvcmllcyBvbiAiIC4gaG9zdG5hbWUoKTsNCiAgICAjIERvbid0IHByaW50
IGhlYWRlciB1bmxlc3MgcnVubmluZyBhcyBDR0ktQklOIHNjcmlwdC4NCiAgICAjIHByaW50
ICRmb3JtLT5oZWFkZXI7DQogICAgcHJpbnQgJGZvcm0tPnN0YXJ0X2h0bWwoLWR0ZCA9PiBb
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0vL1czQy8vRFREIFhI
VE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJh
bnNpdGlvbmFsLmR0ZCddLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICctdGl0bGUn
ID0+ICR0aXRsZSwNCiAgICAJCQkgICAgJy1hdXRob3InID0+ICdhZHJpYW4uYWljaG5lckB0
ZXJhZHluZS5jb20nKTsNCiAgICBwcmludGYoIlxuJXM8aDE+JHRpdGxlPC9oMT5cbiIsICRp
bmRlbnQgeCAyKTsNCiAgICBwcmludGYoIiVzPHA+YXMgb2YgIiAuIGdtdGltZSgpIC4gIiBH
TVQ8L3A+XG4iLCAkaW5kZW50IHggMik7DQogICAgcHJpbnRmKCIlczx0YWJsZSBib3JkZXI9
MT5cbiIsICRpbmRlbnQgeCAyKTsNCiAgICB3aGlsZSAoPENNRElOPikgew0KCSMNCgkjIFBl
cmZvcm0gbGluZS1vcmllbnRlZCBhY3Rpb25zIGJlbG93Lg0KCSMNCgljaG9tcDsNCglpZiAo
L15ccytTaXplLykgew0KCSAgICBAaGVhZGluZ3MgPSBzcGxpdDsNCgkgICAgcHJpbnRmKCIl
czx0cj5cbiIsICRpbmRlbnQgeCAzKTsNCgkgICAgcHJpbnRmKCIlczx0aD4lcyVzPC90aD5c
biIsICRpbmRlbnQgeCA0LCBAaGVhZGluZ3NbMC4uMV0pOw0KCSAgICBwcmludGYoIiVzPHRo
PiVzPC90aD5cbiIsICRpbmRlbnQgeCA0LCAkaGVhZGluZ3NbMl0pOw0KCSAgICBwcmludGYo
IiVzPHRoPiVzPC90aD5cbiIsICRpbmRlbnQgeCA0LCAkaGVhZGluZ3NbM10pOw0KCSAgICBw
cmludGYoIiVzPC90cj5cbiIsICRpbmRlbnQgeCAzKTsNCgl9DQoJcHVzaCBAaGVhdmllcywg
JF8gaWYgL14hLzsNCiAgICB9DQogICAgQGhlYXZpZXMgPSBzb3J0IGJ5U2l6ZSBAaGVhdmll
czsNCiAgICBmb3IgKEBoZWF2aWVzKSB7DQogICAgICAgIHByaW50ZigiJXM8dHI+XG4iLCAk
aW5kZW50IHggMyk7DQogICAgICAgICh1bmRlZiwgQGNvbHMpID0gc3BsaXQ7DQoJcHJpbnRm
KCIlczx0ZCBhbGlnbj1yaWdodD4lczwvdGQ+XG4iLCAkaW5kZW50IHggNCwgc2hpZnQgQGNv
bHMpOw0KCXByaW50ZigiJXM8dGQgYWxpZ249cmlnaHQ+JXM8L3RkPlxuIiwgJGluZGVudCB4
IDQsIHNoaWZ0IEBjb2xzKTsNCiAgICAgICAgcHJpbnRmKCIlczx0ZD5AY29sczwvdGQ+XG4i
LCAkaW5kZW50IHggNCk7DQogICAgICAgIHByaW50ZigiJXM8L3RyPlxuIiwgJGluZGVudCB4
IDMpOw0KICAgIH0NCiAgICBwcmludGYoIiVzPC90YWJsZT5cbiIsICRpbmRlbnQgeCAyKTsN
CiAgICBwcmludGYoIiVzPHA+PHNtYWxsPkdlbmVyYXRlZCBmb3IiLCAkaW5kZW50IHggMik7
DQogICAgcHJpbnQgIiA8YSBocmVmPVwibWFpbHRvOmFkcmlhbi5haWNobmVyXEB0ZXJhZHlu
ZS5jb21cIj4iOw0KICAgIHByaW50ICdhZHJpYW4uYWljaG5lckB0ZXJhZHluZS5jb208L2E+
JzsNCiAgICBwcmludCAnIGJ5ICRJZDogZGlydXNlLnBsLHYgMS4xNSAyMDAzLzA0LzI3IDIw
OjE3OjU1IEFpY2huZXJBZCBFeHAgJC4nOw0KICAgIHByaW50ZigiPC9zbWFsbD48L3A+XG4l
cyIsICRpbmRlbnQgeCAxKTsNCiAgICBwcmludCAkZm9ybS0+ZW5kX2h0bWw7DQogICAgcHJp
bnQgIlxuIjsNCiAgICAjDQogICAgIyBCZWdpbiBvZiBzZWN0aW9uIHByb2R1Y2VkIGJ5Og0K
ICAgICMgQzpcVXNlcnNcQWljaG5lckFkL3BsL3ByaW50Zml6ZS5wbCAtcGVybA0KICAgICMN
CiAgICBwcmludGYoIlxuIik7DQogICAgcHJpbnRmKCI8IS0tIEtlZXAgdGhpcyBjb21tZW50
IGF0IHRoZSBlbmQgb2YgdGhlIGZpbGVcbiIpOw0KICAgIHByaW50ZigiTG9jYWwgdmFyaWFi
bGVzOlxuIik7DQogICAgcHJpbnRmKCJtb2RlOiB4bWxcbiIpOw0KICAgIHByaW50Zigic2dt
bC1vbWl0dGFnOm5pbFxuIik7DQogICAgcHJpbnRmKCJzZ21sLXNob3J0dGFnOm5pbFxuIik7
DQogICAgcHJpbnRmKCJzZ21sLW5hbWVjYXNlLWdlbmVyYWw6bmlsXG4iKTsNCiAgICBwcmlu
dGYoInNnbWwtZ2VuZXJhbC1pbnNlcnQtY2FzZTpsb3dlclxuIik7DQogICAgcHJpbnRmKCJz
Z21sLW1pbmltaXplLWF0dHJpYnV0ZXM6bmlsXG4iKTsNCiAgICBwcmludGYoInNnbWwtYWx3
YXlzLXF1b3RlLWF0dHJpYnV0ZXM6dFxuIik7DQogICAgcHJpbnRmKCJzZ21sLWluZGVudC1z
dGVwOjJcbiIpOw0KICAgIHByaW50Zigic2dtbC1pbmRlbnQtZGF0YTp0XG4iKTsNCiAgICBw
cmludGYoInNnbWwtcGFyZW50LWRvY3VtZW50Om5pbFxuIik7DQogICAgcHJpbnRmKCJzZ21s
LWV4cG9zZWQtdGFnczpuaWxcbiIpOw0KICAgIHByaW50Zigic2dtbC1sb2NhbC1jYXRhbG9n
czpuaWxcbiIpOw0KICAgIHByaW50Zigic2dtbC1sb2NhbC1lY2F0LWZpbGVzOm5pbFxuIik7
DQogICAgcHJpbnRmKCJFbmQ6XG4iKTsNCiAgICBwcmludGYoIi0tPlxuIik7DQogICAgIw0K
ICAgICMgRW5kIG9mIHNlY3Rpb24gcHJvZHVjZWQgYnk6DQogICAgIyBDOlxVc2Vyc1xBaWNo
bmVyQWQvcGwvcHJpbnRmaXplLnBsIC1wZXJsDQogICAgIw0KfQ0KDQpzdWIgYnlTaXplIHsN
CiAgICBteSAkYVNpemUgPSAoc3BsaXQgJyAnLCAkYSlbMV07DQogICAgbXkgJGJTaXplID0g
KHNwbGl0ICcgJywgJGIpWzFdOw0KICAgICMgICAgcHJpbnRmICIkYVNpemUgPD0+ICRiU2l6
ZSBsZWFkcyAlZFxuIiwgJGFTaXplIDw9PiAkYlNpemU7DQogICAgJGJTaXplIDw9PiAkYVNp
emU7DQp9DQo=



sub dump_data_to_file {
    my $data = $_[0];
    my $file = $_[1];
    $Data::Dumper::Indent = defined $_[2] ? $_[2] : 1;
    $Data::Dumper::Purity = defined $_[3] ? $_[3] : 1;
    my $rcs = defined $_[4] ? $_[4] : 1;
    my $comment = $_[5];
    open(DB, "> $file") or confess $!;
    print DB "# -*-CPerl-*-\n#\n# This file was produced by:\n# $0\n";
    print DB "# at UTC " . gmtime() . "\n#\n";
    if (defined $comment) {
        my $comment_format = "# ^" . '<' x 76 . " ~~\n";
        $ACCUMULATOR = "";
        formline ($comment_format, $comment);
        print DB "$ACCUMULATOR#\n";
    }
    print DB "# Dumper Configuration:\n";
    print DB "# \$Data::Dumper::Indent is $Data::Dumper::Indent\n";
    print DB "# \$Data::Dumper::Purity is $Data::Dumper::Purity\n";
    print DB "# \$Data::Dumper::Terse is $Data::Dumper::Terse\n";
    print DB "# \$Data::Dumper::Pad is \"$Data::Dumper::Pad\"\n";
    print DB "# \$Data::Dumper::Varname is \"$Data::Dumper::Varname\"\n#\n";
    print DB Dumper($data);
    close(DB);
}

    Derek> Dumas Patrice wrote:
    >> Hi,
    >> 
    >> I am struggling with the singular manual, and it appears that if there is
    >> a my variable in the texi2html script, the value cannot be overwrited
    >> by a required file (that is quite logical as the scope of the
    >> variable is then the script file). Thus I am going to remove lots of
    >> my for variables in
    >> texi2html.init and make these variables global (which is hurting me
    >> inside, after all the my variables I did ;-).
    >> 
    >> If somebody knows a better approach I'd be glad to hear.
    >> 

    Derek> Again, how about sourcing the files into a Texi2HTML::Config package
    Derek> or the like?  I'm torn over whether the .init file should contain the
    Derek> "package Texi2HTML::Config" line or not, but it might not hurt.

    Derek> Derek

    Derek> -- 
    Derek>                 *8^)

    Derek> Email: [email protected]

    Derek> Get CVS support at <http://ximbiot.com>!
    Derek> --
    Derek> When the only tool you own is a hammer, every problem begins to resemble a
    Derek> nail.

    Derek> 	- Abraham Maslow




    Derek> ---------------------------------------------------------------------
    Derek> To unsubscribe, e-mail: [email protected]
    Derek> For additional commands, e-mail: [email protected]


-- 
  Adrian Aichner              Teradyne GmbH, European Design Center
  Consumer Business Unit      Telephone +49/89/41861(0)-208
  Dingolfinger Strasse 2      Fax       +49/89/41861-115
  D-81673 MUENCHEN            E-mail    [email protected]