]> git.eshelyaron.com Git - emacs.git/commitdiff
* keymap.c (Fmake_sparse_keymap): Purecopy the name.
authorDan Nicolaescu <dann@ics.uci.edu>
Sat, 24 Oct 2009 06:32:03 +0000 (06:32 +0000)
committerDan Nicolaescu <dann@ics.uci.edu>
Sat, 24 Oct 2009 06:32:03 +0000 (06:32 +0000)
* eval.c (Fautoload): Purecopy the filename.  Simplify.

* category.c (Fdefine_category): Purecopy docstring.

* international/mule-cmds.el (set-language-info-alist): Purecopy lang-env.
(leim-list-header, leim-list-entry-regexp): Change defvars to defconst.
(charset): Purecopy the name.
(define-char-code-property): Purecopy string arguments.

* emacs-lisp/byte-run.el (make-obsolete, make-obsolete-variable):
Purecopy string arguments.

* emacs-lisp/lisp-mode.el (emacs-lisp-mode-map):
* ediff-hook.el (menu-bar-ediff-menu):
* buff-menu.el (Buffer-menu-mode-map): Purecopy names and tooltips.
* bookmark.el (menu-bar-bookmark-map): Add :help and purecopy the name.

lisp/ChangeLog
lisp/bookmark.el
lisp/buff-menu.el
lisp/ediff-hook.el
lisp/emacs-lisp/byte-run.el
lisp/emacs-lisp/lisp-mode.el
lisp/international/mule-cmds.el
src/ChangeLog
src/category.c
src/eval.c
src/keymap.c

index 2e2a59d20152c2393c741b873adcc55270acbf0b..a9e21b1c2518f72d55ad3891b6446c7b42ab9fdf 100644 (file)
@@ -1,3 +1,18 @@
+2009-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * international/mule-cmds.el (set-language-info-alist): Purecopy lang-env.
+       (leim-list-header, leim-list-entry-regexp): Change defvars to defconst.
+       (charset): Purecopy the name.
+       (define-char-code-property): Purecopy string arguments.
+
+       * emacs-lisp/byte-run.el (make-obsolete, make-obsolete-variable):
+       Purecopy string arguments.
+
+       * emacs-lisp/lisp-mode.el (emacs-lisp-mode-map):
+       * ediff-hook.el (menu-bar-ediff-menu):
+       * buff-menu.el (Buffer-menu-mode-map): Purecopy names and tooltips.
+       * bookmark.el (menu-bar-bookmark-map): Add :help and purecopy the name.
+
 2009-10-24  Glenn Morris  <rgm@gnu.org>
 
        * comint.el (comint-dynamic-list-completions):
