Mercurial > emacs
changeset 25619:f25a14690a18
(Fmakehash): Accept just one optional argument TEST.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Thu, 09 Sep 1999 14:54:28 +0000 |
parents | ed0f7bf2cfc7 |
children | 1c991744ce13 |
files | src/fns.c |
diffstat | 1 files changed, 8 insertions(+), 46 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fns.c Thu Sep 09 14:54:25 1999 +0000 +++ b/src/fns.c Thu Sep 09 14:54:28 1999 +0000 @@ -4309,56 +4309,18 @@ } -DEFUN ("makehash", Fmakehash, Smakehash, 0, MANY, 0, +DEFUN ("makehash", Fmakehash, Smakehash, 0, 1, 0, "Create a new hash table.\n\ Optional first argument TEST specifies how to compare keys in\n\ the table. Predefined tests are `eq', `eql', and `equal'. Default\n\ -is `eql'. New tests can be defined with `define-hash-table-test'.\n\ -\n\ -The rest of the optional arguments are keyword/value pairs. The\n\ -following are recognized:\n\ -\n\ -:SIZE SIZE -- A hint as to how many elements will be put in the table. -Default is 65.\n\ -\n\ -:REHASH-SIZE REHASH-SIZE - Indicates how to expand the table when\n\ -it fills up. If REHASH-SIZE is an integer, add that many space.\n\ -If it is a float, it must be > 1.0, and the new size is computed by\n\ -multiplying the old size with that factor. Default is 1.5.\n\ -\n\ -:REHASH-THRESHOLD THRESHOLD -- THRESHOLD must a float > 0, and <= 1.0.\n\ -Resize the hash table when ratio of the number of entries in the table.\n\ -Default is 0.8.\n\ -\n\ -:WEAKNESS WEAK -- WEAK must be one of nil, t, `key', or `value'.\n\ -If WEAK is not nil, the table returned is a weak table. Key/value\n\ -pairs are removed from a weak hash table when their key, value or both\n\ -(WEAK t) are otherwise unreferenced. Default is nil.") - (nargs, args) - int nargs; - Lisp_Object *args; +is `eql'. New tests can be defined with `define-hash-table-test'.") + (test) + Lisp_Object test; { - Lisp_Object args2[nargs + 6]; - int i, j; - - i = j = 0; - - /* Recognize TEST argument. */ - if (SYMBOLP (args[i]) - && !EQ (args[i], QCrehash_size) - && !EQ (args[i], QCrehash_threshold) - && !EQ (args[i], QCweakness) - && !EQ (args[i], QCsize)) - { - args2[j++] = QCtest; - args2[j++] = args[i++]; - } - - /* Copy remaining arguments. */ - while (i < nargs) - args2[j++] = args[i++]; - - return Fmake_hash_table (j, args2); + Lisp_Object args[2]; + args[0] = QCtest; + args[1] = test; + return Fmake_hash_table (2, args); }