+(defun gnus-annotation-in-region-p (b e)
+ (if (= b e)
+ (eq (cadr (memq 'gnus-undeletable (text-properties-at b))) t)
+ (text-property-any b e 'gnus-undeletable t)))
+
+(defun gnus-or (&rest elems)
+ "Return non-nil if any of the elements are non-nil."
+ (catch 'found
+ (while elems
+ (when (pop elems)
+ (throw 'found t)))))
+
+(defun gnus-and (&rest elems)
+ "Return non-nil if all of the elements are non-nil."
+ (catch 'found
+ (while elems
+ (unless (pop elems)
+ (throw 'found nil)))
+ t))
+
+(static-if (boundp 'MULE)
+ (defun gnus-write-active-file-as-coding-system
+ (coding-system file hashtb &optional full-names)
+ (let ((output-coding-system coding-system))
+ (with-temp-file file
+ (mapatoms
+ (lambda (sym)
+ (when (and sym
+ (boundp sym)
+ (symbol-value sym))
+ (insert (format "%s %d %d y\n"
+ (if full-names
+ (symbol-name sym)
+ (gnus-group-real-name (symbol-name sym)))
+ (cdr (symbol-value sym))
+ (car (symbol-value sym))))))
+ hashtb))))
+ (defun gnus-write-active-file-as-coding-system
+ (coding-system file hashtb &optional full-names)
+ (let ((coding-system-for-write coding-system))
+ (with-temp-file file
+ (mapatoms
+ (lambda (sym)
+ (when (and sym
+ (boundp sym)
+ (symbol-value sym))
+ (insert (format "%s %d %d y\n"
+ (if full-names
+ (symbol-name sym)
+ (gnus-group-real-name (symbol-name sym)))
+ (cdr (symbol-value sym))
+ (car (symbol-value sym))))))
+ hashtb))))
+ )
+