I am no expert, but if they teach STL for C++ why not use that instead which is suppose to be type cast safe, instead of the older printf mechanism. I don&#39;t want to start a war on what the best method is. But just wanted to understand. Or would the cost in time be too high to convert everything?<br>
<br>my 2c<br><br>Theunis<br><br><div><span class="gmail_quote">On 19/02/2008, <b class="gmail_sendername">Klaus Schmidinger</b> &lt;<a href="mailto:Klaus.Schmidinger@cadsoft.de">Klaus.Schmidinger@cadsoft.de</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On 02/19/08 21:26, Ludwig Nussel wrote:<br> &gt; Klaus Schmidinger wrote:<br> &gt;&gt; Apparently there are macros for this, like PRId64 and such.<br> &gt;&gt; But i don&#39;t like having to write something like<br> &gt;&gt;<br>
 &gt;&gt;&nbsp;&nbsp; int64_t n = ...;<br> &gt;&gt;&nbsp;&nbsp; printf(&quot;Some number %&quot; PRId64 &quot;\n&quot;, n);<br> &gt;&gt;<br> &gt;&gt; Don&#39;t know if the gettext mechanisms would be able to handle<br> &gt;&gt;<br> &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tr(&quot;Some number %&quot; PRId64 &quot;\n&quot;)<br>
 &gt;&gt;<br> &gt;&gt; I wonder why there ar no proper format specifiers for this.<br> &gt;&gt; Or are there?<br> &gt;<br> &gt; The gettext info page says:<br> &gt;<br> &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;A similar case is compile time concatenation of strings.&nbsp;&nbsp;The ISO C<br>
 &gt;&gt; 99 include file `&lt;inttypes.h&gt;&#39; contains a macro `PRId64&#39; that can be<br> &gt;&gt; used as a formatting directive for outputting an `int64_t&#39; integer<br> &gt;&gt; through `printf&#39;.&nbsp;&nbsp;It expands to a constant string, usually &quot;d&quot; or &quot;ld&quot;<br>
 &gt;&gt; or &quot;lld&quot; or something like this, depending on the platform.&nbsp;&nbsp;Assume you<br> &gt;&gt; have code like<br> &gt;&gt;<br> &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf (&quot;The amount is %0&quot; PRId64 &quot;\n&quot;, number);<br>
 &gt;&gt;<br> &gt;&gt; The `gettext&#39; tools and library have special support for these<br> &gt;&gt; `&lt;inttypes.h&gt;&#39; macros.&nbsp;&nbsp;You can therefore simply write<br> &gt;&gt;<br> &gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf (gettext (&quot;The amount is %0&quot; PRId64 &quot;\n&quot;), number);<br>
 &gt;&gt;<br> &gt;&gt; The PO file will contain the string &quot;The amount is %0&lt;PRId64&gt;\n&quot;.&nbsp;&nbsp;The<br> &gt;&gt; translators will provide a translation containing &quot;%0&lt;PRId64&gt;&quot; as well,<br> &gt;&gt; and at runtime the `gettext&#39; function&#39;s result will contain the<br>
 &gt;&gt; appropriate constant string, &quot;d&quot; or &quot;ld&quot; or &quot;lld&quot;.<br> &gt;<br> &gt; So translations should still work. The ugliness of those macros remains.<br> <br> <br>I agree. I wonder who came up with this &lt;adjective censored&gt; idea?<br>
 Why would somebody totally break the printf mechanisms and introduce<br> such ugly macros?<br> <br> I really hope we can avoid this insanity in VDR...<br> <br><br> Klaus<br> <br><br> _______________________________________________<br>
 vdr mailing list<br> <a href="mailto:vdr@linuxtv.org">vdr@linuxtv.org</a><br> <a href="http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr">http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr</a><br> </blockquote></div><br>