Namely: what happens if the specifier refers to image files
that are not existent, that are broken, or that are in a
format that XEmacs does not support? Does make-glyph return
nil? Does it return a glyph that later triggers some error
when being used? Does make-glyph throw an error itself? At
what point of time do :file ... and similar properties
actually get evaluated?
In short: what does make-glyph return or throw under what
basic error conditions?
File data is loaded at the time that the spec is added to the specifier, and
the inline data is substituted. If an error occurs or the file can't be
found, XEmacs simply proceeds to the next spec -- as a backup you will
ultimately get a "nothing" instantiator, I think -- i.e. you'll go ahead
and
get a glyph back but it just won't show anything.
There is some documentation on the error process but it's in
`specifier-instance', perhaps not the most obvious place:
NOTE: When errors occur in the process of trying a particular instantiator,
and the instantiator is thus skipped, warnings will be issued at level
`debug'. Normally, such warnings are ignored entirely, but you can change
this by setting `log-warning-minimum-level'. This is useful if you're
trying to debug why particular instantiators are not being processed.
The reason why warnings are normally not shown is that there are frequently
a bunch of them generated during normal startup. It's possible, however,
that with some careful thinking the expected ones could be filtered out.