@b4n, no the current code works just fine, the hash key is the [inode](https://github.com/geany/geany/blob/97547edb52e34b8f78f44a13548a0fb55baf1a44...)
Not it's not, it's *hashed* as an inode, but the [key is](https://github.com/geany/geany/blob/97547edb52e34b8f78f44a13548a0fb55baf1a44...) [a filename](https://github.com/geany/geany/blob/97547edb52e34b8f78f44a13548a0fb55baf1a44...), so the equal function will compare the string pointers.
Originally a list was [used](https://github.com/geany/geany/blob/d6c16742b769947914b63a3a24e0b1440593d43d...) but then it was [de-duped](https://github.com/geany/geany/blob/d6c16742b769947914b63a3a24e0b1440593d43d...)
Well, if we used a hash table as a mean of deduping and a list as a mean of well, building the list, it would not be a problem.