When printing, hide the left and bottom navigation bars and fix the
breadcrumbs to the top of the page to ensure the layout does not get
messed up and no space is wasted on the page.
While other platforms may have a standard compiler that can be hardcoded,
Linux systems may want to switch between gcc and clang, or even a wrapper
script for producing portable static binaries like musl-gcc.
Using the standard $(CC) variable for the compiler name makes it easy to
override the compiler choice without having to modify makefiles.
I've decided to make some adjustments to the platform settings after
trying to build RPM, DEB, and Flatpak packages. The various packaging
tools rely on being able to set their own optimization, debugging, and
hardening flags via the CFLAGS and LDFLAGS environment variables, so this
brings in that capability.
Additionally, building in a Flatpak environment requires explicitly
linking with the -pthread flag. I'm not sure why this was implicit before,
but I've added it to the linker macro, as it doesn't hurt to specify it
explicitly in any case.
In the family of functions that create a text stream from a string (e.g.,
Streams::open_from_ISO_string, Str::new_from_ISO_string) we can mark the
input string as const since it is not supposed to be modified.
I ran into this when experimenting with trying to create a text stream
from the output of "getenv" which is "const char *". I ended up not
needing that, but this seems like a good change nonetheless.
GCC warns about switch statement fall-throughs unless they are annotated
with a /* fall through */ comment. However, it also has a mode that
understands the comment as long as it has the words "fall through"
somewhere in it. If we slightly tweak the wording of this comment, we can
use that mode to avoid the warning.