aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.c
diff options
context:
space:
mode:
authorPaul Eggert2018-01-01 01:13:04 -0800
committerPaul Eggert2018-01-01 01:13:04 -0800
commitbb267f17f9e1e593d8dee379aceee22d7fa42680 (patch)
tree466dfb3f8ef7587ebcb652709bd1cc05d18a92f3 /src/buffer.c
parenta5835dfee139322de7aa071f1c87ef015acbecad (diff)
parent63b04c11d530f4a6a41f112d1b3ba1ed1eb81195 (diff)
downloademacs-bb267f17f9e1e593d8dee379aceee22d7fa42680.tar.gz
emacs-bb267f17f9e1e593d8dee379aceee22d7fa42680.zip
Merge from origin/emacs-26
63b04c11d5 Fix copyright years by hand 5c7dd8a783 Update copyright year to 2018 220a9ecba1 Merge from Gnulib 312c565566 Don't add empty keyboard macro to macro ring (Bug#24992) 39ca289a7a Allow customization of decoding of "man" command f8240815ea * etc/NEWS: Add security consideration note on passphrase ... 0c78822c70 Fix subtle problem with scroll-down when scroll-margin is ... acd289c5a4 Fix problems with indexing in User manual b240c7846b * lisp/help.el (describe-key): Only (copy-sequence elt) wh... e879a5444a * src/buffer.c (Frestore_buffer_modified_p): Fix bug#29846 81b1028b63 Improve documentation of 'inhibit-modification-hooks' and ... 7175496d7a Fix doc string of 'enable-recursive-minibuffers' 5b38406491 Fix documentation of delsel and of killing text # Conflicts: # etc/NEWS # etc/refcards/ru-refcard.tex
Diffstat (limited to 'src/buffer.c')
-rw-r--r--src/buffer.c34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 75cb470af8d..f8c57a74b4e 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1,6 +1,6 @@
1/* Buffer manipulation primitives for GNU Emacs. 1/* Buffer manipulation primitives for GNU Emacs.
2 2
3Copyright (C) 1985-1989, 1993-1995, 1997-2017 Free Software Foundation, 3Copyright (C) 1985-1989, 1993-1995, 1997-2018 Free Software Foundation,
4Inc. 4Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
@@ -1320,7 +1320,12 @@ menu bar menus and the frame title. */)
1320DEFUN ("set-buffer-modified-p", Fset_buffer_modified_p, Sset_buffer_modified_p, 1320DEFUN ("set-buffer-modified-p", Fset_buffer_modified_p, Sset_buffer_modified_p,
1321 1, 1, 0, 1321 1, 1, 0,
1322 doc: /* Mark current buffer as modified or unmodified according to FLAG. 1322 doc: /* Mark current buffer as modified or unmodified according to FLAG.
1323A non-nil FLAG means mark the buffer modified. */) 1323A non-nil FLAG means mark the buffer modified.
1324In addition, this function unconditionally forces redisplay of the
1325mode lines of the windows that display the current buffer, and also
1326locks or unlocks the file visited by the buffer, depending on whether
1327the function's argument is non-nil, but only if both `buffer-file-name'
1328and `buffer-file-truename' are non-nil. */)
1324 (Lisp_Object flag) 1329 (Lisp_Object flag)
1325{ 1330{
1326 Frestore_buffer_modified_p (flag); 1331 Frestore_buffer_modified_p (flag);
@@ -1341,12 +1346,14 @@ A non-nil FLAG means mark the buffer modified. */)
1341 1346
1342DEFUN ("restore-buffer-modified-p", Frestore_buffer_modified_p, 1347DEFUN ("restore-buffer-modified-p", Frestore_buffer_modified_p,
1343 Srestore_buffer_modified_p, 1, 1, 0, 1348 Srestore_buffer_modified_p, 1, 1, 0,
1344 doc: /* Like `set-buffer-modified-p', with a difference concerning redisplay. 1349 doc: /* Like `set-buffer-modified-p', but doesn't redisplay buffer's mode line.
1350This function also locks and unlocks the file visited by the buffer,
1351if both `buffer-file-truename' and `buffer-file-name' are non-nil.
1352
1345It is not ensured that mode lines will be updated to show the modified 1353It is not ensured that mode lines will be updated to show the modified
1346state of the current buffer. Use with care. */) 1354state of the current buffer. Use with care. */)
1347 (Lisp_Object flag) 1355 (Lisp_Object flag)
1348{ 1356{
1349 Lisp_Object fn;
1350 1357
1351 /* If buffer becoming modified, lock the file. 1358 /* If buffer becoming modified, lock the file.
1352 If buffer becoming unmodified, unlock the file. */ 1359 If buffer becoming unmodified, unlock the file. */
@@ -1355,15 +1362,18 @@ state of the current buffer. Use with care. */)
1355 ? current_buffer->base_buffer 1362 ? current_buffer->base_buffer
1356 : current_buffer; 1363 : current_buffer;
1357 1364
1358 fn = BVAR (b, file_truename); 1365 if (!inhibit_modification_hooks)
1359 /* Test buffer-file-name so that binding it to nil is effective. */
1360 if (!NILP (fn) && ! NILP (BVAR (b, filename)))
1361 { 1366 {
1362 bool already = SAVE_MODIFF < MODIFF; 1367 Lisp_Object fn = BVAR (b, file_truename);
1363 if (!already && !NILP (flag)) 1368 /* Test buffer-file-name so that binding it to nil is effective. */
1364 lock_file (fn); 1369 if (!NILP (fn) && ! NILP (BVAR (b, filename)))
1365 else if (already && NILP (flag)) 1370 {
1366 unlock_file (fn); 1371 bool already = SAVE_MODIFF < MODIFF;
1372 if (!already && !NILP (flag))
1373 lock_file (fn);
1374 else if (already && NILP (flag))
1375 unlock_file (fn);
1376 }
1367 } 1377 }
1368 1378
1369 /* Here we have a problem. SAVE_MODIFF is used here to encode 1379 /* Here we have a problem. SAVE_MODIFF is used here to encode