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

[mhc:00535] Re: mhc-cvs.el



白井です。やっと、いじれました。

From: TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxxxxxxxxxxxxxxx> さん曰く
Subject: [mhc:00534] Re: mhc-cvs.el
Message-ID: <200004241453.XAA27481@xxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 24 Apr 2000 23:53:39 +0900

土> で、cvs add および cvs remove は、完全なオフライン環境でも、いつでも実
土> 行可能なはずだと考えていたのですが、これが間違いなのでしょうか?

白井> こちらの問題です。環境は昨日も書きましたけど、Win95 + NotePC +
白井> cvs-1.10.5 です。 offline 状態で (server を隠すこともないけど)

土> この問題に関して、とりあえずオフライン状態時には cvs add / remove を行
土> わず、オンライン状態になった後で cvs add / remove を行うように変更して
土> みました。

\(^^)/

土> ## [mhc:00529] のパッチを適用した後にあてるようになっています。

というわけで、[mhc:00529] + [mhc:00534] でいろいろやってみました。

1. mhc-cvs/update() は default-directory が "~/Mail/schedule" で
 作業する様に変わっているので、その対応。

2. mhc-cvs/delay-add-and-remove() で再帰的に directory を下りて
 いくため、時間がかかるのでいやだなぁ。

3. dolist のためだけに cl を require するのがいや。
 (もしかすると、いつも load しているかもしれないのだけど。。。
 ごめんなさい)

4. Windows には symbolic-link という高級なものは無いので、
  (write-region "xxx" ...) としようと思ったけど、気を取り直して
  copy-file() した。

5. file アクセスのガードを強固にした。
  (もともと、error になったらどうしようもないけど)


ここで、2. に関しては、

"~/Mail/schedule/2000/05/123"
=> "~/Mail/schedule/.mhc-cvs-(added|removed)-2000_05_123"

"~/Mail/schedule/intersect/56
=> "~/Mail/schedule/.mhc-cvs-(added|removed)-intersect_56"

という file を schedule 直下に作る様にしました。remove のときは
rename-file() でも大丈夫だと思うのですが、copy-file() +
delete-file() にしてしまいました。

# とりあえず、filename 変換の path の区切りは "/" 固定。^^;;;

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxxxxxxxxxx)

## しかし、最近の土屋さんってば、mhc-cvs といい、gnus-namazu と
## いい爆発していますね。:-)

Attachment: mhc-cvs.el.diff.bz2
Description: Binary data

P.S.

From: TSUCHIYA Masatoshi <tsuchiya@xxxxxxxxxxxxxxxxxxxxxxx> さん曰く
Subject: [mhc:00533] Re: T-gnus support
Message-ID: <mpa4s8sqoql.fsf_-_@xxxxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 24 Apr 2000 10:20:23 +0900

土> それから、Gnus 使いの人はとりあえず以下のコードを入れておくと、ちょっ
土> と幸せになれるかも知れません。

これって、Mew だとこういうことかしら?

  (add-hook 'mhc-mode-hook
	    '(lambda ()
	       (define-key mhc-mode-map "N" 'mhc-mew-summary-display-next-misc)
	       (define-key mhc-mode-map "P" 'mhc-mew-summary-display-prev-misc)))

  (defun mhc-mew-summary-display-next-misc ()
    (interactive)
    (if (string-match (concat "^" mhc-base-folder) (buffer-name))
	(mhc-summary-display-next-schedule)
      (mew-summary-display-review-down)))

  (defun mhc-mew-summary-display-prev-misc ()
    (interactive)
    (if (string-match (concat "^" mhc-base-folder "/") (buffer-name))
	(mhc-summary-display-next-schedule 'prev)
      (mew-summary-display-review-up)))

  (defun mhc-summary-display-next-schedule (&optional prev)
    (let ((regex (concat "\r +" (regexp-quote mhc-base-folder)
			 "/\\([12][0-9][0-9][0-9]/[01][0-9]\\|intersect\\) +"
			 "[1-9][0-9]*$" ))
	  (pos (point)))
      (cond
       ((and (not prev) (forward-line 1)
	     (re-search-forward regex nil t))
	(beginning-of-line)
	(and mew-summary-buffer-disp-msg (mew-summary-display nil)))
       ((and prev (forward-line 0) (re-search-backward regex nil t))
	(beginning-of-line)
	(and mew-summary-buffer-disp-msg (mew-summary-display nil)))
       (t
	(goto-char pos) (message "no schedule exist.")))))

;; なんか判定が汚い。