;;; gnus-compat.el --- Compatability functions for Gnus
-;; Copyright (C) 2012 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2015 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: compat
(forward-line arg))
(beginning-of-line)))
-;; XEmacs 21.5
-(unless (fboundp 'set-buffer-multibyte)
- (defun set-buffer-multibyte (flag)
- nil))
+(unless (fboundp 'delete-dups)
+ (defun delete-dups (list)
+ "Destructively remove `equal' duplicates from LIST.
+Store the result in LIST and return it. LIST must be a proper list.
+Of several `equal' occurrences of an element in LIST, the first
+one is kept."
+ (let ((tail list))
+ (while tail
+ (setcdr tail (delete (car tail) (cdr tail)))
+ (setq tail (cdr tail))))
+ list))
+
+(unless (fboundp 'declare-function)
+ (defmacro declare-function (&rest r)))
+
+(unless (fboundp 'string-bytes)
+ (defun string-bytes (string)
+ (length (if (or (mm-coding-system-p 'utf-8)
+ (ignore-errors
+ (let (mucs-ignore-version-incompatibilities)
+ (require 'un-define))))
+ (encode-coding-string string 'utf-8)
+ string))))
(provide 'gnus-compat)