[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: No encode-time() in
ふる〜〜い
Emacs
From: Katsumi Yamaoka <yamaoka@jpl.org> さん曰く
Subject: [emacs-w3m:00512] Re: No encode-time() in ふる〜〜い Emacs
Message-ID: <yosu1yqyti33.fsf@jpl.org.We.hate.spammers>
Date: 12 Apr 2001 21:31:43 +0900
白井> で、もう少し凝ったことをしようと思い、encode-time() や
白井> decode-time() の実験をしたところ、Emacs-19.28 はこれらを持っ
白井> ていないのでした。APEL も定義していないようだし。
白井> # 19.29 からみたいですね、このへん。
山岡さん> ;; 20世紀に、ある特定のマシンで作った Mule 19.34 で、encode-time
山岡さん> ;; が返す値が変なのがあります。
山岡さん> ;;
山岡さん> ;;(equal (encode-time 0 0 0 1 1 2001 0)
山岡さん> ;; (encode-time 0 0 0 1 1 2001 43200))
山岡さん> ;; => t
山岡さん> ;;
山岡さん> ;; こういうのの対策も考慮しないといけないかもしれませんね。
43200 = 12 時間ですよね。しかし、山岡さん、よくこんなことご存じ
ですね。みょうに感動です。
## 20世紀のことは全部(Mew のように?)忘れてしまいましょうか。^^;;;
白井> decode-time() をつくるのはできると思うのですが、
山岡さん> ;; う〜ん、要は 1970 年から始まるカレンダー全部、とまでは行かな
山岡さん> ;; くても、まじめに leap を計算することになるんでしょうか?
## 全然まじめに考えるつもりはないのですが、こんなのじゃだめです
## か?
;; 日本国民だし夏時間はなし!!
(defun w3m-decode-time (&optional time)
"Return (SECONDS MINUTES HOUR DAY MONTH YEAR DOW DST ZONE) like decode-time()."
(let ((tf (format-time-string "%S %M %H %d %m %Y %w" time))
(tz (car (current-time-zone time))))
(setq tf (mapcar 'string-to-int (split-string tf " ")))
(append tf (list nil tz))))
## 夏時間は (cdr (current-time-zone)) を解析すればわかるのかしら
## ん?
白井> すでに w3m.el で使われている encode-time() って作るの結構難
白井> しかしら?よくわかんない。
山岡さん> ;; GNU touch があるものとして、
;; cygwin 上のならあったのですが、1980年以降しか対応していないみ
;; たいです。Windows ってそんなもんだったかな?
山岡さん> ;;(progn
山岡さん> ;; (call-process "touch" nil nil nil
山岡さん> ;; "-amt" "123112341970.56"
山岡さん> ;; "/tmp/hoge")
山岡さん> ;; (prog1
山岡さん> ;; (nth 5 (file-attributes "/tmp/hoge"))
山岡さん> ;; (delete-file "/tmp/hoge")))
山岡さん> ;; => (480 5216)
山岡さん> ;;
山岡さん> ;; これを最近の Emacs で確認すると、
山岡さん> ;;
山岡さん> ;;(decode-time '(480 5216))
山岡さん> ;; => (56 34 12 31 12 1970 4 nil 32400)
#### なんか、昔、MS-DOS とかで使っていた RAM Disk とかあればいい
#### ですね。UNIX で /tmp に使っている速い file system なら大丈
#### 夫かしらん。(などとまじめに反応したりして ^^;;;)
山岡さん> ;; 行頭の ";;" がぜったい必要な内容でした。ごめんなさい。_o_
そういえば、以前土屋さんが、elisp で mod time を設定したい、
っておっしゃっていましたが、外部コマンド使うぐらいしか手は無いの
かしら?始終使うところじゃないから十分かも。
--
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)