History log of /haiku/src/kits/support/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
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>

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>

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

s/Haiku License/MIT License/g.

They are the same thing.

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>

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>

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>

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>

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>

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>

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>

cd6365c7 17-May-2018 Jérôme Duval <jerome.duval@gmail.com>

style fixes

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.

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().

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().

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.

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()

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.

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.

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.

8c767985 25-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Move MediaIO in it's own header

7b79e069 06-Mar-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

Add prototype BMediaIO interface

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

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.

5ab2b145 17-Oct-2015 Axel Dörfler <axeld@pinc-software.de>

BJob: Added SetState() method.

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.

2f863948 26-Jul-2015 Adrien Destugues <pulkomandy@gmail.com>

PVS 170: use boolean for if comparison

Direct use of strcmp result in if is against our coding style.

c7c1744b 15-Jun-2015 Axel Dörfler <axeld@pinc-software.de>

JobQueue::AddJob() returns error on lock failure.

* If the lock could not be obtained, it will now return B_ERROR
instead of B_OK.

6ff95509 31-May-2015 Axel Dörfler <axeld@pinc-software.de>

JobQueue: fixed leak, notification, added Pop() variant.

* Was leaking fQueuedJobs on destruction.
* fHaveRunnableJobSem implementation was not completed; it was never
* Added Pop() variant that is a bit more flexible, and allows for a
timeout as well as waiting even when the queue is empty, and can
return a status code.

e711e6e4 18-May-2015 Axel Dörfler <axeld@pinc-software.de>

Moved BJob, and JobQueue into the support kit.

* Put it in the BSupportKit namespace, following the style introduced
with the package kit for now.
* The BSupportKit::BJob class no longer knows about the package kit's
Context class. However, the BPackageKit::BJob class does.
* Due to the namespace juggling, a lot of files had to be touched.
* The JobQueue class remains private.
* Due to the way Haiku is built on itself, you cannot build this change
under Haiku with an older release.

7c52cca9 28-Apr-2015 Adrien Destugues <pulkomandy@gmail.com>

Build fix.

Thanks to luroh for noticing.

5de22b9b 28-Apr-2015 Adrien Destugues <pulkomandy@gmail.com>

BLocker: make "unlock from wrong thread" only a warning.

Calling Debugger here causes issues with some software (mainly Mesa).
Only print a warning, this is enough for developers to see the problem,
and not as annoying for users.

e01de522 10-Apr-2015 Michael Lotz <mmlr@mlotz.ch>

More whitespace cleanup all over the place.

a6b84a0c 24-Apr-2013 Axel Dörfler <axeld@pinc-software.de>

BBufferedDataIO: the underlying stream might return an error.

* In this case, fSize would have been set incorrectly, ignoring the error
completely, but open the possibility to read from uninitialized or even
unmapped memory.

d350b0f0 22-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>


42274958 22-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

BLocker: call debugger() when unlocking from another thread

BeOS did allow other threads than the owner to unlock a BLocker (the be
book says so). We did not, and silently ignored the unlock attempt in
this case, probably resulting in a deadlock of applications using the

Call debugger instead so:
* The problem is made visible for such apps
* The debugger call is continuable so the app can be run, still

Will help making a decision on what to do here (follow BeOS or change
behavior) and make a final decision for #6400.

3fe7b3f7 02-Nov-2014 Michael Lotz <mmlr@mlotz.ch>

BString: Add ScanWithFormat convenience method.

afd5ec11 30-Sep-2014 Adrien Destugues <pulkomandy@gmail.com>

Add setters to BDate and BCalendarView

* BDate setters don't perform any validation, use with caution.
* BCalendarView setters do perform validation checks, and will adjust
the day so it fits the requested month or year.
* Add tests for the BCalendarView setters.

f188c1de 30-Sep-2014 Adrien Destugues <pulkomandy@gmail.com>

BDateFormat: improve API

* Use a reference rather than a pointer for the output string, removing
the need for NULL checks (which were missing, anyway)
* Adjust callers to that change
* Add new Format variant taking a BDate argument

3aeed660 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949

05b565f4 12-Jul-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Add private BDataPositionIOWrapper

Implements the BPositionIO interface on top of a BDataIO, requiring the
{Read,Write}At() accesses to be sequential.

8546c416 12-Jul-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

BPositionIO: Add {Read,Write}AtExactly()

Analoguous to {Read,Write}Exactly(), just for the *At() versions.

c666db88 03-Jul-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

BZlibCompressionAlgorithm: Missing NULL check

a5330a8e 02-Jul-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove private support kit BUrl

Use the public BUrl from the network kit instead.

72cf56a0 01-Jul-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

BZlibCompressionAlgorithm: Basic support for gzip format

b3263ad3 30-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Switch package kit to BZlibCompressionAlgorithm

... and remove the Zlib{Compressor,Decompressor} API.

dcdc33b0 29-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Add B[Zlib]CompressionAlgorithm

* BCompressionAlgorithm is a base class for classes that provide
compression/decompression functionality. There are methods for
compressing/decompressing a single buffer and factory methods for
a compressing/decompressing input/output BDataIO.
* BZlibCompressionAlgorithm is a BCompressionAlgorithm implementation
using zlib.

6a89a36a 24-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Move package kit Zlib* classes to support kit

Also move to B* namespace and no longer expose the zlib dependency in
the headers.

b773d89e 29-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

BDataIO: Add Flush()

29e8fa59 24-Jun-2014 John Scipione <jscipione@gmail.com>

Style fixes to Support Kit files

5ede33ed 23-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

BDataIO: Hopefully fix native build

0d8b44e2 20-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

BDataIO: Add methods {Read,Write}Exactly()

98759fe6 20-Jun-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

BDataIO: Provide default implementations for Read()/Write()

This makes the interface somewhat more suitable for unidirectional use,
since one doesn't have to implement the other, not needed method.

dbd4f8c4 16-Jun-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

SetTime_t: Use the sign-fixed modulo we computed

* In C++03 and earlier, the sign of the modulo result is implementation
defined (this was fixed in C++11).
* Setting a negative time is not what we want here, so make sure we use
the proper value.

a0b864f0 07-Jun-2014 Jessica Hamilton <jessica.l.hamilton@gmail.com>

BString: fix possible infinite loop in _DoReplace

64c12b41 19-Feb-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Reintroduce BeOS compatible en/decode_base64.

Fixes #8579.

d0f2d828 16-Jan-2014 Pawel Dziepak <pdziepak@quarnos.org>

Merge branch 'scheduler'


f4c2f7eb 10-Jan-2014 Jonathan Schleifer <js@webkeks.org>

Remove variable length arrays of non-PODs.

Variable length arrays of non-PODs are not part of the C++ standard, but
a GNU extension that never worked correctly. Instead, BStackOrHeap array
is used now, which makes sure that it's not too big for the stack, calls
all constructors and is valid C++.

ab3fd9c8 04-Dec-2013 Adrien Destugues <pulkomandy@pulkomandy.tk>

Move {en,de}code_base64 to the support kit

It's not possible to use these from the network kit otherwise, as it
would create a circular dependency (mail > bnetapi > mail).

Is there a better way to solve this problem?

c39c9283 16-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add get_architectures() and C++ versions

* get_architectures() returns the primary and the secondary
architectures in one array. That turned out to be convenient.
* Add C++ versions for get[_secondary]_architectures(), returning a

077c84eb 05-Nov-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel: atomic_*() functions rework

* No need for the atomically changed variables to be declared as
* Drop support for atomically getting and setting unaligned data.
* Introduce atomic_get_and_set[64]() which works the same as
atomic_set[64]() used to. atomic_set[64]() does not return the
previous value anymore.

d05f9e2d 10-Oct-2013 Adrien Destugues <pulkomandy@pulkomandy.tk>

BDateTime: Time_T functions return or take a time_t

* They used an unsigned int, which led to overflows when trying to set
them to a time before January 1st, 1970 (local time)
* Some things use January 1st, 1970, GMT (or UTC) as a reference point.
In my timezone this leads to such a negative date. An example is cookie
expiration dates which are set to this date to expire them immediately.
Spotted by Opera testsuite.
* This makes the method unuseable for dates after 2036 (signed 32-bit
time_t will overflow then. This gives us just 33 years to switch to a
64-bit time_t. In te meantime, please try using other methods to set the
date and time for BDateTime objects if you need to go this far.

d0688588 01-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

kits/support: Skip debug check in boot loader

1238bebd 01-Oct-2013 Pawel Dziepak <pdziepak@quarnos.org>

build: Add stub _get_thread_info() needed by support/Referenceable.cpp

This is a step towards fixing #10042.

When DEBUG is set BReferenceable::~BReferenceable() performs some checks
ensuring that the object is destroyed correctly. These checks require
information on thread stack, which is obtained by get_thread_info().

_get_thread_info() stub is added (actually, readded) which always returns
B_ERROR. Moreover, the check in BReferenceable destructor is modified
so that it does not fail when get_thread_info() fails.

1c521f0b 19-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BString::Split(): Fix check

be3833c9 27-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BString: Add SetToFormatVarArgs()

b0944c78 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).

62b0b641 20-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BStringList::Add(): fix ref counting problem

Handle the case that the private data of the given string is not

10551127 19-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Move PUuid from shared to support

c82776b2 23-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BString: Add Split()

8698ee45 23-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BStringList: Declare Join() const

c663ca21 11-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge branch 'master' into package-management


7e3f7da7 10-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BURL: Make the output to stderr DEBUG only

25a7b01d 05-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge branch 'master' into package-management

