Commit Graph

65411 Commits

Author SHA1 Message Date
Augustin Cavalier
a8e2f08853 libroot: Replace the old localtime fallback backend with musl code.
This allows for the deletion of quite a lot of ugly C89 code.
2023-08-30 22:32:58 -04:00
Jessica Hamilton
16c85099f9 libroot: Replace asctime[_r] with musl's.
This broke anyway in hrev56361.

Change-Id: I1e7e02b27d6fee4845c81cf6f229bca0048a0e61
2023-08-30 19:39:06 -04:00
Augustin Cavalier
b09c82377a libroot/locale: Minor fixes and expose internal POSIX locale.
* We can return early from duplocale() so set the "magic" flag early.
 * Initialize all fields up front.
 * Add an internal method __posix_locale_t() which returns a locale_t
   usable as a global C/POSIX locale type, and add the appropriate
   definition to the musl internal header.
2023-08-30 17:57:19 -04:00
Augustin Cavalier
2705bc6bdf libroot/locale: Fix indentation of locale_t.cpp.
Also adjust some braces. No functional change intended.
2023-08-30 17:55:04 -04:00
Augustin Cavalier
efdfb84038 signal.h: Look for _DEFAULT_SOURCE not __USE_GNU for sighandler_t.
Our features.h does not define __USE_GNU, and so applications trying
to use this GNU-ism would have to define it for themselves, even if
_GNU_SOURCE had already been specified.
2023-08-30 17:31:31 -04:00
Augustin Cavalier
8e8c7a073f Tracker: Reimplement BSlowContextPopup as BPopUpNavMenu.
BSlowContextPopup was mostly a duplicate class of BNavMenu
only on top of BPopUpMenu instead of BMenu. Now, BPopUpNavMenu
just subclasses BNavMenu and adds the few features of BPopUpMenu
neccessary.

Drag-and-drop of files using the pop-up nav menu seems to still work fine.

Change-Id: Ic1f49c5bed60fff7a3076a22f74aebc6eba51d57
2023-08-30 17:04:24 -04:00
Augustin Cavalier
18ee9c8397 Tracker: Add some missing includes.
These were implicitly picked up thanks to SlowContextPopup,
but that is about to change.
2023-08-30 16:51:07 -04:00
David Karoly
3f2464f759 Debugger: implement parsing for v4 line-info
Differences between DWARF v3/v4 for line-info:
- added new field maxOpsPerInstruction
  this new field will typically have the value of 1
  unless VLIW architecture is being used
  (which is not the case for Haiku)
- state machine contains a new field op_index
  it has any relevance only when maxOpsPerInstruction > 1
  i.e. on VLIW architectures
- added new operation DW_LNE_set_discriminator
  this is already implemented in LineNumberProgram.cpp

This implementation just reads maxOpsPerInstruction and
checks that it is set to 1, which is what we expect on
all architectures currently supported by Haiku.

Change-Id: I14755d615a0e2b3a5177928c4d8f9014940a5fcf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6876
Reviewed-by: Rene Gollent <rene@gollent.com>
2023-08-30 13:24:23 +00:00
Leorize
e86afc8f75 libs/bsd: add arc4random(3)
Change-Id: I86e67484f04b062a4496cb63ccb34b990868b693
Reviewed-on: https://review.haiku-os.org/c/haiku/+/32
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-08-29 19:42:27 +00:00
Augustin Cavalier
6bde05aebd libs/bsd: Implement getentropy(2).
With generic_syscall to avoid using a FD.

Change-Id: Id1702118bb673f06a861e4f0ad3401ce3d45cbd0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/31
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-29 19:42:27 +00:00
Augustin Cavalier
d57510c0ff Tracker: Reduce differences between NavMenu and SlowContextPopup.
No functional change intended.

Change-Id: Iaa9b821462ec97b74de538aa2c489762bf413311
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6872
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-08-28 20:57:26 +00:00
Niels Sascha Reedijk
c14bd9b2e7 Unittests: fix DateFormatTest
When building with GCC 13, this test no longer builds correctly and errors out
because the overloaded `operator<<` for `BPrivate::BDate` and `BPrivate::BTime`
can not be found.

The underlying cause is that the libstdc++ depended on some template SFINAE
behavior, and that did not work because the `operator<<` should only be looked
up in the `BPrivate` namespace.

