[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:12028] A bug in The GNU Emacs



ついでにもうひとつ。

Emacsのdiaryは案外知られていないようですが、実はものすごく便
利です。普通のスケジュールはもちろん、毎月第3水曜日の予定

&%%(diary-float t 3 3)  15:00 教室会議

とか、

&%%(diary-anniversary 11 23 1996)  %d回目の結婚記念日

で、何回目の記念日なのかを教えてくれたり(間違えるとヒドい目
にあう:-)、はては任意のS式が使えてしまいます。Emacsで暮らし
ている人は、ぜひマニュアルとソースを精読して使ってみてくださ
い。

さて、ここからが本題なのですが、この便利なdiary-float関数に
バグがあります。1月の第1?曜日や、12月の最終?曜日を見逃してし
まうという、境界条件上のバグです。これも
bug-gnu-emacs@xxxxxxxにパッチとともに報告ずみで、

> To: kawamura@xxxxxxxxxxxxxxxxxxx (Takao KAWAMURA)
> Subject: Re: (diary-float): boundary condition problem 
> Date: Tue, 05 Jan 1999 11:32:35 -0600
> From: Ed Reingold <reingold@xxxxxxxxxxx>
> 
> Yes, that's a bug that has been reported before and is fixed for the next
> release.  Your modifications are indeed correct.  Thanks!

という返事を頂きました。本家Debianのbug tracking systemに、
emacs20でも直してくれというリクエストを出しましたが、いまの
ところ反応はありません。

送ったパッチは以下の通りです。この機能を使う人はあてた方がい
いでしょう。

*** diary-lib.el.orig	Sat Jan  2 21:36:39 1999
--- diary-lib.el	Sat Jan  2 21:39:01 1999
***************
*** 1285,1291 ****
  					 (calendar-last-day-of-month m1 y1)))))
  			(and (<= d1 d) (<= d d2))))
  		 ;; only possible base dates straddle two months
! 		 (and (< m1 m2)
  		      (or
  		       ;; m1, d1 works is a base date
  		       (and
--- 1285,1292 ----
  					 (calendar-last-day-of-month m1 y1)))))
  			(and (<= d1 d) (<= d d2))))
  		 ;; only possible base dates straddle two months
! 		 (and (or (< y1 y2)
! 			  (and (= y1 y2) (< m1 m2)))
  		      (or
  		       ;; m1, d1 works is a base date
  		       (and

-- 
川村 尚生