commit/xemacs-base: Jerry James: Implement assoc-string (in Lisp, versus the C implementation used in Emacs).
[email protected] Sun, 10 Aug 2014 01:55:15 -0000
| Newsgroups | gmane.emacs.xemacs.patches |
|---|---|
| Message-ID | <[email protected]> |
1 new commit in xemacs-base: https://bitbucket.org/xemacs/xemacs-base/commits/956c7e5673fe/ Changeset: 956c7e5673fe User: Jerry James Date: 2014-08-10 03:55:05 Summary: Implement assoc-string (in Lisp, versus the C implementation used in Emacs). See <CAHCOHQk9m6pmDz9HSVoWdGZpvzVc6Y1gEk5m6UNF15b0VwGuDQ@mail.gmail.com> in xemacs-patches. Affected #: 2 files diff -r 06f247e269bfbba4b2944ab529e846dfab7eae2e -r 956c7e5673fe0fa42bfd0733fe425127b92d46ac ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2014-08-04 Jerry James <[email protected]> + + * subr-more.el (assoc-string): New function from GNU Emacs. + 2014-05-15 Norbert Koch <[email protected]> * Makefile (VERSION): XEmacs package 2.41 released. diff -r 06f247e269bfbba4b2944ab529e846dfab7eae2e -r 956c7e5673fe0fa42bfd0733fe425127b92d46ac subr-more.el --- a/subr-more.el +++ b/subr-more.el @@ -171,4 +171,28 @@ (progn ,@body) (error (message "Error: %S" ,err) nil)))) +;;;###autoload +(defun assoc-string (key list &optional case-fold) + "Like `assoc' but specifically for strings (and symbols). + +This returns the first element of LIST whose car matches the string or +symbol KEY, or NIL if no match exists. When performing the comparison, +symbols are first converted to strings. If the optional arg CASE-FOLD +is non-nil, case is ignored. + +Unlike `assoc', KEY can also match an entry in LIST consisting of a +single string, rather than a cons cell whose car is a string." + (when (symbolp key) + (setq key (symbol-name key))) + (let* ((tail list) elt elt2 elt3 result) + (while (and (null result) tail) + (setq elt (car tail) + elt2 (if (consp elt) (car elt) elt) + elt3 (if (symbolp elt2) (symbol-name elt2) elt2) + result (and (stringp elt3) + (eq (compare-strings elt3 0 nil key 0 nil case-fold) t) + elt) + tail (cdr tail))) + result)) + ;;; subr-more.el ends here Repository URL: https://bitbucket.org/xemacs/xemacs-base/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.