Additional changes:
* Add src/system/kernel/lib/zlib, which builds a kernel version of zlib,
needed by packagefs.
* BuildFeatures: Add a build feature "gcc2" to allow for easier checks.
* Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter
is not needed and prevents building for the build platform.
* zlib/zutil.h: Fix gcc 2 build. We really should use the external
package instead.


c10119fa 29-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BStringList: Add Join()

38cb1c91 15-Apr-2013 Rene Gollent <anevilyak@gmail.com>

Improve debug output.

59a998dc 15-Apr-2013 Rene Gollent <anevilyak@gmail.com>

Fix userland build with tracing enabled.

1fd93573 14-Apr-2013 Rene Gollent <anevilyak@gmail.com>

Fix incorrect type.

58a2847a 14-Apr-2013 Rene Gollent <anevilyak@gmail.com>

Improve debug output.

Should make it easier to determine the exact reason the debugger
call is triggered.

379131d9 08-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

BString: Add StartsWith() and EndsWith() methods

820dca4d 06-Feb-2013 John Scipione <jscipione@gmail.com>

Big docs cleanup.

* Fixed headers including:
- All rights reserved not All Rights Reserved.
- name, email@domain.com not name <email@domain.com>
- tabs and spaces
- Authors: not Documented by:
* Renamed string.dox to String.dox
* Renamed midixxx.dox files to MidiXxx.dox
* Moved images into images subdirectories and updated Doxfile.
* Re-format all files with tabs instead of spaces.
* Fix many spelling mistakes.
* Added all files, classes, structs, and enums to libbe group.

690a7f3d 06-Dec-2012 Dariusz Knociński <dknoto@gmail.com>

BStringList: Fix compare_private_data[ignore_case]()

Signed-off-by: Ingo Weinhold <ingo_weinhold@gmx.de>

a34020ba 06-Dec-2012 Rene Gollent <anevilyak@gmail.com>

A bit more fine-tuning to BReferenceable debugging.

- Rework quick stack range check as suggested by Ingo.
- If the ref count is > 1 we invoke the debugger unconditionally.
- If equal to 1, we first perform a quick heuristic check to see if the
var might be on the stack. If we can't conclusively determine that is,
we make certain by comparing to the thread's actual stack range.

4a5bcf0f 05-Dec-2012 Rene Gollent <anevilyak@gmail.com>

Rework debugging check in BReferenceable.

- If a BReferenceable object is deleted with a non-zero reference count,
we now test to see if the object was allocated on the stack. If so,
we don't flag a warning if the reference count is currently 1.

860c710c 04-Dec-2012 Rene Gollent <anevilyak@gmail.com>

Add some additional BReferenceable debugging.

- When libbe is built in debug mode, BReferenceable now issues a
debugger call if it's destroyed without all references having been

049d149c 04-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Handle 64-bit types correctly.

9be774b5 30-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Compilation and 64-bit fixes to libbe.so sources.

Fixed the usual issues - printf format strings, uint32 instead of
addr_t, etc. One thing that isn't so nice is several places where
BList is used to store (u)int32, these require a double cast to addr_t
then void* to silence a warning on x86_64.

36c85ca8 10-Jul-2012 Rene Gollent <anevilyak@gmail.com>

Fix add-on image unloading for shelf replicants (ticket #8708).

- The version of instantiate_object() that returns the image id from which
the object was reinstantiated was not correctly returning it in all
circumstances, only if it had to find/load the add-on itself. This caused
problems for BShelf since the latter relies on that image id in order to
determine what image to unload when replicants are removed. To remedy this,
introduce an additional version of find_instantiation_func() that returns
the image id in which the instantiation function was found, and make use
of it in instantiate_object() in order to also be able to return the image
id in that case.

4ca2a447 31-Jan-2012 Alex Wilson <yourpalal2@gmail.com>

Make ownership-taking idempotent during unarchiving.

The previous scheme made it hard to deal with reference-counted objects,
which may be owned by many objects.

11ff194b 27-Apr-2012 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Use strnlen instead of own impl, as it probably will have platform specific optimisation.

1b6bc267 08-Feb-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

kits: Some spelling cleanup of common mistyped words

* Little whitespace cleanup
* No functional change

b6e4d1a9 29-Dec-2011 Philippe Saint-Pierre <stpere@gmail.com>

BufferedDataIO::Flush(), use ssize_t rather than size_t

Write() was returing an ssize_t and Flush() was expecting a ssize_t,
but a size_t was instead used. CID 11052.

4ad0585e 17-Dec-2011 Urias McCullough <umccullough@gmail.com>

Partial fix for DEBUG=1 build on a 64bit host

Signed-off-by: Matt Madia <mattmadia@gmail.com>

9472a1d6 20-Dec-2011 czeidler <haiku@clemens-zeidler.de>

Small style changes. Thanks Axel.

14fc524b 16-Dec-2011 czeidler <haiku@clemens-zeidler.de>

Style and performance fixes. Thanks Ingo and Stephan.

ed77847c 14-Dec-2011 czeidler <haiku@clemens-zeidler.de>

Remove private BStringList implementation from mail. Tested it but however please be careful an review. This fixes bug #8174.

779061f0 14-Dec-2011 czeidler <haiku@clemens-zeidler.de>

Make BStringList derive from BFlattenable. The implementation is more or less copied from the mail version to stay compatible. Fix IndexOf which
was the implementation of HasString.

011002e5 06-Dec-2011 Michael Lotz <mmlr@mlotz.ch>

Fix uses of member after deleting the object. CID 10535, 10534.

7de6af25 16-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add a BStringList class

ad07ecd8 16-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

BString::Private class to access BString internals

156ea481 16-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add HashValue() methods to BString

02606f71 22-Nov-2011 Oliver Tappe <zooey@hirschkaefer.de>

Provide BReferenceable in libreferenceable.a, too.

* the upcoming multibyte-implementation in libroot's ICU locale
backend is going to use this, so it's not good enough to provide
BReferenceable only in libbe.so

29e07dd0 21-Nov-2011 Axel Dörfler <axeld@pinc-software.de>

Added a buffered DataIO subclass.

* Only the read path is tested so far.

19ae20e6 05-Nov-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge branch 'master' into pm-flat


aac8a4c3 07-Sep-2011 Oliver Tappe <zooey@hirschkaefer.de>

Fix clamping in BDate::AddMonths():
* use _DaysInMonth() instead of DaysInMonth(), as the latter only works
for valid dates, which we do not have if the day needs to be clamped
to the maximum value for the current month

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42719 a95241bf-73f2-0310-859d-f6bbb57e9c96

04c60f44 23-Aug-2011 Oliver Tappe <zooey@hirschkaefer.de>

* fix stuck loops in Replace...() on single chars in case the old and new character
are the same (Eclipse was complaining about 'assignment to self', which got me
looking at the code ...)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42682 a95241bf-73f2-0310-859d-f6bbb57e9c96

f7953fa7 24-Jul-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add MoveItem method to easily move a item within a list. Fix line limit.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42475 a95241bf-73f2-0310-859d-f6bbb57e9c96

808a5116 16-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add a BStringList class

d0c41784 16-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

BString::Private class to access BString internals

5a54e156 16-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Add HashValue() methods to BString

85b41b15 07-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added bool and double BString::operator<<() versions.
* Removed the clashing operator in JobSetupDlg. Automatic whitespace

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42387 a95241bf-73f2-0310-859d-f6bbb57e9c96

e76046d3 14-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Use casts that are more portable.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42177 a95241bf-73f2-0310-859d-f6bbb57e9c96

a928c3f0 13-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

operation <<(): Use the standard types [unsigned] long [long] instead of
[u]int32 and [u]int64 to avoid clashes with the int/unsigned int versions.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42165 a95241bf-73f2-0310-859d-f6bbb57e9c96

8c3c1172 10-Jun-2011 Rene Gollent <anevilyak@gmail.com>

Adjust ReleaseReference() to also return the previous ref count as
AcquireReference() now does, and adjust all callers that relied on the previous
return type.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42091 a95241bf-73f2-0310-859d-f6bbb57e9c96

a99d0dd7 09-Jun-2011 Rene Gollent <anevilyak@gmail.com>

AcquireReference() now returns the previous ref count.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42079 a95241bf-73f2-0310-859d-f6bbb57e9c96

8066fbc7 23-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Remove semi unused variable.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41094 a95241bf-73f2-0310-859d-f6bbb57e9c96

9d214f41 23-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Switch back to isspace for now. Have to read some utf8 stuff first. Feel free to fix it, though! will not do it in the near future...
Fix header order, ups never changed a libbe file before ;) thx Oliver. Add small optimization as pointed out by Ingo.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41093 a95241bf-73f2-0310-859d-f6bbb57e9c96

b5ddb507 22-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Switch to iswspace. Fix space detection at the right. Thanks Jérôme and Ingo. Please review, though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41084 a95241bf-73f2-0310-859d-f6bbb57e9c96

37ffb53f 21-Mar-2011 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix Trim() method for empty strings and strings only containing spaces. Fixes #7392.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41076 a95241bf-73f2-0310-859d-f6bbb57e9c96

146d274d 01-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Return of the on-stack buffer.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40767 a95241bf-73f2-0310-859d-f6bbb57e9c96

a29fb938 01-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Rename and a small simplification. Thanks, Clemens and Ingo.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40756 a95241bf-73f2-0310-859d-f6bbb57e9c96

3838fb93 27-Feb-2011 Jonas Sundström <jonas@kirilla.com>

Using the buffer of the string instead of one on the stack.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40726 a95241bf-73f2-0310-859d-f6bbb57e9c96

c9e27ada 27-Feb-2011 Jonas Sundström <jonas@kirilla.com>

