Function: hif-display-macro
hif-display-macro is a byte-compiled function defined in hideif.el.gz.
Signature
(hif-display-macro NAME DEF &optional RESULT)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/hideif.el.gz
(defun hif-display-macro (name def &optional result)
(if (and def
(listp def)
(eq (car def) 'hif-define-macro))
(let ((cdef (concat "#define " name))
(parmlist (cadr def))
s)
(setq def (caddr def))
;; parmlist
(when parmlist
(setq cdef (concat cdef "("))
(while (car parmlist)
(setq cdef (concat cdef (symbol-name (car parmlist))
(if (cdr parmlist) ","))
parmlist (cdr parmlist)))
(setq cdef (concat cdef ")")))
(setq cdef (concat cdef " "))
;; body
(while def
(if (listp def)
(setq s (car def)
def (cdr def))
(setq s def
def nil))
(setq cdef
(concat cdef
(cond
;;((setq tok (car (rassoc s hif-token-alist)))
;; (concat tok (if (eq s 'hif-comma) " ")))
((symbolp s)
(concat (hif-stringify s)
(if (eq s 'hif-comma) " ")))
((stringp s)
(hif-stringify s))
(t ;; (numberp s)
(format "%S" s))))))
(if (and result
;; eg: "#define RECURSIVE_SYMBOL RECURSIVE_SYMBOL"
(not (and (listp result)
(eq (car result) 'hif-define-macro))))
(setq cdef (concat cdef
(if (integerp result)
(format "\n=> %S (%#x)" result result)
(format "\n=> %S" result)))))
(message "%s" cdef))
(message "%S <= `%s'" def name)))