mungeURL worries me a bit -- especially that it allows & without escaping. It
would be better not to use system at all.

actionLaunch should check with the user when opening another file.

actionLaunch can execute arbitrary commands without prompting if launchCommand
is set (e.g. if the params are "`foo`").

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=977182
- Release process?
- How to handle unrecognised config file options -- error or warn?

Things to add to README:
- General philosophy
- Supported Poppler versions
- Compiler requirement (C++11)
  - It's actually C++14 (for make_unique) at the moment...

Check the formatting codes are correct (e.g. error() calls).

Check Gentoo patches -- as of 2020 xpdf 3 isn't in the tree any more.

Check Debian bugs:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=xpdf;dist=unstable

PDFCore's doc pointer should be a std::unique_ptr. (One example of many!)

Maybe collapse XPDFCore and PDFCore together, since there are no other
subclasses.

XPDFViewer::cmdFullScreenMode and cmdWindowedMode are nearly identical and
could share a helper function.

Bind the back/forward mouse buttons as in web browsers.

The MULTITHREADED code in GlobalParams could be redone using std::unique_lock,
to match Poppler. (Or removed, since it's not used anyway. Removing it would
mean we could return a const reference from  XPDFParams::getPSFile, etc.)

Add "Copy selection" and, if over a link, "Copy URL" to the context menu.
(Suggested by jidanni in Debian #547090.)

Display an error dialog when opening a file fails, both from the command line
(if an option is given, e.g. when xpdf is being invoked from a web browser) and
from the Open dialog. (Suggested by Vincent Lefevre in Debian #931010.)

Rework PDFHistory: use std::vector rather than an array?

Add PDFCore::getDocFileName() which converts to std::string?

Work out what's going on with PDFCoreTile::bitmap's ownership -- it's treated
as an owning pointer when it's deleted but not in redrawCbk.

## Debian patch status

https://salsa.debian.org/debian/xpdf/-/blob/master/debian/patches/series
Last updated 2020-12-22 - remember to update README as well.

/ = included
X = not needed
D = did something equivalent but different

/ 01-manpage.patch
/ 02-permissions.patch

  # various bug fies
/ fix-408502.patch
/ fix-458468.patch
/ fix-512381.patch
/ fix-580495.patch
/ fix-627426.patch

  # fixes for build-hardening compiler warnings
/ hardening-invalid-conversions.patch
/ hardening-system-calls.patch
/ hardening-pointer-casting.patch

  # patches to use poppler
/ poppler-copyright.patch
/ poppler-textpage.patch
/ poppler-filespecname.patch
/ poppler-findtext.patch
/ poppler-startdoc.patch
/ poppler-xpdfparams.patch
/ poppler-startpage.patch

  # poppler patches added for xpdf 3.04
D poppler-textoutputdev.patch [as part of 3.04]
D poppler-linkactionkind.patch [as part of 3.04, although I kept actionHide]

  # misc fixes
/ fix-737989.patch
D poppler-manpage.patch [I removed the options instead]
/ fix-757053.patch
/ fix-868498.patch
D fix-850163.patch [as part of my params rewrite]
/ keybindings.patch
/ manpage-formatting.patch
D poppler-0.61.patch [I fixed MovieAction properly... I think!]
D poppler-0.62.patch
D poppler-0.68.patch
D poppler-0.69.patch
D poppler-0.71.patch [this one is broken and gets fixed later]
D poppler-0.74.patch [this changes lots of code that gets removed anyway]
D poppler-0.76.patch

  # liftet from xpopple
/ xpopple-globalParams-unique_ptr.patch
/ xpopple-remove-config-not-supported.patch
/ xpopple-remove-getModRegion
/ xpopple-getText-EOL.patch
/ xpopple-link-find.patch
/ xpopple-getTextEncodeingName.patch
/ xpopple-UnicodeMap-simplified.patch
/ xpopple-findDest.patch
/ xpopple-link-methods-std-string.patch

  # misc
X poppler-0.71_modifications_945188.patch [fixes bugs in 0.71 patch above]
/ 973573-manpage-typo.patch

## Debian bug status

#606885 - Password dialog doesn't work
  Fixed.

#968354 - Viewing an empty file crashes
  Fixed.
