diff options
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. | |||
| 1134 | Return nil if BUFFER has been killed. */) | 1134 | Return nil if BUFFER has been killed. */) |
| 1135 | (register Lisp_Object buffer) | 1135 | (register Lisp_Object buffer) |
| 1136 | { | 1136 | { |
| 1137 | if (NILP (buffer)) | 1137 | return BVAR (decode_buffer (buffer), name); |
| 1138 | return BVAR (current_buffer, name); | ||
| 1139 | CHECK_BUFFER (buffer); | ||
| 1140 | return BVAR (XBUFFER (buffer), name); | ||
| 1141 | } | 1138 | } |
| 1142 | 1139 | ||
| 1143 | DEFUN ("buffer-file-name", Fbuffer_file_name, Sbuffer_file_name, 0, 1, 0, | 1140 | 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, | |||
| 1145 | No argument or nil as argument means use the current buffer. */) | 1142 | No argument or nil as argument means use the current buffer. */) |
| 1146 | (register Lisp_Object buffer) | 1143 | (register Lisp_Object buffer) |
| 1147 | { | 1144 | { |
| 1148 | if (NILP (buffer)) | 1145 | return BVAR (decode_buffer (buffer), filename); |
| 1149 | return BVAR (current_buffer, filename); | ||
| 1150 | CHECK_BUFFER (buffer); | ||
| 1151 | return BVAR (XBUFFER (buffer), filename); | ||
| 1152 | } | 1146 | } |
| 1153 | 1147 | ||
| 1154 | DEFUN ("buffer-base-buffer", Fbuffer_base_buffer, Sbuffer_base_buffer, | 1148 | DEFUN ("buffer-base-buffer", Fbuffer_base_buffer, Sbuffer_base_buffer, |
| @@ -1158,21 +1152,8 @@ If BUFFER is not indirect, return nil. | |||
| 1158 | BUFFER defaults to the current buffer. */) | 1152 | BUFFER defaults to the current buffer. */) |
| 1159 | (register Lisp_Object buffer) | 1153 | (register Lisp_Object buffer) |
| 1160 | { | 1154 | { |
| 1161 | struct buffer *base; | 1155 | struct buffer *base = decode_buffer (buffer)->base_buffer; |
| 1162 | Lisp_Object base_buffer; | 1156 | return base ? (XSETBUFFER (buffer, base), buffer) : Qnil; |
| 1163 | |||
| 1164 | if (NILP (buffer)) | ||
| 1165 | base = current_buffer->base_buffer; | ||
| 1166 | else | ||
| 1167 | { | ||
| 1168 | CHECK_BUFFER (buffer); | ||
| 1169 | base = XBUFFER (buffer)->base_buffer; | ||
| 1170 | } | ||
| 1171 | |||
| 1172 | if (! base) | ||
| 1173 | return Qnil; | ||
| 1174 | XSETBUFFER (base_buffer, base); | ||
| 1175 | return base_buffer; | ||
| 1176 | } | 1157 | } |
| 1177 | 1158 | ||
| 1178 | DEFUN ("buffer-local-value", Fbuffer_local_value, | 1159 | DEFUN ("buffer-local-value", Fbuffer_local_value, |
| @@ -1297,18 +1278,8 @@ Note that storing new VALUEs in these elements doesn't change the variables. | |||
| 1297 | No argument or nil as argument means use current buffer as BUFFER. */) | 1278 | No argument or nil as argument means use current buffer as BUFFER. */) |
| 1298 | (register Lisp_Object buffer) | 1279 | (register Lisp_Object buffer) |
| 1299 | { | 1280 | { |
| 1300 | register struct buffer *buf; | 1281 | register struct buffer *buf = decode_buffer (buffer); |
| 1301 | register Lisp_Object result; | 1282 | register Lisp_Object result = buffer_lisp_local_variables (buf, 0); |
| 1302 | |||
| 1303 | if (NILP (buffer)) | ||
| 1304 | buf = current_buffer; | ||
| 1305 | else | ||
| 1306 | { | ||
| 1307 | CHECK_BUFFER (buffer); | ||
| 1308 | buf = XBUFFER (buffer); | ||
| 1309 | } | ||
| 1310 | |||
| 1311 | result = buffer_lisp_local_variables (buf, 0); | ||
| 1312 | 1283 | ||
| 1313 | /* Add on all the variables stored in special slots. */ | 1284 | /* Add on all the variables stored in special slots. */ |
| 1314 | { | 1285 | { |
| @@ -1337,15 +1308,7 @@ DEFUN ("buffer-modified-p", Fbuffer_modified_p, Sbuffer_modified_p, | |||
| 1337 | No argument or nil as argument means use current buffer as BUFFER. */) | 1308 | No argument or nil as argument means use current buffer as BUFFER. */) |
| 1338 | (register Lisp_Object buffer) | 1309 | (register Lisp_Object buffer) |
| 1339 | { | 1310 | { |
| 1340 | register struct buffer *buf; | 1311 | register struct buffer *buf = decode_buffer (buffer); |
| 1341 | if (NILP (buffer)) | ||
| 1342 | buf = current_buffer; | ||
| 1343 | else | ||
| 1344 | { | ||
| 1345 | CHECK_BUFFER (buffer); | ||
| 1346 | buf = XBUFFER (buffer); | ||
| 1347 | } | ||
| 1348 | |||
| 1349 | return BUF_SAVE_MODIFF (buf) < BUF_MODIFF (buf) ? Qt : Qnil; | 1312 | return BUF_SAVE_MODIFF (buf) < BUF_MODIFF (buf) ? Qt : Qnil; |
| 1350 | } | 1313 | } |
| 1351 | 1314 | ||
| @@ -1451,16 +1414,7 @@ text in that buffer is changed. It wraps around occasionally. | |||
| 1451 | No argument or nil as argument means use current buffer as BUFFER. */) | 1414 | No argument or nil as argument means use current buffer as BUFFER. */) |
| 1452 | (register Lisp_Object buffer) | 1415 | (register Lisp_Object buffer) |
| 1453 | { | 1416 | { |
| 1454 | register struct buffer *buf; | 1417 | return make_number (BUF_MODIFF (decode_buffer (buffer))); |
| 1455 | if (NILP (buffer)) | ||
| 1456 | buf = current_buffer; | ||
| 1457 | else | ||
| 1458 | { | ||
| 1459 | CHECK_BUFFER (buffer); | ||
| 1460 | buf = XBUFFER (buffer); | ||
| 1461 | } | ||
| 1462 | |||
| 1463 | return make_number (BUF_MODIFF (buf)); | ||
| 1464 | } | 1418 | } |
| 1465 | 1419 | ||
| 1466 | DEFUN ("buffer-chars-modified-tick", Fbuffer_chars_modified_tick, | 1420 | 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 | |||
| 1475 | buffer as BUFFER. */) | 1429 | buffer as BUFFER. */) |
| 1476 | (register Lisp_Object buffer) | 1430 | (register Lisp_Object buffer) |
| 1477 | { | 1431 | { |
| 1478 | register struct buffer *buf; | 1432 | return make_number (BUF_CHARS_MODIFF (decode_buffer (buffer))); |
| 1479 | if (NILP (buffer)) | ||
| 1480 | buf = current_buffer; | ||
| 1481 | else | ||
| 1482 | { | ||
| 1483 | CHECK_BUFFER (buffer); | ||
| 1484 | buf = XBUFFER (buffer); | ||
| 1485 | } | ||
| 1486 | |||
| 1487 | return make_number (BUF_CHARS_MODIFF (buf)); | ||
| 1488 | } | 1433 | } |
| 1489 | 1434 | ||
| 1490 | DEFUN ("rename-buffer", Frename_buffer, Srename_buffer, 1, 2, | 1435 | DEFUN ("rename-buffer", Frename_buffer, Srename_buffer, 1, 2, |
| @@ -4137,17 +4082,7 @@ BUFFER omitted or nil means delete all overlays of the current | |||
| 4137 | buffer. */) | 4082 | buffer. */) |
| 4138 | (Lisp_Object buffer) | 4083 | (Lisp_Object buffer) |
| 4139 | { | 4084 | { |
| 4140 | register struct buffer *buf; | 4085 | delete_all_overlays (decode_buffer (buffer)); |
| 4141 | |||
| 4142 | if (NILP (buffer)) | ||
| 4143 | buf = current_buffer; | ||
| 4144 | else | ||
| 4145 | { | ||
| 4146 | CHECK_BUFFER (buffer); | ||
| 4147 | buf = XBUFFER (buffer); | ||
| 4148 | } | ||
| 4149 | |||
| 4150 | delete_all_overlays (buf); | ||
| 4151 | return Qnil; | 4086 | return Qnil; |
| 4152 | } | 4087 | } |
| 4153 | 4088 | ||