200 check-ins occurring around 1d5eea6669af52b3.

Cancel the timer to remove the border of the hamburger menu panel after the closing animation, if the menu is closed and immediately reopened by double-clicking the hamburger button.
check-in: c73deeb6 user: florian tags: js-hamburger-menu

Read the CSS transition style to be restored later directly from the (previously initialized) style property, as window.getComputedStyle() seems to return null with Firefox, in this specific case. This fixes a problem introduced with the previous check-in.
check-in: c6735b38 user: florian tags: js-hamburger-menu

Applied a patch by forum user vor0nwe to allow the WYSIWYG wiki page
editor to work in the face of the new CSP restrictions on inline
JavaScript. The patch and explicit license for inclusion in Fossil are
here: https://fossil-scm.org/forum/forumpost/6985a4754e
check-in: 543cdd47 user: wyoung tags: trunk

Removed a period at the end of a sentence ending in a URL to avoid the
need for cleverness in URL handling to get the correct document to open.
(Affects "fossil help grep" output.) Problem noticed by jungleboogie on
the forum, /forumpost/13332107cc.)
check-in: fac3d6b0 user: wyoung tags: trunk

Bolded the card letters in fileformat.wiki and normalized 'X card' vs
'X-card' vs '"X" card' to make it easier to search for a given card type
in the document.
check-in: a1437b24 user: wyoung tags: trunk

Avoided a crash in Fossil > Admin > Notification > Send Announcement
triggered when no subscribers are set up, causing it to fail on Submit
if you tell it to send the announcement to all subscribers. The check
also guards against sending such things before email alerts are set up.
In either case, the "Send Announcmeent" page gives an error pointing you
to the docs, rather than a form that cannot be successfully submitted.
check-in: ea646955 user: wyoung tags: trunk

Checkin [15e1dcd058b5b3e1] had no useful effect: we need to set this
flag at the "make" level, not as a C preprocessor flag. Not backing it
out because the change is harmless as well as useless.
check-in: f08a09ca user: wyoung tags: trunk

Moved the documentation for Fossil's grep implementation out of
src/regexp.c into a new document with greatly-expanded content,
www/grep.md, which is now referenced both from the source code and in
the output for "fossil help grep".
check-in: 2e1775e2 user: wyoung tags: trunk

Merged branch libbind-ns-alternative: I haven't found any platform where
this won't build. It doesn't enable libbind or use libresolv better on
every platform where it might possibly work, but at the very least it
avoids build errors everywhere I've tried it.
check-in: 71c298f3 user: wyoung tags: trunk

Setup and Admin users that are in the subscriber table were getting
email alerts only if they had explicit moderator capabilities set.
Those with bare "s" or "a" weren't getting notified.
check-in: 1d3dd1d9 user: wyoung tags: trunk

Enable the chronological forum display for all users able to read the
forum. Make chronological the default display mode for mobile devices,
as determined by the user-agent string.
check-in: c720327a user: drh tags: trunk

When clicking on a username in the timeline, link to a timeline that shows
*all* events for that user. In other words, override the display-cookie
y= query parameter by providing an explicit y=a query term.
check-in: 6313d0a8 user: drh tags: trunk

Added a check for ns_parserr(), which we currently don't know how to
find on OpenBSD. This also fixes a logic error in auto.def which would
cause the warning that this feature won't be compiled to not be given.
check-in: f99e7632 user: wyoung tags: libbind-ns-alternative

Removed the "Linux" platform test from the DNS MX stuff in src/smtp.c.
You should always test for features, not platforms, and we've now got
the feature tests we need to replace this too-broad platform test.
check-in: 5358fe95 user: wyoung tags: libbind-ns-alternative

Replaced the call to the undocumented ns_name_uncompress() function with
dn_expand(), which is documented, at least on OpenBSD, and it's shorter.
Then made ns_name_uncompress() and __ns_name_uncompress() fallbacks for
this, with suitable autosetup tests for all of it.
check-in: d0fb5ac7 user: wyoung tags: libbind-ns-alternative