Cleanup. Efficiency makerover.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40720 a95241bf-73f2-0310-859d-f6bbb57e9c96

c91c2de7 26-Feb-2011 Jonas Sundström <jonas@kirilla.com>

Printf-like assignment method for BString.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40695 a95241bf-73f2-0310-859d-f6bbb57e9c96

9f209e77 16-Feb-2011 Oliver Tappe <zooey@hirschkaefer.de>

Fix minor issue in BString I noticed when researching #7226:
* if _MakeWritable() fails, LockBuffer() must return NULL, not what
happens to be in fPrivateData

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40525 a95241bf-73f2-0310-859d-f6bbb57e9c96

23281fb2 05-Jan-2011 Jérôme Duval <korli@users.berlios.de>

Moved Easter holidays methods to a Holiday class, an hopefully better place.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40125 a95241bf-73f2-0310-859d-f6bbb57e9c96

96827f26 04-Jan-2011 Jérôme Duval <korli@users.berlios.de>

Ooops. Fix AscensionDay and PentecostDay.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40117 a95241bf-73f2-0310-859d-f6bbb57e9c96

daf3c505 04-Jan-2011 Jérôme Duval <korli@users.berlios.de>

* changed some methods to static as that's what they are in the end.
* added some methods to find out easter sunday, ascension and pentecost days.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40116 a95241bf-73f2-0310-859d-f6bbb57e9c96

756b64fd 16-Dec-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed the obsolescent [B]Reference[able] API and replaced the remaining
uses. Fixes the gcc 2 acpi build.
* Renamed WeakReferenceable::{Add,Remove}Reference() to
{Acquire,Release}Reference() for consistency.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39871 a95241bf-73f2-0310-859d-f6bbb57e9c96

8510499a 17-Nov-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed the FindLast() char versions. They wouldn't find a character at the
beginning of the string.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39470 a95241bf-73f2-0310-859d-f6bbb57e9c96

d32f94f4 01-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Added optional tracing support which can be very useful when debugging
reference count problems.
* Minor cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38866 a95241bf-73f2-0310-859d-f6bbb57e9c96

559cf371 16-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fix oversight that gmtime() and localtime() may return NULL, which would lead
to a crash

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38143 a95241bf-73f2-0310-859d-f6bbb57e9c96

aa818be6 12-Aug-2010 Alex Wilson <yourpalal2@gmail.com>

Update BView to call debugger when passed a NULL archive for its archive constructor. This means there is no need to check for a NULL archive in BSeparatorView. Also update BUnarchiver and friends to be NULL safe. Pointed out by Adrien, fixes CID 1754.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38063 a95241bf-73f2-0310-859d-f6bbb57e9c96

45a167a9 26-Jul-2010 Alex Wilson <yourpalal2@gmail.com>

In BUnarchiver::IsInstantiated(), catch a possible NULL dereference, make archive parameter to BUnarchiver::IsArchiveManaged() const.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37751 a95241bf-73f2-0310-859d-f6bbb57e9c96

c216fe9d 25-Jul-2010 Alex Wilson <yourpalal2@gmail.com>

Update (de)mangle_class_name() functions to be compiler version aware.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37750 a95241bf-73f2-0310-859d-f6bbb57e9c96

b137ab3e 16-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Alex Wilson (minor changes by myself) related to the new archiving
* Some cosmetic adjustments of the API, like using references instead of
pointers, argument order, method names, etc.
* Added convenience template methods for archiving and unarchiving to BArchiver
and BUnarchiver.
* BUnarchiver (respectively the private BUnarchiveManager) explicitly deals with
object ownership, now. This is necessary since an error while unarchiving
could leave an already unarchived object without owning object, which would
result in it being leaked. The BUnarchiver::{Get,Find}Object() methods do now
have an optional parameter to specify whether object ownership shall be
* Fixed incorrect header guard in headers/private/binary_compatibility/Global.h.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37538 a95241bf-73f2-0310-859d-f6bbb57e9c96

fbb6335d 08-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Style cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37432 a95241bf-73f2-0310-859d-f6bbb57e9c96

e5150e28 08-Jul-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Alex Wilson (compilation fixes by myself): Extended the archiving/
unarchiving protocol to support archival of arbitrary object graphs.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37431 a95241bf-73f2-0310-859d-f6bbb57e9c96

1e16c002 24-Mar-2010 Stephan Aßmus <superstippi@gmx.de>

* Don't store a possibly negative return value in an unsigned size_t, which
is later used as parameter to memcpy(). Should fix r5623 (untested).
* Fixed coding style for some comments.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35944 a95241bf-73f2-0310-859d-f6bbb57e9c96

bbba047c 17-Mar-2010 Stephan Aßmus <superstippi@gmx.de>

* Added copy constructors.
* Let the AddHours(), Add*() return itself, so that they can be chained.
* Made the previous *Name() methods static and added non-static versions that
take the day/month of the object.
* Make BDateTime::Date/Time() return references (const or non-const).
* Fixed the BDateTime comparison operators.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35894 a95241bf-73f2-0310-859d-f6bbb57e9c96

a070cf53 06-Mar-2010 Stephan Aßmus <superstippi@gmx.de>

* Indentation update in DateTime.h
* Extended BTime, BDate and BDateTime with archiving functionality.
* Adjusted code which uses these classes, since including DateTime.h
already imports the classes from the BPrivate namespace.
* Moved DateTime.h into Support Kit. It is still in the BPrivate namespace,
as I am uncertain what to do with time_type and diff_type. I'd favor
moving the constants into the classes itself. Possibly removing the B_
prefix from them. Feedback welcome.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35772 a95241bf-73f2-0310-859d-f6bbb57e9c96

a9038d00 24-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

The withLength variable wasn't initialized properly.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35613 a95241bf-73f2-0310-859d-f6bbb57e9c96

a5b7cbe3 31-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

Adding utf-8 aware version of most functions to BString. They are named after
the corresponding normal functions but have a "Chars" in the name like
"MoveCharsInto" or "AppendChars". Also added CountBytes() and CharAt().
This should make everyday string handling with multibyte strings a bit easier.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35371 a95241bf-73f2-0310-859d-f6bbb57e9c96

534bebec 09-Jan-2010 Jérôme Duval <korli@users.berlios.de>

When BString assignment operator is called with a NULL argument we should use an empty string instead. I checked this against Dano.
This fixed #4713

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34983 a95241bf-73f2-0310-859d-f6bbb57e9c96

4e1e966a 09-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Forgot to check in Beep.cpp. Sorry!

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34602 a95241bf-73f2-0310-859d-f6bbb57e9c96

1cab99bc 09-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Apparently someone forgot to commit something. Build fix hack.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34600 a95241bf-73f2-0310-859d-f6bbb57e9c96

b0850e9b 05-Dec-2009 Stephan Aßmus <superstippi@gmx.de>

* Code and header indentation cleanup
* Added operator== and !=
* Added check for list != this in operator=
* Added HasItem() and IndexOf() versions that take const void*, duplicating
the code, since I didn't want to introduce another function call in these
potentially time critical methods.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34520 a95241bf-73f2-0310-859d-f6bbb57e9c96

4736b6b9 04-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Made BReferenceable the class implementation and BPrivate::Referenceable the
typedef, so it's clearer which one is the preferred one.
* Added BReference, a clone of BPrivate::Reference.

BPrivate::{Referenceable,Reference} are being phased out. Only the B* versions
should be used.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33879 a95241bf-73f2-0310-859d-f6bbb57e9c96

6f6dceac 27-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Minor cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32758 a95241bf-73f2-0310-859d-f6bbb57e9c96

e90b90da 31-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

* Added desperately missing Trim() method.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32035 a95241bf-73f2-0310-859d-f6bbb57e9c96

1746066c 20-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Made _Allocate() static.
* Moved the private inline methods up in the source file, so they can actually
be inlined.
* UnlockBuffer(): Removed superfluous "if". Maybe the one who wrote it can have
a look and check whether something else was intended originally.
* _MakeWritable() (both versions): Removed the superfluous ref count increment
and the matching decrements.
* _Resize(): Fixed ref count ASSERT. It would always be triggered when called
from UnlockBuffer(), since the ref count is -1 in that case.
* Clarified some comments.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31662 a95241bf-73f2-0310-859d-f6bbb57e9c96

7aa7cb4b 01-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Renamed {Add,Remove}Reference() to {Acquire,Release}Reference(). Methods with
the old names still exist as deprecated aliases for the time being.
* Introduced hooks FirstReferenceAcquired() and LastReferenceReleased(). Besides
added flexibility this also makes the deleteWhenUnreferenced constructor
parameter and the fDeleteWhenUnreferenced attribute superfluous, since the
"don't delete" behavior can be obtained by overriding LastReferenceReleased().
Parameter and attribute will be removed eventually.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31367 a95241bf-73f2-0310-859d-f6bbb57e9c96

e52400cf 06-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Fixed a race condition in the former _Detach*() functions: since atomic_get()
was used, two different threads could decide to share the same mutable string.
* Renamed some functions to make clearer what they do, ie. _Detach() is now
called _MakeWritable().
* Cleaned up some questionable semantics, like the const char* parameter in
_DetachWith() - you can now choose to copy the original string or not with
a boolean. This also makes sure that the string is actually copied when it
has to, which wasn't the case before (but that was no problem with the way
that function was used).
* Made the header compliant with our style guide.
* Further cleanup.
* All BString related unit tests are passed, so I guess I didn't break too
much :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30980 a95241bf-73f2-0310-859d-f6bbb57e9c96

584ba898 04-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Fixed debug build.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30956 a95241bf-73f2-0310-859d-f6bbb57e9c96

