Thanks for the review! > setq unexplained-params (delete-dups unexplained-params))
The help mentions that it stores the result in the list, and it looks like it works #+BEGIN_SRC elisp (let ((x '(1 2 1 2 3))) (delete-dups x) x) #+END_SRC > > What we can do it make `org-babel-read' assign a text property to the > resulting string when it is a string with quotes: > > (org-babel-read "my file with quotes") ; => "my file with quotes" > (org-babel-read "\"my file with quotes\"") ; => #("my file with quotes" 0 19 > (org-babel-quote t)) > > Then, we can later use this information in `org-babel-merge-params'. > We will not call `split-string', when 'org-babel-quote text property is > present. > Also, `split-string' won't work when we have something like > > "yes \"my file with quotes\"" > > Instead, we should use > (mapcar #'org-babel-read (org-babel-balanced-split "yes \"my file with > quotes\"" ?\s)) See my next patch, it implements a quote aware string splitting function which is used just for the tangle headers. Is my implementation there enough, without having to use text properties? > > - (tangle . ((tangle yes no :any))) > > + (tangle . ((tangle yes no :any) > > + (import export skip sync))) > > We should not yet change this before the code using the new tangle > values is in place. This is a big source of confusion for me, since I don't really know how to implement this extra merging behaviour *without* first having tangle headers implemented, since no other element in `org-babel-common-header-args-w-values' has multiple exclusion groups where at least one has `:any'