Here's a patch that makes name translation between lisp and foreign names more flexible. I often find that I'm using libraries that don't use underscore_separated_names, and rather than always doing
(defcfun (some-fun "someFun") ...)
I end up doing local hacks so I can just define the translation rules once and only use the (symbol "string") style for exceptions.
This patch makes those local hacks less hacky. It means in my wrapper, I can define methods on CFFI:LISP-NAME and CFFI:FOREIGN-NAME (as in http://github.com/sellout/CL-LLVM/blob/master/cffi.lisp) to create custom translations (specialized on the package, so other wrappers can use their own translations).