]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/bytecomp.el (byte-compile-interactive-only-functions):
authorBozhidar Batsov <bozhidar@batsov.com>
Mon, 25 Nov 2013 17:16:32 +0000 (19:16 +0200)
committerBozhidar Batsov <bozhidar@batsov.com>
Mon, 25 Nov 2013 17:16:32 +0000 (19:16 +0200)
Mark as obsolete and replace it with a symbol property.
(byte-compile-form): Use new 'interactive-only property.
* lisp/comint.el, lisp/files.el, lisp/replace.el, lisp/simple.el:
Apply new 'interactive-only properly.

etc/NEWS
lisp/ChangeLog
lisp/comint.el
lisp/emacs-lisp/bytecomp.el
lisp/files.el
lisp/replace.el
lisp/simple.el

index 6cff14d27423b4c77ee73f34b6a76c1b3c021abd..e46d0fdc61a354d8e4c0a02dc780940a480166cc 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -795,6 +795,9 @@ The few hooks that used with-wrapper-hook are replaced as follows:
 *** `completion-in-region-function' obsoletes `completion-in-region-functions'.
 *** `filter-buffer-substring-function' obsoletes `filter-buffer-substring-functions'.
 
+** `byte-compile-interactive-only-functions' is now obsolete.
+It has been replaced by the symbol property 'interactive-only.
+
 ** `split-string' now takes an optional argument TRIM.
 The value, if non-nil, is a regexp that specifies what to trim from
 the start and end of each substring.
index 3955784c03b42981b3af80a77c4c339bb36f7035..3622b1563ba0eddfe6b040f60fe0e799e9b1fdfe 100644 (file)
@@ -1,3 +1,11 @@
+2013-11-25  Sebastian Wiesner (lunaryorn@gmail.com)
+
+       * emacs-lisp/bytecomp.el (byte-compile-interactive-only-functions):
+       Mark as obsolete and replace it with a symbol property.
+       (byte-compile-form): Use new 'interactive-only property.
+       * comint.el, files.el, replace.el, simple.el:
+       Apply new 'interactive-only properly.
+
 2013-11-25  Martin Rudalics  <rudalics@gmx.at>
 
        * window.el (display-buffer-at-bottom): Make sure that
index 8e1b2105de3ca23b54d6d6c3169b82e3ae804899..3aff3137d74d83825b3da7449c8e86a7785ecac1 100644 (file)
@@ -752,6 +752,7 @@ See `make-comint' and `comint-exec'."
   (let ((name (file-name-nondirectory program)))
     (switch-to-buffer (make-comint name program))
     (run-hooks (intern-soft (concat "comint-" name "-hook")))))
+(put 'comint-run 'interactive-only "Use `make-comint' instead")
 
 (defun comint-exec (buffer name command startfile switches)
   "Start up a process named NAME in buffer BUFFER for Comint modes.
index e0d474bbb9f2f639737bc7b6df16bf05cf271cd7..faa72e739594febca0b03007c39ba4a01fc7bb75 100644 (file)
@@ -353,11 +353,11 @@ else the global value will be modified."
                   (t
                    (append byte-compile-warnings (list warning)))))))
 
-(defvar byte-compile-interactive-only-functions
-  '(beginning-of-buffer end-of-buffer replace-string replace-regexp
-    insert-file insert-buffer insert-file-literally previous-line next-line
-    goto-line comint-run delete-backward-char)
+(defvar byte-compile-interactive-only-functions nil
   "List of commands that are not meant to be called from Lisp.")
+(make-obsolete-variable 'byte-compile-interactive-only-functions
+                       "use the `interactive-only' symbol property instead"
+                       "24.4")
 
 (defvar byte-compile-not-obsolete-vars nil
   "List of variables that shouldn't be reported as obsolete.")
