diff options
author | Bozhidar Batsov <bozhidar@batsov.com> | 2013-12-20 18:21:45 +0200 |
---|---|---|
committer | Bozhidar Batsov <bozhidar@batsov.com> | 2013-12-20 18:21:45 +0200 |
commit | 131e4695b2fc814c27e806860d9f4da8673ff505 (patch) | |
tree | dbc83f588acc65da2ac66e42281cb01cc1b74f32 /lisp/emacs-lisp/subr-x.el | |
parent | f60bb26a56156735261ef2ff6d014b2f047e3319 (diff) | |
download | emacs-131e4695b2fc814c27e806860d9f4da8673ff505.tar.gz emacs-131e4695b2fc814c27e806860d9f4da8673ff505.tar.bz2 emacs-131e4695b2fc814c27e806860d9f4da8673ff505.zip |
* lisp/emacs-lisp/subr-x.el: Renamed from helpers.el.
Diffstat (limited to 'lisp/emacs-lisp/subr-x.el')
-rw-r--r-- | lisp/emacs-lisp/subr-x.el | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el new file mode 100644 index 00000000000..07e47794134 --- /dev/null +++ b/lisp/emacs-lisp/subr-x.el @@ -0,0 +1,78 @@ +;;; subr-x.el --- extra Lisp functions -*- lexical-binding:t -*- + +;; Copyright (C) 2013 Free Software Foundation, Inc. + +;; Maintainer: FSF +;; Keywords: convenience +;; Package: emacs + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; Less commonly used functions that complement basic APIs, often implemented in +;; C code (like hash-tables and strings), and are not eligible for inclusion +;; in subr.el. + +;;; Code: + +(defsubst hash-table-keys (hash-table) + "Return a list of keys in HASH-TABLE." + (let ((keys '())) + (maphash (lambda (k _v) (push k keys)) hash-table) + keys)) + +(defsubst hash-table-values (hash-table) + "Return a list of values in HASH-TABLE." + (let ((values '())) + (maphash (lambda (_k v) (push v values)) hash-table) + values)) + +(defsubst string-empty-p (string) + "Check whether STRING is empty." + (string= string "")) + +(defsubst string-join (strings &optional separator) + "Join all STRINGS using SEPARATOR." + (mapconcat 'identity strings separator)) + +(defsubst string-reverse (str) + "Reverse the string STR." + (apply 'string (nreverse (string-to-list str)))) + +(defsubst string-trim-left (string) + "Remove leading whitespace from STRING." + (if (string-match "\\`[ \t\n\r]+" string) + (replace-match "" t t string) + string)) + +(defsubst string-trim-right (string) + "Remove trailing whitespace from STRING." + (if (string-match "[ \t\n\r]+\\'" string) + (replace-match "" t t string) + string)) + +(defsubst string-trim (string) + "Remove leading and trailing whitespace from STRING." + (string-trim-left (string-trim-right string))) + +(defsubst string-blank-p (string) + "Check whether STRING is either empty or only whitespace." + (string-match-p "\\`[ \t\n\r]*\\'" string)) + +(provide 'subr-x) + +;;; subr-x.el ends here |