Age | Commit message (Collapse) | Author |
|
Instead of shadowing the one from AbstractView.
|
|
We can just let AbstractView take care of this. :^)
|
|
|
|
|
|
|
|
That feature was really only useful for Compress::DeflateDecompressor
but that is now using CircularDuplexBuffer instead.
|
|
|
|
Calling set_cursor() with the same cursor index is not necessarily
a no-op! For example, we may want to toggle the selection.
|
|
|
|
For some reason, this stops it from adding __cxa_guard_acquire/release
calls around its initialization. This unbreaks building ports.
|
|
This is virtual in AbstractView so let's not shadow it with an IconView
specific variant.
|
|
This makes it possible to manipulate the cursor programmatically via
the AbstractView interface.
|
|
|
|
|
|
Patch from Anonymous.
|
|
This fixes the following (and more!):
```sh
$ /bin/dis<tab><tab><backspace><backspace><backspace><backspace><tab>
$ /bink_benchmark
```
|
|
|
|
|
|
This patch just applies a suggestion, making the code more readable.
|
|
|
|
"self" is a way to refer to the global object that will work in both
a window context and a web worker context.
"frames" apparently used to return a list of frame objects according
to MDN, but it now just returns the window object.
|
|
|
|
|
|
|
|
|
|
|
|
features
The exit condition for the loop was sizeof(m_features) * 8,
which was 32. Presumably this was supposed to mean 32 bits, but it
actually made it stop as soon as it reached the 6th bit.
Also add detection for more SIMD CPU features.
|
|
|
|
|
|
Adds a GIF test suite HTML page that contains a selection of test
GIF images and reference PNGs for each frame
Adds a link to the GIF test suite on welcome.html
|
|
Also adds FIXME for VirtualBox.
|
|
|
|
VB appears deprecated in favor of HackStudio, but until it's
officially gone-no app left behind!
|
|
|
|
The whole thing with `pro url > filename` was getting annoying, so let's
just have it support Content-Disposition and guessing from the URL.
|
|
Fully expands status bars when maximized and prevents maximized
windows from being erroneously resized.
|
|
|
|
|
|
Leftovers from the time when the system used raw icons instead of PNGs.
|
|
Use them to set the transmit timestamp on the outgoing packet and
to print the returned timestamps as ISO 8601 strings.
|
|
This only queries a single NTP server, only does a point-to-point
request, doens't do any filtering, doesn't display the response
in any useful format, and is generally very bare-bones.
But maybe, over time it can learn to query more servers, do
filtering, run as a service that keeps state over time to
improve filtering, adjust system time, and maybe learn to
run as an NTP server then.
|
|
|
|
|
|
And also mark strlcpy() and strlcat() with __attribute__((warn_unused_result)).
Since our code is warning-free, this ensures we never misuse those functions.
(Or are very sure about doing it when turning off the warning for a particular
piece of code.)
|
|
|
|
In case we know exactly how many bytes we're copying (and not copying a string
while limiting its length to that of a buffer), memcpy() is a more appropriate
function to call.
Also, fix null-terminating the %c pointer.
|
|
|
|
This way, we'd get compile-time errors if the address was too long for the buffer.
|
|
|
|
This is a strcpy()-like method with actually sane semantics:
* It accepts a non-empty buffer along with its size in bytes.
* It copies as much of the string as fits into the buffer.
* It always null-terminates the result.
* It returns, as a non-discardable boolean, whether the whole string has been
copied.
Intended usage looks like this:
bool fits = string.copy_characters_to_buffer(buffer, sizeof(buffer));
and then either
if (!fits) {
fprintf(stderr, "The name does not fit!!11");
return nullptr;
}
or, if you're sure the buffer is large enough,
// I'm totally sure it fits because [reasons go here].
ASSERT(fits);
or if you're feeling extremely adventurous,
(void)fits;
but don't do that, please.
|