Function: vhdl-port-flatten
vhdl-port-flatten is an interactive and byte-compiled function defined
in vhdl-mode.el.gz.
Signature
(vhdl-port-flatten &optional AS-ALIST)
Documentation
Flatten port list so that only one generic/port exists per line.
This operation is performed on an internally stored port and is only reflected in a subsequent paste operation.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/vhdl-mode.el.gz
(defun vhdl-port-flatten (&optional as-alist)
"Flatten port list so that only one generic/port exists per line.
This operation is performed on an internally stored port and is only
reflected in a subsequent paste operation."
(interactive)
(if (not vhdl-port-list)
(error "ERROR: No port has been read")
(message "Flattening port for next paste...")
(let ((new-vhdl-port-list (list (car vhdl-port-list)))
(old-vhdl-port-list (cdr vhdl-port-list))
old-port-list new-port-list old-port new-port names)
;; traverse port list and flatten entries
(while (cdr old-vhdl-port-list)
(setq old-port-list (car old-vhdl-port-list))
(setq new-port-list nil)
(while old-port-list
(setq old-port (car old-port-list))
(setq names (car old-port))
(while names
(setq new-port (cons (if as-alist (car names) (list (car names)))
(cdr old-port)))
(setq new-port-list (append new-port-list (list new-port)))
(setq names (cdr names)))
(setq old-port-list (cdr old-port-list)))
(setq old-vhdl-port-list (cdr old-vhdl-port-list))
(setq new-vhdl-port-list (append new-vhdl-port-list
(list new-port-list))))
(setq vhdl-port-list
(append new-vhdl-port-list (list old-vhdl-port-list))
vhdl-port-flattened t)
(message "Flattening port for next paste...done"))))