On Friday, 26 May 2023 at 13:18:15 UTC, Steven Schveighoffer
wrote:
[...]
This worked for me:
```d
char[4] fourC(string s)
{
if(s.length >= 4)
return s[0 .. 4];
Silent truncation? Non-ASCII chars?
char[4] res = 0;
According to [1], [2] or [3] that should read
```
char[4] res = ' ';
```
res[0 .. s.length] = s;
return res;
}
```
[1] Multimedia Programming Interface and Data Specifications 1.0
IBM Corporation and Microsoft Corporation
August 1991, p. 11
https://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Docs/riffmci.pdf
[2] http://ffmpeg.org/doxygen/trunk/raw_8c_source.html#l00050
[3] https://en.wikipedia.org/wiki/FourCC
"The byte sequence is usually restricted to ASCII printable
characters, with space characters reserved for padding shorter
sequences. [...] Some FourCCs however, do contain non-printable
characters, and are not human-readable without special formatting
for display; for example, 10bit Y'CbCr 4:2:2 video can have a
FourCC of ('Y', '3', 10, 10) which ffmpeg displays as rawvideo
(Y3[10] [10] / 0x0A0A3359), yuv422p10le."