* The BTabView can now be used with layout management. In this setup, children
views are managed by a BCardLayout and are hidden/shown instead of removed/
added when (de)activated.
Thanks a lot!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28701 a95241bf-73f2-0310-859d-f6bbb57e9c96
to a window already. If not, we fall back to using the BList-based search.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28696 a95241bf-73f2-0310-859d-f6bbb57e9c96
take advantage of this fact to make use of binary search in
IndexOf(BListItem *), rather than using BList's linear search.
Also use this mechanism to speed up HasItem(BListItem *).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28694 a95241bf-73f2-0310-859d-f6bbb57e9c96
popup menu that hasn't yet been completely dismissed, it's possible to hit a
debugger call because the menu's view tries to add itself to the menu window
before the previous menu instance has removed it. This was quite easy to
hit with things like BColumnListView's column title context menu, since there
is no notification for when the menu was dismissed without invoking an item,
and thus double right clicking quickly enough would hit the debugger. Go()
now checks if the menu's tracking thread is still up, and if it is, waits for
it to go away before trying to start another instance. Fixes ticket #3146.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28693 a95241bf-73f2-0310-859d-f6bbb57e9c96
otherwise if it tries to make use of any positional information in the
subsequent call to Update() (i.e. calls to ItemFrame(), or Top(), it will
get back bogus coordinates. This should correctly fix the problems seen with
Themes, possibly amongst others.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28692 a95241bf-73f2-0310-859d-f6bbb57e9c96
- "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
listeners immediately if there was already something in the queue. Factored
out a tty_readable() out of tty_notify_if_available() that tty_select()
now uses.
* This fixes bug #3148.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28687 a95241bf-73f2-0310-859d-f6bbb57e9c96
* check specific node ids for nodes declared as inputs which are really beepers
* when unmuting/setting amp on the input amplifier, iterate on each input instead of only the first one
* also unmute/set amp on the output and input amplifiers for the input and output paths, respectively
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28683 a95241bf-73f2-0310-859d-f6bbb57e9c96
I'm not sure how this affects the build as I still got a valid image and only
saw the MIME error after Joseph pointed it out. In fact I am quite sure the SGI
MIME type was still in the build. I assume that only the broken sniffer rule
was missing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28681 a95241bf-73f2-0310-859d-f6bbb57e9c96
for. This allows snippets from ShowImage made in these formats to be opened.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28680 a95241bf-73f2-0310-859d-f6bbb57e9c96
We now ask the app_server for the window tab's height instead of
hardcoding it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28678 a95241bf-73f2-0310-859d-f6bbb57e9c96
worked because (status_t)B_OK == (off_t)0.
* The translator_id version of Translate() does a (probably unnecessary?)
Identify(), but then forgets to seek the source BPositionIO back to 0
before calling translator's Translate(). This was the reason for none of
the WonderBrush Translation Kit export formats to work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28676 a95241bf-73f2-0310-859d-f6bbb57e9c96
broke everything. If the added item has no chance to calculate it's height,
_RecalcItemTops() won't work of course. Whatever this was supposed to fix,
there has to be a correct way.
* Override BView::SetFont() to update all the items. I remember wanting to
implement this, that's why I refactored a _FontChanged() method, but I
obviousy never did...
* Moved the AttachedToWindow() and FrameMoved() implementations to a more
logical position in the file.
* Implement B_PAGE_UP/DOWN key presses. Don't know if that's what the BeOS
implementation did, will check later.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28671 a95241bf-73f2-0310-859d-f6bbb57e9c96
values. The implementation needs to sum up fractional movement, not
truncate to zero. Before this change, the mouse would be pretty much unusable
at lower speeds/acceleration. Now it is guaranteed to move.
* No need to memset() before ioctl(), the driver does that anyways.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28669 a95241bf-73f2-0310-859d-f6bbb57e9c96
DataTranslations list view. This should fix it. MessageReceived() was not
forwarding to the immediate inherited class.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28665 a95241bf-73f2-0310-859d-f6bbb57e9c96
a message.
* The DesktopSettings class is now using that to send the new
AS_SYSTEM_FONT_CHANGED message to all windows.
* The ServerWindow now propagates font changes to its decorator, causing it
to update its drawing. That means changing the bold font in the "Fonts"
preferences application will instantly change all window titles.
* Factored out a _RebuildAndRedrawAfterWindowChange() out of several Desktop
methods, simplifying some code.
* The DefaultDecorator no longer calls _DoLayout() twice (through SetLook()),
but instead calls the new _UpdateFont() method now also called by
FontsChanged(), and SetLook().
* BWindow::GetDecoratorSettings() now also includes "tab frame" BRect with the
exact footprint of the tab, allowing apps to know the size of the tab to
position itself accordingly.
* Automatic white space cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28664 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
be used.
* Added tty::ref_count. Each cookie keeps a reference. Only when a
cookie is freed the reference is surrendered. A tty is considered used
as long as it is still referenced. This allows to access a tty through
the cookie, even if it already has been closed.
* Fixed tty_deselect(). It was keeping registered select events when
called after the cookie has been closed. The referenced select_sync
structure would become invalid and later attempts to send select
notifications for the tty could crash. Fixes#3126.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28651 a95241bf-73f2-0310-859d-f6bbb57e9c96
window being the focus window that is a subset of the specified window.
* This is now used to bring the window to front belonging to a floating
or modal window (if on another workspace), ie. Desktop::ActivateWindow()
should now work with modal and floating windows.
* Fixed typo (in Window.cpp).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28649 a95241bf-73f2-0310-859d-f6bbb57e9c96
will now accepted and regarded as sparse file data. FileMap::_Add() also
correctly joins multiple vecs with that offset together, FileMap::Translate()
will always report offset -1 even for offsets into that extent.
* read_file_io_vec_pages() (or rather, its backend common_file_io_vec_pages())
now supports sparse files, and will just clear the memory it should read from
offset -1 instead of passing a request to the vnode.
* ext2 now correctly reports sparse files. This should close bug #2889, as well
as #975.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28648 a95241bf-73f2-0310-859d-f6bbb57e9c96
code duplication and will make maintaining it much easier.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28647 a95241bf-73f2-0310-859d-f6bbb57e9c96
classes (BView, BWindow, BAlert, BButton - BTextView should be part of this,
too, to make BAlerts work).
* However, it's not that simple, because there is often no way to return an
error. Most of that code obviously assumes to be able to throw exceptions
(it's just not communicated to the caller). Maybe we should just start
documenting exceptions for R1 (and properly use exceptions later on).
* Automatic white space cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28646 a95241bf-73f2-0310-859d-f6bbb57e9c96
memory to free was empty, but didn't check the list with objects to
delete. So those were queued until someone used deferred_free().
Should fix#3128.
* Run the daemon once a second instead of every five seconds, so memory
is recycled a little quicker.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28644 a95241bf-73f2-0310-859d-f6bbb57e9c96
* I feel the Synaptics driver is now good enough to give it more exposure
and turned it on again. If it gives you trouble for some reason, you can
turn it off again in ps2_dev.c, line 105.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28643 a95241bf-73f2-0310-859d-f6bbb57e9c96
won't be called, the control thread will remove the device anyways.
* Turned off the debug output I left on accidentally in KeyboardInputDevice.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28642 a95241bf-73f2-0310-859d-f6bbb57e9c96
in Send(), which uses SaveAsDraft(). This fixes#1020. Thanks to kaoutsis and
ksmith for their investigation!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28641 a95241bf-73f2-0310-859d-f6bbb57e9c96
* removed superfluous #include <config.h> which was protected by an #ifdef
that evaluated to false - so the file never got included, but jam tried
to locate it and usually failed, unless there happens to be a config.h
in the current working directory.
This fixes a spurious dependency from regex.c to the config.h in
src/libs/iconv.h if you invoked jam from there.
* fixed two warnings by always including stdlib.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28639 a95241bf-73f2-0310-859d-f6bbb57e9c96
* adjusted libtextencoding's Jamfile
* added libiconv.so to image
* added iconv headers to optional package Development (under 3rdparty)
* removed old private version of libiconv from textencoding
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28631 a95241bf-73f2-0310-859d-f6bbb57e9c96
the libiconv that was available for R5
* cleaned up iconv.h
* moved public libiconv headers (iconv.h and localcharset.h) into a
specific folder in headers/libs
* renamed config.h to libiconv_config.h in order to circumvent strange
problems with regex.c from glibc picking it up
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28630 a95241bf-73f2-0310-859d-f6bbb57e9c96
(config.h, iconv.h and localcharset.h were created by running 'configure'
on haiku)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28629 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Shuffled functions around to separate command functions from their support
functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28624 a95241bf-73f2-0310-859d-f6bbb57e9c96
Taken from ftp://mir1.ovh.net/lv0/ftp.kernel.org/pub/scm/linux/kernel/git/jejb/merge-tree/arch/powerpc/boot/hack-coff.c
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28618 a95241bf-73f2-0310-859d-f6bbb57e9c96
the fixes applied to the kernel version of it (most notably a correctly
working block_cache_discard(), and cache_detach_sub_transaction()).
Also switched to the new notification functions, even though it still works
synchronously in the fs_shell.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28617 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Whatever is the cause of #2733, this should at least not make it crash.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28615 a95241bf-73f2-0310-859d-f6bbb57e9c96
first chunk of a possibly multi-buffer mbuf. This fixes#2840, thanks a lot!
* Fixed warning in _bus_dmamap_load_buffer().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28599 a95241bf-73f2-0310-859d-f6bbb57e9c96
I just added a check in bmtphy_probe() as ENXIO is negative on Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28597 a95241bf-73f2-0310-859d-f6bbb57e9c96
sure that you can have an old style mouse without scroll wheel and one with attached at the
same time. For example, when I hot-plug my PS/2 mouse with wheel, the IBM trackpoint will
otherwise already use up the "PS/2 Mouse 1" name.
Unfortunately, hot-plugging the PS/2 mouse on my T60 docking station still does not work
quite right. The PS/2 driver detects everything correctly, the node monitoring works and I end
up with the correct device threads in the input_server. (The notebook is automatically removing
the touchpad and trackpoint devices in this event, which cannot be turned off in the BIOS.)
However, the mouse does not move. In the syslog, I see one message
"ps2: strange mouse data, x/y overflow, trying resync" after the the output from the add-on
manager in the input_server that it has added the new device. When I restart the input_server,
it works fine, even though the same devices are detected and polling threads are running.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28591 a95241bf-73f2-0310-859d-f6bbb57e9c96
functions private and moved them accordingly in the file.
* I forgot to initialize the BObjectList to own the items in
TouchpadInputDevice.
* Changed the methods that read and apply settings in all three addons to be
executed from the control threads only, which fixes race conditions.
* The success of opening a device is no longer checked in the Start() method
of the *Devices. Instead, the control thread checks the device before it
enters the polling loop and cleans up if there was an error. This fixes
non-running devices in the input_server because the PS/2 driver publishes
devices which is has not checked yet for other reasons. It is important,
however, to open() the devices in the Start() hook and not the control
thread, otherwise there are unwanted race conditions in case node monitoring
events are received more than once for the same device. That's the case
for some reason on one of my computers for the AT 0 keyboard.
TODO:
* Combine the Touchpad and Mouse device addon into one, it's almost the
same code except the Touchpad knows more settings and one more control
message.
* Refactor a common base class for Keyboard and Mouse device addon.
* Fix the mouse speed/acceleration. If the speed is lowered from the default
in the preflet, the mouse becomes almost unusable. To fix this, the same
trick should be used as I used in the touchpad kernel driver, which is to
sum up previous mouse moved fractional offsets.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28590 a95241bf-73f2-0310-859d-f6bbb57e9c96
generic page mapping mechanism. This should fix#2902 (will test in a minute).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28584 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Replaced debug_printf() invocations by a macro, which is set to
ktrace_printf() by default.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28581 a95241bf-73f2-0310-859d-f6bbb57e9c96
the per-root-image breadth-first sorted image array. Instead we have a
per-image hook function to resolve the symbols. The default function
uses the sLoadedImages list directly, which is breadth-first sorted
anyway. There's also a BeOS function for old-style symbol resolution
and one for add-ons, which lacks a proper implementation yet (just
uses old-style ATM).
* Made the dl*() functions POSIX compliant:
- dlopen() does no longer use load_add_on(), but loads the object as a
library. It also properly supports a NULL name, now -- the previous
"_APP_" work-around did only work, if this soname was set on the
program (unlikely for programs using this API).
- Implemented RTLD_{GLOBAL,LOCAL}.
- dlsym() looks up symbols properly now, i.e. not just in the given
image, but breadth-first for an actual image or in load order for
the global scope. It also supports the not-quite POSIX RTLD_DEFAULT
and RTLD_NEXT extensions. Our RTLD_NEXT finds more symbols than in
Linux (also in later dlopen()ed libraries), but that should be fine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28568 a95241bf-73f2-0310-859d-f6bbb57e9c96
OpenFile() now returns early when the format is unsupported (don't add the document to recent documents, don't allow to save the document) (bug #3072)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28565 a95241bf-73f2-0310-859d-f6bbb57e9c96
class/namespace. Renamed the B_GRADIENT_* types to TYPE_* as the context
is already given.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28564 a95241bf-73f2-0310-859d-f6bbb57e9c96
* fStyleMap could be deleted more than once in certain situations.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28563 a95241bf-73f2-0310-859d-f6bbb57e9c96
license was nowhere mentioned. I added an explaination to the copyrights section
and also mentioned that clicking a license name will open the respective
license for reading.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28557 a95241bf-73f2-0310-859d-f6bbb57e9c96
to succeed on Linux. FreeBSD fails some tests since it seems to have a
different load order (depth-first instead of breadth-first). Haiku fails
a lot of tests due to its POSIX non-compliant dlopen().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28556 a95241bf-73f2-0310-859d-f6bbb57e9c96
lock held - that was a relict of the past.
* This fixes bug #2535.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28551 a95241bf-73f2-0310-859d-f6bbb57e9c96
bug #3082.
* Also, it now allows to remove daemons in their hook function.
* Added a "daemons" KDL command that dumps all registered kernel daemons, and
resource resizers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28550 a95241bf-73f2-0310-859d-f6bbb57e9c96
consider the workspaces in the configured count.
* If the window is not on the current workspace after the workspace check,
always move it to the current instead. This lets windows on workspaces
outside of the ones currently configured show up on the current workspace
as if they had the B_NOT_ANCHORED_ON_ACTIVATE flag set.
* This fixes bug #3003.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28549 a95241bf-73f2-0310-859d-f6bbb57e9c96
These were copied from the same code that originally was used for libjpeg
(jpegsrc.v6b.tar.gz) in the JPEGTranslator with a few small changes.
This will be used to implement JPEG lossless transformations in ShowImage in
the way suggested by Michael Lotz in the email linked from the bug.
Next up is changes to ShowImage.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28544 a95241bf-73f2-0310-859d-f6bbb57e9c96
slightly strange redrawing, including scrolling the offscreen view
that it uses in "flicker free" mode (which is the default). Invalidation
does not work in offscreen windows, since the client thread is not running
and certainly won't redraw anything. But that will leave a non-drawable
region on the app_server side of things. Simply don't invalidate in
this case. From what I have seen, redrawing in NetPositive seems to
work fine now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28538 a95241bf-73f2-0310-859d-f6bbb57e9c96
for most messages, use debug_printf(), cleanup line breaks
* check return code of last link method in a lot more places
* changed some printf() and fprintf() into debug_printf()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28537 a95241bf-73f2-0310-859d-f6bbb57e9c96
on uninitialized accelerant, but that's what AS_GET_DRIVER_PATH is for.
* This should fix#2847.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28534 a95241bf-73f2-0310-859d-f6bbb57e9c96
in AutoMounter::InitialMountVisitor::Visit(), otherwise restoring
mount options, like read-only mounting, would never work. This
kind of mixes the options of the mount settings, since it partially
remembers the settings even if the option is not "only previously
mounted disks", but it should not hurt anyways. As a side effect,
this should also fix the mount notification sent to Tracker, as
the path should only have been correct for the "mount previous disks"
setting.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28533 a95241bf-73f2-0310-859d-f6bbb57e9c96
gWidthBuffer.
* Tracker PoseView now uses BPrivate::gWidthBuffer instead of it's own
instance.
* TextView.h and PoseView.h are now a little cleaner.
* InterfaceDefs.cpp now deletes gWidthBuffer in _fini_interface_kit_().
* Added binary compatibility support for NetPositive in WidthBuffer.h and .cpp.
Obviously it kind of defeats the purpose of having WidthBuffer neatly tucked
away in the BPrivate namespace, but Haiku should run NetPositive, I guess.
Fixes#2879.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28532 a95241bf-73f2-0310-859d-f6bbb57e9c96
and wcrtomb() functions. I worked around the issue, and added a build
warning so that we don't forget to change it back once we have working
versions of those.
* This lets apps like "ftp", and "sftp" work again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28531 a95241bf-73f2-0310-859d-f6bbb57e9c96
* fix _SetTime(), was using the wrong * operator, resulting in
an overflow at some point that lead to the mentioned jumping
fixes 2878 and 3057
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28524 a95241bf-73f2-0310-859d-f6bbb57e9c96
as public defines. They are now called THREAD_{MIN|MAX}_SET_PRIORITY to
better reflect what they are for. Minimum priority is now 1, ie. you no
longer can set another thread to the idle priority. This fixes part of
ticket #2959.
* set_thread_priority() will no longer allow to change the priority of the
idle thread to something else. This fixes the rest of ticket #2959.
* Automatic whitespace cleanup in OS.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28521 a95241bf-73f2-0310-859d-f6bbb57e9c96
icon in the MediaPlayer Info window. I changed it a bit, so that the
icon retrieval only happens at the file change notification (quite
important, since the info window receives playback position notifications).
I also changed it to take the icon from the file first, if there is one.
Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28520 a95241bf-73f2-0310-859d-f6bbb57e9c96
and the block cache don't interfere when working on the same blocks.
* This has fixed all kinds of file corruptions I could reproduce before,
therefore likely also bug #3010.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28517 a95241bf-73f2-0310-859d-f6bbb57e9c96
in the cache is the same as in the condition variable. It now uses the
low-contention sCachesLock to accomplish this.
* Also added an ASSERT to make sure the notification is no longer part of the
list at this point.
* Improved KDL command output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28516 a95241bf-73f2-0310-859d-f6bbb57e9c96
discarded blocks correctly as well.
* cache_detach_sub_transaction() left cached_block::original_data unchanged even
if the parent data was to become current (in case the sub transaction didn't
change the block yet). This could cause outdated blocks to be written back.
* cache_detach_sub_transaction() also set cached_block::previous_transaction
for all blocks, not just the ones with a previous transaction. This could
cause blocks to be written twice for no reason.
* cache_start_sub_transaction() did not change the num_blocks count for
discarded blocks.
* block_cache_discard() now panics if the block was already changed in the
current transaction.
* Improved test application, added more tests, revealing the above bugs in
cache_detach_sub_transaction().
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28514 a95241bf-73f2-0310-859d-f6bbb57e9c96
from the block notifier, the cache could be deleted before we have the chance
to lock it. We now lock the sCachesLock, and see if this cache is still valid.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28512 a95241bf-73f2-0310-859d-f6bbb57e9c96
mixer's controls, so I am removing it.
If someone disagrees, this code can be added back easily.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28509 a95241bf-73f2-0310-859d-f6bbb57e9c96