(Probably) doesn't work on XEmacs
The support for XEmacs (such as it was) was almost certainly broken by the coding system changes. I don't think XEmacs has coding-system-for-read, set-process-coding-system and so on.
I don't propose to work on this because I don't use XEmacs myself, and I don't know anybody who does. Let me know if you're affected by this and prepared to help.
One thing that fails but could easily be fixed is the definition of faces. E.g.
(defface p4-link-face '((t :weight bold))
"Face used to highlight clickable links."
:group 'p4-faces)
For XEmacs the syntax needs to be '((t (:weight bold))). GNU Emacs should also support that syntax.
@phst: Thanks for the suggestion, which I implemented in commit 6965d7dfbffc33db94517ab921bd4a59296c8f41. Can you try it out and let me know if it works?
The error about :weight is gone, thanks. The next error is about the missing function completion-table-dynamic.
FYI, I'm not using XEmacs myself, I'm just trying to M-x load-file p4.el and see what errors it prints.
I'm not sure there's any point in going through the motions here. Trying to support XEmacs in the absence of any users just imposes a burden without providing a benefit. Let's wait until we have an actual XEmacs user who wants to use p4.el!