* Make the title the default font and bold like other screen savers
* Don't center the copyright text, left align
* Put spacing strut between title/copyright and the rest
* Put the pop-up menus in a grid, make them variable width
* Add some more glue so items grow apart more nicely
* Some NULL checks were missing, but on 32-bit machines recover will still fail on my big data partition as it goes out of memory.
* Pack structures that are mapped to on-disk data, so when using a 64-bit compiler, no padding is inserted. Hopefully with 8GB of RAM I have enough to recover my data.
* format strings
* wrong parameters passed to Inode::CopyTo
The 64-bit version does not detect any inodes on my disk, whereas the
32-bit version does. So, more work is needed.
The assembly I converted this from didn't look hand-generated, which
probably explains why it was so convoluted.
No functional change intended (the generated code will change, though.)
I don't know why this was in there -- possibly for older machines
that couldn't do their fullscreen resolution at 60fps? Which doesn't
make a lot of sense, since there's a frame-limiting option too.
* Make getaddrinfo() and friends thread-safe by using the thread-safe
versions of the res functions.
* NetBSD offers two versions of the res functions: one in res_state.c
from the netresolv directory, defined as weak symbols. It is the
legacy version and only for single-threaded applications.
A thread-safe version of the functions is in res_state.c inside
their libpthread directory. An application that uses pthreads on
NetBSD will then use the non-weak symbols from the pthreads
library.
* On Haiku, the thread-safe version is now always used. The
res_state.c is taken from NetBSD's libpthread directory, and then
only struct _nres from the other file is added to it.
Please keep this in mind for future updates of netresolv, do not
accidentally replace it with the single-threaded version.
* This e.g. fixes WebPositive just hanging when opening websites
(even in situations where no IPv6-related problems apply), waiting
forever to resolve names.
The removal of the vnode happens later than the actual unlink. As part
of the unlink, the vnode cache is already updated to mark the unlinked
directory invalid. This means its entry in the directory list needs to
be removed as well. Otherwise, if a directory list entry is looked up
in the time between unlink and remove_vnode, the assertion which checks
the validity of the directory list entries would fail.
Directory entries are cached using the block cache, so the cached
blocks need to be discarded when directories are removed/shrunk.
Otherwise freed directory blocks that were reused for file data would
later be clobbered when the block cache was flushed.
The forced cache sync for removable media hid the problem for these
devices. It was easily triggered on non-removable media however.
There's no real need to distinguish between first/middle/last parts of
the file and much of the initialization can be done simpler.
This also checks for overflows when truncating the requested length. On
64 bit platforms this would always happen due to the kernel file map
code requesting (size_t)-1 (i.e. unlimited) extents. This lead to the
file end being reached when building the map from a position unequal 0,
which would happen for files fragmented enough to need more than the
default of 8 supplied vectors. An IO error was returned in that case,
rendering the file partially unreadable.
* Drop lib/edit and matching bsd header
* Convert Debugger to libedit build package
* Should solve problems with libedit consumers
not defining _BSD_SOURCE
* Progress on #10267