03458c01 13-May-2009 Jonas Sundström <jonas@kirilla.com>

More style guide fixes. Removed a lot of preprocessing / conditional building, with intent to fix or remove. Moved urlwrapper class declaration to its header file. Renamed things for clarity. Removed 5 extra mimetypes for IE shortcuts. (We have one, with sniffing rule and extension.) Moved the UnurlString() back to urlwrapper.cpp and renamed it _DecodeUrlString(). Tweaked copyright clauses. A lot more needs fixing, esp. in urlwrapper but also in BUrl, and I intend to keep working on this until we're satisfied. Let me know of any remaining/added style violations! Feedback welcome.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30757 a95241bf-73f2-0310-859d-f6bbb57e9c96

a2439167 12-May-2009 Jonas Sundström <jonas@kirilla.com>

Hopefully fixed indentation in BUrl header. Made data members in BUrl private. Added some class methods. Adapted urlwrapper to use the BUrl class. Removed a few obvious comments and some code that was defined away. Turned off debugging. Stripped App suffix from class name. No intentional changes to the core functionality of urlwrapper.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30739 a95241bf-73f2-0310-859d-f6bbb57e9c96

28e8dc8e 10-May-2009 Jonas Sundström <jonas@kirilla.com>

Move Url class out of /bin/urlwrapper into BPrivate::Support. I plan to add a Launch()-method that will make it useful to /bin/open, AboutSystem, People and other applications.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30702 a95241bf-73f2-0310-859d-f6bbb57e9c96

96b5480b 06-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30646 a95241bf-73f2-0310-859d-f6bbb57e9c96

113a4930 21-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Removed the non-STL version of the code.
* Removed the _PointerList_ definition -- instead include <ObjectList.h>.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30291 a95241bf-73f2-0310-859d-f6bbb57e9c96

28a650e9 07-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Made the WeakReferenceable class templatized. Not really sure yet I like that
better, though :-)
* Also fixed a mixup of the unintuitive argument order of our
atomic_test_and_set(); I guess I will change that sooner or later.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29994 a95241bf-73f2-0310-859d-f6bbb57e9c96

e1fed132 06-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Added a WeakReferenceable implementation, completely untested yet.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29990 a95241bf-73f2-0310-859d-f6bbb57e9c96

f451e14b 12-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added InitCheck() method.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29487 a95241bf-73f2-0310-859d-f6bbb57e9c96

c58463ff 18-Nov-2008 Axel Dörfler <axeld@pinc-software.de>

* Seek() must always fail when the resulting offset would be smaller than 0
- "correcting" the offset to 0 is not what should happen.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28688 a95241bf-73f2-0310-859d-f6bbb57e9c96

1b21be70 16-Nov-2008 Axel Dörfler <axeld@pinc-software.de>

* BBufferIO did not implement Seek() and Position() correctly; it just passed
it to the stream. This caused Read()/Write() to need two syscalls for nothing
(this only caused the actual stream to share the same position with the
BBufferIO, something you just cannot rely on when using buffered I/O).
* Anyway, this reduces the time VirtualBox needs to open some RAW test images
from over 4 minutes to less than 15 seconds...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28662 a95241bf-73f2-0310-859d-f6bbb57e9c96

23f42491 06-Oct-2008 Karsten Heimrich <host.haiku@gmx.de>

* should have been part of r27883

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27892 a95241bf-73f2-0310-859d-f6bbb57e9c96

a4da9c86 05-Oct-2008 Karsten Heimrich <host.haiku@gmx.de>

* fix of by one bug while moving from front to back

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27883 a95241bf-73f2-0310-859d-f6bbb57e9c96

68f40fcc 05-Oct-2008 Karsten Heimrich <host.haiku@gmx.de>

* cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27882 a95241bf-73f2-0310-859d-f6bbb57e9c96

0b559106 23-Sep-2008 Michael Lotz <mmlr@mlotz.ch>

* Only copy over the list content if resizing/allocating the list succeded.
Fixes CID 1268.
* Remove no more correct comment.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27710 a95241bf-73f2-0310-859d-f6bbb57e9c96

f9745144 21-Jul-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

BString::Append(, int32) methods have been broken in r26378. A local
variable "length" shadowed the "length" parameter.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26554 a95241bf-73f2-0310-859d-f6bbb57e9c96

2cbb2916 11-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* _DoAppend() no longer checks the string and the string length, which resulted
in duplicate work/checks. Instead the length is checked in the calling
* operator=(const char*) now checks if the passed pointer is the strings
own data pointer. I think it would have freed the memory before, not
sure though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26378 a95241bf-73f2-0310-859d-f6bbb57e9c96

fe83a987 12-Jun-2008 Rene Gollent <anevilyak@gmail.com>

Remove unneeded header.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25947 a95241bf-73f2-0310-859d-f6bbb57e9c96

0c8bdbaf 12-Jun-2008 Rene Gollent <anevilyak@gmail.com>

Revamp BList somewhat to further optimize the resizing behavior.
We now keep track of a lower bound as to when the list should scale
itself back down. When increasing the list size, we double the current,
with the lower bound set to 1/4 of the current size, not allowing it to
go any smaller than the block size. These combined allow us to do very
cheap tests to see if an operation requires a resize at all, and minimize
how often the list actually needs to be resized, since the difference in upper
and lower bounds prevents bouncing back and forth between a size in the case
of adding/removing an item while close to a boundary. All in all this should
make BList noticably more scalable when doing large numbers of add/remove

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25946 a95241bf-73f2-0310-859d-f6bbb57e9c96

819eb21b 11-Jun-2008 Rene Gollent <anevilyak@gmail.com>

Remove (invalid) TODO note. Rename variable more meaningfully. Remove stray whitespace that crept into previous commit.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25927 a95241bf-73f2-0310-859d-f6bbb57e9c96

34380ac4 10-Jun-2008 Rene Gollent <anevilyak@gmail.com>

Tracked down issue with previous commit. For some reason, modifying the passed in parameter's value directly results in a segfault in registrar, and I cannot see why. Thoughts?

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25920 a95241bf-73f2-0310-859d-f6bbb57e9c96

22aef424 10-Jun-2008 Rene Gollent <anevilyak@gmail.com>

Revert this change until I determine why it now crashes the app_server when it didn't during my tests.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25919 a95241bf-73f2-0310-859d-f6bbb57e9c96

864ace18 10-Jun-2008 Rene Gollent <anevilyak@gmail.com>

Rework BList's Resize() functionality: instead of altering the size of the list a block at a time,
we now double/halve the current size of the list, starting with the constructor blocksize as a baseline.
This has the net effect that when doing large numbers of inserts/removes, the number of resize operations
needed scales logarithmically to the number of operations, which should yield a decent performance
improvement in such cases.

Review welcome. This does not yet affect ticket #2363 that I'm aware of, as I'm currently in the process
of attempting to find a copy of said app to test with.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25916 a95241bf-73f2-0310-859d-f6bbb57e9c96

8e3f5e89 07-May-2008 François Revol <revol@free.fr>

Make the BString& version of SetTo() behave like BeOS, that length < 0 is means "until the end". This makes CopyInto() acting alike too. Note the char * version crashes in BeOS, instead we act like the other version for consistency.
There are many other calls that crash in BeOS when called with invalid args, should we attempt to sanitize them or call debugger() instead ?

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25372 a95241bf-73f2-0310-859d-f6bbb57e9c96

13bbfe42 26-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* validate_instantiation() also needs to add the BPrivate namespace in case
it couldn't find the class on first try. This fixes the problems mentioned
by Shinta as part of bug #2086.
* Got rid of GetNumber() - there is a POSIX function strtoul() for exactly
this purpose.
* demangle_class_name() can now fail.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25179 a95241bf-73f2-0310-859d-f6bbb57e9c96

89eb861a 24-Apr-2008 Axel Dörfler <axeld@pinc-software.de>

