|
Namazu for hns による簡易全文検索 詳しくは 詳細指定/ヘルプを参照して下さい |
|||||||||||||||||||||||||||||||||||||||||||||||||||
2000年07月09日(日) 旧暦 [n年日記]#1 [hns] たまに中身が表示されないことがある。
のは
「cache が(何かの原因で)作られなかったのに、
作られたことになっている」
気がする。その(何かの原因)の一つは、例えば cache/2000/
の持主が (Web の走っている権限でなく) 自分になってしまっている。
とか。
@ 重複:
これは
~/diary/cache/2000/20000619.xhnf
の中身が何かの理由で重複して作られてしまったので、
それを書替えるきっかけがなければ、自然に直る
ということはない。
以下いろいろ調べたが、多分意味がない。 public_html/diary/lib/HNS/Diary.pm
116 sub Read($)
117 {
118 my $self = shift;
119 my $ok;
120 my $warning_message;
121
122 # xhnf checking
123 my ($year, $month, $day) = ($self->year, $self->month, $self->day);
124 my $xhnf = "$HNS::System::CacheDir/$year/$year$month$day.xhnf";
125 if (-f $xhnf) {
126 my $xhnf_lm = (stat($xhnf))[9];
127 if (($self->last_modified == $xhnf_lm)
128 || ($HNS::System::AllowCacheOnly && ! -e $self->filename)) {
129 $self->read_done(1);
130 return;
131 }
127 行目の last_modified を見ると、
「元の時刻情報と、Cache xhnf が同じなら、処理は飛ばす」という
Cache について当然の処理が書いてある。
makoto@milano ■18:50:41/000709(~...lib/HNS)> grep -n last_modified Diary.pm 48: last_modified 53:attributes qw(filename year month day tree user_var last_modified 104: # set last_modified 105: $self->last_modified((stat($self->filename))[9]); 127: if (($self->last_modified == $xhnf_lm) 210: if (($self->last_modified == $xhnf_lm) 257: utime($self->last_modified, $self->last_modified, $xhnf);以前の d20000619.hnf を touch したい気分。 xhnf を書出しているのは次の部分
(index.cgi)
173 # recent
174 else {
175 $col->ReadRecent($HNS::System::DefaultMax);
176 }
177
178 # print
179 $hns->Print($col);
(lib/HNS/Collection.pm)
71 sub Read($$$$)
72 {
73 my ($self, $year, $month, $day) = @_;
......
85 for my $ymd (sort keys %{$self->diarys}){
114 @files = grep /^d\d{4,}$month$day\.hnf$/, readdir DIR;
100 sub ReadDay($$$)
101 {
102 my ($self, $month, $day) = @_;
121 $self->diarys->{$1} = $diary;
176 最新 $max 分を読み込む。
180 sub ReadRecent($;$)
181 {
182 my ($self, $max) = @_;
.....
204 $diary->Read;
(lib/HNS/Diary.pm)
190 sub Print($$)
191 {
192 my $self = shift;
193 my $reverse_sec = shift;
.....
250 open X, ">$xhnf";
251 eval 'flock(X, LOCK_EX)';
252 # head
253 my $head = $HNS::Diary::Head;
254 $head =~ s/%user{([A-Z]+)}/$self->user_var->Eval($1)/ge; # user var
255 $templ->SetTemplate($head);
256 print X $templ->Expand;
257 if ($self->has_user_var) {
258 my $user_var = $HNS::Diary::UserVar;
259 $user_var =~ s/%user{([A-Z]+)}/$self->user_var->Eval($1)/ge; # user var
260 $templ->SetTemplate($user_var);
261 print X $templ->Expand;
262 }
263 close X;
264
265 # diarys
266 $self->tree->Print($self->year, $self->month, $self->day, $HNS::Diary::section);
267
( つっこみ )
|
最近の日記 2025年12月25日 ・pbulk 11.99.3 (emacs30) 2025年11月22日 ・crash dump 2025年10月25日 ・recover from disk error 2025年10月23日 ・dd does not duplicate Windows 11 boot disk ? 2025年10月13日 ・missing package | ||