index 340f020ed363e525893bdff507cb5597b52059b0..331e392a9c701361fc6bc54b2a3abc3d31720cad 100644 (file)
@@ -2101,16 +2101,36 @@ strings returned are not."
 ;;;###autoload
 (defvar menu-bar-bookmark-map
   (let ((map (make-sparse-keymap "Bookmark functions")))
-    (define-key map [load]     '("Load a Bookmark File..." . bookmark-load))
-    (define-key map [write]    '("Save Bookmarks As..." . bookmark-write))
-    (define-key map [save]     '("Save Bookmarks" . bookmark-save))
-    (define-key map [edit]     '("Edit Bookmark List" . bookmark-bmenu-list))
-    (define-key map [delete]   '("Delete Bookmark..." . bookmark-delete))
-    (define-key map [rename]   '("Rename Bookmark..." . bookmark-rename))
-    (define-key map [locate]   '("Insert Location..." . bookmark-locate))
-    (define-key map [insert]   '("Insert Contents..." . bookmark-insert))
-    (define-key map [set]      '("Set Bookmark..." . bookmark-set))
-    (define-key map [jump]     '("Jump to Bookmark..." . bookmark-jump))
+    (define-key map [load]
+      `(menu-item ,(purecopy "Load a Bookmark File...") bookmark-load
+                 :help ,(purecopy "Load bookmarks from a bookmark file)")))
+    (define-key map [write]
+      `(menu-item ,(purecopy "Save Bookmarks As...") bookmark-write
+                 :help ,(purecopy "Write bookmarks to a file (reading the file name with the minibuffer)")))
+    (define-key map [save]
+      `(menu-item ,(purecopy "Save Bookmarks") bookmark-save
+                 :help ,(purecopy "Save currently defined bookmarks")))
+    (define-key map [edit]
+      `(menu-item ,(purecopy "Edit Bookmark List") bookmark-bmenu-list
+                 :help ,(purecopy "Display a list of existing bookmarks")))
+    (define-key map [delete]
+      `(menu-item ,(purecopy "Delete Bookmark...") bookmark-delete
+                 :help ,(purecopy "Delete a bookmark from the bookmark list")))
+    (define-key map [rename]
+      `(menu-item ,(purecopy "Rename Bookmark...") bookmark-rename
+                 :help ,(purecopy "Change the name of a bookmark")))
+    (define-key map [locate]
+      `(menu-item ,(purecopy "Insert Location...") bookmark-locate
+                 :help ,(purecopy "Insert the name of the file associated with a bookmark")))
+    (define-key map [insert]
+      `(menu-item ,(purecopy "Insert Contents...") bookmark-insert
+                 :help ,(purecopy "Insert the text of the file pointed to by a bookmark")))
+    (define-key map [set]
+      `(menu-item ,(purecopy "Set Bookmark...") bookmark-set
+                 :help ,(purecopy "Set a bookmark named inside a file.")))
+    (define-key map [jump]
+      `(menu-item ,(purecopy "Jump to Bookmark...") bookmark-jump
+                 :help ,(purecopy "Jump to a bookmark (a point in some file)")))
     map))
 
 ;;;###autoload
index 1b7fbad1ab7efdb5928a41cd17b565fe4bb7dd84..34b1c245e080acfe9870164af213d23c402e4fbd 100644 (file)
@@ -153,67 +153,67 @@ Auto Revert Mode.")
     (define-key map (kbd "M-s a M-C-s") 'Buffer-menu-isearch-buffers-regexp)
     (define-key map [menu-bar Buffer-menu-mode] (cons "Buffer Menu" menu-map))
     (define-key menu-map [quit]
-      '(menu-item "Quit" quit-window
-                :help "Mark buffer on this line to be deleted by x command"))
+      `(menu-item ,(purecopy "Quit") quit-window
+                :help ,(purecopy "Mark buffer on this line to be deleted by x command")))
     (define-key menu-map [rev]
-      '(menu-item "Refresh" revert-buffer
-                :help "Refresh the *Buffer List* buffer contents"))
+      `(menu-item ,(purecopy "Refresh") revert-buffer
+                :help ,(purecopy "Refresh the *Buffer List* buffer contents")))
     (define-key menu-map [s0] '("--"))
     (define-key menu-map [tf]
-      '(menu-item "Show only file buffers" Buffer-menu-toggle-files-only
+      `(menu-item ,(purecopy "Show only file buffers") Buffer-menu-toggle-files-only
                  :button (:toggle . Buffer-menu-files-only)
-                 :help "Toggle whether the current buffer-menu displays only file buffers"))
+                 :help ,(purecopy "Toggle whether the current buffer-menu displays only file buffers")))
     (define-key menu-map [s1] '("--"))
     ;; FIXME: The "Select" entries could use better names...
     (define-key menu-map [sel]
-      '(menu-item "Select marked" Buffer-menu-select
-                :help "Select this line's buffer; also display buffers marked with `>'"))
+      `(menu-item ,(purecopy "Select marked") Buffer-menu-select
+                :help ,(purecopy "Select this line's buffer; also display buffers marked with `>'")))
     (define-key menu-map [bm2]
-      '(menu-item "Select two" Buffer-menu-2-window
-                :help "Select this line's buffer, with previous buffer in second window"))
+      `(menu-item ,(purecopy "Select two") Buffer-menu-2-window
+                :help ,(purecopy "Select this line's buffer, with previous buffer in second window")))
     (define-key menu-map [bm1]
-      '(menu-item "Select current" Buffer-menu-1-window
-                :help "Select this line's buffer, alone, in full frame"))
+      `(menu-item ,(purecopy "Select current") Buffer-menu-1-window
+                :help ,(purecopy "Select this line's buffer, alone, in full frame")))
     (define-key menu-map [ow]
-      '(menu-item "Select in other window" Buffer-menu-other-window
-                :help "Select this line's buffer in other window, leaving buffer menu visible"))
+      `(menu-item ,(purecopy "Select in other window") Buffer-menu-other-window
+                :help ,(purecopy "Select this line's buffer in other window, leaving buffer menu visible")))
     (define-key menu-map [tw]
-      '(menu-item "Select in current window" Buffer-menu-this-window
-                :help "Select this line's buffer in this window"))
+      `(menu-item ,(purecopy "Select in current window") Buffer-menu-this-window
+                :help ,(purecopy "Select this line's buffer in this window")))
     (define-key menu-map [s2] '("--"))
     (define-key menu-map [is]
-      '(menu-item "Regexp Isearch marked buffers" Buffer-menu-isearch-buffers-regexp
-                :help "Search for a regexp through all marked buffers using Isearch"))
+      `(menu-item ,(purecopy "Regexp Isearch marked buffers") Buffer-menu-isearch-buffers-regexp
+                :help ,(purecopy "Search for a regexp through all marked buffers using Isearch")))
     (define-key menu-map [ir]
-      '(menu-item "Isearch marked buffers" Buffer-menu-isearch-buffers
-                :help "Search for a string through all marked buffers using Isearch"))
+      `(menu-item ,(purecopy "Isearch marked buffers") Buffer-menu-isearch-buffers
+                :help ,(purecopy "Search for a string through all marked buffers using Isearch")))
     (define-key menu-map [s3] '("--"))
     (define-key menu-map [by]
-      '(menu-item "Bury" Buffer-menu-bury
-                :help "Bury the buffer listed on this line"))
+      `(menu-item ,(purecopy "Bury") Buffer-menu-bury
+                :help ,(purecopy "Bury the buffer listed on this line")))
     (define-key menu-map [vt]
-      '(menu-item "Set unmodified" Buffer-menu-not-modified
-                :help "Mark buffer on this line as unmodified (no changes to save)"))
+      `(menu-item ,(purecopy "Set unmodified") Buffer-menu-not-modified
+                :help ,(purecopy "Mark buffer on this line as unmodified (no changes to save)")))
     (define-key menu-map [ex]
-      '(menu-item "Execute" Buffer-menu-execute
-                :help "Save and/or delete buffers marked with s or k commands"))
+      `(menu-item ,(purecopy "Execute") Buffer-menu-execute
+                :help ,(purecopy "Save and/or delete buffers marked with s or k commands")))
     (define-key menu-map [s4] '("--"))
     (define-key menu-map [delb]
-      '(menu-item "Mark for delete and move backwards" Buffer-menu-delete-backwards
-                :help "Mark buffer on this line to be deleted by x command and move up one line"))
+      `(menu-item ,(purecopy "Mark for delete and move backwards") Buffer-menu-delete-backwards
+                :help ,(purecopy "Mark buffer on this line to be deleted by x command and move up one line")))
     (define-key menu-map [del]
-      '(menu-item "Mark for delete" Buffer-menu-delete
-                :help "Mark buffer on this line to be deleted by x command"))
+      `(menu-item ,(purecopy "Mark for delete") Buffer-menu-delete
+                :help ,(purecopy "Mark buffer on this line to be deleted by x command")))
 
     (define-key menu-map [sv]
-      '(menu-item "Mark for save" Buffer-menu-save
-                :help "Mark buffer on this line to be saved by x command"))
+      `(menu-item ,(purecopy "Mark for save") Buffer-menu-save
+                :help ,(purecopy "Mark buffer on this line to be saved by x command")))
     (define-key menu-map [umk]
-      '(menu-item "Unmark" Buffer-menu-unmark
-                :help "Cancel all requested operations on buffer on this line and move down"))
+      `(menu-item ,(purecopy "Unmark") Buffer-menu-unmark
+                :help ,(purecopy "Cancel all requested operations on buffer on this line and move down")))
     (define-key menu-map [mk]
-      '(menu-item "Mark" Buffer-menu-mark
-                :help "Mark buffer on this line for being displayed by v command"))
+      `(menu-item ,(purecopy "Mark") Buffer-menu-mark
+                :help ,(purecopy "Mark buffer on this line for being displayed by v command")))
     map)
   "Local keymap for `Buffer-menu-mode' buffers.")
 