@@ -2929,13 +2929,19 @@ for symbols generated by the byte compiler itself."
              (byte-compile-variable-ref form))))
      ((symbolp (car form))
       (let* ((fn (car form))
-             (handler (get fn 'byte-compile)))
+             (handler (get fn 'byte-compile))
+            (interactive-onaly (or (get fn 'interactive-only)
+                                  (memq fn byte-compile-interactive-only-functions))))
         (when (macroexp--const-symbol-p fn)
           (byte-compile-warn "`%s' called as a function" fn))
-        (and (byte-compile-warning-enabled-p 'interactive-only)
-             (memq fn byte-compile-interactive-only-functions)
-             (byte-compile-warn "`%s' used from Lisp code\n\
-That command is designed for interactive use only" fn))
+       (when (and (byte-compile-warning-enabled-p 'interactive-only)
+                  interactive-only)
+         (byte-compile-warn "`%s' used from Lisp code\n\
+That command is designed for interactive use only.\n%s"
+                             fn
+                            (if (stringp interactive-only)
+                                interactive-only
+                              "Consult the documentation for an alternative")))
         (if (and (fboundp (car form))
                  (eq (car-safe (symbol-function (car form))) 'macro))
             (byte-compile-log-warning
@@ -3598,7 +3604,7 @@ discarding."
     (byte-compile-constant (if (eq 'lambda (car-safe f))
                                (byte-compile-lambda f)
                              f))))
-  
+
 (defun byte-compile-indent-to (form)
   (let ((len (length form)))
     (cond ((= len 2)
index d44401b4302e51ffe9100e7aac720adc220b6125..1fb253a893ae5a71aa2da8b21a8cb2ae97696867 100644 (file)
@@ -2085,6 +2085,8 @@ Don't call it from programs!  Use `insert-file-contents-literally' instead.
 \(Its calling sequence is different; see its documentation)."
   (interactive "*fInsert file literally: ")
   (insert-file-1 filename #'insert-file-contents-literally))
+(put 'insert-file-literally 'interactive-only
+     "Use `insert-file-contents-literally' instead")
 
 (defvar find-file-literally nil
   "Non-nil if this buffer was made by `find-file-literally' or equivalent.
@@ -5007,6 +5009,7 @@ Don't call it from programs!  Use `insert-file-contents' instead.
 \(Its calling sequence is different; see its documentation)."
   (interactive "*fInsert file: ")
   (insert-file-1 filename #'insert-file-contents))
+(put 'insert-file 'interactive-only "Use `insert-file-contents' instead.")
 
 (defun append-to-file (start end filename)
   "Append the contents of the region to the end of file FILENAME.
index 9d7aba333c45a75f4f84268e6c4e0c2db78bbe00..0490af71358004ab26920e5ebb4cd66a8a9a4e89 100644 (file)
@@ -523,6 +523,8 @@ and TO-STRING is also null.)"
           (if (and transient-mark-mode mark-active)
               (region-end)))))
   (perform-replace from-string to-string nil nil delimited nil nil start end))
+(put 'replace-string 'interactive-only
+     "Use `search-forward' and `replace-match' instead.")
 
 (defun replace-regexp (regexp to-string &optional delimited start end)
   "Replace things after point matching REGEXP with TO-STRING.
@@ -590,6 +592,8 @@ which will run faster and will not set the mark or print anything."
           (if (and transient-mark-mode mark-active)
               (region-end)))))
   (perform-replace regexp to-string nil t delimited nil nil start end))
+(put 'replace-regexp 'interactive-only
+     "Use `re-search-forward' and `replace-match' instead.")
 
 \f
 (defvar regexp-history nil
index ca2088eeb24a66f5decd5fd05511dd465a5fa573..21ef9d2577ea3ba2c759d578b410649437bfcae1 100644 (file)
@@ -888,6 +888,7 @@ Don't use this command in Lisp programs!
                        (/ (+ 10 (* size (prefix-numeric-value arg))) 10)))
                 (point-min))))
   (if (and arg (not (consp arg))) (forward-line 1)))
+(put 'beginning-of-buffer 'interactive-only "Use (goto-char (point-min)) instead")
 
 (defun end-of-buffer (&optional arg)
   "Move point to the end of the buffer.
@@ -920,6 +921,7 @@ Don't use this command in Lisp programs!
         ;; then scroll specially to put it near, but not at, the bottom.
         (overlay-recenter (point))
         (recenter -3))))
+(put 'end-of-buffer 'interactive-only "Use (goto-char (point-max)) instead")
 
 (defcustom delete-active-region t
   "Whether single-char deletion commands delete an active region.
@@ -982,6 +984,7 @@ the end of the line."
             (insert-char ?\s (- ocol (current-column)) nil))))
        ;; Otherwise, do simple deletion.
        (t (delete-char (- n) killflag))))
+(put 'delete-backward-char 'interactive-only "Use `delete-char' instead")
 
 (defun delete-forward-char (n &optional killflag)
   "Delete the following N characters (previous if N is negative).
@@ -1079,6 +1082,7 @@ rather than line counts."
     (if (eq selective-display t)
        (re-search-forward "[\n\C-m]" nil 'end (1- line))
       (forward-line (1- line)))))
+(put 'goto-line 'interactive-only "Use `forward-line' instead")
 
 (defun count-words-region (start end &optional arg)
   "Count the number of words in the region.
@@ -4165,6 +4169,7 @@ Don't call it from programs: use `insert-buffer-substring' instead!"
      (insert-buffer-substring (get-buffer buffer))
      (point)))
   nil)
+(put 'insert-buffer 'interactive-only "Use `insert-buffer-substring' instead")
 
 (defun append-to-buffer (buffer start end)
   "Append to specified buffer the text of the region.
@@ -4763,6 +4768,7 @@ and more reliable (no dependence on goal column, etc.)."
           (signal (car err) (cdr err))))
       (line-move arg nil nil try-vscroll)))
   nil)
+(put 'next-line 'interactive-only "Use `forward-line' instead")
 
 (defun previous-line (&optional arg try-vscroll)
   "Move cursor vertically up ARG lines.
@@ -4802,6 +4808,8 @@ to use and more reliable (no dependence on goal column, etc.)."
         (signal (car err) (cdr err))))
     (line-move (- arg) nil nil try-vscroll))
   nil)
+(put 'previous-line 'interactive-only
+     "Use `forward-line' with negative argument instead")
 
 (defcustom track-eol nil
   "Non-nil means vertical motion starting at end of line keeps to ends of lines.