Refactor genpacksizetables.pl to use regen/regen_lib.pl
authorNicholas Clark <nick@ccl4.org>
Mon, 29 Apr 2013 09:47:30 +0000 (11:47 +0200)
committerNicholas Clark <nick@ccl4.org>
Mon, 20 May 2013 18:58:07 +0000 (20:58 +0200)
genpacksizetables.pl
packsizetables.c

index 6a71d86..6d70cad 100644 (file)
@@ -3,6 +3,7 @@
 # it will generate EBCDIC too. (TODO)
 use strict;
 use Encode;
+require 'regen/regen_lib.pl';
 
 sub make_text {
     my ($chrmap, $letter, $unpredictable, $nocsum, $size, $condition) = @_;
@@ -66,10 +67,9 @@ my @lines = grep {
 my %asciimap  = map {chr $_, chr $_} 0..255;
 my %ebcdicmap = map {chr $_, Encode::encode("posix-bc", chr $_)} 0..255;
 
-print <<"EOC";
-/* These tables are regenerated by genpacksizetables.pl (and then hand pasted
-   in).  You're unlikely ever to need to regenerate them.  */
+my $fh = open_new('packsizetables.c', '>', { by => $0, from => 'its data'});
 
+print $fh <<"EOC";
 #if TYPE_IS_SHRIEKING != 0x100
    ++++shriek offset should be 256
 #endif
@@ -84,6 +84,8 @@ typedef U8 packprops_t;
 #endif
 EOC
 
+read_only_bottom_close_and_rename($fh);
+
 __DATA__
 #Symbol        unpredictable
 #              nocsum  size
index 7d33a46..b228051 100644 (file)
@@ -1,5 +1,8 @@
-/* These tables are regenerated by genpacksizetables.pl (and then hand pasted
-   in).  You're unlikely ever to need to regenerate them.  */
+/* -*- buffer-read-only: t -*-
+   !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
+   This file is built by genpacksizetables.pl from its data.
+   Any changes made here will be lost!
+ */
 
 #if TYPE_IS_SHRIEKING != 0x100
    ++++shriek offset should be 256
@@ -247,3 +250,5 @@ STATIC const packprops_t packprops[512] = {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0
 };
 #endif
+
+/* ex: set ro: */