index 92afb838b85ad73ee56ad5570c187051a0de620d..ce950cd1a93a671aa0051f7048cbb6011b1666f5 100644 (file)
 
   ;; define ediff compare menu
   (define-key menu-bar-ediff-menu [ediff-misc]
-    (list 'menu-item "Ediff Miscellanea" menu-bar-ediff-misc-menu))
+    `(menu-item ,(purecopy "Ediff Miscellanea") menu-bar-ediff-misc-menu))
   (define-key menu-bar-ediff-menu [separator-ediff-misc] '("--"))
   (define-key menu-bar-ediff-menu [window]
     `(menu-item ,(purecopy "This Window and Next Window") compare-windows
index 7b0faec655c3829a758be56818d5a92467d2857d..7453eb235b35d19e97aeba74a6439d4f1e684f51 100644 (file)
@@ -127,7 +127,7 @@ was first made obsolete, for example a date or a release number."
     (if (eq 'byte-compile-obsolete handler)
        (setq handler (nth 1 (get obsolete-name 'byte-obsolete-info)))
       (put obsolete-name 'byte-compile 'byte-compile-obsolete))
-    (put obsolete-name 'byte-obsolete-info (list current-name handler when)))
+    (put obsolete-name 'byte-obsolete-info (list current-name handler (purecopy when))))
   obsolete-name)
 (set-advertised-calling-convention
  ;; New code should always provide the `when' argument.
@@ -166,7 +166,11 @@ was first made obsolete, for example a date or a release number."
       (if (equal str "") (error ""))
       (intern str))
     (car (read-from-string (read-string "Obsoletion replacement: ")))))
-  (put obsolete-name 'byte-obsolete-variable (cons current-name when))
+  (put obsolete-name 'byte-obsolete-variable
+       (cons
+       (if (stringp current-name)
+           (purecopy current-name)
+         current-name) (purecopy when)))
   obsolete-name)
 (set-advertised-calling-convention
  ;; New code should always provide the `when' argument.
index 362c75a8cafcf8fe0490885531d34b3fa131f2c2..7e813278c7ad5dd8e0534a7e14df084c0f0d7c1e 100644 (file)
@@ -285,105 +285,105 @@ font-lock keywords will not be case sensitive."
     (define-key map "\e\C-q" 'indent-pp-sexp)
     (define-key map [menu-bar emacs-lisp] (cons "Emacs-Lisp" menu-map))
     (define-key menu-map [eldoc]
-      '(menu-item "Auto-Display Documentation Strings" eldoc-mode
+      `(menu-item ,(purecopy "Auto-Display Documentation Strings") eldoc-mode
                  :button (:toggle . (bound-and-true-p eldoc-mode))
-                 :help "Display the documentation string for the item under cursor"))
+                 :help ,(purecopy "Display the documentation string for the item under cursor")))
     (define-key menu-map [checkdoc]
-      '(menu-item "Check Documentation Strings" checkdoc
-                 :help "Check documentation strings for style requirements"))
+      `(menu-item ,(purecopy "Check Documentation Strings") checkdoc
+                 :help ,(purecopy "Check documentation strings for style requirements")))
     (define-key menu-map [re-builder]
-      '(menu-item "Construct Regexp" re-builder
-                 :help "Construct a regexp interactively"))
+      `(menu-item ,(purecopy "Construct Regexp") re-builder
+                 :help ,(purecopy "Construct a regexp interactively")))
     (define-key menu-map [tracing] (cons "Tracing" tracing-map))
     (define-key tracing-map [tr-a]
-      '(menu-item "Untrace all" untrace-all
-                 :help "Untrace all currently traced functions"))
+      `(menu-item ,(purecopy "Untrace all") untrace-all
+                 :help ,(purecopy "Untrace all currently traced functions")))
     (define-key tracing-map [tr-uf]
-      '(menu-item "Untrace function..." untrace-function
-                 :help "Untrace function, and possibly activate all remaining advice"))
+      `(menu-item ,(purecopy "Untrace function...") untrace-function
+                 :help ,(purecopy "Untrace function, and possibly activate all remaining advice")))
     (define-key tracing-map [tr-sep] '("--"))
     (define-key tracing-map [tr-q]
-      '(menu-item "Trace function quietly..." trace-function-background
-                 :help "Trace the function with trace output going quietly to a buffer"))
+      `(menu-item ,(purecopy "Trace function quietly...") trace-function-background
+                 :help ,(purecopy "Trace the function with trace output going quietly to a buffer")))
     (define-key tracing-map [tr-f]
-      '(menu-item "Trace function..." trace-function
-                 :help "Trace the function given as an argument"))
+      `(menu-item ,(purecopy "Trace function...") trace-function
+                 :help ,(purecopy "Trace the function given as an argument")))
     (define-key menu-map [profiling] (cons "Profiling" prof-map))
     (define-key prof-map [prof-restall]
-      '(menu-item "Remove Instrumentation for All Functions" elp-restore-all
-                 :help "Restore the original definitions of all functions being profiled"))
+      `(menu-item ,(purecopy "Remove Instrumentation for All Functions") elp-restore-all
+                 :help ,(purecopy "Restore the original definitions of all functions being profiled")))
     (define-key prof-map [prof-restfunc]
-      '(menu-item "Remove Instrumentation for Function..." elp-restore-function
-                 :help "Restore an instrumented function to its original definition"))
+      `(menu-item ,(purecopy "Remove Instrumentation for Function...") elp-restore-function
+                 :help ,(purecopy "Restore an instrumented function to its original definition")))
 
     (define-key prof-map [sep-rem] '("--"))
     (define-key prof-map [prof-resall]
-      '(menu-item "Reset Counters for All Functions" elp-reset-all
-                 :help "Reset the profiling information for all functions being profiled"))
+      `(menu-item ,(purecopy "Reset Counters for All Functions") elp-reset-all
+                 :help ,(purecopy "Reset the profiling information for all functions being profiled")))
     (define-key prof-map [prof-resfunc]
-      '(menu-item "Reset Counters for Function..." elp-reset-function
-                 :help "Reset the profiling information for a function"))
+      `(menu-item ,(purecopy "Reset Counters for Function...") elp-reset-function
+                 :help ,(purecopy "Reset the profiling information for a function")))
     (define-key prof-map [prof-res]
-      '(menu-item "Show Profiling Results" elp-results
-                 :help "Display current profiling results"))
+      `(menu-item ,(purecopy "Show Profiling Results") elp-results
+                 :help ,(purecopy "Display current profiling results")))
     (define-key prof-map [prof-pack]
-      '(menu-item "Instrument Package..." elp-instrument-package
-                 :help "Instrument for profiling all function that start with a prefix"))
+      `(menu-item ,(purecopy "Instrument Package...") elp-instrument-package
+                 :help ,(purecopy "Instrument for profiling all function that start with a prefix")))
     (define-key prof-map [prof-func]
-      '(menu-item "Instrument Function..." elp-instrument-function
-                 :help "Instrument a function for profiling"))
+      `(menu-item ,(purecopy "Instrument Function...") elp-instrument-function
+                 :help ,(purecopy "Instrument a function for profiling")))
     (define-key menu-map [lint] (cons "Linting" lint-map))
     (define-key lint-map [lint-di]
-      '(menu-item "Lint Directory..." elint-directory
-                 :help "Lint a directory"))
+      `(menu-item ,(purecopy "Lint Directory...") elint-directory
+                 :help ,(purecopy "Lint a directory")))
     (define-key lint-map [lint-f]
-      '(menu-item "Lint File..." elint-file
-                 :help "Lint a file"))
+      `(menu-item ,(purecopy "Lint File...") elint-file
+                 :help ,(purecopy "Lint a file")))
     (define-key lint-map [lint-b]
-      '(menu-item "Lint Buffer" elint-current-buffer
-                 :help "Lint the current buffer"))
+      `(menu-item ,(purecopy "Lint Buffer") elint-current-buffer
+                 :help ,(purecopy "Lint the current buffer")))
     (define-key lint-map [lint-d]
-      '(menu-item "Lint Defun" elint-defun
-                 :help "Lint the function at point"))
+      `(menu-item ,(purecopy "Lint Defun") elint-defun
+                 :help ,(purecopy "Lint the function at point")))
     (define-key menu-map [edebug-defun]
-      '(menu-item "Instrument Function for Debugging" edebug-defun
-                 :help "Evaluate the top level form point is in, stepping through with Edebug"
+      `(menu-item ,(purecopy "Instrument Function for Debugging") edebug-defun
+                 :help ,(purecopy "Evaluate the top level form point is in, stepping through with Edebug")
                  :keys "C-u C-M-x"))
     (define-key menu-map [separator-byte] '("--"))
     (define-key menu-map [disas]
-      '(menu-item "Disassemble byte compiled object..." disassemble
-                 :help "Print disassembled code for OBJECT in a buffer"))
+      `(menu-item ,(purecopy "Disassemble byte compiled object...") disassemble
+                 :help ,(purecopy "Print disassembled code for OBJECT in a buffer")))
     (define-key menu-map [byte-recompile]
-      '(menu-item "Byte-recompile Directory..." byte-recompile-directory
-                 :help "Recompile every `.el' file in DIRECTORY that needs recompilation"))
+      `(menu-item ,(purecopy "Byte-recompile Directory...") byte-recompile-directory
+                 :help ,(purecopy "Recompile every `.el' file in DIRECTORY that needs recompilation")))
     (define-key menu-map [emacs-byte-compile-and-load]
-      '(menu-item "Byte-compile And Load" emacs-lisp-byte-compile-and-load
-                 :help "Byte-compile the current file (if it has changed), then load compiled code"))
+      `(menu-item ,(purecopy "Byte-compile And Load") emacs-lisp-byte-compile-and-load
+                 :help ,(purecopy "Byte-compile the current file (if it has changed), then load compiled code")))
     (define-key menu-map [byte-compile]
-      '(menu-item "Byte-compile This File" emacs-lisp-byte-compile
-                 :help "Byte compile the file containing the current buffer"))
+      `(menu-item ,(purecopy "Byte-compile This File") emacs-lisp-byte-compile
+                 :help ,(purecopy "Byte compile the file containing the current buffer")))
     (define-key menu-map [separator-eval] '("--"))
     (define-key menu-map [ielm]
-      '(menu-item "Interactive Expression Evaluation" ielm
-                 :help "Interactively evaluate Emacs Lisp expressions"))
+      `(menu-item ,(purecopy "Interactive Expression Evaluation") ielm
+                 :help ,(purecopy "Interactively evaluate Emacs Lisp expressions")))
     (define-key menu-map [eval-buffer]
-      '(menu-item "Evaluate Buffer" eval-buffer
-                 :help "Execute the current buffer as Lisp code"))
+      `(menu-item ,(purecopy "Evaluate Buffer") eval-buffer
+                 :help ,(purecopy "Execute the current buffer as Lisp code")))
     (define-key menu-map [eval-region]
-      '(menu-item "Evaluate Region" eval-region
-                 :help "Execute the region as Lisp code"
+      `(menu-item ,(purecopy "Evaluate Region") eval-region
+                 :help ,(purecopy "Execute the region as Lisp code")
                  :enable mark-active))
     (define-key menu-map [eval-sexp]
-      '(menu-item "Evaluate Last S-expression" eval-last-sexp
-                 :help "Evaluate sexp before point; print value in minibuffer"))
+      `(menu-item ,(purecopy "Evaluate Last S-expression") eval-last-sexp
+                 :help ,(purecopy "Evaluate sexp before point; print value in minibuffer")))
     (define-key menu-map [separator-format] '("--"))
     (define-key menu-map [comment-region]
-      '(menu-item "Comment Out Region" comment-region
-                 :help "Comment or uncomment each line in the region"
+      `(menu-item ,(purecopy "Comment Out Region") comment-region
+                 :help ,(purecopy "Comment or uncomment each line in the region")
                  :enable mark-active))
     (define-key menu-map [indent-region]
-      '(menu-item "Indent Region" indent-region
-                 :help "Indent each nonblank line in the region"
+      `(menu-item ,(purecopy "Indent Region") indent-region
+                 :help ,(purecopy "Indent each nonblank line in the region")
                  :enable mark-active))
     (define-key menu-map [indent-line] '("Indent Line" . lisp-indent-line))
     map)
@@ -458,14 +458,14 @@ if that value is non-nil."
     (define-key map "\C-c\C-z" 'run-lisp)
     (define-key map [menu-bar lisp] (cons "Lisp" menu-map))
     (define-key menu-map [run-lisp]
-      '(menu-item "Run inferior Lisp" run-lisp
-                 :help "Run an inferior Lisp process, input and output via buffer `*inferior-lisp*'"))
+      `(menu-item ,(purecopy "Run inferior Lisp") run-lisp
+                 :help ,(purecopy "Run an inferior Lisp process, input and output via buffer `*inferior-lisp*'")))
     (define-key menu-map [ev-def]
-      '(menu-item "Eval defun" lisp-eval-defun
-                 :help "Send the current defun to the Lisp process made by M-x run-lisp"))
+      `(menu-item ,(purecopy "Eval defun") lisp-eval-defun
+                 :help ,(purecopy "Send the current defun to the Lisp process made by M-x run-lisp")))
     (define-key menu-map [ind-sexp]
-      '(menu-item "Indent sexp" indent-sexp
-                 :help "Indent each line of the list starting just after point"))
+      `(menu-item ,(purecopy "Indent sexp") indent-sexp
+                 :help ,(purecopy "Indent each line of the list starting just after point")))
     map)
   "Keymap for ordinary Lisp mode.
 All commands in `lisp-mode-shared-map' are inherited by this map.")
@@ -522,21 +522,21 @@ if that value is non-nil."
     (define-key map "\n" 'eval-print-last-sexp)
     (define-key map [menu-bar lisp-interaction] (cons "Lisp-Interaction" menu-map))
     (define-key menu-map [eval-defun]
-      '(menu-item "Evaluate Defun" eval-defun
-                 :help "Evaluate the top-level form containing point, or after point"))
+      `(menu-item ,(purecopy "Evaluate Defun") eval-defun
+                 :help ,(purecopy "Evaluate the top-level form containing point, or after point")))
     (define-key menu-map [eval-print-last-sexp]
-      '(menu-item "Evaluate and print" eval-print-last-sexp
-                 :help "Evaluate sexp before point; print value into current buffer"))
+      `(menu-item ,(purecopy "Evaluate and print") eval-print-last-sexp
+                 :help ,(purecopy "Evaluate sexp before point; print value into current buffer")))
     (define-key menu-map [edebug-defun-lisp-interaction]
-      '(menu-item "Instrument Function for Debugging" edebug-defun
-                 :help "Evaluate the top level form point is in, stepping through with Edebug"
+      `(menu-item ,(purecopy "Instrument Function for Debugging") edebug-defun
+                 :help ,(purecopy "Evaluate the top level form point is in, stepping through with Edebug")
                  :keys "C-u C-M-x"))
     (define-key menu-map [indent-pp-sexp]
-      '(menu-item "Indent or Pretty-Print" indent-pp-sexp
-                 :help "Indent each line of the list starting just after point, or prettyprint it"))
+      `(menu-item ,(purecopy "Indent or Pretty-Print") indent-pp-sexp
+                 :help ,(purecopy "Indent each line of the list starting just after point, or prettyprint it")))
     (define-key menu-map [lisp-complete-symbol]
-      '(menu-item "Complete Lisp Symbol" lisp-complete-symbol
-                 :help "Perform completion on Lisp symbol preceding point"))
+      `(menu-item ,(purecopy "Complete Lisp Symbol") lisp-complete-symbol
+                 :help ,(purecopy "Perform completion on Lisp symbol preceding point")))
     map)
   "Keymap for Lisp Interaction mode.
 All commands in `lisp-mode-shared-map' are inherited by this map.")
index 0064f40e28749f60634580bdbd2e660e78e4b100..d98053dbd76c89c2cebc035c355bfc3d9a23caba 100644 (file)
@@ -1174,8 +1174,10 @@ where to put this language environment in the
 Describe Language Environment and Set Language Environment menus.
 For example, (\"European\") means to put this language environment
 in the European submenu in each of those two menus."
-  (if (symbolp lang-env)
-      (setq lang-env (symbol-name lang-env)))
+  (cond ((symbolp lang-env)
+        (setq lang-env (symbol-name lang-env)))
+       ((stringp lang-env)
+        (setq lang-env (purecopy lang-env))))
   (let ((describe-map describe-language-environment-map)
        (setup-map setup-language-environment-map))
     (if parents
@@ -1249,7 +1251,7 @@ This file contains a list of libraries of Emacs input methods (LEIM)
 in the format of Lisp expression for registering each input method.
 Emacs loads this file at startup time.")
 
-(defvar leim-list-header (format
+(defconst leim-list-header (format
 ";;; %s -- list of LEIM (Library of Emacs Input Method) -*-coding: utf-8;-*-
 ;;
 ;; This file is automatically generated.
@@ -1272,7 +1274,7 @@ Emacs loads this file at startup time.")
                                 leim-list-file-name)
   "Header to be inserted in LEIM list file.")
 
-(defvar leim-list-entry-regexp "^(register-input-method"
+(defconst leim-list-entry-regexp "^(register-input-method"
   "Regexp matching head of each entry in LEIM list file.
 See also the variable `leim-list-header'.")
 