The previous checkin on this branch prevented src/smtp.c from both
building and linking because the code previously assumed that it could
only build against libresolv for MX lookups and such on Linux, but the
checkin gave it enough slack to *attempt* to build on macOS. This
checkin prevents that from happening if run on stock macOS, but if you
install libbind via Homebrew, it also opens up the possibilty to biuld
against it for the first time. It's a complicated sequence of checks
due to the way libbind interacts with the stock libresolv. This means
we have yet more reason to want to test this widely before merging it
to trunk.
check-in: 4d9970f6 user: wyoung tags: libbind-ns-alternative

Added autosetup checks for alternative libraries and names for
the res_query() and ns_*() functions that module smtp.c previously
depended on finding in libresolv/glibc. Checking it in on a branch
because it needs multiplatform testing. This version solves the problem
originally reported on the forum by Andy Goth, being that the current
trunk doesn't build on CentOS 5.
check-in: ed3b1e4d user: wyoung tags: libbind-ns-alternative

Replaced the "hasOwnProperty" test for CSS transition support in the
animated hamburger menu JS code with a better test that not only works
on old IE but also on some truly ancient versions of SeaMonkey, Firefox,
Chrome, etc.
check-in: ee074372 user: wyoung tags: trunk

Allow /sitemap to accept the popup query parameter as GET as long as the
incoming request is from the same origin. This is probably sufficient to
prevent revealing URLs to robots. And the use of GET seems to be more in
keeping with the REST idea.
check-in: 2804c71a user: drh tags: trunk

Backout of [115544e97517f447]. Unbreaks the SSL enabled build for MSVC on Windows, due to OpenSSL build system changes that are not accounted for by the check-in. Also, there were crashes with MinGW produced binaries using OpenSSL 1.1.1.
check-in: e0cc10f0 user: mistachkin tags: trunk

Add the "fossil branch current" command. Also rearrange the code and the
help text for the "fossil branch" command so that the various subcommands
are in alphabetical order.
check-in: 3b0a1f4e user: drh tags: trunk

Added colored shading, more padding, and a thick left border to
elements in the default skin. This is based on some custom
styling that Florian Balmer has been doing for quoted text on the forum
lately, but the styling is rather different. It affects all such
elements, not just those in forum posts, since I couldn't see a good
reason to restrict it: it should be equally valuable in wiki and
embedded doc articles as well.
check-in: 2190f86c user: wyoung tags: trunk

Reworked the documentation for email alerts to put all the information
in a single document: a) Moved the "quick email setup" material from the
forums.wiki document into `alerts.md`; b) linked to that moved material
from its original location; c) greatly expanded the material previously
present in the `alerts.md` document; c) merged the `emaildesign.md`
document into `alerts.md`, so we don't have to link out to two separate
documents which previously partially repeated each other. This pass
also fixed a number of grammar errors and broken links.
check-in: 2ef70be2 user: wyoung tags: trunk

add support for TLS 1.3, when compiled with OpenSSL 1.1.1 (LTS). Windows build adapted to use OpenSSL 1.1.1 by default. Still compiles and runs with older OpenSSL as well
check-in: 115544e9 user: jan.nijtmans tags: trunk

Add the new "script" element to skins, accessible as /script.js. The idea
is to put the hamburger menu javascript from the js-hamburger-menu branch
in this script element, rather than inlining it in the footer. But I am not
certain that is the best way to go so this change is parked on a branch
for now.
check-in: e5dbc612 user: drh tags: skin-script

Added a guard on the use of CSS transitions so it falls back to a
non-animated menu pull down if they appear not to be available on the
current browser. Also added a check for the existence of the hamburger
menu item in case the skin admin diked it out, and did a few other minor
tweaks to the footer JS code.
check-in: 5d9a3454 user: wyoung tags: js-hamburger-menu

