diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/alloc.c | 2 | ||||
| -rw-r--r-- | src/lisp.h | 4 | ||||
| -rw-r--r-- | src/lread.c | 18 | ||||
| -rw-r--r-- | src/minibuf.c | 7 | ||||
| -rw-r--r-- | src/nsterm.m | 13 | ||||
| -rw-r--r-- | src/regex.c | 8 | ||||
| -rw-r--r-- | src/regex.h | 2 | ||||
| -rw-r--r-- | src/xdisp.c | 2 |
8 files changed, 47 insertions, 9 deletions
diff --git a/src/alloc.c b/src/alloc.c index 5d02bb3cfbb..73d33564843 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -6943,7 +6943,7 @@ sweep_symbols (void) | |||
| 6943 | symbol_free_list = NULL; | 6943 | symbol_free_list = NULL; |
| 6944 | 6944 | ||
| 6945 | for (int i = 0; i < ARRAYELTS (lispsym); i++) | 6945 | for (int i = 0; i < ARRAYELTS (lispsym); i++) |
| 6946 | lispsym[i].gcmarkbit = 0; | 6946 | lispsym[i].s.gcmarkbit = 0; |
| 6947 | 6947 | ||
| 6948 | for (sblk = symbol_block; sblk; sblk = *sprev) | 6948 | for (sblk = symbol_block; sblk; sblk = *sprev) |
| 6949 | { | 6949 | { |
diff --git a/src/lisp.h b/src/lisp.h index 9464bf8559f..cffaf954b3b 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -838,13 +838,13 @@ make_lisp_symbol (struct Lisp_Symbol *sym) | |||
| 838 | INLINE Lisp_Object | 838 | INLINE Lisp_Object |
| 839 | builtin_lisp_symbol (int index) | 839 | builtin_lisp_symbol (int index) |
| 840 | { | 840 | { |
| 841 | return make_lisp_symbol (lispsym + index); | 841 | return make_lisp_symbol (&lispsym[index].s); |
| 842 | } | 842 | } |
| 843 | 843 | ||
| 844 | INLINE void | 844 | INLINE void |
| 845 | (CHECK_SYMBOL) (Lisp_Object x) | 845 | (CHECK_SYMBOL) (Lisp_Object x) |
| 846 | { | 846 | { |
| 847 | lisp_h_CHECK_SYMBOL (x); | 847 | lisp_h_CHECK_SYMBOL (x); |
| 848 | } | 848 | } |
| 849 | 849 | ||
| 850 | /* In the size word of a vector, this bit means the vector has been marked. */ | 850 | /* In the size word of a vector, this bit means the vector has been marked. */ |
diff --git a/src/lread.c b/src/lread.c index 901e40b3489..dbaadce4b40 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -3479,6 +3479,24 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list) | |||
| 3479 | if (! NILP (result)) | 3479 | if (! NILP (result)) |
| 3480 | return unbind_to (count, result); | 3480 | return unbind_to (count, result); |
| 3481 | } | 3481 | } |
| 3482 | if (!quoted && multibyte) | ||
| 3483 | { | ||
| 3484 | int ch = STRING_CHAR ((unsigned char *) read_buffer); | ||
| 3485 | switch (ch) | ||
| 3486 | { | ||
| 3487 | case 0x2018: /* LEFT SINGLE QUOTATION MARK */ | ||
| 3488 | case 0x2019: /* RIGHT SINGLE QUOTATION MARK */ | ||
| 3489 | case 0x201B: /* SINGLE HIGH-REVERSED-9 QUOTATION MARK */ | ||
| 3490 | case 0x201C: /* LEFT DOUBLE QUOTATION MARK */ | ||
| 3491 | case 0x201D: /* RIGHT DOUBLE QUOTATION MARK */ | ||
| 3492 | case 0x201F: /* DOUBLE HIGH-REVERSED-9 QUOTATION MARK */ | ||
| 3493 | case 0x301E: /* DOUBLE PRIME QUOTATION MARK */ | ||
| 3494 | case 0xFF02: /* FULLWIDTH QUOTATION MARK */ | ||
| 3495 | case 0xFF07: /* FULLWIDTH APOSTROPHE */ | ||
| 3496 | xsignal2 (Qinvalid_read_syntax, build_string ("strange quote"), | ||
| 3497 | CALLN (Fstring, make_number (ch))); | ||
| 3498 | } | ||
| 3499 | } | ||
| 3482 | { | 3500 | { |
| 3483 | Lisp_Object result; | 3501 | Lisp_Object result; |
| 3484 | ptrdiff_t nbytes = p - read_buffer; | 3502 | ptrdiff_t nbytes = p - read_buffer; |
diff --git a/src/minibuf.c b/src/minibuf.c index d4128ce01c1..010152930bc 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -497,6 +497,8 @@ read_minibuf (Lisp_Object map, Lisp_Object initial, Lisp_Object prompt, | |||
| 497 | Fcons (Vminibuffer_history_position, | 497 | Fcons (Vminibuffer_history_position, |
| 498 | Fcons (Vminibuffer_history_variable, | 498 | Fcons (Vminibuffer_history_variable, |
| 499 | minibuf_save_list)))))); | 499 | minibuf_save_list)))))); |
| 500 | minibuf_save_list | ||
| 501 | = Fcons (Fthis_command_keys_vector (), minibuf_save_list); | ||
| 500 | 502 | ||
| 501 | record_unwind_protect_void (read_minibuf_unwind); | 503 | record_unwind_protect_void (read_minibuf_unwind); |
| 502 | minibuf_level++; | 504 | minibuf_level++; |
| @@ -836,6 +838,11 @@ read_minibuf_unwind (void) | |||
| 836 | Fset_buffer (XWINDOW (window)->contents); | 838 | Fset_buffer (XWINDOW (window)->contents); |
| 837 | 839 | ||
| 838 | /* Restore prompt, etc, from outer minibuffer level. */ | 840 | /* Restore prompt, etc, from outer minibuffer level. */ |
| 841 | Lisp_Object key_vec = Fcar (minibuf_save_list); | ||
| 842 | eassert (VECTORP (key_vec)); | ||
| 843 | this_command_key_count = XFASTINT (Flength (key_vec)); | ||
| 844 | this_command_keys = key_vec; | ||
| 845 | minibuf_save_list = Fcdr (minibuf_save_list); | ||
| 839 | minibuf_prompt = Fcar (minibuf_save_list); | 846 | minibuf_prompt = Fcar (minibuf_save_list); |
| 840 | minibuf_save_list = Fcdr (minibuf_save_list); | 847 | minibuf_save_list = Fcdr (minibuf_save_list); |
| 841 | minibuf_prompt_width = XFASTINT (Fcar (minibuf_save_list)); | 848 | minibuf_prompt_width = XFASTINT (Fcar (minibuf_save_list)); |
diff --git a/src/nsterm.m b/src/nsterm.m index a3c7031331a..36d906a7cec 100644 --- a/src/nsterm.m +++ b/src/nsterm.m | |||
| @@ -5497,6 +5497,19 @@ ns_term_shutdown (int sig) | |||
| 5497 | object:nil]; | 5497 | object:nil]; |
| 5498 | #endif | 5498 | #endif |
| 5499 | 5499 | ||
| 5500 | #ifdef NS_IMPL_COCOA | ||
| 5501 | if ([NSApp activationPolicy] == NSApplicationActivationPolicyProhibited) { | ||
| 5502 | /* Set the app's activation policy to regular when we run outside | ||
| 5503 | of a bundle. This is already done for us by Info.plist when we | ||
| 5504 | run inside a bundle. */ | ||
| 5505 | [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular]; | ||
| 5506 | [NSApp setApplicationIconImage: | ||
| 5507 | [EmacsImage | ||
| 5508 | allocInitFromFile: | ||
| 5509 | build_string("icons/hicolor/128x128/apps/emacs.png")]]; | ||
| 5510 | } | ||
| 5511 | #endif | ||
| 5512 | |||
| 5500 | ns_send_appdefined (-2); | 5513 | ns_send_appdefined (-2); |
| 5501 | } | 5514 | } |
| 5502 | 5515 | ||
diff --git a/src/regex.c b/src/regex.c index fb48765c96c..0dbb47309e4 100644 --- a/src/regex.c +++ b/src/regex.c | |||
| @@ -1942,7 +1942,7 @@ struct range_table_work_area | |||
| 1942 | returned. If name is not a valid character class name zero, or RECC_ERROR, | 1942 | returned. If name is not a valid character class name zero, or RECC_ERROR, |
| 1943 | is returned. | 1943 | is returned. |
| 1944 | 1944 | ||
| 1945 | Otherwise, if *strp doesn’t begin with "[:name:]", -1 is returned. | 1945 | Otherwise, if *strp doesn't begin with "[:name:]", -1 is returned. |
| 1946 | 1946 | ||
| 1947 | The function can be used on ASCII and multibyte (UTF-8-encoded) strings. | 1947 | The function can be used on ASCII and multibyte (UTF-8-encoded) strings. |
| 1948 | */ | 1948 | */ |
| @@ -1954,8 +1954,8 @@ re_wctype_parse (const unsigned char **strp, unsigned limit) | |||
| 1954 | if (limit < 4 || beg[0] != '[' || beg[1] != ':') | 1954 | if (limit < 4 || beg[0] != '[' || beg[1] != ':') |
| 1955 | return -1; | 1955 | return -1; |
| 1956 | 1956 | ||
| 1957 | beg += 2; /* skip opening ‘[:’ */ | 1957 | beg += 2; /* skip opening "[:" */ |
| 1958 | limit -= 3; /* opening ‘[:’ and half of closing ‘:]’; --limit handles rest */ | 1958 | limit -= 3; /* opening "[:" and half of closing ":]"; --limit handles rest */ |
| 1959 | for (it = beg; it[0] != ':' || it[1] != ']'; ++it) | 1959 | for (it = beg; it[0] != ':' || it[1] != ']'; ++it) |
| 1960 | if (!--limit) | 1960 | if (!--limit) |
| 1961 | return -1; | 1961 | return -1; |
| @@ -1985,7 +1985,7 @@ re_wctype_parse (const unsigned char **strp, unsigned limit) | |||
| 1985 | 2 [:cntrl:] | 1985 | 2 [:cntrl:] |
| 1986 | 1 [:ff:] | 1986 | 1 [:ff:] |
| 1987 | 1987 | ||
| 1988 | If you update this list, consider also updating chain of or’ed conditions | 1988 | If you update this list, consider also updating chain of or'ed conditions |
| 1989 | in execute_charset function. | 1989 | in execute_charset function. |
| 1990 | */ | 1990 | */ |
| 1991 | 1991 | ||
diff --git a/src/regex.h b/src/regex.h index 1d439de259c..5e3a79763ec 100644 --- a/src/regex.h +++ b/src/regex.h | |||
| @@ -21,7 +21,7 @@ | |||
| 21 | #define _REGEX_H 1 | 21 | #define _REGEX_H 1 |
| 22 | 22 | ||
| 23 | #if defined emacs && (defined _REGEX_RE_COMP || defined _LIBC) | 23 | #if defined emacs && (defined _REGEX_RE_COMP || defined _LIBC) |
| 24 | /* We’re not defining re_set_syntax and using a different prototype of | 24 | /* We're not defining re_set_syntax and using a different prototype of |
| 25 | re_compile_pattern when building Emacs so fail compilation early with | 25 | re_compile_pattern when building Emacs so fail compilation early with |
| 26 | a (somewhat helpful) error message when conflict is detected. */ | 26 | a (somewhat helpful) error message when conflict is detected. */ |
| 27 | # error "_REGEX_RE_COMP nor _LIBC can be defined if emacs is defined." | 27 | # error "_REGEX_RE_COMP nor _LIBC can be defined if emacs is defined." |
diff --git a/src/xdisp.c b/src/xdisp.c index 3e5657ffe6f..422912e57a6 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -32745,7 +32745,7 @@ even if the actual number needs less space. | |||
| 32745 | The default value of nil means compute the space dynamically. | 32745 | The default value of nil means compute the space dynamically. |
| 32746 | Any other value is treated as nil. */); | 32746 | Any other value is treated as nil. */); |
| 32747 | Vdisplay_line_numbers_width = Qnil; | 32747 | Vdisplay_line_numbers_width = Qnil; |
| 32748 | DEFSYM (Qdisplay_line_numbers_width, "display-line-number-width"); | 32748 | DEFSYM (Qdisplay_line_numbers_width, "display-line-numbers-width"); |
| 32749 | Fmake_variable_buffer_local (Qdisplay_line_numbers_width); | 32749 | Fmake_variable_buffer_local (Qdisplay_line_numbers_width); |
| 32750 | 32750 | ||
| 32751 | DEFVAR_LISP ("display-line-numbers-current-absolute", | 32751 | DEFVAR_LISP ("display-line-numbers-current-absolute", |