It is unclear whether the code for libstdc++ changed, or whether this never was
supposed to work. GCC bug #51577 seems to imply that GCC before version 12
errornously allowed the lookup of names in the global namespace. It could be
that we always relied on this behavior:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51577

Change-Id: Ia2f2306a2e97d5f19dc8c4df90a8491f22ef0bcd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6874
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-08-27 16:11:15 +00:00
Autocomitter
ba4482cb24 Update translations from Pootle 2023-08-26 08:15:47 +00:00
Augustin Cavalier
20e18366d6 ShowImage: Use layouts for the main view area.
The main window itself is still not using them,
due to incompatibilities with the toolbar animation.

Fixes #18547.
2023-08-25 19:34:34 -04:00
Augustin Cavalier
692e2e45bb Debugger: Move line-info version check up and print a warning.
This way it will be clear why there is no line-info.
2023-08-25 16:57:57 -04:00
Augustin Cavalier
15969ccf84 Debugger: Downgrade a warning to a TRACE.
We don't need to know all the objects which have no
debug information; this just spams the console.
2023-08-25 16:57:57 -04:00
Zardshard
0a5625377a Icon-O-Matic: Fix multiple point handling
Fixes #16760

The problem comes from trying to cast a void* array to an int32 array.
However, sizeof(void*) is not always equal to sizeof(int32).

Change-Id: I12b7f71621f150edb732b5e0a7d84bf7ced5444a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6871
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-08-25 18:55:40 +00:00
Augustin Cavalier
b22fab9510 build_haiku_image: Fix type of MAIL:draft and MAIL:flags indexes.
Fixes #18503.
2023-08-25 14:53:50 -04:00
Zardshard
4b0dffe500 Icon-O-Matic: Make list items copy/pastable
Also:
* make transformers draggable
* clean up archiving code

Partially addresses #18400

Change-Id: Ibc384a1919e1330113a5e2857da16284181a834e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6869
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-08-25 16:13:57 +00:00
Augustin Cavalier
4024e5b6a4 ramfs: Do not advertise ourselves as a persistent filesystem.
The original change to fix ramfs appearance (hrev56642)
in Tracker and elsewhere said the reason for adding the
FS_IS_REMOVABLE flag instead of removing FS_IS_PERSISTENT
was because of problems encountered with writing/deleting
entries on ramfs mounts.

I was unable to reproduce those problems; writing and
deleting entries on RAMFS mounts still works just fine
in Tracker and elsewhere, even after removing the flag.
So it seems safe to remove; subsequent problems can be
addressed as they come up.

Fixes #18173.
2023-08-24 21:02:30 -04:00
Augustin Cavalier
4e145eadc6 BMenu: Lock the looper before calling _AddItem().
Otherwise, we could wind up in a state where the
list of items is being concurrently accessed,
which is invalid.

Hopefully fixes #18256.
2023-08-24 19:14:19 -04:00
Augustin Cavalier
b89f11999a ramfs: Rewrite Query system to use the common Query parser-evaluator.
The common version was also derived from BFS' original implementation,
but was genericized during packagefs development, and has more recent
fixes and additions.

Only lightly tested, but arbitrary-attribute-indexed queries seem to be
working just fine.
2023-08-24 18:01:46 -04:00
Zardshard
5b5b829f2c Icon-O-Matic: Let GradientControl shrink further
This allows Icon-O-Matic to be shrunk further horizontally.

Change-Id: Idd54a51dc0d20dcd981dc1ef10d0d5a7a78979cd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6870
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-08-23 15:26:21 +00:00
Vladimir Serbinenko
51555e0784 fs_shell: Support truncate operation in fuse
This allows to copy a file over an existing file

Change-Id: I174751987dcb2f372718e949a8d57b795dc1fd29
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6868
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-08-23 15:24:58 +00:00
Zardshard
c6c2c04284 Icon-O-Matic: Add perspective transformations
As part of adding perspective transformations, agg_trans_perspective.h
was patched to fix a multiple definitions error. This change has been
submitted for review to the "upstream" repositories at [1], [2],
and [3].

Also includes various other improvements such as VertexSource being
split into its own file, code style improvements, and documentation
improvements.

[1] https://sourceforge.net/p/agg/patches/6/
[2] https://github.com/ghaerr/agg-2.6/pull/9
[3] https://github.com/aggeom/agg-2.6/pull/7