Timing tweaks: made "hide borders" hack occur about the same time as the
CSS transition finishes, and increased the menu show delay still further
to make it work for Firefox.
check-in: 7bb68023 user: wyoung tags: js-hamburger-menu

Changed hamburger menu drop-down menu from 33% of the screen width to
90%: it works better on small screens, and it allows the sitemap to go
multi-column on wider screens. Also added some right-side padding to
balance the padding added for on the left.
check-in: e76a243d user: wyoung tags: js-hamburger-menu

Removed the wrapping and moved the multicolumn
styling applied to it down to the , since it is already a block
level element, so we don't need a div wrapper on it. And then there's
the real reason, which is that we want the multicolumn styling to work
on the drop-down hamburger menu version as well.
check-in: 0d391a1b user: wyoung tags: js-hamburger-menu

Using CSS transitions to mimic jQuery's slideUp/Down() transitions.
This probably restricts browser compatibility still further above the
XHR issue noted in the earlier checkin on this branch. According to
MDN, we're probably restricted to IE 10+ with this, and maybe not
even that due to not using vendor-specific extensions for the
transitional browser versions.
check-in: 90bd6675 user: wyoung tags: js-hamburger-menu

Converted JS hamburger button menu code to use standard JS only, no
jQuery.
Temporarily lost the animation with this change: I'm checking this in separately to make the difference between this and the jQuery version clearer.
Not sure how portable it is yet; I wouldn't be surprised if it
broke on old IE, since we're using xhr.onload instead of the horrid
mess that is xhr.onreadystatechange.
check-in: 113ba3d9 user: wyoung tags: js-hamburger-menu

Fixed a bug in the onclick handler for the new hamburger button which
allowed the browser to follow our empty 'a href="#"' link. For some
reason, Chrome only did this sometimes, not always, which lead to me
thinking it was some kind of race condition.
check-in: e806e5c4 user: wyoung tags: js-hamburger-menu

The test harness now skips all tests done in the Fossil source repo
checkout directory while there are uncommitted changes because that will
affect the behavior of fossil status, fossil diff, etc., which in turn
tends to create false positives in test harness code that checks for
changes in fossil command output.
Closed-Leaf
check-in: 78ec6838 user: wyoung tags: wrap-run_in_checkout

Partially reverted one of the run_in_checkout replacements in
test/th1.test: it was inside a foreach loop, which means the test for
whether we're inside the Fossil repo checkout was being done 26 times.
This is not only inefficient, it spammed the output with "Skipping test
blabla..." lines. Now doing a manual check outside the loop and
skipping the in-repo tests silently inside the loop.
check-in: 3cb1b4f0 user: wyoung tags: wrap-run_in_checkout

The new test_block_in_checkout proc in tester.tcl was not setting the CODE
and RESULT global variables when it skipped a test, so there was a
chance that a test would end up checking the prior values and throw a
false positive.
check-in: 2aaee484 user: wyoung tags: wrap-run_in_checkout

Extracted the logic that was in tester.tcl's new outside_fossil_repo
proc to the global level which just saves the result to a global
variable so the logic doesn't have to be re-run for each test that
relies on it. The result doesn't change from one call to the next, as
you'd hope for a proc without parameters.
check-in: 1a4e87dc user: wyoung tags: wrap-run_in_checkout

