It's not really about the Arduino IDE version. It's about the compilation toolchain version. This code was written for an old version of the AVR toolchain. If you were to use that old toolchain with the latest Arduino IDE version, the prog_char typedef would be treated just as it was when the code was written.
The reason it is somewhat related to the IDE version is because the Arduino IDE comes with a bundled copy of the Arduino AVR Boards platform, including its AVR toolchain. The latest version of that platform is included with each Arduino IDE release, so there is a correlation between the AVR toolchain typically in use and the Arduino IDE version. However, it is possible to install other versions of the platform, or other platforms entirely, and when you do that the bundled copy will no longer be in use. So there isn't really such a strong connection between the two things.
That would explain a lot. I'll download that and see where I end up.
There is NO way I'd ever have worked that out on my own. Many, many thanks. I'll try the Platform IO later and report back. Thanks again for your persistence and help.