static Lisp_Object
string_from_display_spec (Lisp_Object spec)
{
- if (CONSP (spec))
+ if (VECTORP (spec))
{
- do {
- if (STRINGP (XCAR (spec)))
- return XCAR (spec);
- spec = XCDR (spec);
- } while (CONSP (spec));
+ for (ptrdiff_t i = 0; i < ASIZE (spec); i++)
+ if (STRINGP (AREF (spec, i)))
+ return AREF (spec, i);
}
- else if (VECTORP (spec))
+ else
{
- ptrdiff_t i;
-
- for (i = 0; i < ASIZE (spec); i++)
- {
- if (STRINGP (AREF (spec, i)))
- return AREF (spec, i);
- }
- return Qnil;
+ for (; CONSP (spec); spec = XCDR (spec))
+ if (STRINGP (XCAR (spec)))
+ return XCAR (spec);
}
-
return spec;
}