Subject: bug#64089: 30.0.50; `ldap-search' errors out with `wrong-type-argument listp' when called WITHDN == t

From: Eli Zaretskii <[email-masked]>
Date: Mon, 19 Jun 2023 20:24:58 +0300

> From: Filipp Gunbin <[email-masked]>
> Cc: [email-masked],  [email-masked],
>   [email-masked]
> Date: Mon, 19 Jun 2023 17:27:05 +0300
> 
> On 18/06/2023 08:22 +0300, Eli Zaretskii wrote:
> 
> >> Date: Sun, 18 Jun 2023 02:14:31 +0300
> >> From: "Filipp Gunbin" <[email-masked]>
> >> Cc: [email-masked], [email-masked]
> >> 
> >> Thanks, but the problem is that
> >> 
> >> - the code before the fix prepended dn as string (and it's not
> >> totally broken - you can skip attribute translation via
> >> var/defcustom, in which case the error should not be triggered)
> >> - the fix on emacs-29 now prepends it as cons cell
> >> - my change on master will again use string form
> >> 
> >> So I'd prefer that we leave that unfixed on emacs-29 instead of
> >> creating this mess.. Or correct cons cell -> string, if it's worth
> >> the trouble.
> >
> > Sorry, I don't understand why we'd like to leave it unfixed.  Please
> > elaborate.  In particular, it is entirely legitimate for master to
> > have a different solution.
> 
> Hi Eli, this is what I meant:
> 
> Previously ldap-search withdn=t returned:
> 
> (("<dn value>" ("mail" "...")))
> 
> But now it will return:
> 
> ((("dn" "<dn value>") ("mail" "...")))

In which situations will the current code cause trouble, where the
original code didn't?