Resurrect the dialog progress view -- disconnected from the build since
the LGPL dialog(3) removal -- as libbsdpv/bsdpv, rooted in bsddialog(3),
with the public API renamed dpv_* to bsdpv_* to mark a clean break from
the code that required GNU dialog.
libdpv depended on dlg_gauge_reallocate(), which bsddialog(3) does not
provide; rather than grow bsddialog, the port adopts the idiom bsddialog
itself uses in bsddialog_progressview() and bsddialog_mixedgauge():
recreate the gauge with bsddialog_gauge() on each update and let curses
compute the minimal screen delta. Terminal styling that previously reached
into dialog's color table now derives from bsddialog_get_theme() and
bsddialog_color_attrs(). The DPV_DISPLAY_DIALOG and DPV_DISPLAY_XDIALOG
spawn modes are removed: the former exec'd the GPL utility this change
exists to shed, and the latter served a long-dead X11 port. libfigpar
stays disconnected because its only consumer here was .dialogrc parsing
and bsddialog has no .dialogrc support; the one general-purpose routine
libdpv used from it, strexpandnl(), is absorbed as a private utility.
Both new components are PRIVATELIB, matching libbsddialog, so no
external ABI is promised.
Three latent bugs inherited from dpv are fixed in the port: the
status-line formats given with -i/-I were unconditionally clobbered
after option parsing (and the many-files default was assigned the
solo-file format); the /dev/stdin descriptor heuristic was applied even
when stdin was a pipe, driving the input descriptor negative when -o or
-x was in use; and a transfer that ended between display updates could
exit without rendering its final Done/Fail state.
While here, fix creation of $INCDIR/private/bsdpv/ directory by
modifying share/mk/bsd.incs.mk