The openboot mmu code does not like addresses above 4GB, so load the
kernel to a lower address. It doesn't really matter anyway, because on
sparc the kernel normally lives in a separate address space and uses
special instructions to access userland memory.
See #19597 for details, further changes will be needed here.
Change-Id: Iac6901f275667efef5e64d059daf4c96032a7baf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3573
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Duplicates can arise if e.g. you have backup of your contacts mounted.
Or, imagine someone packages a Person file with their software as it
was common back in the BeOS days. If you have several software packages
from that dev, you'll see copies of that Person file from each package.
If a contact has the same name, we compare all email addresses. If they
differ, a new item is created. That way, Person files with more than
one email attribute ("META:email{n}" with n >= 2), as used by other apps
like Peeps!, get an item per address.
When checking for email addresses in AddPersonAddresses(), don't quit
looking through the attributes when encountering an empty one via "break".
Do "continue" with the next "META:email{n}" attribute, as it's possible
META:email2 is empty, but META:email3 has an address.
Change-Id: I644cfa2d8349b5022ffde37344c55a54577b12f8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9331
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Other contacts apps like Peeps! allow for more than one email
addresses, using the attributes META:email{n} with n >=2.
Only, not all contacts having those additional attributes have
them actually filled.
This results duplicate entries in e.g. the To-field pop-up with
no email address attached.
We now only add an item if its email address isn't empty for those
additional email attributes as well.
Change-Id: Icb1750fe8e2b10280bc01b3181b444f01096e021
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9329
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Locale::createCanonical will happily accept all kinds of strings
that don't actually indicate valid locales, but down the line
ICU will behave strangely or even crash with these in certain methods.
So, use getISO3Language(), which will return nothing if the language
is unknown to ICU, to validate that the locale exists, or bail if
it doesn't.
Fixes#19576.
Before, when you got multiple emails open, doing e.g. a "Close and
leave as New" (SHIFT + ALT + W) would correctly leave the active email
with status "New", but the other open Mail windows were closed as well
and got the status "Read"!
Now we only close the current Mail window, not the whole app and with
it all open email windows.
The currently somewhat hidden command "SHIFT + ALT + Q" now issues
a message to all open Mail windows to close and keep their mails' status,
i.e. the same as invoking SHIFT + ALT + W in all open email windows.
Change-Id: I0402a1e39ce58b53eca2c3bfe8f8becd5529c566
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9305
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Move back and forth in the search history with CursorUp/Down.
Entering a search text will reset the current history index
(fCurrentHistoryIndex = -1), and you'll be back to the first
history item next time you CursorUp.
Change-Id: Id45a47756b4732ae6e22e5373c4db5249c8df198
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9303
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Previously, Entry::Link() behaved incorrectly in this case:
it would unlink the old Node before linking the new one.
But there's only one DoublyLinkedListLink inside Entry
for the Node to use, so this would clobber the lists
and thus produce KDLs.
Instead, make Link fail if there's already a node, and
thus force the caller to Unlink first. For now, just use
a "naive" implementation of this in the one case in
rename(); in the future we could make it more robust if
necessary.
Fixes the other KDL in #19583.
This reverts commit 7174197a8d
and all following changes to the related musl files.
(Besides just the reverts, though, it also uses glibc's
strtol-related routines even outside wchar_t.)
musl's behavior of only parsing POSIX-locale strings here may
be technically conformat, but in conjunction with a filled-in
"localeconv", produces behavior that glib does not expect,
and thus in locales with separators other than '.' and ',' as
in POSIX (or EN) locales, it doesn't work properly.
Fixes the main problem in #19582.
Check if fMouseClipboard is be_clipboard, and do nothing in that case.
This could happen if SetMouseClipboard has never been called, for example when running as a replicant.
Also updated copyright year.
Change-Id: I2468d80404c429797bd8c906f3aa747ffc414fa8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9309
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
The old BUrl constructor with just a string is now private. The new one
has a default value for the second parameter, but C++ doesn't exclude
the private constructor from the candidate functions search. So, the
default argument for the new constructor needs to be explicitly
specified now.
Change-Id: Idb1915649ea3d2c59e344801a9d4fe201f8040e9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9236
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
The content of a BUrl should always be in encoded form, to simplify
handling and validation.
Deprecate the UrlEncode member function and make it private. Instead aadd a new
way to handle URL encoding:
- All ways to set an URL (constructors, SetUrlString, and all setters)
now take an extra boolean parameter indicating if the string is already
encoded. The default value is to encode strings automatically.
- The static version of UrlEncode and UrlDecode, which operate on a
string, are preserved and used by other parts of the API.
All unit tests adjusted to handle this, and still passing.
Fixes#12983
Change-Id: I06f06978d0d35e56d7c92b67f001856bb7dcafc8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1193
Reviewed-by: nephele nephele <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
* Allow Inode::LookUp to handle the case in which the inode number in
a DirectoryCache entry has no corresponding entry in the InoIdMap.
This situation can occur after an unused node is freed (due to low
system resources), since ~VnodeToInode will remove the node's
InoIdMap entry.
* When a file is overwritten by a rename operation, remove the
overwritten file's entry from the parent DirectoryCache (although a
file with this name is still present in the directory, the old
DirectoryCache entry is now invalid because the name is now linked
to a different inode).
* Invalidate the cached stat info, including the number of links, in
Inode::fMetaCache when linking to that inode.
* Make a correction to the assert added in
https://review.haiku-os.org/c/haiku/+/9282. Entries may still be
left in this client's InoIdMap if the file was deleted by another
client.
Change-Id: Id437be32e51a4b324eb818b398d7facd23b7be56
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9308
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
* 0463b95 removed a messy workaround ensuring the load address of
the kernel was 0 due to riscv64's PIC kernel design breaking rv64
booting.
* This is the proper fix to set the load address of our PIC kernel
as 0 (triggering a dynamic position)
Change-Id: I010d70bef90c84ca0243601b86d79fbb60c38728
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9301
Reviewed-by: Alexander von Gluck <[email protected]>
Reviewed-by: waddlesplash <[email protected]>