rendered paste body;;; This was the original code, which only ever reached the else case.
; (case owner-type
; (((GNC-OWNER-CUSTOMER))
; (set! type-str (N_ "Customer")))
; (((GNC-OWNER-VENDOR))
; (set! type-str (N_ "Vendor")))
; (((GNC-OWNER-EMPLOYEE))
; (set! type-str (N_ "Employee")))
; (else (gnc:error "unkwown owner type:" owner-type)))
;; This is the result of debugging code being added.
(let ((c (GNC-OWNER-CUSTOMER))
(v (GNC-OWNER-VENDOR))
(e (GNC-OWNER-EMPLOYEE)))
(gnc:error "beg")
(case owner-type
((c)
(set! type-str (N_ "Customer")))
((v)
(gnc:error "got here")
(set! type-str (N_ "Vendor")))
((e)
(set! type-str (N_ "Employee")))
(else (gnc:error "unknown owner type: " owner-type ", not " c v e)))
(if (eqv? c owner-type)
(gnc:error "C!"))
(if (eqv? v owner-type)
(gnc:error "v==owner-type"))
(if (eqv? e owner-type)
(gnc:error "E!"))
(if (eqv? v 4)
(gnc:error "v==4"))
(if (eqv? owner-type 4)
(gnc:error "owner-type==4"))
(gnc:error "end")
)
;; And here's the output:
gnucash: [E] "beg"
gnucash: [E] "unknown owner type: "4", not "245
gnucash: [E] "v==owner-type"
gnucash: [E] "v==4"
gnucash: [E] "owner-type==4"
gnucash: [E] "end"
Notice how v == owner-type == 4, but the 'v' case is never reached!