[xyzzy:08220] Re: バッファの総バイト量
- Subject: [xyzzy:08220] Re: バッファの総バイト量
- From: SATO Osamu <yebisuya@xxxxxxxxxxxx>
- X-mailer: Datula version 1.51.09 for Windows
自己レスです。
先のメール、出がけに あわててかいたもので、キチンと見直していなかったため、不備がありました。。
>>(defun buffer-length (&optional buffer)
>> "get how many bytes contained in the whole BUFFER"
>> (interactive)
>> (let ((temp-file-name (make-temp-file-name))
>> (target-buffer (get-target-buffer buffer))
>> (result 0))
>> (set-buffer target-buffer)
>> (save-excursion
>> (widen)
>> (write-region (point-min) (point-max) temp-file-name)
>> )
>> (setq result (file-length temp-file-name))
>> (delete-file temp-file-name)
>> result)
>> )
説明の部分の英文はいいかげんです。だいたい、"bytes" の後に、be 動詞が抜けている。
"get" と "how many..." が付く構文も怪しい。
それから、関数 get-target-buffer は私がでっち上げたもので、canonical なものではありません。
それは、1. 引数がバッファなら、そのバッファ自体を、2. バッファ名なら、それで指定されるバッファを、それ以外なら現バッファを帰すものです。
コードを示したほうが早いか。(今回は、ドヂがありませんように。でも、これ、書いているときに纏まらなかったんですよね。)
(defun get-target-buffer (&optional buffer)
"take BUFFER as a target buffer if it is real,
seek one specified by BUFFER when it is a buffer name,
or make the current buffer a target in the other cases"
(let ((result (selected-buffer)))
(if buffer
(if (bufferp buffer)
(setq result buffer)
(unless (setq result (find-buffer buffer))
(setq result (selected-buffer))
)
)
)
result)
)
--
ゑびすや店主
佐藤 修(SATO Osamu)