The atomic inlines were not implemented in a C89 safe way:
* Use of "static inline" not allowed, but static __inline__ is
* __inline__ is a GCC extension, but these are already in a __GNUC__
block (other compilers use a non-inline version)
* also fix a C++ style comment
* The code was assuming "Attachments" would be the longer word used, but
this doesn't always work outside of english. Actually search for the
longest string in the translations.
* Fixes#5285.
* It would be even better to convert the whole window to use layouts,
but this makes it useable until that's done.
Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>
* Subsequent calls to listen on an already-listening socket can resize
the backlog.
* While not explicitly spelled out by POSIX, this behaviour is
consistent with FreeBSD and Linux.
Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>
* Fixes#11760.
* Bug made visible by the changes to fix private driver settings. Before
the change, the settings were most often leaked, so there was no
use-after-free.
...with notes from PulkoMandy and Axel. Also added author credits.
Class documentation is moved to the appropriate method and then \sa
is used to point to the documentation so it is only documented in
one location.
Added some text about how the interaction between BInvoker and
BHandler and/or BLooper works.
BMessenger needs to be documented to understand how SetTimeout() is
suppose to work, refer to BeBook for now.
Signed-off-by: Adrien Destugues <pulkomandy@gmail.com>
Fixes#8569
I'm not sure if this works properly if you reorder tabs (see #9175). But
the fix for that is reordering the tab list to match the visible order,
which doesn't affect this part of the code.
* Renamed _ToggleValue() to _SetValue(), and only let it do that.
* It's now called from _InsertKey(), and _SolveSingle() as well which
results in a correct visual update (ie. completed values, and the
value hints are updated correctly).
* _SolveSingle() would also not test for a completed game.
* The default notifier didn't always take the setting into account.
* The mail server was not using the setting from the settings file and
instead waiting for a message that wasn't sent anywhere.
Fixes#10852.
Servers only accept SSL connections, so the MX entry isn't enough to
autoconfigure. Moreover, hotmail.com MX still points to mx3.hotmail.com,
while outlook.com suggests to use pop3.live.com.
I misread the condition and broke this in 0687a01. Thanks to Axel for
reviewing!
* Refactor the code again to move all the error checking at the top of
the function, to make it easier to read.
The API allows to create driver settings which are not added to the
global list, however those were left partially uninitialized, and there
was no way to cleanly delete them.
Tag such unattached settings with a ref_count of -1, and have
delete_driver_settings check for this and handle the case correctly.
Note: #10494 comment 2 says the settings for packagefs shouldn't be
added to the kernel driver settings list, which is why I went with this
solution. An alternative would be always using the list and the
reference counting, but I don't know what the consequences are.
Fixes#10494.
* This is not allowed by strdup POSIX specs and GCC may use its builtin
strdup which doesn't check for it.
* also refactor parse_driver_settings_string to create the
settings_handle using settings_new, to reduce code duplication.
* Web+ would not understand this and do a search engine query instead.
* Fixes#11726
* Also add some comments to _SmartURLHandler to make it clearer how it
handles URLs.
Sorry, I can't test all cases when building from Haiku.
Including <new> after the fs shell wrapper makes the compiler fail
because new needs a size_t argument (not an fssh_size_t). But including
it before also fails because it includes C++ typedefs without the fssh
wrapper, leading to conflicts.
Undefining size_t just for the include of <new> isn't very clean, but
seems to work. new gets a size_t argument as it should and the other
typedefs aren't conflicting.
* Add an fs-shell compatible version of BOpenHashTable in the fs_shell
to keep it working. The header is renamed to KOpenHashTable to avoid a
conflict with the OpenHashTable.h available in private/shared which is
not API compatible.
- When normalizing paths of the preloaded modules to their final mounted
path, remove them from the hash table before updating their path. Otherwise,
the remove would fail due to the hash no longer matching, which in turn
would cause the code in question to introduce an infinite loop in the
hash table's internal link list due to manually rewriting the next link.