Function: idlwave-split-menu
idlwave-split-menu is a byte-compiled function defined in
idlwave.el.gz.
Signature
(idlwave-split-menu MENU N)
Documentation
Split the MENU into submenus of maximum length N.
Aliases
idlwave-split-menu-emacs (obsolete since 28.1)
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/idlwave.el.gz
(defun idlwave-split-menu (menu N)
"Split the MENU into submenus of maximum length N."
(if (<= (length (nth 1 menu)) (1+ N))
;; No splitting needed
menu
(let* ((title (car menu))
(entries (cdr (nth 1 menu)))
(menu nil)
(cnt 0)
(nextmenu nil))
(while entries
(while (and entries (< cnt N))
(setq cnt (1+ cnt)
nextmenu (cons (car entries) nextmenu)
entries (cdr entries)))
(setq nextmenu (nreverse nextmenu))
(prin1 nextmenu)
(setq nextmenu (cons (format "%s...%s"
(car (car nextmenu))
(car (nth (1- cnt) nextmenu)))
nextmenu))
(setq menu (cons nextmenu menu)
nextmenu nil
cnt 0))
(setq menu (nreverse menu))
(setq menu (cons title menu))
menu)))