diff options
| author | Stefan Monnier | 2015-04-15 12:15:14 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2015-04-15 12:15:14 -0400 |
| commit | 66ae3cff960606f96818e085226e05457d98a3cf (patch) | |
| tree | d8f4712f0547f630c19636e50b8a34328af36353 | |
| parent | cc4705f693471650a10ec51c8eb54c7ffe873045 (diff) | |
| download | emacs-66ae3cff960606f96818e085226e05457d98a3cf.tar.gz emacs-66ae3cff960606f96818e085226e05457d98a3cf.zip | |
* src/lread.c (intern_1): Make sure we'd find the symbol we add
Fixes: debbugs:20334
* src/xfaces.c (resolve_face_name): Don't use `intern' with Lisp_Strings.
| -rw-r--r-- | src/lread.c | 7 | ||||
| -rw-r--r-- | src/xfaces.c | 2 | ||||
| -rwxr-xr-x | test/indent/perl.perl | 9 |
3 files changed, 15 insertions, 3 deletions
diff --git a/src/lread.c b/src/lread.c index 050e43e2d08..fa9a63e63a9 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -3778,8 +3778,11 @@ intern_1 (const char *str, ptrdiff_t len) | |||
| 3778 | Lisp_Object obarray = check_obarray (Vobarray); | 3778 | Lisp_Object obarray = check_obarray (Vobarray); |
| 3779 | Lisp_Object tem = oblookup (obarray, str, len, len); | 3779 | Lisp_Object tem = oblookup (obarray, str, len, len); |
| 3780 | 3780 | ||
| 3781 | return SYMBOLP (tem) ? tem : intern_driver (make_string (str, len), | 3781 | return (SYMBOLP (tem) ? tem |
| 3782 | obarray, tem); | 3782 | /* The above `oblookup' was done on the basis of nchars==nbytes, so |
| 3783 | the string has to be unibyte. */ | ||
| 3784 | : intern_driver (make_unibyte_string (str, len), | ||
| 3785 | obarray, tem)); | ||
| 3783 | } | 3786 | } |
| 3784 | 3787 | ||
| 3785 | Lisp_Object | 3788 | Lisp_Object |
diff --git a/src/xfaces.c b/src/xfaces.c index b2697220bce..d198c4be1a9 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -1822,7 +1822,7 @@ resolve_face_name (Lisp_Object face_name, bool signal_p) | |||
| 1822 | Lisp_Object tortoise, hare; | 1822 | Lisp_Object tortoise, hare; |
| 1823 | 1823 | ||
| 1824 | if (STRINGP (face_name)) | 1824 | if (STRINGP (face_name)) |
| 1825 | face_name = intern (SSDATA (face_name)); | 1825 | face_name = Fintern (face_name, Qnil); |
| 1826 | 1826 | ||
| 1827 | if (NILP (face_name) || !SYMBOLP (face_name)) | 1827 | if (NILP (face_name) || !SYMBOLP (face_name)) |
| 1828 | return face_name; | 1828 | return face_name; |
diff --git a/test/indent/perl.perl b/test/indent/perl.perl index 00ef312f735..ea487543219 100755 --- a/test/indent/perl.perl +++ b/test/indent/perl.perl | |||
| @@ -5,6 +5,15 @@ sub add_funds($) { | |||
| 5 | return 0; | 5 | return 0; |
| 6 | } | 6 | } |
| 7 | 7 | ||
| 8 | my $hash = { | ||
| 9 | foo => 'bar', | ||
| 10 | format => 'some', | ||
| 11 | }; | ||
| 12 | |||
| 13 | sub some_code { | ||
| 14 | print "will not indent :("; | ||
| 15 | }; | ||
| 16 | |||
| 8 | use v5.14; | 17 | use v5.14; |
| 9 | 18 | ||
| 10 | my $str= <<END; | 19 | my $str= <<END; |