aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2016-10-23 02:43:17 -0700
committerPaul Eggert2016-10-23 02:43:17 -0700
commit6129cd03e20a0aaee46ceb742a9ed1ae2904eab3 (patch)
treef432bbffba80979cec74cfc125a9f73abfd06a91 /src
parent16d126d7559c2f58c8af6cf86c9f54b6e21cceb4 (diff)
parentb73f4668ab685dfb690eced15b20ed47f90efccb (diff)
downloademacs-6129cd03e20a0aaee46ceb742a9ed1ae2904eab3.tar.gz
emacs-6129cd03e20a0aaee46ceb742a9ed1ae2904eab3.zip
Merge from origin/emacs-25
b73f466 * lisp/cus-start.el (exec-path): Handle nil elements. (Bug#2... 55ebb70 Catch the imenu-unavailable error in sh-mode completion table 993acb5 ; Minor fix for last change in characters.el 30c4bb5 More char-width fixes 4eb4463 Fix char-width-table values for some Emoji 528997d Keep point when switching from and to *terminal* buffer 2130005 * INSTALL: Use correct Emacs release number 25. 10835b1 Avoid crashes due to objects read with the #n=object form 4de671d Improve doc string of 'completion-at-point-functions' ceb46f0 Fix crash in evaluating functions d8374c4 * src/filelock.c (current_lock_owner): Update comment.
Diffstat (limited to 'src')
-rw-r--r--src/filelock.c8
-rw-r--r--src/lread.c13
2 files changed, 16 insertions, 5 deletions
diff --git a/src/filelock.c b/src/filelock.c
index d4dfc1dd007..a4b742abb5d 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -565,10 +565,10 @@ current_lock_owner (lock_info_type *owner, char *lfname)
565 break; 565 break;
566 566
567 case '\357': 567 case '\357':
568 /* Treat "\357\200\242" (U+F022 in UTF-8) as if it were ":". 568 /* Treat "\357\200\242" (U+F022 in UTF-8) as if it were ":" (Bug#24656).
569 This works around a bug in Samba, which can mistakenly 569 This works around a bug in the Linux CIFS kernel client, which can
570 transliterate ':' to U+F022 in symlink contents (Bug#24656). 570 mistakenly transliterate ':' to U+F022 in symlink contents.
571 See <https://bugzilla.redhat.com/show_bug.cgi?id=1271407#c8>. */ 571 See <https://bugzilla.redhat.com/show_bug.cgi?id=1384153>. */
572 if (! (boot[0] == '\200' && boot[1] == '\242')) 572 if (! (boot[0] == '\200' && boot[1] == '\242'))
573 return -1; 573 return -1;
574 boot += 2; 574 boot += 2;
diff --git a/src/lread.c b/src/lread.c
index 10eec3b1be0..58d518ce40b 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -2917,7 +2917,18 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
2917 if (c == '=') 2917 if (c == '=')
2918 { 2918 {
2919 /* Make a placeholder for #n# to use temporarily. */ 2919 /* Make a placeholder for #n# to use temporarily. */
2920 AUTO_CONS (placeholder, Qnil, Qnil); 2920 /* Note: We used to use AUTO_CONS to allocate
2921 placeholder, but that is a bad idea, since it
2922 will place a stack-allocated cons cell into
2923 the list in read_objects, which is a
2924 staticpro'd global variable, and thus each of
2925 its elements is marked during each GC. A
2926 stack-allocated object will become garbled
2927 when its stack slot goes out of scope, and
2928 some other function reuses it for entirely
2929 different purposes, which will cause crashes
2930 in GC. */
2931 Lisp_Object placeholder = Fcons (Qnil, Qnil);
2921 Lisp_Object cell = Fcons (make_number (n), placeholder); 2932 Lisp_Object cell = Fcons (make_number (n), placeholder);
2922 read_objects = Fcons (cell, read_objects); 2933 read_objects = Fcons (cell, read_objects);
2923 2934