History log of /haiku/src/kits/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
6d9c0146 11-Aug-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

BGradient: fix assignment operator, add copy constructor

The BGradient class is a bit strange as it can store any gradient on its
own, butonly the subclasses allow to set some of the fields.

In the asignment operator, the non-base data (which is in an union) was
not copied over.

More importantly, the missing copy constructor led to the default
implementation being used, and BList (used for the color stops) was
being copied using its default copy constructor, resulting in the two
BGradient (original and copy) poinitng to the same stops data. Heap
corruption resulted whenever one of them was deleted.

Having a working copy ocnstructor fixes this. The alternative is making
the copy constructor private or protected to make sure gradients are not
copied, since normally you'd copy only the subclasses, preserving the
C++ type. However there is nothing enforcing that, and manipulating a
BGradient copied from a subclass works just fine.

Change-Id: I28e733eb8a2970b76ae623eabb75ef8435f508af
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3144
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

a9b30187 20-Jul-2020 John Scipione <jscipione@gmail.com>

IK: align BTextView text rect/fix alignment

Preserve passed in text rect in fTextRext (unless in layout)
and create an internal version fAlignedTextRect which is used
in place of fTextRect. fAlignedTextRext is aligned to fit the
text rect bounds and grows to fit. fAlignedTextRect always grows
vertically but only grows horizontally if wrap is off.

Left-aligned text view's grow right, right-aligned ones grow left,
and center center aligned ones grow out.

Set fTextRect to bounds in _DoLayout().

Reduce left and right padding inside text views from full label
spacing to half label spacing. Unify padding between BTextControl
and BTextView.

Fixing padding also fixes right and center-aligned BTextViews.

Undo extra scrolling for non-left text views from hrev24130 fixing
a scrolling left and right with mouse bug when it shouldn't.

Replace max_c and min_c with std::max and std::min respectively.

Remove scrolling from one instance of BTextView::SetText as it
produced undesired results while editing a scrolled text view.

Set text rect in BTextControl::DoLayout() and ScreenSaver

Don't add padding if BTextView::SetInsets() is called. Set insets
to 0 in Tracker "Edit name" setting which prevents default padding
from being added. This is so that when you rename a file in Tracker
the TextView appears on top of the file name text with no padding.

80 char limit fixes.

Fixes #1651 #12608 #13796 #15189 #15688

Change-Id: I8c6106effc612f49aff374f29742471628b5df86
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3054
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

ca6302dd 05-Aug-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

BTextView: remove useless and heavy computation

There is no point in computing line breaks for a 10px wide text view and
it takes a long time because it needs a lot of linebreaks. The view
eventually gets laid out properly.

This may cause regressions, the TODO here is very old and I don't know
to which "other parts of the code" it refers. Possibly they were
rewritten, possibly not. In any case, there is no point in keeping this
nonsense initial text rect computation, it's better to fix the actual

Fixes #5582 (which was not locale-related, after all)

0d1f89e1 05-Aug-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

TranslatorRoster: avoid a deadlock when launching BeLive

If be_app is not running yet, trying to lock it may easily end up in a

Fixes #2105

However, as a result of this, when this situation happens, the
translator roster will not be node monitoring added/removed translators.
This was already the case if BTranslatorRoster::Default was called
before BApplication constructor, now it's also the case if called inside
the BApplication constructor or from another thread before it finished

Maybe BTranslatorRoster should try to register itself later on if it
detects this. But it's acceptable to have the app not monitor
translators, because adding and removing translators isn't a very common
occurence and restarting the app to get it to notice them is probably

9027ca04 05-Aug-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker: fix infowindow resizing

Fixes #16053

1bad1ff3 02-Aug-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Prepare for ICU update

- libicule and libiculx do not exist anymore in newer ICU versions
(harfbuzz replaces them), but we didn't actually use them, so remove
them from the build feature and from the package dependencies
- Add namespace usage marcos since the newer ICU packages put ICU things
in a namespace, making it easier to have multiple versions of ICU used
side by side.

No functional change intended, but this makes it possible to build the
code with either ICU 57 (for gcc2) or 66 (for other architectures).

d548fb2b 28-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Rework BFilePanel compatibility code.

Instead of adding "dummy views", leave the original views intact
and just add a resizing hack to take care of any movements that
apps have inflicted.

Fixes #16411, a crash in WonderBrush, and compatibility issues
in some other applications.

a06b52be 28-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

BScrollView: Revert to earlier document-window adjust behavior.

We need a different constant or mechanism to get the document
window border size, it appears, or a static method to get
a scroll bar's preferred size.

Should fix #16422.

60a6f1d5 23-Jul-2020 Emir SARI <bitigchi@me.com>

Set Noto Sans Mono as monospace default font

Should help improve [1].

[1]: https://github.com/haikuports/haikuports/issues/3116

Change-Id: I29dd94e3380c3a5935d47d97e2a2ac1c5fb7e774
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3070
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

6aee9d64 25-Jul-2020 X512 <danger_mail@list.ru>

Tracker: fix count view border problem

Fixes #16439.

Change-Id: If936517a0ecfaba994f5d48fcc2fd159cb8ea11f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3093
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

7bac04e6 16-Jul-2020 Leorize <leorize+oss@disroot.org>

HttpRequest: Don't wait for socket to be readable

The socket is a blocking one, which means Read() will block unless data
is available, thus WaitForReadable() is useless in this context.

Testing also shows a 2x performance increase from removing this call due
to poll() performance being botched when KDEBUG_LEVEL >= 2.

Change-Id: I3170f865e961112b420c1548726bb6fd38e94cb2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3078
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

846c12f5 15-Jul-2020 Leorize <leorize+oss@disroot.org>

HttpRequest: Use an ArrayDeleter to manage the temporary buffer

This make sure that the temporary buffer will always be deleted should
any premature return happens.

Change-Id: I448ec7c3f3eeca1ef2b6473b49323f34bcb7bf86
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3077
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

0d0f613f 15-Jul-2020 Leorize <leorize+oss@disroot.org>

GopherRequest: Don't wait for socket to be readable

Instead we can trigger a Read() immediately, as our socket is blocking
and won't return until some data has been made available. This avoids a
potentially costly syscall in the loop body.

Change-Id: I899f55ede41af7cb7e9311aa04006b33c40d3ee4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3076
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

d64d305c 15-Jul-2020 Leorize <leorize+oss@disroot.org>

GopherRequest: Accurate progress reports and listener bugfixes

This commit brings the following changes:
- DownloadProgress() should now be reported for every DataReceived()
calls, similar to other BUrlRequest classes.
- Properly verify whether a listener has been set before invoking them.

Change-Id: I4ded82e318ba580b8869c3d1751da4e36882c39f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3075
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

2056d60f 15-Jul-2020 Leorize <leorize+oss@disroot.org>

DataRequest: Use ArrayDeleter to manage the temporary buffer

This simplify the clean up code path and make sure that the temporary
buffer will always be freed on exit.

Change-Id: I70c1a25bfa66c4f4a96dd3d0af3765a67e305fb2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3074
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

e1de8e8c 15-Jul-2020 Leorize <leorize+oss@disroot.org>

DataRequest: More consistent progress report

Trigger DownloadProgress after DataReceived, similar to how other BUrlRequest
classes behave.

Change-Id: I4858c3736b1b1ebec55af9903dbfd4b976a77df3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3073
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

9e404c53 15-Jul-2020 Leorize <leorize+oss@disroot.org>

FileRequest: More consistent progress reporting

Make BFileRequest reports download progress after every DataReceived()

DownloadProgress() format has also been changed to use 0 as
`bytesTotal` when the total size is unknown. This is similar to
BHttpRequest functions currently.

Change-Id: I2920ea00c4f841bb666425be6f8da418e913c727
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3072
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

1f569db0 15-Jul-2020 Leorize <leorize+oss@disroot.org>

FileRequest: Make Stop() cancel the request as soon as possible

This commit implements a check for the flag raised by Stop() to cancel
a given request as soon as possible. Cancelled requests will return
B_INTERRUPTED regardless of whether the request has completed,
on par with how BHttpRequest is behaving at the moment.

Change-Id: Ia8a95b910cff158c710c5b2ed58b4675e705642e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3071
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

ca7a630e 03-Jan-2019 Alexander von Gluck IV <kallisti5@unixzen.com>

kits/package: Break LibsolvSolver add-on out

* BSolver is implemented by solver add-ons
* We may want to (unlikely) leverage another
package solver in the future.
* We may want to (likely) implement a dummy
solver when libsolv is unavailable on new
architectures without bootstrap.
* This also makes solving missing libsolv a little
more graceful vs the "include "libsolv.h" not

Change-Id: Iedd9d0f022fb743c4c7606bd33a4b6dbef0576f7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/819
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

77912444 05-Mar-2020 X512 <danger_mail@list.ru>

Tracker: fix ScrollIntoView

Same problem as in BListView::ScrollToSelection.

Change-Id: I1cd26190566b1808f47475c1499298b66549f024
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2312
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

15ba64aa 13-Jul-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Unify Settings menu shortcut

Use , as the shortcut key for settings in all built-in apps. Some used
S, but that's already the shortcut for saving. , is the recommended
shortcut in the HIG already, but built-in apps were not updated to

Fixes #11733.

36ef16bf 27-May-2020 X512 <danger_mail@list.ru>

BGradient: add Flatten, Unflatten methods

Change-Id: I861bab8ae19628d34297c294fd6ce3e5b6c82b34
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2827
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

4399ec51 10-Jun-2020 X512 <danger_mail@list.ru>

BPicture: add fill rule support

Change-Id: I068e1c2e8659f7b90c6d7c7331a8bb25ae343fe9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2922
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

90ab1a44 27-May-2020 X512 <danger_mail@list.ru>

BPicture: add gradient support

Fixes #9680.

Change-Id: I0013326559cc40ff26cf7b44794c0b32aea832ba
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2829
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

10b294d8 12-Jul-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Media Kit: use the B_WRITABLE flag in plugins

The ffmpeg plugin reports some formats as read-only. But the media kit
included them in the list of writable formats anyway.

e6c710f4 06-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Set a minimum size on the count view...

...when it is paired with a horizontal scrollbar. This has the
added benefit of restoring the previous horizontal scrollbar size,
it having been lost in the prior refactor due to the "container views"
removing 2 pixels for the borders (previously, there was a different
sizing system for the count view that provided it.)

Fixes #16368 item 1.

c0a15174 06-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Restore prior text-rect bounds in the count view.

The one-pixel offset greatly improved the text alignment under HiDPI,
but degraded it on non-HiDPI. I guess one pixel really does make
that much of a difference; so this will have to be revisted.

94cc40b1 06-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Add a minimum font size for the count view.

Based on the logic from the title view.

df2e6c7a 06-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Force the horizontal scrollbar to always be the preferred size.

See inline comment. Should fix second part of #16368.

f82f94ef 06-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove partial support for custom fonts in PoseView.

BFont is by default bitmap-spaced, so we do not need to make
a new font just to add bitmap spacing. The rest of the code
assumes in places that we have the same general characteristics
as be_plain_font anyway, so having these bits of code does
not make a lot of sense.

Also correct the list element height computation to now just use
be_plain_font directly, which will work even when this is the first
PoseView created (i.e. before the font height has been read.)

76fcfb69 06-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove extra space between pose controls and buttons.

Now that the scrollbar is part of the pose area, we no longer
have to include its height in the spacing of the pose view
from the buttons and the bottom of the window.

Mentioned by X512 in #16368.

8539dfda 06-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

BScrollBar: Use the minimum as the preferred size in the alternate axis.

This was the behavior before the commit yesterday that unified the
two methods of computing the preferred size. It seems some applications
expect this to be callable without a window lock, so this works when
the other method does not.

Fixes #16372.

549e16ed 05-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove scroll bar width from the right margin in file panels.

No longer needed, the layout will take care of this now.

749fbae0 05-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Fix PoseView list item height computation.

This gets list item margins on HiDPI much closer to their standard-
DPI counterparts.

Fixes #16178.

ec25a045 05-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Eliminate the fixed count-view size altogether.

This moves the scroll bars and the count view into the layout
inside FilePanels, so more shim views for compatibility are now made.

Fixes #13179.

58f263a2 05-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove usage of hard-coded count view size in ContainerWindow.

This makes the count view width, height, and font size properly
proportional in the container window. BFilePanel is not yet
fixed however.

bdfb3cd7 05-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

BScrollBar: Report a more correct maximum size.

This way, BScrollBar will now be scaled appropriately when used
within layouts, as it is in e.g. Tracker.

b29bb4be 05-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

BScrollBar: Apply font scaling to preferred sizes.

As BScrollView has already been adjusted to use this, most applications
will now have properly scaled scrollbars on HiDPI systems.

All unadjusted controls and applications will still be able to use
the hard-coded constants as before, but these should eventually
be deprecated altogether and then removed.

b022a5e2 05-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

BScrollView: Ask the BScrollBars what their preferred sizes are.

This replaces the use of the hard-coded scroll bar size constants
and instead asks the scrollbars for their preferred sizes directly.

Right now, this is a giant no-op since BScrollBar just returns
the same hard-coded size when asked. The next commit will, however,
change that.

9481a1ec 04-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

BScrollBar: Unify PreferredSize computations.

Reduces code duplication. This should not significantly affect
actually computed sizes.

9fe3529f 04-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>


It was always enabled, and disabling it would break ABI.
If we want to make it disable-able, it needs to be a setting,
but I don't really see a reason for that.

e9815ed8 04-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

BScrollBar: Move SCROLL_BAR_{...}_KNOB_SIZE constants into the source.

They were not used anywhere else in the tree anyway. Resolves a TODO.

981f67b9 04-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

BAlert: Add cast to appease GCC2.

9a0cae9d 04-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

BButton: Use BControlLook for label spacing instead of a constant.

This gets button proportions under HiDPI much closer to the ones
under a default font size. Still not quite there yet, though.

2d68cd06 04-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

HaikuControlLook: Scale frame insets.

This is a pretty simple change, but has a noticeable effect
on insets throughout the system under HiDPI.

cf7c2ea6 04-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

BMenu: Make margins/padding more HiDPI-aware.

This greatly improves the appearance of menus under font-scaled systems.
The computations are written such that the margins should be unchanged
under a 12pt font size.

99e4ca5f 04-Jul-2020 Augustin Cavalier <waddlesplash@gmail.com>

BAlert: Use factional scaling for icons.

The behavior of not making the icons smaller than their default
pixel size is (for now) kept, but when making them larger,
fractional scaling is now used.

This makes alerts look much better on my system, which has a font
size of 18 (i.e. 150% normal, so 32px -> 48px.)

d9d96260 01-Jul-2020 X512 <danger_mail@list.ru>

BMenu: speed up deleting items

Fixes #16336.

Change-Id: Ie941f45f363f6fe94062fc3acb8bd3bb876c1f1e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2976
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

66f0993a 02-Jul-2020 waddlesplash <waddlesplash@gmail.com>

Revert "BMenu: fix memory leak in scripting"

This reverts commit fb44a1cd7204b88987cd1370cb1a5ccf30d479d5.

Reason for revert: may cause UAFs

Change-Id: I315ce4fc5cd1706ca07e7062fc0461b7fff7c831
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2980
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

fb44a1cd 02-Jul-2020 X512 <danger_mail@list.ru>

BMenu: fix memory leak in scripting

Change-Id: Ia283594a622f758189cc8280683a4e068ae1f3af
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2978
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

6b3cfabf 24-Jun-2020 Murai Takashi <tmurai01@gmail.com>

libnetapi: Fix if condition

Fix length[0] != '+' could not be checked.
Pointed out by cppcheck.

Change-Id: Ic4697dc9ffd04afcd92ef3ed65485e1fe3f32e76
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2950
Reviewed-by: leorize <leorize+oss@disroot.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

9bc51ee0 21-Jun-2020 X512 <danger_mail@list.ru>

BLooper: implement scripting

Change-Id: I73dd301ca7109675a4b629464ba7275a8095c77b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2940
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

079e9eef 23-Jun-2020 X512 <danger_mail@list.ru>

BListView: complete scripting support

Change-Id: Iff4b5cb775d1c0b0e588459429d6df7fb93a760e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2945
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

8fbce873 21-Jun-2020 X512 <danger_mail@list.ru>

BMenu: implement scripting

Fixes #15540.

Change-Id: I965d04bcbb6db41cc7a744d18fa3c9ffab2a81f1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2941
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

5f9ca54d 20-Jun-2020 Augustin Cavalier <waddlesplash@gmail.com>

BHttpResult: Include errno.h.

991d1a20 18-Jun-2020 Andrew Lindesay <apl@lindesay.co.nz>

PackageKit: HPKR BMessage Format Fix

Some older repositories are having problems because
they are configured with a `url` (identifier) form
that is not actually a well-formed URL. This caused
problems when it was then interpreted as the
base-url because it did not start with "http". I
have changed this so that the base-url is not
derived from the url and can be missing.

Resolves #16149

Change-Id: I10acd8db65082ff6c72fcff1550eb63475e86133
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2931
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

fc5ce319 21-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Missing pluralization in Tracker InfoWindow

Fixes #16086

Change-Id: I1984ff7a9a5f6614e7a278efae45e6c7100d759f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2769
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

e1bb846d 19-Jun-2020 X512 <danger_mail@list.ru>

BColumnListView: fix keyboard navigation

Make expanding/collapsing logic the same as in BOutlineListView.

Change-Id: Ia8669ec6ac1be15c09879aa759474b4841451c39
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2933
Reviewed-by: John Scipione <jscipione@gmail.com>

d345666e 17-Jun-2020 Leorize <leorize+oss@disroot.org>

libnetapi/HttpResult: improve Length() algorithm

`atoi()` maximum value is `LONG_MAX` which is smaller than `SIZE_MAX`.
This cause any Content-Length > LONG_MAX to be represented in an
erroneous value. This will also happen to any invalid Content-Length

This change uses strtoul() for the extended range (should be the same as
size_t range), and combined with proper error checking to determine
whether the received Content-Length is a valid and/or representable
value. Returns 0 if the data is invalid or can not be represented.

Some shortcomings about the current implementation are also
noted accordingly. They will be solved in later patches.

Change-Id: If28c4c3b8430ed83dd0f600030ec8949cf7e0051
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2927
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

58dbf89d 12-Jun-2020 Murai Takashi <tmurai01@gmail.com>

Locale Kit: Fix PVS V773

Fix BTimeUnitFormat::Formatunction() was exited
without releasing 'timeUnitAmount' pointer.

Change-Id: I1d3cedd3ca376a7874ce5305b31194ae054e1a0c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2911
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

022f01ea 12-Jun-2020 Murai Takashi <tmurai01@gmail.com>

Debugger Kit: Fix PVS V773

Fix ThreadHandler::_HandleBreakpointConditionIfNeeded() was exited
without releasing 'listener' pointer.

Change-Id: I79b72701b5bcf9a8faeacc6d37eb39ce4bd5cc68
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2910
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

9ab0dec5 09-Jun-2020 waddlesplash <waddlesplash@gmail.com>

Revert "PackageKit: HPKR BMessage Format Fix"

This reverts commit 82f985c036aaae979bd6f5a6b1a29bed03fa3fa0.

Reason for revert: Broke the build with this message:
/packages/groff-1.22.3-1-x86_64.hpkg: Scheme missing.

Change-Id: I9dea4986238cedfdc33c84739e69a331add09cdf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2896
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

82f985c0 06-Jun-2020 Andrew Lindesay <apl@lindesay.co.nz>

PackageKit: HPKR BMessage Format Fix

Some older repositories are having problems because
they are configured with a `url` (identifier) form
that is not actually a well-formed URL. This caused
problems when it was then interpreted as the
base-url because it did not start with "http". I
have changed this so that the base-url is not
derived from the url and can be missing.

Resolves #16149

Change-Id: Ic972fde43f99466db9d5ea2325c0e77cf7d4aad5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2886
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

1d22b1ae 08-Jun-2020 X512 <danger_mail@list.ru>

PicturePlayer: use BStackOrHeapArray

Change-Id: I7908d8304276d14782bde5c2b8c089f3ca0138e2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2894
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

c47cb94a 03-Jun-2020 X512 <danger_mail@list.ru>

BOutlineListView: fix keyboard navigation

* On left arrow key select parent item when selected item is collapsed.
* Scroll to selected item when expanding/collapsing.

Change-Id: Ia404abb970376d4168efd8bba4d8817712a885a6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2873
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

c1cd7f06 17-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker InfoWindow: improve layout

Fixes #16053

Change-Id: I4ab2321d5e6f1b63d39cad6acd35b75cda43b89f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2732
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

6b0e92eb 31-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

libshared: move md5 to BPrivate namespace

Otherwise it clashes with the implementation in OpenSSL which uses the
same names but now has a different ABI.

Change-Id: I5cb3ff97d7b28de978cdcbd8a06f25f65fb53784
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2854
Reviewed-by: Kyle Ambroff-Kao <kyle@ambroffkao.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

1ed08f58 01-Jun-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Speed up BResource loading

The code to parse the resource table reads one entry at a time because
the table size isn't known. This resulted in a lot of read syscalls,
each reading just 12 bytes. Use a BBufferIO to buffer these and reduce
the number of syscalls. This helps especially when there are lot of
resources, for example in libbe with all the country flags.

It also removes some spam from strace output for all these read calls.

Change-Id: Ib165a0eacc2bc5f3d319c22c2fac4f439efbdef2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2858
Reviewed-by: Rene Gollent <rene@gollent.com>

4986a9a3 24-May-2020 Michael Lotz <mmlr@mlotz.ch>

Revert "kernel: Remove the B_KERNEL_AREA protection flag."

This reverts parts of hrev52546 that removed the B_KERNEL_AREA
protection flag and replaced it with an address space comparison.

Checking for areas in the kernel address space inside a user address
space does not work, as areas can only ever belong to one address space.
This rendered these checks ineffective and allowed to unmap, delete or
resize kernel managed areas from their respective userland teams.

That protection was meant to be applied to the team user data area which
was introduced to reduce the kernel to userland overhead by directly
sharing some data between the two. It was intended to be set up in such
a manner that this is safe on the kernel side and the B_KERNEL_AREA flag
was introduced specifically for this purpose.

Incidentally the actual application of the B_KERNEL_AREA flag on the
team user data area was apparently forgotten in the original commit.

The absence of that protection allowed applications to induce KDLs by
modifying the user area and generating a signal for example.

This change restores the B_KERNEL_AREA flag and also applies it to the
team user data area.

Change-Id: I993bb1cf7c6ae10085100db7df7cc23fe66f4edd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2836
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

38963e75 27-May-2020 Kyle Ambroff-Kao <kyle@ambroffkao.com>

SecureSocket: Handle interrupted reads and writes

If a system call performed by SSL_read is interrupted by a signal, it
seems to set its error to SSL_ERROR_WANT_READ. This triggers logic
added in hrev53853 which assumes the caller is doing async reads and
returns B_WOULD_BLOCK.

This breaks uses of BSecureSocket that do blocking reads.

* Detect interrupted signal by checking for EINTR in errno.
* Adding this retry loop to BScureSocket::Write as well since it can
have the same problem.

Resolves issue #15853.

Change-Id: I8198a8496fa3a2ccee00bda87375a482a0d4ba3d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2825
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

f51ea162 25-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

Locale: Enable folder/application translation by default.

Should fix #16076.

Change-Id: Ibf109453c11a83e840774c079c7878cc10f2dad4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2811
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

dc92c471 24-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix translation of InfoWindow title.

Fixes #16118.

9d8d1144 14-May-2020 Andrew Lindesay <apl@lindesay.co.nz>

Packages: Local Repo Config Formats

The local storage of the various repositories' config
needs to cater for different generations of storage
formats and also needs to be able to swap out legacy
repository identifiers.

Change-Id: Ib4b3857254b7b703858eff6815e2d6c54d69da3c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1963
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

d9ef4f90 17-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Remove GPL-licensed implementation of MD5

APE reader was using a GPL licensed version of MD5. A similar
implementation in the public domain was available in libnetapi, which I
moved to libshared so the APE reader can use it (and made some fixes,
missing const mainly). It only needs a small wrapper to use it easily
from C++ in a way compatible with the previous implementation.

Part of #13814.

ec43e4f4 15-May-2020 X512 <danger_mail@list.ru>

AutoDeleter: do not allow copy

Change-Id: Ieab0fea46fc23c446bbaca407e3e80a4a7901896
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2704
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

8ba65975 16-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Build fix

56788ad9 16-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker: tweak FindPanel layout again

- Remove the "more options" latch
- Put the icon back on the left.

Fixes #16015

872240af 16-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Missing file in catalog rule for libbe.

Fixes #16018.

bf207efc 07-Mar-2020 John Scipione <jscipione@gmail.com>

Tracker: ContainerWindow style fixes only

Change-Id: Ica388cf727cb9cffe03c948a64344be7f462e25a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2330
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

d5a3eb04 11-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

BCardLayout: make the first item visible.

Change-Id: I7b836a22bc5c281bec9b44859c42fec56af45574
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2683
Reviewed-by: Andrew Lindesay <apl@lindesay.co.nz>

451cf86f 11-May-2020 X512 <danger_mail@list.ru>

Tracker: fix debug build

Change-Id: I8a31802366b3dcbadc9ce1ba903161fa3fcad60d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2679
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

9585fabd 12-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

BColumnListView: Consider current, not preferred, column width for overall preferred with.

Otherwise, the entire list will be scanned for row widths, which
is extremely slow with thousands of items, and may not be what
the user wants anyway, if they have set specific column sizes
which are larger/smaller than that.

Helps with #16012 and #15889 considerably.

9cfe1443 10-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

BCardLayout: Do not recompute size limits on visible item switch.

The size limits are already the minimum/maximum for all views,
not just the current one, so we do not need to recompute them
when the layout is invalidated due to an item switch.

Fixes #14675, and other performance issues on switching tabs
in layouted BTabViews, among other things.

Change-Id: I55bfe4ddb8c8a79c634634cfc27113205a790c42
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2677
Reviewed-by: Andrew Lindesay <apl@lindesay.co.nz>

db3a9414 06-Mar-2020 X512 <danger_mail@list.ru>

SeparatorItem: support horizontal layout

This is required for BMenuBar based toolbars.

Fixes #15785.

Change-Id: I8d108694b481e408e5c56e23a697c8e7829343dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2316
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

aa272ca3 01-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Package Kit: reduce identifer/base-url confusion

For historical reasons, the package kit has an "url" field that is not
actually meant to be used as an URL. Rename it in the API and user
facing output as "identifier" to make it clear what the file is used
for. This change preserves the "url" key in on-disk and online storage
(hpkr files, stored settings, etc) in an attempt to not break anything.

Fix one remaining misuse of the "url" field as an URL in

Add an unit test showing that BUrl does parse "tab" URIs properly (there
is just a protocol and a path segment).

Change-Id: I339ce526e5798d42d78ae650855d7e988dbb4a1a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2542
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

24337d53 09-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

DecorInfo missing from libbe catalog.

Fixes #15971

a20a26e2 08-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

Versioning: Add BETA_2 and PRE_BETA_3 constants.

* PRE_BETA_3 is now the default in master.

09af7c13 08-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker: fix layout of find panel.

A minimal layout cleanup for beta2. Further changes were proposed in a
separate ticket, #9781, maybe for later.

Fixes #9780.

Change-Id: I1f66d808bd2cea683aa9f3a905cdf5717f1824ef
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2607
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

9670db20 08-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker: add some time_t overflow checks in StatusWindow

Don't pretend file copies will end in 1901, that's obviously wrong.

Helps with #11176, but we should really not use time_t here, or make it

Fun fact: we're now closer to the end of the UNIX epoch than to the creation
of Haiku!

Change-Id: I64acc5ab29fb778fe3034c65b5a8418951d30505
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2608
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

1826e60d 08-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Do not locate DeskBar window by its name

The name changes when translations are enabled. Use the index instead.

Fixes #8982.

Thanks to X512 for catching the problem!

Change-Id: I3c4e943f8476e46e7378a50e83a7758f694a8dc0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2606
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

20f2ebae 07-May-2020 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

Remove MouseDownThread and its usages

This code comes from an old Be Newsletter and since then the API
received the addition of SetMouseEventMask. In several places the
MouseDownThread was misused: it would spawn a new thread on every mouse
click and not clear the previous one. This could for example lead to
BSpinner skipping values if you clicked it at the right speed.

There are functional changes in BSpinner, before it updated for the
first time 100ms after mouse down, and then as you moved the mouse
around the button, now it activates immediately on first click and then
every 200ms (which may be a bit short). In other places, no functional
changes intended.

Change-Id: Ie600dc68cbb87d1e237633953e5189918bf36575
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2599
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

ffd6da17 04-May-2020 Emir SARI <bitigchi@me.com>

Enable accept first click by default

Change initial setting as well.

Change-Id: I8dadde139f9c38ee7fa74ce99f0e616c42d9eb81
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2563
Reviewed-by: Sergei Reznikov <diver@gelios.net>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

494e2564 04-May-2020 John Scipione <jscipione@gmail.com>

BScrollBar: Redraw scroll bar button on click

DrawScrollBarButton passes B_ACTIVATED flag to HaikuControlLook which
draws the button as down.

This regression was introduced in hrev54032.

Fixes #15960

Change-Id: I87dbaa9e8c9169c67dd7cb463d3604d9727ae28f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2577
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

b7c0f682 05-Mar-2020 X512 <danger_mail@list.ru>

BListView: fix ScrollToSelection

When selection moves down, BListView was sometimes scroll to upper item,
not lower.

Change-Id: I8f3cf87d43e93c3d2cabfd7ca76f44f1575525e0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2311
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: John Scipione <jscipione@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

765a734a 03-May-2020 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Add signature to libmedia.so.

Also remove superflous data from libpackage.rdef

This should fix #15958

Change-Id: I76991030541dca12a2dfdd9282f02274a461ed2a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2561
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

5c2709cd 28-Apr-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Firstbootprompt: remove flags from languages.


Add some other icons to make the window a bit more spicy as suggested by

Change-Id: I859cefc7f5cb99f9a5465902c9d471f0b9857b71
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2527
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

e6aa2145 29-Apr-2020 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

libbe.so catalogs are not included in image

Media Kit catalog was incorrectly using "libbe.so" as a catalog name
and overwriting the catalogs for libbe.

Fixes #15904

Change-Id: Ib56045bbcf127c23ac5229981ce92d298ffd6fe5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2536
Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com>

e1b7c1c7 19-Apr-2020 Kyle Ambroff-Kao <kyle@ambroffkao.com>

storage/SymLink: Fix Be API regression in ReadLink

After this patch, "UnitTester BSymLink" passes.

BSymLink::ReadLink() in BeOS would always return the length of the
link unless an error occurred. Before this patch, Haiku instead seemed
to emulate posix readlink() behavior, returning the number of bytes
copied into the output buffer.

BeOS also did not guarantee that the string written into the output
buffer is NULL terminated if the output buffer cannot contain the
entire link contents, but the Haiku implementation does since it is is
a basic safety issue.

This patch fixes this and updates the Haiku API docs to describe the
behavior explicitly.

Fixing this required changing behavior in bfs_read_link, which
required changes in many more places.

* Don't return B_BUFFER_OVERFLOW if the provided buffer is not large
enough to hold the link contents.
* Update documentation to clearly describe behavior.

* Change bfs_read_link() to always return the link length. This is
called by common_read_link in the VFS, which is called by

* Update the implementation of read_link for these filesystems. Some
of them were incorrect, and some had just copied the posix behavior of
bfs from before this patch.
* Use user_memcpy in ext2_read_link()
* Use user_memcpy in nfs fs_read_link()
* Use user_memcpy in reiserfs StreamReader::_ReadIndirectItem and
* Remove unused method Volume::ReadObject in reiserfs.

* Update UnpackingLeafNode::ReadSymlink and
PackageSymLink::ReadSymLink() to set the bufferSize out parameter to
the symlink length. Both of these are called by
* Use user_memcpy

* netfs seems mostly unimplemented. Added a FIXME note for future
implementers so that they know to implement the correct behavior.

* readlinkat() was just wrapping _kern_read_link() because before this
patch it had expected posix behavior. But now it does not, so we
need to return the number of bytes written to the output

* Update _kern_read_link() in the compatibility code to emulate the
Haiku behavior on the host system. This is done by using an
intermediate buffer that is guaranteed to fit the link contents and
returning its length. The intermediate buffer is copied into the
output buffer until there is no more room.

* This patch also resolves some test failures similar to those
resolved in ee8cf35f0 which fixed tests for BNode. The tests were
failing because Haiku's error checking is just better.

BeOS allowed constructing a BSymLink with BSymLink(BDirectory*,
const char*) with the entry name of "". The same is true of the
equivilant SetTo() method. The BSymLink object will appear valid
until you attempt to use it by, for example, calling the ReadLink
method, which will return B_BAD_VALUE.

Haiku does a more appropriate thing and returns B_ENTRY_NOT_FOUND,
for this constructor and the equivilant SetTo(BDirectory*, const
char*) method. This patch fixes these test assertions to match Haiku

* Add notes for future filesystem driver implementers to call this
mistake when implementing fs_vnode_ops::read_symlink.

* Fix documentation for fs_vnode_ops::read_symlink

Change-Id: I8bcb8b2a0c9333059c84ace15844c32d4efeed9d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2502
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>

5fd6feed 27-Apr-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker: fix checkbox positions in InfoWindow.

Fixes #15914.

b8aadcd2 19-Apr-2020 Augustin Cavalier <waddlesplash@gmail.com>

libnetapi: Adapt to OpenSSL 1.1 API changes.

Surprisingly easy: X509 was made opaque, and SSL_CTX_set_ecdh_auto
was removed (it is now the default internally.)

c2895beb 19-Apr-2020 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

Build fix.

8a397b05 05-Feb-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

BTabView: use the back/forward buttons to switch tabs

Note that for this to work well, the child views in the tabs must
propagate MouseDown events up for these buttons.

47e83a42 18-Apr-2020 waddlesplash <waddlesplash@gmail.com>

Revert "BTabView: use the back/forward buttons to switch tabs"

This reverts commit 7ba52abdd38f37e7bd687334173108196760f609.

Reason for revert: Broke the build due to undeclared symbols.

Change-Id: If726d1f71a336f98428037dad2acfdaf961f1a84
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2497
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

7ba52abd 05-Feb-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

BTabView: use the back/forward buttons to switch tabs

Note that for this to work well, the child views in the tabs must
propagate MouseDown events up for these buttons.

Change-Id: I503d7203cb20e6ba85bd0d7e1cfaed988e3cf17b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2207
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

47102c07 24-Feb-2020 X512 <danger_mail@list.ru>

Interface Kit: introduce B_TRANSPARENT_BACKGROUND flag

BeOS didn't support transparent views. As documented in the Be Book,
SetViewColor(B_TRANSPARENT_COLOR) only effect is to not fill the
invalidated areas with the view color before calling Draw() (it avoids
flickering, especially when combined with B_FULL_UPDATE_ON_RESIZE).

A previous change made B_TRANSPARENT_COLOR actually make the view
transparent (that is, additionally to the above, the underlying view is
drawn before the transparent children), but it creates compatibility

In order to keep the API compatible with BeOS, the new behavior is now
enabled explicitly using the B_TRANSPARENT_VIEW flag. This also opens
for future developments like allowing a view color with an alpha
channel (not supported yet).

Adjust programs that require transparent views.

Fixes #15744, #15745.
Helps with #15645.

Change-Id: I529574ea23db0a23579521b263bc8d572775e35a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2275
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

5cfca119 06-Apr-2020 Niels Sascha Reedijk <niels.reedijk@gmail.com>

HaikuBook: Add documentation for BCardLayout

This adds documentation for BCardView, BCardLayout and BLayoutBuilder::Cards.
There is also a bit of cleanup for the BSplitView documentation.

It also makes explicit when a developer passes an invalid argument to
BCardLayout::SetVisibleItem(), by making that a debugger() call.

Change-Id: I17ac52cc773bb76c4f81beaa76f72af62a9e10f4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2460
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

4b918abd 07-Mar-2020 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Package Kit: internationalize strings that may be displayed to the user

This fixes #14525.

Change-Id: I25810a4e12caed7aa47717e278591b1716b6198c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2329
Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com>

19733b44 12-Apr-2020 Alexander von Gluck IV <kallisti5@unixzen.com>

kits/bluetooth: Style cleanup, add additional vendors

Change-Id: I33ac709fe1dc759bf9b98fe94bd1820278ef33d4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2471
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

1482b250 04-Mar-2020 John Scipione <jscipione@gmail.com>

IK: Update scroll bars for alternative control look

Scroll bars should look and work identically to before on

Add DrawScrollBarButton() and DrawScrollBarThumb() and
DrawScrollBarBorder() methods. These methods are used to draw scroll
bars in a generic way so that they can be drawn differently by alternative
control look's (e.g. BeControlLook). Also it gives us back drawing of
scroll bar knobs. However the knob setting is not exposed in the
interface in this commit.

These methods are in addition to the 2 existing DrawScrollBarBackground()
methods that draw the scroll bar background. One draws the area above and
below the thumb and the other is called by the first to actually draw the

The rest of the drawing besides the backgrounds was being done in
BScrollBar before. To draw the scroll bar arrows and thumb we were recyling
other ControlLook methods, while this worked well enough on HaikuControlLook
it wasn't flexible enough for alternative control looks.

DrawScrollBarButton() is used to draw the four scroll buttons and is
typically (so far) used in combination with DrawArrowShape().

DrawScrollBarThumb() draws the scroll bar thumb.

DrawScrollBarBorder() draws a 1px border around the entire scroll bar,
potentially B_KEYBOARD_NAVIGATION_COLOR if focused (although this is
feature not currently used.)

Draw unscrollable scroll bars as if they were disabled including the
buttons with their arrow shapes, background, and thumb.

Add FBC backwords compatibility macros in ControlLook.cpp

Change-Id: I9237c5ce45d17d674785111d51de951e5686306b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/351
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

67597f42 15-Mar-2020 X512 <danger_mail@list.ru>

Interface kit: fix regression introduced in hrev53944

In hrev53944 selection is cleared if text view lose focus, but it
don't work properly in StyledEdit, causing clearing selection when
menu is opened. Clear selection on lose focus is needed for text controls,
so when you click on another text control, previosly focused text
control should clear selection. This behavior is working in BeOS, so
some investigation is required.

Fixes #15810.

Change-Id: Ie104fc1d7e76c2cd2b97d3a0462856fe70cccbbf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2355
Reviewed-by: Stefano Ceccherini <stefano.ceccherini@gmail.com>

fedaf766 10-Apr-2020 Jérôme Duval <jerome.duval@gmail.com>

HttpRequest: fix gcc2 build after f4fce2fd2e81039b247b2fee90a69a98490742ca

f4fce2fd 07-Apr-2020 X512 <danger_mail@list.ru>

HttpRequest: use off_t for reply content size

Fixes #15850.

Change-Id: Ic5d64ecba92306cbe798c94ac8e4a7626125e09b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2464
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

61557c82 04-Apr-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

BListView: do not spawn a thread on every mouse click.

