Function: ibtypes::id-cflow
ibtypes::id-cflow is a byte-compiled function defined in hibtypes.el.
Signature
(ibtypes::id-cflow)
Documentation
Expand or collapse C call trees and jump to code definitions.
Require cross-reference tables built by the external cxref program of Cflow.
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hibtypes.el
;;; ========================================================================
;;; Expands or collapses C call trees and jumps to code definitions.
;;; ========================================================================
(defib id-cflow ()
"Expand or collapse C call trees and jump to code definitions.
Require cross-reference tables built by the external `cxref' program of Cflow."
(when (and (derived-mode-p 'id-cflow-mode)
(not (eolp)))
(let ((pnt (point)))
(save-excursion
(cond
;; If on a repeated function mark, display its previously
;; expanded tree.
((progn (skip-chars-backward " ")
(looking-at id-cflow-repeated-indicator))
(let ((end (point))
start entry)
(beginning-of-line)
(skip-chars-forward "| ")
(setq start (point)
entry (buffer-substring-no-properties start end))
(ibut:label-set entry start end)
(condition-case ()
(hact 'link-to-regexp-match
(concat "^[| ]*[&%%]*" (regexp-quote entry) "$")
1 (current-buffer) t)
(error
(goto-char end)
(error "(id-cflow): No prior expansion found")))))
;; If to the left of an entry, expand or contract its tree.
((progn (beginning-of-line)
(or (= pnt (point))
(and (looking-at "[| ]+")
(<= pnt (match-end 0)))))
(hact 'id-cflow-expand-or-contract current-prefix-arg))
;; Within an entry's filename, display the file.
((search-forward "\(" pnt t)
(let* ((start (point))
(end (1- (search-forward "\)" nil t)))
(file (buffer-substring-no-properties start end)))
(ibut:label-set file start end)
(hact 'link-to-file file)))
;; Within an entry's function name, jump to its definition.
(t
(hact 'smart-c)))))))