I learned something new about hooks. In the Common Lisp metaobject protocol, there's :before and :after (like Emacs Lisp's pre and post hooks) but there's also :around, which is interposition. To call the function you've wrapped, you use call-next-function, just like using RTLD_NEXT with LD_PRELOAD.
6 days ago