(setq sequence (seq-drop sequence n)))
(nreverse result))))
+;;;###autoload
(cl-defgeneric seq-union (sequence1 sequence2 &optional testfn)
"Return a list of all elements that appear in either SEQUENCE1 or SEQUENCE2.
Equality is defined by TESTFN if non-nil or by `equal' if nil."
;; compute difference list
(setq difflist (ediff-set-difference
- (ediff-union (ediff-union lis1 lis2 #'string=)
- lis3
- #'string=)
+ (seq-union (seq-union lis1 lis2 #'string=)
+ lis3
+ #'string=)
common
#'string=)
difflist (delete "." difflist)
(setq lis1 (cdr lis1)))
(cdr result)))
-
-;; eliminates duplicates using comparison-func
-(defun ediff-union (lis1 lis2 comparison-func)
- (let ((result (list 'a)))
- (while lis1
- (or (ediff-member (car lis1) (cdr result) comparison-func)
- (nconc result (list (car lis1))))
- (setq lis1 (cdr lis1)))
- (while lis2
- (or (ediff-member (car lis2) (cdr result) comparison-func)
- (nconc result (list (car lis2))))
- (setq lis2 (cdr lis2)))
- (cdr result)))
-
;; eliminates duplicates using comparison-func
(defun ediff-set-difference (lis1 lis2 comparison-func)
(let ((result (list 'a)))
(define-obsolete-function-alias 'ediff-add-to-history #'add-to-history "27.1")
(define-obsolete-function-alias 'ediff-copy-list #'copy-sequence "28.1")
+(define-obsolete-function-alias 'ediff-union #'seq-union "28.1")
(run-hooks 'ediff-load-hook)