I have found an inefficeny with mIRC I'd like to see address:
Code:
;; fill the bvar
/bset &adding ....

;; retrieve stored data as a bvar;
;; thus creating two copies of the stored data
noop $hget(name, item, &stored)

;; copy the data I wish to add to the storage bvar;
;; thus creating two copies of the data I wish to added
bcopy -c &stored $calc($bvar(&stored, 0) + 1) &adding 1 -1

;; store the updated storage bvar
hadd -mb name item &stored

;; free up the duplicate data
bunset &adding &stored






When working with small data sets this may seem purely cosmetic but for cases such as buffering socket data to read/send the sizes add up. I purpose the following:
Code:
/hadd -bN name item &bvar
if n is not specified or 0, the current behavior is maintained: the bvar data is added to the hashtable, overwriting any data stored under the item
if n is 1, the bvar data is appended to any data stored under the item
if n is 2, the current behavior is maintained but the input bvar is unset afterwards
if n is 3, the data is sppended to any data stored under the item, and the input bvar is unset afterwards.

As such, backwards compatability would be maintained while extending support for hashtable bvars