Function: vhdl-menu-split

vhdl-menu-split is a byte-compiled function defined in vhdl-mode.el.gz.

Signature

(vhdl-menu-split LIST TITLE)

Documentation

Split menu LIST into several submenus, if number of elements > vhdl-menu-max-size.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/vhdl-mode.el.gz
(defun vhdl-menu-split (list title)
  "Split menu LIST into several submenus, if number of
elements > `vhdl-menu-max-size'."
  (if (> (length list) vhdl-menu-max-size)
      (let ((remain list)
	    (result '())
	    (sublist '())
	    (menuno 1)
	    (i 0))
	(while remain
	  (push (car remain) sublist)
	  (setq remain (cdr remain))
	  (setq i (+ i 1))
	  (if (= i vhdl-menu-max-size)
	      (progn
		(push (cons (format "%s %s" title menuno)
			    (nreverse sublist)) result)
		(setq i 0)
		(setq menuno (+ menuno 1))
		(setq sublist '()))))
	(and sublist
	     (push (cons (format "%s %s" title menuno)
			 (nreverse sublist)) result))
	(nreverse result))
    list))