* Large cleanup. Removed inconsistent usage of errno in instantiate_object();
instead, it will now use the image_id parameter to store errors in.
* find_instantiation_func() and validate_instantiation() will no longer
overwrite errno with B_OK.
* Made private functions static, and moved them to the top.
* If the class name starts with '_', it will now try to add a BPrivate namespace
in case it could not find the class. This should help with the compatibility
issues Shinta reported (also part of ticket #2086).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25124 a95241bf-73f2-0310-859d-f6bbb57e9c96

0970b97b 22-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Added support_kit_config.h configuration header. ATM it only contains a
setting to force BLockers to be semaphore style. This may help with
debugging deadlocks.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25096 a95241bf-73f2-0310-859d-f6bbb57e9c96

4b832620 10-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

* _Realloc() did not initialize the reference count either.
* _Alloc() can now preserve the original reference count, only _Clone()
still initializes it to 1. As Karsten pointed out, this is necessary to
preserve the "shareable" status of the private data.
* I hope that's finally it. What happened to our testing suite, anyway? :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24355 a95241bf-73f2-0310-859d-f6bbb57e9c96

bf4ddb61 10-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

* As found by Karsten, the reference count was not initialized in
_ReplaceAtPositions(), and _DoCharacterEscape() (we don't need to preserve
it, though, as it must be 1).
* Factored out an _Alloc() method which is now always called when the private
data is allocated. It also takes care of correct initialization (and thus
fixes the above problem).
* This fix finally allows turning on reference counting again, thanks Karsten!
* Minor cleanup, renamed "oldAdr"/"newAdr" to "oldString", resp. "newString".

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24348 a95241bf-73f2-0310-859d-f6bbb57e9c96

7c58a468 10-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

The result of some more proof-reading caused by Stephan's comments:
* _Realloc(), and _Detach[With]() may fail, but that wasn't accounted for
* The Append(), Prepend(), and Insert() char versions all caused their
backends to access invalid data (must use strncpy() instead of memcpy()
* All Append(), Prepend(), and Insert() BString variants used an invalid
check, and would therefore just do nothing in certain situations like this
BString a = "-";
BString b = a;

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24347 a95241bf-73f2-0310-859d-f6bbb57e9c96

688c1426 10-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

* After my last change, _IsShareable() was called on the wrong string in the
copy constructors, effectively turning of references completely.
* Since that caused troubles (NetPositive now crashes when started), I
temporarily disabled references by letting _IsShareable() always return
false until the issue is resolved.
* _FreePrivateData() now sets the fPrivateData member to NULL, and is also
safe to be called when fPrivateData is NULL.
* Removed my comment about the threading problem in _Detach() and _DetachWith()
as that just couldn't happen.
* _Clone() must not use memcpy() as the string pointed to by "data" might not
be as long as "length".
* LockBuffer() now marks a string as unshareable.
* Minor cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24345 a95241bf-73f2-0310-859d-f6bbb57e9c96

a1dac092 08-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

Followed suggestion by Stephan.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24314 a95241bf-73f2-0310-859d-f6bbb57e9c96

002b33b7 08-Mar-2008 Axel Dörfler <axeld@pinc-software.de>

* Fixed a bunch or concurreny bugs and memory leaks of the new reference
string stuff.
* It's still not thread-safe for all usage patterns, though, so we might want
to remove or disable it: if a string is shared between several threads, and
one of those starts to use a reference, all kinds of problems can happen.
* Some cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24312 a95241bf-73f2-0310-859d-f6bbb57e9c96

43361fc8 28-Feb-2008 Stephan Aßmus <superstippi@gmx.de>

* Fixed "missing virtual constructor" warning (which is probably even a
correct warning) for AbstractPointerListHelper. (libbe_build.so)
* I have had problems with implementing virtual functions inline in the
class declaration before, so I implemented the virtual destructor

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24168 a95241bf-73f2-0310-859d-f6bbb57e9c96

576e2bf8 24-Feb-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Patch by Julun: implements a refcounted BString. Thank You!

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24102 a95241bf-73f2-0310-859d-f6bbb57e9c96

7bc5a06b 29-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

* BShelf::_AddReplicant() did not recognize zombies if their object was not
inherited from BView.
* BShelf::_AddReplicant() did not honour the fAllowZombies flag correctly; if
it wasn't allowed, no error message was given.
* Both of these changes fixes the crashing of the Deskbar as described in
bug #555.
* instantiate_object() now also fires a message to the syslog if the object's
image could not been loaded. Some cleanup, no longer resets errno.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22117 a95241bf-73f2-0310-859d-f6bbb57e9c96

0e5fe45f 19-Aug-2007 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed unused DataBuffer class

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22012 a95241bf-73f2-0310-859d-f6bbb57e9c96

a156e74a 12-Aug-2007 Michael Lotz <mmlr@mlotz.ch>

* Changed swap_data() to behave like the R5 version
* Added a todo about unsafe access of the buffer
* Removed some types from is_type_swapped() to exactly mirror R5

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21902 a95241bf-73f2-0310-859d-f6bbb57e9c96

da0f9ae0 02-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added Haiku as host platform supported by the build system ("haiku_host").
Completely untested yet.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21802 a95241bf-73f2-0310-859d-f6bbb57e9c96

2851dbad 31-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

* Moved Referenceable.cpp to src/kits/support (private libbe API), and its header to
* Made AddReference() and CountReferences() inlines.
* The registrar is now using the private Referenceable version in libbe.so.
* Minor cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21767 a95241bf-73f2-0310-859d-f6bbb57e9c96

618aaaed 19-Apr-2007 Jérôme Duval <korli@users.berlios.de>

added a copyright

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20763 a95241bf-73f2-0310-859d-f6bbb57e9c96

31ebfe61 16-Apr-2007 Jérôme Duval <korli@users.berlios.de>

added default sound events
implemented system_beep() by sending an event to the media addon server

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20728 a95241bf-73f2-0310-859d-f6bbb57e9c96

33c487a4 15-Apr-2007 Jérôme Duval <korli@users.berlios.de>

implemented add_system_beep_event()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20711 a95241bf-73f2-0310-859d-f6bbb57e9c96

a36e40dc 02-Apr-2007 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Strip API documentation from these files: they are in separate dox files now.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20510 a95241bf-73f2-0310-859d-f6bbb57e9c96

087882c2 26-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

* Rewrote headers as necessary; only Errors.h and Debug.h still originate from a Be header now;
feel free to change that ;-)
* Cleaned up existing headers.
* Coding style guide update to BBufferIO (renamed m_* members to f*).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19972 a95241bf-73f2-0310-859d-f6bbb57e9c96

43cca04a 06-Jan-2007 Axel Dörfler <axeld@pinc-software.de>


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19731 a95241bf-73f2-0310-859d-f6bbb57e9c96

5b506de7 01-Jan-2007 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Remove strange character... Apparently I left some junk.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19670 a95241bf-73f2-0310-859d-f6bbb57e9c96

da738868 01-Jan-2007 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Fixed a bug where BString::FindLast(char,int32) might be fed an offset that was beyond the Length of the string.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19669 a95241bf-73f2-0310-859d-f6bbb57e9c96

1ea1a6b4 01-Jan-2007 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Remove all the user API comments. There are still some superfluous comments (the name of every function before every function), but the person that coded this class should decide which are superfluous and which aren't.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19668 a95241bf-73f2-0310-859d-f6bbb57e9c96

511b265e 23-Oct-2006 Stefano Ceccherini <stefano.ceccherini@gmail.com>

commented out annoying debug messages

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19095 a95241bf-73f2-0310-859d-f6bbb57e9c96

d479db55 28-Sep-2006 Jérôme Duval <korli@users.berlios.de>

added mangling for gcc4, deskbar replicants are now loaded correctly

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18975 a95241bf-73f2-0310-859d-f6bbb57e9c96

e2ba090e 25-Sep-2006 Jérôme Duval <korli@users.berlios.de>

fixed some gcc4 warnings

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18935 a95241bf-73f2-0310-859d-f6bbb57e9c96

9ecf9d1c 26-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Merge from layout management branch.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18649 a95241bf-73f2-0310-859d-f6bbb57e9c96

64f10d7d 29-Jun-2006 Axel Dörfler <axeld@pinc-software.de>


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17981 a95241bf-73f2-0310-859d-f6bbb57e9c96

d274c6a5 15-Jun-2006 Axel Dörfler <axeld@pinc-software.de>

Added non-const form of BString::operator<<(BString&) for backwards compatibility
(see bug #418).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17851 a95241bf-73f2-0310-859d-f6bbb57e9c96

8cd531a9 26-May-2006 Stephan Aßmus <superstippi@gmx.de>

As Axel correctly pointed out, but even Ingo overlooked, we need
to export the previously virtual slot to be binary compatible...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17594 a95241bf-73f2-0310-859d-f6bbb57e9c96

39c991c0 26-May-2006 Stephan Aßmus <superstippi@gmx.de>

Added BPositionIO::GetSize() and implemented it by means of Seek() and
Position(). This used up a virtual slot of BPositionIO. GetSize() needed to be
implemented in BFile, which uses the BStatable version as before. This should
hopefully be binary compatible. The only problem could be in source
compatibility when there are classes inheriting from BPositionIO implementing
their own GetSize().

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17593 a95241bf-73f2-0310-859d-f6bbb57e9c96

e6a6424e 13-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

* Added a work-around to _Alloc() to allow R5 NetPositive to work on Haiku;
dunno if we want to keep this, though.
* Improved some methods by no longer calling strlen() more than once.
* We're now using snprintf() instead of sprintf() in the << operators to
make them more secure (even though the string lengths should be long
* Improved << operators by taking the return (the resulting string length) of
snprintf() into account.
* Replaced calls to _GrowBy() with a negative argument with calls to
_Alloc() which actually safes some computation.
* Cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16783 a95241bf-73f2-0310-859d-f6bbb57e9c96

94a055c1 05-Mar-2006 Oliver Tappe <zooey@hirschkaefer.de>

* fixed broken FindLast() taking a char and an offset
* added two more tests that exhibit the (now fixed) problem in FindLast()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16586 a95241bf-73f2-0310-859d-f6bbb57e9c96

5232a619 20-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed build, sorry again - sure, with a commit that big, I just had to mess it up :/

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15054 a95241bf-73f2-0310-859d-f6bbb57e9c96

758b1d0e 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixes that make Haiku build with gcc 4. Mainly out of the following
* Missing includes (like <stdlib.h> and <string.h>).
* Linking against $(TARGET_LIBSTDC++) instead of libstdc++.r4.so.
* Local variables shadowing parameters.
* Default parameters in function definitions (as opposed to function
* All C++ stuff (nothrow, map, set, vector, min, max,...) must be imported
explicitly from the std:: namespace now.
* "new (sometype)[...]" must read "new sometype[...]", even if sometype is
something like "const char *".
* __FUNCTION__ is no longer a string literal (but a string expression), i.e.
'printf(__FUNCTION__ ": ...\n")' is invalid code.
* A type cast results in a non-lvalue. E.g. "(char *)buffer += bytes"
is an invalid expression.
* "friend class SomeClass" only works when SomeClass is known before.
Otherwise the an inner class with that name is considered as friend.
gcc 4 is much pickier about scopes.
* gcc 4 is generally stricter with respect to type conversions in C.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14878 a95241bf-73f2-0310-859d-f6bbb57e9c96

ca9e5772 07-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Reintroduced third LinkAgainst parameter <mapLibs>, defaulting to true.
Library names are now mapped for all targets but "host" (not only for
"haiku") -- added one more level of indirection to achieve that.
* Renamed build/HaikuBuildCompatibility.h to BeOSBuildCompatibility.h
(auto-included when compiling something that uses the Be API for platform
"host" on anon-BeOS platform), and introduced build/HaikuBuildCompatibility.h,
which can be included when compiling something that can be built for both,
Haiku and BeOS compatible platforms.
* Introduced libhaikucompat.a, a library that adds a few functions existing
under Haiku, but not under BeOS.
* New rule AddSubDirSupportedPlatforms.
* Renamed libopenbeos.so to libbe_haiku.so.
* Introduced new target platform "libbe_test", which is basically equivalent
to a BeOS compatible host platform target, with the exception, that instead
of the host platform's libbe.so a special build of Haiku's libbe.so
(libbe_haiku.so (formerly known as libopenbeos.so)) is used. Furthermore
Haiku's public app, interface, storage, and support kit headers are used
when compiling. This replaces the less nice way in which the test app server
and applications for this test environment were built.
When building for platform "libbe_test", the library name "be" is
autotranslated to "libbe_haiku.so". Thus most applications don't need
special fiddling when them building them for the app server test environment;
usually an "AddSubDirSupportedPlatforms libbe_test ;" will suffice.
* Reduced the dependencies of <syscalls.h> and fixed problems caused by this
(e.g. source files not including the needed headers directly).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14749 a95241bf-73f2-0310-859d-f6bbb57e9c96

fd8b9c0d 30-Oct-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Misc style changes

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14575 a95241bf-73f2-0310-859d-f6bbb57e9c96

338b8dc3 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96

b6389f31 20-Sep-2005 Jérôme Duval <korli@users.berlios.de>

fix BStopWatch::Resume()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14204 a95241bf-73f2-0310-859d-f6bbb57e9c96

49b4f78f 07-Aug-2005 Michael Lotz <mmlr@mlotz.ch>

Minor correction.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13913 a95241bf-73f2-0310-859d-f6bbb57e9c96

8c67c59b 05-Aug-2005 Philippe Houdoin <philippe.houdoin@gmail.com>

Removed libhaiku.a from build, as it was only used by (now defunct) experimental StyledEdit+ app.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13906 a95241bf-73f2-0310-859d-f6bbb57e9c96

459a7cfc 05-Aug-2005 Philippe Houdoin <philippe.houdoin@gmail.com>

Removed obsoleted .src includes files.
Removed Interface's kit BTextView Jamfile, as it's build right from src/kits/interface/Jamfile now.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13902 a95241bf-73f2-0310-859d-f6bbb57e9c96

cb5da7de 05-Aug-2005 Philippe Houdoin <philippe.houdoin@gmail.com>

Cleanup libbe.so build system, using MergeObject power:
a) Make main Jamfile more easier to understand to new (and old even) developers.
Currently it looks a little too messy compared to usual Haiku's jamfiles.
b) Get ride of app.src, interface.src, storage.src and support.src includes files.
c) Move each kit objects files built back to their respective
objects/x86.R1/kits/{app|interface|storage|support} location.
d) Move private headers and source search hints back to each respective kit
Jamfiles. Most of them, at least.

