copy-face is a compiled Lisp function in `faces.el'.

(copy-face OLD-FACE NEW-FACE &optional FRAME NEW-FRAME)

Define a face named NEW-FACE, which is a copy of OLD-FACE.
This function does not copy face customization data, so NEW-FACE
will not be made customizable. Most Lisp code should not call
this function; use `defface' with :inherit instead.

If NEW-FACE already exists as a face, modify it to be like
OLD-FACE. If NEW-FACE doesn't already exist, create it.

If the optional argument FRAME is a frame, change NEW-FACE on
FRAME only. If FRAME is t, copy the frame-independent default
specification for OLD-FACE to NEW-FACE. If FRAME is nil, copy
the defaults as well as the faces on each existing frame.

If the optional fourth argument NEW-FRAME is given, copy the
information from face OLD-FACE on frame FRAME to NEW-FACE on
frame NEW-FRAME. In this case, FRAME must not be nil.