|--==> "HN" == Hrvoje Niksic <hniksic(a)xemacs.org> writes:
HN> Steve Youngs <sryoungs(a)bigpond.net.au> writes:
>This patch means that Gnus no longer requires fsf-compat.
HN> Have you actually checked that the Gnus code no longer uses things
HN> from fsf-compat?
Yes, I did check. I'm only human, but hopefully I didn't miss too
many things.
HN> This change in particular is suspicious:
>Index: lisp/gpg.el
HN> [...]
>-(require 'timer)
>+(if (featurep 'xemacs)
>+ (require 'itimer)
>+ (require 'timer))
>(eval-when-compile (require 'cl))
HN> Unless `gpg.el' has changed significantly from the version I have,
HN> this change cannot be correct. gpg.el uses timer functions all over
HN> the place without checking whether they're defined.
I have added another file to the gnus package `dgnushack-xemacs.el'
which is similar to the upstream `dgnushack.el'. In that, I have...
(defalias 'timer-create 'make-itimer)
(defalias 'cancel-timer 'delete-itimer)
(defalias 'timer-activate 'activate-itimer)
(defalias 'timer-set-time 'set-itimer-value)
(defalias 'timer-set-function 'set-itimer-function)
(unless (fboundp 'timer-relative-time)
(defun timer-relative-time (time secs &optional usecs)
"Advance TIME by SECS seconds and optionally USECS microseconds.
SECS may be a fraction."
(let ((high (car time))
(low (if (consp (cdr time)) (nth 1 time) (cdr time)))
(micro (if (numberp (car-safe (cdr-safe (cdr time))))
(nth 2 time)
0)))
;; Add
(if usecs (setq micro (+ micro usecs)))
(if (floatp secs)
(setq micro (+ micro (floor (* 1000000 (- secs (floor secs)))))))
(setq low (+ low (floor secs)))
;; Normalize
(setq low (+ low (/ micro 1000000)))
(setq micro (mod micro 1000000))
(setq high (+ high (/ low 65536)))
(setq low (logand low 65535))
(list high low (and (/= micro 0) micro)))))))
`dgnushack-xemacs.el' gets loaded via the package's Makefile
$PRELOADS. I've got to admit that I'm not sure how comfortable I am
with this type of approach. To me, the whole gnus "lpath/dgnushack"
thing stinks of hiding problems rather than fixing them.
Norbert, take your finger off that release trigger for a bit, I need
to have a think about this.
--
|---<Steve Youngs>---------------<GnuPG KeyID: A94B3003>---|
| XEmacs - The only _______ you'll ever need. |
| Fill in the blank, yes, it's THAT good! |
|------------------------------<sryoungs(a)bigpond.net.au>---|