]> code.delx.au - gnu-emacs/commitdiff
* src/lread.c (intern_1): Make sure we'd find the symbol we add
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 15 Apr 2015 16:15:14 +0000 (12:15 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 15 Apr 2015 16:15:14 +0000 (12:15 -0400)
Fixes: debbugs:20334
* src/xfaces.c (resolve_face_name): Don't use `intern' with Lisp_Strings.

src/lread.c
src/xfaces.c
test/indent/perl.perl

index 050e43e2d08ab61cdbb2647679edc3e818a161d4..fa9a63e63a9fc279c9180848b03025c330b75ea2 100644 (file)
@@ -3778,8 +3778,11 @@ intern_1 (const char *str, ptrdiff_t len)
   Lisp_Object obarray = check_obarray (Vobarray);
   Lisp_Object tem = oblookup (obarray, str, len, len);
 
-  return SYMBOLP (tem) ? tem : intern_driver (make_string (str, len),
-                                             obarray, tem);
+  return (SYMBOLP (tem) ? tem
+         /* The above `oblookup' was done on the basis of nchars==nbytes, so
+            the string has to be unibyte.  */
+         : intern_driver (make_unibyte_string (str, len),
+                          obarray, tem));
 }
 
 Lisp_Object
index b2697220bce70f5553b559a9f5c8371b546d2568..d198c4be1a99d77917d2ef7547481f88f22c96aa 100644 (file)
@@ -1822,7 +1822,7 @@ resolve_face_name (Lisp_Object face_name, bool signal_p)
   Lisp_Object tortoise, hare;
 
   if (STRINGP (face_name))
-    face_name = intern (SSDATA (face_name));
+    face_name = Fintern (face_name, Qnil);
 
   if (NILP (face_name) || !SYMBOLP (face_name))
     return face_name;
index 00ef312f735fefbf0b71a17fec4499a35b0cec8f..ea4875432192962d8167f4814839381225f197b1 100755 (executable)
@@ -5,6 +5,15 @@ sub add_funds($) {
     return 0;
 }
 
+my $hash = {
+    foo => 'bar',
+    format => 'some',
+};
+
+sub some_code {
+    print "will not indent :(";
+};
+
 use v5.14;
 
 my $str= <<END;