;;; dgnushack.el --- a hack to set the load path for byte-compiling
-;; Copyright (C) 1994,95,96,97,98,99 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000
+;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Katsumi Yamaoka <yamaoka@jpl.org>
(require 'cl)
-;; Emulating cl functions.
-(unless (featurep 'xemacs)
- (define-compiler-macro last (&whole form x &optional n)
- (if (and (fboundp 'last)
- (subrp (symbol-function 'last)))
- form
- (if n
- `(let* ((x ,x)
- (n ,n)
- (m 0)
- (p x))
- (while (consp p)
- (incf m)
- (pop p))
- (if (<= n 0)
- p
- (if (< n m)
- (nthcdr (- m n) x)
- x)))
- `(let ((x ,x))
- (while (consp (cdr x))
- (pop x))
- x))))
-
- (define-compiler-macro mapc (&whole form fn seq &rest rest)
- (if (and (fboundp 'mapc)
- (subrp (symbol-function 'mapc)))
- form
- (if rest
- `(let* ((fn ,fn)
- (seq ,seq)
- (args (list seq ,@rest))
- (m (apply (function min) (mapcar (function length) args)))
- (n 0))
- (while (< n m)
- (apply fn (mapcar (function (lambda (arg) (nth n arg))) args))
- (setq n (1+ n)))
- seq)
- `(let ((seq ,seq))
- (mapcar ,fn seq)
- seq))))
-
- (define-compiler-macro mapcon (&whole form fn seq &rest rest)
- (if (and (fboundp 'mapcon)
- (subrp (symbol-function 'mapcon)))
- form
- (if rest
- `(let (res
- (args (list ,seq ,@rest))
- p)
- (while (not (memq nil args))
- (push (apply ,fn args) res)
- (setq p args)
- (while p
- (setcar p (cdr (pop p)))
- ))
- (apply (function nconc) (nreverse res)))
- `(let (res
- (arg ,seq))
- (while arg
- (push (funcall ,fn arg) res)
- (setq arg (cdr arg)))
- (apply (function nconc) (nreverse res))))))
-
- (define-compiler-macro member-if (&whole form pred list)
- (if (and (fboundp 'member-if)
- (subrp (symbol-function 'member-if)))
- form
- `(let ((fn ,pred)
- (seq ,list))
- (while (and seq
- (not (funcall fn (car seq))))
- (pop seq))
- seq)))
-
- (define-compiler-macro union (&whole form list1 list2)
- (if (and (fboundp 'union)
- (subrp (symbol-function 'union)))
- form
- `(let ((a ,list1)
- (b ,list2))
- (cond ((null a) b)
- ((null b) a)
- ((equal a b) a)
- (t
- (or (>= (length a) (length b))
- (setq a (prog1 b (setq b a))))
- (while b
- (or (memq (car b) a)
- (push (car b) a))
- (pop b))
- a)))))
- )
+(push "/usr/share/emacs/site-lisp" load-path)
;; If we are building w3 in a different directory than the source
;; directory, we must read *.el from source directory and write *.elc
(defvar srcdir (or (getenv "srcdir") "."))
+(load (expand-file-name "gnus-clfns.el" srcdir) nil t t)
+
;(push "/usr/share/emacs/site-lisp" load-path)
;; Attempt to pickup the additional load-path(s).
(condition-case nil
(char-before)
(wrong-number-of-arguments
- (define-compiler-macro char-before (&whole form &optional pos)
- (if (null pos)
+ ;; Optimize byte code for `char-before'.
+ (put 'char-before 'byte-optimizer 'byte-optimize-char-before)
+ (defun byte-optimize-char-before (form)
+ (if (null (cdr form))
'(char-before (point))
- form))))
+ form))
+ ))
;; `char-after' and `char-before' must be well-behaved before lpath.el
;; is loaded. Because it requires `poe' via `path-util'.
(with-temp-buffer
(let ((standard-output (current-buffer)))
(Custom-make-dependencies "."))
- (message (buffer-string)))
+ (message "%s" (buffer-string)))
(require 'cus-load)
(byte-compile-file "custom-load.el")
(require 'texinfmt)
(let ((auto-save-default nil)
(find-file-run-dired nil)
- coding-system-for-write)
+ coding-system-for-write
+ output-coding-system)
(let ((error 0)
file
(files ()))
(progn
(if buffer-file-name (kill-buffer (current-buffer)))
(find-file file)
- (setq coding-system-for-write buffer-file-coding-system)
+ (if (boundp 'MULE)
+ (setq output-coding-system (symbol-value
+ 'file-coding-system))
+ (setq coding-system-for-write buffer-file-coding-system))
(when (and addsuffix
(re-search-forward
"^@setfilename[\t ]+\\([^\t\n ]+\\)" nil t)
(setq error 1))))
(kill-emacs error))))
+;; Mule-2.3@19.34 fails to make info from texi.
+(when (boundp 'MULE)
+ (put 'detailmenu 'texinfo-format 'texinfo-discard-line)
+ (put 'detailmenu 'texinfo-end 'texinfo-discard-command))
+
;;; dgnushack.el ends here