Re: Use (f)puts instead of (f)printf when possible.

Pascal Bourguignon <[email protected]>
Newsgroups gmane.lisp.clisp.devel
Message-ID <[email protected]>
> On 25 Aug 2017, at 08:50, Bruno Haible <[email protected]> wrote:
> 
> Pascal Bourguignon wrote:
>> The standard way to avoid it is to use a literal format string!
>> 
>>    fprintf(stderr,”%s”,GETTEXTL(“Warning: “));
> 
> Indeed gcc recognizes "%s" (and "%c") as special cases of format strings
> and optimizes these cases. But I still find such code harder to read than
> 
>      fprint(stderr,GETTEXTL(“Warning: “));


The point is that this is some external data, obtained at run-time from files that are not necessarily under the control of the program (eg. some distributions package the localisable file separately).

Therefore if you insist on avoiding “%s” you should, to keep the program correct and secure, do the following:

     fprint(stderr,escape_print_directives(GETTEXTL(“Warning: “)));

and suddenly, using “%s” looks way simpler.


-- 
__Pascal J. Bourguignon__

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.