{app|interface|storage|support}.src files effective deletion will come soon.
Hope I didn't break all *again* :-\

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13901 a95241bf-73f2-0310-859d-f6bbb57e9c96

8e326c9c 25-Jul-2005 Axel Dörfler <axeld@pinc-software.de>

Some style changes I forgot to commit.
Also, BLocker now accepts NULL as a name and won't crash anymore in that case
("some BLocker" is then chosen as name).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13826 a95241bf-73f2-0310-859d-f6bbb57e9c96

8c123e6d 07-Jul-2005 Michael Lotz <mmlr@mlotz.ch>

Fixed build of StyledEdit for target r5. What's the matter with the second StyledEdit in there? Also added BString back to libhaiku.a.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13530 a95241bf-73f2-0310-859d-f6bbb57e9c96

c728a74e 06-Jul-2005 Michael Lotz <mmlr@mlotz.ch>

Cleanup. We don't need string_helper anymore as it's only function (strcasestr) is in libroot. It was a temporary solution more than two years ago.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13514 a95241bf-73f2-0310-859d-f6bbb57e9c96

d0164ea3 20-Jun-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Small style changes, just to improve my commit stats :)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13214 a95241bf-73f2-0310-859d-f6bbb57e9c96

383050e5 06-Jun-2005 DarkWyrm <darkwyrm@gmail.com>

Minor tweaks to be able to declare this one done. :)
Removal of the obsolete OpenBeOS namespace
Added header

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12963 a95241bf-73f2-0310-859d-f6bbb57e9c96

4b8aafea 25-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

BMessenger has no friends besides Private anymore.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11023 a95241bf-73f2-0310-859d-f6bbb57e9c96

d0733791 18-Jan-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed MallocIO.cpp as it wasn't being built, and BMallocIO implementation is in DataIO.cpp.
We might want to split them again, but keeping that old file around was counterproductive.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10824 a95241bf-73f2-0310-859d-f6bbb57e9c96

cd6bfb01 15-Sep-2004 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Alternative implementation that uses STL.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8977 a95241bf-73f2-0310-859d-f6bbb57e9c96

e4265bfb 07-Sep-2004 ejakowatz <ejakowatz@nowhere.fake>

Modified BDataBuffer's copy constructor to let the user specify whether to create a copy of the buffer or just a reference. Also changed all void* params to be const.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8888 a95241bf-73f2-0310-859d-f6bbb57e9c96

cbe8d2b0 06-Sep-2004 Axel Dörfler <axeld@pinc-software.de>

Applied some parts of our style guide.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8864 a95241bf-73f2-0310-859d-f6bbb57e9c96

4bccccda 06-Sep-2004 Axel Dörfler <axeld@pinc-software.de>

Fixed two wrong cast types which broke the build over here.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8863 a95241bf-73f2-0310-859d-f6bbb57e9c96

ad867a27 04-Sep-2004 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Implemented quick sort. Refactored source code.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8839 a95241bf-73f2-0310-859d-f6bbb57e9c96

38ded28e 02-Sep-2004 Michael Pfeiffer <michael.w.pfeiffer@gmail.com>

Fixed bugs.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8803 a95241bf-73f2-0310-859d-f6bbb57e9c96

4826cc5f 31-Aug-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added a (mostly not tested) _PointerList_ class. Please (Michael Pfeiffer or Ingo, whoever comes here first ) have a look at it :)
Note that I needed to write my own BSearch() because the compare functions used by _PointerList_ wants items as arguments, while the C bsearch() wants pointers to items as arguments.
The same applies to qsort(), though it's not been written yet.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8744 a95241bf-73f2-0310-859d-f6bbb57e9c96

1cd30f5d 16-Jul-2004 shatty <shatty@nowhere.fake>

BString is the first recipient of libhaiku status

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8413 a95241bf-73f2-0310-859d-f6bbb57e9c96

ba8e3cf1 04-Jul-2004 Axel Dörfler <axeld@pinc-software.de>

Now exports B_EMPTY_STRING - maybe there is a better place for it, like
SupportDefs.cpp. Feel free to move it to a better place.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8302 a95241bf-73f2-0310-859d-f6bbb57e9c96

63b2f72c 27-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

Added missing beep functions - they are not yet implemented, though.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8192 a95241bf-73f2-0310-859d-f6bbb57e9c96

47550b1e 27-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

swap_data() now checks its argument before it decides if there is anything to
do at all; it will now also return B_BAD_VALUE for types where it doesn't need
to do anything (i.e. 8 bit types).

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8188 a95241bf-73f2-0310-859d-f6bbb57e9c96

2397827a 26-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

Implemented swap_data() and is_type_swapped() - tests follow soon.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8177 a95241bf-73f2-0310-859d-f6bbb57e9c96

20b628d3 17-Jun-2004 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Some cleanups for BStopWatch. Added the check for B_INTERRUPTED to the semaphore acquisition in BLocker

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8019 a95241bf-73f2-0310-859d-f6bbb57e9c96

76441bab 15-May-2004 DarkWyrm <darkwyrm@gmail.com>

Add header
Minor tweaks to BClipboard

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7587 a95241bf-73f2-0310-859d-f6bbb57e9c96

cd58ac99 16-Feb-2004 Axel Dörfler <axeld@pinc-software.de>

Minitiure optimizations for BString: eliminated a superfluous variable,
and removed the "newData" calculation, since "dataLen" already contained
the same value.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6613 a95241bf-73f2-0310-859d-f6bbb57e9c96

81d54f9a 29-Dec-2003 shatty <shatty@nowhere.fake>

moved character set and text encoding related files to current/src/kits/textencoding

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5811 a95241bf-73f2-0310-859d-f6bbb57e9c96

5480b459 13-Nov-2003 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Another patch from Oliver Tappe: BString behaves better when the user supplies out-of bounds values in Insert(), Remove(), etc.
Code is refactored, and it fully complies with our guidelines.
Tests have been updated too (hint: try the replace tests with R5 and our implementation...)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5348 a95241bf-73f2-0310-859d-f6bbb57e9c96

16ce9822 08-Sep-2003 beveloper <beveloper@nowhere.fake>

better handling of low memory situations inside constructor

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4568 a95241bf-73f2-0310-859d-f6bbb57e9c96

340eed61 06-Sep-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved definition of _FreeBlock to the source file and enabled its "magic{1,2}" fields on debug only.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4525 a95241bf-73f2-0310-859d-f6bbb57e9c96

