Mercurial > hg > xemacs-beta
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 |