comparison lisp/prim/subr.el @ 161:28f395d8dc7a r20-3b7

Import from CVS: tag r20-3b7
author cvs
date Mon, 13 Aug 2007 09:42:26 +0200
parents 3bb7ccffb0c0
children 0132846995bd
comparison
equal deleted inserted replaced
160:1c55655d6702 161:28f395d8dc7a
331 (,@ forms)) 331 (,@ forms))
332 (prog1 332 (prog1
333 (buffer-string) 333 (buffer-string)
334 (erase-buffer))))) 334 (erase-buffer)))))
335 335
336 (defmacro with-current-buffer (buffer &rest body)
337 "Execute the forms in BODY with BUFFER as the current buffer.
338 The value returned is the value of the last form in BODY.
339 See also `with-temp-buffer'."
340 `(save-current-buffer
341 (set-buffer ,buffer)
342 ,@body))
343
344 (defmacro with-temp-file (file &rest forms)
345 "Create a new buffer, evaluate FORMS there, and write the buffer to FILE.
346 The value of the last form in FORMS is returned, like `progn'.
347 See also `with-temp-buffer'."
348 (let ((temp-file (make-symbol "temp-file"))
349 (temp-buffer (make-symbol "temp-buffer")))
350 `(let ((,temp-file ,file)
351 (,temp-buffer
352 (get-buffer-create (generate-new-buffer-name " *temp file*"))))
353 (unwind-protect
354 (prog1
355 (with-current-buffer ,temp-buffer
356 ,@forms)
357 (with-current-buffer ,temp-buffer
358 (widen)
359 (write-region (point-min) (point-max) ,temp-file nil 0)))
360 (and (buffer-name ,temp-buffer)
361 (kill-buffer ,temp-buffer))))))
362
336 (defmacro with-temp-buffer (&rest forms) 363 (defmacro with-temp-buffer (&rest forms)
337 "Create a temporary buffer, and evaluate FORMS there like `progn'." 364 "Create a temporary buffer, and evaluate FORMS there like `progn'."
338 (let ((temp-buffer (make-symbol "temp-buffer"))) 365 (let ((temp-buffer (make-symbol "temp-buffer")))
339 `(let ((,temp-buffer 366 `(let ((,temp-buffer
340 (get-buffer-create (generate-new-buffer-name " *temp*")))) 367 (get-buffer-create (generate-new-buffer-name " *temp*"))))
521 (defun ignore (&rest ignore) 548 (defun ignore (&rest ignore)
522 "Do nothing and return nil. 549 "Do nothing and return nil.
523 This function accepts any number of arguments, but ignores them." 550 This function accepts any number of arguments, but ignores them."
524 (interactive) 551 (interactive)
525 nil) 552 nil)
526
527 (defmacro save-current-buffer (&rest forms)
528 "Restore the current buffer setting after executing FORMS.
529 Does not restore the values of point and mark.
530 See also: `save-excursion'."
531 ;; by Stig@hackvan.com
532 (` (let ((_cur_buf_ (current-buffer)))
533 (unwind-protect
534 (progn (,@ forms))
535 (set-buffer _cur_buf_)))))
536 553
537 (defmacro eval-in-buffer (buffer &rest forms) 554 (defmacro eval-in-buffer (buffer &rest forms)
538 "Evaluate FORMS in BUFFER. 555 "Evaluate FORMS in BUFFER.
539 See also: `save-current-buffer' and `save-excursion'." 556 See also: `save-current-buffer' and `save-excursion'."
540 ;; by Stig@hackvan.com 557 ;; by Stig@hackvan.com