1facca21 07-Sep-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added BBlockCache to the build.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4524 a95241bf-73f2-0310-859d-f6bbb57e9c96

369eef13 07-Sep-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Check in per Jeremy Rand: Adjusted implementation to behave like that in R5 -- no more tracking of excess blocks.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4523 a95241bf-73f2-0310-859d-f6bbb57e9c96

6cb536dd 04-Sep-2003 haydentech <haydentech@nowhere.fake>

malloc.h is obsolete, use stdlib.h

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4508 a95241bf-73f2-0310-859d-f6bbb57e9c96

a54e42d7 30-Aug-2003 beveloper <beveloper@nowhere.fake>

removed debugger call,
added name to BLocker

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4416 a95241bf-73f2-0310-859d-f6bbb57e9c96

b93355ab 28-Aug-2003 beveloper <beveloper@nowhere.fake>

it was missing these two functions...

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4397 a95241bf-73f2-0310-859d-f6bbb57e9c96

6ecb8ce9 28-Aug-2003 beveloper <beveloper@nowhere.fake>

removed stupid type cast

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4395 a95241bf-73f2-0310-859d-f6bbb57e9c96

ad159f43 28-Aug-2003 beveloper <beveloper@nowhere.fake>

cleaned up meaning of first constructor parameter

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4394 a95241bf-73f2-0310-859d-f6bbb57e9c96

188ad70f 28-Aug-2003 beveloper <beveloper@nowhere.fake>

Replaced the broken BBufferCache implementation.
According to the BeBook, it is NOT allowed to allocate one large
pool, instead the memory blocks must be allocated individually.
To achieve O(1) for both Save() and Get() function, only one list
of free blocks is maintained.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4392 a95241bf-73f2-0310-859d-f6bbb57e9c96

7c4d270b 26-Aug-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Check in per Jack Burton: Fixed invalid delete[] in destructor.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4391 a95241bf-73f2-0310-859d-f6bbb57e9c96

e9e500cb 25-Aug-2003 ejakowatz <ejakowatz@nowhere.fake>

Minor tweak to BHandler::UnlockLooper()
Added calls to _init_message_(), _delete_message_(), and
_msg_cache_cleanup() to InitTerminateLibBe.cpp
Finished first implementation of BMessage::SendReply(), BMessage::_send_(),
and BMessage::_send_message()
Add BMessage to app.src, removed BBlockCache from support.src.
New BMessage::Private class has functions for twiddling BMessage internals

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4371 a95241bf-73f2-0310-859d-f6bbb57e9c96

884d2b83 13-Aug-2003 shatty <shatty@nowhere.fake>

error protection for Get functions

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4278 a95241bf-73f2-0310-859d-f6bbb57e9c96

5b7ea503 12-Aug-2003 shatty <shatty@nowhere.fake>

refine the error handling behavior. note: we depart from the bebook specification for returning B_ERROR when no characters are converted. we do this in exactly one situation: when there are no bytes in the input. this behavior is the behavior given by the R5 libs themselves. not having this behavior caused an error in our stylededit as well. stylededit has been fixed to not exercise this functionality. also added in the two most popular chinese encodings for my own evil purposes. GB18030 support is required to legally sell an operating system in mainland china as well. GB18030 support encompasses GBK and GB2312, additionally.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4276 a95241bf-73f2-0310-859d-f6bbb57e9c96

17e6de7a 03-Aug-2003 shadow303 <shadow303@nowhere.fake>

gcc 3 fixes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4227 a95241bf-73f2-0310-859d-f6bbb57e9c96

28f10fca 02-Aug-2003 shatty <shatty@nowhere.fake>

no const for now

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4207 a95241bf-73f2-0310-859d-f6bbb57e9c96

fb2e95f4 31-Jul-2003 shatty <shatty@nowhere.fake>

dunno when beos changes the state, but it seems to leave at 0 for a while so I am going to have it be consistent that way

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4163 a95241bf-73f2-0310-859d-f6bbb57e9c96

d4d7d739 31-Jul-2003 shatty <shatty@nowhere.fake>

remove debugging print things

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4162 a95241bf-73f2-0310-859d-f6bbb57e9c96

9c5fdc6c 31-Jul-2003 shatty <shatty@nowhere.fake>

new and better working implementations for conversion functions, including better abstraction

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4161 a95241bf-73f2-0310-859d-f6bbb57e9c96

5f410263 30-Jul-2003 shatty <shatty@nowhere.fake>

added iconv_close to free resources and made a new input_buffer_t typedef to ease switching iconv implementations

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4150 a95241bf-73f2-0310-859d-f6bbb57e9c96

ec4fc3af 30-Jul-2003 shatty <shatty@nowhere.fake>

fixed the 14th encoding, which is not FIXED japanese but rather JIS0208, yay!

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4149 a95241bf-73f2-0310-859d-f6bbb57e9c96

1e4b5169 30-Jul-2003 shatty <shatty@nowhere.fake>

need libiconv.so for new libtextencodings.so to work

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4148 a95241bf-73f2-0310-859d-f6bbb57e9c96

b9de54c8 30-Jul-2003 shatty <shatty@nowhere.fake>

written to use iconv.h

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4146 a95241bf-73f2-0310-859d-f6bbb57e9c96

fdab93a5 27-Jul-2003 shatty <shatty@nowhere.fake>

added checking again MIME name

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4111 a95241bf-73f2-0310-859d-f6bbb57e9c96

312e206d 26-Jul-2003 shatty <shatty@nowhere.fake>

IANA information on character sets

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4099 a95241bf-73f2-0310-859d-f6bbb57e9c96

172722fe 26-Jul-2003 shatty <shatty@nowhere.fake>

added default constructor, which just happens to init to UTF-8. do not count on this feature. :-)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4096 a95241bf-73f2-0310-859d-f6bbb57e9c96

dbfb944d 26-Jul-2003 shatty <shatty@nowhere.fake>

added all the remaining R5 text encodings

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4095 a95241bf-73f2-0310-859d-f6bbb57e9c96

a4b6e788 26-Jul-2003 shatty <shatty@nowhere.fake>

build libtextencoding.so with new stubs and character set support

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4091 a95241bf-73f2-0310-859d-f6bbb57e9c96

4e7a2f6c 26-Jul-2003 shatty <shatty@nowhere.fake>

utf8 conversions file with stub implementations of convert_to_utf8 and convert_from_utf8

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4090 a95241bf-73f2-0310-859d-f6bbb57e9c96

2534c14e 26-Jul-2003 shatty <shatty@nowhere.fake>

initialize global character set array

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4089 a95241bf-73f2-0310-859d-f6bbb57e9c96

05c932b5 26-Jul-2003 shatty <shatty@nowhere.fake>

add character set support

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4088 a95241bf-73f2-0310-859d-f6bbb57e9c96

ac3bb782 04-Jul-2003 shadow303 <shadow303@nowhere.fake>

gcc 3 fix

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3846 a95241bf-73f2-0310-859d-f6bbb57e9c96

d2a9d5e5 03-Jun-2003 haydentech <haydentech@nowhere.fake>

Namespace- and gcc3-related fixes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3407 a95241bf-73f2-0310-859d-f6bbb57e9c96

2a515371 23-May-2003 ejakowatz <ejakowatz@nowhere.fake>

Minor tweaks.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3301 a95241bf-73f2-0310-859d-f6bbb57e9c96

9abc4d2d 23-May-2003 ejakowatz <ejakowatz@nowhere.fake>

Added params for specifying whether to copy the buffer on construction.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3294 a95241bf-73f2-0310-859d-f6bbb57e9c96

b1055b4c 19-Mar-2003 ejakowatz <ejakowatz@nowhere.fake>

This is all the code for the backing store for BMessage (BMessageBody &
BMessageField) for the "template madness" version. Also included is
BDataBuffer which is a little reference counting raw data container.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2955 a95241bf-73f2-0310-859d-f6bbb57e9c96

5c905a2f 15-Feb-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added missing newline at end of file.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2720 a95241bf-73f2-0310-859d-f6bbb57e9c96

73195723 15-Feb-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Re-added BString to the built.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2719 a95241bf-73f2-0310-859d-f6bbb57e9c96

bd68efa6 14-Feb-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed BString from the build. It is broken.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2711 a95241bf-73f2-0310-859d-f6bbb57e9c96

1783edd5 11-Feb-2003 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added a big patch from Oliver Tappe. BString now is much faster when it has to deal with very long strings. Thanks Oliver. Fixed the (in)famous LockBuffer(0)->UnlockBuffer(-1) R5 bug.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2686 a95241bf-73f2-0310-859d-f6bbb57e9c96

2d4125b7 22-Jan-2003 Stefano Ceccherini <stefano.ceccherini@gmail.com>

this should be the definitive (excluded bugfixes) implementation of BBufferIO. Buffered write should work fine, as buffered read did.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2530 a95241bf-73f2-0310-859d-f6bbb57e9c96

51ee67dc 16-Jan-2003 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed an obvious bug, simplified a bit the code

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2470 a95241bf-73f2-0310-859d-f6bbb57e9c96

089f7deb 16-Jan-2003 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented buffered read in BBufferIO class, and added it to the build.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2469 a95241bf-73f2-0310-859d-f6bbb57e9c96

a8dee23e 10-Jan-2003 Stefano Ceccherini <stefano.ceccherini@gmail.com>

A fix for a Replace function, some checks which makes the code
more robust, some style changes, some more comments.
Started to document the class with Doxygen comments.
(I made too many changes to keep the file local :)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2399 a95241bf-73f2-0310-859d-f6bbb57e9c96

