X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=overload.pl;h=6f0fe34ffd83879e5ccd2d5599f7a745ec49dac3;hb=0598b5ab3697b872539de6ed6dc1522b873602e1;hp=69808c6221314b32cc9bc2bf1104489fd122a2c9;hpb=2e1c5ef038e0e6c85edfb5ac0d6cc98f79121ef9;p=p5sagit%2Fp5-mst-13.2.git diff --git a/overload.pl b/overload.pl index 69808c6..6f0fe34 100644 --- a/overload.pl +++ b/overload.pl @@ -12,6 +12,8 @@ BEGIN { use strict; +use File::Spec::Functions qw(catdir catfile);; + my (@enums, @names); while () { next if /^#/; @@ -21,9 +23,48 @@ while () { push @names, $name; } -safer_unlink ('overload.h', 'overload.c'); +safer_unlink ('overload.h', 'overload.c', catfile(qw(lib overload numbers.pm))); my $c = safer_open("overload.c"); my $h = safer_open("overload.h"); +mkdir("lib/overload") unless -d catdir(qw(lib overload)); +my $p = safer_open(catfile(qw(lib overload numbers.pm))); + + +select $p; + +{ +local $" = "\n "; +print <<"EOF"; +# -*- buffer-read-only: t -*- +# +# lib/overload/numbers.pm +# +# Copyright (C) 2008 by Larry Wall and others +# +# You may distribute under the terms of either the GNU General Public +# License or the Artistic License, as specified in the README file. +# +# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +# This file is built by overload.pl +# + +package overload::numbers; + +our \@names = qw# + @names +#; + +our \@enums = qw# + @enums +#; + +{ my \$i = 0; our %names = map { \$_ => \$i++ } \@names } + +{ my \$i = 0; our %enums = map { \$_ => \$i++ } \@enums } + +EOF +} + sub print_header { my $file = shift; @@ -99,6 +140,7 @@ EOT safer_close($h); safer_close($c); +safer_close($p); __DATA__ # Fallback should be the first