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

[xyzzy:08220] Re: バッファの総バイト量



自己レスです。

先のメール、出がけに あわててかいたもので、キチンと見直していなかったため、不備がありました。。

>>(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)

Index Home