diff options
author | Dmitry Antipov <dmantipov@yandex.ru> | 2014-09-02 15:41:22 +0400 |
---|---|---|
committer | Dmitry Antipov <dmantipov@yandex.ru> | 2014-09-02 15:41:22 +0400 |
commit | 77ea21cdfcc4d41aaac7dad2d0ed9f74e02603e7 (patch) | |
tree | 058039c9708f42c31e8f8d682e1e8fc47ccc13c6 /src/buffer.c | |
parent | f25cd98b276ba1a11d7be5506c8624c72060b25f (diff) | |
download | emacs-77ea21cdfcc4d41aaac7dad2d0ed9f74e02603e7.tar.gz emacs-77ea21cdfcc4d41aaac7dad2d0ed9f74e02603e7.tar.bz2 emacs-77ea21cdfcc4d41aaac7dad2d0ed9f74e02603e7.zip |
* buffer.h (decode_buffer): New function.
* buffer.c (Fbuffer_name, Fbuffer_file_name, Fbuffer_base_buffer)
(Fbuffer_local_variables, Fbuffer_modified_p, Fbuffer_modified_tick)
(Fbuffer_chars_modified_tick, Fdelete_all_overlays):
* data.c (Flocal_variables_p):
* fileio.c (Fverify_visited_file_modtime):
* marker.c (live_buffer): Use it.
Diffstat (limited to 'src/buffer.c')
-rw-r--r-- | src/buffer.c | 85 |
1 files changed, 10 insertions, 75 deletions
diff --git a/src/buffer.c b/src/buffer.c index d2c7729d1c2..ee1359611c3 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1134,10 +1134,7 @@ BUFFER defaults to the current buffer. Return nil if BUFFER has been killed. */) (register Lisp_Object buffer) { - if (NILP (buffer)) - return BVAR (current_buffer, name); - CHECK_BUFFER (buffer); - return BVAR (XBUFFER (buffer), name); + return BVAR (decode_buffer (buffer), name); } DEFUN ("buffer-file-name", Fbuffer_file_name, Sbuffer_file_name, 0, 1, 0, @@ -1145,10 +1142,7 @@ DEFUN ("buffer-file-name", Fbuffer_file_name, Sbuffer_file_name, 0, 1, 0, No argument or nil as argument means use the current buffer. */) (register Lisp_Object buffer) { - if (NILP (buffer)) - return BVAR (current_buffer, filename); - CHECK_BUFFER (buffer); - return BVAR (XBUFFER (buffer), filename); + return BVAR (decode_buffer (buffer), filename); } DEFUN ("buffer-base-buffer", Fbuffer_base_buffer, Sbuffer_base_buffer, @@ -1158,21 +1152,8 @@ If BUFFER is not indirect, return nil. BUFFER defaults to the current buffer. */) (register Lisp_Object buffer) { - struct buffer *base; - Lisp_Object base_buffer; - - if (NILP (buffer)) - base = current_buffer->base_buffer; - else - { - CHECK_BUFFER (buffer); - base = XBUFFER (buffer)->base_buffer; - } - - if (! base) - return Qnil; - XSETBUFFER (base_buffer, base); - return base_buffer; + struct buffer *base = decode_buffer (buffer)->base_buffer; + return base ? (XSETBUFFER (buffer, base), buffer) : Qnil; } DEFUN ("buffer-local-value", Fbuffer_local_value, @@ -1297,18 +1278,8 @@ Note that storing new VALUEs in these elements doesn't change the variables. No argument or nil as argument means use current buffer as BUFFER. */) (register Lisp_Object buffer) { - register struct buffer *buf; - register Lisp_Object result; - - if (NILP (buffer)) - buf = current_buffer; - else - { - CHECK_BUFFER (buffer); - buf = XBUFFER (buffer); - } - - result = buffer_lisp_local_variables (buf, 0); + register struct buffer *buf = decode_buffer (buffer); + register Lisp_Object result = buffer_lisp_local_variables (buf, 0); /* Add on all the variables stored in special slots. */ { @@ -1337,15 +1308,7 @@ DEFUN ("buffer-modified-p", Fbuffer_modified_p, Sbuffer_modified_p, No argument or nil as argument means use current buffer as BUFFER. */) (register Lisp_Object buffer) { - register struct buffer *buf; - if (NILP (buffer)) - buf = current_buffer; - else - { - CHECK_BUFFER (buffer); - buf = XBUFFER (buffer); - } - + register struct buffer *buf = decode_buffer (buffer); return BUF_SAVE_MODIFF (buf) < BUF_MODIFF (buf) ? Qt : Qnil; } @@ -1451,16 +1414,7 @@ text in that buffer is changed. It wraps around occasionally. No argument or nil as argument means use current buffer as BUFFER. */) (register Lisp_Object buffer) { - register struct buffer *buf; - if (NILP (buffer)) - buf = current_buffer; - else - { - CHECK_BUFFER (buffer); - buf = XBUFFER (buffer); - } - - return make_number (BUF_MODIFF (buf)); + return make_number (BUF_MODIFF (decode_buffer (buffer))); } DEFUN ("buffer-chars-modified-tick", Fbuffer_chars_modified_tick, @@ -1475,16 +1429,7 @@ between these calls. No argument or nil as argument means use current buffer as BUFFER. */) (register Lisp_Object buffer) { - register struct buffer *buf; - if (NILP (buffer)) - buf = current_buffer; - else - { - CHECK_BUFFER (buffer); - buf = XBUFFER (buffer); - } - - return make_number (BUF_CHARS_MODIFF (buf)); + return make_number (BUF_CHARS_MODIFF (decode_buffer (buffer))); } DEFUN ("rename-buffer", Frename_buffer, Srename_buffer, 1, 2, @@ -4137,17 +4082,7 @@ BUFFER omitted or nil means delete all overlays of the current buffer. */) (Lisp_Object buffer) { - register struct buffer *buf; - - if (NILP (buffer)) - buf = current_buffer; - else - { - CHECK_BUFFER (buffer); - buf = XBUFFER (buffer); - } - - delete_all_overlays (buf); + delete_all_overlays (decode_buffer (buffer)); return Qnil; } |