@@ -1865,7 +1867,7 @@ specifies the character set for the major languages of Western Europe."
   (force-mode-line-update t))
 
 (define-widget 'charset 'symbol
-  "An Emacs charset."
+  (purecopy "An Emacs charset.")
   :tag "Charset"
   :complete-function (lambda ()
                       (interactive)
@@ -2745,12 +2747,13 @@ See also the documentation of `get-char-code-property' and
          (error "Invalid char-table: %s" table))
     (or (stringp table)
        (error "Not a char-table nor a file name: %s" table)))
+  (if (stringp table) (purecopy table))
   (let ((slot (assq name char-code-property-alist)))
     (if slot
        (setcdr slot table)
       (setq char-code-property-alist
            (cons (cons name table) char-code-property-alist))))
-  (put name 'char-code-property-documentation docstring))
+  (put name 'char-code-property-documentation (purecopy docstring)))
 
 (defvar char-code-property-table
   (make-char-table 'char-code-property-table)
index a6f318816e96be0cf3ef0e6f4e12e0ed7807b9ae..8500509cd5b73b6ad994b4a59217fad15abfcdff 100644 (file)
@@ -1,3 +1,11 @@
+2009-10-24  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * keymap.c (Fmake_sparse_keymap): Purecopy the name.
+
+       * eval.c (Fautoload): Purecopy the filename.  Simplify.
+
+       * category.c (Fdefine_category): Purecopy docstring.
+
 2009-10-23  Andreas Schwab  <schwab@linux-m68k.org>
 
        * lisp.h (FIXNUM_OVERFLOW_P): Remove cast to avoid overflow.
index babed58c7feac5fe91f098aabdf59ccee3502801..88337ff4fe7ec39c8ef9943dd0742971a222c475 100644 (file)
@@ -136,6 +136,8 @@ the current buffer's category table.  */)
 
   if (!NILP (CATEGORY_DOCSTRING (table, XFASTINT (category))))
     error ("Category `%c' is already defined", XFASTINT (category));
+  if (!NILP (Vpurify_flag))
+    docstring = Fpurecopy (docstring);
   CATEGORY_DOCSTRING (table, XFASTINT (category)) = docstring;
 
   return Qnil;
index 4611731a65e4e72bffb2ddcc5d9d8a41d5ed3906..136b75f756be51822870334ab0ece8dfbcc99aa8 100644 (file)
@@ -2096,7 +2096,6 @@ then strings and vectors are not accepted.  */)
     return Qnil;
 }
 