That's a bad idea. The drag and drop tracking could get confused enough
to crash app_server (possibly because of calling InitiateDrag multiple

Fixes #14983.

f7db2734 21-Mar-2020 X512 <danger_mail@list.ru>

Keymap: remove iterator change inside for loop, no functional change

Pointed by clang.

Change-Id: I3aaad5b1e03385358ccb729251fa31d35108f389
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2392
Reviewed-by: John Scipione <jscipione@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>

81521280 21-Mar-2020 X512 <danger_mail@list.ru>

Fix clang warning "mismatched-tags"

Change-Id: I00f26e27d8ac24a46b528ea7ed47b92c2967ff2e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2390
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

8eaf4427 11-Mar-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Refactor IconCache to use BOpenHashTable.

This removes the last usage of the old OpenTracker OpenHashTable,
and so it can now be removed.

Change-Id: I7a7bceef1d3fc74c7fdfa7b079e53576452703dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2339
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: John Scipione <jscipione@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

17512090 10-Mar-2020 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Fix error in string.

Reported by a translator. Thanks!

ddb8a390 18-Feb-2020 John Scipione <jscipione@gmail.com>

BWindow: Adjust default zoom for new mini-mode

Treat bottom left, bottom right, and top left mini-mode like
horizontal mode and go full screen in top right mini-mode.

Change-Id: I55c4c0875b5696e6c193a72d96f309c3b058bf9c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2254
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

1ba93961 07-Mar-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Replace the deprecated std::hash_set with our HashSet.

Change-Id: I7d29f0c905a3ab1a20f6eca252ff1f168218c23f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2322
Reviewed-by: John Scipione <jscipione@gmail.com>

996c9bf0 07-Mar-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Use ObjectDeleter instead of the deprecated std::auto_ptr.

Change-Id: I5d358076065fefa39df923e4554599b716d9883b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2321
Reviewed-by: John Scipione <jscipione@gmail.com>

1c9c7729 12-Jan-2020 X512 <danger_mail@list.ru>

Interface Kit: make BTextControl behave like BeOS

Contents of BTextControl should be not selected if text is directly clicked.
Selection should be removed if BTextView lose focus.

Change-Id: Ifba914c2ada4fc1aac88205f69a64a4356009469
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2109
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

9b33a309 04-Mar-2020 X512 <danger_mail@list.ru>

Interface Kit: fix menu resizing when scrolling is enabled

BMenuWindow::Attach/DetachScrollers can be called when scrollers are
already attached/detached and it should handle this case properly.

Call BMenuWindow::DetachScrollers when scrolling is not needed anymore.

Fixes #8513.

Change-Id: I1f70b63d75106cf33ab1f72d34e221a54b45a75e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2310
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: John Scipione <jscipione@gmail.com>

2e08685b 03-Mar-2020 John Scipione <jscipione@gmail.com>

BMenu: Rename FrameMoved and FrameResized variable names

No functional change. lowercase_with_underscore file names are not
in-line with Haiku's style guidelines.

Change-Id: I254c975ee60168963ca4039a61dc428c05e0e6ba
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2306
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

02e45e32 01-Mar-2020 Niels Sascha Reedijk <niels.reedijk@gmail.com>

HaikuBook: Initial documentation for BNotification

The implementation file contained some documentation. This has been moved
to the Haiku Book (and is rewritten in most cases). The documentation gives
some insight on how the notification_server works.

Change-Id: I82bafcf57101d4882bdf07e7f731df9cd8adc861
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2299
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

ab319eb7 29-Feb-2020 Augustin Cavalier <waddlesplash@gmail.com>

BRegion: Do not "cheaply convert" to the internal format.

_ConvertToInternal does the same thing, and should get inlined
under normal circumstances, so just use it.

No functional change (intended).

Change-Id: Ic4fc9daeb33ab33967d795065a077f282e844f6d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2297
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: John Scipione <jscipione@gmail.com>

f816ef57 29-Feb-2020 Augustin Cavalier <waddlesplash@gmail.com>

BRegion: Remove unneeded inline "documentation."

All this (and more) is in Region.dox already.

Change-Id: I94ff154cc78cda87d82941deb30f73cac39c3409
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2295
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: John Scipione <jscipione@gmail.com>

fa60e7a6 24-Feb-2020 X512 <danger_mail@list.ru>

BMenu: remove delay when opening submenu with mouse

Fixes #11703.

Change-Id: Iae01eeffee27ecde5bb333c85b8c3cb411f1bd00
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2274
Reviewed-by: Sergei Reznikov <diver@gelios.net>
Reviewed-by: humdinger <humdingerb@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

3548a2eb 14-Mar-2019 Murai Takashi <tmurai01@gmail.com>

tracker: Fix PVS V595

Fix 'fFile' pointer was utilized at line 327
before it was verified against NULL.

Change-Id: I8214bce9a99d783b3c53a7b8c5696b0b0dfc3490
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1440
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

17a91a98 02-Jan-2020 X512 <danger_mail@list.ru>

BMenu: fix menu navigation area

Change-Id: If9326ebc99978627d9dfb1eaff67912f0114f292
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2071
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

04f1baa7 05-Feb-2020 Alexander von Gluck IV <kallisti5@unixzen.com>

EFI: Make our haiku_loader architecture agnostic

* This is the bulk of the work. Anything else should be
minor cleanups and tweaking.
* riscv64 isn't a viable EFI platform yet.. just acting
as a stand-in to test a non-x86 EFI haiku_loader

Change-Id: Ib03de81e2b562e693987b86d7b4318209fb1c792
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2256
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

6bff9184 07-Jan-2020 X512 <danger_mail@list.ru>

Tracker: fix window focus behaviour

* Also fix LongAndDragTrackingFilter
Fixes #15605

Change-Id: I98c5f3ca435e54c98515ebe2fccbbfd5d08c1a25
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2081
Reviewed-by: Sergei Reznikov <diver@gelios.net>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

9c9a810c 14-Feb-2020 Jérôme Duval <jerome.duval@gmail.com>

Media Kit: BBufferCache: if not reclaimed, only mark the buffer for deletion

hrev53379 clears the buffer cache for disconnected clients, and also delete buffers.
This is too early (see #15263, media_addon_server crash), and should only happen
after the buffer is recycled. This can be resolved by abusing the fFlags field of
BBuffer to mark the buffer for deletion, and mark the buffer to be reclaimed.
Some BBuffers don't reside in the SharedBufferList, so we have to mark them as to
be reclaimed. For those in the SharedBufferList, call a new RemoveBuffer(), which
can check whether the buffer is still to be reclaimed. For reclaimed BBuffers,
delete them right away, others can be marked for deletion.
fixes #15606 #15263, possibly #15433

Change-Id: I66e94138e7e10a40d4c48e2ac042f816c79f5aab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2245
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>

27fee672 12-Feb-2020 Jérôme Duval <jerome.duval@gmail.com>

Media Kit: let launch_daemon know that media_server will quit

'Restart media services' in Media Preferences works better.

Change-Id: Ifbffdbd81ee851ae3e7d3dfd14f3d5f41ac155ce
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2240
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

8854b897 09-Feb-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

PaneSwitch: fix a layout issue with large font sizes

This is used in Find window and also in Installer.

Remove some unused code (I think leftovers from Tracker InfoWindow

Change-Id: Ic0dd07e06c11b3839adbe5b8ef9598a5b16171a6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2234
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

0e280da5 08-Feb-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

SecureSocket: fix non-blocking reads

OpenSSL says we should retry when a non-blocking read finds no data is
pending. But in that case we should not retry immediately, because the
operation should be non-blocking.

2b197862 07-Feb-2020 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove unused variable.

Fixes the build (due to a -Werror).

4c8c060b 03-Feb-2020 Olivier Coursière <olivier.coursiere@laposte.net>

Make the FilePermissionView font size aware

Change-Id: Ibf100e1068a4807dca34c827acdd195e7effd535
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2196
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

b3de8bea 04-Feb-2020 X512 <danger_mail@list.ru>

Package Kit: convert HTTP error code only on BHttpRequest

Other request types exists such as BFileRequest.

Fixes #15675.

Change-Id: Ib2e07fad4dd9f682d2b9fc0cdbf0ca60ecd3adfb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2200
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: François Revol <revol@free.fr>

e10de1ec 12-Jul-2018 Ryan Leavengood <leavengood@gmail.com>

Visually align shortcuts in menus

In a menu, we use the right side both for submenu arrows and shortcuts.
As a result, when an entry has both a shortcut and a submenu, its
shortcut is not aligned with others, and this does not look so nice.

The spacing for the arrow appears only if there is a submenu in any of
the items in the parent menu.

Change-Id: If91fdcdad36abb0141fb05d1f59141f89540c1db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/355
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>

0ef0921d 03-Feb-2020 François Revol <revol@free.fr>

Package Kit: Return proper errors in FetchFileJob

This should give more meaningful errors in pkgman
(not so sure, feel free to tweak the mapping),
and also avoid running the next job if fetching failed.

Change-Id: If76968f705ff25f7ecf1a5f91d88a02040d24665
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2186
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>

8769583f 03-Feb-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Build fix.

3bea15ad 03-Feb-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

BSecureSocket: retry reads after interrupted syscalls.

SSL_AUTO_RETRY does not cover this case (it only covers SSL errors, not
underlying socket ones), so we still need to retry reads manually here.

Fixes #14638.

cbdb30f4 02-Sep-2019 Jaroslaw Pelczar <jarek@jpelczar.com>

arm64: Add more random scripts to get stuff to compile

Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: Ie043af5b7471f626a1ffe100848151c832dcc439
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1853
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>

992ae400 18-Jan-2020 Murai Takashi <tmurai01@gmail.com>

Fix catching by value

Pointed out by LGTM.
Change-Id: I223655c728305f6f45b3738553da5b7d7a69e8c8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2134
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

65413546 15-Jan-2020 Kyle Ambroff-Kao <kyle@ambroffkao.com>

support/BPath: Flatten should work on empty BPath

BPath::Flatten() on an empty path returns B_OK in BeOS R5, just
writing an empty entry_ref to the povided buffer. The Haiku
implementation has some additional validation that causes B_NO_INIT to
be returned instead.

This patch attempts to recreate the same behavior of BeOS in this

* Don't check for initialization in BPath::Flatten(). Instead,
just write an empty entry_ref to the provided buffer if the BPath is
* Fix estimation of expected size when testing the return value of
* Clean up warning by removing unecessary forward-declaration of

Change-Id: I88880cbb298bdcb594c9c8fef48314165c49e9e5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2115
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>

7037b5d9 20-Jan-2020 Kyle Ambroff-Kao <kyle@ambroffkao.com>

support/Archivable: Reset errno in validate_instantiation()

validate_instantiation(BMessage*, const char*) sets errno for invalid
input, or if the requested class is not found, but it doesn't reset
errno to B_OK if validation succeeds.

I verified that in BeOS R5, errno is set to B_OK if
validate_instantiation succeeds.

This fixes BHandler::Instantiate2 and BHandler::Instantiate3 tests.

Change-Id: I531777e6ba47e9635da2da1fc8c8103bb233b0f3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2136
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

59b700d0 19-Jan-2020 X512 <danger_mail@list.ru>

Interface Kit: remove more workarounds for BDragger

This workarounds are no longer needed after hrev53713.

Change-Id: I7b809c79bd9d2345a991f0d2360f79876d10cd6b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2132
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

c4a686d8 19-Jan-2020 X512 <danger_mail@list.ru>

Interface kit: fix displaying draggers when they were initially hidden

IsHidden(this) should be used instead of IsHidden() because IsHidden() return
true if window is hidden (at moment of creation for example).

Fixes #15646.

Change-Id: I08c8bacd634139dd62fb239e16cb80f512e4be6d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2128
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

52ac76ce 09-Jan-2020 X512 <danger_mail@list.ru>

Interface Kit: fix BDragger background drawing

Change-Id: I1ce8eca127e14af0652ef38fedcbbf588f1567fd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2092
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

db7c4791 10-Jan-2020 X512 <danger_mail@list.ru>

Interface Kit: read reply before calling hooks.

Part of #15548.

Change-Id: I074d36717ef1e2fad4e8bc215448fa72f797ed7f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2099
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

a00b7c2f 04-Jan-2020 Humdinger <humdingerb@gmail.com>

DoCatalogs for VirtualDirectoryWindow

Fixes #15601

755a88de 31-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Actual build fix.

c67336bf 31-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Build fix.

d57174ea 31-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BLanguage: check locale validity in SetTo.

Fixes #15514

fbc30e91 31-Dec-2019 Kyle Ambroff-Kao <kyle@ambroffkao.com>

support/String: Revert 6c67c7d63 to fix double-free

6c67c7d63 was attempting to fix a leak caught by a static analysis
tool, but it actually just introduced a double-free bug. Running
`UnitTester BString` will result in a crash.

The original code was correct because, in the event that realloc()
fails in BString::_Resize(), the value of fPrivateData is still
retained. It will be freed by the destructor of BString only if
fPrivateData is not shared by another BString instance, since BStrings
are copy-on-write.

Note that while the change in 6c67c7d63 caused tests to fail, that
doesn't mean those tests are ideal. They only trigger
BString::_Resize() to fail because they depend on implementation
details of hoard2 which limits allocations via malloc() to
1GB. Most malloc() implementations will allow allocations of arbitrary
sizes using anonymous mappings (mmap on Linux, or create_area() in
Haiku). This is a much bigger change, so for now I'm just adding some
comments so that we can revisit these tests if we make a change to the

Change-Id: I208c1c7a76b6b4409d237b911c62bb3198e49dab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2060
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

d9e196c7 26-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

DefaultMediaTheme: move controls to a namespace

They have generic names and are likely to conflict with other things. In
particular, there is another BPrivate::TitleView in BColumnListView,
which results in weird behavior (and me wasting days debugging things
and scratching my head) when one links libmedia before libcolumnlistview
and the wrong one ends up being called.

4766e7fe 22-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker InfoWindow: collapse borders and make resizable

Fixes #15344.

Change-Id: I3560137248babb88e9475efb775675decb4d1181
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2050
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

b073975e 21-Dec-2019 Jérôme Duval <jerome.duval@gmail.com>

media: fix 64-bit debug build

Change-Id: Ie8c19fc5f067da9973cc52ec4c787a4ad36e390c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2044
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

feeb4b5d 21-Dec-2019 Jérôme Duval <jerome.duval@gmail.com>

RosterPrivate: add IsShutDownInProgress()

enable to check whether a shutdown process is in progress.

Change-Id: I8efdddb3caa80e9fd188f202b6e92a888a7608e5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2042
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

bb501d4c 12-Dec-2019 X512 <danger_mail@list.ru>

BTextView and BListView: fix scripting

fix #15539

Change-Id: I5139b91214e19b35af1ead203c070837b7a15bd9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2017
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

baa73998 11-Dec-2019 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

FileGameSound: remove superfluous parentheses.

Pointed out by Axel on haiku-commits.

c67dde0f 17-Nov-2019 Kacper Kasper <kacperkasper@gmail.com>

app_server: Add tiled bitmap drawing routines

Change-Id: I9a7bd967f2cc95d815a66707b764cf5e33b3f8ed
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1962
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

69f814cd 08-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BFileGameSound: allow initializing from a BDataIO

There is no reason to not allow this, and it makes it possible to load
data from eg. a BResource instead of a file, which is very useful.

Remove some unused members in the class and dead code, and fix style

Change-Id: I94cbd0c13c469ea80f55028cf33dfde2de4365ef
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2001
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

2a49e094 28-Sep-2019 Murai Takashi <tmurai01@gmail.com>

Tracker kit: Fix memory leak

Like moveList and copyList, duplicateList could be deleted here.
Pointed out by Clang static analyzer.

Change-Id: Ic80181af960bc8eb759449ea5719e9a439a877a0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1996
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

4236826d 04-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BGeolocation: build fix

edc5a217 20-Sep-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BGeolocation: add position to country mapping

Using the geonames.org API, so we will need an API key for it (similar
to the one used for MLS, deployed by the buildbot)

The unit tests uses the "demo" user, which is restricted to 20000 API
call credits and often expired. But we cannot use our secret key here as
it would need to be available to anyone running the test. If we ever get
to automate running the tests on a buildserver we could probably make it
use the secret username known by our buildbot instead.

Change-Id: Ia16880db82555ce85505ad28e1c623f692f46be0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1873
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>

70cdd7d4 19-Sep-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BCountry: add SetTo and InitCheck.

Change-Id: I5fbc2a1c0e735d6edeb23672017bb64d1b3f4390
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1872
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

ea5c088d 16-Nov-2019 John Scipione <jscipione@gmail.com>

Tracker: fix fall back to bitmap icon

We can convert a bitmap icon to B_RGBA32 and scale it at the same
time if we pass in the right size to IconUtils. Don't error out,
force the icon_size to be either B_LARGE_ICON or B_MINI_ICON,
grab the bitmap at that size then convert and scale it.

Implement a second fallback. If the scaling and converting fails
then use ImportBits to convert the icon from B_CMAP8 to B_RGBA32
then center it without scaling.

Fill with transparent before drawing bitmap to prevent artifacting.

Fixes #9554

Change-Id: I827589236fa4f1521e3139ec29b7d60d51d2f879
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1960
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

fb3493df 14-Aug-2019 John Scipione <jscipione@gmail.com>

BControlLook: Move tab frame drawing into DrawTabFrame()

The tab frame is drawn behind the tabs.

Create a new DrawTabFrame method in BControlLook and HaikuControlLook
that draws the tab frame background.

Until now we've been reusing the DrawInactiveTab method to draw the tab frame
in BTabView. While this works on HaikuControlLook, it doesn't work on other
ControlLook's (such as BeControlLook) that draw their tab frame differently.

Add FBC method to preserve binary compatibility on gcc2 and gcc4.

Move DrawTabFrame method to where _ReservedControlLook1 was in header.

Set rect to area of tab frame in TabView instead of doing the
calculation in HaikuControlLook so that others may benefit.

Change-Id: I513e238914f6d680f495659b6ec902df15555015
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1936
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

f1271b64 19-Nov-2019 Axel Dörfler <axeld@pinc-software.de>

BPath: Removed superfluous term

9c89ceb8 26-Sep-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BTextView: missing archiving of HideTyping()

This was not stored in BeOS, but that looks like an oversight on their
part and adding it is unlikely to break anything.

Change-Id: I5dbaeb85adf97afc5040a3ecc1bff264af0b0b57
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1888
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>

894c9f26 20-Oct-2019 Humdinger <humdingerb@gmail.com>

Localizing "Attributes" tab of InfoWindow

Change-Id: I38bacade1f7e9648e7ef80ca39cc197410e7114f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1923
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

083314c2 05-Oct-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Create the port pool in MediaRosterUndertaker

Follow up to #15135, which created a regression, apps would crash if
using the port pool before creating a BMediaRoster instance. Now the
port pool is entirely managed by the MediaRosterUndertaker, which is
less confusing.

Fixes the media_addon_server crash on shutdown for me as well, but I
don't remember why (I had studied the code and came to the conclusion
that this should fix it, but I don't remember the reasoning).

Fixes #15263, and regressions for apps using the port pool before they
instanciate the BMediaRoster.

Change-Id: I887dbc590d8ee9de391b6eae0206944bfe99325f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1897
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>

14c3e387 27-Sep-2019 Kacper Kasper <kacperkasper@gmail.com>

Discard column info in Debugger

* With them Debugger doesn't allow setting breakpoints inside functions.
* Workaround for #15159. Further explanation by anevilyak is also there.

Change-Id: I661b7dcb28a4c02f671b85cb5c26fa0bd5a53078
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1892
Reviewed-by: Rene Gollent <rene@gollent.com>

07838f4c 26-Sep-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BTextView: preserve ViewUIColor when unarchiving

When unarchiving, we can rely on BView to properly restore the colors,
and we should not alter them. So move the code doing that outside of
_InitObject, and into all non-unarchiving constructors instead.

Change-Id: I98050c69bb3b8edf6e77ad0498e2dade5eaadb1d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1887
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

23d6916a 23-Sep-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker InfoWindow: cleanup of size string invalidation code

Should fix #15351.

79e2e1b9 23-Sep-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix accidental code removal in tracker infowindow refactoring

Should fix #15322 and #15352

04a1ee97 21-Sep-2019 Murai Takashi <tmurai01@gmail.com>

libnetapi: Fix 'new[]' array freed with 'delete'

sMutexBuf is allocated by new[] in SSL::SSL(), but freed by delete.
Pointed by LGTM.

Change-Id: Ic16501883be4e3b7ca5fe24e1585b6e14ae3ff36
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1883
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>

d761df9f 14-Sep-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BMessage: fix NULL pointer dereference in out of memory condition.

Change-Id: I75ba6e5069cda8a92fd88bf7d1e999232359e73c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1864
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

4015b587 14-Sep-2019 Humdinger <humdingerb@gmail.com>

Mail: Fix 'Leave as 'New'

When closing an unread email via "Close | Leave as 'New'", it's
still set to MAIL:status "Read".
IComparing the BString read from the MAIL:status attribute returns
"0" for a match, which the if-statement turns to false...

Change-Id: I4c3846fd39a6056e4bed8388e41dbf4929798799
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1865
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

e5d533fd 11-Sep-2019 Mikael Konradsson <mikael.konradsson@outlook.com>

OutLineListView: adjust color of expander arrow when using dark color scheme

Change-Id: I7de7a460111556b7f40565ed0a6110c1f7660a25
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1847
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

75e57397 16-Aug-2019 Simon South <simon@simonsouth.net>

BWindow: Do not invoke BView handlers directly

When dispatching a message to a BView, pass the message on to the view's
MessageReceived() method rather than invoking one of its handlers (e.g.
KeyDown() or MouseDown()) directly.

This commit moves the existing handler-invoking logic from
BWindow::DispatchMessage() into BView::MessageReceived(), preserving the
existing functionality.

Fixes #15254.

Change-Id: I230c0781df13e54e08573a5a31d7550520c060d5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1723
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>

9e54316c 27-Aug-2019 CodeforEvolution <secundaja@gmail.com>

Fix the build of test_app_server on 64bit

So many Jamfiles to search through...runs also, but there
are lots of graphical glitches

Change-Id: Ibf9e64566a5b8c5742792ac9b1b0f9ccc6693c8d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1753
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

60b52ce0 31-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

HashMapCatalog: handle more standard escpae sequences.

Fixes #14705

b4e2eff2 31-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

DebugWindow: improve layout

Fixes #15155.

5f996be3 31-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

InfoWindow: more window sizing improvements

Fixes #15310 and other problem mentioned in comments threrein.

72ce5947 31-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

InfoWindow: allow some resizing of attribute columns

Fixes #15319

47a21c5c 30-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

s/Haiku License/MIT License/g.

They are the same thing.

aabebc30 27-Aug-2019 Mikael Konradsson <mikael.konradsson@outlook.com>

Interface Kit: Fix some hard-coded colors.

* Fix hardcoded black color in SeparatorView that caused invisible or
hard to read labels if you had a dark panel color. E.g MediaPrefs
* DrawBorder in HaikuControl didn't care about dark mode. Added check
for light/dark and changed the Tinting accordingly. We should probably
do the same for FancyBorder style as well.

Change-Id: I065211e56b0db5acd05ea287d6cacf75786f306f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1751
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

03d334bb 27-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

build fixes.

sys/types.h cannot incliude endian.h because that creates circular
include dependencies.

Add proper multiarch grist to libcolumnlistview.

ab56137e 26-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

IconCache: remove incorrect ASSERT()

The code does just fine both if entry is NULL and if it doesn't have an
icon. However, if entry is NULL, this assert calls a method on it, which
is a bad idea.

Change-Id: I80b314db373970d99eb008aeaec6254d14c39ca7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1749
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

19f8517f 26-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Link against the right libcolumnlistview.

84dc1163 25-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker InfoWindow: add a tab with file attributes

Now there is no need to resort to listattr and catattr to see the
attributes of a file. You can get them easily, from the GUI.

- No editing support
- Only a few well-known types are handled
- No support for attributes with array of values or otherwise unexpected
- Special handling for B_TIME_FORMAT which is annoyingly of a different
size between 32 and 64bit systems, making the attribute format
slightly incompatible.

The window is a bit small to show all the information, so the "Type"
column is put off-view on the right, one can scroll to it if needed.

Vertically there is space for only 4 to 5 entries. It was suggested that
we could merge the permissions and information tabs, making the new
first tab higher, and thus adding more space to this one as well.

Change-Id: I75d192314bc60378c2f058547485cb9c30263485
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1748
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

9bb8d3a4 25-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker InfoWindow: fix regressions

- Misplaced popup window for showing truncated paths in full (#15301)
- Crash when using Alt + E to edit the filename (#15302)
- "Link To" information for symlinks does not fit in window (#15303)

Change-Id: I72416ab4473e0b01c33817b9364eb9e9e59172e1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1747
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

2140520f 25-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker InfoWindow: layoutify, use tabs

- Use layout kit to make a few things simpler
- Separate the view showing the header (icon/name) and the one showing
the extra details, making two simpler files instead of a complex one
- Fix some layouting issues
- The permissions are now in a second tab, allowing to add a third one
with other things (more on that later)

screenshot: http://pulkomandy.tk/drop/fileinfo.png

Change-Id: Ief80815eba749723664f40f1317f8aa4cf692162
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1745
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>

ebb30434 25-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker: move AttributeView to own file and rename

Change-Id: I046eb9aa0fef792e9e940d0a6dfd887ede2fa996
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1744
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

79d1a09c 25-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Adjust SEARCH_SOURCE also for the DoCatalogs invokation.

97218560 25-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker: move InfoWindow to a subdirectory.

I'm going to split it into even more files, and it's easier to track
what's part of it this way.

Change-Id: I09c302da38ce96f0077c5f53fd17c08cdd6c22c9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1743
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>

4eaa1f35 24-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BRoster: preserve symlink as "app" if given one

Symlink name or attributes may be relevant to the launched app, so it's
important that we pass the unresolved symlink as argv[0] when running

Change-Id: Ie1d73bc4e9d5c3d0476f205ce635aafd9203e553
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1739
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

6faf979d 24-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BRoster: Fix infinite loop when trying to launch app with missing libraries.

Fixes #14986.

Change-Id: I727fde0c475f0684567a46be5af616cad56a9b4c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1738
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

8043df7a 20-Aug-2019 X512 <danger_mail@list.ru>

Fix BMenuBar width in Tracker

f146f74b 20-Aug-2019 X512 <danger_mail@list.ru>

Fix BMenuBar width

a830ec9a 23-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

BSecureSocket: Don't continue with an untrusted certificate by default.

It has been multiple years since this comment was written; all relevant
apps have added their own hooks around this, so we should now be
"secure by default."

Also spotted by a random Hacker News commenter.

8d63a906 23-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

BSecureSocket: Pass the hostname to the X509 layer to validate it.

Now SSL certificates with the wrong hostname actually fail to validate.
While I'm at it, remove the usage of BString and just check [0] directly.

Spotted by a random commenter on Hacker News.

759ee24c 22-Aug-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Game Kit: do not allocate BBuffers before initializing the Media Kit

The port pool now being created in BMediaRoster init, we must make sure
the media roster is initialized before doing anything else.

Change-Id: I5a3cc61c993e9be4078772bbf341b637d951d239
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1734
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

d2a69b8b 20-Aug-2019 Ryan Leavengood <leavengood@gmail.com>

Tracker: Improve pose loading speed, add comments

If a new pose is going to be placed below the current view bounds, we
definitely do not need to do any drawing. If it is above or inside the view
bounds we do this special drawing method.

Overall this method of doing updates is complicated and hard to adjust without
introducing drawing artifacts. As noted in the TODO, this should be rethought
from scratch.

But for now in one case of over 8000 files in a single directory this improved
the loading speed from about 8 or 9 seconds to 1. Queries results also load
much faster. I am testing in a VM with a single CPU on a host with an SSD, so
others may see better performance with more CPUs, or less with a spinning hard

But at least now the drawing won't be the bottleneck.

Should finally fully fix #3011, or at least good enough for close.

Change-Id: I3806ffa7674e404c9db24edb33d6ab4eb2d825f7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1726
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

a7536efa 19-Aug-2019 Simon South <simon@simonsouth.net>

BKeymap: Add unit tests and fix issues

Add a preliminary set of unit tests for BKeymap and fix these issues:

* BKeymap::operator=() caused a crash by allocating a zero-byte array to hold
the other object's character data.
* BKeymap::SetToCurrent() and SetToDefault() leaked memory by not freeing an
existing character array before allocating a new one.
* BKeymap::SetToCurrent() incorrectly determined the size of the current
keymap's character array, causing GetChars() to fail whenever the current
keymap was loaded. Now SetToCurrent() uses the _get_key_map() private
function, which accurately reports the size of the array.

This commit also updates a Jamfile by replacing a use of "UseHeaders" to
include private header files with the more concise and expressive

Change-Id: If6f71b209f1bd395be57835c4dd89f0e3f845994
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1724
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

472d26a3 16-Aug-2019 Ryan Leavengood <leavengood@gmail.com>

Media Kit: Delete the PortPool in a more deliberate way

Letting it get deleted statically can cause segfaults since it is needed for
some final quit messages.

This mimic changes Axel made for the DormantNodeManager and

I also pulled PortPool into its own file and header.

Fixes #15135.

Change-Id: Ie64753e1876d58b52f7cb95536c6be3df2e6d40c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1721
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

fe08f0b3 14-Aug-2019 Ryan Leavengood <leavengood@gmail.com>

Media Kit: Clear the BufferCache of buffers for disconnected clients

Without this, the BufferCache keeps a reference to these buffers inside the
media_addon_server until the media_addon_server quits, which is pretty much

Should fix #4954 and #14755, and possibly #13614 and #14047, though I think
they may be something else.

Switched from std::map to our HashMap to get something which works in gcc2 and

Change-Id: I26463899724b9d1520d97fec785e435f536eaf3d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1717
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

2c4232b8 14-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

BMediaRoster: Mark publishing areas as cloneable.

31d70c10 13-Aug-2019 Alexander G. M. Smith <agmsmith@ncf.ca>

package kit: Skip over future package attributes.

Ignore unknown fields (also called attributes) which are from a package
file with a different minor version number. Previously it would halt
with an error when encountering such a field, even though it can safely
be skipped over (if it was unsafe, we would have incremented the major
version number).

The use case is a future package attribute for pre-uninstall scripts.
If they're not run, that just leaves some debris after uninstalling
(like symbolic link desktop icons).

* Use the B_NOT_SUPPORTED error code when reading unknown package
attributes. Don't treat it as an error if the package is a
different minor version, just skip it.
* Print unknown package attribute index numbers rather than stopping,
since they may be from future package file formats and can be safely
skipped otherwise. Mention the relevant enum so you can find it in
the source code. It's a pity that the previous abstraction layer
isn't present, since it tells us what data type the attribute is
(string, number, etc), so we could have printed its value too.

First step of two for enhancement #13427

See https://review.haiku-os.org/c/haiku/+/1504 to generate packages
with a different minor version number (second step of the enhancement).

Change-Id: I6db1897824a1713b3d5fab6fdfb990ee5923cd52
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1714
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

96e64e6e 11-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

Application Kit: Add B_CLONEABLE_AREA permission to cloned server areas.

The Media Kit needs this for overlays.

964cab46 10-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

media: Set B_CLONEABLE_AREA where applicable.

Cloning cloned buffers seems especially strange, but
apparently it is actually done. The buffer management
code really needs to be cleaned up...

f5953f61 09-Aug-2019 Ryan Leavengood <leavengood@gmail.com>

Package Kit: Purposely ignore an error getting package cache

Fixes #15230.

The comment pretty much explains it. I think needing this means this code could
be redesigned, but I don't know enough yet to make that fix.

It also feels like this whole job system and Command pattern is overly
complicated when good old functions would be fine, certainly for pkgman. But
maybe this is used more heavily in HaikuDepot.

b711002d 07-Aug-2019 Ryan Leavengood <leavengood@gmail.com>

HaikuDepot: Set package state when loading single package

Without this, even installed packages still get an "Install" button.

Fixes #14821.

This was implemented by adding BPackageRoster::IsPackageActive. I decided to
have this take a location since GetActivePackages also did, but as noted in my
TODO comment, I think this is awkward.

It would also be nice to show the user they have a different version of a
particular package, but that would require some changes to IsPackageActive.

Change-Id: Iab0d35eb6b671a17711b0214b15164d296927e5a
Reviewed-on: https://review.haiku-os.org/c/1694
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

dfbf1c8a 02-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

Package Kit: Avoid discarding potential error values.

Spotted by Clang and the [[nodiscard]] patch.

2846db2e 31-Jul-2019 CodeforEvolution <secundaja@gmail.com>

Implement is_app_showing_modal_window()

Also do some cleanup in private headers, I can't imagine why the build
libraries would need this function.

Change-Id: Ib08810b6efe4738dad596a735d741582a3781b28
Reviewed-on: https://review.haiku-os.org/c/1670
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>

5e7114c1 01-Aug-2019 Ryan Leavengood <leavengood@gmail.com>

Tracker: Do a duplicate when pasting files into their own directory

Fixes #2755 (blast from the past!)

Change-Id: I5faff0563ca8c65cd78c8d1414517a652223d0fd
Reviewed-on: https://review.haiku-os.org/c/1673
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

ecba7b5c 01-Aug-2019 Ryan Leavengood <leavengood@gmail.com>

Tracker: Ensure loading the Node works before passing to a Filter

Checking errors is important. This properly fixes #10365 and resolves a few

This DirectoryFilter is also used in Expander, though with a lower level
implementation that did not trigger this bug. This feels like it could be
in the the Tracker or shared kit.

Change-Id: Icd2ddc241c1879a7c4235726bf089570ba00dc0a
Reviewed-on: https://review.haiku-os.org/c/1672
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

10d876de 31-Jul-2019 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Add missing close-paren from previous commit.

5bc37860 31-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V1039: useless use of multichar constants

Bitshifts and masks are a lot more readable here.

Change-Id: I94c8603b75d42456843a0b53bf2a0547aaffdb74
Reviewed-on: https://review.haiku-os.org/c/1669
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

7bdc1a19 29-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V522: PathMonitor: NULL pointer dereference

Change-Id: I77df9c18960eee0183145441d3a1bd4ceb112147
Reviewed-on: https://review.haiku-os.org/c/1662
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

49506076 19-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Add a features.h to auto enable _DEFAULT_SOURCE

Unless __STRICT_ANSI__ is defined (as it is when running the compiler in
--std=c89 or --std=c99, but not when running it without any specific
args), we can enable these by default and behave like most other
systems. I don't know why no one has done this yet despite suggesting it
multiple times and people prefer to #define _BSD_SOURCE manually

Remove all places in our Jamfiles and sources where it had been defined.
_DEFAULT_SOURCE is now enabled by default for all sources of Haiku, since we
let the compiler use GNU extensions (no strict C standard specified on
command line)

Use _DEFAULT_SOURCE as the define name to match current versions of
glibc. Enable it if _BSD_SOURCE is #defined in compiler flags, for
backward compatibility.

Change-Id: I6db04da5f6db437723cdfba3478f5094a69d7727
Reviewed-on: https://review.haiku-os.org/c/1633
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

565155af 27-Jul-2019 Augustin Cavalier <waddlesplash@gmail.com>

Remove unnecessary usages of BLocker::Sem().

Most of these should have been BLocker::InitCheck() anyway.
The one that was actually using the sem (MessageLooper)
should just store the name parameter, which simplifies
things anyway.

Done as a result of a branch where I'm experimenting
with making BLocker not even create a semaphore in
"benaphore" mode.

6967695c 24-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V547: always false comparisons

Change-Id: I1c7790ff0aa537b974bdc0fd65d76f277ea5f8cf
Reviewed-on: https://review.haiku-os.org/c/1647
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

319c399d 17-Jul-2019 Murai Takashi <tmurai01@gmail.com>

PVS V739: EOF compared with a value of the char type.

Change-Id: Icfaff590359381fbdd3bbd7993dab92111da3ed1
Reviewed-on: https://review.haiku-os.org/c/1618
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

194c4838 21-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Move SettingsHandler to libshared

It's used by both Tracker and Codycam and others might find it useful.

Change-Id: I585d3a1bdc7f8fce7d36bedf6867464cd541ba2e
Reviewed-on: https://review.haiku-os.org/c/1637
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

72bfb144 17-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V1028: cast result of operation instead of operands

If an overflow occurs before the cast, we can't fix it. If we cast
first, we can rely on integer promotion to make the result use the
appropriate size.

Change-Id: I7462e28422456c07f179f94d39c10c408d9bec36
Reviewed-on: https://review.haiku-os.org/c/1623
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

e081b9cd 17-Jul-2019 Murai Takashi <tmurai01@gmail.com>

PVS V611: Use delete [] for memory allocated by new [].

Change-Id: I712350ae7f742aaa8e0ea58186265fac4bbac73e
Reviewed-on: https://review.haiku-os.org/c/1627
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

994c8567 16-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V603: useless creation of objects

Change-Id: Ia40d26a9a5c1f4b3383b05f94eb8220fbb36583d
Reviewed-on: https://review.haiku-os.org/c/1615
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

4a1d8b1a 16-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V575: strange values passed to well known functions

Change-Id: Id6008d93777f860d0b341bcd012fe6f86c99cf35
Reviewed-on: https://review.haiku-os.org/c/1610
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

fcf7cbe7 16-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V522: null pointer dereferences

Change-Id: Iaa753ef3a93c36031789a85f87e569fc410d3304
Reviewed-on: https://review.haiku-os.org/c/1604
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

ca72c678 16-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V517: two times the same comparison

Change-Id: I93bfdb8cb09d61f537228c4b0a53ee603240d00d
Reviewed-on: https://review.haiku-os.org/c/1602
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

1ec8732c 16-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V506: using pointer to deallocated stack space

Change-Id: I43f7d0208f7d644d6f4274a9a718773f7a1346a0
Reviewed-on: https://review.haiku-os.org/c/1600
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

16d463ae 16-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V501: redundant checks

There are some more in telnetd and agg but I'm not sure if they are
intentional, the code is so ugly there.

Change-Id: I9cc2bf8a919c3b1d6c68f2ded8622730497b0f91
Reviewed-on: https://review.haiku-os.org/c/1598
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

17c9e987 10-Jul-2019 Kacper Kasper <kacperkasper@gmail.com>

TextView: add shortcuts for wordwise delete

Change-Id: Ie67f6255c3f5d9d8ccc6699ed42dd71ae593fa16
Reviewed-on: https://review.haiku-os.org/c/1573
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

ca68cae7 12-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PluginManager: remove unneeded buffering.

The plugin manager was attempting to buffer the IOs. However, the ffmpeg
plugin already handles this (it reads in 64K chunks, the same size as
the buffer here, so this buffering was effectively useless), and the
media extractor already runs the decoding in a separate thread thanks to
the chunk cache. So, we do not need an extra level of buffering here.

We should leave any extra buffering to the upper layers (BMediaTrack or
Media Extractor), if it's needed, as they would have much more control
on the creation of the data io object.

Change-Id: I65b67919da107c8b910dd08f8cdb8e3745af92c7
Reviewed-on: https://review.haiku-os.org/c/1588
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

727e49c6 12-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Media Kit: remove MediaExtractor::Source

The idea was that the Media Extractor could wrap the original source
given by BMediaTrack, but all operations on the data go through
MediaExtractor anyway.
We could probably move ownership of the BDataIO completely into
MediaExtractor instead.

Change-Id: I846b34b543fb983e60f6adf86cb17e835303267b
Reviewed-on: https://review.haiku-os.org/c/1587
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

9d06690e 11-Jul-2019 Augustin Cavalier <waddlesplash@gmail.com>

userland: Pass more sizes with ioctls where we can.

No "functional" change intended.

d2e51939 08-Jul-2019 Jérôme Duval <jerome.duval@gmail.com>

Messenger: style fix.

Change-Id: I5b1b7e745de91bd1bedbbbe13faf848fdd284785
Reviewed-on: https://review.haiku-os.org/c/1565
Reviewed-by: Rene Gollent <rene@gollent.com>

ebb0db62 04-Jul-2019 Augustin Cavalier <waddlesplash@gmail.com>

kits: Only export private dummy copy constructors for R5 ABI.

Fixes #546 (after all these years!)

57e40b44 17-Jun-2019 Augustin Cavalier <waddlesplash@gmail.com>

Debugger: Use the BVariant default constructor in Token().

The value-based constructor does the same. Fixes an "ambiguous
call" error on ARM builds.

f74f8600 16-Jun-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BitmapButton: move from WebPositive to libshared

Remove a currently unused copy of it from HaikuDepot.

Change-Id: Idb97fae8e7190da6bc1049b3c1f1df929ea91bab
Reviewed-on: https://review.haiku-os.org/c/1506
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

3ca2e85b 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Interface: Add casts to memcpy/memset invocations on BPoint & BRect.

Their copy constructors are exactly what GCC would generate,
but we can't remove them because doing so would make them
trivially copyable, and so they would be passed in registers
on x86_64, an ABI breakage.

So instead we have to add explicit casts to void* here.

057b69a7 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Deskbar & Translation: Use assignment operator instead of memcpy.

f7397837 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

BMessage: Use assignment operator instead of memcpy().

The only non-POD types the macro is used on are BPoint, BRect, BSize,
and rgb_color, so the first change should essentially be a no-op.

The second change will technically have different behavior,
as the BMessenger copy constructor does not touch the _reserved_
field; but this shouldn't break anything, of course.

632e7fd0 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>


a1ad8af6 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Change a number of sprintf to snprintf.

Fixes a number of -Werrors about format overflow from GCC 8.

1705656e 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Add (void*) casts to memcpy/memset invocations to appease GCC 8.

A lot of these classes are not *technically* "trivially copyable"
for one reason or another, but in all of these cases it seems
OK to me to use memcpy/memset on them. Adding a cast to void*
tells GCC that "I know what I'm doing here" and shuts up the

7a73df5e 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Debugger: Remove needless explicit copy constructors.

These worked in identical fashion to what the default copy
constructors would be, but their mere presence marks the class
as being "non-trivially copyable," which means that memcpy'ing
it is now a -Werror on GCC 8.

We have to be careful when making this change, though: classes
which *are* trivially copyable can be passed inside registers
on x86_64, so changes like these break ABI in a dangerous way.
These classes is private, so it should not be a problem, but
for other classes (e.g. BRect, BPoint) we cannot fix them
properly right now.

66cb2efa 15-May-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Move StripeView to libshared

Change-Id: Ib8ff2f731f9d34e04854f1c2ec288a3db1036793
Reviewed-on: https://review.haiku-os.org/c/1458
Reviewed-by: Rene Gollent <rene@gollent.com>

218a8c03 17-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Revert the Codec Kit.

All of Barrett's individual reverts have been squashed into this
one commit, save a few actual bugfixes.

Change-Id: Ib0a7d0a841d3ac40b1fca7372c58b7f9229bd1f0

629397f2 01-May-2019 François Revol <revol@free.fr>

Add basic support for loading ControlLook add-ons

app_server just passes the add-on path around.

Maybe we should make sure the add-on can be loaded when setting it.

Change-Id: I3acd3299782a22c1666bd5435dbf3d8053e359fa
Reviewed-on: https://review.haiku-os.org/c/1430
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

1b48852e 01-May-2019 François Revol <revol@free.fr>

Fix doxygen + whitespace

Change-Id: Ief0b2646e95841604a0396f15a054ff2086db198

088cebb9 27-Apr-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

BFileGameSound: remove annoying printf.

Change-Id: If12c4031e7ec245a79cca51fe1304f6cc21f28e4
Reviewed-on: https://review.haiku-os.org/c/1415
Reviewed-by: Stefano Ceccherini <stefano.ceccherini@gmail.com>

f1fafe31 12-Apr-2019 Augustin Cavalier <waddlesplash@gmail.com>

kernel/OS.h: Include sys/types.h instead of pthread.h.

This avoids polluting the namespace significantly. Also adjust
all files which depended on this behavior to include pthread.h

95587710 03-Apr-2019 Augustin Cavalier <waddlesplash@gmail.com>

Debugger: Call the GCC2 get_next_argument directly.

This codepath is only hit when we are using the GCC2 demangler,
so we should not use get_next_argument which tries to autodetect
what kind of symbol this is.

ad38b80f 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

BMessage: Fix R5 checksum calculation on 64-bit.

Change-Id: I0d418883bb66c6ad9e351c955e213f5cbc975e56
Reviewed-on: https://review.haiku-os.org/c/1336
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

5ffbe7d7 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

Change all references to "__INTEL__" to "__i386__".

They are functionally identical, but the former is a BeOS/Haiku-specfic
macro that we include in the compiler specs, and the latter is defined
by GCC.

1e60bdea 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

Remove all invocations of SetSubDirSupportedPlatformsBeOSCompatible.

8ff82ee2 28-Mar-2019 PulkoMandy <pulkomandy@pulkomandy.tk>

sparc: fix debug support

Declare and use the correct registers to define a stack frame.

Change-Id: Ice3ba8f8715313a715f6b1cb553a6883541f5cc4
Reviewed-on: https://review.haiku-os.org/c/1327
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>

c085f386 18-Mar-2019 Alexander von Gluck IV <kallisti5@unixzen.com>

riscv64: Fill in more bulk architecture items around libroot/kernel

Change-Id: Ia2a86d8814d06950ea2d2d19d966c642d26f81d6
Reviewed-on: https://review.haiku-os.org/c/1302
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

e2c7bb90 01-Mar-2019 CodeforEvolution <secundaja@gmail.com>

Add Reboot Check to BPackageRoster

A bit of an explanation for these weirdly named functions:
LatestActivePackageInfos() returns the packages on the system that are
both installed and fully set up. When packages are in the middle of being
installed, LatestInactivePackageInfos() shows the packages in the process
of being installed. Once the installation process is done,
LatestInactivePackageInfos() returns nothing. If there are packages that
can't be fully activated without a reboot, CurrentlyActivePackageInfos()
will return the same information as LatestActivePackageInfos(), or if
everything has been installed and activated, it will return no packages.

Change-Id: Ia1814a5abda6d815c46e0b46dc812b4e7af81de3
Reviewed-on: https://review.haiku-os.org/c/1129
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

d04d9b25 13-Mar-2019 Lee Mon <strongleemon@rambler.ru>

BugFix 2: fix errors found by cppcheck

Change-Id: I262af4dcf3ad1dca9d7e7d88838ae90323303c1d
Reviewed-on: https://review.haiku-os.org/c/1294
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

5f48948f 05-Mar-2019 Murai Takashi <tmurai01@gmail.com>

Roster: Fix PVS 460

Replace do...while(false) loop with while(true)... loop,
so that 'continue' at line 1968 can continue loop.

Change-Id: I4d64ff2699ad0837f29d49c63b683b134c4ccc1e
Reviewed-on: https://review.haiku-os.org/c/1149
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Barrett17 <b.vitruvio@gmail.com>

579b9cd9 20-Feb-2019 Zach Dykstra <dykstra.zachary@gmail.com>

Adjust the magic incantations to fix spacing

This is my first commit, so bear with me if I've violated any standards here!

I've bumped a few offsets to fix text clipping in the Get Info window. The proper
long-term fix is to recreate this window with the layout library, but that's
a substantially larger job.

Patch set 1
Before: https://i.imgur.com/S7Pl5Qv.png
After: https://i.imgur.com/bd3H1Kw.png

Patch set 3
French: https://i.imgur.com/rpmUb5T.png
German: https://i.imgur.com/ca9DecW.png
Portuguese: https://i.imgur.com/dE8sKFI.png

The font size in the Permissions drop-down is fixed. I had previously bumped it to
12, to be inline with the default font size present in a new Haiku install. However,
that produced text clipping for French and other locales. I reverted it back to 10,
and now longer strings fit as-is.

Change-Id: I7f4412b10074c76eb5b023a231bdb6b230c8f35a
Reviewed-on: https://review.haiku-os.org/c/1073
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

1f0635d2 25-Feb-2019 Murai Takashi <tmurai01@gmail.com>

Game Kit: Fix -Werror=class-memaccess

Replace memset() with media_format.Clear() to fix
-Werror=class-memaccess, pointed by gcc8.

Change-Id: I87a72ac06947e90c468deda6bf6d7bb3b5fb4003
Reviewed-on: https://review.haiku-os.org/c/1113
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

5629675a 17-Feb-2019 Adrien Destugues <pulkomandy@gmail.com>

sparc: add defines and minimum set of required files

Gets the stage0 bootstrap to run.
Imlementation is probably nonsense at this point.

Change-Id: I10876efbb54314b864c0ad951152757cdb2fd366
Reviewed-on: https://review.haiku-os.org/c/1061
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

83a69e16 21-Feb-2019 Barrett17 <b.vitruvio@gmail.com>

MediaExtractor and MediaWriter fix constness

* Fixes an ugly hack, where the codec was initialized in the
InitCheck and prevented the method to be const too.

662583b3 21-Feb-2019 Barrett17 <b.vitruvio@gmail.com>

MediaStreamer: Extend API to support DVD navigation

* This is a general review of the code and includes a rework
of the sniffing API.

a6a6e3a8 19-Feb-2019 Adrien Destugues <pulkomandy@gmail.com>

Package kit: add likely-useful architectures

Required for bootstrapping them.

Change-Id: I179d8c73b08688946049bf18ff9151ef047e449b
Reviewed-on: https://review.haiku-os.org/c/1071
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

784c192d 17-Feb-2019 Barrett17 <b.vitruvio@gmail.com>

AdapterIO: Don't inclue RWLocker header in public file

eb6626e9 05-Jan-2019 Barrett17 <b.vitruvio@gmail.com>

MetaData: Implement copy constructor

d0064da6 03-Jan-2019 Barrett17 <b.vitruvio@gmail.com>

MetaData: Introduce missing keys

fc8e5be1 14-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

HashMap: Fix the build with GCC 7.

de48af7a 14-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

Adapt all consumers of HashSet and HashMap to the slightly-different APIs.

No functional changes intended. Tested and verified as working.

Change-Id: Iaa67c2e5f0d9aff433ac7348e63e901a6a80e589
Reviewed-on: https://review.haiku-os.org/c/1043
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

eff1e73c 12-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

shared: Merge BOpenHashTable in; remove OpenTracker's OpenHashTable.

The HashMap and HashSet classes are copied from userlandfs. The
HashMap one works as-is as it's already used in userlandfs; the
HashSet does not even compile yet.

Change-Id: I1deabb54deb3f289e266794ce618948b60be58c0
Reviewed-on: https://review.haiku-os.org/c/1041
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

514aaae7 11-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove list view menu from virtual directory window.

This reverts commit ed99a95f359befa9029c95f173b025ad2d1af1b9.

It isn't needed now that list view sizing is dependent
on system font size.

Fixes #14897.

e89985cc 10-Feb-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix drawing of B_GRAY1 bitmaps.

- Colors were reversed
- Padding was not handled properly because of a roundeing error

Add a test that shows the issue (behavior confirmed against BeOS)

Change-Id: I4c6e954fb6bdab92ad4e0e96897e78b26eb4727b
Reviewed-on: https://review.haiku-os.org/c/1025
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

72327892 07-Feb-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Extract parse_size function from ramdisk command.

Change-Id: If7dd36321e1ed2feb20b4c76ddaf303bc997d8b7
Reviewed-on: https://review.haiku-os.org/c/1018
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>

7db28d38 30-Jan-2019 Murai Takashi <tmurai01@gmail.com>

kits/locale: Fix PVS 495

Fix memory leak when realloc() fails.

Change-Id: I9062bb177919805e9973c5afd6bc01f8fbb753b6
Reviewed-on: https://review.haiku-os.org/c/1016
Reviewed-by: Barrett17 <b.vitruvio@gmail.com>

f465c7fa 31-Jan-2019 Murai Takashi <tmurai01@gmail.com>

kits/midi2: Fix PVS 820

Fix memory leak when realloc() fails.

Change-Id: Ic787ca714e4a106cc22e6186078a8e72d0a0553d
Reviewed-on: https://review.haiku-os.org/c/1006
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

6c67c7d6 01-Feb-2019 Murai Takashi <tmurai01@gmail.com>

support/String: Fix PVS 626

Fix memory leak when realloc() fails.

Change-Id: I5b44df57bdd251e5164938ed70412c909ce09df1
Reviewed-on: https://review.haiku-os.org/c/1004
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

e5d0c909 01-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

BView: Add a B_SCROLL_VIEW_AWARE flag.

* This indicates the view will manage whatever scrollbars are targeted
to it.
* Use _B_RESERVED7_ for this. It's been RESERVED since BeOS R5
(I guess it was probably something on some older BeOS version?)
and we don't really care about BeOS R4 ABI compatibility, so
that should be fine.
* Update BScrollView to not touch BScrollBar range/proportion
when the target view has this set.
* Update BListView to set this flag, always.

Fixes #14871.

Change-Id: I17027f3b63ef28da1e735c5393593496c415dce3
Reviewed-on: https://review.haiku-os.org/c/998
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

d65ffc92 02-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

libnetapi: Remove __gNetAPIStart.

Not used by anything.

67ef9f72 01-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

network: Utilize image_id argument to initialize_before.

We don't need to search for our own image_id, we already have it now,
so just use it.

c5e4e4ff 01-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

headers/kernel: Include declarations of initialization functions in image.h.

No "real" functional change, but this causes GCC7 to throw errors when
these functions are declared without the image_id argument, which
in some files they were (as this commit repairs.)

This change is largely inconsequential on x86, but on callee-cleanup-args
targets, leaving out the argument would probably cause stack corruption.

47517233 01-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

headers/kernel: Move B_WAIT_TILL_LOADED to a syscall header.

It is only used as an argument to _kern_load_image directly, not to
any of the load_image functions in image.h, so it belongs in a syscall-
specific header like other such constants.

No functional change intended.

a396188f 01-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

BSound: Add explicit cast to bigtime_t.

Fixes the GCC2 build.

aad79bda 28-Jan-2019 CodeforEvolution <secundaja@gmail.com>

Implement Duration() in BSound

Change-Id: I45244cd958acd7856a065af01625d2164b9ad033
Reviewed-on: https://review.haiku-os.org/c/963
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

d27546c1 27-Jan-2019 Rob Gill <rrobgill@protonmail.com>

kits/interface Fix PVS902

* replace unformatted printf with puts

Change-Id: I06b5f436bf51423c60ddd3cc81d86217d06c78cd
Reviewed-on: https://review.haiku-os.org/c/961
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

df9641c5 27-Jan-2019 Rob Gill <rrobgill@protonmail.com>

kits/Geolocation Fix PVS404

* Prevent use of uninitialized 'lon' by checking for successful
result prior call

Change-Id: Ifbd649a8c0c0c37f285cda11e307013929cefa12
Reviewed-on: https://review.haiku-os.org/c/958
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

4854630d 27-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

BScrollView: Resize scrollbars dynamically based on target's B_SUPPORTS_LAYOUT...

...instead of the BScrollView itself's layout flag. Thanks to Adrien and
Kacper for discussion on the mailing list.

1342ec2c 24-Jan-2019 Murai Takashi <tmurai01@gmail.com>

Storage Kit: Fix PVS 692

Merge two if statements that has same conditional expressions
at line 198 and 201.

Change-Id: I797a77d7f2b88ae2cacd8569fdd09c0d1a19d038
Reviewed-on: https://review.haiku-os.org/c/915
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

20312cfe 27-Jan-2019 Adrien Destugues <pulkomandy@gmail.com>

BSecureSocket: cleanup, no functional changes

Change-Id: I3355067efe4c5d71f8656d244e17bb11175600eb
Reviewed-on: https://review.haiku-os.org/c/910
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

1322d507 27-Jan-2019 Adrien Destugues <pulkomandy@gmail.com>

HttpRequest: write whole request to socket

Better performance by using a single write, and some servers may not be
happy about getting so many TCP fragments for the HTTP header.

Change-Id: If7139e2a7748ea423d470676e70bd523a89031b2
Reviewed-on: https://review.haiku-os.org/c/909
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

4bf8cf7a 26-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

DefaultMediaTheme: Properly set control targets.

In removing the "GroupView" class and replacing it with a real BGroupView,
I missed that it its AttachedToWindow() implementation iterated over all
child controls and set their targets to themselves. It seems this is how
the Media Kit gets change messages from them, and so the lack of this
broke changing parameter values. Whoops.

But it seems that changing menu option values has been broken for a long time
(perhaps forever?), as in order for a BOptionPopUp to send messages to anything,
its AttachedToWindow() must be called (as this sets the BMenuItem's targets
to itself, so it can forward the messages.) So now that is fixed too.

9e7d077d 22-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

Media Kit: Remove DynamicScrollView from DefaultMediaTheme.

As of the last commit, a BScrollView in layouted mode now behaves
this way by default.

Change-Id: I07bd17d6d20e494c0e2f08172c0d54b10fa5d26d
Reviewed-on: https://review.haiku-os.org/c/893
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

5b0e5c0a 22-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

BScrollView: Automatically update the scrollbar proportions in layout mode.

Since we know what size the target view is / wants to be, we can automatically
set the range, steps, and proportion trivially. In non-layout mode, we retain
the old behavior. Applications or views that need custom scrolling behavior almost
certainly will be using BScrollBars directly and not this, so this should not be
"wasted computation" in pretty much any case.

Greatly improves the appearance and UX of the default case of a layouted
view inside a BScrollView.

Change-Id: Ia6ff6ee14df96799c579e15d274fd4c849675577
Reviewed-on: https://review.haiku-os.org/c/892
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

a4f5124f 21-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

Media Kit: Rewrite DefaultMediaTheme to use layouts.

The old fixed-rect method was very error-prone in corner-cases,
resulting in half-visible (cut off) parameters, incorrectly
sized controls, etc. on various devices, which often made it
impossible to use.

While there are still a few rough edges (scrollbar behavior could
be further improved, though it's already much better than it was before),
this method is much better than the previous one.

Fixes #11592 and related tickets.

Change-Id: I65175f760bda98e42d1fc68ba8e526470bf17c25
Reviewed-on: https://review.haiku-os.org/c/889
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

5f603da0 17-Jul-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

Better shape for submenu arrow

Just use BControLook where appropriate. It already provides a nice arrow
drawing function (also used in DeskBar expander and in scrollbar

Fix second part of #8900

Changes by John Scipione:

Update menu mark and submenu arrow color with menu text color

Use text color for checkmark and submenu arrow colors, tint less black.
This means that colored bg/white text menu item will also draw a white
checkmark and submenu arrow.

Break out BMenuItem::Draw functionality into private methods _IsActive,
_LowColor() and _HighColor() methods and use them to set the mark colors.

Scale submenu arrow and checkmark with item height (which scales with
font size.)

does not align shortcuts with submenu arrows... but if you were to do
that you'd add item->Bounds().Height() / 2.

Signed-off-by: John Scipione <jscipione@gmail.com>

Change-Id: I8299094ef88bf227510b116eb1b84c261dc94723
Reviewed-on: https://review.haiku-os.org/c/341
Reviewed-by: Stefano Ceccherini <stefano.ceccherini@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

0a973154 08-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

BMenu: Look for ASCII characters < 128, not < 255.

Otherwise we will include ISO 8859-15 (é, à, etc.)
Thanks to PulkoMandy for pointing this out!

753c7e08 05-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

freebsd11_wlan -> freebsd_wlan.

FreeBSD 12's net80211 layer contains only 2 small KPI breaks from FreeBSD 11,
so we can upgrade it, apply those 2 changes to the drivers which are affected
(as the changes are in some lesser-used functions), and then upgrade all drivers
one at a time.

954a0a0c 02-Jan-2019 Stephan Aßmus <superstippi@gmx.de>

Fix some cases of updating draw state while recording a BPicture

* Also implemented recording DrawString(string, length,
BPoint[] locations), which was previously not recorded at all.
* Also implemented playing back recently added drawing commands
in PicturePlayer.cpp. I don't quite understand what this is
actually used for, but it seemed it was forgotten. I just followed
the pattern already established in the code.
* The other important bit in this change is to update the pen
location when it is needed while recording a BPicture. Often
the BView will use PenLocation() in order to transmit drawing
commands to the app_server which use absolute coordinates only.
This isn't actually so nice, since it means the client has to
wait for the server to transmit the current pen location. If there
were dedicated link-commands for pen-relative drawing commands,
the client could just keep sending without waiting for the server.
In any case, the app_server needs to update the pen location in
the current DrawState and even the DrawingEngine even while
recording a picture, because some next command may need up-2-date
state information, such as the font state and the pen location.
* I have not yet tried to find /all/ instances where the DrawState
needs to be updated while recording. This change should repair
/all/ font state changes, all versions of drawing a string, and
all versions of StrokeLine().

Change-Id: Ia0f23e7b1cd058f70f76a5849acb2d02e0f0da09
Reviewed-on: https://review.haiku-os.org/c/817
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

e7933432 28-Dec-2018 Barrett17 <b.vitruvio@gmail.com>

BCodecRoster: Remove MakeFormatFor

* I want to introduce a new way for plugins to
register for a format. Supporting the old FormatManager is
too painful at this point and not worth the effort.

fa911df6 27-Dec-2018 Barrett17 <b.vitruvio@gmail.com>

Move FormatManager back to the media_kit

* We don't aim to replicate this functionality. I don't
think this will be useful at all in future iterations.
Originally I planned to rewrite it on top of the new
BMediaFormat, but now I am of the hopinion this is
greatly unneeded.

f3e31761 27-Dec-2018 Barrett17 <b.vitruvio@gmail.com>

Move GetNextEncoder implementations to BCodecRoster

e98351d3 26-Dec-2018 Barrett17 <b.vitruvio@gmail.com>

MetaData: Revert types to uint32 and define framerate as float

* Adds some missing methods signatures.
* integer vs float framerate is a longstanging debate. In theory,
in digital a/v there should not be need for floating point framerates.
This is because unless the software is run on exoteric hardware, there
is not need for it. Unfortunately, some legacy from the past like the
29.7 hz debate (NTSC) still may need to work under floating point framerates.
Even if in pratice it'd be run at 30 hz anyway.
* In theory, to handle all those correctly we should use a rational framerate,
however most code should be rewritten to support that correctly, and
it'd add some excessive complexities.
* All integer types are reverted back to unsigned ones. There's really
no reason to use signed integers there, and more importantly the danger
for integer underflows and the attached security concerns is very big.

ec75b9fc 26-Dec-2018 Barrett17 <b.vitruvio@gmail.com>

MetaData: Add missing keys

ab6bcb08 25-Dec-2018 Murai Takashi <tmurai01@gmail.com>

Roster: Fix PVS 456-459

Remove unneed if condition, since 'error' is initialized to B_OK.

Change-Id: I2fd0edb99a3d055beafaf15f1140071a31140892
Reviewed-on: https://review.haiku-os.org/798
Reviewed-by: Barrett17 <b.vitruvio@gmail.com>

09a5380d 24-Dec-2018 Murai Takashi <tmurai01@gmail.com>

CharacterSetRoster: Fix PVS 528-530

Remove unneed if conditions, since unsigned type value is never < 0.

Change-Id: I76621f79883752cd3560c6e02f18384b1ddd9cf3
Reviewed-on: https://review.haiku-os.org/797
Reviewed-by: Barrett17 <b.vitruvio@gmail.com>

26c68df8 24-Dec-2018 Murai Takashi <tmurai01@gmail.com>

MediaDefs.cpp: Fix PVS 593

Remove unneed if condition, since 'size_t size' is unsigned.

Change-Id: I283afe6c1c24713b8efa21bd70747293fbc61899
Reviewed-on: https://review.haiku-os.org/796
Reviewed-by: Barrett17 <b.vitruvio@gmail.com>

dba28784 24-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

freebsd11_network -> freebsd_network.

FreeBSD 12 has no major changes to the ifnet KPIs that constitute a
source compatibility break, save a single one related to locking
which doesn't really apply to us, and so we don't need to create
a "freebsd12_network" directory to work through the upgrades.

52a022f2 21-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

BMenu: Accept any alphanumeric ASCII character on the first trigger pass.

Since we use sentence-cased menus, there is probably only one capital
letter in the line, so looking for only capitals won't be very useful.
Instead, accept any ASCII character (< 255) which is alphanumeric,
as these are more likely to be command-able in any given keymap.

(IsAlNum returns true for accented Latin characters also, which may
be un-command-able if they require dead keys to type.)

588a0c9f 11-Dec-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

BMenu: Use BUnicodeChar for unicode char manipulation.

It is not allowed to use isspace, tolower, etc, on character outside of
the char type range (and EOF). Use BUnicodeChar instead to avoid out of
bound accesses.

Fixes the second crash in #14753.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Some changes by me to make "index" a byte instead of character index
as it needs to be.

1ac98e3a 20-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

BWindow: Prevent CenterIn from moving the decorator bar offscreen.

The MoveTo() call is not restricted in any way; it can easily move the
window's titlebar offscreen, which is very confusing for users as if
they don't remember the window manipulation keyboard shortcuts,
dealing with such windows is often very tricky (or impossible
if the window is actually larger than the screen.)

Now we also call MoveOnScreen with DO_NOT_RESIZE and
MOVE_IF_PARTIALLY_OFFSCREEN set, which will simply get the size of
the decorator bar and then ensure it is entirely on-screen.

Fixes #11763.

9effbd7e 15-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

Remove some unused cruft from the early days.

These lines were added in 2002...

707c912e 15-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove "launch broken link" cruft.

As the comment says, this was a pre-R5 (!) hack for Be's CIFS driver.

901de869 14-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

BDirectory: Rewrite some functions for clarity.

No functional change intended. Whoever wrote these functions before
seems to have been allergic to more than one "return" statement
in a function...

26d14a31 14-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

BDirectory: GetNextEntry() should unset entry when one is not found.

Fixes #1692.

e3af9ff0 18-Nov-2018 Murai Takashi <tmurai01@gmail.com>

kits/tracker: Fix PVS 923

Fix 'entry' is assigned values twice successively.

Change-Id: I86456bf156eb48f3966439a854256e27ee87caaf
Reviewed-on: https://review.haiku-os.org/765
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

4089701d 09-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

interface: Remove some unreachable "break"s.

Spotted by Clang.

b6c5bdbd 07-Dec-2018 Barrett17 <b.vitruvio@gmail.com>

MediaFile: Properly use BMediaExtractor::GetMetaData

151343eb 27-Nov-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

BLooper: API to hijack existing thread.

I need this to use loopers in WebKit, which spawns threads and expects
to be able to turn them into event loops later on.

This is the pattern already used in BApplication, we may as well make it
available elsewhere.

Change-Id: I5939ca89d33cb3bcc92567b302c2038d976af598
Reviewed-on: https://review.haiku-os.org/735
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

b6802a95 30-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

MetaData: Remove support for uint32 keys

* We try to conform to what ffmpeg does, it is
unuseful to support metadata keys formats which
aren't really used anywhere.
* Add TODO with some infos for future improvements.

f0a1a07c 27-Nov-2018 Murai Takashi <tmurai01@gmail.com>

RegionSupport: Fix PVS 338-346

Fix 'true / false' value is implicitly cast to the integer type.

Change-Id: I2f72fcd34d2d97d20e2a98ed5efe25919a485c9d
Reviewed-on: https://review.haiku-os.org/739
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

278d03da 27-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

media_kit: Remove most private dependencies from codec_kit

* Move to BCodecKit namespace and make extensive use
of BCodecRoster.
* This is a first step in the right direction of
decreasing private dependencies. Some APIs are being
translated to the CodecKit. I am doing an investigation
on which APIs are really used among apps, so that the new
kit can be more slim and oriented toward easy development
and can be extended in the right direction instead to
continue maintaning unuseful code.
* BMediaFormats needs still a bit of love.
* General improvements in style and code maintainability.

fe9542fd 27-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

BCodecRoster: Add useful functionality from MediaFormats

d33bd9ec 26-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codec Kit: Introduce BCodecKit namespace

f20ff4fa 25-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

CodecRoster: Add GetDecoderInfo

aa6411e2 23-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

libnetwork: Move from src/kits to src/system.

Properly speaking, this is part of POSIX and not of the Be-style
"kits", and so it should live in system/ alongside libroot.
No functional change intended.

Change-Id: I0fcf78a09c76e220ad4f1719d147978ef4a3bc52
Reviewed-on: https://review.haiku-os.org/726
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

1b96c341 25-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

ChunkProvider/ChunkWriter: Move method to protected

* Remove inline destructor.

ee09c291 24-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Media Kit: Update private code

be805d02 24-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codec Kit: Rename classes to BFoo pattern

082e4ae4 25-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codec Kit: Rename files

df4074fb 24-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

Remove a lot of unused constants.

Spotted by Clang. No functional change intended.

137ac199 18-Nov-2018 Murai Takashi <tmurai01@gmail.com>

String.cpp: Fix PVS 625

Fix 'newBuffer' is assigned values twice successively.

Change-Id: Id6ec9d40ba279a68e17922931098a6a908eb7156
Reviewed-on: https://review.haiku-os.org/728
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

a9002af9 18-Nov-2018 Murai Takashi <tmurai01@gmail.com>

UndoBuffer.cpp: Fix PVS 471

Fix 'fTypedText' is assigned values twice successively.

Change-Id: Ibadf2fced0f448441e541293d04b86bc14909c35
Reviewed-on: https://review.haiku-os.org/729
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

62c7ec5c 23-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

Fix various instances of -Wset-but-unused.

Largely no functional change; most of these are just
removing the unused variables.

e0a6d5ce 23-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Fix -Werror=set-but-unused

* The error wasn't checked.

26b2733a 22-Nov-2018 Murai Takashi <tmurai01@gmail.com>

Locale kit: Fix PVS 550, 551

Use BStackOrHeapArray instead of applying auto_ptr to array.

Change-Id: I204dcb97a1bc2d047783bc6015f86b36ca0cc15b
Reviewed-on: https://review.haiku-os.org/725
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

44fc903a 22-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codec Kit: Introduce BCodecRoster

* This class include almost everything you need to
manage codecs and iterate over them.

af34e7ab 22-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codec Kit: Beauty fixes

32bcb26d 21-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Remove inadvently added merge-conflict file

* Sorry about that, I've been splitting the
commits and it did end up here.

b1c8bb2c 21-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

MediaFile/MediaTrack: Use MetaData API internally

608c9d9a 21-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codek Kit: Introduce BMetaData in Writer/MediaWriter

* Remove SetCopyright as well.

9b50ad1d 21-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

MediaFile/MediaTrack: Use metadata to retrieve copyright

3e8f721b 21-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codec Kit: Introduce BMetaData in Reader/Extractor

* Remove superfluous Copyright method.

9bbd53a2 21-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

BMetaData: Add missing functionality

* Add more metadata keys needed to support ffmpeg.
* Implement methods allowing to embed BMetaData into
* Add methods to handle more types.

f7220405 20-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

BMetaData: Finalize implementation

* Use string keys. I am still convinced we need BValue.
* Use boolean instead of status_t in return, this is
much more handy in pratical use given that there's no
really a status to check.

2897df96 18-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

bluetooth: ioctls always pass size on Haiku.

966c60f3 18-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

BMetaData: Fix GCC7 build.

1f2ddf2f 18-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codec Kit: Initial BMetaData implementation

b4d8bbd5 18-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Codec Kit: Move Managers to private headers

* Those classes are not ready for public consumption. Ideally,
I'd add a well designed BCodecRoster wrapping them. This is part
of the general cleanup I am doing to get the code in a good state
before going to finalize the design.
* I don't plan to reintroduce BMediaFile in the media2 API, and
I'd like to remove any (explicit) usage of entry_refs and things
like that.
* I plan to introduce BMetaData and BMediaFormat which is going
to be different than what we do now.
* We need to explicitly use the mime type when it's available and
it is another design consideration when CodecRoster will be introduced.

3fe994ba 17-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

MediaExtractor: Move stream_info to private

121db87f 17-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

Revert "codec_kit: Remove Perform"

This reverts commit a9ccd74af7bdbe1d42a75bdf06b11e9cbbf136b9.

9cc0f06a 17-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

kernel: Remove the B_KERNEL_AREA protection flag.

It is now no longer used.

a9ccd74a 17-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

codec_kit: Remove Perform

* Undocumented and apparently unuseful pattern.

9d90a838 17-Nov-2018 Barrett17 <b.vitruvio@gmail.com>

StreamerPlugin: Add ctor

a4ba4323 17-Nov-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix line counting in StringView.cpp

- if fText is an empty string, we would start searching past its end,
possibly leading to a crash (noticed this in HaikuDepot).
- if fText is NULL, BString would report a size of 0 lines, it makes
more sense to report a size of 1 line.

05f730b0 11-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

More WriteAttr -> WriteAttrString cleanup across the tree.

Some of these were correct as they were ... but most weren't.
There are a variety of other correct ones I didn't change over yet
that someone else probably should (GCI task?).

fea29e79 11-Nov-2018 Peter Kosyh <p.kosyh@gmail.com>

write_read_attr: fix truncated B_MAIL_ATTR_STATUS

This fix garbage attributes on e-mail messages on status changes.

Change-Id: I5293a0e71a1b84c04889fa3375488b0075aad12e
Reviewed-on: https://review.haiku-os.org/682
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

b791e997 05-Nov-2018 Axel Dörfler <axeld@pinc-software.de>

Tracker: Improved NavIcon spacing

* The spacing between icon and text now scales with the font size, too.

a55e9f52 05-Nov-2018 Axel Dörfler <axeld@pinc-software.de>

Tracker: NavMenu icons scale with font size

* Moved icon size computation into separate utility function.

fa584266 05-Nov-2018 Axel Dörfler <axeld@pinc-software.de>

Tracker: Simplified test; fColumnList cannot be NULL

35a074e0 05-Nov-2018 Kacper Kasper <kacperkasper@gmail.com>

BStringView: fix #14680

6ccc2b9f 04-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Add some missing NULL checks.

Fixes #14685.

efafab64 02-Nov-2018 Axel Dörfler <axeld@pinc-software.de>

Deskbar: Resizable tray

* Adds max width and height arguments to
* Old applications just stay with a 16x16 scaled icon, though.
* All used apps within the repository are converted to the new call
besides the input_server input method icon (that will need further
API changes in the input_server).

Change-Id: I29cc439396917be2c24135888459d31364997dff
Reviewed-on: https://review.haiku-os.org/656
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

0f03d737 04-Nov-2018 Axel Dörfler <axeld@pinc-software.de>

Tracker: List view icons now grow with font size

* This also removes the mini/large icon mode for list views; it's now
simply always matching your font size.

Change-Id: Ieedd86cc3a50dd0f950d97bbd9839384d44f8bd3
Reviewed-on: https://review.haiku-os.org/662
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

5fd3bc6d 03-Nov-2018 Axel Dörfler <axeld@pinc-software.de>

BDeskbar: Moved constants to shared header

* Instead of duplicating them in different files.

800e6fe4 03-Nov-2018 Kacper Kasper <kacperkasper@gmail.com>

BStringView: add support for multiline strings

* Actually draw the string at the bottom of the frame.
* Unfortunately BStringList cannot be cached because there is no
space left in the class.
* Change SGI and PNG translators to use it in place of BTextView.

Change-Id: I07e12bf1a8dc956d18c9624604c7b63453ad15a2
Reviewed-on: https://review.haiku-os.org/620
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

ffd9d565 01-Nov-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

BDate: do not use strftime

Using BDateFimeFormat avoids going through libroot and up again to ICU
throuhg the locale add-on. Moreover, it uses the Locale settings
directly instead of relying on the LC_* environment variables.

Fixes day names in Web+ history menu always showing in english. Tnaks to
Oco for noticing!

Change-Id: I0c7f321a6147e8f5ab31f82de836c5ad23bb321b
Reviewed-on: https://review.haiku-os.org/650
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

78b0cfc7 30-Oct-2018 Alexander G. M. Smith <agmsmith@ncf.ca>

Remove debug printf from BListView.

Change-Id: Ic3f3359305e066c27bfb071cc18a455d6f1c179f
Reviewed-on: https://review.haiku-os.org/648
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

72577355 29-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

codec_kit: Some more style and cosmetic fixes

5e4fd31e 28-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

codec_kit: Style fixes

* Remove superfluous newlines at EOF.
* Add newlines in file's head.

8ccd9c07 28-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

codec_kit: Add some padding

de42fb60 24-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

Welcome Codec Kit!

* Fix MediaDebug header.
* Add codec lib name mapping.

50cb5283 23-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

media/codec: Share media_format defs until libmedia2.so

df2639bf 23-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

Move adapter_kit API to libcodec.so

1275248a 24-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

codec_kit: First half

* Move all codec stuff into libcodec.so

bc622f6b 15-Oct-2018 Humdinger <humdingerb@gmail.com>

Fix missing localization

This addresses some of what's reported in ticket #14637.

* Keymap preferences: Localize key labels. Translators have
to be careful not too use too long words here...

* Media preferences: Fix typo "SoundFonts" -> "SoundFont"
The two popup menus, Video input/output, both use "<none>",
which when the catkeys are collected is reduced to one item.
Apparently, Italian likes to have different tranlsations for
them. I hope to fix that by using B_TRANSLATE_COMMENT with
differing comments. Not sure if that'll work...

* Network preferences: Localize "on/off" and "Enable/Disable"
in the Services.

* Repositories preferences:
Add RepoRow.cpp to DoCatalogs.

* Shortcuts preferences: Localize "Left/Right/Both/Either/None"

* Bluetooth replicant: Localize menu items and alerts.

* DeskCalc: Localize button names.

* HaikuDepot:
- Use BStringFormat and variables to replace for the WorkStatusView.
- Put package name in single quotes; nicer if you have package names
with spaces.
- Avoid leading and trailing spaces in translatable strings. Those
can be overlooked b the translator.
- Use B_UTF8_ELLIPSIS instead of "...".

Change-Id: Ia32908f9faad5188aa87c918c31229277decbda9
Reviewed-on: https://review.haiku-os.org/631
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

b84955d4 23-Oct-2018 Barrett17 <b.vitruvio@gmail.com>

media: Remove debug.h, finalize MediaDebug.h

* Funny rust from 0 AD.

7deac319 17-Oct-2018 Augustin Cavalier <waddlesplash@gmail.com>

interface: Fix -Wuninitialized in RegionSupport.

Also trim trailing spaces...

5723e0b2 17-Oct-2018 Murai Takashi <tmurai01@gmail.com>

RegionSupport: Fix memory leak

In XXorRegion(), memory allocated in if statement might be leaked.
Pointed by Clang Static Analyzer.

Change-Id: I6b8b68bc5fea7b7c1fd354f05f03d3ebb0b11b62
Reviewed-on: https://review.haiku-os.org/633
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

5475c081 15-Oct-2018 Murai Takashi <tmurai01@gmail.com>

AddResource(): use index instead of count

In AddResource(), parameter 'index' is not used.
It seems AddItem() use index instead of count.

Change-Id: I997ac96b7d32c5705606cdbf23c7fd71550c9aa6
Reviewed-on: https://review.haiku-os.org/630
Reviewed-by: Rene Gollent <rene@gollent.com>

af567e32 13-Oct-2018 Murai Takashi <tmurai01@gmail.com>

storage_support.cpp: add NULL check

check_path_name() had NULL check of path, but its result was not used.
So, add if statement to return B_BAD_VALUE when path is NULL.

Change-Id: I8ceec5d592267bf0f00f606eba44c0ecaef5a209
Reviewed-on: https://review.haiku-os.org/628
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

20e420cd 08-Oct-2018 Alexander von Gluck IV <kallisti5@unixzen.com>

kits/shared/JsonTextWriter: Correct misaligned while compare

4a3dae2b 07-Oct-2018 François Revol <revol@free.fr>

package kit: add a NULL check on requests

This avoid crashing on malformed repository URL (like missing http://).

15fed790 05-Oct-2018 Andrew Lindesay <apl@lindesay.co.nz>

Json : Fix String Writer

Tidy-up and correct logic around writing JSON
encoded strings.

related #13832

Change-Id: I1eca33e11dff4457f85a896c02331c1cd9ae1110
Reviewed-on: https://review.haiku-os.org/617
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

906af5f5 06-Oct-2018 Augustin Cavalier <waddlesplash@gmail.com>

storage: When fs_mount_volume returns < 0, it's a status_t.

The "mount" command which calls fs_mount_volume direclty handled this
properly, but this class did not; which meant that user-visible error
messages about partitions failing to mount just said "general system error"
instead of the real one.

Fixes #14540.

ebb4be2a 02-Oct-2018 Kacper Kasper <kacperkasper@gmail.com>

Make spinner buttons look consistent with other controls

Change-Id: Icb29772c91687f4c7e4795a726636cf588b83f16
Reviewed-on: https://review.haiku-os.org/610
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

106ae4ec 17-Aug-2018 CodeforEvolution <themysterymail555@gmail.com>

Remove Curl, Switch to NetApi in Package Kit

Change-Id: I92213ab60dc987175c323d1d9ed11ac8b3517f2f
Reviewed-on: https://review.haiku-os.org/475
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

48a6df08 16-Sep-2018 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Eliminate the double border in the OpenWithWindow.

Change-Id: I43e9b15c4cd7f4986fa7c1231cc8ca89676866bf
Reviewed-on: https://review.haiku-os.org/575
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

497f099f 16-Sep-2018 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Clean up AddPoses threads properly.

They may still be running at the point we detach from the window, and
as we stop watching everything else at that point (and the threads
themselves depend on the window looper as the global "lock"), we
need to tear them down then.

We especially cannot do this in the destructor, as there are some
virtual methods that the threads need during their teardown which
obviously will not work in ~BPoseView.

Fixes #13371, and potentially other Tracker crashes that occured
as a result of closing the window while the add-poses tasks were
still operational.

Change-Id: Ib7ec0d1d413096be899a05887399f5b087eb8f99
Reviewed-on: https://review.haiku-os.org/574
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

f436972c 16-Sep-2018 Augustin Cavalier <waddlesplash@gmail.com>

BString: Treat NULL passed as replaceWith as an empty string.

Fixes the tests added in the previous commit, and also #8552.

Change-Id: Idf9459474bc66054f94cf66065ed6fcf9c60cece
Reviewed-on: https://review.haiku-os.org/572
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

043b00fb 13-Sep-2018 Augustin Cavalier <waddlesplash@gmail.com>

BNetworkDevice: Fix memory leaks and address comments.

Thanks Axel and Jerome for the reviews!

Change-Id: I4f116c540cf59ba74b79d9d2f95ed40edc9c4174
Reviewed-on: https://review.haiku-os.org/557
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

4e5aaaa7 12-Sep-2018 Augustin Cavalier <waddlesplash@gmail.com>

BNetworkDevice: Implement Scan().

This depends on the previous commit to return the correct error code
from ioctl().

If there are no VAPs running (which is the case after a forced disconnect
from an access point), scans will fail. In that case, we call
IEEE80211_IOC_HAIKU_COMPAT_WLAN_UP, which will restart a VAP, and then
initiate the scan.

Change-Id: I732aefe67e386dbb0ed3d232ed9deda678132601
Reviewed-on: https://review.haiku-os.org/551
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

aa39f874 12-Sep-2018 Janus <janus2@ymail.com>

BColumnListView: hscrollbar matches visible columns

* _VirtualWidth() ignores invisible columns
This makes the horizontal scrollbar match the width of the visible columns.
Also trigger an initial update of the scrollbars.
* Fixes #14480

Change-Id: I7d4b27a8fdca58c150ac47f9b948b127fb275fdf
Reviewed-on: https://review.haiku-os.org/543
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>

c3ac0a72 11-Sep-2018 Augustin Cavalier <waddlesplash@gmail.com>

BMenuItem: Remove ourselves from the super menu on destruct.

This fixes the (intermittently) crashing test added in the previous commit,
and should also fix #12024 and #14348.

Note that this is a slight behavioral departure from BeOS, though since
BeOS crashed when this was done previously, it shouldn't cause any
other problems.

Change-Id: I90b6132ff7741b8d6cb601375a9b11fc3ffacb40
Reviewed-on: https://review.haiku-os.org/541
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

81d0a0e0 11-Sep-2018 David Murphy <murphman@gmail.com>

BColumnListView: Always update the reference rect in ::FindVisibleRect...

...if the row is present in the list, but continue to return false if the
row is not currently visible on the screen.

Part of #11675. Cherry-picked from https://review.haiku-os.org/442.

a609673c 10-Sep-2018 Andrew Lindesay <apl@lindesay.co.nz>

Support : Fixes for Relative URL Handling

When URLs combine a base URL with a relative part, the relative part's
path component was being pre-processed. This removed any ".." from the
path and in some cases in the unit test cases, the ".." should have been
retained and then only later applied to the base URL. This changes
fixes this so that the relative part is not pre-processed and is applied
with it's path in a raw state.

Completes Fixes for #14377
Change-Id: I9cebb8599889494e11f40a3b54c87ebca3ed1a21
Reviewed-on: https://review.haiku-os.org/529
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

57067377 10-Sep-2018 JackBurton79 <stefano.ceccherini@gmail.com>

PictureDataWriter: Fix invert rect.
Resetting the drawing mode to B_OP_COPY was not right, since the previous mode could be anything.
Use WritePush/PopState() instead.

Change-Id: If9cba2c46bf372fd0164d951fcc49696cf72d576

3cc5e76f 04-Sep-2018 Andrew Lindesay <apl@lindesay.co.nz>

Support : Fixes for Verbatim Regeneration of URL String Form

A URL in string form should be able to be parsed and then verbatim
regenerated according to 'UrlTest'. This change fixes this ability
for the case where there is a '?' initiating a query or a '//'
initiating a host/authority section.

Partly Fixes #14377

Change-Id: I6547253c3cdc22d79514edf75284e9725d1a2d17
Reviewed-on: https://review.haiku-os.org/512
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

89780a09 04-Sep-2018 Jérôme Duval <jerome.duval@gmail.com>

ZstdCompressionAlgorithm: handle ZSTD_error_dstSize_tooSmall.

Change-Id: Ib6dca7ac8457afae845fad24514945b4ecd521cc
Reviewed-on: https://review.haiku-os.org/509
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

e54f86aa 01-Sep-2018 Augustin Cavalier <waddlesplash@gmail.com>

libshared: Change string_for_rate to use KiB/s instead of Kbps.

string_for_size uses KiB, etc., and so when the two are combined (e.g.
pkgman's progress display), it looked especially strange to have two
different units.

37219550 27-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

Versioning: Add BETA_1 and PRE_BETA_2 version constants.

* PRE_BETA_2 is now the default in master.
* For libbe: R1/alpha4 used internal=8, but nobody bumped master
at the same time, so now we are on internal=9.

8636e31a 26-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

BNotification: Fix copy-n-paste bug in OnClickRefAt.

Fixes #14405.

8f30879b 21-Aug-2018 Andrew Lindesay <apl@lindesay.co.nz>

Support : Validation for Host Portion of URL

Partly Fixes #14377

Change-Id: Ia611d3653d2c16c6dcdc48ce57bd61bb6e6db366
Reviewed-on: https://review.haiku-os.org/476
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

6ec69f44 23-Aug-2018 JackBurton79 <stefano.ceccherini@gmail.com>

Small style fixes

Change-Id: I1db785122efe70e416b4073c06148c856c5a5e8d

fc48ae3f 20-Aug-2018 Rene Gollent <rene@gollent.com>

Debugger: Fix #14375, #12343.

- When a job is aborted, instead of calling into the user interface directly
to reset the status message, post a message to do so. Also, only post the
message if we aren't already in a terminating state. Otherwise, if jobs
were still running while the team debugger is executing its destructor, it
would attempt to make calls to the already destroyed user interface. This
bug has likely been with us for quite some time, but was hidden by incorrect
ref counting in the past (see #12343).

44cff45d 20-Aug-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

HttpRequest: chunk length are in hex

Thanks to mmlr for spotting this. The wrong format specifier was used,
which would lead the server to get the wrong size and do strange things.

Chunked uploads should now work a lot better.

While I was at it, put the line termination in the printf to save a
write to the socket (these are unbuffered and each of them costs us a
syscall, and in some cases this has been found to confuse webservers as
we end up sending super small TCP packets).

3a50df1b 01-Aug-2018 Murai Takashi <tmurai01@gmail.com>

Network kit: Fix -Wformat-overflow

Increase array size, since gcc8 x86_64 warns 'sprintf' output
between 2 and 20 bytes into a destination of size 16

Change-Id: I641db97d963b64b0c3434cd498f29f4dcb61c373
Reviewed-on: https://review.haiku-os.org/472
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

466b81b6 16-Aug-2018 John Scipione <jscipione@gmail.com>

Window: Max-Zoom windows with Shift+Ctrl+Alt+Z

Since hrev52136 holding Shift while clicking the zoom button will
ignore the Deskbar and resize the window to take whole screen area
(the original behavior).
It'd be nice if the keyboard shortcut for zooming - Ctrl+Alt+Z
recognized an additionally held Shift in the same way.

Add shortcut to window.

Fixes #14365

Change-Id: I919ff2c3e8c41e022f8c675ea631daf18ff41eb3
Reviewed-on: https://review.haiku-os.org/470
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

fd25b902 14-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

BControlLook: Add FBC padding.

Fixes #14295.

0e44a703 14-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

BTabView: Don't assume BControlLook is in BPrivate.

Eventually it won't be, and we have a "using" directive so it is
accessible from the global namespace, so we can make this change

7457ccb4 13-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

BMessageFormat: Rename to BStringFormat.

The ICU class is named MessageFormat, but on Haiku, it sounds too much
like something related to BMessage (which it isn't in the slightest)
and not part of the Locale system. It works almost entirely with BStrings,
so naming it BStringFormat makes much more sense.

OK'ed by PulkoMandy and Humdinger.

2f3e1117 13-Jan-2018 Sean Healy <jalopeura@users.noreply.github.com>

BOutlineListView::EachItemUnder gets too many items

EachItemUnder selects items that are not in fact under the superitem
passed to the method.

ticket: #13730
Change-Id: I12a2e29204e1b9bbecd5704e60a02e3613a7f4fd
Reviewed-on: https://review.haiku-os.org/52
Reviewed-by: waddlesplash <waddlesplash@gmail.com>

81375d4f 11-Jul-2018 Jérôme Duval <jerome.duval@gmail.com>

Package Kit: add Zstd compression.

Change-Id: Idbdb7cf1bde659046a88ea69a76e3b5fc4cd7013
Reviewed-on: https://review.haiku-os.org/323
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>

00cbe4cc 08-Aug-2018 Murai Takashi <tmurai01@gmail.com>

Replace strncpy with strlcpy

Since destination size equals number of characters to copy.
Pointed out by gcc8. [-Werror=stringop-truncation]

Change-Id: I8f2118129ec2324bb1f93857f5abfdf121c864f0
Reviewed-on: https://review.haiku-os.org/450
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Skipp_OSX <jscipione@gmail.com>

57893202 07-Aug-2018 Rene Gollent <rene@gollent.com>

Debugger: Fix #14321.

- Adjust to inherit from DIENamespace, as gcc can and will use it as a
container in some circumstances.

- Add accessor for member functions.

- Adjust recursive walking for types to take into account any DIENamespace,
not just DW_TAG_namespace specifically.
- Factor out adding function to list into a helper.
- When retrieving the list of functions, perform a similar recursive walk as is
done when building the types table, as some subprograms are apparently not
always added to the root compilation unit entry. Curiously, this behavior
seems to be relatively specific to a struct/class type declared inside a
function in GCC's case, but based on the DWARF spec, there does not appear to
be any specific restriction as far as where these can be nested, so be a bit
more paranoid to ensure we don't encounter similar cases in the future.

07792948 04-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

Package Kit: Fix logic reversal in PackageInfoStringBuilder.

This function is used when serializing a BPackageInfo object, which is not
done very often, and flags are used even less often. But both of these things
are done for the system packages, as they have the "system_package" flag
set, and are processed by "update_package_requires", and so this meant
that the "system_package" flag was turned into the "approve_license" flag.

9a90ee3a 02-Aug-2018 Jérôme Duval <jerome.duval@gmail.com>

Revert "Switch default fixed font from NotoMono to NotoSansMono"

This reverts commit b2acee1cb986b696adfad7daabfe9279949a3e54.

Reason: NotoSansMono is not per se a fixed font.

b2acee1c 25-Nov-2017 Humdinger <humdingerb@gmail.com>

Switch default fixed font from NotoMono to NotoSansMono

Change-Id: Ib9eab5a2e266393b234cf7f4a6934fd58e31c943
Reviewed-on: https://review.haiku-os.org/48
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>

a31d07a2 01-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

libnetapi: Fix style issues in previous commit.

0dc3ab4f 01-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

libnetapi: Do not use the freebsd11_network headers globally.

Since they were being Use'd at global scope, the FreeBSD versions
of a number of POSIX headers were being used instead of the POSIX ones,
which breaks the build on non-x86 as these headers presently do not work

Instead, just include the base directory, and then include the compat
headers manually in the one place that actually requires them.
Also fix all the other files that expected errno.h and others to
be included implicitly, which they now are not.

This should fix the PowerPC and (part of the) ARM builds.

b3b69f81 01-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

netresolv: Merge a patch to getaddrinfo from NetBSD.

This block was originally disabled in libbind, and we enabled it
independently; and so did NetBSD. But they also made one other

From: christos <christos@netbsd.org>
Date: Thu, 28 Dec 2017 15:12:15 +0000
Subject: [PATCH] PR/52837: Michael Kaufmann: getaddrinfo() resolves "
www.example.com" to Apply the patch from FreeBSD and explain the

c9431a67 01-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

netresolv: Mark code changes with __HAIKU__.

I attempted to merge NetBSD's new irs code, but their changes turned
out to be too invasive to do trivially, but in the process I had to
read our commit logs to find what we've changed, so at least I can
mark that.

4cc9ce9d 31-Jul-2018 Augustin Cavalier <waddlesplash@gmail.com>

netresolv: Merge patches from 2017 to current HEAD.

Commits merged from the semi-official Git mirror of NetBSD
trunk (https://github.com/IIJ-NetBSD/netbsd-src/).

Commit authors/messages in chronological order follow:
From: christos <christos@netbsd.org>
Date: Thu, 28 Sep 2017 23:32:01 +0000
Subject: [PATCH] PR/52578: Benjamin M. Schwartz Set the AD bit when DNSSEC is
enabled (RFC 6840 Section 5.7).

From: lukem <lukem@netbsd.org>
Date: Fri, 2 Mar 2018 06:31:53 +0000
Subject: [PATCH] PR/48585: Set errno when returning NULL for AF_INET
In inet_ntop4(), errno wasn't set before returning NULL.
Seems like an oversight in the existing fix for PR/48585.
Noticed by code inspection.

004094b5 01-Aug-2018 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Bug found by unused-but-set-variable, entry should be updated

Verfied by DeadYak

2d93cf97 31-Jul-2018 Barrett17 <b.vitruvio@gmail.com>

AdapterIO: Fix -Wtautological compare.

* B_MEDIA_SEEKABLE was once a flag with one bit set. Due
to the complexity of streaming mediums, I had to split
and never noticed that this broke the flag check.

* Reported by Murai Takashi through gcc8.

55557aa1 27-Jul-2018 JackBurton79 <stefano.ceccherini@gmail.com>

CURLOPT_XFERINFOFUNCTION is available since libcurl 7.32.0 only.
Since it's just cosmetic, allow compiling with older libcurl, too.
fixes build on RedHat/CentOS 7

Change-Id: I169ad84d15e61012d1d38a9b41af7eef81683bf7

fb7812fa 23-Jul-2018 John Scipione <jscipione@gmail.com>

BWindow: default Zoom() maximizes window when shift held down

In hrev51623 the default BWindow::Zoom() method was changed to respect
Deskbar, that is to say that the Window will zoom to screen area minus
the area taken up by Deskbar.

Some have complained that they miss the old maximize to full screen
frame behavior. This commit updates the default BWindow::Zoom() method
so that pressing Shift+zoom will maximize the window ignoring Deskbar,
the window will resize itself to take up the entire screen frame.

Note that if you override Zoom() in your app window then shift+zoom
will no longer work, this trick only works for apps which use the
default BWindow::Zoom() method.

Change-Id: Ic9f8fcb54f58663663db737103f6a7b42171ef46

46bf100b 20-Jul-2018 Hrishi Hiraskar <hrishihiraskar@gmail.com>

Tracker: Fixed wrong error message in ContainerWindow.cpp

fe66a314 22-Jul-2018 waddlesplash <waddlesplash@gmail.com>

Revert "BScrollBar: Add lines and dots knob styles to scroll bar"

This reverts commit ec1b18c58ae632444200f7e1f952ddd2e31048fa.

This was not well enough reviewed, and it seems that at least some
consumers of the old API (e.g. WebPositive) need more than the new one provides.

Change-Id: Ie7ad1fc70dab889922424298661504b00f66d31d

56a7cb31 19-Jul-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix build.

d8d6c655 19-Jul-2018 David Murphy <murphman@gmail.com>

BListView: Restore selection to MouseDown and fix multi-select drag'n'drop

* Moves list item selection logic back to MouseDown from MouseUp to improve
application compatibility and responsiveness
* Fixes multi-select drag and drop by not modifying the existing
selection if a MouseDown event is on a selected item.

Fixes #9190, #14264, #14289
Change-Id: I58050b403dac985f98e03faa72de1ebc5d24f95b

bc8427c5 04-May-2018 Hrishi Hiraskar <hrishihiraskar@gmail.com>

Tracker: Allow add-ons to dynamically extend popup menu.

An add-on may now add custom entries to the popup menu, in order
to provide more than one action.

Change-Id: Ib4726c0c1e70c59e3ba4d752df24b76cfee1c4a4

1e29bfd7 18-Jul-2018 Augustin Cavalier <waddlesplash@gmail.com>

Update all remaining consumers of the FreeBSD compat headers.

3c42c902 18-Jul-2018 Augustin Cavalier <waddlesplash@gmail.com>

Revert changes to BTextInput's text-rect calculation.

This reverts commit 11dee0444f911abba5555d3be056fb64f1f5eea4.
This reverts commit 1641a0516d9e8228a0189a83a688532d6554d271.
This reverts commit 484f64f315680eae5dcf5ad8b74325c3debc6da9.

These changes break various edge-cases in BTextInput (e.g. typing off the end
of a long string, using the arrow keys to navigate while out-of-bounds),
and nobody has found any fixes for them in the nearly-a-year since they've
been instanted, so they are now being reverted.

Reopens #12608, #13796.

9ece4920 17-Jul-2018 David Murphy <murphman@gmail.com>

BMenu: BMenuBar submenus at screen edge moved onscreen instead of scrolling

Fixes #9093
Change-Id: I1322c0cd8ba4bbfddace037ed8a8ef666ebe7fe3

e3f7fe94 16-Jul-2018 David Murphy <murphman@gmail.com>

BMenu: Submenu opening direction follows parent opening direction

Fixes #4859
Change-Id: I8e89afc3ad982d899428e3038fed354a78d04981

ec1b18c5 14-Jul-2018 John Scipione <jscipione@gmail.com>

BScrollBar: Add lines and dots knob styles to scroll bar

Fixes #9137

Move scroll bar drawing into HaikuControlLook

Added B_SCROLLABLE flag to BControlLook

Update FakeScrollBar in Appearance to also draw using HaikuControlLook.

Focus works on scroll bars again, used by FakeScrollBar... and probably
nowhere else.

Added private _ScrollingEnabled() convenience method to BScrollBar and
use it in a few places making.

Create ScrollBarPrivate.h header to share a couple of scroll bar related
enums with HaikuControlLook that come from BeOS Scroll Bar prefs.

Stuff arrow_direction enum into BScrollBar::Private as it has been
succeeded by a similar enum already present in BControlLook and is only
around now for BScrollBar::Private::DrawScrollBarButton.

Change-Id: Idc31ee41de091ba45ded2f0315a004af00143803

70f1070b 15-Jul-2018 Janus <janus2@ymail.com>

BColumnListView: BSizeColumn sort with big files works as expected

- Use off_t to compute the difference
- Fixes #14279

Change-Id: I253f16bb75501904ff59ac603a4680c66cfec33f

e4433ad0 07-Jul-2018 David Murphy <murphman@gmail.com>

BMenu: Fix crash and keyboard navigation on 'recent items' menus

* Prevents crash mentioned in Trac, but also enables keyboard navigation
to 'recent items' menus such as "Open files..." in MediaPlayer and DiskProbe
* Check selected menu and submenu exist in menu tracking thread before accessing
* Update BMenu::AttachedToWindow to pass in keydown param to _AddDynamicItems

Fixes #9251
Change-Id: I3031b8e9c1b9dd4ef1187c5a6b8ab7925e3496d2

3b17d8dd 27-Jun-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot / PackageKit: Repositories 'Identifier' URL

Repositories are identified with a 'url' in the
remote 'repo.info' file. There is also a
'base url' which is the URL locally with which
the system is able to access the repository
data on. There is some confusion between these
two terms in the source. This change aims to
separate the two out and consistently name them.
The settings for the repository locally also was
not storing these values and that has been fixed.
Debug info about the repositories also did not
display the two urls consistently and will now
also do so. Finally, HaikuDepot now correlates
locally configured repositories with the data in
HaikuDepotServer using the identifier URL; this
makes the use of mirrors with HaikuDepot possible.

Fixes #13888
Change-Id: I66dfe589b05c24e1ab123a6945352e0f24b60bf1

e2d19ae5 04-Jul-2018 John Scipione <jscipione@gmail.com>

BListView: do not modify selection on MouseUp if drag & drop

bug seems to have been introduced only recently in hrev52062

6fdf2dd2 04-Jul-2018 John Scipione <jscipione@gmail.com>

Tracker: center text horizontally again

We alwasys draw text at the bottom of the calculated TextWidget
rect, that's why it needed to be centered to get the desired
placement. However, there is two places

6b9353b4 04-Jul-2018 John Scipione <jscipione@gmail.com>

Tracker: Revert to previous CalcRectCommon bottom calc

... in list mode. Fixes #12997

This bug was introduced in hrev50528 along with new 32x32 icon size
in list mode. I'm not sure what I was thinking on this particular
line but reverting it seems to fix the problem and logically the
original code makes sense.

f5face41 02-Jul-2018 David Murphy <murphman@gmail.com>

BListView: Fix drag n' drop in multi-select mode

Move list selection logic into MouseUp instead of MouseDown
Change-Id: I4e7c7f6636dabce130578777b5e1203d6695499a
Fixes #9190

12ed45b6 18-May-2018 Murai Takashi <tmurai01@gmail.com>

Media kit: Suppress -Werror=class-memaccess

* Add media_format::Clear(), media_format::Unflatten().
* Replace memset() with media_format::Clear()
* Replace memcpy() with media_format::Unflatten()

Fix #14156

Change-Id: I38ebc2de4915b954a15b6f4f6b40d016506910e5

4215eb60 21-Jun-2018 Augustin Cavalier <waddlesplash@gmail.com>

Debugger: Fix some broken comparisons.

* Missing parentheses in integer comparison inversion
* !=, not ! at the beginning of expression

Spotted by Clang.

582afd9a 21-Jun-2018 Augustin Cavalier <waddlesplash@gmail.com>

interface & app_server: Fix missing parentheses near ternary operators.

+ has greater operator precendence than ?, so we need parentheses when
using both in expressions. Both of these look like actual bugs.

Spotted by Clang.

9b83a2a0 21-Jun-2018 Augustin Cavalier <waddlesplash@gmail.com>

BJoystick: Fix fJoystickInfo initialization.

joystick_info contains BLists which initialize themselves upon new(),
and Clang warned (correctly) that using memset() overwites that, as well as
RTTI and other data that they contain. So instead, only memset the first
part of the struct, and then manually initialize the other members.

Fixes #14217.

9216fc01 18-Jun-2018 Augustin Cavalier <waddlesplash@gmail.com>

More class/struct mixup fixes.

Spotted by Clang.

211cb77a 14-Jun-2018 Rene Gollent <rene@gollent.com>

Debugger: don't auto-download packages non-interactively.

- When in non-interactive mode, i.e. saving a crash report, don't
allow the image debug info loader to automatically grab missing but
available info packages. Otherwise we potentially download very large
packages with the user being entirely unaware, i.e. the 200MB debug
information package now present by default for gcc7's libgcc. This
should eventually be made a configurable preference though.

cd6365c7 17-May-2018 Jérôme Duval <jerome.duval@gmail.com>

style fixes

b08627f3 04-May-2018 Murai Takashi <tmurai01@gmail.com>

Fix catching polymorphic type by value

Replace catching polymorphic type std::bad_alloc 'by value'
with 'by reference'.
Pointed by gcc8

356fc3bf 09-May-2018 Jérôme Duval <jerome.duval@gmail.com>

BWindow: fix debug build.

ad33fd78 08-May-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

BAffineTransform: de-virtualize some calls in flattening code

The Flatten and Unflatten method should check the size according to the
matching FlattenedSize method, not a possibly overriden version.

May also fix #14128 since we avoid use of the vtable by doing this.

630e3f14 11-Mar-2018 Jérôme Duval <jerome.duval@gmail.com>

View: move BAffineTransform out of ViewSetStateInfo.

the size of BAffineTransform is architecture dependent, so we transmit
its contents in a standard array instead.

Change-Id: I907110742168846a869a48bb2d116cc5292ec7d0

27bba9c3 17-Mar-2018 Jérôme Duval <jerome.duval@gmail.com>

registrar: flat_app_info size was arch dependent.

copy each member of app_info instead.

Change-Id: Ica8d0a195b2dbaaf57d28f2fe2f7efd73c37b2c4

7dba237f 05-May-2018 Adrien Destugues <pulkomandy@pulkomandy.tk>

BSecureSocket: re-enable RSA cipher suite

my.justenergy.com allows only RSA, so we can't connect there without
this. Other websites may have a similar problem.

Also improve the handling of the error, as it was giving a generic
"general system error" to the user.

Fixes #13975.

a77aa747 25-Apr-2018 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Added basic logging facility

* The daemon now stores many events in am internal log.
* You can use "launch_roster log" to retrieve it.

e3becd53 23-Apr-2018 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Ternary operator proper precedence.

Going through PVS Studio blogs on Haiku.

b1f1332e 05-Apr-2018 Jérôme Duval <jerome.duval@gmail.com>

PackageKit: use the correct kernel headers.

The debug build of the packagefs kernel addon failed because user_memcpy had no type.
Using the correct headers for user_memcpy and IS_USER_ADDRESS fixed the issue.

b45e8b1e 19-Mar-2018 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : additional debugging for json-rpc invocations

a25f7264 22-Mar-2018 Jérôme Duval <jerome.duval@gmail.com>

BString: fix Split() for multiple characters separators...

as suggested by Janus in #14045. Thanks!
* add a unit test for BString::Split().

7cf48d4e 13-Feb-2018 hy che <cvghy116@gmail.com>

TextView: Remove redundant check in ScrollToOffset as PointAt() already does the check.

Change-Id: I2bf541fca84ef27749484ee1be05fb9debac32e2

364cbeb2 17-Mar-2018 Rene Gollent <rene@gollent.com>

Debugger: Adjust type handling with namespaces.

- In some, but not all cases, gcc5 generates type information where the DIEType
is a child of a namespace rather than of its containing compilation unit.
This needs to be taken into account when building our name lookup table, as
we'll otherwise not find the full definition of such types when attempting to
locate them for corresponding variables. Fixes an issue reported by Axel.

09320f38 10-Mar-2018 Jérôme Duval <jerome.duval@gmail.com>

Roster: fix debug build on x86_64.

d87eecee 05-Mar-2018 Humdinger <humdingerb@gmail.com>

Layout changes to AboutWindow

Most icons don't look that nice when blown up to 128px:

Before: https://lut.im/KNZw0f8j5r/3lnnRzzFXJSewq9Y.png
With this change: https://lut.im/3XcXJZv6ad/LsYKadFOiIJo1Kbz.png

* Use a 64px icon
* Make the window resizable
* Make the window a bit wider

Thanks Janus for hints where to insert SetExplicitMaxSize()...

2cb3cabc 03-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Revert debugging edits

* The -a argument ended up in my git commit inadvently,
sorry about that.

6072c6f1 03-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Cleanup after disconnect

65a94fbb 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Fix Disconnect bug

852b6295 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Rename IsRunning to IsStarted

a6ac14c7 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Add ClientRegistered callback

1c15261f 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Add connection name handling

83bcc405 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClientDefs: Cleanup unneded methods

d717df83 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClientNode::GetLatency use base version

9391114b 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClientNode: Remove unuseful Disconnect calls

* While those calls were unharmful, better to remove them.

f015d06b 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Remove Preroll and SyncTo

6dc7d854 01-Mar-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Review format negotiation mechanism

182ec76b 28-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Remove format change protocol

444d8ec0 26-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Hide connection callbacks

* At this point we want to avoid the user calling the callbacks
in the form of BMediaConnection. Instead we force to use the
BMediaInput and BMediaOutput versions.

ff56eda5 26-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Move buffer management on producer side

9cf18a39 25-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: BufferSize should be inherited

* While it's trivial for audio to calculate the buffer size,
it isn't the same for video.

befa252f 24-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Non simple connections should be inherited

* BSimpleMediaConnections are provided for that.
* Make SetOutputEnabled private.

c61ffa96 24-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaConnection: Remove latency range interface

* In preparation for the introduction of BMediaGraph.

72958d8b 23-Feb-2018 Barrett17 <b.vitruvio@gmail.com>

MediaClient: Remove SetRunMode

77007502 18-Jan-2018 Rene Gollent <rene@gollent.com>

Debugger: Rework type handlers to allow for custom selection.

- Add name field for presentation purposes. Adapt subclasses accordingly.

- Add methods to count and retrieve all type handlers for a given type,
and adjust CreateValueNode to allow for passing in an explicit handler.
Adjust callers accordingly.

- Add helpers to store an explicitly chosen type handler for a node.

- ActionMenuItem subclass that takes care of reference management
for its contained type handler.

- Add context menu for choosing type handlers if applicable. Implement
support for invoking said type handlers in a similar manner to explicit
- Adjust saving/restoring the view state so that hidden nodes are taken
into account as well. This is necessary since it may be the case that
the handler had to be applied to the hidden child rather than the visible
node (i.e. the BMessage handler when applied to a pointer to a BMessage).

All together, these changes allow choosing to switch between views of a type
when the Debugger has multiple handlers for it. For example, for BMessages
this allows switching between displaying the raw underlying structure vs
the decoded message content.

43e75989 30-Jan-2018 Jérôme Duval <jerome.duval@gmail.com>

libnetwork: link against the arch specific libbsd and libutil.

08a4536b 12-Dec-2017 Axel Dörfler <axeld@pinc-software.de>

BMessage: Added missing [Get|Set]Pointer()

* SetPointer() was declared, but not defined.

ac9e464b 12-Jan-2018 Rene Gollent <rene@gollent.com>

Debugger: Fix various issues in the DWARF subsystem.

- Fix typo in get_attribute_name_classes which resulted in us not
handling DW_AT_linkage_name properly.
- Fix incorrect class specification for DW_AT_default_value due
to inconsistencies in the DWARF documentation (the table of attribute
classes indicates it is only a reference, but the detailed description
indicates it also being possible to be a flag or constant, both of
which gcc outputs).

- Add accessor for DIEClassBaseType's inner types.

- When looking up types, create a basic target interface to pass on
to the type context. Otherwise, type lookups that required DWARF
expression evaluation would crash.
- When building the type name table, we now recursively walk a class's
inner types, and add them to the list as well. This omission would
cause the debugger to lack the type description for such classes,
and consequently be unable to display their details in the variables

c0936b5a 11-Jan-2018 Rene Gollent <rene@gollent.com>

Debugger: Another set of #13800 fixes.

- Let BColumnListView take care of deleting columns. The previous
approach was resulting in the columns being leaked.

- Don't detach the UI reference, as TeamDebugger will acquire its own.

- Cleanup of file panel handler.

- Clean up marker manager.

- Clean up registered objects in destructors.

- Clean up hash tables.

- Fix reference handling for settings.

ffe684b9 11-Jan-2018 Rene Gollent <rene@gollent.com>

Debugger: Fix type issue in BList handler.

- BList's item count member is an int32. However, when the handler was reading
said variable, it was mistakenly reading the number of bytes corresponding to
to the address size of the architecture instead.This would cause the read to
fail, and consequently BList and/or BObjectList variables to not display
their contents properly on x86-64.

3995592c 10-Jan-2018 Rene Gollent <rene@gollent.com>

Debugger: Fix #13939, more work on #13800.

- Fix various cases where OpenHashTables weren't being cleared properly.
- Fix various reference counting errors.
- Simplify FileManager reference handling.
- Fix bug in LocatableDirectory where the directory named '/' would have its
name returned as empty. This would lead to failed lookups for entries already
in the table, and ultimately corrupted the hash table when deleting unused
entries, leading to #13939. This was previously never noticed due to the
entries not being freed properly.
- AbbreviationTable wasn't clearing its entries.

8c44fc0f 08-Jan-2018 Jérôme Duval <jerome.duval@gmail.com>

PackageKit: tweak classes used by packagefs to write to user buffers.

when compiled in kernel mode, BMemoryIO::WriteAt() and BBufferDataReader::ReadData()
now check the buffer to write to, and eventually call user_memcpy() instead of memcpy().

b1ab02c4 31-Dec-2017 Rene Gollent <rene@gollent.com>

Debugger: More memory management fixes.

- Type name/info entries weren't being freed properly.

- The array of entries itself was being destroyed, but not the actual
objects. Consequently none of the DIE objects were ever being freed.

- The register rules array wasn't being freed.

- References to entries weren't being released. Some more work remains to be
done here though, as a subset of these objects still have a non-zero ref
count in the end.

8a9e1e0d 31-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

Removal of non-Haiku target platform logic from build system (part 1.)

Following recent changes to use libroot_build on Haiku also, it is now
actually impossible to build Haiku components on non-Haiku platforms
(BeOS R5, Dan0, BONE, Zeta), so we can remove any logic related to this.

This is only the first part; still to be removed are:
* SetSubDirSupportedPlatformsBeOSCompatible

3d9b5693 28-Dec-2017 Rene Gollent <rene@gollent.com>

Debugger: Further work on memory leak hunting.

- Properly delete stack frame selection entries in destructor.

- The reference to TeamDebugInfo wasn't correctly initialized to own,
leading to TeamDebugInfo never being destroyed.

- Also clear source code reference in destructor.

- Release references to specific infos in destructor. These are acquired
on our behalf when loading the image info, but were never released,
leading to the latter never being freed.

- Release references to files in destructor.

- Release entries in various destructors.

Somewhat improves the situation in #13800, but is still far from complete,
as a thorough review of this nature hasn't ever really been done.

8bb774fc 27-Dec-2017 Rene Gollent <rene@gollent.com>

Debugger: Fix a memory leak.

- In several cases, BReferences on thread handlers after a call to
_GetThreadHandler() weren't correctly initialized to account for
that function implicitly acquiring a reference on our behalf, leading
to the reference count to spiral out of control, and consequently the
handler would never be freed. Found while attempting to address
#13800, likely more to come.

33056110 25-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

Mail Kit: Delete now-unused DES implementation.

197c6599 19-Dec-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

libnetwork: re-introduce gethostbyname_r and gethostbyaddr_r

These are needed by existing openjdk package. Let's keep them until we
get the OpenJDK build working again and can remove the requirement.

a9020afc 29-Nov-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

BHttpHeaders: fix gcc5 build.

ed8f28a4 26-Nov-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Move HeadersReceived hook after parsing of cookies

I still don't get what's happening, but doing the cookie parsing at the
same time as the main thread is handling HeadersReceived seems to
trigger a memory corruption, and it will escape all my attempts to debug
it (adding printfs or any other slight change to the code will make it
go away). So just chage the order we do things and hope that's enough to
always avoid it.

As a side effect, HeadersReceived can now rely on the cookies being
already stored in the cookie jar, which I think makes more sense.

I still plan to rewrite the HTTP request code as a proper state machine,
instead of one long Run() function. This would allow to run it in
smaller steps, and thus group multiple requests in a single thread
(triggering them from poll, select, or similar).

f3114cad 05-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Add shortcut_catcher to UseHeaders.

Tracker uses KeyInfos.h from it. Previously this wasn't needed
due to the SEARCH_SOURCE added in the Shortcuts preferences,
but as that is now just a UseHeaders, we need it here (if only
for the DoCatalogs.)

47bedf16 02-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

PackageDataInlineReader: Do not use fData before it has been set.

Spotted by Clang.

737de463 02-Dec-2017 Rene Gollent <rene@gollent.com>

Debugger: Fix #13797.

- When reading the areas note, there was no check in place to ensure that a
matching segment for the address was actually found. This would later lead
to a crash when attempting to read memory from the corresponding (missing)
piece of memory in the core.

e96835a9 27-Nov-2017 Axel Dörfler <axeld@pinc-software.de>

Added simple test_launch_daemon.

* Expects its config files in /boot/home/test_launch.
* Uses standard I/O, and is always in user mode.
* Also added test_launch_roster command that is able to talk to the test
server like it does to the real thing.

4824497d 27-Nov-2017 John Scipione <jscipione@gmail.com>

BDeskbar: Set auto hide default value to false

Didn't notice this before so had to do a quick fix. Catch it before
Coverity can.

fd236f33 26-Nov-2017 John Scipione <jscipione@gmail.com>

BWindow: Update Zoom() with Deskbar window flags

Call newly created BDeskbar methods to adjust default Zoom().

if auto-hide is turned on don't consider Deskbar's frame.

In vertical mode allow windows to zoom on top of Deskbar if
auto-raise or always on top is turned on.

Deskbar can take up a significant area so you can reclaim that
space by turning on auto-raise or always on top.

In horizontal mode ignore auto-raise and always on top settings,
don't allow windows to zoom on top of Deskbar even if these
settings are turned on.

Deskbar doesn't take up very much space and you don't want your
window to get cut-off at the bottom.

fc23c097 26-Nov-2017 John Scipione <jscipione@gmail.com>

BDeskbar & Deskbar: export window bool settings to BDeskbar

Add methods to get and set "Always on top", "Auto raise", and "auto hide"
which are all booleans which control aspects of the Deskbar window to

Set the bool to the default value initially. Check if sending the
message succeeds, if so check the reply which also fills out the bool.
Don't check to see if reply succeeded because the bool will only be
overwritten if it did.

Follow the BDeskbar convention Is...() for getter, Set...() for setter
e.g IsAlwaysOnTop() is the getter, SetAlwaysOnTop() is the setter.

Define new message constants to call the newly created methods.
Follow BDeskbar convention: 'gtla' is used for getter, 'stla' for setter.
g/s for getter/setter, tla is an all-lowercase code unique to each
getter/setter pair.

Copy/paste these message constants into BarApp.h unchanged. Replace four
letter codes with imported message constants in BarApp.cpp and
BarWindow.cpp. Much nicer than using bare codes.

The new BDeskbar methods are all handled by TBarApp. The getters send
back a reply message containing the bool while the setters fall through
to existing setter cases.

f8811591 26-Nov-2017 John Scipione <jscipione@gmail.com>

BDeskbar: Style fixes

Update Copyright in cpp, add myself, alphabetize, standardize
Pointer style in cpp
Update some comments
Some 80 char stuff
pragma section headers

b1b84675 25-Oct-2017 John Scipione <jscipione@gmail.com>

BWindow: Update default Zoom() to respect Deskbar

Zoom() takes up all Desktop area excluding the area
occupied by Deskbar. This is calculated using information
from the BDeskbar class.

Window zooms just as you'd expect -- it takes up fullscreen
minus area taken up by Deskbar. In vertical mode the zoom
area depends on the width of Deskbar, consequently Zoom()
is more space efficient in horizontal mode than vertical
mode because the window doesn't use the area below Deskbar.

If the zoom limits are smaller than the Desktop area, the
zoom area shrinks towards the center of the Desktop not
covered by Deskbar. This is slightly different behavior,
the window insets off-center following Deskbar.

In some scenarios zooming to the non-Deskbar area was too
restrictive. I made an exception that if there is enough
room above or below Deskbar i.e. a short window, then Zoom()
instead insets from the screen edge ignoring Deskbar. Apps
which meet this criteria include DriveSetup and Expander.

6ac3a280 23-Nov-2017 Jérôme Duval <jerome.duval@gmail.com>

Add ZstdCompressionAlgorithm.

* kernel lib is decompress only (like zlib).
* expand compression_test for zstd.

2a493ea0 23-Nov-2017 Julian Harnath <julian.harnath@rwth-aachen.de>

BView: set initial frame rect invalid when using layouting

* When a view is used with the layout system, its initial frame rect
was set to (0, 0, 0, 0), which is a BRect covering 1 pixel in the
top left corner of the window.
Since this a valid rect, it can cause "badly behaved" views to
trigger redraws of themselves and other views during the layout
process, which is ultimately the reason for the HaikuDepot UI
freezing while populating with packages.

The misbehaving view in this case is BTextView. When in read-only
mode, since commit e27a53b2, its GetHeightForWidth() implementation
causes the view to resize (really resizing, not just simulating a
resize) and thus it invalidates itself. This is broken behaviour,
and needs to be fixed in BTextView. Since GetHeightForWidth() is
called during the layout process, all the not-yet-layouted views
have a frame of (0, 0, 0, 0). The invalidation of just the one
BTextView in the layout then hits *all* new views that are being
layouted (because they all occupy the same one pixel in the
corner), and they all get redrawn.
Many view Draw() implementations ignore the update rect, so work
is being done. And even if not, this can cause a lot of traffic
on the app_server link. In a test case with HaikuDepot's
FeaturedPackagesView, adding 300 rows (each containing a BTextView,
among other views) in quick succession caused over 6 million
commands to travel over the app_server link, completely freezing
the UI for a long time.

* The actual problem here is in BTextView::GetHeightForWidth() and
must be fixed there.
However we also put in an extra-fix here because it never makes
sense anyway to try and draw a view that has not yet been layouted.
So we set the initial BView frame to an invalid rect
(0, 0, -1, -1), which will suppress any actual updating, even
when the view actively invalidates itself, as long it doesn't
have a size yet. (The dirty region will always end up empty

* Fixes HaikuDepot UI freezing during package population (caused by
above described behaviour from BTextViews in FeaturedPackagesView).
Might improve performance in other applications using BTextView
with layouting as well.

484f64f3 23-Nov-2017 hyche <cvghy116@gmail.com>

TextInput: Align the text when typing or removing.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Closes #13796.

1641a051 23-Nov-2017 hyche <cvghy116@gmail.com>

Fix aligning when text growing more than the right bound..

because the bound scrolls to the current cursor to view the text (ScrollToOffset).
Follow up #12608

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

a20f4f8a 23-Nov-2017 Augustin Cavalier <waddlesplash@gmail.com>

MidiSettings: Don't leak settings in failure case.

CID 1422944.

d692d22c 23-Nov-2017 Augustin Cavalier <waddlesplash@gmail.com>

debugger/elf: Don't leak memory in failure case.

CID 1423098.

71312468 23-Nov-2017 Augustin Cavalier <waddlesplash@gmail.com>

BNetworkAddress: Close socket in ResolveForDestination.

It was closed on all the failure cases but not on the success one.
Found by Coverity.

75fa008e 23-Nov-2017 Augustin Cavalier <waddlesplash@gmail.com>

BProxySecureSocket: Fix obviously untested code.

* Actually set status before testing it
* sscanf (reads from passed buffer) not scanf (reads from stdin)
* &httpStatus not httpStatus.

Found by Coverity.

11dee044 23-Nov-2017 hyche <cvghy116@gmail.com>

TextInput: Fix text width

Thanks PulkoMandy for teaching me how to use Debugger and part of the interface kit..
Fixes #12608

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Thanks for investigating and finding the problem!

8742c1d0 21-Nov-2017 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove now-unused bool displayingSymlink argument from InfoWindowRect.

a75fc8a7 23-Oct-2013 John Scipione <jscipione@gmail.com>

Keymap: simplification

Call already existing Offset() method instead of reproducing it.

Set fCharsSize in BKeymap::SetToCurrent()

b140a1c3 21-Nov-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

NetworkAddressResolver: cache needs to be locked

It is not a good idea to have a thread get an address from the request
cache, while another thread is deleting said address as the cache has
grown too large. Add a lock around the cache access to make it safe.

3a2b67b5 21-Nov-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Support for configuring screen backlight

Accelerant interface:
Introduce new hooks B_SET_BRIGHTNESS and B_GET_BRIGHTNESS. Brightness is
a float in the 0..1 range.

Forward brightness things between BScreen and the accelerant.

Implement the hooks. Note that this only works for laptop panels, but
the driver will pretend to support it in other cases as well.

Screen preferences:
If the accelerant supports the B_GET_BRIGHTNESS hook, allow to set
brightness with a slider. Otherwise, the slidere is hidden and these
changes aren't visible.

7c7390c7 20-Nov-2017 François Revol <revol@free.fr>

work around "cast specifies signature type" from gcc2

...when build by gcc6 or 7 on my Debian Sid.

d1805b9a 20-Nov-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

BSecureSocket: use opt-out to select ciphersuites.

We just want to disable known broken ones, rather than opt-in for
working ones. This keeps the list of authentications shorter and is more
future proof.

5c6208cc 17-Nov-2017 John Scipione <jscipione@gmail.com>

Tracker: Line TitleView up with scroll bar arrow

Make TitleView a few pixels shorter at the default font size so that
it lines up with the scroll bar arrow to its immediate right.

Note the font size used in the title view before and still is 9px
(12px * 3/4)

Make this the minimum TitleView height even for smaller font sizes
so that the title view never is shorter than the height of a
scrollbar button. Make the minimum font size for TitleView 8px
because 6px (8px * 3/4) was just too small to read.

As font size is made larger it will increase the height of the
titlebar to accomodate the increased font size and consequently no
longer line up with the scrollbar arrow.

The code to scale the bar height via the font height was taken from
BColumnListView. The code to position the title in the middle of the
title bar was also taken from BColumnListView.

Some included style fixes:
* Rename height to fontHeight
* Rename loc to titleLocation
* 80 column limit

aa19dd02 16-Nov-2017 John Scipione <jscipione@gmail.com>

BSpinner: Draw spinner buttons activated if mouse down

Fixes #13469

6a634757 16-Nov-2017 John Scipione <jscipione@gmail.com>

BSpinner: Draw spinner plus sign better

The plus was a bit too tall making it look odd.

16af9b4c 05-Nov-2017 Humdinger <humdingerb@gmail.com>

Style, no functional changes

Make termination consistant with that last commit hrev51521.
As wished and proof-read by waddlesplash. Hope all's well...

a4d1e649 03-Aug-2017 Owen <owenca@users.noreply.github.com>

Make Alt-Up and Alt-W keys work for file panels.

Fixes #11979

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

346d1496 05-Nov-2017 Humdinger <humdingerb@gmail.com>

Properly terminate property_info lists

BListView's property_info list lacked termination, resulting in
garbage output at the and of 'hey getsuites'.

Use { 0 } everywhere for sake of consistency.

Thanks to waddlesplash for spotting the bug an providing the easy fix.

615417e5 30-Oct-2017 Julian Harnath <julian.harnath@rwth-aachen.de>

BFilePanel: reset to home dir if volume unmounted

* Fix bug reported by humdinger: when the volume which is
currently shown in the file panel is unmounted, the file
panel's window was closed and even deleted. This is not only
inconvenient but also a use-after-free bug waiting to happen:
an application which keeps the BFilePanel around to show it
again later (as recommended in the BeBook) cannot know that
it has become invalid while it was hidden (the destruction of
the window happens even when it's not shown).

* When receiving an unmount event for the currently shown volume,
we now reset the view to the home directory.

e1ca6769 26-Oct-2017 Jérôme Duval <jerome.duval@gmail.com>

libbnetapi: style fixes only.

7e42e5b5 18-Oct-2017 Sean Healy <jalopeura@users.noreply.github.com>

Do not force the keyboard focus if there wasn't one

Removing tabs tries to preserve the keyboard focus, but it should also
preserve the absence of it.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

d566b4d9 18-Oct-2017 Sean Healy <jalopeura@users.noreply.github.com>

Fix BWindow::_FindView when the window is hidden

_FindView finds a view that contains a specific BPoint (usually used to
dispatch a mouse event to it). It should ignore hidden views, but not if
they are hidden because of their parent.

In particular, if the whole window is hidden (for example, it is used to
draw onto a BBitmap), this should not be taken into account here.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

01ef8111 08-Oct-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

BChannelSlider: use native tooltips

BChannelSlider (used in media preferences) used to implement its own
tooltip, which didn't really work (as it could draw only inside the
view), and had hardcoded colors.

Use the native BToolTip which was added to Haiku since then.

a00bd28a 07-Oct-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Package Kit: map some curl errors to Be error codes

Trying to get something more useful than "aborted: no error" in case of
network errors in pkgman.

6aff37d1 01-Oct-2017 Augustin Cavalier <waddlesplash@gmail.com>

Move SHA256 class to libroot instead of linking libshared into libroot.

Discussed with PulkoMandy and on the haiku-commits mailing list.

Thanks to @jessicah for compile-testing and fixing 2 small issues I missed.

db68ff23 10-Sep-2017 Augustin Cavalier <waddlesplash@gmail.com>

Interface Kit: Make BControlLook a proper pure-virtual base class.

All of its prior functionality has been moved into HaikuControlLook.
This paves the way for customizeable control looks, which I intend to implement
in the future as part of decorators.

This is being pushed now because libbe ABI was already broken due to the
Notifications changes, so this is riding that so we only have to do a mass
rebuild once.

8856b518 28-Sep-2017 Brian Hill <supernova@tycho.email>

BNotification ABI padding

Add reserved functions and data to avoid future ABI breakage

6aa05872 23-Sep-2017 Brian Hill <supernova@tycho.email>

Notifications preflet and notification_server

Notifications preflet:
-Use sliders instead of text fields for width and timeout
-Remove icon size choice (mini icon looks horrible)
-Consolidate both "Enable" checkboxes into one
-Fix Revert button, remove Apply button, add Defaults button
-All changes to settings saved immediately
-Live example notification message shown when settings changes are made
-Add setting for individual apps to specify whether their notifications
should be muted
-Remove history list (to be implemented later)

BNotification class:
-BNotification records the signature and name of application that
created it
-New functions to get source application signature and name

Notification Server:
-Notification pop up view layout fixes and bold font size fix
-Remove notifications history from AppUsage class (will be saved in
cache instead)
-Remove vector of NotificationView objects which isn't needed
-Get source application info from notification object, not the received
message which is not reliable

9d30b95a 17-Sep-2017 Humdinger <humdingerb@gmail.com>

BCalendarView: change visuals for 'today'

Only using the keyboard navigation colour to indicate the current day isn't that
nice in all situations. When using custom system colours, like white on blue
for selected items, it can become barely readable.

Now we
* use bold type face for 'today',
* tint 'today's background (lighten for dark, darken for bright bgColor),
for the selected day,
* keyboard navigation colour only for the frame and text when doing keyboard

Fixes #13714

42745b94 03-Sep-2017 Akshay Agarwal <agarwal.akshay.akshay8@gmail.com>

BDateFormat: Properly map day values to ICU day-of-week.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

bfbb9655 10-Sep-2017 Augustin Cavalier <waddlesplash@gmail.com>

Interface Kit: Remove more non-BControlLook code.

22d88eb4 01-Sep-2017 Akshay Agarwal <agarwal.akshay.akshay8@gmail.com>

BCalendarView: Adjust day name format to available space.

* Use BDateFormat::GetDayName() to fetch weekday names.
* Use appropriate symbol width(Mon, Mo, M) depending on the frame width.
* Provide functionality to update day name header in case of locale
preferences change.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

bb3ad41a 30-Aug-2017 Akshay Agarwal <agarwal.akshay.akshay8@gmail.com>

Implement functions to get localized long/short dayofweek name and short month name in BDateFormat.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

cf3524e0 26-Aug-2017 Kacper Kasper <kacperkasper@gmail.com>

Fix WebPositive drawing glitches.

* Introduced with recent BTabView changes.
* Adjust drawing tabs a bit.
* Remove trailing whitespace.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

1e4ab34c 23-Aug-2017 Akshay Agarwal <agarwal.akshay.akshay8@gmail.com>

Implement a formatter for relative dates.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

It can give results such as "in 2 hours", "2 days ago", etc.
This is different from BDurationFormat which will just say "1 hour, 2
minute and 36 seconds"

a74f88cf 21-Aug-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Build fix.

faef8633 21-Aug-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

BTabView: fix binary compatibility.

Re-introduce missing symbol so that old apps can still be used.

0d1bb791 20-Aug-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

BControlLook: remove broken intersection check

When using BAffineTransform, the update rect is not in the same
coordinate space as the drawing rectangle. Hence, testing them for
intersection does not work, and leads to not drawing buttons which are
in fact visible.

Moreover, the code in BControlLook does not perform only drawing, it is
also expected to update the drawing rect, so other functions may reuse
it later (for example, drawing a button border also computes the
rectangle for the button background). Because of this, it is not
possible to skip the drawing completely, or we could break the layout of
the client.

Fixes #13664

d47dec93 20-Aug-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Make gcc2 happy.

cb13fce8 19-Aug-2017 Kacper Kasper <kacperkasper@gmail.com>

BTabView: implement drawing tabs on all sides.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

173e8195 19-Aug-2017 Kacper Kasper <kacperkasper@gmail.com>

BTabView: remove dead code.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

a34769a0 16-Aug-2017 Kacper Kasper <kacperkasper@gmail.com>

BTabView: cleanup draw function.

* Slightly changes how tabs look.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

b8d9fcbe 16-Aug-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Revert "ControlLook: remove some bogus clipping"

This reverts commit b277177477148c83d79ba7f0b4737709f023f068.

b2771774 16-Aug-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

ControlLook: remove some bogus clipping

ConstrainClippingRegion was used in BControlLook to limit drawing to
inside the update rect. There are two problems with that:
- It would ignore any other clipping set by the application, as calls to
ConstrainClippingRegion are not cumulative,
- ConstrainClippingRegion ignores transforms on the view, so on a
transformed view, we would not draw anything in most cases.

If constrained clipping is needed here, it should be achieved using
ClipToPicture instead.

abb297f5 12-Jun-2017 Wiktor <vikkindhart@gmail.com>

InterfaceKit: fixed BSpinner's label rendering.

A '&' (reference) was missing on a specific line, causing
font information to never be updated. Also removed extra padding
dependent on a constant variable - if it is used, the label will
be render too far down.
Fixes #12981.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

0b18b79c 02-Aug-2017 Jérôme Duval <jerome.duval@gmail.com>

libpackage Jamfile: DoCatalogs rule needs to find sources.

SubInclude should stay at the end.

8119ed92 02-Aug-2017 Murai Takashi <tmurai01@gmail.com>

libpackage Jamfile: Add missing ':'

Signed-off-by: Humdinger <humdingerb@gmail.com>

a1c3daa6 01-Aug-2017 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot : Streaming Icon Meta-Data Parser

More background work for later performance improvements.
This change generalizes the parsing of meta-data from
JSON streams as similarly structured meta-data is
anticipated to be carried in other payloads. Unit tests
have also been implemented to provide coverage on this
new functionality.

99e5e3fd 08-Jul-2017 Humdinger <humdingerb@gmail.com>

Package daemon notifications

* Sentence casing
* Localize notification texts in the package kit
* Have "Package daemon" as group name and "Warning" as title
* Use ::BPrivate in Bitmap.h to solve an ambiguity (as pointed out
by PulkoMandy). Though not needed for my changes any more, since
a the icon of the notifying app is now shown by default.

Fixes #13590.

d9823ef5 31-Jul-2017 Jérôme Duval <jerome.duval@gmail.com>

PrintJob: make struct print_file_header packed.

* also struct _page_header_: on x86_64, these would align to 8 bytes, which the code
doesn't handle well.
* remove beos leftovers.

a1ceb000 30-Jul-2017 Augustin Cavalier <waddlesplash@gmail.com>

Remove even more Locale Kit cruft.

Not included in the build and not used.

01c1bb62 30-Jul-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Remove more Locale Kit cruft.

BNumberFormat is the way to go for all of this. This code was not even
compiled in.

f40841ac 28-Jul-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

BNetworkRequest: fix _GetLine on empty lines.

On an empty line terminated by \n, we would access the temporary buffer
(stack allocated) with an index of (uint32)-1. On 32bit machine this
would just read the byte before the array on the stack, but on 64bit it
would crash.

Check that the length is at least 1 before trying to access a character
in the array.

Fixes #13625.

Thanks to accessays for proofreading the code:

615ef07d 25-Jul-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

libnetapi: missing NULL check.

dbad909b 24-Jul-2017 Jérôme Duval <jerome.duval@gmail.com>

BMediaFile: fix MediaExtractor crash.

* stop the extractor processing before deleting the source.
* crash happened in MediaPlayer FilePlaylistItem::_CalculateDuration().
* was a regression introduced in hrev50671.
* fixes #13156.

13dbf471 24-Jul-2017 Jérôme Duval <jerome.duval@gmail.com>

Revert "BView: use off_t instead of long."

This reverts commit ab3a87ed6e5925dd8f9de119dbf689b6ac8afee5.

037ea84b 23-Jul-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

BNumberFormat: add Parse() and GetSymbol().

6cbcfc19 23-Jul-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

BNumberFormat: cache ICU formatters

For performance reasons, it is a good idea to keep the formatters
instanciated, instead of re-creating them each time we need to format a

0e4ad75e 23-Jul-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Remove more unneeded files from the Locale Kit

All of this is replaced by the single BNumberFormat class.

05977524 22-Jul-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Remove full date format from Tracker date columns

It is too similar to the long format and does not add much value.
And it creates some problems with using a locale format with another's

Fixes #11343.

1416521f 22-Jul-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Notifications: default to application icon.

It is possible to SetIcon(NULL) to remove it.
But in msot cases we want the application icon to be the default.

as discussed in #13590.

1d6af34b 21-Jul-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

LocaleKit: remove obsolete files.

Formatting floats is handled by BNumberFormat already.

ab3a87ed 21-Jul-2017 Jérôme Duval <jerome.duval@gmail.com>

BView: use off_t instead of long.

2aaee070 18-Jul-2017 Kacper Kasper <kacperkasper@gmail.com>

Fix window behavior if default button is present.

* Almost all Enter keystrokes were hijacked without the ability to
* Let apps use these shortcuts.

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>

b32b6a86 01-Aug-2017 Akshay Agarwal <agarwal.akshay.akshay8@gmail.com>

Fix highlighting current system date in BCalendarView.

Changing the year in Calendar View does not remove the highlighting from
previous highlighted day.

Changing the system date to a date in a different month(different from
the month currently set in calendar view) does not remove the highlighting
from currently highlighted day.

The disabled day number text belonging to the next month (month after
the one currently selected) gets wrongly highlighted while attempting
to highlight the day number text belonging to the current month.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

ticket : #13605

8013f2e0 09-Jul-2017 Akshay Agarwal <agarwal.akshay.akshay8@gmail.com>

Highlight current system date in BCalendarView.

* Issue: In BCalendarView presently, there is no notion of a current date
and the current date is not highlighted. So in the deskbar tray calendar
which uses BCalendarView, we cannot know the current date once we change
the selected day.
* Fix: Make BCalendarView accept pulse messages, check for system date
with every pulse message and update the current date accordingly.
Highlight the current date by rendering its day number text in a
different color.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

ticket : #13592

3ceec1db 12-Jul-2017 Murai Takashi <tmurai01@gmail.com>

BufferConsumer.cpp: Fix ordered comparison between pointer and zero.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

ticket : #13599

9175f4f0 02-Jul-2017 Augustin Cavalier <waddlesplash@gmail.com>

netresolv: Merge patches from 2015 to current HEAD.

Commits merged from the semi-official Git mirror of NetBSD
trunk (https://github.com/IIJ-NetBSD/netbsd-src/).

Commit authors/messages in chronological order follow:
From: maya <maya@netbsd.org>
Date: Tue, 9 May 2017 02:56:44 +0000
Subject: Avoid shift of negative signed integer. this is UB. NFC.

954b54ba 30-Jun-2017 Augustin Cavalier <waddlesplash@gmail.com>

kits/mail: Remove OpenSSL logic from Jamfile.

Nothing in the Mail Kit proper uses OpenSSL directly anymore
(confirmed with a grep for USE_SSL as well as "openssl"),
so we don't need this logic anymore.

96bdefaf 12-Jun-2017 Humdinger <humdingerb@gmail.com>

Tracker: Use layout management for "Select..." window

Also remove the BMessageFilter EscapeFilter and use B_CLOSE_ON_ESCAPE
in the window constructor instead.

I moved fExpressionTextControl->MakeFocus(true); down to when the
window is Lock()ed. Otherwise the text control refuses to be focused...

ba25f57a 10-Jun-2017 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: More B_PRId32 -> B_PRIdTIME.

9f6dbb5f 05-Jun-2017 Augustin Cavalier <waddlesplash@gmail.com>

Fix the build following the 64-bit time_t switch.

5721d179 03-Jun-2017 Mark Hellegers <mark@firedisk.net>

BHttpTime: Handle sunday properly

Cookies with expiration on a sunday would be misformatted, which could
lead to websites not recognizing them.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Fixes 13543

756c36e7 29-May-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Rotate permission labels in Tracker InfoWindow

This allows to fit a lot more text in the same horizontal space, so we
can fit the label in various locales, without spreading the checkboxes
further apart.

Fixes #6987

fd9afd8a 29-May-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Missing localizations in tracker info window.

Patches from Karvjorm in #6987 (but not directly related to that ticket)

3ec77017 29-May-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

NaturalCompare: implement using locale kit

The non-locale aware version is kept in src/build/libshared for use on
the host system and in packagefs (kernel add-on). In both cases, ICU is
not available.

Fixes #8192

a19a18f5 28-May-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Rework BCollator API

- Strength is now set once, instead of at each comparison, to improve
performance and fix potential locking issues
- Add a way to enable "numeric" collation (aka "natural order")

ec6735b5 25-May-2017 Akshay Agarwal <agarwal.akshay.akshay8@gmail.com>

Handle UDAT_DAY_OF_WEEK_FIELD in BDateFormat::GetFields().

Handle the UDAT_DAY_OF_WEEK_FIELD case and assign the corresponding
BDateElement object i.e B_DATE_ELEMENT_WEEKDAY to the fields array
at the appropriate offset.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Fixes #13529

f9065b53 21-May-2017 Rene Gollent <rene@gollent.com>

libdebugger: Minor fixes to NetworkTargetHostInterface classes.

- Fix missing initializer. This would lead to a crash in the destructor.

- Implement IsConfigured() to validate passed in settings.

68893948 19-May-2017 Rene Gollent <rene@gollent.com>

libdebugger: Fix missing init in TargetHostInterfaceRoster.

- When adding the TargetHostInterfaceInfos to the roster, Init() was not
called on the individual instances, leading to them potentially being

e683838e 19-May-2017 Sean Healy <jalopeura@users.noreply.github.com>

BTextView: Fix archiving after setting and unsetting disallowed characters.

If you disallow and then re-allow characters, so that the number of disallowed
chars returns to zero, BTextView::Archive will fail with "Invalid Argument".

Fixes #13520.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

75fc1907 13-May-2017 Owen <owenca@users.noreply.github.com>

Tracker: Fix blue border for focus in file panel.

This fixes the bugs pertaining to drawing and erasing the blue border
when a view gains and loses the focus, respectively. It also fixes the
bug that the file list (PoseView) always has a blue border when the
panel window is activated, even if the pose view doesn't have the focus.

Fixes #13496.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

1c0e7a58 15-May-2017 Owen <owenca@users.noreply.github.com>

Tracker: Fix blue border of CountView in file panel.

This removes the blue border of CountView in BFilePanel.

Fixes: #12923

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

f5c544b5 16-May-2017 Akshay Agarwal <agarwal.akshay.akshay8@gmail.com>

Fix style formatting issue in BTimeUnitFormat, update BDurationFormat accordingly.

* Issue: BTimeUnitFormat doesn't incorporate style formatting while
formatting a time unit. Format() does take style as an argument but the
style is not used anywhere. So currently the abbreviated style doesn't
work and by default the time unit is formatted to the full style.

* Fix: Move the style flag from BTimeUnitFormat::Format() to the
BTimeUnitFormat constructors and call the relevant icu::TimeUnitFormat
constructor. Map the Haiku defined style unit to the corresponding ICU
unit. Move the style flag from BDurationFormat::Format() to the
BDurationFormat constructors to map the changes in BTimeUnitFormat.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Fixes #13508

55f5f259 15-May-2017 Andrew Lindesay <apl@lindesay.co.nz>

JSON Parser : code style corrections

1f6b57a5 13-May-2017 Andrew Lindesay <apl@lindesay.co.nz>

Implementation of JSON Streaming Parser

This change will introduce a streaming parser capability to Haiku. The
existing functionality of writing the JSON data to a BMessage in-memory
model is retained. The new parser implements a SAX-style listener based
interface where the listener accepts parse events. Unit tests have been
supplied for the JSON parser as well.

db068cd6 01-May-2017 Owen <owenca@users.noreply.github.com>

Tracker: Always enable the Open button for B_DIRECTORY_NODE.

Always enable the default button in Open File Panel if the node flavors

Fixes #13463.

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>

9b6b158b 10-Mar-2016 dsizzle <dcieslak@yahoo.com>

Implementation of BFont::Blocks

BFont::Blocks is now implemented in ServerFont, via a call through the
app_server. It uses fontconfig to iterate through a charset of a font
and stores the defined blocks in a bitmap.

A new API was added, BFont::IncludesBlock, that will allow for arbitrary
testing of a given Unicode block. Since nothing is cached, searching
through an entire charset for a series of Unicode blocks can be quite
slow. In a given block there may be only 1 or 2 characters actually
defined so every character within a block needs to be checked until one
is found, which in a degenerate case will mean the entire block is

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>

c0ef5b2b 04-May-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaFile: Little refactor to use the MediaStreamer class

* This clarify the ownership of the source when using the experimental
* The extractor/writer are simplified and don't have to care about
* MediaStreamer is able to provide a generic BAdapterIO that is
suitable also for different uses than the codecs API itself.

9198105d 04-May-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaWriter/MediaExtractor: Remove BUrl constructors

dfecb37a 04-May-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

Introduce new experimental class MediaStreamer

e62e979e 03-May-2017 François Revol <revol@free.fr>

Allow dumping SSL session keys on TRACE_SESSION_KEY

This dumps SSL session keys to a log file specified by the
SSLKEYLOGFILE environment variable.

This permits decrypting SSL trafic in wireshark with a tcpdump
capture for example.

Looks like we miss the required function from SSL...
SSL_SESSION_print_keylog is only in 1.1.0.
Also added dumping of client_random as it's required by wireshark.

84c62f1d 02-May-2017 Brian Hill <supernova@warpmail.net>

Fix drawing of Tracker volume icon freespace bar

For icon sizes less than B_LARGE_ICON (32) the icon size was
incorrectly just set to B_MINI_ICON (16) causing an error in where
horizontally the free space bar was drawn for icon sizes between 16
and 32. This has never really been an issue because the predefined
options in Tracker do not allow selecting an icon size between 16 and
32, but this fix will prevent drawing issues in the future if that
ever does become an option.

2d8adbdd 29-Apr-2017 Owen <owenca@users.noreply.github.com>

Tracker: Fix Shift+click multi-selection not being disabled.

Using BFilePanel with multi-selection turned off does not prevent
multi-selection by SHIFT-click. Traced the bug to
BPoseView::AddRemoveSelectionRange(), and the safest fix is to not
touching the boolean extendSelection but to just add the test for
fMultipleSelection to the if block that handles B_SHIFT_KEY.

Fixes #13462.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

a8ae893b 29-Apr-2017 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Fix B_UNDO/B_REDO forwarding to a focused BTextView.

56f9e8b7 29-Apr-2017 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: If a BTextView is focused, do not force-forward clipboard events to it.

In its original state this code just forwarded all clipboard messages to the
focused view, which sometimes was a BTextView or the like which knows nothing
about Tracker's custom clipboard events, and thus would wind up in an infinite

Now, the messages are left to be handled by the focused view if a BTextView
is selected (e.g. in a file panel, or in Tracker's navigator), but otherwise
forwarded directly to the BPoseView.

Fixes #12721.

41b05954 28-Apr-2017 Owen <owenca@users.noreply.github.com>

Tracker: Fixed shift extension after keyboard selection.

fixes the bug that caused multi-selection by SHIFT-cliking to fail if an
item in the file panel was selected by a key (ticket #13460).

If the user tries to select a single item by pressing a key (Left/Right,
Up/Down, etc.), the BPoseView::KeyDown() function will call the
BPoseView::SelectPose() function, which must set fSelectionPivotPose to
the selected item (or pose) because this item might be the starting (or
pivot) pose of the next multi-selection by SHIFT-click.

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>

a33c8f4c 27-Apr-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Some more consistency in args order

5d614ec3 25-Apr-2017 Augustin Cavalier <waddlesplash@gmail.com>

tracker: We now target only Haiku since the layout merge, so use B_REDO.

54a37ee4 22-Apr-2017 Humdinger <humdingerb@gmail.com>

Tweak when to use black/white for icon labels on Desktop

I've felt for a long time that the Desktop's background colour had to
be much too dark for the icon labels to switch from black to white.
I came to the new values by trial and hope nobody hates those now...

315633e1 18-Apr-2017 A-star-ayush <myselfthebest@yahoo.com>

getaddrinfo now accepts shorthand ipv4 notation

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

As required by POSIX:
"If the specified address family is AF_INET or AF_UNSPEC, address
strings using Internet standard dot notation as specified in inet_addr
are valid." (which allows IP in a.b.c.d, a.b.c, a.b, and a forms, and
also accepts the numbers in hex and octal).

Fixes #3884.

0cc5ecb8 13-Apr-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: IDs should be signed integers

* It's very important to use a negative value to identify
non valid or uninitialized connections. Additionally, it's preferred
to don't interfere with media_kit types as long as the framework use
it in the backend.

34ac7f7a 08-Apr-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

BListView: manage horizontal scrollbar

BListView automatically sets the vertical scrollbar range already. Do
the same for the horizontal scrollbar.

Also fix BOutlineListView to compute the preferred size taking into
account the items outline levels (it needs a little more space).

This fixes the horizontal scrollbars in Locale preferences, second part
of #6747.

fe9ddedc 31-Mar-2017 Axel Dörfler <axeld@pinc-software.de>

BBox: Fixed broken fBounds position update.

* FrameMoved() is only for frame movements; only scrolling affects the
bounds position.
* Thanks stippi!

ff4dee1c 24-Mar-2017 Axel Dörfler <axeld@pinc-software.de>

BView/BBox: Fixed FrameResized() handling.

* BView incorrectly passed the current width and height to
FrameResized(), not the one from the message. Since there is such
a call for each size change, a Draw() might have been called for
each of those in return.
* This should also fix such problems in BMenuBar, as it used the size
from FrameResized() as it should have.
* BBox now correctly takes the update events into account, and no
longer ignores the size passed to FrameResized().
* This fixes bug #3037.

ab8f11bf 20-Mar-2017 Brian Hill <supernova@warpmail.net>

SoftwareUpdater updates

Bug fix- show correct version on package uninstall list item tooltip
Correct if else formatting
Use the BPackageManager FullSync() function instead of Update
Change warning strings in BPackageManager to sentence casing
Show list item tooltip on a mouse down (helps with touch devices)

98f2303d 09-Mar-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Fix memory leak.

* Fixes #13126.

5854fc4a 18-Feb-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Add remaining wiring for input/output functionality

* BufferReceived is renamed HandleBuffer.
* Update doc.
* Implement buffer production private methods.

adad0931 07-Mar-2017 Murai Takashi <tmurai01@gmail.com>

libtracker: add B_TRANSLATE to List view menu.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

cc04d41c 21-Feb-2017 John Scipione <jscipione@gmail.com>

BString: Use safestr() to prevent strlen(NULL)

on StartsWith(), IStartsWith(), EndsWith(), and IEndsWith()

388ac82b 05-Jan-2017 John Scipione <jscipione@gmail.com>

BString: Add IStartsWith() and IEndsWith() methods

Case-insensitive version of StartsWith() and EndsWith()

7abafe9f 18-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

Revert "Revert "Switch from DejaVu to Noto font""

This reverts commit 2423ba84701f064cb78a40010113a8a45cc02a92.

d54cb434 17-Feb-2017 Humdinger <humdingerb@gmail.com>

Layout fixes to Tracker's Get Info window

This corrects hrev50847. Turns out we need 8 lines for normal
files and symlinks, not 7. Fixes #13308.

The "Opens with:" label used the decreased font size set in
src/kits/tracker/InfoWindow.cpp:894. Increase font size by 2 again
for the label.

2423ba84 18-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

Revert "Switch from DejaVu to Noto font"

This reverts commit 945566ff43583e4f8102b4440c88f53dae775cb4.

As discussed on the mailing lists and with Humdinger off-list:
* The general design concensus tends slightly towards DejaVu, as metrics
of DejaVu look much better (DejaVu 12 and Noto 13 are roughly the same size,
but Noto has much wider margins with that)
* While Noto does have a wider set of fonts with support for lots of
different languages, DejaVu actually has built-in support for more
Unicode languages (the default Noto has, as far as I can tell, only
Latin/Greek/Cyrillic [2416 glyphs], while DejaVu also has Armenian, Georgian,
and a few other scripts too [5119 glyphs].)
* The worse rendering of DejaVu appears to have been somewhat rectified by
disabling the average-based subpixel filter in app_server.

83be289d 11-Feb-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

netresolv: Remove rcsid

fixes gcc6 complaining about unused global variable.

cf0ba058 06-Feb-2017 Humdinger <humdingerb@gmail.com>

Add localization to package daemon and solver

Thanks to Adrien and Rene for reviewing and guidance.
Fixes #13282.

b6f76ebe 09-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

s/OpenBeOS License/MIT License/ universally, as they're the same thing.

Fixes #8681.

6c9415e3 09-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

BJson: Use the normal "input, output" argument ordering instead of the reverse.

Update all in-tree consumers of the BJson API to match. Also added
const-qualifiers to the BString versions of the API, and added the leading
"_" to the header guards.

aae43137 08-Feb-2017 Augustin Cavalier <waddlesplash@gmail.com>

BJson: Fixes, tweaks, and behavioral changes based on the JSON Minefield Tests.

As found on http://seriot.ch/parsing_json.php -- anything using the API
presently with valid JSON should have no troubles, but more valid JSON
that previously didn't work now does (e.g. JSON with root array nodes, not
root map nodes), and invalid JSON that silently succeeded before now fails.

Not all the bad cases from that testsuite now fail, and not all of the good
ones pass, but the few that remain are odd things that wouldn't map well to
the BMessage API (e.g. root string nodes, etc.) or are other behaviors that
make sense to leave as they are for compatibility reasons.

7407e36a 31-Jan-2017 Andrew Lindesay <apl@lindesay.co.nz>

HaikuDepot; date formatting and location header handling

The existing HTTP header date format handling code is employed
rather than using specific logic for HD. Also the "Location"
header handling is changed to work better for non-absolute
URLs arriving in this header value on a redirect. Both
suggestions from Adrien.

4ad2ad6d 19-Dec-2016 Murai Takashi <tmurai01@gmail.com>

DirMenu.cpp: fix memory leak.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Fixes #13118.

f9e1854f 29-Jan-2017 Adrien Destugues <pulkomandy@gmail.com>

libbnetapi: fix access to HTTP headers

The asynchronous listener had no reliable way to access HTTP result and
headers from the callbacks. As the callbacks are triggered
asynchronously, they can be run after the request has carried on and,
for example, followed an HTTP redirect, clearing its internal state.

The HeadersReceived callback now passes a reference to BUrlResult for
the request. There are two cases:
- Synchronous listener: passes a reference to the request's results
- Asynchronous listener: archives a copy of the result into the
notification message, and passes a reference to the unarchived copy.

Unfortunately this comes with several ABI and API breakages:
- Change to the prototype of HeadersReceived()
- Change to the class hierarchy of BUrlResult (implements BArchivable)

All users of HTTP requests will need to be updated if they implemented
in HeadersReceived or used BUrlResult.

ab880b17 29-Jan-2017 Adrien Destugues <pulkomandy@gmail.com>

Cookie Jar: fix lock order inversion

The main lock on the cookie jar must always be locked before the rwlocks
for each domain list. This was reversed in one place, leading to a
typical deadlock pattern. Fixes one case of freeze in WebPositive: two
request threads whould interlock, and then anything trying to access the
cookie jar (including the main thread of Web+ to handle javascript
access to cookies) would also lock.

614d494a 25-Jan-2017 Jessica Hamilton <jessica.l.hamilton@gmail.com>

DefaultMediaTheme: use DetachedFromWindow() for unwatching media events.

c7fabe22 29-Jan-2017 Kacper Kasper <kacperkasper@gmail.com>

ControlLook: Fix redraw issues introduced in hrev50893.

* I was pretty sure that I didn't change the logic, but turns out
I was wrong. Sorry about that.
* Adjusted copy-pasted comments.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Fixes #13238.

11ed4f9f 25-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaRoster: Don't call NodeRegistered before FinishCreate

* A TimeSource need an additional hook called FinishCreate to be
able to create it's transfer area. This hook was called after the
node registration making room for potential mismatch of the transfer
buffer. Most media nodes such as an event looper call
begin to work with time related functions just once the registration
happens. It could cause shadowed timesource objects initialization
to fail too.
* Add a debugger call to prevent any node to use an unitialized
TimeSource area, that would help to identify any remaining issue.

b01e48c6 22-Jan-2017 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Warn if there is < 5% of free space left on the drive.

Previously it would warn only below 20MB of free space, if this was
less than 10% of the drive's capacity. This is obviously ridiculous now.
The first suggested patch used a simple 10% as the new criteria, but that's
a little high -- 100GB out of a 1TB drive is still a bunch of space left.
5% seems like a more appropriate choice here, and preserves a behavior
closer to the original 20MB on smaller (older) drives (5% of 500MB = 25MB.)

If this turns out to be too annoying for some users, we can make the check
more refined than it is now, but I don't think that will be necessary.

Fixes #4520.

80873d1b 07-Sep-2016 Gabriel Maia <gbl08ma@gmail.com>

Tracker: always shrink the text input when renaming

When renaming an entry at the edge of a PoseView, the input
would not resize as usual. This change ensures the input
becomes resizable again if the text becomes small enough.
Fixes #3438.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

2332ebfd 21-Jan-2017 Kacper Kasper <kacperkasper@gmail.com>

ControlLook: Add side parameter to tab drawing functions.

* This allows drawing tabs on any side of the view.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

88510bc0 21-Jan-2017 Kacper Kasper <kacperkasper@gmail.com>

ControlLook: Fix drawing of right bottom tab corner.`

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

0563e540 18-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Remove operator overloding from private class

991d9dbf 18-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaConnection: Implement auto release

0844ddf4 18-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Polish destructors

* Make Release() the only public way to destroy a connection.

d64dd7be 16-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Fix style for private methods and other cleanup

* Cleaned up some unneeded callbacks.

8b9c75d6 15-Jan-2017 Andrew Aldridge <i80and@foxquill.com>

Fix copying special files in Tracker

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>

7561d9ac 16-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

Populate media/experimental with future media_kit classes

* Node implementations headers are move into src/kits/media.

9c7d2b46 15-Jan-2017 Jessica Hamilton <jessica.l.hamilton@gmail.com>

DefaultMediaTheme: improve watching for parameter value changes.

* Addresses TODO of sub-classing controls, registering with the
media roster for parameter changes.
* Also adds support for discrete parameter controls, which didn't
have this functionality.
* With this change, the controls no longer need to be focused or
modified for the parameter changes to register.

fdfd8a50 15-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

General MediaClient cleanup

* Avoid setting fRunning in different places.
* Fix SimpleMediaOutput kind mismatch.
* Other minor fixes.

550e05af 15-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Start/Stop force argument doesn't make sense

728c730c 15-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClientNode: Fix little night's mixup

2c9fa0f2 15-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClientNode: Schedule outgoing connections on start

* Add preliminary binding support.

26d41644 12-Jan-2017 John Scipione <jscipione@gmail.com>

AbstractSpinner: Make TextView resizable

Fixes #13168

5973288e 12-Jan-2017 John Scipione <jscipione@gmail.com>

BSpinner: Fix copy-pasta bug, min=>min, max=>max

fMinValue was getting set to INT32_MAX then set to INT32_MIN
fMaxValue was not getting set

now set fMinValue to INT32_MIN, fMaxValue to INT32_MAX

also in _InitObject()

3705d40c 12-Jan-2017 John Scipione <jscipione@gmail.com>

BSpinner: Set min value then max value

... reverse this to avoid confusion, you'll see why in next commit.

No functional change intended in this commit, functional change is in the
next commit.

bdd02e0d 12-Jan-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

BString: rename SetCharAt to SetByteAt

Makes it clear that it operates on bytes, not unicode codepoints.
Thanks to mmlr for remembering me of this subtlety.

0c5219a1 12-Jan-2017 Jérôme Duval <jerome.duval@gmail.com>

Restore missing symbol _ZN7BStringixEi on x86 and x86_64.

* Vision and others were broken after 3eac8208dfcd6bd73a534303414784d3754de855.
* this adds BStringRef in the backward compatibility section.
* fixes #13199.

3eac8208 09-Jan-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Remove BStringRef and users.

As discussed in 2008
this class was not efficient because of lack of inlining. Implement the
suggested solution of a SetCharAt method instead. Also add a CompareAt
which covers a specific use case in KeyboardLayout.cpp.

Adjust all places which were using this feature to safer APIs.

Also fixes a copypaste error in FormattingConventions.cpp.

e6004b77 10-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Move WIP min/max functions into BMediaConnection

e7aa210b 10-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: IsRunning() status is set at handle time

3ef4b200 10-Jan-2017 Dario Casalinuovo <b.vitruvio@gmail.com>

Make BMediaRecorder public

* Fills a functionality lack of the classic media_kit.

5f8edc9c 07-Jan-2017 Tsimblist <tsimblist80@gmail.com>

Fix for ticket #12978 - Tracker GetInfo window layout problem

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>

e1304871 01-Jan-2017 John Scipione <jscipione@gmail.com>

Revert "BWindow: CenterOnScreen a bit above center"

This reverts commit a5be1832cc9f29a230e587c77793e624ec4fbd2a.

a5be1832 31-Dec-2016 John Scipione <jscipione@gmail.com>

BWindow: CenterOnScreen a bit above center
BWindow docs: Document changes to CenterOnScreen()


Will revert if not appreciated.

1942b3b1 30-Dec-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Missing include.

Make gcc5 happy.

f621b750 30-Dec-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

BSoundFile: implement most of it.

Based on the amazing work of puckipedia, this gets BePac Deluxe to play
fine on Haiku (complete with sound effects and music).

This is based on his original patch, but the irrelevent parts (working
around bugs in ffmpeg that were fixed since then) are removed.

Fixes #9939.

2c26ad4b 29-Dec-2016 Adrien Destugues <pulkomandy@gmail.com>

move BUrl to the support kit

It is used by the media kit, which created a dependency from libmedia to
libbnetapi to openssl.
It is not entirely specific to the network kit, there are some use cases
that don't involve network at all.

682adeb3 23-Dec-2016 Murai Takashi <tmurai01@gmail.com>

IconButton.cpp: fix memory leak.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Ticket : #13127

b50d53dd 18-Dec-2016 Murai Takashi <tmurai01@gmail.com>

NodePreloader.cpp: fix memory leak.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Fixes #13115.

4ee47fe9 25-Dec-2016 Rene Gollent <rene@gollent.com>

BListView: Cleanup, no functional change.

- Rename _FontChanged() to _UpdateItems() to more accurately reflect its
purpose, as discussed on commits list. Adjust callers accordingly.

4419d699 22-Dec-2016 Jessica Hamilton <jessica.l.hamilton@gmail.com>

partitioning: pass along reference to parent when uninitializing.

* Fixes problems with setting the partition name after uninitializing
a partition in DriveSetup. Previously, UninitializeJob() was
followed by SetStringJob(), but the kernel was updating the
change counter for the parent partition when uninitializing a
partition, leading to SetStringJob() having an incorrect change
counter for the parent partition. Now the parent change counter
will be correct when SetStringJob() runs.

078b08e4 20-Dec-2016 Rene Gollent <rene@gollent.com>

BListView: Fix missing update for list items.

- According to the Be Book, one of BListItem::Update()'s responsibilities
is updating the item's internal height/width. However, while we were
providing such updates in the case of the item initially being added
to the view, or when the list view's font was changed, we were not doing
so on frame resize. This would lead to items having a stale width field
in such a circumstance, leading to possibly incorrect behavior in apps
relying on that field to be correct.

51844723 17-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaConnection: Remove redundant IsInput/IsOutput

75b90c42 17-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaConnection: Fix buffer size and duration redudancy

* There's no need to supply ways to mismatch the buffer duration
and size. Anything should reflect the media_format, this is at least
fixed on API level.

2fdc256d 17-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaOutput: API cleanup

a9a63d1b 17-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: First valid ID for connections is 1

ab96594f 12-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaEncoder: Fixes CID 1347183: Control flow issues (NO_EFFECT)

* An unsigned value was checked for negative values.

3db31932 07-Dec-2016 John Scipione <jscipione@gmail.com>

BNode: CID 602323 explicitly ignore fCStatus return value in ctor

This is what it this whole push was all about

83cd87d0 11-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

SimpleMediaClient: Use virtual inheritance to reduce duplication

d1742cc3 11-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaInput/Output: Inherit base virtually

c5dcedec 11-Dec-2016 Rene Gollent <rene@gollent.com>

Debugger: Fix oversight.

- In the case where the function was already disassembled beforehand,
we weren't retrieving the statement, leading to a null pointer

fda0bf77 09-Dec-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Revert "repo rework: Re-add compatibility url field"
Revert "repo rework: Remove stubs; Breaks repo compat."
Revert "repo rework: Remove need for repos to be self-aware"

This reverts commit a2b2f4d6427914cdcdb59943dd8e4a0bfdcd53ee.
This reverts commit 602076ef82647a48fd10f4d1ec830bb4242f9eb6.
This reverts commit 5ffaf72c8a74a7eb6827e4d2b1f47c9360ddaefe.

These changes break the build on Haiku and the ability to create repo
mirrors, for the lack of a replacement for the URL (an UUID was evoked
on the mailing lists, but not implemented).

We are due for a release soon, please don't break the build.

f901d7f5 10-Dec-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Revert BNode changes resulting in non bootable system

Revert "BNode: CID 602323 explicitly ignore fCStatus return value in ctor"
Revert "BNode: Set fCStatus in SetTo() explicitly"
Revert "BNode: Style fixes, see below for details"

This reverts commit ede463195dee8536628c54ee6a4a888c0683a83f.
This reverts commit 6e3445098abd1d1e4cca69ba2d959fe74fe2cb1b.
This reverts commit 89c0b71c9a5acdbdb4543f025f64937bfbd893e3.

We are due for a release soon. Please keep things working.

7bdeef54 09-Dec-2016 Rene Gollent <rene@gollent.com>

Debugger: Rework parts of report generation.

- Adjust report generation event to include a final status code for listeners.

- Use aforementioned status code to indicate whether report generation
succeeded or failed.

- Notify listeners if report generation fails. This may have previously
been responsible for some bug reports where it was indicated that the
debugger hung without exiting after being asked to save a report from
a crashed app.
- When dumping disassembly, retrieve it directly if necessary rather than
requesting it via the user interface listener. This also fixes the quirk
that requesting to save a crash report while looking at the source code
of a function would trigger switching it to disassembly visually.
- When walking the list of threads to dump, acquire references to all of
them before starting. Otherwise, it was potentially possible for a running
but not crashed thread to exit while we were generating the report, leaving
us with a pointer to a deleted thread. This was most likely the cause of one
of the crashes reported in #13082.
- When receiving the notification that source code state has changed, clear
the waiting function. Otherwise, it was potentially possible for us to get
other state change notifications, leading to the data semaphore being
released too often. This would then cause later potential waits such as
the stack frame memory dump to not actually wait when they should,
potentially leading them to dereference objects that weren't yet ready.
This fixes another of the crashes in #13802.

ede46319 07-Dec-2016 John Scipione <jscipione@gmail.com>

BNode: CID 602323 explicitly ignore fCStatus return value in ctor

This is what it this whole push was all about

6e344509 07-Dec-2016 John Scipione <jscipione@gmail.com>

BNode: Set fCStatus in SetTo() explicitly

instead of setting it in _SetTo() and then again in SetTo()

fCStatus could be set even fewer times but this is a good compromise
(logically, performance wise it is not an issue).

Update copyright, add myself to Authors

89c0b71c 07-Dec-2016 John Scipione <jscipione@gmail.com>

BNode: Style fixes, see below for details

Remove superfluous parens
Rename result variable to bytesWritten
Sync() Unwrap ternary style fix (for consistency)
* Shouldn't this return fCStatus instead of B_FILE ERROR?
* BeBook says "returning B_OK on success and an appropriate error message otherwise."
* Has returned B_FILE_ERROR since "it is accomplished ..."
Rename result variable to bytesWritten (again)
Remove superfluous space
explictly cast status_t to ssize_t
Remove superfluous parens, remove space, add newline
Explicitly cast status_t to ssize_t (again)
WriteAttrString() cleanup
* rename error to result
* rename sizeWritten to bytesWritten (consistency and clarity)
* check if error cede from WriteAttr and cast to status_t
* > not entirely style but functionaly same
* if length is different then written return B_FILE_ERROR
* > not a style change but a very minor functional change
* add some comments
Tiny documentation fix precede vars with \a
More style fixes
* Rename error to result
* Put parens around conditional of ternary instead of whole thing
* Compare against NULL explicitly
* Don't set fCStatus here, we're going to set it in the calling function instead
* > note that Unset() sets fCStatus to B_NO_INIT but that's ok
80 char limit style fix
More style fixes and don't set fCStatus
* remove superfluous parens
* compare ref to NULL explicitly
* > Also don't set fCStatus here since we will do that in calling function
Unset() sets fCStatus to B_NO_INIT but that's ok
Unwrap ternary style fix (consistency)
Rename error to result (again)

b8d4709e 08-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaEventLooper: Remove soft real time lateness bounding

* The media_kit isn't an hard real time beast. Bounding lateness
looked like the perfect way to enable reasonable soft real time
performance and thus limiting port writes and reads between producers
and consumers. It seems to don't work very well so I just remove it.
* The result of the recent code simplification makes it equal to my
first version, before any discussion on it happened.
* Thanks to AlienSoldier for testing such issues.
* Fixes #13069.

a2b2f4d6 08-Dec-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

repo rework: Re-add compatibility url field

* We saw 3rd party repos break as well oddly.
* Reintroduces the url field in a little bit cleaner
* Should solve "Failed to open repository file" errors
* Once everyone updates beyond hrev50723 this is
no longer needed.

67e03014 07-Dec-2016 Rene Gollent <rene@gollent.com>

Debugger: Adjustments to report generator.

- Due to the changes made with respect to correctly handling switching to
disassembly explicitly, the report generator needs to request loading
source files as it walks the stack trace in order to get source-based
line number information. Fixes crash reports having -1 as the line number
in cases where debug information was available, but the user hadn't yet
looked at the source file in question.

- Cleanup.

602076ef 07-Dec-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

repo rework: Remove stubs; Breaks repo compat.

* These stubbs satisfied older Haiku releases that
required the URL
* Users running nightly images will need to upgrade
to hrev50723 - hrev50744 before upgrading further
* Getting this out of the way now before the beta
comes out.
* New installations shouldn't suffer any problems.

7cfc043e 07-Dec-2016 Rene Gollent <rene@gollent.com>

libdebugger: Fix a regression with ELF loading in some cases.

- The refactoring in commit 2c50fbb8e16102886d0cd28135dae0b58b9d33f4
inadvertently introduced a failure case if a section in the ELF file
is skipped, since it was explicitly passing in the insertion index
to BObjectList::AddItem(). Since in the skipped case, this would be
out of bounds for the list's current size, this would cause the whole
operation to fail with an out of memory error, and consequently halt
all further loading of debug information for that particular file.
This manifested itself with libroot on at least gcc5, where no symbols
could be seen.

f1f09565 06-Dec-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Just some interface review

692fe555 27-Nov-2016 Rene Gollent <rene@gollent.com>

libdebugger: Add initial version of network interface.

- Barebones classes for implementing a target host interface over TCP.

25ec63db 25-Nov-2016 Rene Gollent <rene@gollent.com>

libdebugger: Add string setting type.

- Needed in order to properly implement a settings description for
a remote interface.

9e4d0fd4 31-Jul-2016 Rene Gollent <rene@gollent.com>

libdebugger: Implement remaining remote request/response pairs.

bcca096a 31-Jul-2016 Rene Gollent <rene@gollent.com>

libdebugger: Fix header order in RemoteDebugRequest.

5ffaf72c 01-Dec-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

repo rework: Remove need for repos to be self-aware

* See #12917 for details.
* Squashed to one commit to make revert easy if we
run into any issues.
* pkgman is now pre-attached to the 'current' repo
version within nightly images so they can be updated
by default.
* This shouldn't impact us keeping older sets of package
versions by commit hash for building older hrevs.
* There are XXX stubs with "Kill me". These will need
to be dropped after users are given sufficent time to
upgrade. We're dropping a previously required field (url)
so making this a slowish roll out.
* Makes the repos a lot less restrictive which should
help PM package building automation be a bit easier.
* Once this stuff smooths out, we'll add UUID's to the
repo definitions for duplicate repo detection.

852e09d6 29-Nov-2016 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Added stop target ability.

* Before, you had to stop each job by itself.

ecb39585 28-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Introduce BSimpleMediaClient

* The idea is to move the callback based mechanism into a derived
class. The objects can be composed to create working systems.
* The BMediaClient class supply RegisterInput/RegisterOutput
and BeginInput/BeginOutput is moved to BSimpleMediaClient.
* Various minor fixes.

945566ff 27-Nov-2016 Humdinger <humdingerb@gmail.com>

Switch from DejaVu to Noto font

As discussed, Noto renders much better with freetype 2.7 [1].
The DejaVu package is still in the HaikuPorts repo and can be installed
manually just like all the other available fonts.

[1] http://www.freelists.org/post/haiku-development/freetype-update-from-265-to-27

209b520f 26-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Add some padding and reserved functions

05e29ea1 26-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaConnection: Remove Reset()

9ee6577e 26-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Distribute callbacks across derived classes

9e9655ed 25-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Use CurrentTime for both offline and performance time

6d025521 25-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Introduce BMediaInput and BMediaOutput

eebedf8f 24-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Use unique id for both inputs and outputs

902701e6 24-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Use higher level structs for the remaining methods

d3523cb2 24-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Fix connection and tests

* Remove some bran related to the Faber audio engine heritage,
this fixes connections and all tests.

a546d1f8 23-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Rename FindConnection into FindInput/FindOutput

* The first used for destinations and the second for sources.

300e9786 23-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClientNode: Fix PrepareToConnect with unknown media_type.

f506f305 23-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Improve internals and API

* Capabilities() become Kind()
* Use media_client and media_connection to better model
the different situations of the API. Reduce code duplication
and move media_kit structs/methods into private.
* Various API and beauty improvements.
* Introduce id management for media_connections.
* Fix different issues preventing to correctly begin a connection.

23d5326e 23-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Introduce media_client and media_connection

* Those structs are provided as replacement for the classic
media_kit ones. They provide better encapsulation of the data
and the resulting code is heavily simplified. It's planned to
introduce BMediaRoster functions to provide conversion from
media_node and media_input/media_output to media_client
and media_connection.

a9d53d9e 22-Nov-2016 Rene Gollent <rene@gollent.com>

Debugger: Fix regression introduced in hrev50534.

- Add new state FUNCTION_SOURCE_SUPPRESSED. This signals that the user
explicitly forced disassembly to be loaded despite source code being

- When forced to disassembly, use the above suppressed state accordingly.

- Adjust to take new state into account as needed.

- When looking at a function to decide whether to return line information
based on source or disassembly, first examine the source code state. If
the source has never been loaded for that function, but we have it available,
set it on the function at that point. This lazily addresses the fact that
LoadSourceCodeJob is called on behalf of a specific function, and
consequently only sets the source code onto that function, and not all others
present in the same file. This allows us to differentiate between the case
where a function doesn't have source code available at all, versus a function
that has simply been forced to disassembly view at this point in time.

The primary symptom of the above issue was that attempting to set a breakpoint
outside of the currently active function, but within the same file would result
in the breakpoints view indicating that the breakpoint was at line 0 rather
than the appropriate line, and breakpoints would also not be drawn in the
source view for such locations.

Thanks to Humdinger for the heads up!

2082b5d2 18-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Use media_client_kind for client capabilities

5ec9bd1e 18-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: general cleanup

0253ecbd 16-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaClient: Remove BeginConnection for external connections

* While it looked like a good formalism, there's no need to add
unneeded complex steps to the user of the API.

34619a6f 16-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Revert "MediaRoster: Don't allow rosters without a BApplication"

This reverts commit f3c2f6665f2102f7bfac9374712444271e383668.

2740a716 14-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Style fixes

f3c2f666 14-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaRoster: Don't allow rosters without a BApplication

* The BeBook states that any media_kit app should have BApplication
behind. Beware the app don't need to be running, but the object
should be present. This is because we use BApplication as a safe
exit point to free the memory allocated.
* While I was a bit reclutant in doing that, after a developer
discussion we agreed this would be the cleaner way to solve this
problem without eluding it.

ad7255c8 14-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaRoster: Use messaging instead to call Quit on exit

* As far as the bebook states loopers shouldn't be quit from
other threads, using a B_QUIT_REQUESTED message should be more

521f41dd 11-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Fix typo and build

9b410c41 11-Nov-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Initial merge of the BMediaClient branch

* The BMediaClient is an higher level API to the media_kit. It
corresponds to what the layout API was for the interface_kit.
The main idea is to allow the developer concentrate only on
higher level details and avoiding handle with the tricky parts
of the media_kit. At the same time the general purpose node that
is implemented inside would allow implementing the best techniques
around thus at the same time reducing code duplication and increasing
* BMediaClient is WIP, this is the initial merge of the branch.
The initial development stone was set long time ago and walked
through various design/implementation phases.

956c2f5f 11-Nov-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Replace "All BeOS disks" with "All Haiku disks"

- In mount menu and mount preferences.

Fixes #12623.

97a5f78d 05-Nov-2016 Humdinger <humdingerb@gmail.com>

Use driver settings API for the MIDI settings

Suggested by Adrien, to make the MIDI settings more future proof when
more settings will be added, and to make manual editing less error prone.
Moved the settings from B_USER_SETTINGS_DIRECTORY/midi to

156b6cd5 05-Nov-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

BMediaFile: fix destruction order.

The fSource can point to a source with code inside a media plug-in (in
particular, the HTTP source from the http_streamer plugin). However,
deleting the extractor can cause the plugin to become "unreferenced" and
unloaded. If we try to call code to delete the source later, we find
that the code is already unloaded, and the app crashes.

This happens in Web+ when navigating away from Youtube or otherwise
interrupting a video while it is being played.

Fixes the crashing part of #13058.

f4db7fdc 04-Nov-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

BUrl: allow URLs without protocol or authority again.

Parsing an URL can never fail. The regexp is designed to match any
input. In the worst case, everything will end up in the "path"
component. WebPositive relies on this to generate file URLs from a plain

URLs without a protocol are also possible, and can be used with an
implicit protocol. A typical example is network shares sometimes noted in
"//host.domain/path/file" form.

Add tests for these two cases and fix the parser to behave as expected.

c9275bf5 03-Nov-2016 Humdinger <humdingerb@gmail.com>

Fix loading of MIDI SoundFonts with spaces in filename

1674f60d 02-Nov-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Implement uninitialization for GPT

This makes it possible to format a GPT drive back to MBR without too
much effort.

Fixes #8823.

7e9b90f7 01-Nov-2016 Jérôme Duval <jerome.duval@gmail.com>

Midi: use fluidlite as fluidsynth replacement.

* SF3 support.

8023d6ba 31-Oct-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Move reference counting in the MediaPlugin

* Ideally we should support this feature by default to allow
future improvements to the plugins management.
* Fixes the major memory corruption that lead to various
crashes on exit in MediaPlayer.

42a3f947 25-Sep-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManger: Remove BReferenceable and add locking

ed31589c 31-Oct-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

URL Disaptching/Async listeners: forward debug messages

This makes it possible for the Asynchronous listener to get the
messages. It can then process them in a more fancy way.

The default implementation will still log the messages to the console
(if debug is enabled), but it will do so from the Async listener for
asynchronous requests now. This means they will probably be logged from
the same thread, and show up in a more readable way.

This also makes it possible to listen to several requests and log them
in a nice way (in a status window or whatever).

ed6d3d88 31-Oct-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

SecureSocket: add code to trace SSL events.

Under a #define TRACE_SSL, should you need it.

Also load error strings when initializing the SSL context, so we get
human readable errors from SSL (also in the ser reported ones).

a9665fc6 31-Oct-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

HttpRequest: use data from the input buffer first

The HttpRequest protocol loop is designed using an input buffer storing
data from the socket. At each loop, we try to parse some of the data,
and then read more from the socket.

However, in some cases (in particular with chunks, which we parse only
one at a time in a loop iteration), we may not use all the data from the
buffer. Eventually, we will be left with an "empty" socket (nothing to
read from there) but the request not completed because there is still
data in the input buffer.

In that case, we would hang waiting for a read on the socket, instead of
processing data from the input buffer.

Change the code to read from the socket only if a loop iteration did not
manage to read anything from the input buffer. This means the input
buffer is too small for the next thing to process (it contains less than
one line of data, for example), and in that case we can safely read from
the socket without being blocked.

This should fix several cases where the network code was stuck doing
nothing, including https://my.justenergy.com/ reported in #13010.

05574d9b 31-Oct-2016 Humdinger <humdingerb@gmail.com>

Tracker: Fixed alert button label for renaming of home folder

Fixed copy&paste error for button label of renaming action.

cf657294 13-Oct-2016 Andrew Lindesay <apl@lindesay.co.nz>

Url: implement same URL parsing logic in C/C++ code

- Remove uses of group matching regular expression, not available on all
build hosts,
- Parsing is faster than our old regexp engine.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

- Fixes #13002
- Fixed some indentation (tabs vs space), please configure your editor

f004acb0 31-Oct-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

HttpDate: fix parsing of 2-digit year dates.

Fixes #13043.
Added the affected cookies to the testsuite to avoid future regressions.

cec123b4 30-Oct-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

More fixes to the cookie parser.

- Fix parsing of strings shorter than 24 bytes (which can only happen if
the year has only 3 digits, or the day in month, hour, minute or
seconds have only 1).
- Only allow the GMT and UTC timezone specifiers, as all HTTP dates
should use the GMT zone (but still use a format that allows specifying
a timezone name).

All cookie tests are now passing.

2215451b 30-Oct-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

BNetworkCookie: fix overflow in date computation.

Fix one of the two failing tests from the cookie testsuite.

a61218b1 30-Oct-2016 Mark Hellegers <mark@firedisk.net>

Fix #13042: Make sure all cookies are saved

6c2abee2 29-Oct-2016 Jérôme Duval <jerome.duval@gmail.com>

Debugger: use localhost if gethostname() fails.

134ed614 26-Oct-2016 John Scipione <jscipione@gmail.com>

ListView: Fix off-by-1 bug introduced in hrev50574



Fixes #12990 more better

Thanks Humdinger for noticing this bug and reporting it.

3798bf90 22-Oct-2016 Augustin Cavalier <waddlesplash@gmail.com>

Use the kDesktopWindowLook/kDesktopWindowFeel constants from WindowPrivate.h...

... instead of redefining them, or including a private Tracker header to
get them.

cfe0adf0 22-Oct-2016 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove unused definition.

13cf3fec 21-Oct-2016 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove unused Cursors.h header.

3588e74a 19-Oct-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper: Return to simple lateness computation

* Remove enqueue_time again.
* Lateness seems generally useless. No way to get something useful
experimentally. The commit noise however was useful, the port wait is
behaving more in accordance with the lateness calculus.
* Fixes #12817 and possibly #12594.

0c98ab27 19-Oct-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaFile: Add BUrl SetTo

* Also fix the server version of BUrl constructor
to use a const reference.

1c5cb31f 19-Oct-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BAdapterIO: Implement SeekModes

45e5951b 17-Oct-2016 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Fix the TitleView appearing sometimes in icon-view folders.

It appears this would only happen when opening a new window (not an
existing one) for a folder that was set to icon-view.

Regression from hrev48734 (Layout API commit). Fixes #13000.

6a42abb2 17-Oct-2016 Augustin Cavalier <waddlesplash@gmail.com>

BView: Add missing NULL checks to GetMouse().

Fixes #12821.

534f2203 15-Oct-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Catalog stub: fix undefinied initiamization order.

As investigated by korli in #13001.

0dbb85e2 09-Oct-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Style fix

069c5697 09-Oct-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix incorrect use of _SendMonitorUpdate

Icon size is only a boolean here (true for a large icon, false
otherwise). Using B_LARGE_ICON directly is not appropriate.

As found by Murai Takashi, but there was a second case in the same file
which I also fixed.

ticket : #12955

7687a6ef 29-Aug-2016 John Scipione <jscipione@gmail.com>

ListView: Don't change selection while dragging

This allows you to drag and drop list items more easily, but,
removes the ability to drag and drop color squares in Appearance from
one list item to another. Changing selected list items while dragging
was more of a helpful side-effect for Appearance but isless reasonable
default behavior.

Fixes #12990
Partially regression on #8618

f638c82a 29-Sep-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

StyledText: fix reading of utf-8 documents

BNode::ReadAttrString does not check for the attribute to actually be a
string. It will return B_OK (and useless data) if called on a
B_INT32_TYPE attribute. Check the attribute type before reading.

Also remove various debug ouput leftovers.

May fix #12976.

a71b10d7 27-Sep-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

BTextEncoding: fix naming and move to BPrivate namespace.

2c9528d2 27-Sep-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

BNetEndpoint: improve timeout handling

Based on a patch by Duggan.

A timeout of 0 means "no timeout". Avoid an overflow case. Translate
B_INFINITE_TIMEOUT to a NULL timeout for select().

Fixes #7870

08e52491 25-Sep-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

TextEncoding: add Encode/Decode methods.

This replaces convert_from/to_utf8 in a way that doesn't leak memory.

Use the new method in StyledEdit.

Fixes #6252, #3065.

fbb725bb 25-Sep-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Add text encoding detection to the Locale Kit.

As usual we ask ICU to do the actual work. The TextEncoding constructor
is fed with a sample of the text to identify (ICU docs recommend a few
hundred bytes). The text is analyzed in various ways (bytes patterns
such as UTF-8 escaping schemes, common letter sequences from known
languages, byte order marks) and an encoding is determined.

Replace code in StyledEdit by this new implementation.

Note that ICU seems to always return some valid encoding, even with fed
with obviously non-text data. This makes StyledEdit open the files no
matter what, where it would error out before.

Fixes #9395.

09bb8269 25-Sep-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker: localize RegExp errors.

These were left out because the same RegExp.cpp file is also used by
collectcatkeys. This needed some jam file changes to get collectcatkeys
to build on both the host and target.

Fixes the last remaining part of #6374.

ccb55f96 25-Sep-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker: localize query templates.

Tracker can create query templates when they don't exist yet. This was
done with an hardcoded archive of BColumns for the pose view, which did
not allow for an easy way to replace the strings. Now the archive is
created on the fly when the function is run, which makes it possible to
build it with localized strings (and in the system's endianness, which
will make it load faster).

Based on patch by mt, but with a lot of rework.

Fixes part of #6374.

f8c5cdac 17-Sep-2016 Humdinger <humdingerb@gmail.com>

Use new Device_NAS vector icon for shared volumes

...and remove old bitmap icons.

b65adbdf 09-Sep-2016 Rene Gollent <rene@gollent.com>

Debugger: Fix #12940.

- Add new interface TeamFunctionSourceInformation. Currently this
exposes a single function allowing one to query for the currently
active source code given a FunctionDebugInfo instance.
- Implement TeamFunctionSourceInformation on TeamDebugInfo.
- Pass TeamFunctionSourceInformation to Dwarf{Team,Image}DebugInfo.
In turn, make use of it in DwarfImageDebugInfo::GetStatement() in
order to determine whether to return the corresponding assembly
or source statement.

With this piece of information, the debugger is now correctly able to
determine that the user is currently looking at disassembly despite debug
info being available, and consequently adjust its stepping behavior based on
that. Previously, the source code statement was always used, leading to it
not being possible to single step assembly lines in such a circumstance
without manually using run to cursor.

Other related cleanups:
- TeamDebugInfo now inherits BReferenceable directly, rather than relying on
indirectly inheriting it from TeamTypeInformation.
- Remove BReferenceable from TeamTypeInformation. The latter is only an
interface anyways, and inheriting that base class from multiple locations
was causing GCC5 trouble when resolving BReference<TeamDebugInfo>, even
when virtual inheritance was used.

ac8ca416 07-Sep-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Fix StreamerPlugin reference counting

* BReferenceable deleted itself when the latest
reference was released causing a double free.
* The code now avoid to call the function when
we are about to delete the object.

e3f20799 07-Sep-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Remove unuseful Close()

79bd3b48 07-Sep-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

StreamerPlugin: Add reference count

* Keep the Streamer around until everyone released it.

95a5e625 07-Sep-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaFile: Correctly delete the source on exit

* The delete flag of BUrl constructors was reset by _Init,
this lead to a zombie thread on the background under certain

584fd961 06-Sep-2016 Rene Gollent <rene@gollent.com>

libdebugger: Fix #12944.

- If there is no parent path, don't insert a path separator between parent
and filename. This may be the case depending on how the source file was
specified during compilation.

- When constructing an EntryPath from a LocatableEntry, ensure that the
parent folder actually has a path string that isn't simply empty to ensure
consistency with the raw dir/file case. Otherwise, hash lookups that are
dependent on the parent dir being NULL if not specified will fail, causing
us to not locate the file successfully. This was preventing us from updating
source location information for make 4.2's main.c, as the latter was
specified in such a way that the above combination of conditions would
occur, and consequently when asking the FileManager to update the source
location with the actual file, the entry couldn't be found in the table,
and no information would be updated.

ed99a95f 02-Sep-2016 John Scipione <jscipione@gmail.com>

Tracker: Add list view menu to virtual directory window

8fdd2629 01-Sep-2016 John Scipione <jscipione@gmail.com>

Tracker: 32x32 icon size option in list mode

16x16 is same old default
32x32 is new and fun

Adjust start offset to depend on icon size

Remove the kColumnStart variable and instead use StartOffset()
method which calculates the column start offset based on the icon
size. When you switch between icon sizes in list mode recalculate
the first column width to make room for the icon or more text.

Add some padding to list height in large icon mode.

41b9b4ad 01-Sep-2016 John Scipione <jscipione@gmail.com>

Tracker: Remove some left behind code

A couple of lines of code were left behind in a previous
refactor. Code just checked some list items.

b339ee18 02-Sep-2016 John Scipione <jscipione@gmail.com>

Tracker: Make mini mode default for list mode

but if you are in icon mode (like Desktop) use large icons instead.

This change will be important going forwards.

ee20ff95 01-Sep-2016 John Scipione <jscipione@gmail.com>

Tracker: Style fixes

More style fixes

5cf94071 30-Aug-2016 John Scipione <jscipione@gmail.com>

Revert "Tracker: Add some zoom padding in list mode"

This reverts commit f76147aa9ac4cd9c3367305f429dbdffb6df8bcf.

27c911e8 30-Aug-2016 John Scipione <jscipione@gmail.com>

Revert "Tracker: Add zoom padding in list mode take 2"

This reverts commit 7d009616aab2b00f0db48976625db042d141c5b1.

69808176 27-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Remove pthread.h include from netdb.h

- It is not needed in the .h, and makes gawk build fail.

7d009616 27-Aug-2016 John Scipione <jscipione@gmail.com>

Tracker: Add zoom padding in list mode take 2

Add 16px to right and bottom of content when zoom

fixup of last commit

f76147aa 26-Aug-2016 John Scipione <jscipione@gmail.com>

Tracker: Add some zoom padding in list mode

Add some padding to the right and bottom of the content when
you zoom.

16px the size of a mini-icon

5298c297 23-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix regressions introduced in hrev 50503

- Missing "dontAsk" when renaming some files,
- Missing exceptions in the warning alert construction to automatically
allow modifying some files (anything inside the settings folder)
- Missing translations

Fixes #12925.

e43cfe78 21-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

netresolv: Remove or disable unused variables

Fixes #12746.

4072c4f1 21-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker: fix localization of warning when editing system dirs

Programatically generating a string usually doesn't work well with
localization. Better unfold all the possiblities.

Moreover, the callers of the functions had a long if condition with
3 B_TRANSLATE calls embedded in, and there was an erroneous ; at the end
of those, so the supposedly protected statement was executed anyway.

Fixes #12747.

777ff371 27-Jul-2016 Murai Takashi <tmurai01@gmail.com>

Tracker: Fix -Wlogical-not-parentheses

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

With style fix: comparison must still be a boolean value.

Fixes #12892

36a9daf6 21-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Package kit: more style fixes.

Pointed out by Axel this time. Thanks!

a22f114f 21-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

chroot support in package kit: style fixes

- Catching an exception in the normal flow is not a good thing, instead,
test before calling the function (I've been doing too much python
- Avoid using uninitialized nodeRef if there is no system root and also
no specified root in the message.

Thanks to Ingo or the code review.

6262ccbb 18-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix use of findpaths from inside chroot

The package kit needs to provide the package daemon with the node_ref of
the root directory, so the package daemon gives the correct results when
the request comes from inside a chroot.

Moreover, the package kit must be able to handle a root with a system
but no home package dir, as is the case inside the chroot environment
created by haikuporter.

Fixes #12602.

2446f53b 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: Impliment autoscroll

BeOS had a feature where you could click on a list and while holding
down the mouse button scroll through the list items selecting them
as you went. I implemented the same feature on Haiku.

Did the work in separate thread which makes sure that the mouse
is held down the whole time even if you leave the view.

Thanks Diver for bringing this feature to my attention.

a98f98b7 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: check message not NULL, grab buttons and modifiers

ccd7f24f 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: Initialize all fTrack params to default

dc6233fc 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: Check index non-negative, not only not -1

e10ca8cd 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: Use std::max() and std::min()

... in place of max_c() and min_c() respectively.

9dfd244e 18-Aug-2016 John Scipione <jscipione@gmail.com>

BListView: Style fixes

* Rename kDoubleClickTresh to kDoubleClickThreshold
and use floating point in rval
* Pointer (*) goes with type for property var
* Use {}'s for multi-line if conditional
* rename point to where (consistent with header and rest of IK)
* Explicitly compare with 0 for bitwise operator statements
* Rename InitiateDrag() params

8471ec3d 13-Aug-2016 Rene Gollent <rene@gollent.com>

libdebugger: Fix #12913.

- When single stepping, verify that current instruction pointer is
actually within a valid image. Otherwise we'll crash attempting to
retrieve debug information for it.

b7012e6c 13-Aug-2016 Rene Gollent <rene@gollent.com>

libdebugger: Fix #12914.

- While computing return value locations, we need to re-evaluate
the availability of debug information as we're forced to traverse
around images to resolve the location of a function call. Otherwise,
we may crash as one of the called functions may belong to an image
that wasn't compiled with debug info.

bd4ea656 11-Jul-2016 John Scipione <jscipione@gmail.com>

BMenuItem: Style fixes

* explict NULL check
* explicit boolean comparison and pointer style fixes

8efb6db7 06-Aug-2016 Adrien Destugues <pulkomandy@gmail.com>

elf.h: rename ELF_MAGIC to ELFMAG

- This is how it is named in other versions of elf.h (Linux, glibc, possibly more)
- ELF_MAGIC is used by libelf for the same thing, and the defines conflicts,
breaking libelf build on Haiku.

9d37e741 31-Jul-2016 John Scipione <jscipione@gmail.com>

Tracker FindPanel: Make a copy of fDeviceIcon

... so that it gets deleted by destructor and not the original

4a319b9c 31-Jul-2016 John Scipione <jscipione@gmail.com>

Tracker FindPanel: SetMarked() and SetTargetForItems()

in AttachedToWindow() rather than the constructor.

This does the action at the appropriate time to draw the initial
state correctly.

d7fa9d35 31-Jul-2016 John Scipione <jscipione@gmail.com>

Tracker FindPanel: Use const char* instead of BString

Use String() to get the const char* out of the BString where appropriate

Also rename msg variable to message

717b47e7 31-Jul-2016 John Scipione <jscipione@gmail.com>

Tracker: Style fixes

indentation, spaces, explicitly compare to B_OK

d8c4f7b5 31-Jul-2016 John Scipione <jscipione@gmail.com>

IconMenuItem: Make icon_size B_MINI_ICON by default

caf0a129 11-Apr-2016 John Scipione <jscipione@gmail.com>

Tracker: Draw IconMenuItem in closed state

Add an Icon() and SetIcon() method. Override SetMarked() to set the
parent menu field icon.

Don't move the label right if icon is NULL. Make the first menu item
an IconMenuItem with a NULL icon. This allows the icon to draw in the
closed menu state.

icon gets updated even if you select an item in a submenu

81364c9d 18-Apr-2016 John Scipione <jscipione@gmail.com>

BColorMenuItem: add custom color menufield


* Make the color box a rectangle with proportions of golden ratio.
* Override GetContentSize() to make menu item area larger.
* Label should never truncate since I make sure there is enough room.
* Draw the label using BMenuItem parent class
* Carefully adjust the spacing so that there is an attractive amount of
padding between the checkmark and color box and the color box and label.

Add _AddMenu method to BMenuField that adds BColorMenuItem as its
base menu item. This shows the BColorMenuItem in the closed state.

Create BPrivate::MenuItemPrivate

Add a SetSubmenu() method to MenuItemPrivate that gives you
the ability to add a submenu after creating the object. This
method should be public

Skip disabled items

Color gets updated even if you select an item in a submenu

ca766a50 19-Apr-2016 John Scipione <jscipione@gmail.com>

BMenu: Offset the menu field's menu window left 8px

...so that the text when the menu is closed lines up with the text
when the menu is open.

The checkmark is draw to the left of left edge of the closed menufield.

e8d4db8e 19-Apr-2016 John Scipione <jscipione@gmail.com>

MenuPrivate: Add SetItemMargins() method

b75a2e9d 19-Apr-2016 John Scipione <jscipione@gmail.com>

BMenu: Add default padding to ctor

dcecaf60 19-Apr-2016 John Scipione <jscipione@gmail.com>

BMenu: Remove _ from protected method _DrawItems

61dfdec4 19-Apr-2016 John Scipione <jscipione@gmail.com>

BMenu and friends: style fixes

BMenuBar: style fix: msg => message

MenuPrivate: style fixes

MenuItem: 80 char limit style fix

MenuBar: tiny style fix

Menu: tiny style fix, indentation

Menu: Small refactor

Implement _SetIgnoreHidden() in header
Change on to ignoreHidden
Change on in _SetStickyMode to sticky

_BMCItem_: tiny whitespace style fix

Menu: style fixes, rename msgr => messenger

BMenu: style fix, pointer != NULL

BMenu::Archive rename ret to status

Also check pointer against NULL explicitly

BMenuItem style fixes: rename abbreviation, pointer style

17954f2e 22-Jul-2016 Rene Gollent <rene@gollent.com>

libdebugger: Initial work for remote support.

- Introduce base classes RemoteDebug{Request,Response} and the first set of
implementing subclasses for the various types of debug requests. These
encapsulate the information needed to make a request to the target debugger
interface, as well as a means to flatten/unflatten to a BMessage. These will
be used to marshal the relevant information for transmission across the
eventual transport interface. Not used anywhere yet since there still remain
some requests and responses to implement, among other things.

9c9c24ce 31-Jul-2016 Rene Gollent <rene@gollent.com>

libdebugger: Add accessor for cpu state size.

- Store and provide accessor for the size in bytes of the low-level
debug_cpu_state size of the respective target CPU. Adjust subclasses
to pass in the appropriate size information.

b02ee147 04-Jul-2016 Rene Gollent <rene@gollent.com>

libdebugger: Reorganize debugger_interface subdir.

- Split into separate subdirectories for each interface type, as is done in
the target_host_interface subdir. Preparation for the remote interfaces,
which will have quite a few more components than the existing local ones.

ebb20270 29-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Don't show warning alert when working in /system/cache/tmp.

Originally, the tmp folder was in /boot/common, where it didn't show
an alert box. Since the move to /system, it simply fell into the general
"is in system directory" case.

Fixes #10173.

e0a322db 26-Jul-2016 François Revol <revol@free.fr>

netresolv: remove asserts from inet_pton()

There are still asserts in inet_pton4 and 6 anyway.

libgit2's tests expect inet_pton() to fail with EAFNOSUPPORT on unsupported
address families instead of crashing...

606ae81a 21-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Move deprecated FSUtils functions to FBCPadding.cpp.

This includes FSCopyAttributesAndStats as well as an older version of
FSGetDeskDir, and adds another alias of FSGetTrashDir. Fixes BeIDE

c1cd54a0 21-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

FSUtils: Add a "bool copyTimes" argument to FSCopyAttributesAndStats().

BPoseView::NewFileFromTemplate does not want to copy the times. Fixes #11702.

We have to keep a 2-argument version of this function because it looks like
some third-party applications might call it (e.g. Dockbert), and even
though it's technically private API, it's easy enough to preserve binary

e944daca 21-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove special filtering case from NewFileFromTemplate.

If the pose matches the current type-ahead filter, it will be added
by the node watcher anyway, so this just created duplicate poses
which messed up internal data structures. Fixes #11122.

04039d6f 19-Jul-2016 looncraz <looncraz@looncraz.net>

BStringView: Proper color inheritence.

Legacy applications setting colors manually on BStringView would prevent
the BStringView from inheriting theparent view color. Most legacy
applications that did this also set the view color manually, so this went
unnoticed except in Beezer's Preferences window.

This fix introduces another, minor, issue for legacy applications that do
the same thing - they will not receive the system default panel text color.
In most instances, you don't want that happening anyway, so it's not much of
an issue.

Fixes #12868.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

a449e230 19-Jul-2016 Axel Dörfler <axeld@pinc-software.de>

Tracker: Made open-with menu scale with font size.

36c80cff 19-Jul-2016 Axel Dörfler <axeld@pinc-software.de>

Tracker: Fixed CachedEntryIterator::GetNextEntry() debug build.

* A "style fix" introduced in 54e2dd7272db551cab02cc678bd45bc4131dd867
broke the debug version by reversing the assertion logic.

0bcb8365 19-Jul-2016 Axel Dörfler <axeld@pinc-software.de>

Tracker: Remove adding BeOS trash icons in trash watcher.

* The icons have been removed in 4e38bdba1781bac2598e5f6319bf183fc2ab765b
which caused a debugger call in the debug build.

00a3a794 16-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

BSecureSocket: Let OpenSSL choose the most appropriate D-H curve.

b515f3b4 16-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

BSecureSocket: Print SSL error message as well as the error code.

Helps with debugging failed SSL connections.

44ffe7c2 16-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

BSecureSocket: Explicitly set the list of ciphersuites.

OpenSSL's default cipherlist has a lot of spurious and arguably insecure
suites left in it for compatibility reasons. We have no need for all that,
so let's just use the suites Firefox/Chrome do.

7cdea13c 10-Jul-2016 looncraz <looncraz@looncraz.net>

BBox: Correct low color for drawing label.

Includes some simplification for existing code.

Fixes #12628, which was mostly exhibited in FilWip and a few other legacy
applications which used the default low color and a custom background color.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

de9c53f8 12-Jul-2016 looncraz <looncraz@looncraz.net>

BButton: Revert to using B_CONTROL_TEXT_COLOR for text.

Fixes #12604.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
The switch to using HighColor() was made in the "Set*UIColor" commit,
but as some applications set it for some reason, it broke BeOS compatibility.

b39f9357 10-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

BSecureSocket: Disable SSL/TLS compression to prevent the CRIME attack.

See wikipedia:CRIME (Compression-Rate Info-leak Made Easy) for details.

0162e272 10-Jul-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Create seek sem only when requested

e0197754 02-Jul-2016 Murai Takashi <tmurai01@gmail.com>

TrackerString.cpp: fix comparison between pointer and integer

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Ticket: #12842

0474db50 09-Jul-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Add IsRunning method

* The backend need to know if we can really get data.
* Adapt WaitForData to be more reliable using this method.

05fc1277 03-Jul-2016 Rene Gollent <rene@gollent.com>

Debugger: Fix team restart request.

- Add Clone() function to set of required virtuals. This asks the subclass
to create a new instance of its respective type.

- Implement the above function.

- Add accessor for the currently active UI.

- Set correct request type when setting up the options for a team restart.
- Ask the TeamDebugger for its user interface and clone it in order to fill
in that aspect of the debug options. This fixes a regression introduced in
commit 880a64, which inadvertently resulted in team restarts no longer

9f2deec2 03-Jul-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Seeking and flags access improvements

* Backend seeking is done only if explictly requested in
BAdapterIO Seek.

3ad928de 02-Jul-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BAdapterIO: Refine size inheritance

* Wait evaluation is done considering both position
and buffer size.
* Set back position to 0 after seeking.
* Simplify EvaluatePosition to take advantage of inheritance.
* Use back position to determine the current size of the buffer.
* Add more debug tracing.
* Other minor fixes.

1acb1f50 30-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Style fixes

345dba54 30-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Further development of the interface

* Implement Open/Close mechanism.
* Implement SetBuffer.
* Implement timeout handling.
* Improve Seek mechanism, this is now working by locking the
thread until the backend call SeekCompleted.

4dd09daf 24-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Streaming: Use const reference in place of copying

* Thanks to Markus for reporting.

0ba82236 24-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Streaming: Remove any pointer BUrl argument

* There's no need to pass BUrl by pointer, this is
potentially dangerous and leaky without any advantage,
copying is definitely safer.

bcab157e 22-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Size could be 0

* Also avoid seeking completely when we are sure
we have to block.

6b697577 22-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Add debug

6903cf9b 22-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Increase consistency

* Moved data locking in the internal buffer class, includes handling
of backend writes.
* Takes advantage of inheritance for getting the size. The choice is
made depending on the flags. This allow the implementer to easily
return a custom size by reimplementing GetSize. At the same time
a plain BAdapterIO can still have it's total size set, but the behavior
will change depending it's mutable or not.
* Some decisions are now made by considering everything in absolute
* Other minor fixes.

ad89985e 21-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Assign the BBufferIO pointer

59ff587d 08-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Style fixes

e1c98cea 22-May-2016 Mark Hellegers <mark@firedisk.net>

Add support for TLS SNI

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

fa2dd9c4 09-Apr-2016 Andrew Lindesay <apl@lindesay.co.nz>

BPackageInfo::Parser: Validate URL strings.

Fixes #12710.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
I fixed the modifications to the Jamfiles in src/bin, they were all wrong
in the patch.

ac315db0 29-May-2016 Mark Hellegers <mark@firedisk.net>

locale: Fix 24 hour format for DateTimeFormats.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Fixes #12575. I checked with PulkoMandy on IRC before merging this,
and fixed some whitespace violations of the coding style.

3faf39eb 07-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BAdapterIO: Add initial seeking support

* This is by default provided using a relative buffer. When the
client request a seek over the range we currently have, we will
ask the backend with a SeekRequested. When the backend operation
ended successfully, the client is required to call SeekCompleted
before to return. This will cause the offset to change and the
buffer is cleaned as result. Next data received will be considered
to be at a position equal to the offset plus the relative position.

0b20cac7 05-Jun-2016 Rene Gollent <rene@gollent.com>

libdebugger: Remove unnecessary header dependency.

- The library does not depend on libedit/ncurses, these were contained
entirely within the application level code.

9968f343 05-Jun-2016 Rene Gollent <rene@gollent.com>

Debugger: Adjust header order.

- Ensure that the debugger lib's headers are included before those of libshared
to minimize conflicts between the respective Thread classes. Fixes gcc2 build.

Thanks to Jerome for reporting.

fce4895d 29-May-2016 Rene Gollent <rene@gollent.com>

Debugger: Split into core library and application.

- Add subfolder src/kits/debugger which contains the debugger's core
functionality and lower layers. Correspondingly add headers/private/debugger
for shared headers to be used by clients such as the Debugger application
and eventual remote_debug_server. Adjust various files to account for
differences as a result of the split and moves.
- Add libdebugger.so to minimal Jamfile.

be67b102 02-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AdapterIO: Fix problem with RWLocker

* Originally this code didn't use an AutoLocker, when I changed it
I didn't realize I created an anonymous temporary inadvertently.
* Thanks to hamishm for catching this.

228b5c17 02-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement SetSize in AdapterIO

* Give this choice to inherited classes.

53058b8a 30-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Fix x86_64 build

0a2584e4 30-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Refactor to make use of new API

* General refactor, moved BDataIO emulation in a
BAdapterIO derived class, BDataIOAdapter.
* This allowed to simplify the wrapper that is now
considering everything to be seekable or pseudo-seekable.

b660d95f 30-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Introduce BAdapterIO

* This class is provided as a safe multithreaded communication channel
between a BMediaIO-like interface and a Read/Write backend.
* Includes internal buffering and can be used to provide multithreaded
edit of the data.
* Current limitations include missing BOutputAdapter and
correct timeout handling.
* Future plans provide a BRemoteAdapterIO that using ports
and areas allow to easily send big data between processes.

2ceb090f 19-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Follow up fix to use only portable codes

* My previous commit fixed x86_64 but broke all other archs.

f4ba347b 19-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Fix debug printf werrors

* When debugging was enabled in the media_kit those were
causing the build to fail complaining about werrors.

9d6d0aea 18-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Missing return in printf

51c8ec34 16-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaKit and MediaPlayer Style Fixes

* Suggested by korli, thanks!

6646363e 16-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaExtractor: The source is always owned by BMediaFile

* While originally I think it was a good idea to make it own the source,
then I decided to uniform the code by making the BMediaFile to be the
only responsible of that.

21cf69c7 16-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AddOnManager::GetStreamers: Consider maxCount and outCount

* Fix a little issue when getting the plugin.

dc941325 16-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaFile: Set for deletion a source obtained from url

* Added some TODOs and comments for future things that
are not priority now.

b8a71696 14-May-2016 Rene Gollent <rene@gollent.com>

BSocketMessenger: Further improvements.

- Messages that expect a reply are now tagged with a unique ID field to
indicate that expectation to the receiving socket messenger.
- The messenger now maintains a map of received reply IDs and their
corresponding messages, along with a message queue of other unsolicited
- After successfully connecting, the messenger now spawns a thread
whose sole responsibility is receiving and parsing all incoming messages,
and consequently sorting them into the aforementioned data structures based
on the presence of the reply ID. Callers who are awaiting either replies or
other messages are signalled appropriately via a semaphore. This allows
multiplexing of both types of messages on the same socket.

213ddbf6 14-May-2016 Mark Hellegers <mark@firedisk.net>

ResourceFile: Handle version info in resource in other endianness than host.

Fixes #12779.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Includes some minor whitespace fixes by me.

d455c57e 14-May-2016 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Change QueryPoseView over to using a BRefFilter.

Fixes #12640 (was broken by hrev44493).

44d19f4d 13-May-2016 Augustin Cavalier <waddlesplash@gmail.com>

GameSoundDevice: Don't use operator= on BLocker.

f0a5e33a 13-May-2016 Augustin Cavalier <waddlesplash@gmail.com>

HttpAuthentication: Add explicit copy & assignment constructors.

So that we don't copy the BLocker. Fixes part of the build.

3ab5be9f 05-May-2016 Murai Takashi <tmurai01@gmail.com>

PicturePrinter.cpp: fix gcc6 build

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

9e9c5cae 04-May-2016 Murai Takashi <tmurai01@gmail.com>

DiscoveryAgent.cpp: fix gcc6 build

* Reindent souce code, to fix gcc6
'-Werror=misleading-indentation' warnings.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

b18c4449 07-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper::SetBufferDuration: Clamp if negative

* For the sake of making the code more backward compatible,
and safer eventually.

6d63bc5e 07-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

launch_media_server: Use BLaunchRoster::Start

* Remove SyncToServices and the related code from BMediaRoster.

f2bb946b 07-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper: Handle events in past differently

* When the loop didn't handle an event in performance time, we will
attempt at reading the port only if there are messages using a null

e042d9eb 07-May-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaEventLooper: Calculate lateness from the nearest value

* When the event is late there are two major situations, the first
is when the enqueue time is in past compared to the performance time.
The second happen when the performance time is in past compared to the
enqueue time. The purpose of this change is to calculate the lateness
considering always the nearest of the two values. This way the exceding
latency is trimmed out from the calculus depending on what the actual
source of delay is.
* There is a lot more that could be done by looking at the previous
lateness value.

109459c8 02-May-2016 Murai Takashi <tmurai01@gmail.com>

MailProtocol.cpp: fix gcc6 build

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>

56d0435f 02-May-2016 Murai Takashi <tmurai01@gmail.com>

LocaleRoster.cpp: fix gcc6 build

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>

33bb9831 30-Apr-2016 Murai Takashi <tmurai01@gmail.com>

netresolv: Fix gcc2 build

Change suppress warnings options to -Wno-sign-compare
since -Wno-error= can be used with gcc 4.2 or later.

Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>

6d4e35f6 01-May-2016 Rene Gollent <rene@gollent.com>

BSocketMessenger: Fix size mismatch.

- The header size was accidentally being included in the flat buffer size,
leading to a mismatch error when reading the incoming message.

6dd98243 01-May-2016 Rene Gollent <rene@gollent.com>

BSocketMessenger: Style fixes.

493cced1 30-Apr-2016 Rene Gollent <rene@gollent.com>

libbnetapi: Add socket messenger class.

- Introduces new network API class BSocketMessenger, allowing one to send
and receive BMessages across a network socket in a BMessenger-like
fashion. Still very much WIP, hence currently not exposed via public headers.
Based partly on previous work by Axel.

65d0cbfd 29-Apr-2016 John Scipione <jscipione@gmail.com>

BTabView: Draw bottom tab border in DrawTabs()

...instead of DrawBox().

Also use ceilf when calculating tab height to prevent non-integral height.

Fixes #12683

More Todo:

You have to understand way too much about how this class draws if you
want to have any hope of overriding one of its Draw... methods and have
it do what you expect.

e.g. The BeBook implies that the tabs are drawn first, then the box, but, we
draw them in the opposite order. Probably better this way but not intuitive.

There are a number of remaining questions:
1. Why don't we need to draw the bottom of tabs if B_FANCY_BORDER?
2. Why do we need to expand tab border horizontally if B_PLAIN_BORDER?
3. Why is the bottom border color (152, 152, 152) instead of (151, 151, 151)?

Add a bunch of TODOs for these questions and more.

There can be some unitiutive gaps between the box border and view
depending on if you choose B_FANCY_BORDER or B_PLAIN_BORDER.
You don't notice the gaps unless the view draws right on it's edge. Some
views, including in Devices and Media Prefs do this though. Media Prefs
further complicates matters by overriding BTabView.

76b2ce77 12-Mar-2016 John Scipione <jscipione@gmail.com>

BTabView: Remove borderOffset, no longer useful

1eb05790 29-Apr-2016 John Scipione <jscipione@gmail.com>

BTabView: Don't use std, just call std::nothrow

24cb14bc 10-Mar-2016 John Scipione <jscipione@gmail.com>

BTabView: Style fixes

Fix misleading indentation

remove extra newline

just a newline

selTabRect => selectedTabRect

3490eda8 29-Apr-2016 John Scipione <jscipione@gmail.com>

ControlLook: Rename border param to borderStyle

border vs. borders is confusing.

BTabView: Rename border param to borderStyle

BTabView docs: rename border param to borderStyle

enumerate border styles in docs

c9dd7d0d 27-Apr-2016 Rene Gollent <rene@gollent.com>

libbnetapi: Extend socket classes.

- Add functionality to listen for and accept new connections, thus allowing
one to use the socket classes for server functionality as well.

- Adjust to take into account differences between how SSL needs to be called
when accepting an incoming connection vs initiating an outbound one.
The handshake on the accepted connection stills fails for unknown reasons
at the moment though.

Note that these changes break the ABI, and thus any packages making use of
them directly will need a rebuild.

42b76781 27-Apr-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

netresolv: Fix build issues under Ubuntu 16.04 and OS X

* Either gcc or bison version changes are throwing a
sign-compare Werror in the generateda irs nslexer.c
* This simply targets that Werror and disabled it in irs

22097d7a 26-Apr-2016 John Scipione <jscipione@gmail.com>

Style fixes to BPeropertyInfo class

e29ff323 22-Apr-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

bluetooth_server: Fix multi-arch build

20802959 22-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

shutdown_media_server: Rely on actual instance

* Makes the shutdown process to rely on the instance that was
running at the time the function is called. While it's unlikely
anyone will see any change from that, this way we will not conflict
in any case with the launch_daemon.
* The reply could have been confused in a remote situation, make
every request to use an it's own object.
* In launch_media_server there was a wrong variable redefinition

e4704eb6 22-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaDefs/MediaRoster: Increase code consistency

* Also fix a possible issue with List::Get, the code returned
after a Get() error. While I doubt if this happens the next
items will be still valid, I prefer to continue until we reach
the end of the items, and in case of a SyncToRoster request we will
at least get the list empty. We might have a blocking call
on the other end, so it's our own duty to at least try to avoid
this in any case. As final result at least we will get the list

76889670 21-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

shutdown_media_server: Finalize rework of synchronization

* When the user isn't requesting a custom notification, it will
be a BMediaRoster job to do it.
* Reintroduce BMediaRoster::SyncToServices, this time based on local
message passing rather than a global semaphore.
* SyncToServices is used in launch_media_server to make the process
more launch_daemon safe and faster in the average case.
* It was an error to add notifications in the media_server.
* Fixes #12717.

e9208b68 13-Apr-2016 John Scipione <jscipione@gmail.com>

ScreenSaver: Rename BuildScreenSaverDefaultSettingsView

...to just DefaultSettingsView

It is just as obvious what it does in context, but shorter.

Rename the function it contains from
BuildDefaultScreenSaverSettingsView to

3801c37b 13-Apr-2016 John Scipione <jscipione@gmail.com>

Screensaver: Update Default Settings View to use Layout

and standard insets so that they match other screen savers

f441a1e2 07-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BControllable: Fix real_time and perf_time mismatch

* It caused parameters to change with delay, because the
event has been enqueued in the event queue with real time.
* Please don't rely on system_time.
* Fixes #5106.

2f611cf7 05-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BParameterGroup: Fix memory leak

* Fixes #12706.
* The issue has been reported by Cédric Degea with the fix
included. Thanks!

99741be9 05-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

shutdown_media_server: Rework shutdown process

* Fixes issues with launch_daemon restart.
* Rely on what the actual response from the server is
instead to naively try to kill it.
* Remove snoozing and make the restart process very fast.
* Any app should rely on notifications anyway.
* Due to some reason a few months ago the media_addon_server
locked up very often making the notification service unreliable,
today this issue looks like solved. This made possible the recent

11c7bd86 04-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Replace synchronization semaphore with async messages

* Remove SyncToServices, I will probably readd it in future
but this time using a local synchronization service more than
relying on the media_server to release the semaphore.
* Due to some discussions today in mailing list I decided
to step back and retry the initial way to notify media rosters
about media services status. It is woking by using two different
notifications for reconnecting to the media_server and notifying
the local subscribers.
* This speed up the media services restart.
* Sorry for the noise and very thanks for reviewing my code to

a0b3904a 03-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

launch_media_server: Remove notifications handled elsewhere

53c3fa51 02-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Introduce functionality for syncing with the media services

* The global synchro semaphore is provided with the purpose of
being used to avoid threads lock up when the media_server is in
an undefined state. There's still room for improvements.
* BMediaRoster::SyncToServices lock up on a semaphore until
the multi_audio correctly connected to the mixer.

7eaa054b 31-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

StreamerPlugin: Use BDataIO as base interface

* There's no need to force the streamer plugin to use a
BMediaIO. This class is supplied to accomodate more smart uses,
but in certain cases it makes just things more complex. If a
plugin doesn't need to have an internal caching method, then it
will be simpler to implement a block-consuming BDataIO and let
the internal BMediaIOWrapper to deal with caching.

9ab61bb7 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Fix build for x86_64

a204259b 25-Mar-2016 Rene Gollent <rene@gollent.com>

BShape: Fix issues for debug build.

As part of the refactoring that was done for app_server layer support,
the private shape_data struct was updated to derive from BReferenceable.
However, BShape's destructor was never updated to reflect this, and
consequently attempts to use a debug build of libbe would consistently
throw the user into the debugger due to BReferenceable's sanity check
against non-zero deletes that weren't on the stack.

It should be noted though that there are probably a few things that could
be factored out and/or simplified with that class in general, since e.g.
when copying its data from another shape_data instance, it uses C++ array
allocations, while when being manipulated by BShape directly, the latter
uses alloc/realloc/free.

8c767985 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Move MediaIO in it's own header

2250435e 24-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Add debug to wrapper

25527aff 17-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaIOWrapper: IsEndless was not used the right way

* The idea is to just identify when a BMediaIO is able
to tell the whole size of the data, but caching needs
more complex policies to be successful.

22c93142 14-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaExtractor/PluginManager: Add plugin deletion when extractor die

3733e4b2 11-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager/AddOnManager: Add streamers support code

b7776028 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaFile: Rework to support BUrl sources

20ae088f 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaWriter: Add new BUrl functionality

a2b3f126 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaExtractor: Adapt to new BUrl functionality

b1ccc058 11-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AddOnManager: Initial support for streamer addons

63e1708e 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Finalize StreamerPlugin

* Add cpp file.
* Make Sniff virtual.

0d88bf3a 10-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaIO: Review behavior regarding object inheritance

050118ef 07-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Remove TODOs

382c78df 07-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaIOWrapper: Check if we can really seek the data.

36ffce0a 07-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaIOWrapper: Delete data in destructor

ef167f11 07-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaIOWrapper: Refer on fallback buffer Position()

* Write the data into the fallback buffer when emulating
pseudo seeked writes.

deb91660 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Refactor of MediaIOWrapper

* Use BPositionIO version of Read/Write.
* Implementation of fallback buffering.
* Other cleanup.

6efbc4bb 06-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaFile: Move BBufferIO usage into the plugin manager

* Add InitCheck for the wrapper status.

b42aac7b 06-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

PluginManager: Initial switch to BMediaIO

7b79e069 06-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Add prototype BMediaIO interface

6a8276c4 22-Mar-2016 John Scipione <jscipione@gmail.com>

BSlider: Remove non be_control_look drawing code

8e7b383a 22-Mar-2016 John Scipione <jscipione@gmail.com>

Slider: Replace min_c and max_c with std::min and std::max

8be1a5f0 22-Mar-2016 John Scipione <jscipione@gmail.com>

Slider: Style fixes

Pointer style
Compare against NULL or 0 explicitly
use single floating point precision for float literals (i.e. use 0.0f)

8b902d94 22-Mar-2016 John Scipione <jscipione@gmail.com>

IK: Use panel text color for select control labels

NOTE: This should have no effect on the colors of these labels unless
you have changed the panel text color and control text colors to be
different. Both are black by default.

In the case of the menu field, spinner, check box, radio button,
slider, and text control labels we want to draw these labels using
the panel text color instead of the control text color because they
are drawn on top of the panel color. (the menu field label color was
changed in a previous commit in this push).

In all cases except the menu field the label color is specified by
temporarily unsetting the B_IS_CONTROL flag while drawing the label.
All use control look to draw the label.

The control text color is meant to be used for text INSIDE the control,
not the label text that accompanies the control -- at least that's the
way I understand it.

5b2aa7f8 22-Mar-2016 John Scipione <jscipione@gmail.com>

ControlLook: style changes only

indent fix (tiny)

59e1b2f4 22-Mar-2016 John Scipione <jscipione@gmail.com>

BMenuField: Change label to panel text color

...instead of menu item text color when the label is unselected.

Menu item text color seems to make sense when the control is unselected
because we use selected menu item text color when the control is
selected, but, this isn't the case. We color the label background using
the menu item color because we are reproducing similar behavior of
BeOS R5. However, when the menu field is unselected the label needs to
draw so that it goes on the panel bg color.

846a5b02 20-Mar-2016 Zoltan Mizsei <miqlas@gmail.com>

printf's converted to TRACE

Signed-off-by: Dario Casalinuovo <b.vitruvio@gmail.com>

b0016556 17-Mar-2016 John Scipione <jscipione@gmail.com>

BWindow & WebPostive: Move TextView detection code

... from WebPositive to BWindow. This way every window will detect
Command+Arrows and send them to BTextView if a BTextView has focus
instead of just WebPositive.


This trick doesn't work in Vision though...

Fixes #9913

105a543e 17-Mar-2016 John Scipione <jscipione@gmail.com>

BWindow: Rename string to bytes

2ab6ca29 17-Mar-2016 John Scipione <jscipione@gmail.com>

BWindow: Style fixes

a99b9010 17-Mar-2016 John Scipione <jscipione@gmail.com>

BWindow: Reorder includes

31023893 15-Mar-2016 Julian Harnath <julian.harnath@rwth-aachen.de>

Network Kit: add BNetworkDevice::Control

* Allows to do an arbitrary ioctl on the network device

* For ifreq and ieee80211req requests

53f75ce5 12-Mar-2016 John Scipione <jscipione@gmail.com>

BColorControl: Remove fOffscreenView pointer

...and rename fBitmap to fOffscreenBitmap to make it more clear what it is.

We don't need to save a pointer to both the offscreen bitmap and
the offscreen view, just the bitmap. We can access the view by calling
fOffscreenBitmap->ChildAt((int32)0). This gives us back a _reserved private
variable slot.

In the (unlikely) case that _InitData() is called with offscreen = false but
the fOffscreenBitmap is not NULL, delete fOffscreenBitmap before
setting it to NULL so that memory is not leaked.

76b9d53b 08-Mar-2016 John Scipione <jscipione@gmail.com>

BColorControl: Rebuild control after mode switch

App Server sends each window a message that the screen has changed:
Propegate B_SCREEN_CHANGED message to all child views first

Tell BColorControl to read the B_SCREEN_CHANGED message and reinitialize itself.

* Only reinit if switching to or from B_CMAP8
* Initialize all pointers to NULL in constructor
* Don't destroy and rebuild offscreen view (and text views) on reinit
* Reinitialize offscreen view on reinit.

Fixes #8035

Also initialzing the pointers to NULL in constructor fixes #12673

0e3b3f92 12-Mar-2016 John Scipione <jscipione@gmail.com>

BColorControl: Awesome style fixes

8db20d05 12-Mar-2016 John Scipione <jscipione@gmail.com>

BColorControl: Standardize on useOffscreen

...instead of doubleBuffered for the flag that specifies whether or not to
draw using an offscreen buffer.

Also remove the (not currently used) text from the docs since the parameter
is being used.

27c801a1 10-Mar-2016 John Scipione <jscipione@gmail.com>

BTabView: Draw right border even if 1 tab

The right border is seen on active tabs giving them a bit of a shadow.

a0ea818b 10-Mar-2016 John Scipione <jscipione@gmail.com>

BTabView: Move first tab over by B_WINDOW_SPACING

BTabView::DrawTabs() got a makeover:
Draw the tab background across the whole view, then draw the tabs,
finally draw the rightmost tab's right border.

31c8f7b1 10-Mar-2016 John Scipione <jscipione@gmail.com>

BTabView: Style fixes

9bd7e401 07-Mar-2016 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Restore original PoseView/TitleView names except in BFilePanel.

Should've fixed #12635, but it doesn't. No idea why; perhaps
request.AddSpecifier("Window", "/boot/home/Desktop");
doesn't work anymore?

80bc632a 07-Mar-2016 Augustin Cavalier <waddlesplash@gmail.com>

BStatusBar: Restore the old blue-ish color from before the Set*Color changes.

214f8799 04-Mar-2016 Jérôme Duval <jerome.duval@gmail.com>

try to fix gcc5 build on buildbot.

* I'd only reproduce the kernel build failure locally, weird.

fad740e3 03-Mar-2016 John Scipione <jscipione@gmail.com>

DeskCalc: Estimate n! using 9 term Stirling's

Approximation for n >= 1000

Actual Value (truncated)

4.0238726007709377354370243392307 E2567

2.8462596809170545189064132121197 E35659

2.824229407960347874293421578024 E456573

Close enough!

261bdbab 17-Jan-2014 John Scipione <jscipione@gmail.com>

Use 5 factor Stirling's Series

fb4dcb49 16-Jan-2014 John Scipione <jscipione@gmail.com>

Use Stirling's approximation for n!

a5a3b2d9 14-Feb-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Bluetooth: fix thread safety issue.

Fixes #11428.

4666afbf 11-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper: Revert recent timeout rework

* While on my system it looked like to run well, it introduced
a regression on some hardware. I'm reverting it as I don't have
a better solution, with the difference that we will do that only
for perfomance time events.
* Fixes #12624.

c1ad6121 09-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRecorder: Solve possible problem with node references

* Since the BMediaRecorder have an it's own estabilished policy
relating releasing the producer node we will not interfere with
it except when we are controlled from Cortex.

d23913f2 09-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRecorder: Return the actual accepted format

* Allow SoundRecorder to record without the need of a system mixer
in front, for the nodes I can test.
* Solve other format related problems.

cc0d365e 09-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRecorder: Fix unneeded argument and error check

2a2e352a 09-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRecorder: Rework to allow external connections

* This required to review various parts of the code, and
isn't probably still perfect. The main problem was an attributes
hell where redondance created a lot of problems, all this data
is now controlled mostly by the node.
* Header indentation changes needed too.

801b3e3b 07-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaEventLooper: Add more safeness on exit

* The WaitForMessage is moved at the end of the loop, and
the check for quitting the loop is moved as it's condition,
this makes us to be sure that once a Quit() request is performed
we will not handle events anymore.
* Other minor style and initialization fixes.

e2cf46ca 03-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

TimedEventQueue: Fix style as suggested by axel

138a8026 02-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper: Use enqueue_time in a different shape

* This is the only solution that allowed to use the best
of both ways to do this calculus. I've also tested it
with a modified sound player that snoozed every time
the buffer should be handled, and found that neither
of the lateness calculus I tested (including enqueue_time)
really solve all problems. That's why I've tried to find
an average solution. There's still room for improvements

bb1f15aa 01-Feb-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper: Better solution for negative timestamp

* This problem happens only at the startup, so that it's
preferred that we deal with it in the BMediaEventLooper side.
* This solve some audio stability problems I had with slow systems.

ffeb987d 30-Jan-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper: Make lateness calculus in real time

* After having this patch applied locally for some time,
I'm going to be sure that we have to deal only with real_time values.
* Since RealTime() is just a system_time() wrapper, the code
will be slightly improved in performances too.
* Additionally it performs very well when the thread is
externally stopped (such as debugging it), so that the audio
recover almost immediately.

f1059fbd 28-Jan-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

BSoundPlayer: Release the node instead to delete

* It's a bad idea to delete directly a node. There are some
mechanisms behind that might break if not used correctly.
* May help with #12606.

3e08f216 16-Jan-2016 looncraz <looncraz@looncraz.net>

MenuField Low Color (for frame)

BMenuField's frame is drawn from the LowColor() which is adopted from its
parent. However, we should be adopting the parent's view color for our low
color, otherwise we sometimes end up with a miscolored border (most often white).

This was not noticed earlier as most views have matching view and low colors.

Fixes ticket #12603

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

de4b1ded 20-Jan-2016 Axel Dörfler <axeld@pinc-software.de>

BMailProtocol: Removed delete/append methods.

* The mail system is file based which makes these methods pretty much

f9fe8e12 24-Jan-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Style fixes as suggested by Axel.

be1537b4 24-Jan-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

BBox: tolerate non-layouted child in layouted mode

While mixing layouted and non-layouted views is not supported, we are
doing it in some cases, including translator preferences (which uses
layout, but the views may come from a translator add-on which doesn't).

So, try to handle that case and at least avoid crashes by calling
MinSize/MaxSize and other unsupported layout code on views which won't
handle it.

Fixes #12610.

37f9a292 18-Jan-2016 looncraz <looncraz@looncraz.net>

Improve Default BButton Appearance

Change control border color to 172, 172, 172 and use for default button
indicator drawing.

People doing an in-place upgrade will need to modify the border color from
its previous default manually or by pressing "Default" in the Appearance
preflet. This is a one-time annoyance.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Fixes: #12589

9909ce41 15-Jan-2016 looncraz <looncraz@looncraz.net>

BSlider - Don't Use Control Mark Color

This returns BSlider to its original appearance.

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Fixes #12578.

8028ede7 15-Jan-2016 Rene Gollent <rene@gollent.com>

Build: Add architecture rule for libshared.a.

- As suggested by Ingo, add libshared.a to the architecture name map.
This allows it to be linked by its short name like other frequently
used libraries.
- Adjust all Jamfiles referencing the lib accordingly.

7a3892f4 14-Jan-2016 Rene Gollent <rene@gollent.com>

BWindow: Fix keyboard handling bug.

- In the case of certain messages that are dispatched from the
app_server with multiple target tokens (i.e. due to an attached
view that has a mouse or keyboard event mask set), we need to
strip the focus flag from the message before passing it to the
non-focus views. Fixes a bug observed via Clipdinger where the
aforementioned circumstance would result in all keyboard shortcuts
being invoked multiple times.

2eb5cc49 14-Jan-2016 Rene Gollent <rene@gollent.com>

libmail: Fix build on secondary architecture.

618cc43b 14-Jan-2016 Axel Dörfler <axeld@pinc-software.de>

IMAP: New folders will now adopt default mail attributes.

* Added a function CopyMailFolderAttributes() that copies the attribute
layout from the text/x-email default query folder.
* This using the new CopyAttributes() method in libshared that is pretty
much a copy of a similar method from copyattr. However, I did not
replace the latter, as that one allows for more fine grained error
reporting (and attribute filtering).
* Closes ticket #3498.

56af4c7c 13-Jan-2016 Augustin Cavalier <waddlesplash@gmail.com>

BShelf: Use strcmp().

faf00c7f 10-Jan-2016 looncraz <looncraz@looncraz.net>

ControlLook - Desktop Labels

Enforce use of proper colors in DrawLabel() when on the desktop.

This repairs an issue where the text looks wrong in ActivityMonitor when it is a
desktop replicant and likely other unreported issues.

Fixes #12576.

Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>

a99deff4 10-Jan-2016 looncraz <looncraz@looncraz.net>

Tracker Desktop Icons Using Wrong Text Color

Was using the panel color without checking if we were the desktop view.
This corrects the reported issue where icon label outlines would look

Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>

d3fc049b 12-Jan-2016 Augustin Cavalier <waddlesplash@gmail.com>

BShelf: Use BString for comparing strings.

Recommended by Jessica on the Commits ML.

e2dfcf70 12-Jan-2016 Augustin Cavalier <waddlesplash@gmail.com>

BShelf: Fix crash in the case that view is NULL.

Also correct some formatting.
Fixes #12584.

03b1819c 11-Jan-2016 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Get rid of the "Restart Deskbar" menu item.

Now that launch_daemon automatically restarts Tracker and Deskbar
when they crash, this is not needed anymore.

90fd6af0 12-Jan-2016 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Added ability to enable/disable a job.

* Instead of just starting/stopping it.
* Also available via the launch_roster command.

79a091e7 07-Jan-2016 looncraz <looncraz@looncraz.net>

Correct Tracker QueryPoseView Column Resize Appearance

PoseView's ColumnRedraw fills exposed areas in manually in an offscreen view
using the PoseView's LowColor. As QueryPoseView uses a custom view color it
is necessary for the low color to match, otherwise resizing a column will
draw the untinted document background color.

Fixes #12569.

Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>

d2d239f4 09-Jan-2016 looncraz <looncraz@looncraz.net>

Improve BButton Color Adaptability

View color now shows through, so we keep the view color in sync with the
parent to act as the button background color. The low color is used to
determine the button color. The high color is used to determine the
button label color.

The default low and high colors are the control background and text colors,
respectfully. To maintain the identical appearance as before, the default
control background color is tinted to match the default panel background
color. As the color has a gradient applied anyway, no one will notice a
difference while playing with custom control colors.

Fixes #12568.

Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>

f9f16ddb 09-Jan-2016 looncraz <looncraz@looncraz.net>

BAbstractSpinner Colors

Adopted parent colors for the text view - should not have done so.
Disabled colors were incorrect, so I also corrected those in this patch.

Fixes #12574.

Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>

ed749c62 09-Jan-2016 Jessica Hamilton <jessica.l.hamilton@gmail.com>

BView::AdoptViewColors: handle not yet attached to a Window.

As per API documentation, a BView caches the configured view
colours when not yet attached to the app_server via its
window. So check if we're attached to a window, and if we are,
then and only then do we attempt to lock/unlock our looper.

This fixes uses of AdoptViewColors and AdoptParentColors when
the view isn't yet attached to a window.

054c8166 09-Jan-2016 looncraz <looncraz@looncraz.net>

MediaPlayer PositionToolTip Color

Previously the layout would crush the default colors of BStringView preventing
BStringView from calling AdoptParentColors() on its own, so we must call it

In addition, the default tooltip view should fully adopt tooltip colors so
that any colors will default to the desired foreground color (which is the
same as the tooltip text color).

Fixes #12573.

Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>

c9bd4d84 06-Jan-2016 looncraz <looncraz@looncraz.net>

Interface Kit: Correct button colors.

What appeared to be multiple issues was just one issue: BButton was drawing the
control background color for its border, whereas the previous system drew the
control low color, which was the parent's view color.

Neither is correct, no border should be drawn at all.

This made it appear that the default button was larger than it was and also
made it appear that some apps had a "white" border around the buttons.

In addition, BButton can now use the default BControl color behavior and
BButton exclusively adopt either parental or system colors without worrying
about the case in which another view has set the button's view color manually.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

ec02769a 06-Jan-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

media_server: Replace ping/pong with notifications

1d114757 06-Jan-2016 Augustin Cavalier <waddlesplash@gmail.com>

BAboutWindow: Put the AboutView and StripeView into BPrivate.

To avoid name clashes. Possibly fixes the HaikuDepot crashes.

678f8a7b 05-Jan-2016 looncraz <looncraz@looncraz.net>

Tracker: Fix column title colors following Set*UIColor merge.

Repair regression where low color for text drawing was not set properly.
Do not use tinted color for default color state.

Prior to this, the hinting font would not respond to being pressed and the
column title background was the wrong color initially, but correct after
resizing (but then wrong again after a redraw on exposure).

In addition, the initial tint values used for the view color were unused,
so I removed them.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

81805393 04-Jan-2016 Axel Dörfler <axeld@pinc-software.de>

IMAP: setting flags, and body fetching works now.

* The direct methods in BMailProtocol now forward the request to the
looper; it's no longer the mail_daemon's responsibility to know
anything about that protocol.
* It's in desperate need of refactoring, but it doesn't hurt to add
it to the repository as is.

35929329 04-Jan-2016 Augustin Cavalier <waddlesplash@gmail.com>

BApplication: Remove added PrintToStream().

Another missed debugging snippet from the merge.

2567fac2 09-Dec-2015 looncraz <looncraz@looncraz.net>

app_server: Fix for LinkReciever.

LinkReceiver would spin endlessly when given a timeout value which prevented
DelayedMessageSender from being operational.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patch 0002 from looncraz, unmodified.

f696e88a 09-Dec-2015 looncraz <looncraz@looncraz.net>

Convert various more things to using Set*UIColor.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patches 0038, 0040, 0042-0044 from looncraz, unmodified.

f56d45ce 09-Dec-2015 looncraz <looncraz@looncraz.net>

BToolBar: Convert to using Set*UIColor.

This was a bigger change than many others as BButton now defaults to using
control background colors, and we can not do that here without the buttons
not appearing as we desire (blending in with the toolbar).

Using the control background color for the toolbar would be unacceptable.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patch 0041 from looncraz, unmodified.

c5b4dc40 09-Dec-2015 looncraz <looncraz@looncraz.net>

Tracker: Use Set*UIColor, improved font awareness.

InfoWindow now uses the font size to determine the window size and
placement of elements. Also uses system colors, including link
colors. Permissions view not font sensitive yet.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patch 0039 from looncraz, unmodified.

f0650dc9 09-Dec-2015 looncraz <looncraz@looncraz.net>

preferences: Convert to using Set*UIColor.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patches 0023-0037 from looncraz, unmodified.

3199cff3 04-Jan-2016 Augustin Cavalier <waddlesplash@gmail.com>

kits/interface: Convert the new BCardView over as well.

a4f254fa 04-Jan-2016 Augustin Cavalier <waddlesplash@gmail.com>

Remove printf() definition added in previous commit.

7a96554c 09-Dec-2015 looncraz <looncraz@looncraz.net>

kits/interface: Convert to using Set*UIColor.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patches 0003-0017 from looncraz, unmodified.

7f9368ca 09-Dec-2015 looncraz <looncraz@looncraz.net>

Set*UIColor, etc.

The inseparable changes necessary to support live color updating across the
system in a sane, safe, and performant manner.

BView gains:

SetViewUIColor(color_which, float tint)
ViewUIColor(float* tint)

BWindow gains a simple helper method:

BMessage gains:

HasColor() * allegedly this API is deprecated, but I implemented it anyway

Previous private ColorTools methods are made public and moved into GraphicsDefs:

mix_color, blend_color, disable_color

These are fully compatible with BeOS dan0 R5.1 methods and are just code cleanup
of BeOS example code under the OpenTracker license.

In addition, four new colors are created:

These changes are documented in their proper user documentation files.

In addition, due to a history rewrite, B_FOLLOW_LEFT_TOP has been defined and
used in lieu of B_FOLLOW_TOP | B_FOLLOW_LEFT and is included in this commit.

On the app_server side, the following has changed:

Add DelayedMessage - a system by which messages can be sent at a scheduled time,
and can also be merged according to set rules. A single thread is used to service the
message queue and multiple recipients can be set for each message.
Desktop gains the ability to add message ports to a DelayedMessage so that
said messages can target either all applications or all windows, as needed.

Desktop maintains a BMessage which is used to queue up all pending color changes
and the delayed messaging system is used to enact these changes after a short
period of time has passed. This prevents abuse and allows the system to merge
repeated set_ui_color events into one event for client applications, improving
performance drastically.

In addition, B_COLORS_UPDATED is sent to the BApplication, which forwards the message
to each BWindow. This is done to improve performance over having the app_server
independently informing each window.

Decorator changes are live now, which required some reworking.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

3c857341 31-Dec-2015 Augustin Cavalier <waddlesplash@gmail.com>

BTextView: Don't crash if the file supplied is zero-length.

Fixes #12551.

5f2db70f 26-Dec-2015 Markus Himmel <markus@himmel-villmar.de>

Interface Kit: Add BCardView

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

a89ac5a6 16-Dec-2015 Markus Himmel <markus@himmel-villmar.de>

Tracker: Add dragged poses to the drag message in the correct order

The function EachPoseAndModel iterates through poses in reverse order.
This fixes #12333.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>

485f5339 15-Dec-2015 Augustin Cavalier <waddlesplash@gmail.com>

RWLocker: Move to kits/shared.

As requested by looncraz. A lot of stuff in IOM/MediaPlayer's
'support' directories probably should be moved to 'shared' anyway.

ec7d3b40 06-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Move old launch_media_server to deprecated file

1acc73c4 06-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Deprecate media_realtime_init_* functions

aad4b937 05-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Add Deprecated.cpp file

226be011 05-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: General maintainance

* Move !missing_symbols.cpp in the legacy directory.
* Move useless methods in a Deprecated.cpp file.
* SetRealtimeFlags / GetRealtimeFlags are useless, they
don't make sense nowadays.
* The symbols are anyway preserved.

2b480e44 05-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

AddOnManager: Fix logic inversion

8cd14ac0 03-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEncoder: Style fixes

2d508790 03-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEncoder: Proper handling of i/o formats

3bc039b9 03-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Add encoding support facilities

537ea80a 02-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEncoder: Style fixes

9bc60a8b 02-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEncoder: Init/Release code cleanup.

106539c2 04-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Implement BMediaEncoder::write_chunk

2b514992 02-Dec-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Initial implementation of BMediaEncoder

* People interested, please review!
* This is based on the patch from Fredrik Moden which was based on
the Oleg Krysenkov one.
* The original patch has been reworked by myself.
* Adapted the code to work with the new PluginManager API which
differently than before doesn't need to contact the media_server.

6423f87f 19-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Reference count polishment

* BMediaNode is registering it's presence to the roster.
* Only addons needs their configuration to be saved.

d98b8c7c 19-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BufferCache: More strict validity checks

* This add a debugger call if the BBuffer id is
mismatched at object creation.

67060664 28-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Allow BMediaRoster to log local nodes

* BMediaRoster is now capable to know which nodes are
instantiated in this team. This is also a first step to make
them survive after media_server crashes.
* A control at BMediaRoster::Quit can notify if all nodes
were correctly released. Ideally at this point the local nodes
list should be empty.

05962bb1 28-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Add a way to register loopers for quit

* BApplication can now take the job to quit a BLooper at
the application quit. It's rejecting requests from windows too.
* BMediaRoster is using now this service in conjunction with the
* The BeBook specify that we should have a valid BApplication
before to instantiate the BMediaRoster. While in theory we should
add a debugger call when this situation happens, in pratice this
might lead to more problems. For example libraries might use the
media_kit and create a BApplication object, but they aren't
applications, this is a design problem. So I decided to replace it
with a TRACE call for the moment.

62eec600 21-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

SMTP works again.

* The message to send the mails never made it to the add-on looper.
* Mail protocol threads now have names.
* Added a "public" BOutboundMailProtocol::SendMessages() call that sends
itself a message (even the correct one this time).

04f969a5 21-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

BWindow::MoveOnScreen(): Need to use inner frame for resize.

* This caused the window to grow each time.
* This was especially noticeable at applications that store their
size on quit, and restore it on start.
* This fixes bug #12456.

af585d03 20-Nov-2015 Jérôme Duval <jerome.duval@gmail.com>

pkgman search: Add --requirements option

670cfb15 16-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

BWindow: lock the looper in some new methods.

* This makes it more convenient to call them from someplace else, and
follows the design used in the rest of the implementation.

1f70a8df 13-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

SecureSocket: enable auto retry on connexion re-negociation

This is required to talk with the proxy in Thalys trains.
Now I'm online and I can push this!

2ecff85c 13-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

HttpRequest: don't send an empty URL for GET request

* The new proxy in Thalys trains doesn't like that.

be741f6e 13-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

Minor cleanup of translator roster commit, updated copyright.

a1eccae9 08-Nov-2015 Markus Himmel <markus@himmel-villmar.de>

Make sure images containing BTranslators are not unloaded early

When a translator is uninstalled, BTranslatorPrivate::_RemoveTranslators is
called. This method used to unload the image containing the translator after
calling Release() on it resulting in several problems:

- If the translator was still busy, e.g. translating something while being
installed, it crashed since the image was unloaded even though its refcount
was larger than 0.
- Applications using code from one of the translators (e.g. its config view)
would crash when the translator is uninstalled (this is bug #12005).

This problem is now fixed. The roster keeps track of all translators whose
image it manages (even if the translator was already removed from the roster).
It also keeps a refcount to all images. When a translator's refcount drops to
zero and it belonged to a roster at some point, it does not delete itself, but
notifies the roster that it is ready to destruct, which then removes it from
the roster if the translator is still in it, destroys the translator, decrements
the refcount of the image and if the new refcount is zero, unloads the image.
All of this is done in a message handler, since if the translator called
TranslatorDeleted like before, the unloaded image would be referenced when
the stack is walked up.

Finally, the DataTranslations preflet is required to Acquire() the translator
whose config view it is showing, because otherwise its refcount could be reduced
to 0 and the image unloaded. BTranslatorRoster now enables users to acquire a
translator by ID. By the time the translator has to be released, it might not
be part of the roster anymore though. Since BTranslatorRoster tries not to give
out raw pointers to the translators it manages, users who acquire a translator
through a roster now are given a BTranslatorReleaseDelegate, which allows for
releasing the BTranslator exactly once and then self-destructs.

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>

0b6c1895 12-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

BNetworkCookieJar: rework locking

The cookie jar used to be locked whenever an iterator was instanciated.
This didn't work well when using several iterators in the same thread,
because the BLocker then allows all of them to access the list

Rework the locking code to use a more fine grained approach, where the
cookie jar is only locked temporarily by methods which require it. These
methods are the ones which get and put new domain-lists in the jar, as
well as acquiring the locks on the domain-lists.

Each domain-list in the jar is locked using a read/write lock as before.
This means there can be many requests getting cookies for the same
domain in paralel, but only one at a time is allowed to set new cookies.

The iterators keep domain lists they need to access read-locked, as long
as they iterate the cookies for that domain.

A limitation of this approach is that deleting a domain-list when it
becomes empty is difficult. We can live with this, however, the
iteration still works (it just skips empty lists), and the empty lists
will not be stored or restored when archiving the cookie jar.

9e73b627 11-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Fixed preregister consequences.

* Since the last change, the user launch_daemon would talk to the
registrar again.
* However, this also caused BRoster::Launch() to preregister the app,
which messed up our preallocated port.
* BRoster::Private::Launch() now allows to get the port that the
registrar created in such a case, and the launch_daemon will now just
use that one as default port.
* This lets us talk to the Deskbar again, and should fix #12455, as
well as #12454 (again).

f1c1a9df 10-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

SecureSocket: stubs for no-openssl version

408a2da5 10-Nov-2015 John Scipione <jscipione@gmail.com>

Tracker: Set low color before drawing column name

Fixes #12084

c6149613 10-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

Implement CONNECT pass-through for HTTPS proxy

* When using a proxy, HTTPS connexion must still go directly to the
target website. The proxy can then act as a TCP stream relay and just
transmit the raw SSL stream between the client and website.
* For this, we ask the proxy sending an HTTP request with the CONNECT
method. If the proxy supports this, we can then send anything as the
payload and it will be forwarded.
* Untested, as the network here in Dusseldorf doesn't let me use a

ticket : #10973

25dbf74b 10-Nov-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

BView: add methods for affine translation/scaling/rotation

* BView::TranslateBy(), BView::ScaleBy() and BView::RotateBy()
allow to conveniently modify the current affine transformation.
This makes it unnecessary to first read the current transform,
modify it, and then set it again.
Uses the new Pre...() methods of BAffineTransform.

* Also, remove setting the transform "through" to the BView even
while recording a BPicture, as this now results in transforms
being applied more than once.

4bd6f322 09-Nov-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

app_server/Interface Kit: add new clipping API

* Add new clipping API for rectangles (ClipToRect, ClipToInverseRect)
and shapes (ClipToShape, ClipToInverseShape)

* Works with affine transforms and automatically switches from fast
region-based clipping to alpha-mask based clipping as necessary.

* Always self-intersecting, i.e. no state push required to further
narrow down the clipping region. All of the 4 new methods can be
mixed in any order.

ab120936 09-Nov-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

BShape: move bounding box method to shape_data

* Makes it easier to get the bounding box from inside app_server

08135223 09-Nov-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

Affine transforms: add method to test for dilation

* Add IsDilation() to BAffineTransform and Transformable which check
whether the transform is a dilation, i.e. consists of only
translation and/or scaling

6109a208 10-Nov-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

Merge branch 'app_server'


In addition, the following files were also adapted to master branch
BPicture changes during the merge:

d3628dcd 10-Nov-2015 John Scipione <jscipione@gmail.com>

IK: Move CheckNodeIconHintPrivate to Tracker

* Move BPrivate::BNodeInfo::CheckNodeIconHintPrivate() to Tracker's
Model class.
* Rename HasVectorIconHint(BNode*) to CheckNodeIconHint(BNode*).
and make it check not only for vector icons but also if you have
BOTH large and mini icons.
* Replace instances of CheckNodeIconHintPrivate() with the newly
created CheckNodeIconHint().

d3b6b9e5 10-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

BSecureSocket: use "trusted first" validation algorithm.

* This makes it work with the new ca_root_certificates package.

Fixes #12004.

ab306fb8 09-Nov-2015 Michael Lotz <mmlr@mlotz.ch>

BPathMonitor: Fix locking order reversal introduced in 8599f4b.

The sLocker was used as an outer lock with the sLooper locked within.
The sLocker therefore can't be used within MessageReceived() as that
could lead to deadlocks due to reversal of the locking order.

Instead of two locks, just use locking the looper for all serialization.
While this has a higher overhead to using a BLocker (due to the looper
list locking and lookups) this shouldn't be too problematic.

55af491f 09-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

BUrlContext: fix logic reversal in certificate comparison

The Predicate for BObjectList::FindIf must actually be a difference
operator, and return 0 if there is a match.

4849ab6c 09-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

BHttpRequest: add SSL certificate exception management.

When an HTTPS request uses an SSL certificate that OpenSSL considers
untrusted, and the user decides to continue anyway, add the certificate
to an exception list. Match certificates against this list and don't ask
the user again if they are already there.

Fixes #12004. Thanks to markh for the initial patch and peeking into the
WebKit code!

f26dbfe7 08-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

BCertificate: build fix.

6c32f50a 08-Nov-2015 Adrien Destugues <pulkomandy@pulkomandy.tk>

BCertificate: fixup the API

* Add an operator== and a copy constructor
* Make the getters const so they are easier to use

5860caae 07-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Added basic ability to stop/start jobs via API.

* Stopping a job is very simplistic right now, and will have to be
extended considerably, probably with its own job.

d8c02225 07-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

BMailAccountSettings: use BPathFinder.

* This allows to put add-ons in non-packaged folders, too.
* Also, Set{In|Out}boundAddOn() only ever looked in the system dir.

d0ac6099 07-Nov-2015 Humdinger <humdingerb@gmail.com>


Use B_USE_WINDOW_SPACING as inset from contents to window border.
Some whitespace cleanup.

c869b2bb 07-Nov-2015 Michael Lotz <mmlr@mlotz.ch>

BPathMonitor: Remove unused headers, some whitespace cleanup.

8599f4b3 07-Nov-2015 Michael Lotz <mmlr@mlotz.ch>

BPathMonitor: Lock on incoming node monitor messages.

The lock was only acquired when paths to watch were added or removed,
protecting the data structures against concurrent modification due
to addition/removal of entries by the API user.

Locking is also required for node monitor messages since these can
trigger the data structures to be modified (due to recursive watching
and new directories becoming available or due to resyncing of modified
ancestor chains).

Previously it was possible to corrupt the data structures when node
monitor messages were received while still starting to watch a directory
structure. This was especially likely in the case of watching devfs
directories, as accessing these can trigger device scanning which in
turn could possibly add new device entries. Either the path monitor
looper or the API user would then trip over the corrupted data

Probably fixes #11280. Although I was only able to reproduce crashes
on the API side, corruption of the hash tables and corresponding endless
loops are quite plausible.

Possibly also fixes #12412 if the input_server was in the process of
starting to watch entries. It's hard to tell due to the lack of a back
trace but would fit the crashes I was able to reproduce with a synthetic
test case.

75c31ae2 26-Oct-2015 Simon South <ssouth@simonsouth.com>

system: Build using public elf.h header

Reduce duplication of code by

* Removing from elf_common.h definitions available in os/kernel/elf.h
* Deleting elf32.h and elf64.h
* Renaming elf_common.h to elf_private.h
* Updating source to build using public and private ELF header files

Signed-off-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>

3282b758 04-Nov-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Add API to get information on jobs.

* Ie. a listing of all targets/jobs, as well as specific (basic) info
on each.
* Also added a bit of optional debug output.
* Moved translating the path to launch time -- we should take the job's
environment into account here at some point.

44f58305 03-Nov-2015 Michael Lotz <mmlr@mlotz.ch>

BLocker: Make misuse warning more useful.

Also print the locker sem (for manual name lookup) and the involved
threads. It was also missing the line terminator which messed up the
following output.

Also fix a typo in a comment.

1cffe0dc 03-Nov-2015 Michael Lotz <mmlr@mlotz.ch>

BLocker: Fix recursive count for "unusual" use cases.

Since a BLocker can be unlocked from other threads than the one holding
the lock, it can also be further unlocked even when already unlocked.
This caused the recursive count to become negative. The first lock then
needs to reinitialize the count to 1 for the lock balance to work again.

Just incrementing the negative recursive count lead to it never
counting back down from one to zero in the unlock case, which made the
BLocker impossible to unlock.

This makes the Haiku BLocker behave exactly like the BeOS one, including
the negative recursive count and reinitialization, as evidenced by its
debugging features showing the internal counts.

Alternatively to reinitializing the recursive count it could be
prevented from going below zero in the first place, but I don't see why
we should deviate from BeOS there while allowing its awkward unlock

This makes some more exotic use cases work like the BGLView <-> SDL
combination that previously would always just hang. While these abuses
should be reviewed/corrected, just hanging the BLocker doesn't seem

f672379c 03-Nov-2015 John Scipione <jscipione@gmail.com>

Tracker: Redraw info window when file path changes

The hard work was already being done, we just had to redraw to get the new path.

Fixes #12437

949cf6ac 19-Apr-2015 Murai Takashi <tmurai01@gmail.com>

Fix GCC 5 build.

* Add -fgnu89-inline flag for libroot/posix/glibc
* Change __GNUC__ == 4 to __GNUC__ >= 4

Signed-off-by: Adrien Destugues <pulkomandy@pulkomandy.tk>

Fixes #11990, most of the changes had already been done.

2e17b650 21-Oct-2015 Axel Dörfler <axeld@pinc-software.de>

BLaunchRoster::ResetStickyEvent() added.

* Used to unflag sticky events that already have been triggered once.

4cb40196 20-Oct-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove needless NULL check before delete.

Thanks John!

c746acc2 21-Oct-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Delete own BTextWidgets in BPose destructor.

Fixes a memory leak, and #12393.

c80084b0 18-Oct-2015 Axel Dörfler <axeld@pinc-software.de>

JobQueue: fixed incorrect requeuing.

* A dependent job was requeued even if it wasn't part of the queue
before. The code relied on dependent jobs being already enqueued;
but that cannot be guaranteed.
* If a job failed, its dependent jobs are now also set to failed, so
that they won't be requeued at a later point.
* This caused some of the "Launching xxx failed: Operation not allowed"
messages in the boot process. Those actually weren't harmless, and
could mess up the natural job order.

7cd19b7e 17-Oct-2015 Axel Dörfler <axeld@pinc-software.de>

launch_daemon: Implemented sticky events, and registration.

* Sticky events are events that keep their signal raised, ie. even if
a job is initialized afterwards, it will still be triggered.
* Consolidated naming for external events.
* Events are now registered once they are actually being used. This
allows them to allocate the resources they need to do their thing.

5ab2b145 17-Oct-2015 Axel Dörfler <axeld@pinc-software.de>

BJob: Added SetState() method.

e01bbf95 14-Oct-2015 John Scipione <jscipione@gmail.com>

Tracker: Fix issue with vertical scroll bar border

This issue only manifested itself when the navigation toolbar was shown.

The scrollbar appeared to have no border while the rest did. This issue
manifested when the scrollbar insets were adjusted in hrev49654. The
scroll bar insets were really hiding the bug underlying bug though.

I'll try to explain what was happening and how I fixed it. The PoseView
container, called BorderedView, was showing its top border when the
navigation bar was hidden, and hiding its top border when the navigation
bar was shown. This (almost) worked because the menu bar provided a
bottom border while the navigation toolbar didn't. However hiding
BorderedView's top border also hid the scroll bar border.

My solution was to draw a bottom border on the navigation toolbar and
then remove the top border from BorderedView unconditionally. So either
the menu bar or the navigation toolbar provides a bottom border and the
BorderedView has no top border.

Fixes #12392

8a3ae7a4 14-Oct-2015 John Scipione <jscipione@gmail.com>

Restore the BMenuField label background

Highlighting was added in hrev45983, stopped working in hrev49614, specifically

Add comment to explain what is happening and hopefully deter this from being
removed again in the future.

Fixes #12359

5e726ed4 21-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper: Finally fix some lateness problems

* For the moment i still remain with the classic lateness calculus.
My code wasn't perfect, but this commit fix the remaining
problems from my perspective.
* The first reason is that if we have a patologic latency
such as adding for experimental reasons a snooze() before a SendBuffer or
in the BufferReceived callback, we still can't do anything about it.
If we use enqueue_time and don't send a LateProducer notice, this latency
will never be detected by the API client. We can't do anything about it,
and it's even better that systems with such problems are recognized as
soon as possible IMO.
* The second reason is that the lateness calculus described in the BeBook
is done this way because the media_kit want us to adjust our timing in both
early and late situations.
* Realtime expect that things are always delivered under a certain time
limit, if the software at the bottom doesn't meet with this requirement,
it's just not realtime and things can't work in realtime.
* enqueue_time has nothing to do with the performance_time. But we can
still add this to the media_timed_event struct so that applications can
make use of it.
* Lateness was probably not used a lot in BeOS programs as it looks like
a relatively new feature but i have the concern to complete our API
implementation to be close to what i see was reasonably the designers aim.

8bffda16 21-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

media_kit: Allow to set a NULL buffer group. Fixes #12305.

2d34b65e 15-Sep-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Tracker: fix insets of vertical scrollbar.

31b0eb9f 14-Sep-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

BWindow::MoveOnScreen(), fix parentheses warning.

93244a65 14-Sep-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

BScrollView: _ComputeFrame(BRect,...) used incorrect insets.

Previously, the BRect would be expanded by the call to
InsetBy(), but the replacement _InsetBorders() forgot to
take this into account.

Fixes #12380.

b11399ff 14-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

BAlert: fixed missing initialization of fAlertSem.

* Fixes bug #12372.

8e96ec34 14-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

BWindow::MoveOnScreen() now has a flags field.

* You can now specify whether or not you want to resize the window,
and move it on screen, or center it.
* Removed PulseWindow::MoveOnScreen() method.

ac9ec47d 09-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

BMenu: made left side padding font size relative.

* Also changed BMenuItem to make better use of that size.

d8b517b5 09-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

Tracker: made title view height depend on font size.

* It now uses a font that's 3/4 the size of the plain font; ie. there
shouldn't be any change with the default font size.
* Also cleaned up some weird layout code on the way.

46dd7d50 09-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

Tracker: Fixed vertical list icon position.

* Instead of drawing it at the bottom of the line, draw it in the
middle of it.

bf548029 09-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

Tracker: Made list element spacing relative to font size.

* Instead of always adding two pixels, we now multiply the size with 1.1.

f0b3691d 09-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

Tracker: Removed extra border next to the draggable icon.

* Also removed extraneous call to BMenuBar::SetBorder(); B_BORDER_FRAME
is the default, anyway.

14cc5b4c 09-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

BMenuBar::SetBorders() added.

* This allows you to only draw some of the borders.

fd79684a 09-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

BScrollView::SetBorders() added to disable borders.

* You can specify which borders will be drawn using the
BControlLook::B_TOP_BORDER, ... constants.
* Adapted Mail to no longer need the SetInsets() hack.

f7c2983e 08-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

HaikuDepot: change window frame setting.

* Moved entirely into MainWindow.
* Moved duplicated code into separate methods.
* Resize the main window on larger screens by default, as we can make
use of the extra space.
* Use BWindow::MoveOnScreen() instead of make_sure_frame_is_on_screen()
as the former has more info. And is even smarter now as it can
optionally resize windows to fit on screen.
* Center window on screen by default (ie. when there are no settings).

ce27f961 05-Sep-2015 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implement ClipToPicture inside a BPicture. Not working yet.
BView::ClipToPicture doesn't work anymore, when nested inside a BPicture,
This happened when its implementation was moved server-side.

83dc74af 05-Sep-2015 Michael Lotz <mmlr@mlotz.ch>

BPicture: Fix archive constructor on 64 bit.

The int32 was cast to a ssize_t which has a different size on 64 bit,
therefore clobbering the stack.

Also remove the use of basic type references in arguments, which
probably was the reason for doing the above in the first place.

d64c7086 05-Sep-2015 Michael Lotz <mmlr@mlotz.ch>

Various whitespace cleanup only.

8b9ec556 05-Sep-2015 Michael Lotz <mmlr@mlotz.ch>

BPicture: Fix archive constructor.

The cleanup commit df48d3f9a839a18e16b3d7036935bef621b4fbb6 broke
constructing a BPicture from an archive due to an incomplete rename.
The passed in BMessage was used as the data buffer instead of the
extracted data field.

Fixes the application side crash of #12340. Seeing how long this was
broken without anyone noticing, the feature doesn't seem to be very

eec73693 05-Sep-2015 Michael Lotz <mmlr@mlotz.ch>

PicturePlayer: Rework to be more safe against corrupted data.

This introduces a more sane API (currently private) that allows for
safer and possibly more efficient implementations:

* It uses a struct of named and typed function pointers instead of just
a void pointer array. This adds type safety to the callbacks so the
compiler can figure out if things match up before subtle bugs get
* It provides bounds for all strings/buffers passed to the callbacks.
* It uses const references instead of implicitly copying arguments.
* It folds stroke_x/fill_x pairs into draw_x functions with a fill
argument to reduce the amount of functions needed.
* It uses unsigned values where negative values make no sense.

The old API has been implemented on top of the new one using adapter
functions. It makes copies of all data passed to the callbacks which
effectively keeps the picture data from being modified. This matches
with the R5 behaviour.

This also reimplements the buffer parsing to be safe against corrupted
data by validating that the types actually fit in the provided sizes
and buffers (using a templated reader).

Since this class is used from the app_server with user provided data,
making it more safe is important even though it comes with a slight
overhead (replicating R5 behaviour, i.e. crashing the app_server when
corrupted data is fed, doesn't seem very appropriate here).

5a87d490 04-Sep-2015 Adrien Destugues <pulkomandy@gmail.com>

Fix implementation of _res.

While not thread-safe, it should still be possible to use it in
non-threaded programs, or with locking on the application side.

The "thread-safe" implementation we got from NetBSD called abort(),
which is not a good solution. Restore the non-thread-safe
implementation, which should still work.

Fixes issues in openssh and mtr, and possibly other ported apps.

6b871266 02-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

BToolBar: made FindButton() public.

15c10562 02-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

BMailSettings: removed debug message dump.

7bdee8be 31-Aug-2015 Axel Dörfler <axeld@pinc-software.de>

BEmailMessage: added missing const, Date() returns time_t.

* Added missing const to some getter methods.
* Date() now tries to parse the date of the mail, and return it as
a time_t; you can still retrieve the actual string via
HeaderField("Date") if you have to.
* Mail now shows the time in the local time zone, and with the
current locale.

66078c79 31-Aug-2015 Axel Dörfler <axeld@pinc-software.de>

BMailComponent: made a few methods const.

19d8cb70 31-Aug-2015 Axel Dörfler <axeld@pinc-software.de>

BDate: added time_t constructor.

* This class is pretty much useless as it is.

d8919236 30-Aug-2015 Axel Dörfler <axeld@pinc-software.de>

BMenuField: use layout rect for the label.

* Instead of just laying it out as without the layout API.

e047b40a 25-Aug-2015 Axel Dörfler <axeld@pinc-software.de>

Interface Kit: use different spacing constants.

* While this breaks binary compatibility with earlier Haiku releases,
use values that are less likely to clash with actual use cases.
* Specifically, using a negative spacing is one way to get rid of the
border of BScrollViews, to put them into a window neatly.
* Also, BControlLook now uses a switch to resolve them.

ebf4cbe6 03-Sep-2015 Axel Dörfler <axeld@pinc-software.de>

Incredibly smart BWindow::MoveOnScreen() method added.

* Makes sure that the window is as complete as possible on screen.

71cc4d49 01-Sep-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

Merge branch 'master' into app_server


38e3fbe3 01-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Remove possibly confusing debug prints

* Thanks to Axel and Rene for reviewing!

7d337b23 01-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Reintroduce the undertaker class

* This has been necessary due to the undefined call order of
of static objects. Fixes #12315.
* The bug has been caused by the linker which free unused resources,
making the BMediaRoster to run in a zombie state. In this state
anything such as a message could make the looper to crash.
* The class is reintroduced with some differences though, we are
going to protect it from another thread calling Roster() while the
BMediaRoster is quitting and implement BMediaRosterEx::Quit.
* Unregister registrar notifications before we quit our thread. Avoid
to uninitialize anything from QuitRequested as it may cause problems.

8f3d6d19 29-Aug-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Revert "BPrintJob: fixed crash."

This reverts commit 1805bbf29bceca563985ff377f2b153c46057c2b.

d7a9cbde 29-Aug-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

BAlert: don't center ourselves if we've already been positioned.

21c3286b 29-Aug-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

BAlert: make SetShortcut() work again.

In hrev49481, the call to AddCommonFilter was accidentally
removed, preventing SetShortcut() from working. The filter
has also been updated to enumerate all buttons, rather than
a maximum of the first three.

a84dc754 29-Aug-2015 Jessica Hamilton <jessica.l.hamilton@gmail.com>

BAlert: move setting default button into AddButton().

This properly fixes the crash in #12271, introduced by

48b2cb37 29-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Pass unhandled messages to the base class

* While it shouldn't be a big problem, the bebook states
that it's very important to do so.

1805bbf2 29-Aug-2015 Stefano Ceccherini <stefano.ceccherini@gmail.com>

BPrintJob: fixed crash.
Since hrev49481, BAlert sets its default button in Go(), and not in the
constructor. So DefaultButton() will return NULL if Go() hasn't been called
Moreover, BAlert now centers itself on screen in Go() and not in the costructor,
so move it away from screen after the Go() call.
Fixes #12271, although there should be a nicer way to implement this.

e2eb9b7b 29-Aug-2015 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed empty line

c0c883cf 29-Aug-2015 Michael Lotz <mmlr@mlotz.ch>

BMessage: Fix precedence of KMessage vs. size check.

A KMessage request always needs to be honoured, regardless of the data

KMessage does not currently protect against messages that are too large,
but this needs to be solved in KMessage when it becomes a problem.

5b9f6b54 28-Aug-2015 Michael Lotz <mmlr@mlotz.ch>

BRoster: Add launchSuspended option to _LaunchApp().

It allows to launch the app, but keep its main thread suspended instead
of automatically resuming it.

Also add appThread argument which allows to retrieve the main thread of
the launched team.

d15321ff 28-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster::Roster Use BAutolock

be7d9d3f 27-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper: With B_WOULD_BLOCK we may still handle an event

90cdf5e4 27-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaNode::WaitForMessage: protect it over negative timeouts

d6039d2b 27-Aug-2015 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Midi: Remove some duplicated code
Introduced new private read/write_midi_settings() and used them
in MidiSettingsView and SoftSynth.

da181514 26-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Revert "MediaNode: Wait for 0 time if the absolute timeout is in the past"

This reverts commit ae9cbf9c4e167470b47964059e90c2b0881367eb.

* Thanks to Pawel Dziepak for reporting!

ee5575d9 26-Aug-2015 Michael Lotz <mmlr@mlotz.ch>

BRoster: Apply no-registrar mode in a few more cases.

Avoids some more attempts at communicating with the registrar if the
no-registrar flag has been set.

ae9cbf9c 25-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaNode: Wait for 0 time if the absolute timeout is in the past

dfe056fd 25-Aug-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaEventLooper: Continue code improvements.

2f41383c 24-Aug-2015 Stefano Ceccherini <stefano.ceccherini@gmail.com>

BBitmap: Archive the data also if "deep" is not set
Fixes #12326

65b4405e 24-Aug-2015 Stefano Ceccherini <stefano.ceccherini@gmail.com>

BSoftSynth: Fixed auto selection of soundfont.
When no midi settings file was available, BSoftSynth should use the well known
TimGM6mb.sf2 soundfont. This wasn't working, since the code looked in the wrong
path (we have to append "synth" to the path returned by find_directory).
In case this SF is not present, now we try harder not to fail, and look for any
soundfont available in the system and user directories.
Fixes ticket #12325 although the selected soundfont is not written to the
user settings file.

e3d73948 15-Aug-2015 Julian Harnath <julian.harnath@rwth-aachen.de>

app_server: fix test-app_server for launch_daemon changes

* Make test-app_server work again in a launch_daemon environment

* test_registrar gets a separate signature and port name again so the
host system can distinguish it from the system registrar

* AppServer is normally a BServer now, however, there can't be two
BApplications in one team. A class TestServerLoopAdapter is added,
which becomes the base class of AppServer instead of BServer when
compiling for libbe_test. It's an adapter class which looks towards
AppServer as it if was a BServer, but internally it is derived from
MessageLooper (like the old AppServer before the transition to

This way, AppServer can stay a BServer in normal builds and it also
avoids having to use too many #ifdefs to distinguish the two

25af167e 20-Jun-2015 John Scipione <jscipione@gmail.com>

Spinner: Tweak the spinner button colors

* Tint the button text 1.777f which yields #303030 for the text color
which produces a nice dark grey but-not-quite-black color. In testing
black text is too dark and B_DARKEN_4_TINT (1.555f) yields #606060
which is too light. #303030 is a compromise between the two.
* The button text gets darkened to black on mouse down and the button
background gets darkened to B_DARKEN_1_TINT on hover as before, but
the frame color is no longer affected --- the button frame tinted by
B_DARKEN_1_TINT always (yielding standard Haiku button frame color).

a0ba79fb 11-Mar-2015 John Scipione <jscipione@gmail.com>

Split BSpinner into BAbstractSpinner and...

2 concrete classes which are currently implemented:
* BSpinner (works on int32s)
* BDecimalSpinner (works on doubles)

In addition BAbstractSpinner now inherits from BControl instead of
BView/BInvoker. This allowed for code simplification at the cost of needing to
cast for the decimal version because SetValue(int32 value) comes from BControl.

Also, add a spinner_button_style enum with 3 options:

which sets the spinner arrows to either use horizontal arrows (left/right)
vertical arrows, (up/down), or +/- symbols (the default).

If the spinner button is using horizontal arrows you can decrement and increment
the spinner value by pushing control+left/right, otherwise you can increment and
decrement by pushing up or down. The reason for needing control is so that you
can move the cursor in the textbox otherwise.

Switch the 3 apps that are currently using BSpinners to use the integer variety
in Deskbar preferences, WebPostive preferences, and Screen preferences.

d1229383 10-Mar-2015 John Scipione <jscipione@gmail.com>

Spinner: Generalize actions into methods

Add an Increment(), Decrement(), and SetValueFromText() method.

These can be overridden by derived classes.

a9385e8e 10-Mar-2015 John Scipione <jscipione@gmail.com>

Spinner: Move ValueChanged up

... along with the other hook methods