Hello, Puneeth Chaganti <puncha...@gmail.com> writes:
> Here is a patch that works for the case you describe. Thank you. Some comments follow. > + (org-id-show id 'org-pop-to-buffer-same-window)) (org-id-show id #'org-pop-to-buffer-same-window) > +(defun org-id-show (id cmd) > + "Show an entry with id ID by buffer-switching using CMD." You should explain what is CMD. If it is a function, you should spell out its signature. > + (let ((m (org-id-find id 'marker))) > + (unless m > + (error "Cannot find entry with ID \"%s\"" id)) > + (if (not (equal (current-buffer) (marker-buffer m))) > + (funcall cmd (marker-buffer m))) (unless (eq (current-buffer) (marker-buffer m)) ...) > + (when (and (org-buffer-narrowed-p) > + (let ((pos (marker-position m))) > + (or (< pos (point-min)) > + (> pos (point-max))))) > + (widen)) `org-buffer-narrowed-p' is not useful here since you check boundaries right after its call. (when (let ((pos (marker-position m))) (or (< pos (point-min)) (> pos (point-max)))) (widen)) > + (goto-char m) > + (move-marker m nil) > + (org-show-context))) I think this should be (org-show-context 'link-search) according to `org-show-context-detail'. > ;; id link type > > ;; Calling the following function is hard-coded into `org-store-link', > @@ -659,25 +669,15 @@ optional argument MARKERP, return the position as a new > marker." > (defun org-id-open (id) > "Go to the entry with id ID." > (org-mark-ring-push) > - (let ((m (org-id-find id 'marker)) > - cmd) > - (unless m > - (error "Cannot find entry with ID \"%s\"" id)) > - ;; Use a buffer-switching command in analogy to finding files > - (setq cmd > - (or > - (cdr > - (assq > - (cdr (assq 'file org-link-frame-setup)) > - '((find-file . switch-to-buffer) > - (find-file-other-window . switch-to-buffer-other-window) > - (find-file-other-frame . switch-to-buffer-other-frame)))) > - 'switch-to-buffer-other-window)) > - (if (not (equal (current-buffer) (marker-buffer m))) > - (funcall cmd (marker-buffer m))) > - (goto-char m) > - (move-marker m nil) > - (org-show-context))) > + (let ((cmd (or > + (cdr > + (assq > + (cdr (assq 'file org-link-frame-setup)) > + '((find-file . switch-to-buffer) > + (find-file-other-window . switch-to-buffer-other-window) > + (find-file-other-frame . switch-to-buffer-other-frame)))) > + 'switch-to-buffer-other-window))) #'switch-to-buffer-other-window Regards, -- Nicolas Goaziou