Function: semantic-unique-tag-table-by-name
semantic-unique-tag-table-by-name is a byte-compiled function defined
in sort.el.gz.
Signature
(semantic-unique-tag-table-by-name TAGS)
Documentation
Scan a list of TAGS, removing duplicate names.
This must first sort the tags by name alphabetically ascending.
For more complex uniqueness testing used by the semanticdb
typecaching system, see semanticdb-typecache-merge-streams.
Source Code
;; Defined in /usr/src/emacs/lisp/cedet/semantic/sort.el.gz
;;; Unique
;;
;; Scan a list of tags, removing duplicates.
;; This must first sort the tags by name alphabetically ascending.
;;
;; Useful for completion lists, or other situations where the
;; other data isn't as useful.
(defun semantic-unique-tag-table-by-name (tags)
"Scan a list of TAGS, removing duplicate names.
This must first sort the tags by name alphabetically ascending.
For more complex uniqueness testing used by the semanticdb
typecaching system, see `semanticdb-typecache-merge-streams'."
(let ((sorted (semantic-sort-tags-by-name-increasing
(copy-sequence tags)))
(uniq nil))
(while sorted
(if (or (not uniq)
(not (string= (semantic-tag-name (car sorted))
(semantic-tag-name (car uniq)))))
(setq uniq (cons (car sorted) uniq)))
(setq sorted (cdr sorted))
)
(nreverse uniq)))