Mmm, I like that, in fact, :+1: Others?

Two small things, though:
- suggested formatting does not fit in 80 chars. I propose alternative formatting below.
- Line before this block was:```  hashitem_T *oldarray, *newarray, temparray[HT_INIT_SIZE];```. We can now inline oldarray/newarray declarations, too.

With those changes, whole block results in:
```
  bool new_array_is_small = newsize == HT_INIT_SIZE;
  bool keep_small_array = new_array_is_small
    && ht->ht_array == ht->ht_smallarray;

  // Make sure that oldarray and newarray do not overlap,
  // so that copying is possible.
  hashitem_T temparray[HT_INIT_SIZE];
  hashitem_T *oldarray = keep_small_array 
    ? memcpy(temparray, ht->smallarray, sizeof(temparray))
    : ht->ht_array;
  hashitem_T *newarray = new_array_is_small
    ? ht->ht_smallarray
    : xmalloc(sizeof(hashitem_T) * newsize);
```

What about that?