Replaced most of the direct calls to run_in_checkout from within the
test suite with one of two wrapper functions that skip those tests when
you run "make test" outside a Fossil repository checkout directory, such
as from a directory containing an unpacked source release tarball. (The
two remaining direct calls to that proc from test/*.test are preceded by
a check that skips the whole file they're in, since that whole file does
nothing else.) This is being checked in on a branch because it is not
yet thoroughly tested, yet I need the checkpoint.
check-in: 33efa2fa user: wyoung tags: wrap-run_in_checkout

The -quiet flag passed by default to tester.tcl can now be overridden by
passing TESTFLAGS to make. Before, there was no way to set -verbose
this way because "-quiet -verbose" means the same thing as "-quiet".
check-in: 401a4c3d user: wyoung tags: trunk

Cached the result of "$tcl_platform(platform) eq "windows"" in
test/tester.tcl and replaced all of the repetitions of this
expression with a test of the variable.
check-in: 2e4143aa user: wyoung tags: trunk

Explained "Why can't we use Jim Tcl for the test suite?" in the auto.def
comment above the check for a suitable tclsh version. Basically, I
tried it and then documented a few of the resulting failures.
check-in: 91eaef61 user: wyoung tags: tclsh-macos

After autosetup checks for the existence of tclsh in the PATH, it now
checks whether it's at least version 8.6, because macOS is still
shipping 8.5, despite it being nearly 6 years old. If we find an old
tclsh, try to find the Homebrew tcl-tk package, and use that version
instead. This is not a macOS or Homebrew specific change in principle:
we can extend this logic for other systems to find their best Tcl/Tk
version, as needed. On systems where autosetup is used, this only affects "make test".
There are other uses of tclsh in this tree which may also benefit from
our PATH discoveries, but this checkin doesn't update those. This checkin also doesn't try to address similar problems on other
platforms, such as the "TCLSH = tclsh" line in Makefile.mingw.
check-in: e449cb09 user: wyoung tags: tclsh-macos

Noted the responsive design changes to the default skin in the change
log. Expanded on the forum and alerts feature items. Changed
all the past-tense verbs to present tense to match the rest of the items
and the prevailing style in past change log entries.
check-in: 6f87b4af user: wyoung tags: trunk

Added "overflow-y: hidden;" to the CSS for the default skin to prevent
some browsers (Chrome, Firefox, and Safari on macOS, at least) from
adding a vertical scroll bar to the navbar. This was only necesasry on
this skin because of the recently-added "overflow-x: auto" style, which
tells the browser to clip or horizontally-scroll the navbar if the
screen width isn't sufficient to show the whole thing; previously in
this skin, and currently in all other skins, this condition causes the
navbar to wrap to the next line, which looks particularly bad on the
default skin. I believe this then made these browsers calculate some
extra space for a possible horizontal scroll bar, which then ran the
layout engine out of space, so it included the vertical bar just in
case. This may be macOS specific, due to the scroll bar hiding behavior
introduced several OS release back.
check-in: e8783b9a user: wyoung tags: trunk

Add 1em of left padding to multi-column unordered lists. This extra
padding is necessary to get Chrome and Edge to display the bullets on
second and subsequent columns.
check-in: c429bb79 user: drh tags: trunk

Try to start a new write transaction before updating the VCACHE table. This
will hopefully prevent occasional "database is locked" errors when browsing
the documentation.
check-in: 03979823 user: drh tags: trunk

Applied the new CSP nonce to the <script> tags in the header for the
Enhanced Original, Eagle, and Xekri skins, else the clock in the upper
right breaks and Chrome gives an error about the CSP violation.
Closed-Leaf
check-in: b9d86ed2 user: wyoung tags: csp-nonce

Coloring the hyperlinks to the newest forum posts from /forum with a
dimmer and less saturated version of the normal hyperlink color in the
default skin, to test the new div.forumPosts selector. Other skins to
be updated later if this is approved.
check-in: 86ff84da user: wyoung tags: trunk

Added new CSS class forumPosts to the containing the list of posts
on the /forum page so that skins can target elements of this list
differently than others. One immediate use for this is styling read
threads differently via a:visited styling. Currently, only one of the
stock skins ships with an unconditional a:visited change, so that all
links show in the same color regardless of their state. That's fine in
most areas of the UI, but in the forum, a skin developer may want
something special, so we need a way to mark them differently. This
was already using the broadly-used "fileage" style, but we don't
want changes to a:visited and such to affect all other users of fileage,
so we need a unique style to this page.
check-in: 77782490 user: wyoung tags: trunk