-/* ARGSUSED */
 DEFUN ("autoload", Fautoload, Sautoload, 2, 5, 0,
        doc: /* Define FUNCTION to autoload from FILE.
 FUNCTION is a symbol; FILE is a file name string to pass to `load'.
@@ -2113,9 +2112,7 @@ this does nothing and returns nil.  */)
      (function, file, docstring, interactive, type)
      Lisp_Object function, file, docstring, interactive, type;
 {
-#ifdef NO_ARG_ARRAY
   Lisp_Object args[4];
-#endif
 
   CHECK_SYMBOL (function);
   CHECK_STRING (file);
@@ -2131,16 +2128,15 @@ this does nothing and returns nil.  */)
        not useful and else we get loads of them from the loaddefs.el.  */
     LOADHIST_ATTACH (Fcons (Qautoload, function));
 
-#ifdef NO_ARG_ARRAY
-  args[0] = file;
+  if (NILP (Vpurify_flag))
+    args[0] = file;
+  else
+    args[0] = Fpurecopy (file);
   args[1] = docstring;
   args[2] = interactive;
   args[3] = type;
 
   return Ffset (function, Fcons (Qautoload, Flist (4, &args[0])));
-#else /* NO_ARG_ARRAY */
-  return Ffset (function, Fcons (Qautoload, Flist (4, &file)));
-#endif /* not NO_ARG_ARRAY */
 }
 
 Lisp_Object
index d050191dc4e246fcef6ffe54985ff4da821be0e9..2dddeab998d5c539e4a97e15dc49273411c5fabc 100644 (file)
@@ -170,7 +170,11 @@ in case you use it as a menu with `x-popup-menu'.  */)
      Lisp_Object string;
 {
   if (!NILP (string))
-    return Fcons (Qkeymap, Fcons (string, Qnil));
+    {
+      if (!NILP (Vpurify_flag))
+       string = Fpurecopy (string);
+      return Fcons (Qkeymap, Fcons (string, Qnil));
+    }
   return Fcons (Qkeymap, Qnil);
 }