Merge branch 'master' of https://git.gnus.org/gnus
[gnus] / lisp / dgnushack.el
index 872a045..34248d3 100644 (file)
@@ -1,7 +1,5 @@
 ;;; dgnushack.el --- a hack to set the load path for byte-compiling
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003,
-;; 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
-;;        Free Software Foundation, Inc.
+;; Copyright (C) 1994-2011 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Version: 4.19
   (when (featurep 'xemacs)
     (unless (fboundp 'defadvice)
       (autoload 'defadvice "advice" nil nil 'macro))
+    (unless (boundp 'help-echo-owns-message)
+      (defvar help-echo-owns-message))
+    (unless (fboundp 'url-retrieve-synchronously)
+      (defalias 'url-retrieve-synchronously 'url-retrieve))
+    (unless (fboundp 'url-queue-retrieve)
+      (defun url-queue-retrieve (url callback &optional cbargs silent)
+       (url-retrieve url callback cbargs)))
     (autoload 'Info-directory "info" nil t)
     (autoload 'Info-index "info" nil t)
     (autoload 'Info-index-next "info" nil t)
@@ -248,7 +253,8 @@ in `defcustom' forms."
            (search-forward " 'foo '(byte-code " nil t))
        (kill-buffer outbuf)))))
 
-(when (dgnushack-emacs-compile-defcustom-p)
+(when (and (featurep 'xemacs)
+          (dgnushack-emacs-compile-defcustom-p))
   (maybe-fbind '(defined-colors face-attribute))
   (maybe-bind '(idna-program installation-directory)))
 
@@ -269,12 +275,19 @@ dgnushack-compile-verbosely.  All other users should continue to use
 dgnushack-compile."
   (dgnushack-compile t))
 
-(defun dgnushack-compile (&optional warn)
+(defun dgnushack-compile-error-on-warn ()
+  "Call dgnushack-compile with minimal warnings, but with error-on-warn ENABLED.
+This means that every warning will be reported as an error."
+  (unless (dgnushack-compile nil t)
+    (error "Error during byte compilation (warnings were reported as errors!).")))
+
+(defun dgnushack-compile (&optional warn error-on-warn)
   ;;(setq byte-compile-dynamic t)
   (unless warn
     (setq byte-compile-warnings
          '(free-vars unresolved callargs redefine suspicious)))
   (let ((files (directory-files srcdir nil "^[^=].*\\.el$"))
+       (compilesuccess t)
        ;;(byte-compile-generate-call-tree t)
        file elc)
     ;; Avoid barfing (from gnus-xmas) because the etc directory is not yet
@@ -312,7 +325,8 @@ dgnushack-compile."
                 ;; lpath.el binds it.
                 (not (eq (symbol-function 'libxml-parse-html-region)
                          'ignore)))
-      (setq files (delete "shr-color.el" (delete "shr.el" files))))
+      (dolist (file '("color.el" "shr-color.el" "shr.el"))
+       (setq files (delete file files))))
 
     (dolist (file files)
       (setq file (expand-file-name file srcdir))
@@ -326,8 +340,14 @@ dgnushack-compile."
       (when (or (not (file-exists-p
                      (setq elc (concat (file-name-nondirectory file) "c"))))
                (file-newer-than-file-p file elc))
-       (ignore-errors
-         (byte-compile-file file))))))
+       (if error-on-warn
+           (let ((byte-compile-error-on-warn t))
+             (unless (ignore-errors
+                       (byte-compile-file file))
+               (setq compilesuccess nil)))
+         (ignore-errors
+           (byte-compile-file file)))))
+    compilesuccess))
 
 (defun dgnushack-recompile ()
   (require 'gnus)