On Mon, 22 Dec 2025 23:07:19 GMT, Phil Race <[email protected]> wrote:
>>> I don't think it is what Alexander meant. >> >> Damon understood me correctly. That's what I meant. >> https://github.com/openjdk/jdk/pull/28949#discussion_r2640052922 >> >>> I am not sure doing the above would even resolve the complaint because >>> there's still no format string. >> >> It should. >> >> before: >> ```c++ >> fprintf(origFile, str); // using `str` variable as format string > parfait >> complains >> >> after: >> >> ```c++ >> fprintf(origFile, >> "assistive_technologies=com.sun.java.accessibility.AccessBridge\n" >> "screen_magnifier_present=true\n"); >> >> Here, we provide a format string(without the format specifiers), not the >> variable. >> It's essentially identical to the code on line 301, `printf("Unable to get >> version info.\n");`, parfait didn't complain about that line. >> >>> if you really want to use the automatic concatenation, but I had to check >>> to be sure it would work so .. >> >> It is in the standard, so I don't see any reason not to use it: >> https://en.cppreference.com/w/cpp/language/string_literal.html#Concatenation >> >> So, in my opinion, the variable str is unnecessary here. >> >> --- >>> just in case the string literal is updated with anything that can be >>> misinterpreted as a specifier. >> >> I suppose it should be detected during the review process for such a change. >> Currently, there are no format specifiers being used. > > OK fair enough. Why can't we use [`fputs`](https://en.cppreference.com/w/c/io/fputs.html)? fputs("assistive_technologies=com.sun.java.accessibility.AccessBridge\n" "screen_magnifier_present=true\n", origFile); No format strings avoid any possible ambiguity and it's much faster as the string is output verbatim without any additional logic to parse a format string and to process the arguments. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/28949#discussion_r2643826617
