<p>Hi Remi,</p>
<p>On 16/08/05 14:53, Rémi Denis-Courmont wrote:</p>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;color:#500050">
<pre><code> Le 2016-08-05 14:20, Filip Roséen a écrit :</code></pre>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;color:#500050">
<pre><code>#define EMPTY_STR(str) (!str || !*str)</code></pre>
</blockquote>
<pre><code> In many (but not all) sites, it is cargo cult. Either the string pointer
 cannot NULL, or the string cannot be empty.

 I am not aware of a project-wide position.</code></pre>
</blockquote>
<p>I would be happy to write up some guidelines regarding similar issues and create a page on the wiki and/or in the documentation, but given that I have not been around long enough (compared to others with more experience working on the codebase) it might be unwise for me to be the author of such piece.</p>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;color:#500050">
<pre><code> The macro lacks expansion safety, in several ways. And its name is confusingly wrong: A
 NULL string pointer is not a string, and thus not an empty string. The distinction
 sometimes does matter.</code></pre>
</blockquote>
<p>I agree on all points raised above, which leads to follow-up questions:</p>
<ul>
<li>would it be appropriate to completely deprecate the macro (and replace usage of such), or;</li>
<li>should we fix it in a way that could make the intention more clear, or;</li>
<li>let it be and intentionally look the other way when such is used/not used?</li>
</ul>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;color:#500050">
<pre><code> Therefore, I dislike it and avoid it.</code></pre>
</blockquote>