#!/usr/bin/perl
-chmod 0666, "opcode.h", "opnames.h";
-unlink "opcode.h", "opnames.h";
-open(OC, ">opcode.h") || die "Can't create opcode.h: $!\n";
-open(ON, ">opnames.h") || die "Can't create opnames.h: $!\n";
+open(OC, ">opcode.h.new") || die "Can't create opcode.h.new: $!\n";
+open(ON, ">opnames.h.new") || die "Can't create opnames.h.new: $!\n";
select OC;
# Read data.
close OC or die "Error closing opcode.h: $!";
close ON or die "Error closing opnames.h: $!";
-unlink "pp_proto.h";
-unlink "pp.sym";
-open PP, '>pp_proto.h' or die "Error creating pp_proto.h: $!";
-open PPSYM, '>pp.sym' or die "Error creating pp.sym: $!";
+chmod 0600, 'opcode.h'; # required by dosish filesystems
+chmod 0600, 'opnames.h'; # required by dosish filesystems
+
+rename 'opcode.h.new', 'opcode.h' or die "renaming opcode.h: $!\n";
+rename 'opnames.h.new', 'opnames.h' or die "renaming opnames.h: $!\n";
+
+open PP, '>pp_proto.h.new' or die "Error creating pp_proto.h.new: $!";
+open PPSYM, '>pp.sym.new' or die "Error creating pp.sym.new: $!";
print PP <<"END";
/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
close PP or die "Error closing pp_proto.h: $!";
close PPSYM or die "Error closing pp.sym: $!";
+chmod 0600, 'pp_proto.h'; # required by dosish filesystems
+chmod 0600, 'pp.sym'; # required by dosish filesystems
+
+rename 'pp_proto.h.new', 'pp_proto.h' or die "rename pp_proto.h: $!\n";
+rename 'pp.sym.new', 'pp.sym' or die "rename pp.sym: $!\n";
+
###########################################################################
sub tab {
local($l, $t) = @_;
backtick quoted execution (``, qx) ck_open t%
# glob defaults its first arg to $_
glob glob ck_glob t@ S?
-readline <HANDLE> ck_null t%
+readline <HANDLE> ck_null t% F?
rcatline append I/O operator ck_null t%
# Bindable operators.
ncmp numeric comparison (<=>) ck_null Iifst2 S S
i_ncmp integer comparison (<=>) ck_null ifst2 S S
-slt string lt ck_scmp ifs2 S S
-sgt string gt ck_scmp ifs2 S S
-sle string le ck_scmp ifs2 S S
-sge string ge ck_scmp ifs2 S S
+slt string lt ck_null ifs2 S S
+sgt string gt ck_null ifs2 S S
+sle string le ck_null ifs2 S S
+sge string ge ck_null ifs2 S S
seq string eq ck_null ifs2 S S
sne string ne ck_null ifs2 S S
-scmp string comparison (cmp) ck_scmp ifst2 S S
+scmp string comparison (cmp) ck_null ifst2 S S
bit_and bitwise and (&) ck_bitop fst2 S S
bit_xor bitwise xor (^) ck_bitop fst2 S S
index index ck_index isT@ S S S?
rindex rindex ck_index isT@ S S S?
-sprintf sprintf ck_fun_locale mfst@ S L
+sprintf sprintf ck_fun mfst@ S L
formline formline ck_fun ms@ S L
ord ord ck_fun ifsTu% S?
chr chr ck_fun fsTu% S?
crypt crypt ck_fun fsT@ S S
-ucfirst ucfirst ck_fun_locale fstu% S?
-lcfirst lcfirst ck_fun_locale fstu% S?
-uc uc ck_fun_locale fstu% S?
-lc lc ck_fun_locale fstu% S?
+ucfirst ucfirst ck_fun fstu% S?
+lcfirst lcfirst ck_fun fstu% S?
+uc uc ck_fun fstu% S?
+lc lc ck_fun fstu% S?
quotemeta quotemeta ck_fun fstu% S?
# Arrays.