Function: hpath:start-end
hpath:start-end is a byte-compiled function defined in hpath.el.
Signature
(hpath:start-end PATH)
Documentation
Return a list of start and end positions in PATH (sans delimiters), else nil.
Point must be within the first line of PATH.
NOTE: This will return nil if the path has been normalized in any way
(adjusted for mount points or variables replaced) since the
in-buffer path will not match.
Source Code
;; Defined in ~/.emacs.d/elpa/hyperbole-20260414.325/hpath.el
(defun hpath:start-end (path)
"Return a list of start and end positions in PATH (sans delimiters), else nil.
Point must be within the first line of PATH.
NOTE: This will return nil if the path has been normalized in any way
\(adjusted for mount points or variables replaced) since the
in-buffer path will not match."
;; Create a regexp from path by regexp-quoting it and then matching spaces
;; to any whitespace.
(when (stringp path)
(let ((path-regexp (replace-regexp-in-string "[ \t\n\r\f]+" "[ \t\n\r\f]" (regexp-quote path) t t))
(opoint (point))
found
search-end-point
start
end)
;; Save point, move to bol and search for regexp match to a max of 5 lines
;; just to limit searches in large buffers.
(save-excursion
(forward-line 0)
(setq search-end-point (save-excursion (forward-line 5) (point)))
(while (and (not found)
(re-search-forward path-regexp search-end-point t))
;; If match found, ensure that start pos is <= orig point and end pos >
;; orig point and return (start . end).
(setq start (match-beginning 0) end (match-end 0)
found (and (<= start opoint) (>= end opoint)))))
(when found
(list start end)))))