As per the POSIX specification.
This gives the calling program a chance to catch the assertion. But
in the case where no signal handler is installed for SIGABRT, we
will call debugger() anyway and present as a crash as before.
Fixes#10295.
The -Werror=uninitialized caught this, but I fixed it the wrong way
rather than looking at the code a little closer.
Should fix the strange bugs that cropped up after the first VFS patch.
**Lots** of syscalls here don't check if strlcpy truncated the user
supplied argument. This commit adds them where appropriate.
Closes#2642
Change-Id: Iff89055aeb3a1870c8baf327b60873ce85815cd7
Reviewed-on: https://review.haiku-os.org/c/890
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
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>
It is owned by the BView which we delete on the next line; and doing this
triggers an assert if there are still child views, which the BView destructor
cleans up before deleting the layout item.
Change-Id: I2f6f913b963e15c9808328aa2e0581cd1755e8ce
Reviewed-on: https://review.haiku-os.org/c/888
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reverts hrev52738, as discussed with waddlesplash on IRC.
Re-opens #11419 "makefile_engine's install function fails on paths with blanks"
Turns out this change results in escaped filenames, e.g. "Open Origin Package"
becomes "Open\ Origin\ Package", see
https://github.com/haikuports/haikuports/pull/3580
* Provide a specific warning should a user select formatting the
intel extended partition. Formatting this partition results in
the loss of any subpartitions, and results in no usable partition.
(as described in bug #9856).
Change-Id: I6fb71f3329596217364f3be56b7ca225a1f26441
Reviewed-on: https://review.haiku-os.org/c/886
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
* Adds licence information for the NetBSD contributions
* ftp - 4 clause BSD (retained in ftp.c)
* tput - Berkeley
(http://cvsweb.netbsd.org/bsdweb.cgi/src/usr.bin/tput/tput.c?rev=1.26)
* Berkeley licence text added to licences
* xfree86.org url added
These were previously marked TODOs
Change-Id: I01bf0bb6055b3b45ca80c6cddabdb093cb043408
Reviewed-on: https://review.haiku-os.org/c/887
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
Implemented against POSIX-1.2013.
The implementation POSIX requirement thats setpriority() shall affect the
priority of all system scope threads only extends to POSIX threads. This
is implemented by modifying the default attributes for newly spawned
pthreads.
It is not possible to modify the default pthread attributes for different
processes with the current implementation, as default pthread attributes
are implemented in user-space. As a result, PRIO_PROCESS for which and 0
for who is the only supported combination for setpriority().
While it is possible to move the default attributes to the kernel, it
is chosen not to so as to keep the pthread implementation user-space only.
POSIX requires that lowering the nice value (increasing priority) can be
done only by processes with appropriate privileges. However, as Haiku
currently doesn't harbor any restrictions in setting the thread priority,
this is not implemented.
It is possible to have small precision errors when converting from Unix-
style thread priority to Be-style. For example, the following program
outputs "17" instead of the expected "18":
#include <stdio.h>
#include <sys/resource.h>
int
main()
{
setpriority(PRIO_PROCESS, 0, 18);
printf("%d\n", getpriority(PRIO_PROCESS, 0));
return 0;
}
The underlying reason is because when you setpriority() both 18 and 19
are converted to the Be-style "2". This problem should not happen with
priority levels lower than or equal to 20, when the Be notation is more
precise than the Unix-style.
Done as a part of GCI 2014. Fixes#2817.
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Co-authored-by: Leorize <leorize+oss@disroot.org>
Change-Id: Ie14f105b00fe8563d16b3562748e1c2e56c873a6
Reviewed-on: https://review.haiku-os.org/c/78
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
...rather than enumerating again. Solves a TODO (all filesystems
save tarfs and packagefs, which require special parameters and
of course will not be on standard "partitions", have implemented
the required function.)
* Don't bother aligning the PCI memory addresses; they will already
be aligned, and even if by some mystery they aren't, map_physical_memory
should be able to handle that. This greatly simplifies the code.
* Use one pointer and then four different offset fields instead of four
different pointers. This is what DragonFlyBSD and FreeBSD do; it's
a negligible loss in performance (or none at all, depending on arch
and compiler) as it requires only one more add, and greatly clarifies
the code as to what's going on.
* Remove (both previously and now) unused fields from the header.
* Compute runtime and doorbell register offsets correctly (there
was a missing bitmask.) This is how it's done on FreeBSD and
DragonFlyBSD.
* Actually write the high bits of the DMA addresses. Checked against
FreeBSD and DragonFlyBSD.
* Tweak error message.
Possibly fixes the "invalid bus space memory access" crash, but
I don't have any hardware that occurs on so I couldn't check.
Tested in VMware, VirtualBox, and on a ThinkPad E550 (Broadwell).
Registrar schedules an event every second to do
fRoster-CheckSanity(). This uses 2.5% cpu on my machine
when idle. Changing it to five seconds lowers it to 0.1%
waddlesplash then pointed me to this bug which changes it
to watch for team deletion and call fRoster->CheckSanity()
As I know little in this area, it's mostly based on what
LaunchDaemon does in MessageRecieved.
* Adds check for completed installation when exiting BootManager
or DriveSetup.
* If installation has completed, quit or restart buttons are maintained,
along with appropriate guidance, rather than the UI reset described in bug
Change-Id: I064ccecb77b1a0e4347e1e36564614383b1409d5
Reviewed-on: https://review.haiku-os.org/c/881
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
We don't watch its children, and most drivers within it are within
subdirectories. Further, all drivers in it are really symlinks to "bin",
which we also watch. So there is really not much purpose in watching
"dev" directly.
Should fix#4638.
When the canvas api was introduced, ServerPicture was changed to work with Canvas,but this was not updated.
Change-Id: I37c68111f4a60408768656260bfc73a27f1f65f4
Reviewed-on: https://review.haiku-os.org/c/501
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
addon/network settings/hostname
allowing the hostname for the system to be set by the user using
the preferences gui
Change-Id: I676c368070ef89a20435f97ee39e3caa25abf8f9
Reviewed-on: https://review.haiku-os.org/c/870
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
If available, getifaddrs() will now return additional entries for
different addresses of an interface. This is similiar to how NetBSD does
it.
This allows software such as libuv to construct detailed information
about network interfaces within the system.
Adrien have some concerns about getaddrinfo() wouldn't correctly exclude
IPv6 addresses after this change so a test was added to cover that.
Change-Id: I8c5d3a02b9294d746ca928a285f40344dfd6e3cb
Reviewed-on: https://review.haiku-os.org/c/874
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Just use BControLook where appropriate. It already provides a nice arrow
drawing function (also used in DeskBar expander and in scrollbar
buttons).
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>
* Patch checks for pathless results, and in cases where acpi/hid is returned uses the hid element.
In case of any non-hid nodes returning no path, a separate "unknown" entry is also added.
* Also disables one "not implemented" message in line with https://review.haiku-os.org/c/haiku/+/696
Change-Id: I7ac92c7f3c5cb03401b9502aa345a86f117a5a20
Reviewed-on: https://review.haiku-os.org/c/879
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Since BeOS had no anti-aliased drawing except for text, it didn't
matter whether drawing diagonal lines (for example) in B_OP_COPY
or B_OP_OVER. Applying the meaning of B_OP_COPY strictly to everything
else would have broken pretty much every existing BeOS, resulting
in broken drawing for anything but straight lines and rectangles.
The solution was to treat B_OP_COPY just like B_OP_OVER *except*
for text rendering, where we could be compatible with the BeOS
behavior. Nevertheless, one can sometimes observe apps using B_OP_COPY
where they /should/ be using B_OP_OVER for rendering text, resulting
in white edges around the glyphs where the actual LowColor() does not
match the current background on which the text is rendered.
There is however a problem when glyphs in a string overlap. Some
fonts have overlapping glyphs by default (handwriting, etc). With
the LCD sub-pixel filtering, this problem is visible even in fonts
where glyphs don't overlap normally, for example 'lt'. The leftmost
pixel of the 't' is smeared due to the filtering and produces an
almost transparent pixel which is rendered (using the low color as
the background) on top of the 'l'. To fix this, one would have to
render the string into an alpha mask buffer first, and then blend it
all at once using B_OP_COPY. This however defeats the point of
B_OP_COPY, which is to be a performance optimization. So instead, I
opted for the solution that is already in place for everything else,
which is to make B_OP_COPY behave like B_OP_OVER. For the case that
this would have produced a difference, i.e. rendering with the solid
high color, one needs to clear the background using the low color,
before rendering text, or it would have looked broken. So in practice,
there cannot be a difference.
Change-Id: I4348902ae754507f1429e0a9575f03d8ecbce333
Reviewed-on: https://review.haiku-os.org/c/877
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
* Additional newline in tooltip text to prevent clipping on low
resolution displays
Change-Id: I8262256d2eb1cc72fb5ffe502c3112285b4f46e5
Reviewed-on: https://review.haiku-os.org/c/878
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
We now remove it manually for one library to break the dependency loop.
Change-Id: I24061705b4656d444bbe7b4a6af836303f44c020
Reviewed-on: https://review.haiku-os.org/c/873
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>