Use `extern` where appropriate so that we can remove `-fcommon`
on macOS and others. On macOS, `-fcommon` generates a number of
linker warnings.
I've tested building on macOS, Linux, FreeBSD, NetBSD, OpenBSD
and illumos. I am not in a position to test on AIX or other
more esoteric platforms, however.
Misleading indentation warnings are actually useful, as they
will occasionally reveal actual bugs (cf the apple `goto fail`
security bug from a few years ago). Newer versions of clang
(at least) are more aggressive about warnings in this regard,
which has exposed a few warnings that are annoying. However,
they are easy to address.
Set defaults for `awk` and `egrep`, instead of
setting things multiple times when specializing on
OS, and using a default in a `case` statement.
This is cleaner and less error-prone.
Mostly turning the crank on fixing simple warnings: arrays, for
instance, can never be nil. A couple of pointers should have been
initialized to `nil` before being tested.
Some logic in `troff` was simplified: basically, an `if` statement had
a condition that must have always been true if that section of code
were being executed at all.
Introduce a new variable set in $PLAN9/config:
$egrep, which is conditionally set to either
`egrep` or `grep -E`, based on platform, and use
this when we want to invoke `egrep`.
This works around the endless warnings from GNU
grep stating that `egrep` is deprecated in favor
of `grep -E`, when run on e.g. Linux.
This bug is an intermittent annoyance and does not seem likely to be
fixed soon. It means that every so often my acme becomes unusable
because it behaves as if a mouse button is permanently set.
Avoid that issue by keeping track of mouse button state directly.
While we're about it, fix another annoying issue: under Linux the
FocusOut event reset the kstate field but not the kbuttons field,
meaning that the buttons state could inappropriately persist. This
happened occasionally by accident, but was easy to reproduce: with the
mouse button held down, drag outside the window and click Alt-Tab to
switch away from the window. We see a KeyDown event followed by FocusOut
but no KeyUp event.
Change-Id: I3708316478c80c41806d7157ae9929c6cd84b662
According to web.archive.org this link is dead since 2012/2013. According to
original issue (http://codereview.appspot.com/4251044) that translation could be
a machine translation.
This tells bin/man to set the register L to very high to avoid pagination
and updates tmac/tmac.an to use that value, if it's set, to set the page
length. This is per Plan 9's rc/bin/man and sys/lib/tmac/tmac.an.
Basic configuration which builds p9p on latest Ubuntu & macOS.
Skipped on adding more operating systems as build would hold up
waiting for runners, whereas with -latest targets, build starts
immediately.
Supported runners can be found on
https://docs.github.com/en/actions/using-jobs/choosing-the-runner-for-a-job
Instead of only saving a window's currently displayed font's name to the
dump file, have Acme's Dump command save that window's combined low DPI
and high DPI font names when both are available.
See 9fans/plan9port#630
Previously the vertical bar in tick was always black; fine if you
use the standard black-on-white for everything, but any attempt to
add a dark mode ran into trouble with the tick being half hard-coded
black, half the new text color.