On 04/12/2018 04:55 AM, Nicolas Goaziou wrote: > Hello, > > stardiviner 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. updated. > >> - (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. Updated. I put "link" and "graphics" into result format group now. This is really good. I have not come up with this. > >> +(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, > I think keep "graphics" result format test is necessary. Even though is is almost same way "link" result format test. Because I have some ideas on graphics result format. Might add in the future. Also it provide straight mean for result format. People can understand it clearly. What do you think? I attached new generated patches.