A string may hold a nil or default face text property, or its face text property is simply unspecified.
E.g.,
#("void nil default"
0 4 ; unspecified
()
5 8 ; nil face (this is an anonymous face, see the manual)
(face ())
9 16 ; default face
(face default))
Although they are usually rendered to look the same, I wonder whether there is an exception?
eqbut they arestring=? The first does not specify any properties, but the other two do? Not sure what you are looking for.default? And only as shown by functionmessage? What are you really trying to do? At best, this sounds like an X-Y problem. You should be able to pare it down to something you really want/need to know."s",#("s" 0 1 (face nil)),#("s" 0 1 (face default))), so clearly they don't "act" the same in all contexts. So far, the question seems completely undefined, to me.nilor facedefaultis better. Better for what? Better in what way? You don't say what you want, so it's hard/impossible to help you choose which choice is "better" (for you, in some way).