005069f4 02-Jan-2003 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Changed a "" include to a <> one. Some cosmetic changes.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2347 a95241bf-73f2-0310-859d-f6bbb57e9c96

a3d1f07f 10-Dec-2002 François Revol <revol@free.fr>

Fix by Jack Burton

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2217 a95241bf-73f2-0310-859d-f6bbb57e9c96

d19f7b5d 10-Dec-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed the behaviour of DoForEach() functions (from Isaac Yonemoto implementation)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2216 a95241bf-73f2-0310-859d-f6bbb57e9c96

9c81f09d 06-Dec-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented some missing functions (MoveItems is still lacking), added the copyright header

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2171 a95241bf-73f2-0310-859d-f6bbb57e9c96

a42a3ab5 28-Nov-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

A skeleton for the BBufferIO class.
(Since we have a header, I think we should also have an implementation...

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2100 a95241bf-73f2-0310-859d-f6bbb57e9c96

d546b00e 17-Nov-2002 ejakowatz <ejakowatz@nowhere.fake>

Undid the oh-so-1337 utf_char_len "optimization" (which is not only slower,
but doesn't handle invalid UTF-8 strings correctly) in CountChars().

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2002 a95241bf-73f2-0310-859d-f6bbb57e9c96

202ed890 14-Nov-2002 ejakowatz <ejakowatz@nowhere.fake>

Some bug fixing on BString and it's unit tests. Should now pass all
current tests! Now included in the build.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1946 a95241bf-73f2-0310-859d-f6bbb57e9c96

5f6935dc 14-Nov-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed the build again. It seems that BGA Utf8_char_lenght() function really works :)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1939 a95241bf-73f2-0310-859d-f6bbb57e9c96

8f1a4e7f 14-Nov-2002 ejakowatz <ejakowatz@nowhere.fake>

Implemented BGA's UTF-8 char len suggestion in UTF8.h and used it in

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1932 a95241bf-73f2-0310-859d-f6bbb57e9c96

e0db3523 11-Nov-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Some style changes, some bugfixes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1903 a95241bf-73f2-0310-859d-f6bbb57e9c96

bff4272d 09-Nov-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed ReplaceSet().

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1889 a95241bf-73f2-0310-859d-f6bbb57e9c96

8d106184 07-Nov-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Some cleanups (more to come)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1871 a95241bf-73f2-0310-859d-f6bbb57e9c96

82e052e5 05-Nov-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed BString so it passes all the committed tests

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1854 a95241bf-73f2-0310-859d-f6bbb57e9c96

f68e12e5 29-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Tests are a developer's best friends :)) Fixed an incorrect implementation of the private function _FindAfter.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1762 a95241bf-73f2-0310-859d-f6bbb57e9c96

d5d5aec4 29-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Adding DataIO classes to the build.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1753 a95241bf-73f2-0310-859d-f6bbb57e9c96

ba3487e3 28-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed a typing bug to make it compile again

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1751 a95241bf-73f2-0310-859d-f6bbb57e9c96

e0060f3f 28-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented the last function (ReplaceSet()). Now it's just a matter
of doing tests for the remaining functions.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1734 a95241bf-73f2-0310-859d-f6bbb57e9c96

5123fbe5 28-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added the correct file name to the copyright notice

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1732 a95241bf-73f2-0310-859d-f6bbb57e9c96

c109ab72 28-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Style changes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1731 a95241bf-73f2-0310-859d-f6bbb57e9c96

8109fda8 23-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Some optimizations in FindFirst functions

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1633 a95241bf-73f2-0310-859d-f6bbb57e9c96

eae06be4 21-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Er... it seems I found some time to work on this :)))
Added the last two missing FindLast() functions

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1584 a95241bf-73f2-0310-859d-f6bbb57e9c96

21b4758c 15-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Some fixes, added the missing compare operators

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1532 a95241bf-73f2-0310-859d-f6bbb57e9c96

73d1e1fe 12-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixes for bugs exposed by the tests

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1488 a95241bf-73f2-0310-859d-f6bbb57e9c96

9a125bf5 11-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Some fixes, added the missing operator[], switched to BeOS debug macros,
Implemented the missing Replace functions. Just ReplaceSet is missing
(tests coming)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1483 a95241bf-73f2-0310-859d-f6bbb57e9c96

294bea18 07-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed a useless #include

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1430 a95241bf-73f2-0310-859d-f6bbb57e9c96

979b68a7 06-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed a stupid bug in BString::CharacterEscape() and committed the correct version of DataIO.cpp (the former was an incorrect version)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1429 a95241bf-73f2-0310-859d-f6bbb57e9c96

fde69fce 07-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed a bug which crashed the BResource tests (sorry Ingo)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1428 a95241bf-73f2-0310-859d-f6bbb57e9c96

5ecdf470 06-Oct-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed DataIO.cpp from the build. BMallocIO is buggy and crashes BResources.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1408 a95241bf-73f2-0310-859d-f6bbb57e9c96

a971d340 06-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added Escaping/Deescaping. Fixed a bug in Inserting methods

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1405 a95241bf-73f2-0310-859d-f6bbb57e9c96

16444b39 03-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added CapitalizeEachWord() (ugly implementation, maybe, but it works). This version passes all checked-in tests

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1357 a95241bf-73f2-0310-859d-f6bbb57e9c96

d9e38b87 01-Oct-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More functions, more bug fixes.
Just Escaping/Deescaping and some Replacing functions missing

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1336 a95241bf-73f2-0310-859d-f6bbb57e9c96

53fd1e70 30-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More BString functions. Constructors, CountChars() and operators "=" and "+=" are tested with cppunit and work fine.
Added string_helper.cpp and .h to compile String.cpp correctly. Those will be removed as soon as we have our working libc.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1313 a95241bf-73f2-0310-859d-f6bbb57e9c96

3e8f4f3d 27-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More bugs fixed.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1210 a95241bf-73f2-0310-859d-f6bbb57e9c96

39be953e 26-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed a stupid typing bug, implemented a pair of other functions

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1194 a95241bf-73f2-0310-859d-f6bbb57e9c96

7c64b6d7 26-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Implemented format-appending operators, more optimizations and bugfixes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1191 a95241bf-73f2-0310-859d-f6bbb57e9c96

c9ea1583 24-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Write() Returns B_NO_MEMORY if it cant allocate memory
iVS: ----------------------------------------------------------------------

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1162 a95241bf-73f2-0310-859d-f6bbb57e9c96

0c444b42 24-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Changed the way WriteAt() works, and fixed a small bug in SetSize()

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1157 a95241bf-73f2-0310-859d-f6bbb57e9c96

893d12fc 23-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Lots of bug fixes and code semplification

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1130 a95241bf-73f2-0310-859d-f6bbb57e9c96

bbe7fb54 22-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Removed a parenthesis which had jumped in involuntarily

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1128 a95241bf-73f2-0310-859d-f6bbb57e9c96

c505627f 23-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Switch to c++ type casts, some cleanups.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1127 a95241bf-73f2-0310-859d-f6bbb57e9c96

0155e3bd 23-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Some small optimizations

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1126 a95241bf-73f2-0310-859d-f6bbb57e9c96

b5e2aa35 18-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Revert to the correct support.src

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1082 a95241bf-73f2-0310-859d-f6bbb57e9c96

2ffca36a 17-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed a nasty bug in Append functions. A quick test with BeMamER shows that my BString implementation begin to work :)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1081 a95241bf-73f2-0310-859d-f6bbb57e9c96

142126d6 15-Sep-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Commented out BString, for it is buggy.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1047 a95241bf-73f2-0310-859d-f6bbb57e9c96

070e0673 11-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Some new methods (Removing), some bug fixes, some optimisations.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1018 a95241bf-73f2-0310-859d-f6bbb57e9c96

8f86fcdc 10-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Some bug fixes

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1008 a95241bf-73f2-0310-859d-f6bbb57e9c96

7c830dc4 09-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

More functions and bug fixes, and lot of code from Marc Flerackers

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1001 a95241bf-73f2-0310-859d-f6bbb57e9c96

9a46cf2d 07-Sep-2002 ejakowatz <ejakowatz@nowhere.fake>

BMallocIO's implementation has been moved from MallocIO.cpp (which is being
left for the time being) to DataIO.cpp. Updated support.src to remove
MallocIO.cpp from the build list to prevent "already defined" errors.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@993 a95241bf-73f2-0310-859d-f6bbb57e9c96

9a82280a 06-Sep-2002 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Merged MallocIO.cpp with DataIO.cpp, some code refactoring,
and let a first, basic BString implementetation enter the game

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@988 a95241bf-73f2-0310-859d-f6bbb57e9c96

9078d476 28-Aug-2002 ejakowatz <ejakowatz@nowhere.fake>

Added Jack Burton's DataIO-related stuff and cleaned things up a bit.
Several files managed to get left out of the build process; changes to
support.src fixed that.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@930 a95241bf-73f2-0310-859d-f6bbb57e9c96

ff1ade6b 21-Aug-2002 ejakowatz <ejakowatz@nowhere.fake>

More tests and fixes for bugs exposed by them. Also removed spurious
instantiation of BRoster from BArchivable, line 323, as per Tyler's
mention. =)

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@852 a95241bf-73f2-0310-859d-f6bbb57e9c96

e75560e6 24-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

Initial checkin.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@433 a95241bf-73f2-0310-859d-f6bbb57e9c96

98602e04 09-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Adjusted to the new tree structure, though currently (?) not needed.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@19 a95241bf-73f2-0310-859d-f6bbb57e9c96

52a38012 08-Jul-2002 ejakowatz <ejakowatz@nowhere.fake>

It is accomplished ...

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96