Linear display not correct?



I have observed the following problem (GCL 2.6.8, CVS code and Maxima 5.15.0,
Windows XP):

/* in display2d mode all is fine */

(%i41) display2d:true;

(%o41)                               true

(%i42) bessel_j(n,z);
(%o42)                          bessel_j(n, z)

/* if I change to linear display mode the function is displayed with ?% */ 

(%i43) display2d:false;
(%o43) false

(%i44) bessel_j(n,z);
(%o44) ?%bessel_j(n,z)

/* We have this problem for most functions with an internal
   representation like ((%function) ...) */

(%i48) :lisp (setq $form '(($function) $x $y))
(($FUNCTION) $X $Y)
(%i48) form;
(%o48) function(x,y)                    /* O.K */

(%i49) :lisp (setq $form '((%function) $x $y))
((%FUNCTION) $X $Y)

(%i49) form;
(%o49) ?%function(x,y)                  /* wrong */

/* The gamma function has not this problem. It is a
   %-function too, but for this function an alias and a 
   reversealias can be found on the property list */

(%i52) gamma(z);
(%o52) gamma(z)

(%i54) :lisp (symbol-plist '%gamma)

(PNAME %GAMMA .... 
  REVERSEALIAS $GAMMA 
  NOUN $GAMMA
   ...    )

/* The same with the elliptic_ec function.
   If we give an alias the problem vanish */

(%i60) elliptic_ec(z);
(%o60) ?%elliptic_ec(z)

(%i61) :lisp (alias '$elliptic_ec '%elliptic_ec)
%ELLIPTIC_EC

/* We have given an alias and the function displays correctly. */

(%i61) elliptic_ec(z);
(%o61) elliptic_ec(z)

This problem can further be recognized using expressions like

(%i65) printf(true,"~a",2*bessel_i(n,z));
2*?%bessel_i(n,z)

Is this a known problem? Is this a bug?

Dieter Kaiser