gnus-compat.el (string-bytes): Work for XEmacs
[gnus] / lisp / gnus-compat.el
index f62a394..d286ea1 100644 (file)
@@ -1,6 +1,6 @@
 ;;; 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
@@ -129,6 +129,30 @@ TRASH is ignored."
       (forward-line arg))
     (beginning-of-line)))
 
+(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)
 
 ;; gnus-compat.el ends here