* lisp/emacs-lisp/seq.el (seq-uniq): Add autoload cookie.
* lisp/pcomplete.el: (pcomplete-uniquify-list): Use seq-uniq.
* lisp/eshell/esh-util.el (eshell-uniqify-list)
(eshell-uniquify-list):
* lisp/nxml/rng-util.el (rng-uniquify-equal):
* lisp/progmodes/idlwave.el (idlwave-uniquify):
* lisp/textmodes/artist.el (artist-uniq): Make into obsolete
function aliases for seq-uniq. Update callers.
* lisp/nxml/rng-util.el (rng-uniquify-eq): Make obsolete in favor
of seq-uniq. Update callers.
(setq index (1+ index)))
nil)))
+;;;###autoload
(cl-defgeneric seq-uniq (sequence &optional testfn)
"Return a list of the elements of SEQUENCE with duplicates removed.
TESTFN is used to compare elements, or `equal' if TESTFN is nil."
(?e . (lambda (lst) (mapcar #'file-name-extension lst)))
(?t . (lambda (lst) (mapcar #'file-name-nondirectory lst)))
(?q . (lambda (lst) (mapcar #'eshell-escape-arg lst)))
- (?u . (lambda (lst) (eshell-uniquify-list lst)))
+ (?u . (lambda (lst) (seq-uniq lst)))
(?o . (lambda (lst) (sort lst #'string-lessp)))
(?O . (lambda (lst) (nreverse (sort lst #'string-lessp))))
(?j . (eshell-join-members))
(define-obsolete-function-alias 'eshell-flatten-list #'flatten-tree "27.1")
-(defun eshell-uniquify-list (l)
- "Remove occurring multiples in L. You probably want to sort first."
- (let ((m l))
- (while m
- (while (and (cdr m)
- (string= (car m)
- (cadr m)))
- (setcdr m (cddr m)))
- (setq m (cdr m))))
- l)
-(define-obsolete-function-alias
- 'eshell-uniqify-list
- 'eshell-uniquify-list "27.1")
-
(defun eshell-stringify (object)
"Convert OBJECT into a string value."
(cond
;; Obsolete.
+(define-obsolete-function-alias 'eshell-uniquify-list #'seq-uniq "28.1")
+(define-obsolete-function-alias 'eshell-uniqify-list #'seq-uniq "28.1")
(define-obsolete-function-alias 'eshell-copy-tree #'copy-tree "28.1")
(define-obsolete-function-alias 'eshell-user-name #'user-login-name "28.1")
(while files
(setq type-ids (rng-possible-type-ids-using (car files) type-ids))
(setq files (cdr files)))
- (rng-uniquify-equal (sort type-ids 'string<))))
+ (seq-uniq (sort type-ids 'string<))))
(defun rng-locate-schema-file-using (files)
"Locate a schema using the schema locating files FILES.
(cons nullable
(if sorted
head
- (rng-uniquify-eq (sort head 'rng-compare-ipattern))))))
+ (seq-uniq (sort head 'rng-compare-ipattern) #'eq)))))
(defun rng-compare-ipattern (p1 p2)
(< (rng--ipattern-index p1)
(unless attribute-flag
(setcdr ns-prefixes (cons nil (cdr ns-prefixes))))))
(setq iter (cdr iter)))
- (rng-uniquify-equal
+ (seq-uniq
(sort (apply #'append
(cons extra-strings
(mapcar (lambda (name)
(defconst rng-builtin-datatypes-uri (rng-make-datatypes-uri ""))
-(defun rng-uniquify-eq (list)
- "Destructively remove `eq' duplicates from LIST."
- (and list
- (let ((head list))
- (while (cdr head)
- (if (eq (car head) (cadr head))
- (setcdr head (cddr head)))
- (setq head (cdr head)))
- list)))
-
-(defun rng-uniquify-equal (list)
- "Destructively remove `equal' duplicates from LIST."
- (and list
- (let ((head list))
- (while (cdr head)
- (if (equal (car head) (cadr head))
- (setcdr head (cddr head)))
- (setq head (cdr head)))
- list)))
-
(defun rng-blank-p (str) (string-match "\\`[ \t\n\r]*\\'" str))
(defun rng-substq (new old list)
(define-error 'rng-error nil)
+;; Obsolete.
+
+(defun rng-uniquify-eq (list)
+ (declare (obsolete seq-uniq "28.1"))
+ (seq-uniq list #'eq))
+
+(define-obsolete-function-alias 'rng-uniquify-equal #'seq-uniq "28.1")
+
(provide 'rng-util)
;;; rng-util.el ends here
(defun pcomplete-uniquify-list (l)
"Sort and remove multiples in L."
- (setq l (sort l 'string-lessp))
- (let ((m l))
- (while m
- (while (and (cdr m)
- (string= (car m)
- (cadr m)))
- (setcdr m (cddr m)))
- (setq m (cdr m))))
- l)
-(define-obsolete-function-alias
- 'pcomplete-uniqify-list
- 'pcomplete-uniquify-list "27.1")
+ (setq l (sort l #'string-lessp))
+ (seq-uniq l))
+(define-obsolete-function-alias 'pcomplete-uniqify-list #'pcomplete-uniquify-list "27.1")
(defun pcomplete-process-result (cmd &rest args)
"Call CMD using `call-process' and return the simplest result."
(put-text-property (match-beginning 0) (match-end 0)
'face 'font-lock-string-face))))))
-(defun idlwave-uniquify (list)
- (let ((ht (make-hash-table :size (length list) :test 'equal)))
- (delq nil
- (mapcar (lambda (x)
- (unless (gethash x ht)
- (puthash x t ht)
- x))
- list))))
-
(defun idlwave-after-successful-completion (type slash &optional verify)
"Add `=' or `(' after successful completion of keyword and function.
Restore the pre-completion window configuration if possible."
;; Run the hook
(run-hooks 'idlwave-load-hook)
+;; Obsolete.
+(define-obsolete-function-alias 'idlwave-uniquify #'seq-uniq "28.1")
+
(provide 'idlwave)
;;; idlwave.el ends here
"Call function FN with ARGS, if FN is not nil."
`(if ,fn (funcall ,fn ,@args)))
-(defun artist-uniq (l)
- "Remove consecutive duplicates in list L. Comparison is done with `equal'."
- (cond ((null l) nil)
- ((null (cdr l)) l) ; only one element in list
- ((equal (car l) (car (cdr l))) (artist-uniq (cdr l))) ; first 2 equal
- (t (cons (car l) (artist-uniq (cdr l)))))) ; first 2 are different
-
(defun artist-string-split (str r)
"Split string STR at occurrences of regexp R, returning a list of strings."
(let ((res nil)
Also, the `artist-key-poly-point-list' is reversed."
(setq artist-key-poly-point-list
- (artist-uniq artist-key-poly-point-list))
+ (seq-uniq artist-key-poly-point-list))
(if (>= (length artist-key-poly-point-list) 2)
(concat "Hello Tomas,\n\n"
"I have a nice bug report on Artist for you! Here it is:")))))
-
-;;
-;; Now provide this minor mode
-;;
+(define-obsolete-function-alias 'artist-uniq #'seq-uniq "28.1")
(provide 'artist)