new version of the patch, with caching.
opener already caches this information; and on the other hand, util has no
state; so opener has to pass the cached information to util.set_flags as a new
argument.
I added the new argument to all calls of set_flags, but they should probably be
checked by someone who understands the context better... |