>> We have more: PIO_printf, PIO_eprintf, Parrot_printf, Parrot_eprintf >> and Parrot_fprintf. The Parrot_ ones are a wrapper around the PIO_s, >> with added check for extern usage, and that does not need #include io >> files. > > Yes, to be more accurate, we have a whole range of PIO functions. But, the > fact that they're used so rarely makes me doubt whether they're particularly > reliable.
>From other perspective: if they are not used, we never be sure that they are reliable. If we access to string internals to avoid his usage, we are actively making strings less reliable. And no wonder that %Ss is rarely used, a lot of people doesn't even know that it exists. And if they never see it used in place of code where will be the correct solution, we can hardly blame them. By the way, as mentioned in other thread there is a problem with plain %s in parrot printf-alike functions. It does not handle well a NULL c string. This must be fixed. And before, given the current implementation, the behavior of string_make and his successor in the strings pdd, when receiving a NULL c string must be documented and implemented, or we risk to plague the code base with lots of more workarounds. -- Salu2