Change-Id: I4bffd2f87354bde10155e23145a232a925be6ff3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6801
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-22 09:44:49 +00:00
Zardshard
a1c86e7ada agg: Pull in updated perspective transformation
The new version has many more features than the old one. This update
is necessary for an upcoming update to Icon-O-Matic adding perspective
transformers.

This update is pulled from https://github.com/ghaerr/agg-2.6 at commit
e7db22bd12700118257b4cb780539c421e01aa51 with our changes applied on
top. Note that this repository isn't necessarily the chosen upstream
that all future updates should be pulled from. See the discussion
starting at [1] for more information.

This also updates the affine transformation since the newer perspective
transformation requires the newer version.

[1] https://discuss.haiku-os.org/t/gsoc-2023-progress-on-perspective-transformation-haiku-project/13594/34

Change-Id: Ic578eec15fbb9131338b3c605c737ce1bfb252ca
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6808
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-22 09:44:20 +00:00
Jérôme Duval
efbeada748 gnu: add sched_getcpu()
on x86_64 implemented with rdtscp or rdpid, generically with a syscall.

Change-Id: I8f776848bf35575abec8a8c612c4a25d8550daea
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6866
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-08-21 17:55:16 +00:00
Vladimir Serbinenko
449929ad0e ufs2: Remove few optional stubs
Change-Id: I9502c09dad7c03b041abae65f6b7b8e56f3cbbff
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6864
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-08-21 17:51:00 +00:00
Vladimir Serbinenko
95adf83454 ufs2: Add missing CheckPermissions
This brings us in-line with ext2

Change-Id: I0be7c4b1cbcd5a0a9f501e3e512b5bf6d0b86ffe
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6865
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-21 17:51:00 +00:00
Vladimir Serbinenko
bb83c2e223 ufs2: Allow opening directory as read-only.
I find this API weird but apparently Tracker relies on it and if it
doesn't work it forgets to show icon on the desktop.

Change-Id: I162ff004406e28f56db5ac2293851aa30535109e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6863
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-21 17:51:00 +00:00
Vladimir Serbinenko
f2ce9dda40 ufs2: Add close and free_cookie
Change-Id: Iff7c341ab91b61d57c1509fc0acb9f0a840d6bdd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6862
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-21 17:51:00 +00:00
Vladimir Serbinenko
0f0d334a50 ufs2: Fix can_page().
Return is boolean and not a status.

Change-Id: I03b74d8d7b9b205428665059a3b9d4dc708857a0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6861
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-21 17:51:00 +00:00
Vladimir Serbinenko
0b66f41b8c ufs2: Add free_blocks and fsh_name to fs_info()
Change-Id: Ibfbcb41db507ad33051391babfafb4f22a59d971
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6860
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-21 17:51:00 +00:00
Vladimir Serbinenko
70ef3d35f5 ufs2: Add st_nlink and st_blocks to stat()
Change-Id: I89279aa1b02c3814642f2e454408198b21cf7689
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6859
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-08-21 17:51:00 +00:00
Vladimir Serbinenko
e62e8e246a ufs2: Add access() support
Change-Id: I4c2fa12a623f0893c976430893f448f734794548
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6858
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-08-21 17:51:00 +00:00
Vladimir Serbinenko
260e6bd0a6 ufs2: Add unmount function
Change-Id: I8a8b7f7eac24f70e23afec5c79fbebcaa5f17e4b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6857
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-08-21 17:51:00 +00:00
Vladimir Serbinenko
7bac1f2eba ufs2: Add size and file_offset sanity check
Change-Id: I33a1d509d9f9cac356982944a2c2491858cc1c14
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6856
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-21 17:51:00 +00:00
Vladimir Serbinenko
f76f8716cb ufs2: Add rewind_dir functionality
Change-Id: I7033273d02131b38cf3de0632058710c5d2ff36c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6855
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-08-21 17:51:00 +00:00
Vladimir Serbinenko
947459f72e ufs2: Fix warning
Change-Id: I1eebcf6c5e324f8dbbfe5e80bffdfcd4e8de1f7b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6854
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-21 17:51:00 +00:00
Jérôme Duval
7713305bd2 pch_thermal: add Lewisburg and Wellsburg ids
Change-Id: I2acbec140d8d6155549b0c802f465f004a7a67ab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6867
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-21 12:32:11 +00:00
Vladimir Serbinenko
3cfeaf2617 ufs2: Enable module
Change-Id: I1f9b92da13980637925be5e9c813af427b25feb4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6853
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-20 19:10:34 +00:00
Vladimir Serbinenko
5448262dc2 ufs2: Fix reading past the end of file and reading overwrite.
Current code forgets to clamp readings to actual file size anf moreover
never adjust the buffer fo subsequent reads. Fix both of those.

