* refactored private/mutable stuff out of LocaleRoster into MutableLocaleRoster
* moved management of Locale/Time settings file and broadcasting of any changes
out of preflets and into MutableLocaleRoster
* added proper sorting to the listviews of the Locale preflet
* the Time preflet no longer overlaps long timezone names into the actual time
* several fixes with respect to leaking ICU objects, esp. in BCountry
* the locale roster no longer passes out references to its own BCountry object,
but uses copies, instead - this makes locking superfluous, as the clients'
BCountry objects can no longer be changed by the setting a new default
country in the locale roster
* removed pretty useless POSIX-style symbol fetching from BCountry - if we
need that at all, it should live in the dedicated formatter classes
* adjusted readonlybootprompt, dstcheck and Deskbar to the changed Locale API
* refactored existing Time-formatter into TimeUnitFormat and DurationFormat
(the latter of which is now used by AboutSystem)
* added stubs for Date, DateTime and Time formatters
* lots of coding style fixes throughout the Locale Kit and the Locale and Time
preflets
This will probably break most external apps making use of the Locale Kit - it
does break WebPositive.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37831 a95241bf-73f2-0310-859d-f6bbb57e9c96
state of things for all preflets to the EnableWerror
declarations
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37814 a95241bf-73f2-0310-859d-f6bbb57e9c96
* basically rewrote TimeZone to sport a nicer to use interface
* adjusted all users of TimeZone accordingly
* changed TZDisplay to show the Date next to the label, in
order to avoid that long timezone names draw all over it
* the timezone listview is now properly sorted according
to the current language (using BCollator)
* fixed a couple of bugs (overflows, etc.) that caused
incorrect GMT offsets to be used during computations
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37813 a95241bf-73f2-0310-859d-f6bbb57e9c96
warnings and incorporate some of the ICU-patches we had in our repo before
we upgraded to 4.4.1
* fixed remaining warnings when building locale kit
* activated EnableWerror for locale kit
* added 'Unicode' license, which is the second license in use by ICU
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37763 a95241bf-73f2-0310-859d-f6bbb57e9c96
B_TRANSLATE-macros when running collectcatkeys, simplifying the regex a lot
* added B_TRANSLATE_NOCOLLECT...-macros for the case where a non-literal
string shall be translated, but not picked up by collectcatkeys
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37746 a95241bf-73f2-0310-859d-f6bbb57e9c96
* reset errno to 0 if it has been set during execution of any ICU method
(which doesn't set errno itself, but may invoke system functions that do)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37736 a95241bf-73f2-0310-859d-f6bbb57e9c96
* support invocation of ctype/wctype macros with EOF/WEOF (-1), which would
access more or less random memory before - I don't know why this worked
more or less reliably for the POSIX locale, but it didn't for any other
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37730 a95241bf-73f2-0310-859d-f6bbb57e9c96
* made locale build tools shut up about anything except warnings or errors
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37723 a95241bf-73f2-0310-859d-f6bbb57e9c96
* uncommented fwscanf() in wchar.h to make it available
* imported wcsftime() from FreeBSD-8 (which just wraps strftime()), so that we
not only declare it, but provide an implementation, too
As a result, the next build of gcc4 should be able to detect full support for wchar_t and in turn activate wchar_t-based template types (like std::wstring).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37720 a95241bf-73f2-0310-859d-f6bbb57e9c96
then fails to build them because of wcsftime() missing
Needs more investigation ...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37674 a95241bf-73f2-0310-859d-f6bbb57e9c96
* uncommented fwscanf() in wchar.h to make it available
As a result, the next build of gcc4 should be able to detect full support for wchar_t and in turn activate wchar_t-based template types (like std::wstring).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37669 a95241bf-73f2-0310-859d-f6bbb57e9c96
* updated icu-devel package to 4.4.1
* create appropriate devel lib links when icu-devel is being installed
(which only works during build, not when using installoptionalpackage)
* dropped ICU headers from repository and instead fetch them from the
icu-devel package when needed during the build
* adjusted Jamfiles that make use of ICU-headers accordingly (hopefully
I didn't miss any)
* fixed license in OptionalPackage description of icu packages
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37531 a95241bf-73f2-0310-859d-f6bbb57e9c96
(a version that correctly deals with utf-8 chars in wide character literals)
* adjusted required gcc2 version in configure
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37483 a95241bf-73f2-0310-859d-f6bbb57e9c96
* remove superfluous (unused) language files - we now get this information
from ICU
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36856 a95241bf-73f2-0310-859d-f6bbb57e9c96
* InitiateDrag() now makes sure that either a number of top-level items
or a group of subitems sharing the parent is being dragged - anything
else doesn't really make sense and results in mayhem and/or crashes
* LocaleWindow now tries harder to keep the language listview sorted
* when moving around items between the two listviews, they are no longer
copied (and partly leaked), but the same items are now just moved over
* cleanup here and there
This is still somewhat of a mess - I recommend splitting the two listviews at least (as they actually behave differently) - maybe it would be better to pick the available languages from a popup-menu instead of keeping them in a listview?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36561 a95241bf-73f2-0310-859d-f6bbb57e9c96
* commented out a useless block of code (and added a respective TODO)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36496 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The flag bitmaps being part of list items were not treated properly in
the language item's copy constructor (the bitmap pointer was copied, not
the bitmap object itself). As a result, bitmap objects were freed more than
once.
* some cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36487 a95241bf-73f2-0310-859d-f6bbb57e9c96
* _NullStyleHeight() must return the height including the 1 pixel gap between
the lines, as that's how it's being used
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36469 a95241bf-73f2-0310-859d-f6bbb57e9c96
* updated optional package for gcc4 to point to an archive without that link
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36464 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Apparently triggered by some strange stellar constellation, the
libgcc.a contained in gcc-2010-04-20 did not contain the files
required for c++ support. Fixed by rebuilding gcc and fetching
the (then correct) libgcc.a from there and putting it into
gcc-2010-04-20-1.zip
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36434 a95241bf-73f2-0310-859d-f6bbb57e9c96
* use dlopen() instead of load_add_on() when loading liblocale.so from
libbe.so, as otherwise the library could end up in the image more than once.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36357 a95241bf-73f2-0310-859d-f6bbb57e9c96
* fix connecting to INADDR_ANY work for tcp (effectively will
connect to INADDR_LOOPBACK)
* add same behaviour to udp
* move some ipv4-specific code out of tcp into ipv4 address module
* bind() and connect() now reject addresses from non-matching
families
* myself: minor cleanup in udp.cpp with respect to 80 chars limit
Closes#5716 - many thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36192 a95241bf-73f2-0310-859d-f6bbb57e9c96
to parts of the caret being inverted:
* instead of always inverting the caret rect, we now invalidate when the
caret should be hidden
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36153 a95241bf-73f2-0310-859d-f6bbb57e9c96
* applied Matt's patch (somewhat changed) that corrects the links for gcc4's
libstdc++.so and libsupc++.so in case of a gcc2 hybrid (they must point
to /system/lib/gcc4/... instead of /system/lib/...)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35746 a95241bf-73f2-0310-859d-f6bbb57e9c96
* the optional package ICU-devel now explicitly installs the appropriate
symlinks for the development libraries as required (for both standard
and hybrid builds)
* ICU-devel now depends on Development (more indicative than required, but
I think it makes sense)
Thanks to Matt and Rene for pointing me in the right direction.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35730 a95241bf-73f2-0310-859d-f6bbb57e9c96
(basic) development optional packages - needs
some more investigation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35709 a95241bf-73f2-0310-859d-f6bbb57e9c96
* updated optional package ICU-devel to include links to make the libs available
for development (only links for the current abi are being created)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35680 a95241bf-73f2-0310-859d-f6bbb57e9c96
* fix ICU jamfiles to no longer MakeLocate on source files and added some
missing dependency declarations for break-iterators - now building with
-j16 no longer fails (it did before, for me too)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35627 a95241bf-73f2-0310-859d-f6bbb57e9c96
compatibility between two different versions of a shared library.
Even when using this tool, you still need to make up your mind about compatibility, but
IMHO it helps a lot.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35380 a95241bf-73f2-0310-859d-f6bbb57e9c96
could prove to be a major PITA (because of all the dependencies that would need to be rebuilt)
* when adding a library to the image, its optional minor abi version is taken care of, too (i. e. a
corresponding link is created).
* the ABI-related links in /system/lib are now replicated in /boot/develop/lib/<arch>
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35362 a95241bf-73f2-0310-859d-f6bbb57e9c96
build system
* declared ICU-libs as private system libraries, which causes them to no longer
be available for building software (they no longer are linked from the
development lib folder, so the linker won't find them)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35323 a95241bf-73f2-0310-859d-f6bbb57e9c96
tree within qt-creator (at least auto-completion and navigation seem to work
fine)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35074 a95241bf-73f2-0310-859d-f6bbb57e9c96
default address of the outgoing interface as a side-effect
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34989 a95241bf-73f2-0310-859d-f6bbb57e9c96
exposes a problem in our UDP-connect implementation: the local address is
not set as a side-effect of connecting to a specific destination.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34987 a95241bf-73f2-0310-859d-f6bbb57e9c96
would yield double inversion of the caret position, causing #5006
* cleanup with respect to when the selection can be highlighted and/or the
caret can be shown/hidden
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34944 a95241bf-73f2-0310-859d-f6bbb57e9c96
(in libgnu.so) with my current rsync port:
* Node now opens its fd with O_RDONLY, as otherwise BFS will refuse to open
(the attributes of) directories
* Node::Get() and Node::Set() now make use of the encoded attribute type,
as otherwise all created attributes would have the type 'XATR' (instead
of the encoded haiku-specific type)
* minor cleanup with respect to the line width limit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34904 a95241bf-73f2-0310-859d-f6bbb57e9c96
'+' as part of their name, which is illegal for shell variables (where the
corresponding replacement character is 'X').
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34903 a95241bf-73f2-0310-859d-f6bbb57e9c96
(--update must be given as first option, but can be followed by others)
* added simple perl scripts that is used by configure to convert BuildSetup
from jam to shell format
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34896 a95241bf-73f2-0310-859d-f6bbb57e9c96
* let BuildSetup set HAIKU_HOST_IS_BIG_ENDIAN according to HOST_GCC_MACHINE
* minor cleanup in BuildSetup
* when building ICU, set the endianness indicator suffix according to
HAIKU_HOST_IS_BIG_ENDIAN
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34864 a95241bf-73f2-0310-859d-f6bbb57e9c96
* make word-wise navigation via cursor keys match Pe, such that it is consistent
throughout haiku (unless some applications brew their own)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33913 a95241bf-73f2-0310-859d-f6bbb57e9c96
which are now being used to implement the word-wise keyboard navigation,
fixing #4785
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33885 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Word selection via double-click now works like in R5, except that '_' is now
being considered part of a textual word, too. This fixes#4754.
* Adjusted CanEndLine() to make much more sense (at least for western
languages).
While I have tested the wrapping quite a bit, it is not unlikely that these
changes introduce regressions. If you spot one, please tell!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33882 a95241bf-73f2-0310-859d-f6bbb57e9c96
fixes#4894
* PointAt() now rounds x- and y-positions to the next integer instead of always
rounding them up - this yields improved caret-positions (e.g. before an 'f'
character)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33877 a95241bf-73f2-0310-859d-f6bbb57e9c96
* copied implementations for llround(), llroundf() and llroundl() from
glibc-2.3.2
* added corresponding declarations to math.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33863 a95241bf-73f2-0310-859d-f6bbb57e9c96
(reported by Axel):
* _AutoResize() can no longer check the difference between the textrect and
the maximum line width, as the textrect is no being adjusted earlier during
the line-calculation code - instead, it needs to measure the difference
between the bounds and the textrect width plus the insets.
* MakeResizable(true) needs to reset the right inset, as otherwise the auto-
resizing would get confused about how large the textview needs to be
(seems to be an artefact of how Tracker creates the textview).
* GetInsets() doesn't need to compute the insets, as they're maintained in
fLayoutData.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33813 a95241bf-73f2-0310-859d-f6bbb57e9c96
* SetTextRect for non-wrapped textviews needs to update the insets,
as otherwise several misalignments occur within several apps - renaming
in Tracker was effected the worst, though
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33717 a95241bf-73f2-0310-859d-f6bbb57e9c96
during the width calculation
* used _TabExpandedStyledWidth() at all places that need to expand tabs,
fixing #4822
* removed _StyledWidthUTF8Safe() as it didn't make sense - we now perform
the same auto-scrolling horizontally as we do vertically
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33713 a95241bf-73f2-0310-859d-f6bbb57e9c96
* switching from wrapping to non-wrapping mode triggers a recomputation of
the text rect
* non-wrapping mode now triggers updating of the data rect for the horizontal
scrollbar as needed, fixing #4705
* corrected a couple of width computations that confused bounds and text
rect width, leading to drawing artefacts at the end of a line
* unified computation of text rect width to always take all lines into
account (not just the first one)
* some cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33703 a95241bf-73f2-0310-859d-f6bbb57e9c96
to avoid recurring problems during migration of subversion checkouts
(restored binary files that were garbled by subversions during checkout)
* added appropriate svn:mime-type property for problematic (binary) files
* removed a single (mistyped) svn:mimetype property
* dropped svn:eol-style property for cleanup (they all contained 'native')
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33670 a95241bf-73f2-0310-859d-f6bbb57e9c96
software looking for them will find them) as a temporary fix for #4747.
In the long run, the functions declared in these headers should be
implemented by means of ICU and then the headers shall be made public again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33575 a95241bf-73f2-0310-859d-f6bbb57e9c96
It is good practive to #undef this before every definition,
due to how the ExtractCatalogEntries jam-rule works.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33360 a95241bf-73f2-0310-859d-f6bbb57e9c96
* fixed typo and "correction" in de.catkeys (it is not
possible to change the english base text this way - it
will corrupt the catalog instead, as the fingerprint
will no longer match)
* fixed typo in LocaleWindow.cpp and adjusted the existing
catkeys accordingly
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33350 a95241bf-73f2-0310-859d-f6bbb57e9c96
work to do, but it's about time to give this code more exposure.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33176 a95241bf-73f2-0310-859d-f6bbb57e9c96
Net_server starts services by invoking fork() followed by exec(). If the latter
fails (for instance because the service isn't installed), the forked child is
invoking exit(). This in turn unloads libbe, triggering static cleanup code in
BMessage, which deletes a couple of message ports that were inherited from the
parent during the fork. After that, net_server was desparately missing those
ports and no longer worked reliably.
* in InitTerminateLibBe, we now register an atfork-(child-)handler, which
takes care to re-initialize the static reply ports used by BMessage code
* added BMessage::Private::StaticReInitForkedChild wrapper and
BMessage::_StaticReInitForkedChild() implementation which overwrites the
inherited port IDs with a set of own ports
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33050 a95241bf-73f2-0310-859d-f6bbb57e9c96