+/*
+ (Many years later...) In testing this code I noticed that TRANSLATE'ing
+ Russian text from UTF-8 to ISO Latin/Cyrillic produced all question marks.
+ Rereading the previous paragraph it seems to me we are (I am) overloading
+ this function with responsibilites, satisfying the needs of file transfer
+ (local file charset -> transfer charset for outbound packet) and local file
+ conversion. In the case of TRANSLATE, we call (xgnbyte(), xpnbyte()) in a
+ loop, expecting the xgnbyte() will feed UCS2 to xpnbyte(). But the
+ following code does what xpnbyte() is going to do, returning (in this case)
+ an ISO Latin/Cyrillic byte stream, which xpnbyte() believes to be UCS2, and
+ comes up with nonsense. Not wanting to rip the whole thing apart and start
+ over, I made the following change that should do no harm, upon observing
+ that if the input character set is UTF-8 or UCS-2, then when we get here it
+ has already been converted to UCS2, so if we are not transferring a file, we
+ don't need to do anything else except put the bytes in the right place to be
+ returned, which is done further along.
+*/
+#ifdef COMMENT
+ /* Previous code */