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"))))