changeset 87754:2957493cf354

(clear-abbrev-table): Can't pass a symbol to intern.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 14 Jan 2008 20:17:52 +0000
parents 5e9cb28bbc5c
children 5774380925ab
files lisp/ChangeLog lisp/abbrev.el
diffstat 2 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Jan 14 19:50:29 2008 +0000
+++ b/lisp/ChangeLog	Mon Jan 14 20:17:52 2008 +0000
@@ -1,3 +1,7 @@
+2008-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* abbrev.el (clear-abbrev-table): Can't pass a symbol to intern.
+
 2008-01-14  Michael Albinus  <michael.albinus@gmx.de>
 
 	* net/tramp.el (tramp-local-host-p): Use `tramp-file-name-host'
@@ -7,7 +11,7 @@
 
 2008-01-14  Alan Mackenzie  <acm@muc.de>
 
-	* progmodes/cc-engine.el (c-guess-basic-syntax): prevent a macro
+	* progmodes/cc-engine.el (c-guess-basic-syntax): Prevent a macro
 	call inside a struct being recognised as a K&R argument.
 
 2008-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
--- a/lisp/abbrev.el	Mon Jan 14 19:50:29 2008 +0000
+++ b/lisp/abbrev.el	Mon Jan 14 20:17:52 2008 +0000
@@ -524,7 +524,9 @@
       (aset table i 0))
     ;; Preserve the table's properties.
     (assert sym)
-    (intern sym table)
+    (let ((newsym (intern "" table)))
+      (set newsym nil)	     ; Make sure it won't be confused for an abbrev.
+      (setplist newsym (symbol-plist sym)))
     (abbrev-table-put table :abbrev-table-modiff
                       (1+ (abbrev-table-get table :abbrev-table-modiff)))))