Mehmet Tekman <mtekma...@gmail.com> writes:

>> 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

This is just implementation detail.
As a general good practice, destructive list manipulation commands
should follow (setq foo (command foo)) pattern.

>> 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?

We already have `org-babel-balanced-split'. Your patch will be a code
duplication.

Also, your patch will not handle
#+begin_src lang :tangle "tangle yes file"
vs.
#+begin_src lang :tangle tangle yes file

>> > -    (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'

The new merging behavior does not have be used just yet.
We first implement the capability to handle exclusive groups with :any
and later, in another patch, make use of the new capability.
Does it make sense?

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

Reply via email to