assigning operators - case sensitivity problem?



>>>>> "CY" == C Y  writes:

    CY> Maxima 5.9.1.1cvs http://maxima.sourceforge.net
    CY> Using Lisp SBCL 0.8.20
    CY> Distributed under the GNU Public License. See the file COPYING.
    CY> Dedicated to the memory of William Schelter.
    CY> This is a development version of Maxima. The function bug_report()
    CY> provides bug reporting information.
    CY> (%i1) postfix("F");
    CY> (%o1)                                 "f"
    CY> (%i2) postfix("f");
    CY> (%o2)                                 "f"
    CY> (%i3) (x)f:=x*a;
    CY> (%o3)                         x f := x a
    CY> (%i4) 40f;
    CY> (%o4)                            40 a
    CY> (%i5) 40F;
    CY> Incorrect syntax: f is not an infix operator
    CY> (%i5) 

    CY> Shouldn't it be distinguishing between upper and lower case here?

I would think so, but having never used postfix, I don't really now.

But if it should distinguish case, the problem is probably here:

(defmfun $postfix (operator &optional (lbp  180.)
			             (lpos '$any)
				     (pos  '$any))
	 	 (upcase operator) ;; <-----
  (def-operator operator pos lbp lpos   ()  ()   t  ()
    '(led . parse-postfix) 'msize-postfix 'dimension-postfix  ()   ))

where UPCASE intentionally upcases the operator.  This also affects
$prefix, $infix, $nary, $matchfix, and $nofix.

Ray