For what it's worth, I just tried the attached little stress test on an updated C port of `decode-char' in order to check whether it returns equivalent results. It does. (Well, except intentional differences like that `ucs_to_internal' throws an error where `decode-char' returns nil.) Basically the test runs through all positive integers up to MAX_CHAR and inserts an alist into a temp buffer with each car being the integer and each cdr being a character in the \u syntax (e.g. `?\u3b1'). It then reads that alist again and checks whether `decode-char' on its car is `eq' to its cdr. I tried it with and without `utf-translate-cjk-mode' and with and without `utf-fragment-on-decoding'. Since all tests succeed, ucs_to_internal and `decode-char' are functionally equivalent on all supported characters. The test: