Subject: bug#5254: ps-print and faces specified as strings

From: harven <[email-masked]>
Date: Sun, 20 Dec 2009 22:44:43 +0100

ps-spool-buffer-with-faces and ps-print-buffer-with-faces report errors
if there is a face specified as a string in the buffer.

Tested with emacs22 and emacs23 ; starting in a buffer in fundamental
mode, we type and execute the following:

  (facemenu-set-face "bold" 1 (point-max))

The text in the buffer becomes bold as expected.
We now try to spool the buffer using M-x ps-spool-buffer-with-faces.
This gives the error:

ps-face-attribute-list: Wrong type argument: listp, "bold"

A *postscript* buffer has been created, as expected, but it is empty.
It should have contained a faithful postscript image of the buffer.
The error can be reproduced with any face, not just bold.

It seems that the problem comes from the fact that somewhere in the
ps-print-* functions, the face is expected to be a symbol -- 'bold. 
In the function given below, the face is defined by facemenu-set-face
as a string -- "bold". If we use instead
(facemenu-set-face 'bold 1 (point-max))
to color the buffer, the error disappear.

It may not be a bug per se, yet it would be nice (and more consistent)
if the ps-print package could handle faces specified as strings.

In GNU Emacs 22.1.1 (i386-apple-darwin8.10.1, X toolkit) of 2007-08-13
Windowing system distributor `The X.Org Foundation', version 11.0.60802000

also

In GNU Emacs 23.1.1 (i486-pc-linux-gnu, GTK+ VErsion 2.18.2)) 
of 2009-11-02 on raven, modified by Debian
Windowing System distributor  `The X.Org Foundation', version 11.0.10605000