Update copyright year to 2016
[gnus] / lisp / dgnushack.el
index c1ad3b9..e276756 100644 (file)
@@ -1,5 +1,5 @@
 ;;; dgnushack.el --- a hack to set the load path for byte-compiling
-;; Copyright (C) 1994-2014 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2016 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Version: 4.19
 
 (defvar dgnushack-default-load-path (copy-sequence load-path))
 
-(unless (fboundp 'declare-function)
-  (defmacro declare-function (&rest r)))
+(when (featurep 'xemacs)
+  (defmacro declare-function (fn file &optional arglist fileonly)
+    (unless (fboundp fn) (autoload fn file))
+    nil))
 
 (defalias 'facep 'ignore)
 
     (defalias 'frame-char-height 'frame-height)
     (defalias 'frame-char-width 'frame-width)
     (defalias 'frame-parameter 'frame-property)
-    (defalias 'make-overlay 'ignore)
-    (defalias 'overlay-end 'ignore)
-    (defalias 'overlay-get 'ignore)
-    (defalias 'overlay-put 'ignore)
-    (defalias 'overlay-start 'ignore)
-    (defalias 'overlays-in 'ignore)
     (defalias 'replace-dehighlight 'ignore)
     (defalias 'replace-highlight 'ignore)
     (defalias 'gnutls-available-p 'ignore)
     (defvar timer-list nil)
-    (defvar scroll-margin 0)))
+    (defvar scroll-margin 0)
+    (dolist (fn '(copy-overlay
+                 delete-overlay make-overlay move-overlay next-overlay-change
+                 overlay-buffer overlay-end overlay-get overlay-lists
+                 overlay-properties overlay-put overlay-recenter overlay-start
+                 overlayp overlays-at overlays-in previous-overlay-change
+                 remove-overlays))
+      (autoload fn "overlay"))))
 
 (defun dgnushack-emacs-compile-defcustom-p ()
   "Return non-nil if Emacs byte compiles `defcustom' forms.
@@ -269,9 +272,17 @@ in `defcustom' forms."
       (when (and (eq last (third form))
                 (consp last)
                 (eq 'mapcar (car last))
-                (equal (nth 1 form) ''nconc))
+                (member (nth 1 form) '('nconc #'nconc)))
        (setq form (cons 'mapcan (cdr last)))))))
 
+(if (featurep 'emacs)
+    (defun dgnushack-compile-file (file)
+      "Byte-compile FILE after reporting that it's being compiled."
+      (message "Compiling %s..." (file-name-nondirectory file))
+      ;; The Emacs 25 version of it doesn't say much.
+      (byte-compile-file file))
+  (defalias 'dgnushack-compile-file 'byte-compile-file))
+
 (defun dgnushack-compile-verbosely ()
   "Call dgnushack-compile with warnings ENABLED.  If you are compiling
 patches to gnus, you should consider modifying make.bat to call
@@ -331,7 +342,9 @@ This means that every warning will be reported as an error."
     (when (or (featurep 'xemacs)
              (or (< emacs-major-version 24)
                  (< emacs-minor-version 3)))
-      (setq files (delete "gnus-icalendar.el" files)))
+      (setq files (delete "gnus-icalendar.el" files))
+      ;; Temporary during development.
+      (setq files (delete "gnus-cloud.el" files)))
     (dolist (file files)
       (setq file (expand-file-name file srcdir))
       (when (and (file-exists-p
@@ -347,10 +360,10 @@ This means that every warning will be reported as an error."
        (if error-on-warn
            (let ((byte-compile-error-on-warn t))
              (unless (ignore-errors
-                       (byte-compile-file file))
+                       (dgnushack-compile-file file))
                (setq compilesuccess nil)))
          (ignore-errors
-           (byte-compile-file file)))))
+           (dgnushack-compile-file file)))))
     compilesuccess))
 
 (defun dgnushack-recompile ()
@@ -558,17 +571,26 @@ but which should be robust in the unexpected case that an error is signaled."
           (progn ,@body)
         (error (message "Error: %S" ,err) nil)))))
 
-;; XEmacs's `define-obsolete-variable-alias' takes only two arguments:
+;; `define-obsolete-function-alias' and `define-obsolete-variable-alias'
+;; take only two arguments in XEmacs:
+;; (define-obsolete-function-alias OLDFUN NEWFUN)
 ;; (define-obsolete-variable-alias OLDVAR NEWVAR)
 (condition-case nil
-    (progn
-      (defvar dgnushack-obsolete-name nil)
-      (defvar dgnushack-current-name nil)
-      (unwind-protect
-         (define-obsolete-variable-alias
-           'dgnushack-obsolete-name 'dgnushack-current-name "0")
-       (makunbound 'dgnushack-obsolete-name)
-       (makunbound 'dgnushack-current-name)))
+    (define-obsolete-function-alias
+      'dgnushack-obsolete-name 'dgnushack-current-name "0")
+  (wrong-number-of-arguments
+   (defadvice define-obsolete-function-alias (around ignore-rest-args
+                                                    (oldfun newfun &rest args)
+                                                    activate)
+     "Ignore arguments other than the 1st and the 2nd ones."
+     ad-do-it)
+   (put 'define-obsolete-function-alias 'byte-optimizer
+       (lambda (form)
+         (setcdr (nthcdr 2 form) nil)
+         form))))
+(condition-case nil
+    (define-obsolete-variable-alias
+      'dgnushack-obsolete-name 'dgnushack-current-name "0")
   (wrong-number-of-arguments
    (defadvice define-obsolete-variable-alias (around ignore-rest-args
                                                     (oldvar newvar &rest args)