변경사항 (가장 최근의 "소소한 수정"부터)
(다른 변경사항 없음)
| -24,13 +24,13  | 
 | 
| * 소스 수정: | 
| : config.pl 에서 다음 라인 수정 | 
| {{{perl | 
| {{{#!vim perl | 
| # $RcOldFile   = "$DataDir/rclog.old"; # Old RecentChanges logfile | 
|   $RcOldFile   = "$DataDir/oldrclog"; # 굳이 oldrclog 가 아니더라도 되지만, 어쨌거나 rclog.old 가 아닌 다른 이름으로 지정 | 
| }}} | 
 | 
| : wiki.pl 에서 재목님의 패치를 제거한다. | 
| {{{perl | 
| {{{#!vim perl | 
| sub GetRcHtml { | 
|     ... | 
|     my @outrc = @_; | 
| -77,7 +77,7  | 
| }}} | 
 | 
| : RcOldFile 이 존재할 경우에만 치환 작업을 하도록 수정 | 
| {{{perl | 
| {{{#!vim perl | 
| sub EditRecentChanges { | 
|     my ($action, $old, $new) = @_; | 
 | 
$RcOldFile 관련 버그 수정
-  오리지널 0.92 버전에서는 페이지 삭제나 이름 바꾸기를 하면 RcOldFile ("oldrclog" 로 지정되어 있음) 을 열 수 없다며 에러가 나온다. 화일이 있는지 없는지를 판단하지 않고 무조건 관련 연산을 수행하기 때문이다.
 -  
UseModWiki/Bugs 에 관련 내용이 언급되어 있다.
 -  Luke 님의 K3 버전에서는 $RcOldFile = "rcold.log" 로 지정했는데, 이러면 위의 에러는 발생하지 않는데, 최근변경내역에서 다음과 같이 항목이 중복해서 나오는 문제가 발생한다.
 
- 
 
2003-03-09
   ...
2003-03-08
   ...
   ...
2003-02-20    
   ...          <-- rclog 화일의 가장 첫번째 라인
2003-03-08      <-- rclog.old 화일의 가장 마지막 라인
   ...          <-- 이하 rclog.old 화일의 내용이 다시 한 번 출력된다.
-  이 문제의 원인은, "oldrclog" 와 "rclog.old" 는 서로 다른 역할의 화일이라는 것이다. oldrclog 는 rclog 의 내용이 너무 길어질 경우에 일정 기간 이전의 내용을 따로 떼어내어 보관하기 위한 화일이다. "90일 전까지의 변경"을 볼 때, rclog 의 내용을 다 읽었는데도 90일이 채 되지 않은 경우에 이 oldrclog 화일을 마저 읽어서 채워넣는다. rclog 화일의 내용을 oldrclog 로 옮기는 것은 수작업으로 해 주어야 한다.
 -  rclog.old 는, 페이지 삭제 또는 이름 바꾸기를 할 때 rclog 화일 엔트리도 같이 치환을 하는데, 이 때 치환되기 전의 내용을 백업해 두기 위해서 자동으로 생성되는 화일이다.
 -  따라서, 사이트가 생성된지 90일이 되지 않은 상태에서, 90일 이전까지의 변경 내역을 보겠다고 하면 저 RcOldFile 을 읽어서 합쳐넣게 되는데, 이 때 k3 버전에서는 RcOldFile 이 자동으로 생성된 rclog.old 이기 때문에 엉뚱한 출력이 나오는 것이다.
 
-  PalmWiki 에서 정재목님이 이 것을 다시 수정을 하여, rclog 라인을 읽을 때마다 그 라인의 timestamp 를 저장해 두어 이런 라인의 timestamp 와 비교하는 방법을 사용했는데, 결과적으로 불필요한 일일 뿐더라 최근변경내역을 날짜순으로 출력시킬 경우 하나도 출력이 되지 않는 문제가 있다.
 
-  필수 요구 사항: 없음
 -  선택 요구 사항: 없음
 
-  config.pl 에서 다음 라인 수정
 
  $RcOldFile   = "$DataDir/oldrclog"; 
-  wiki.pl 에서 재목님의 패치를 제거한다.
 
sub GetRcHtml {
    ...
    my @outrc = @_;
    my ($rcline, $html, $date, $sum, $edit, $count, $newtop, $author);
    my ($showedit, $inlist, $link, $all, $idOnly);
    my ($ts, $pagename, $summary, $isEdit, $host, $kind, $extraTemp);
    my ($tEdit, $tChanges, $tDiff);
    my %extra = ();
    ...
    $idOnly = &GetParam("rcidonly", "");
    @outrc = reverse @outrc if ($newtop);
    foreach $rcline (@outrc) {
        ($ts, $pagename, $summary, $isEdit, $host, $kind, $extraTemp)
            = split(/$FS3/, $rcline);
        
        next  if ((!$all) && ($ts < $changetime{$pagename}));
        next  if (($idOnly ne "") && ($idOnly ne $pagename));
        
        %extra = split(/$FS2/, $extraTemp, -1);
    ...
}
-  RcOldFile 이 존재할 경우에만 치환 작업을 하도록 수정
 
sub EditRecentChanges {
    my ($action, $old, $new) = @_;
    &EditRecentChangesFile($RcFile,    $action, $old, $new);
    &EditRecentChangesFile($RcOldFile, $action, $old, $new) if (-f $RcOldFile);
}
위키위키분류