Hello, stardiviner <numbch...@gmail.com> writes:
> This patch try to support following way: > > #+begin_src sh :results link :file "/tmp/test.txt" > echo "hello" > /tmp/test.txt > echo "test" > #+end_src > > #+RESULTS: > [[file:/tmp/test.txt]] > > Because: > > - ~org-babel-execute-src-block~ > - ~(org-babel-get-src-block-info)~ > - (let* ((info .. (apply #'org-babel-merge-params ...)))) > - ~org-babel-merge-params~ > - [ ] *because* code ~(`(,(or :file :file-ext) . ,value) ...)~ > lines logic in function ~org-babel-get-src-block-info~, it > merge "file" ~:results~, so override params plist :results > value ~link~. > - [ ] So I put ~link~ and ~graphics~ "~:results~" type into a > separate group in constant > ~org-babel-common-header-args-w-values~. > > If anybody has better way, please improve my code. IIRC, there is no technical difference between ":results graphics" and ":results link". So, what about simply stating that `link' and `graphics' are equivalent, like, e.g., `table' and `vector' or `scalar' and `verbatim'? Note that `graphics' results are not properly documented in the current manual. They should probably go in "Working with Source Code/Results of Evaluation/Format" section. > - (results . ((file list vector table scalar verbatim) > + (results . ( > + ;; separate group to avoid been override by "file" > + ;; :results in `org-babel-merge-params'. > + (link) `link' is not an output type. `graphics' is not defined here either. > +(ert-deftest test-ob/result-file-link-type-header-argument () > + "Ensure that the result is a link to a file. > +The file is just a link to :file value. Inhibit non-empty result write to > :file." > + (org-test-with-temp-text "#+begin_src shell :results value link :file > \"/tmp/test.txt\" > +echo \"hello\" > /tmp/test.txt > +echo \"test\" > +#+end_src" > + (org-babel-execute-src-block) > + (goto-char (point-min)) > + (should (search-forward "[[file:/tmp/test.txt]]" nil nil)) > + (should (with-temp-buffer > + (insert-file-contents "/tmp/test.txt") > + (string= > + "hello\n" > + (buffer-substring-no-properties (point-min) (point-max))))))) Note that this test already passes when "link" is substituted with "graphics". Regards, -- Nicolas Goaziou