From 3e1029de6e455eb7d37b2388c3fd5f3a409fbd24 Mon Sep 17 00:00:00 2001 From: Andreas Gerler Date: Tue, 22 Jan 2019 16:47:31 +0100 Subject: [PATCH] Update ht. Signed-off-by: Andreas Gerler --- elpa/ht-20180129.2234/ht-pkg.el | 2 -- .../ht-autoloads.el | 0 elpa/ht-20181216.1137/ht-pkg.el | 2 ++ .../ht.el | 18 ++++++++++++++++-- 4 files changed, 18 insertions(+), 4 deletions(-) delete mode 100644 elpa/ht-20180129.2234/ht-pkg.el rename elpa/{ht-20180129.2234 => ht-20181216.1137}/ht-autoloads.el (100%) create mode 100644 elpa/ht-20181216.1137/ht-pkg.el rename elpa/{ht-20180129.2234 => ht-20181216.1137}/ht.el (94%) diff --git a/elpa/ht-20180129.2234/ht-pkg.el b/elpa/ht-20180129.2234/ht-pkg.el deleted file mode 100644 index d714285f..00000000 --- a/elpa/ht-20180129.2234/ht-pkg.el +++ /dev/null @@ -1,2 +0,0 @@ -;;; -*- no-byte-compile: t -*- -(define-package "ht" "20180129.2234" "The missing hash table library for Emacs" '((dash "2.12.0")) :commit "5a665d00dc8fda77bad2a43277d8809c23e46ab8" :keywords '("hash table" "hash map" "hash") :authors '(("Wilfred Hughes" . "me@wilfred.me.uk")) :maintainer '("Wilfred Hughes" . "me@wilfred.me.uk")) diff --git a/elpa/ht-20180129.2234/ht-autoloads.el b/elpa/ht-20181216.1137/ht-autoloads.el similarity index 100% rename from elpa/ht-20180129.2234/ht-autoloads.el rename to elpa/ht-20181216.1137/ht-autoloads.el diff --git a/elpa/ht-20181216.1137/ht-pkg.el b/elpa/ht-20181216.1137/ht-pkg.el new file mode 100644 index 00000000..ca4710cd --- /dev/null +++ b/elpa/ht-20181216.1137/ht-pkg.el @@ -0,0 +1,2 @@ +;;; -*- no-byte-compile: t -*- +(define-package "ht" "20181216.1137" "The missing hash table library for Emacs" '((dash "2.12.0")) :commit "8ec3eb96ee63430fb24257e4aa8169b50cb7be12" :keywords '("hash table" "hash map" "hash") :authors '(("Wilfred Hughes" . "me@wilfred.me.uk")) :maintainer '("Wilfred Hughes" . "me@wilfred.me.uk")) diff --git a/elpa/ht-20180129.2234/ht.el b/elpa/ht-20181216.1137/ht.el similarity index 94% rename from elpa/ht-20180129.2234/ht.el rename to elpa/ht-20181216.1137/ht.el index 3907e1e6..11ed0b79 100644 --- a/elpa/ht-20180129.2234/ht.el +++ b/elpa/ht-20181216.1137/ht.el @@ -4,7 +4,7 @@ ;; Author: Wilfred Hughes ;; Version: 2.3 -;; Package-Version: 20180129.2234 +;; Package-Version: 20181216.1137 ;; Keywords: hash table, hash map, hash ;; Package-Requires: ((dash "2.12.0")) @@ -30,6 +30,7 @@ ;;; Code: (require 'dash) +(require 'gv) (defmacro ht (&rest pairs) "Create a hash table with the key-value pairs given. @@ -95,13 +96,26 @@ user-supplied test created via `define-hash-table-test'." If KEY isn't present, return DEFAULT (nil if not specified)." (gethash key table default)) +(gv-define-setter ht-get (value table key) `(ht-set! ,table ,key ,value)) + (defun ht-get* (table &rest keys) "Look up KEYS in nested hash tables, starting with TABLE. The lookup for each key should return another hash table, except for the final key, which may return any value." (if (cdr keys) (apply #'ht-get* (ht-get table (car keys)) (cdr keys)) - (ht-get table (car keys)))) + (if keys + (ht-get table (car keys)) + table))) + +(gv-define-setter ht-get* (value table &rest keys) + `(if (cdr ',keys) + (let* ((first-key (car ',keys)) + (last-key (-last-item ',keys)) + (butlast-key (butlast (cdr ',keys))) + (h (apply #'ht-get* (ht-get ,table first-key) butlast-key))) + (ht-set! h last-key ,value)) + (ht-set! ,table (car ',keys) ,value))) (defun ht-update! (table from-table) "Update TABLE according to every key-value pair in FROM-TABLE." -- 2.47.3