パッチを作ってみる
$ diff -ur ./diary.original/lib/ ./diary/lib/ > hns.diff
- 初めてやってみたけどこれでいいのかな?スクリプト内部のバージョン表記が古いままだったりしてどのバージョンか分からなかったけど、実際のCGI画面を見ると「hns - 日記自動生成システム - Version 2.19.9」となっているから、公開されている2.19.9と対応させれば大丈夫であろう。
diff -ur ./diary.original/lib/HNS/Diary.pm ./diary/lib/HNS/Diary.pm
--- ./diary.original/lib/HNS/Diary.pm 2005-01-06 07:44:59.000000000 +0900
+++ ./diary/lib/HNS/Diary.pm 2023-06-20 08:44:30.591723400 +0900
@@ -410,7 +410,8 @@
$section[$HNS::Diary::section] =~
s/^<!-- xhnf_grp (.*) -->$/<!-- xhnf_grp_p -->/m;
my @grp = split (" ", $1);
- unless (defined %GRP_DB){
+# unless (defined %GRP_DB){
+ if (!%GRP_DB){
tie %GRP_DB, 'SimpleDB::Hash',
"$HNS::System::DiaryDir/conf/group.txt", 1;
}
@@ -447,7 +448,8 @@
$tmp =~ s/^<!-- xhnf_grp (.*) -->$/<!-- xhnf_grp_p -->/m;
my @grp = split (" ", $1);
#print "grp: @grp<br>\n";
- unless (defined %GRP_DB){
+# unless (defined %GRP_DB){
+ if (!%GRP_DB){
tie %GRP_DB, 'SimpleDB::Hash',
"$HNS::System::DiaryDir/conf/group.txt", 1;
}
diff -ur ./diary.original/lib/HNS/Hnf/Command.pm ./diary/lib/HNS/Hnf/Command.pm
--- ./diary.original/lib/HNS/Hnf/Command.pm 2005-10-04 19:14:38.000000000 +0900
+++ ./diary/lib/HNS/Hnf/Command.pm 2023-06-20 08:31:12.209426100 +0900
@@ -435,7 +435,8 @@
{
my ($self, $start, $params) = @_;
- unless (defined %DB){
+# unless (defined %DB){
+ if (!%DB){
tie %DB, 'SimpleDB::Hash',
"$HNS::System::DiaryDir/conf/rlink.txt", 1;
}
@@ -528,7 +529,8 @@
{
my ($self, $start, $params) = @_;
- unless (defined %DB) {
+# unless (defined %DB) {
+ if (!%DB) {
tie %DB, 'SimpleDB::Hash',
"$HNS::System::DiaryDir/conf/rlink.txt", 1;
}
@@ -591,7 +593,8 @@
{
my ($self, $start, $params) = @_;
- unless (defined %DB){
+# unless (defined %DB){
+ if (!%DB){
tie %DB, 'SimpleDB::Hash',
"$HNS::System::DiaryDir/conf/rlink.txt", 1;
}
@@ -808,7 +811,8 @@
{
my ($self, $start, $params) = @_;
my $term = $self->{arg_content};
- unless (defined %DB) { # if first use
+# unless (defined %DB) { # if first use
+ if (!%DB) { # if first use
tie %DB, 'SimpleDB::Hash', # then tie hash
"$HNS::System::DiaryDir/conf/alias.txt", 1;
}
diff -ur ./diary.original/lib/HNS/Tools/Title.pm ./diary/lib/HNS/Tools/Title.pm
--- ./diary.original/lib/HNS/Tools/Title.pm 2003-05-28 13:52:58.000000000 +0900
+++ ./diary/lib/HNS/Tools/Title.pm 2023-06-20 08:46:21.177956100 +0900
@@ -163,7 +163,8 @@
$self->mode('recent');
- if (defined(@Selected)) { # ?2001, ?200105, ?2001050, ?200105a
+# if (defined(@Selected)) { # ?2001, ?200105, ?2001050, ?200105a
+ if ((@Selected)) { # ?2001, ?200105, ?2001050, ?200105a
$self->mode(undef);
foreach my $selected (@Selected) {
@@ -460,7 +461,8 @@
}
}
- if (defined(%selected_cat)) {
+# if (defined(%selected_cat)) {
+ if ((%selected_cat)) {
tie %CAT_DB, 'SimpleDB::Hash', "$HNS::CategoryList::CatDir/cat.txt";
foreach my $cat (keys(%selected_cat)) {
# fix Cross Site Scripting bug
@@ -492,7 +494,8 @@
my ($self, $content) = @_;
if ($content =~ /^<!-- GRP:(.*) -->/) {
- unless (defined %GRP_DB) {
+# unless (defined %GRP_DB) {
+ if (!%GRP_DB) {
tie %GRP_DB, 'SimpleDB::Hash',
"$HNS::System::DiaryDir/conf/group.txt", 1;
}
@@ -556,7 +559,8 @@
my $self = shift;
my ($rlink, $add, $cmd_arg) = split(' ', shift, 3);
- unless (defined %RLINK_DB){
+# unless (defined %RLINK_DB){
+ if (!%RLINK_DB){
tie %RLINK_DB, 'SimpleDB::Hash',
"$HNS::System::DiaryDir/conf/rlink.txt", 1;
}
diff -ur ./diary.original/lib/HNS.pm ./diary/lib/HNS.pm
--- ./diary.original/lib/HNS.pm 2006-11-05 10:04:32.000000000 +0900
+++ ./diary/lib/HNS.pm 2023-06-20 08:45:07.391325600 +0900
@@ -126,7 +126,8 @@
}
################################################################
# if group member comes, set no-cache header
- unless (defined %GRP_DB) {
+# unless (defined %GRP_DB) {
+ if (!%GRP_DB) {
tie %GRP_DB, 'SimpleDB::Hash',
"$HNS::System::DiaryDir/conf/group.txt", 1;
}
diff -ur ./diary.original/lib/ObjectTemplate.pm ./diary/lib/ObjectTemplate.pm
--- ./diary.original/lib/ObjectTemplate.pm 1999-04-12 15:21:30.000000000 +0900
+++ ./diary/lib/ObjectTemplate.pm 2023-06-19 23:36:03.327564000 +0900
@@ -65,7 +65,8 @@
my $pkg = shift;
$pkg = ref($pkg) if ref($pkg);
my @result = @{"${pkg}::_ATTRIBUTES_"};
- if (defined (@{"${pkg}::ISA"})) {
+# if (defined (@{"${pkg}::ISA"})) {
+ if (@{"${pkg}::ISA"}) {
foreach my $base_pkg (@{"${pkg}::ISA"}) {
push (@result, get_attribute_names($base_pkg));
}
Only in ./diary/lib/: japanese
diff -ur ./diary.original/lib/jcode.pl ./diary/lib/jcode.pl
--- ./diary.original/lib/jcode.pl 2000-10-14 21:30:30.000000000 +0900
+++ ./diary/lib/jcode.pl 2023-06-19 23:29:28.473961800 +0900
@@ -681,7 +681,7 @@
sub z2h_euc {
local(*s, $n) = @_;
- &init_z2h_euc unless defined %z2h_euc;
+ &init_z2h_euc if !%z2h_euc;
$s =~ s/($re_euc_c|$re_euc_kana)/
$z2h_euc{$1} ? ($n++, $z2h_euc{$1}) : $1
/geo;
@@ -690,7 +690,7 @@
sub z2h_sjis {
local(*s, $n) = @_;
- &init_z2h_sjis unless defined %z2h_sjis;
+ &init_z2h_sjis if !%z2h_sjis;
$s =~ s/($re_sjis_c)/$z2h_sjis{$1} ? ($n++, $z2h_sjis{$1}) : $1/geo;
$n;
}