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

[mhc:00972] Re: Link



From: Yuuichi Teranishi <teranisi@xxxxxxxxxxxxx> さん曰く
Subject: [mhc:00971] Link
Message-ID: <fzd7jhvjzu.wl@xxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 10 Aug 2000 13:05:25 +0900

寺> "Link" カテゴリのアイコンは,クリックすると、
寺> メール本体のヘッダから X-URL 部分を取って来て browse-url 経由で
寺> netscape に表示するようにしてみました (current).

寺> ついでに,Emacs with bitmap-mule では,ボタンになっているアイコンは
寺> ハイライトするようにしときました 

便利です。

以下、Todo に関して気付いた点を 2点ほど。

1.
X-SC-Day: !20000817 !20000818 !20000816
X-SC-Category: Todo Holiday
X-SC-Duration: 20000811-20000820

な schedule を書くと "後何日" を計算するときにエラーになります。

(defsubst mhc-schedule-todo-deadline (schedule)
  (and schedule
       (or (car (mhc-logic/day (mhc-schedule-condition schedule)))

が '(11185) = !20000817 を返すためです。

ここは、こんな感じではないでしょうか。(ちょっと汚いけど)

(defsubst mhc-schedule-todo-deadline (schedule)
  (and schedule
       (or (let ((date (car (mhc-logic/day (mhc-schedule-condition schedule)))))
	     (if (numberp date) date))
	   (nth 1 (assq
		   'mhc-logic/condition-duration
		   (mhc-logic/and
		    (mhc-schedule-condition schedule))))
	   (cadr (assq 
		  'mhc-logic/condition-duration-end
		  (mhc-logic/and
		   (mhc-schedule-condition schedule)))))))

2番目も 'nth 2' だと duration の end 側を返すと思うので 'nth 1'
にしましたが、三番目の cadr がその目的のような気もするし、良くわ
からないので、よろしくお願いします。(_ _) 


2.
X-SC-Priority: なのですが、Ruby 側が対応していないため mhc-sync
などをすると消えてしまいます。とりあえず付属のパッチを書いてみた
のですが、Ruby は超弩級の素人のため、良いのかどうかまったくわか
りません。(それ以前に、Ruby 側の処理をわかっていない)

# 動作確認はしているのですが。。。

というわけで、こちらもどなたか見てくださいませ。(_ _)

-- 
白井秀行@明日から10日間ほど断続的に音信不通になります ^^;;;
--- mhc-schedule.rb.orig	Fri Jul 28 13:42:57 2000
+++ mhc-schedule.rb	Thu Aug 10 11:30:34 2000
@@ -19,6 +19,7 @@
 ##
 ## subject
 ##      get X-SC-Subject: value or ''
+##
 ## set_subject(aString)
 ##	set X-SC-Subject:
 ## location
@@ -90,6 +91,9 @@
 ## 	set X-SC-Category:
 ##      A space separated string or an array of string is allowed as an arg.
 ##
+## priority
+##	get X-SC-Priority: value or ''
+##
 ## add_category(String)
 ## del_category(String)
 ## 	add/remove a category.
@@ -171,7 +175,7 @@
   WEK_REGEX = MhcDate::W_LABEL .join('|')
   ORD_REGEX = MhcDate::O_LABEL .join('|')
 
-  HDR_REGEX = '(Subject|Location|Day|Time|Category|Cond|Duration|Alarm|Record-Id)'
+  HDR_REGEX = '(Subject|Location|Day|Time|Category|Cond|Duration|Alarm|Record-Id|Priority)'
 
   ALM_UNITS = {'Minute' => 60, 'Hour' => 60 * 60, 'Day' => 60 * 60 * 24}
   ALM_LABEL = ALM_UNITS .keys
@@ -340,6 +344,10 @@
     return self
   end
 
+  def priority
+    return @priority
+  end
+
   ## cond
   def cond
     return @cond_mon + @cond_ord + @cond_wek + @cond_num
@@ -567,6 +575,7 @@
       "X-SC-Day: #{day_as_string}\n"           +
       "X-SC-Time: #{time_as_string}\n"         +
       "X-SC-Category: #{category_as_string}\n" +
+      "X-SC-Priority: #{priority}\n"           +
       "X-SC-Cond: #{cond_as_string}\n"         +
       "X-SC-Duration: #{duration_as_string}\n" +
       "X-SC-Alarm: #{alarm_as_string}\n"       +
@@ -851,6 +860,8 @@
     @duration_b, @duration_e                   = nil, nil
     @alarm, @rec_id                            = nil, nil
 
+    @priority				       = ''
+
     @modified                                  = false
     @non_xsc_header                            = ''
     return self
@@ -930,6 +941,9 @@
 
       when 'category:'
 	val .split .each{|c| @category << c .capitalize}
+
+      when 'priority:'
+	@priority = val
 
       when 'cond:'
 	val .split .each{|d|