Add switch: -r/--read-only, to not write to the database or cache files.
Do no disk writes except for user requests (save image/log/etc.).
This is to make testing/debugging easier.
Note that any data acquired in this mode is lost on exit.
Add note to mainframe titles.
Add a notice to mainframe titles in debug builds.
Loosely implement subset of C++14 observer_ptr proposal.
This is a smart pointer, without the smartness.
This is intended to be a drop-in replacement for shared_ptr,
when actual reference counting/lifetime management is not needed.
Use observer_ptr instead of shared_ptr for all userdatacontainer pointers
except alldata::userconts, where userdatacontainers are stored in place.
No userdatacontainer objects are ever deleted, and so there is no point
incurring the overhead of tracking them. This reduces the need to do
large numbers of expensive interlocked operations at start-up.
Use a typedef for the pointer type, to make it easier to use a different
pointer type later.
Use observer_ptr instead of shared_ptr for all tweet pointers
except alldata::tweetobjs, which stores tweets in place.
Tweets are not currently deleted, and hence there is no point
using shared_ptr.
Use a typedef for the pointer type, to make it easier to use a
different pointer type later.
Fix some tweet members not being zero-initialised.
Add -Wextra and -Wshadow to build flags.
Remove a number of instances of variable shadowing.
Add warning exceptions for utf8proc.c
Ensure that some userdatacontainer members are zero-initialised.