Change-Id: I3b8eb98142215ac3b30badfbbbb811147f76563a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6852
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-20 19:10:34 +00:00
Vladimir Serbinenko
dac0a050de ufs2: Fix directory iteration.
The step is reclen. Honour it or we end up stepping in the middle of garbage
when OS aligns next entry to avoid crossing sector boundaries.

Change-Id: I749f9533d4d39e7a9abf9295b8e7c519dab52921
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6851
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-20 19:10:34 +00:00
Vladimir Serbinenko
de4f20d48d ufs2: Fix wrong lookup iteration
Passed size needs to be size of name buffer, not of length we compare to.
Fix the value and remove now unused parameter.

Change-Id: Idb69a0e78ba376751edf8b3df3635cd0af4c9460
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6850
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-20 19:10:34 +00:00
Vladimir Serbinenko
a4845b5416 ufs2: Fix porentially uninited use of fName field
At the same time make it in line with ext2 module

Change-Id: Iab879cf532cbc0b58b23cdd97d50419c21d199b6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6849
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-20 19:10:34 +00:00
Vladimir Serbinenko
454dc0e951 ufs2: Fix inode retrieval
The code multiplied fragno by MINBSIZE instead on fragment size.
Moreover IsDirectory and IsSymlink were called before inode was read.

Change-Id: I9e62007c900fb4376812f8ebef508a3f8a8f619b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6848
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-20 19:10:34 +00:00
Vladimir Serbinenko
21425cfca0 ufs2: Add missing include
Change-Id: I6351ed9b5c841955c6d76aecf470ac914abef9ad
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6847
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-20 19:10:34 +00:00
David Karoly
3568a4e11f update bootstrap package versions for x86_64
Change-Id: I623b927096547a1bc98d1011169142d841c78eac
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6846
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-08-20 16:08:31 +00:00
Zardshard
6936878097 Icon-O-Matic: Fix bugs that occur when pasting text
Fixes a small, hard-to-see bug that occurs when pasting text into
Icon-O-Matic. Before when pasting, for example, an "O" into IOM, the
"O" would not be completely symmetrical. There would be an extra point
on one of its sides. Now that point is gone.

Also fixes paths not being closed when they should be. Back to the "O"
example, one of the two paths that make up the "O" would be open. Now
both paths are closed.

Also determines whether a point should be connected or disconnected
based on whether the control points and the vertices lie on a straight
line. (If a point is marked as connected, the control points and the
vertex are constrained to lie on the same line.)

Change-Id: I0cb9f878ac7887640288073ca253de35b3937f3b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6841
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-08-19 15:15:25 +00:00
PulkoMandy
52050c56f6 BTextView: improve GetHeightForWidth in non editable mode
In non editable mode, BTextView computes a preferred size that just fits
the current text. This did not take into account the insets from
SetInsets, so, when these are used, the resulting view size was too
small.

Additionally, avoid calling _Refresh that has two problems: it needs the
view to already be attached to a window, and it does a lot of things we
don't really need here: recomputing scrollbars, clearing the empty space
below the text to avoid flickering, and so on. We just need to recompute
fTextRect according to the suggested width, to do that, it is enough to
call _RecalculateLineBreaks instead.

Finally, also restore the text rect at the end of the method, since it
is not actually resizing the view, it is very unexpected that it changes
the text rect. This is not perfect, as the line breaks from
_RecalculateLineBreaks are not undone. But, since the next step is
probably to resize the view according to the computed width/height, this
will be sorted out at that time. If this proves to be a problem, we can
add a second call to _RecalculateLineBreaks after restoing the original
text rect, or refactor _RelcalculateLineBreaks so that it can return the
new height without actually changing the lines.

Change-Id: Ie2fa60c1b2314c8a3346d03ab3ff6843aebaf3dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6845
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-08-19 15:15:00 +00:00