pawn-lang / compiler

Pawn compiler for SA-MP with bug fixes and new features - runs on Windows, Linux, macOS
Other
303 stars 70 forks source link

Functions `printf()` and `strformat()` fail when printing "%%" #641

Open Daniel-Cortez opened 3 years ago

Daniel-Cortez commented 3 years ago

Issue description:

(The bug described in this issue belongs to the interpreter from this repository (pawnruns), not SA-MP; also, if I understand it correctly, open.mp is also going to use the implementations of format() and printf() from this repo, so I believe this bug report belongs here.)

Printing the percent sign through format specifier %% causes a runtime error.

Minimal complete verifiable example (MCVE):

#include <console>
main()
{
    printf("100%%\n");
}

Output:

100%
Run time error 10: "Native function failed"

Printing % through the %c specifier doesn't cause any errors though:

printf("100%c\n", '%');
100%

Discovered this bug while doing one of the tests for #640.

Workspace Information:

Y-Less commented 3 years ago

That's interesting... We've got a modified version of format/printf in open.mp, but since it didn't touch %% I'll check there. Thanks.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity.