History log of /haiku/src/kits/tracker/FSUtils.cpp
Revision Date Author Comments
# a1ad8af6 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Change a number of sprintf to snprintf.

Fixes a number of -Werrors about format overflow from GCC 8.


# 47517233 01-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

headers/kernel: Move B_WAIT_TILL_LOADED to a syscall header.

It is only used as an argument to _kern_load_image directly, not to
any of the load_image functions in image.h, so it belongs in a syscall-
specific header like other such constants.

No functional change intended.


# 707c912e 15-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Remove "launch broken link" cruft.

As the comment says, this was a pre-R5 (!) hack for Be's CIFS driver.


# 7457ccb4 13-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

BMessageFormat: Rename to BStringFormat.

The ICU class is named MessageFormat, but on Haiku, it sounds too much
like something related to BMessage (which it isn't in the slightest)
and not part of the Locale system. It works almost entirely with BStrings,
so naming it BStringFormat makes much more sense.

OK'ed by PulkoMandy and Humdinger.


# 8b9c75d6 15-Jan-2017 Andrew Aldridge <i80and@foxquill.com>

Fix copying special files in Tracker

Signed-off-by: Axel Dörfler <axeld@pinc-software.de>


# 05574d9b 31-Oct-2016 Humdinger <humdingerb@gmail.com>

Tracker: Fixed alert button label for renaming of home folder

Fixed copy&paste error for button label of renaming action.


# 5298c297 23-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix regressions introduced in hrev 50503

- Missing "dontAsk" when renaming some files,
- Missing exceptions in the warning alert construction to automatically
allow modifying some files (anything inside the settings folder)
- Missing translations

Fixes #12925.


# 4072c4f1 21-Aug-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Tracker: fix localization of warning when editing system dirs

Programatically generating a string usually doesn't work well with
localization. Better unfold all the possiblities.

Moreover, the callers of the functions had a long if condition with
3 B_TRANSLATE calls embedded in, and there was an erroneous ; at the end
of those, so the supposedly protected statement was executed anyway.

Fixes #12747.


# ebb20270 29-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Don't show warning alert when working in /system/cache/tmp.

Originally, the tmp folder was in /boot/common, where it didn't show
an alert box. Since the move to /system, it simply fell into the general
"is in system directory" case.

Fixes #10173.


# 606ae81a 21-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: Move deprecated FSUtils functions to FBCPadding.cpp.

This includes FSCopyAttributesAndStats as well as an older version of
FSGetDeskDir, and adds another alias of FSGetTrashDir. Fixes BeIDE
compatibility.


# c1cd54a0 21-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

FSUtils: Add a "bool copyTimes" argument to FSCopyAttributesAndStats().

BPoseView::NewFileFromTemplate does not want to copy the times. Fixes #11702.

We have to keep a 2-argument version of this function because it looks like
some third-party applications might call it (e.g. Dockbert), and even
though it's technically private API, it's easy enough to preserve binary
compatibility.


# f8300bd9 17-Aug-2015 Axel Dörfler <axeld@pinc-software.de>

Tracker: Added a "Skip all" functionality.

* Also, the copy prompt gets a missing "Replace" button (instead of
only offering "Replace all").


# 0104e6fa 17-Aug-2015 Axel Dörfler <axeld@pinc-software.de>

Tracker: Use BEntry::Name(), minor cleanup.

* Use BEntry::Name() over GetName() where appropriate.
* Fixed some weird indentation.
* Simplified some constructs.


# 9e78efbb 27-Feb-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: delete un-needed #includes.

All of these header files are already included by the .h file that
corresponds to the .cpp file.


# 2f5fe16a 14-Feb-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: delete #ifndef __HAIKU__ code.

Since tracker_layout has been merged, this is pretty useless now.
Should result in no change to generated assembly.


# fe7fe266 25-Oct-2014 Axel Dörfler <axeld@pinc-software.de>

libtracker: delete folder cleanup.

* Removed a number of superfluous BDirectory::Rewind() calls.
* Renamed some variables.


# 03ad73fc 24-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

More uses of BMessageFormat

ZipOMatic, DiskUsage, MediaConverter, MediaPlayer, ShowImage,
WebPositive, Screen preferences, Tracker, string_for_size.

Thanks to KapiX for reporting those!


# 360431e6 07-Sep-2014 Rene Gollent <rene@gollent.com>

Tracker: Fix #11193.

Fix regression introduced in commit 2f60dea5: BSymlink::ReadLink()
returns a byte count in the success case, which ThrowOnError() does
not anticipate. Consequently, attempts to copy symlinks would fail.


# 2f60dea5 29-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Throw exception on assert failure

... in situations where a NULL pointer dereference was vital to the
functioning of the method we use a stronger assert that throws an
exception on failure. This is accomplished by a new method in
Utilities.cpp, ThrowOnAssert().

None of these conditions should ever be true, if they are it means that
the code is written improperly and would have resulted in a NULL
dereference and undefined behavior (most likely a crash) before.

Most instances of ThrowOnAssert() either replace an ASSERT followed
by a dereference or an early return that covered the error.

Also remove _ThrowOnErrorWithMessage() which wasn't being used.


# 9cc03189 28-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Add NULL checks and ASSERTs

To prevent recoverable NULL pointer dereferences. Dereferencing a
NULL pointer is undefined behavior and should be avoided.

Unrecoverable NULL checks will be dealt with in the next commit.


# 54e2dd72 28-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: style fixes

No functional changes intended.


# ab28908d 18-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Fix dereference after NULL, CID 601541

_TrackerLaunchDocuments() dereferences refs to copy it, so, we need
check that it isn't NULL first.

Also a few style fixes.
* Name params consistent with TTracker class methods
ref, message => appRef, refs
* Use NULL instead of 0 for NULL pointer.


# 58121655 18-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Fix 3 copies, CID 609040-CID 609042

strcpy() => strlcpy()


# d89f61f0 18-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: unchecked return value, CID 602465

Check that refs is not NULL and that refs->FindData() succeeds.

Also, explicit NULL check


# 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


# 537e1fff 26-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Write Trash icon attrs only once

Also create Trash if does not exist but check the if the icon
attrs are set separately.

Only set the vector trash icon #ifdef __HAIKU__ does this
even matter anymore?


# 7f68dcb4 26-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Write Desktop icon attrs only once


# dd3359ae 26-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: return B_BAD_VALUE if you pass in a NULL dir


# c2d07d99 26-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: yet more style fixes


# aee40335 20-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: style fixes to FSUtils


# 9437e677 09-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Style fixes


# aa4b5749 07-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

runtime_loader: Detect and trigger on PE binaries

* Previously PE binaries would trigger the "incorrectly
executable" dialog. Now we get a special message for
B_LEGACY_EXECUTABLE and B_UNKNOWN_EXECUTABLE
* Legacy at the moment is a R3 x86 PE binary. This could
be extended to gcc2 binaries someday far, far, down the
road though
* The check for legacy is based on a PE flag I see
set on every R3 binary (that isn't set on dos ones)
* Unknown is something we know *is* an executable, but
can't do anything with (such as an MSDOS or Windows
application)
* No performance drops as we do the PE scan last
* Tested on x86 and x86_gcc2


# e551626f 01-Dec-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Implement support for a SYS:ENV attribute on executable

__flatten_process_args() does now have the executable path as an
additional (optional) parameter. If specified, the function will read
the file's SYS:ENV attribute (if set) and use its value to modified the
environment it is preparing for the new process. Currently supported
attribute values are strings consisting of "<var>=<value>" substrings
separated by "\0" (backslash zero), with '\' being used as an escape
character. The environment will be altered to contain the specified
"<var>=<value>" elements, replacing a preexisting <var> element (if
any).

A possible use case would be setting a SYS:ENV attribute with value
"DISABLE_ASLR=1" on an executable that needs ASLR disabled.


# 38fa81bf 03-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove B_COMMON*_DIRECTORY and kCommon*Directory constants

* This does intentionally break source compatibility, so that a review
of concerned code is forced.
* Binary compatibility should be maintained in most cases. The values
of the constants for the writable directories are now used for the
writable system directories. The values for the non-writable
directories are mapped to "/boot/system/data/empty/...", an empty or
non-existent directory, so that they will simply be skipped in search
paths. Only code that explicitly expects to find something in a
B_COMMON_* directory, will fail.


# 4b7e2196 03-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove /boot/common for good

* Remove support for the "common" installation location from packagefs,
package kit, package daemon, package managers.
* Rename the B_COMMON_*_DIRECTORY constants referring to writable
directories to B_SYSTEM_*_DIRECTORY.
* Remove/adjust the use of various B_COMMON_*_DIRECTORY constants.
I'm sure some occurrence still remain. They can be adjusted when the
remaining B_COMMON_*_DIRECTORY constants are removed.


# 1c29b26e 29-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add virtual directory feature to Tracker

Similar to stored queries, files of the virtual directory type behave
like directories -- i.e. they open in a list-mode Tracker window and
show up as an item with submenu in navigation menus. The file itself is
a plain text file in driver settings format. It can have an arbitrary
number of "directory" entries, which specify the paths of (actual)
directories for which the virtual directory provides a merged view. The
view will not show duplicate entries. For non-directory entries the
first one encountered (according to the order the directory paths are
specified in the file) will be shown. A subdirectory entry will again
behave like a virtual directory.

The support in Tracker isn't perfect yet. I'm afraid major refactoring
would be necessary to get it there.

The virtual directory file type uses a differently colored version of
the folder icon. Alternatives welcome.


# 163a3948 09-Feb-2013 Humdinger <humdingerb@gmail.com>

Revert "Renamed Tracker option "Don't move files to Trash" (#9352)"

This reverts commit 45f77dcd7029914ccd99178dfb333eb68c7af9e5.


# 0288eb77 01-Feb-2013 Matt Madia <mattmadia@gmail.com>

Reword an alert prompt to be less detailed, but more correct.

Resolves #6654. To note, AFAICT, this code block should never be executed.
However, I did feel comfortable removing it, in case the location of Trash
is relocated in the future.


# 45f77dcd 06-Jan-2013 Humdinger <humdingerb@gmail.com>

Renamed Tracker option "Don't move files to Trash" (#9352)

Renamed that option as it is the only negatively phrased to
"Move deleted files to Trash first" and also the option below
that to "Ask before deleting for good".
Also renamed every function name etc. in that regard and also
settings string of the Tracker settings file.


# aed35104 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# adf8818e 05-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Compilation fixes for Terminal, add to image.

It runs, but has shown up various bugs: app_server crashes, kernel
panics, rendering problems. Working on fixing these now.


# ea001e58 28-Jul-2012 John Scipione <jscipione@gmail.com>

Round 2 of style changes to Tracker

* focused on 80-char limit fixes.
* also some whitespace and case statement indentation fixes


# 96a1e39a 27-Jul-2012 John Scipione <jscipione@gmail.com>

An error while emptying trash is not that dramatic.


# b05aa8b5 27-Jul-2012 John Scipione <jscipione@gmail.com>

Style changes in Tracker, no functional change.

Manual whitespace cleanup
Change instances of const char * to const char*
Convert /* */ C style comments to // C++ style comments


# 851c719d 04-Jul-2012 Humdinger <humdingerb@gmail.com>

Small text changes in alert when renaming/moving special folders.

Since the button was renamed from "Do it!" to the specific action,
an additional explanation in case of special user folders isn't
needed any more.
Split text into paragraphs for better readability.


# 546208a5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# 5c6b9eb0 23-Feb-2012 Jerome Duval <jerome.duval@gmail.com>

Some fixes for GCC 4.6 warning: variable set but not used


# dafbb164 04-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

Tracker (FSUtils): negative passed to unsigned parameter

BVolume::BlockSize() might return a negative value (error code) and it
was passed as parameter of CalcItemsAndSize() as a size_t (unsigned).

Thus the check for an error code failed.

CID 4171.


# a86a5aef 06-Nov-2011 John Scipione <jscipione@gmail.com>

Remove the translation text from the button label in FSUtils.cpp for the Tracker alert dialog that pops up when you try to move or rename an important system folder. The translation text is already provided in another place. Thanks humdinger.

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


# 88b4c422 05-Nov-2011 John Scipione <jscipione@gmail.com>

Replace the word 'Haiku' in the alert dialogs that appear in Tracker when you
try to move or rename an important system folder with a macro so that
translators do not try and translate the name of the OS. I struggled
to find a global place where the OS name could be pulled from instead of
using a #define in FSUtils.cpp. I ended up grabbing the system name from the
utsname struct. This is identical to what is outputted by 'uname -s' which is
the word 'Haiku'.

Fixes #8092

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


# 55ea3ed8 04-Nov-2011 John Scipione <jscipione@gmail.com>

Do not capitalize the Button label strings in code. Instead allow the translators to provide a version in the proper case instead. I made the untranslated buttons lable strings capitalized so that it would look correct in English. Thanks humdinger and axeld.

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


# 504f70a6 03-Nov-2011 John Scipione <jscipione@gmail.com>

Change the text and button label of the activate button on Tracker dialogs
that appear when you try to rename or move an important system folder such
as 'system' or 'config' from the generic (and a little non-standard) 'Do It'
to a proper verb such as 'Rename' or 'Move'.

I take localization into account, there are now 3 different variables that
need to be translated, first is %ifYouDoAction which is the action verb in
one form, second is %toDoAction which is the action verb but in a different
form, and third is %toConfirmAction which is the text that appears on the
button label itself. Although in English there is no distinction between
%ifYouDoAction and %toDoAction (both use the same verb e.g. rename) there
is a distinction in other languages such as German.

Comments are provided in English and German using B_TRANSLATE_COMMENT as a
help for translators. I had some help from DeadYak and Humdinger getting the
German translations right since I only speak English (thanks guys). Humdinger
also directed me to the verb form translation issue in the first place.

I also removed the OSNAME macro and just use 'Haiku' instead since we aren't
maintaining an OpenTracker port for BeOS anymore. Ingo aka bonefish indicated
that this change could be a bit of a problem for distributions (were there
any) but if we actually wanted to support distributions we'd want to use a
global OSNAME macro somewhere else as I am sure the word 'Haiku' must appear
in the source in other places.

Closes #7767

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


# cb2f9709 26-Jun-2011 Philippe Saint-Pierre <stpere@gmail.com>

The destination directory wasn't stored in the UndoRedo record in the case of a duplication operation, causing issues when trying to redo an undone duplication (couldn't find the volume correctly).

Fixes #2883.


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


# dcb652ca 19-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* Fixed ignoring the result of GetStat() which could cause random values to
be counted (for example already if a directory didn't have its X bit set).
* Instead of doing weird heuristics assuming the size on disk, use the actual
value the file system reports. This might have side effects on file systems
that don't report those correctly, which can then be fixed :-)


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


# 2d93b528 28-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Set Escape as shortcut for BAlert Cancel option.

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


# 77e2c2da 28-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Have ConfirmChangeIfWellKnownDirectory() protect the folders Common, Desktop, Root and Trash from renames and moves. Shift-key dialog protection added for the Home folder. Attempts on Desktop, Root and Trash are blocked silently. I admitt it's a bit odd to protect these so resolutely, unlike system, common and home, which are truly essential to the system. Would it be patronizing to enforce a stricter regime?

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


# 2ee8f3f6 25-Feb-2011 Siarzhuk Zharski <zharik@gmx.li>

Bunch of localization fixes pointed out by Diver. Thanks!

Notes:
- FileTypes: The "Same as" button label separated to two entities in dependency of
context: "Same Type as ..." and "Same Application as ...";
- Tracker: The sentences like "If you do %action [...]. To do %action [...]"
now use separately translated verbs for so called
"ifYouDoAction" and "toDoAction";
- NetworkStatus: NetworkStatusView _ShowConfiguration is fixed back after previous
attempt to localize it in r37337: useless code bloating purged out,
broken quasi-header "ifaceName information:" pulled back from Hell;
- StyledEdit: Menu item "Can't undo" had different casing in some situation. Looks
like HTA cannot detect such situation, so right lines "Can't undo"
were masked by wrong one "Can't Undo" and this line stay untranslated
for most time.



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


# b7547596 23-Feb-2011 Philippe Saint-Pierre <stpere@gmail.com>

Replace occurences of strcpy and strcat by strlcpy and strlcat. At both places, while improbable, it was possible to get string overflows.

CID 9043, 9044


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


# 86de478e 30-Oct-2010 Jérôme Duval <korli@users.berlios.de>

Don't throw an error when setting filetype on a symlink fails (happens with ext2, attributes are readonly), there are no such errors for dirs and files anyway.


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


# 7b80b5d5 17-Sep-2010 Alexandre Deckner <alex@zappotek.com>

* Use multiple translate contexts in Tracker for easier translation


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


# 108f794c 16-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by mt: Translate various yet untranslated strings in libtracker,
closes ticket #6374. Thanks a bunch!


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


# 886c6276 12-Sep-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed debug build (format string/argument mismatches).


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


# 8eff03f5 25-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fixed all build warnings by collectcatkeys that I found
* automatic whitespace cleanup

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


# 4ed28a57 12-Jul-2010 Alexandre Deckner <alex@zappotek.com>

* Applied libtracker localization patch from T.Murai (a.k.a mt) with some modifications (see below).
* Functional modifications:
Reworked InfoWindow file size localization, the patch removed number formating (size in bytes) and was too complicated to my taste.
Replaced the uses of sprintf with the safer snprintf.
Changed signature to x-vnd.Haiku-libtracker instead of x-vnd.Haiku-libTracker (to be consistent with the binary name)
* Style modifications:
Reworked lots of 80 char indenting (probably due to the now shorter line lengths since your previous patch that wasn't using the macros)
Lots of missing brackets when "if's" becomes multiline.
Other minor fixes.

Noticed a few uses of FindItem on translated names that might become problematic someday. Added some TODO's regarding localization of file sizes. Localization might still be
optimized a bit regarding the produced en.catkeys

Note to translators: .catkeys files should be placed in haikusource/data/catalogs/kits/tracker though beware as the base en.catkeys might change
slightly in the next days.
Note to users: As with any other app you need to restart Tracker (or any aother app using libtracker's filepanels) for it to pick the locale setting. E.g: use 'quit an
application' and 'restart Tracker' from process controller.

Thanks a lot T.Murai


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


# 9a708202 14-May-2010 Rene Gollent <anevilyak@gmail.com>

FSCreateTrashDirs mustn't create the directories itself. This breaks the logic in FSGetTrashDir that creates/applies attributes if needed. This most likely explains Axel's random problems with trash directories being visible, since this would cause a fresh Haiku install's /boot/trash to never be marked invisible as it should be.



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


# 0230fc14 29-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Neither ours nor BeOS' find_directory() will return an error if the directory
does not exist yet.
* Therefore, only BDirectory::SetTo() will fail if the trash does not exist
yet. Changed the code to actually work as expected, now.
* Fixed old and new style violations.


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


# ca34b422 28-Apr-2010 Rene Gollent <anevilyak@gmail.com>

Only write the icons if we did in fact have to freshly create the Trash directory. Should fix #5827 completely.



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


# 0872569d 28-Apr-2010 Rene Gollent <anevilyak@gmail.com>

Temporarily comment out writing the vector icon since it currently appears to be broken somehow. Will look into it tonight.



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


# 63ebfa8d 28-Apr-2010 Rene Gollent <anevilyak@gmail.com>

When creating Trash directories, Tracker would only set the hidden and/or icon attributes at startup for volumes mounted at that point in time. Volumes mounted later would have the directory created, but not marked hidden or otherwise attributed, which would lead to confusing situations where the root Trash dirs would appear randomly while browsing the filesystem.
Instead, Tracker now always writes those attributes when calling FSGetTrashDir(), which is reused by FSCreateTrashDirs(). Fixes ticket #5827.




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


# 7438e942 07-Feb-2010 Rene Gollent <anevilyak@gmail.com>

Fix spacing.



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


# 807bdfdf 07-Feb-2010 Rene Gollent <anevilyak@gmail.com>

As pointed out by mmlr, we only need to provide the symbol, and only in the case of gcc2.



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


# a5c2457f 07-Feb-2010 Rene Gollent <anevilyak@gmail.com>

Re-add dev_t version of FSGetDeskDir for bin compat reasons: BeIDE (unfortunately) appears to make use of some of the private FSUtils calls. Reimplemented call to use the normal FSGetDeskDir ignoring the passed in volume argument since we no longer have a desktop directory any place else. Fixes the problem reported in #5135.


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


# 497aa62c 30-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

* Provide a LaunchLooper that receives launch messages and executes the launch
functions provided with the given arguments.
* Make use of that looper to replace spawning a thread for each launch task.

On the one side this reduces the amount of used threads (and should fix #698)
and on the other side it makes the order in which refs are sent a bit more
predictable.


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


# 406799c1 17-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Copy and paste bugs prevented the copy progress bar to function properly.


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


# aa61ee48 17-Jan-2010 Rene Gollent <anevilyak@gmail.com>

Cleaned up legacy icon mappings and add some missing resource definitions to
TrackerIcons.h. Also removed the setup for the folder icon mimetype in
TrackerInitialState, as it was using a non-existent resource ID to do so with.



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


# 3cc5c3ff 17-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Further cleanup of TrackerLoopControl. gStatusWindow is now nowhere used anymore
except inside TrackerLoopControl. The only expected change of behavior is when
trying to copy something onto a read-only volume. AFAICS, it would previously
prompt an alert and not already show the status window. Now it will show the
status window and prompt an alert, like in all the other situations when the
operation would be stopped before it even started by an alert. I was able to
remove quite a few code duplications along the way. CopyLoopControl can be
instantiated by itself and provides default implementations which could in turn
be removed from TrackerLoopControl.


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


# 8aad9487 16-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

* 80 chars/line limit cleanup
* Fixed one more occurance of "dos" filesystem check.


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


# 7ca5e887 15-Jan-2010 Rene Gollent <anevilyak@gmail.com>

* PoseView: Re-enabled respecting the invisible pose attribute.
* FSUtils: Mark the root-level Trash directories as invisible. For the time being,
this renders the Trash only visible on the Desktop once more, pending
further consensus on how to handle it in the future. Note however that
this also means that Desktop and/or var directories that still have the
old _trk/pinfo_le attribute from prior to the previous visibility changes
will also be marked invisible again, and those people dual-booting older
BeOS will also still see this issue as the Tracker on those will still
force-write the invisible attribute onto those directories on every volume.



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


# 01dffd8e 14-Jan-2010 Rene Gollent <anevilyak@gmail.com>

More Tracker refactoring:
* relocated Trash dirs to volume roots by modifying find_directory() to report the trash location as volume/Trash.
* FSUtils no longer creates /home/Desktop on every volume.
* TrashWatcher now keeps icons in sync on all volumes.
* Simplified FSGetDeskDir since it no longer has to worry about getting the desk directory on any volume other than the root.
* Relocated trash context menu logic to BContainerWindow so it can also be used at the volume roots.
* DesktopPoseView now creates a virtual Trash pose representing the trash contents as before.
* Corrected typo: Model::WriteAttrKillForegin() -> Model::WriteAttrKillForeign().

Closes ticket #5245.



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


# 7b6edf52 14-Jan-2010 Rene Gollent <anevilyak@gmail.com>

Simplified FSIsDeskDir() as suggested by Axel. Thanks!



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


# 16789848 13-Jan-2010 Rene Gollent <anevilyak@gmail.com>

FSIsDeskDir should only consider a path to be the desktop if it lives on the boot volume. Fixes non-boot Desktop dirs still showing the volumes and such in windows and nav menus.


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


# 9869082c 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

* First attempt at cleaning up the CopyLoopControl mess. Instantiate one
TrackerCopyLoopControl and pass it on when needed. Avoid access to
gStatusWindow directly. Later on, I will try to make it possible to drop more
files/folders onto an ongoing copy process to append it to the job, i.e. copy
those files to the same target folder.
* For each updating the status, entry_refs were copied instead of passed by
reference, which was a bit unnecessary overhead.

* Some coding style cleanup.


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


# 2865e5a0 12-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Changed strings to sentence case in the rest of the Tracker code.
Remaining part of case-tracker.diff from #5169.


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


# 671dd808 12-Jan-2010 Rene Gollent <anevilyak@gmail.com>

Various cleanups:
* Removed dead/obsolete Integrate Non-boot Desktops code.
* Modified PoseView to ignore the fInvisible attribute of BPoseInfo for now.
This has the net effect that the Desktop folder and /boot/var are no longer
hidden from the user. To go with this change, Tracker no longer forcibly
writes that hidden setting to those folders on access. This feature might
be useful again in the future (especially in conjunction with relocating
the Trash folder somewhere such as the disk root), but is currently somewhat
problematic because those dual-booting with BeOS will still have a Tracker
that force writes those attributes which would bring us back to square one
with respect to showing the Desktop folder when we start respecting the
attribute again. Suggestions welcome. Haiku-only users can remove the
_trk/pinfo_le attribute on those folders to remove the invisibility
in any case.
* TrackerSettings: Removed obsolete desktop integration settings. Also
modified TrackerSettings parser to skip unrecognized settings instead
of aborting the settings file parsing process entirely.

Closes ticket #2872.



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


# 2ecfe97e 18-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

* Some cleanup for 80 chars/line limit
* The target volume block size is passed to the CalcItemsAndSize() function
to get a more accurate picture of whether items will fit. Before, it would
assume hard coded 1024 bytes block size.


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


# 78248acd 18-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

The usage of BStatusWindow::HasStatus() was really bogus. First of all
HasStatus() and UpdateStatus() were not run in the same lock, so the job
view could be gone anyway. And secondly, both methods iterate over all status
items to find the one with the correct thread. Doh, if we don't have enough
work to do, lets make some! Of course this was not critical in any case...


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


# d3b11328 27-Oct-2009 Rene Gollent <anevilyak@gmail.com>

Move CheckDevicesEqual into FSUtils so it can be used in more places.
Rework ContainerWindow's B_REFS_RECEIVED to use CheckDevicesEqual to decide move vs copy as is done elsewhere.

Fixes ticket #4850.



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


# 0eab14cd 04-Oct-2009 Ryan Leavengood <leavengood@gmail.com>

Apply patch from Caitlin Shaw, aka rogueeve, to fix Tracker's replace behavior
for the case of 1 file.

Fixes #4717.


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


# 2c69b5b6 19-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Made the libbe_test environment basically working under Haiku - to actually
make it work, one would need to use versioning for all libbe symbols. This is
worth an 8k price per file that links against libbe.so, so I didn't want to
commit this as is. An alternative to this solution would be to write a
separate application that is responsible for the app_server's window. Comments
welcome.
* Removed BeOS compatbility of the libbe_test stuff.
* Renamed the libbe_test targets from *haiku* to *test*, ie. libbe_haiku.so is
now called libbe_test.so, haiku_registrar is now test_registrar, etc.
* This also removes BeOS compatibility from tracker/FSUtils.cpp (all BeOS
compatibility should be removed, but I don't want to make Alexandre more work
in his branch, and it's not urgent at all).
* Replaced the former "run" scripts for the test environment with a single
run script (see updated NOTES file).
* Removed the libbe_test target from some applications - this was only to help
developing them under BeOS, and is thus no longer necessary.


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


# 33ce1915 23-Apr-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

if opening a document failed because the system is shutting down, don't ask the user if he wants to open the document with another application, since that would fail as well.

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


# 080385d5 09-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

Fixed logic to detect and warn about changes in the system folder. Merged
the "system" folder and "system folder or it's contents" case.


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


# 019f90e6 05-Apr-2009 Jonas Sundström <jonas@kirilla.com>

Setting the escape key as shortcut for the Cancel options of Tracker's dialogs.

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


# 317bd7dd 03-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Changed directory structure as suggested on the mailing list.
* Made the TimeZoneView less error prone, and also actually use Haiku code (the
previous check didn't work since it used #if, not #ifdef).
* Also took the liberty to rename our boot loader to haiku_loader, since I had
to update the nasm binary anyway. Updated the assembly sources to nasm 2.0.
* I haven't found where the synth location in the MIDI code is specified,
though.
* Also, NetBootArchive, and FloppyBootImage haven't been updated yet. Will do
so next.
* Some optional packages still put their license to beos/etc/licenses. I didn't
update them yet, as we'll probably do so anyway at some point. Also, I think
we might want to introduce a common/data/licenses instead for those.
* If you encounter any problems, please tell!


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


# 492e224b 14-Mar-2009 Michael Lotz <mmlr@mlotz.ch>

* Update the signature of _kern_load_image(). It has been changed and therefore
the calls to it always failed.
* Check what error is returned and read the approprite details out of the
message.


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


# 6a392dce 29-Jan-2009 Rene Gollent <anevilyak@gmail.com>

Skip doing the preflight size calculation in cases where the requested FS operation will be instantaneous anyways.



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


# c3341227 03-Dec-2008 Rene Gollent <anevilyak@gmail.com>

If the source volume is read only, only allow a copy op since move makes no sense in this case. Ideally we should probably also modify NavMenu and the drag context menu to only present the options that make sense in a particular situation. Fixes ticket #3195.


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


# 4f7d38d3 02-Dec-2008 Rene Gollent <anevilyak@gmail.com>

Correctly indicate "Copying" vs "Moving" state in status window (thanks Adrian Panasiuk for pointing this out).



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


# 87f41e61 25-Nov-2008 Rene Gollent <anevilyak@gmail.com>

Resolve several bugs that are probably as old as Tracker itself:
1) Move To now works as advertised in all cases - previously it
silently converted a move into a copy if the destination volume
was different, as its move code was not geared towards handling
that case properly. This also has the side effect that drag and
drop is now always a move as well unless overridden via right click
DnD. This may or may not be reverted back to the original behavior
later depending on the consensus.
2) Copying a folder onto another folder of the same name now merges
the contents instead of destroying the original. This fixes ticket
#1420. Still to do: interactive prompting to allow fine grained file
replacement and skipping in this and other multi-file cases, but
I'll open a new enhancement ticket for that.



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


# 91415718 25-Nov-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

- Traverse links when adding well known directories.

This change will make directories like the downloads folder get its correct
special icon even if it is a link to a another directory. The destination
directory also gets the icon which makes it easy to identify special
directories even in other partitions.



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


# dcf3842b 25-Aug-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

- Changed the well-known "Downloads" dir to be named "downloads" for
consistency.

All well-known directories in the home dir ("mail", "people", "config") are all
lowercase. The only exception was the "Downloads" one.



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


# f0e6ea21 12-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Tracker never copied zero-sized attributes.


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


# d22f48c9 02-Aug-2007 Stephan Aßmus <superstippi@gmx.de>

* fix the build of the app_server test environment (libbe_test) after
the change to the nodemonitor syscall


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


# 74f09960 26-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

Forgot to remove some debug output.


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


# 74c0424a 26-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

* Added a mechanism to retrieve a BMessage with eventual error descriptions
for _kern_load_image().
* Added KMessage to the runtime_loader (a bit hacky, though) - it will use
it to deliver the above mentioned functionality.
* load_dependencies() did return the wrong status code in case a library
was missing; now it returns B_MISSING_LIBRARY.
* load_dependencies() will now try to load all dependencies when a report
message is requested; therefore, all missing libraries are listed.
* Renamed uspace_program_args to user_space_program_args.
* The kernel filled in various members of the user_space_program_args structure
unsafely, ie. was not using user_memcpy().
* Renamed some local variables in team.c to better fit our style guide (ie.
uargs to userArgs).
* Changed Tracker to use the new _kern_load_image() variant on Haiku to retrieve
and report all missing libraries. This fixes bug #1324.
* Adapted kernel_cpp.cpp to the runtime loader as well; the latter will now
compile with _LOADER_MODE defined.


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


# eaac0739 19-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

* Fixed build under R5/Dano that was broken since Stippi added vector icon support.
* Separated Haiku's icon stuff a bit better, so that Tracker can still be built
without having Haiku headers around.
* Minor cleanup.


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


# 15e5a8b1 07-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

some more forgotten places for B_VECTOR_ICON_TYPE


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19229 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


# c4d51ab4 16-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* FSEmptyTrash() no longer checks against a specific error code from
find_thread().
* Minor cleanup.


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


# cd94fdda 28-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

* Tracker wrote icons with the wrong type at several places.
* Also replaced all B_COLOR_8_BIT with the B_CMAP8 constant.


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


# e2491d6b 08-Jan-2006 Jérôme Duval <korli@users.berlios.de>

reverted to previous version


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


# ebc8a403 04-Jan-2006 Jérôme Duval <korli@users.berlios.de>

Installer makes use of FSCopyFolder in libtracker.so


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


# 8126a5e7 11-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed debug build.


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


# 3d4b000b 27-Jul-2005 Philippe Houdoin <philippe.houdoin@gmail.com>

More s/BeOS/Haiku/g if __HAIKU__...


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


# 02be5353 22-May-2005 Axel Dörfler <axeld@pinc-software.de>

Added libtracker.so to the repository and the build.


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


# f8300bd9794b3cbb021bc4152500b73352f0b4ef 17-Aug-2015 Axel Dörfler <axeld@pinc-software.de>

Tracker: Added a "Skip all" functionality.

* Also, the copy prompt gets a missing "Replace" button (instead of
only offering "Replace all").


# 0104e6facbceb84f3a6241abbb3261de091d85cd 17-Aug-2015 Axel Dörfler <axeld@pinc-software.de>

Tracker: Use BEntry::Name(), minor cleanup.

* Use BEntry::Name() over GetName() where appropriate.
* Fixed some weird indentation.
* Simplified some constructs.


# 9e78efbb4d21a6821be64e5053defd99ed364aea 27-Feb-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: delete un-needed #includes.

All of these header files are already included by the .h file that
corresponds to the .cpp file.


# 2f5fe16a3e5f838f26b296a2f2926cce407f014f 14-Feb-2015 Augustin Cavalier <waddlesplash@gmail.com>

Tracker: delete #ifndef __HAIKU__ code.

Since tracker_layout has been merged, this is pretty useless now.
Should result in no change to generated assembly.


# fe7fe2666db829d269c51887b0c182575fd596f0 25-Oct-2014 Axel Dörfler <axeld@pinc-software.de>

libtracker: delete folder cleanup.

* Removed a number of superfluous BDirectory::Rewind() calls.
* Renamed some variables.


# 03ad73fc872d7a350989e7bb7dd10b9e2b1e5882 24-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

More uses of BMessageFormat

ZipOMatic, DiskUsage, MediaConverter, MediaPlayer, ShowImage,
WebPositive, Screen preferences, Tracker, string_for_size.

Thanks to KapiX for reporting those!


# 360431e694d6cb3024cd7d331c79b8172cc31da1 07-Sep-2014 Rene Gollent <rene@gollent.com>

Tracker: Fix #11193.

Fix regression introduced in commit 2f60dea5: BSymlink::ReadLink()
returns a byte count in the success case, which ThrowOnError() does
not anticipate. Consequently, attempts to copy symlinks would fail.


# 2f60dea53ae5e08baeae2c4e41c89a8d2e74aaa6 29-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Throw exception on assert failure

... in situations where a NULL pointer dereference was vital to the
functioning of the method we use a stronger assert that throws an
exception on failure. This is accomplished by a new method in
Utilities.cpp, ThrowOnAssert().

None of these conditions should ever be true, if they are it means that
the code is written improperly and would have resulted in a NULL
dereference and undefined behavior (most likely a crash) before.

Most instances of ThrowOnAssert() either replace an ASSERT followed
by a dereference or an early return that covered the error.

Also remove _ThrowOnErrorWithMessage() which wasn't being used.


# 9cc03189faa3cb4923d63a897435f56ec98c62b0 28-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Add NULL checks and ASSERTs

To prevent recoverable NULL pointer dereferences. Dereferencing a
NULL pointer is undefined behavior and should be avoided.

Unrecoverable NULL checks will be dealt with in the next commit.


# 54e2dd7272db551cab02cc678bd45bc4131dd867 28-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: style fixes

No functional changes intended.


# ab28908d2d454e184e3489136f039b1611067dcb 18-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Fix dereference after NULL, CID 601541

_TrackerLaunchDocuments() dereferences refs to copy it, so, we need
check that it isn't NULL first.

Also a few style fixes.
* Name params consistent with TTracker class methods
ref, message => appRef, refs
* Use NULL instead of 0 for NULL pointer.


# 58121655edc0d59762bcb51493219c4e18d17c2e 18-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: Fix 3 copies, CID 609040-CID 609042

strcpy() => strlcpy()


# d89f61f0e00185ee453ce25a60686bb6a79b59d1 18-Jul-2014 John Scipione <jscipione@gmail.com>

Tracker: unchecked return value, CID 602465

Check that refs is not NULL and that refs->FindData() succeeds.

Also, explicit NULL check


# 3aeed6607cd07762c0e709633c012b3a632dbad9 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


# 537e1fff3e9f4aa63856474502642de0a48f2b81 26-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Write Trash icon attrs only once

Also create Trash if does not exist but check the if the icon
attrs are set separately.

Only set the vector trash icon #ifdef __HAIKU__ does this
even matter anymore?


# 7f68dcb4a7fcc19d7dc493963197a587fb82b423 26-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Write Desktop icon attrs only once


# dd3359ae8f0c46f52aaa68d0aea0d7d9d80f8525 26-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: return B_BAD_VALUE if you pass in a NULL dir


# c2d07d9988d5a9e179ee4ceb535e8345ed1f8c44 26-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: yet more style fixes


# aee40335a9588b291bd9164689db6430b8e10a59 20-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: style fixes to FSUtils


# 9437e677ba3d5f813929944ae2b09fc37feb8d2d 09-Jun-2014 John Scipione <jscipione@gmail.com>

Tracker: Style fixes


# aa4b5749d64af0c0573513c27296af16f4680367 07-Jan-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

runtime_loader: Detect and trigger on PE binaries

* Previously PE binaries would trigger the "incorrectly
executable" dialog. Now we get a special message for
B_LEGACY_EXECUTABLE and B_UNKNOWN_EXECUTABLE
* Legacy at the moment is a R3 x86 PE binary. This could
be extended to gcc2 binaries someday far, far, down the
road though
* The check for legacy is based on a PE flag I see
set on every R3 binary (that isn't set on dos ones)
* Unknown is something we know *is* an executable, but
can't do anything with (such as an MSDOS or Windows
application)
* No performance drops as we do the PE scan last
* Tested on x86 and x86_gcc2


# e551626f40c89e7ff5dcac8ce368690fcf382375 01-Dec-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Implement support for a SYS:ENV attribute on executable

__flatten_process_args() does now have the executable path as an
additional (optional) parameter. If specified, the function will read
the file's SYS:ENV attribute (if set) and use its value to modified the
environment it is preparing for the new process. Currently supported
attribute values are strings consisting of "<var>=<value>" substrings
separated by "\0" (backslash zero), with '\' being used as an escape
character. The environment will be altered to contain the specified
"<var>=<value>" elements, replacing a preexisting <var> element (if
any).

A possible use case would be setting a SYS:ENV attribute with value
"DISABLE_ASLR=1" on an executable that needs ASLR disabled.


# 38fa81bf8f0ccc37a615a9f5bd333f9b781322b3 03-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove B_COMMON*_DIRECTORY and kCommon*Directory constants

* This does intentionally break source compatibility, so that a review
of concerned code is forced.
* Binary compatibility should be maintained in most cases. The values
of the constants for the writable directories are now used for the
writable system directories. The values for the non-writable
directories are mapped to "/boot/system/data/empty/...", an empty or
non-existent directory, so that they will simply be skipped in search
paths. Only code that explicitly expects to find something in a
B_COMMON_* directory, will fail.


# 4b7e219688450694efc9d1890f83f816758c16d3 03-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove /boot/common for good

* Remove support for the "common" installation location from packagefs,
package kit, package daemon, package managers.
* Rename the B_COMMON_*_DIRECTORY constants referring to writable
directories to B_SYSTEM_*_DIRECTORY.
* Remove/adjust the use of various B_COMMON_*_DIRECTORY constants.
I'm sure some occurrence still remain. They can be adjusted when the
remaining B_COMMON_*_DIRECTORY constants are removed.


# 1c29b26e7c7eb94ee125315eca5a94265f613420 29-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add virtual directory feature to Tracker

Similar to stored queries, files of the virtual directory type behave
like directories -- i.e. they open in a list-mode Tracker window and
show up as an item with submenu in navigation menus. The file itself is
a plain text file in driver settings format. It can have an arbitrary
number of "directory" entries, which specify the paths of (actual)
directories for which the virtual directory provides a merged view. The
view will not show duplicate entries. For non-directory entries the
first one encountered (according to the order the directory paths are
specified in the file) will be shown. A subdirectory entry will again
behave like a virtual directory.

The support in Tracker isn't perfect yet. I'm afraid major refactoring
would be necessary to get it there.

The virtual directory file type uses a differently colored version of
the folder icon. Alternatives welcome.


# 163a39483387c5db4156dfcf36e4b48156df30a6 09-Feb-2013 Humdinger <humdingerb@gmail.com>

Revert "Renamed Tracker option "Don't move files to Trash" (#9352)"

This reverts commit 45f77dcd7029914ccd99178dfb333eb68c7af9e5.


# 0288eb774216e0e2925dcb31e2c1ddc6e190f35e 01-Feb-2013 Matt Madia <mattmadia@gmail.com>

Reword an alert prompt to be less detailed, but more correct.

Resolves #6654. To note, AFAICT, this code block should never be executed.
However, I did feel comfortable removing it, in case the location of Trash
is relocated in the future.


# 45f77dcd7029914ccd99178dfb333eb68c7af9e5 06-Jan-2013 Humdinger <humdingerb@gmail.com>

Renamed Tracker option "Don't move files to Trash" (#9352)

Renamed that option as it is the only negatively phrased to
"Move deleted files to Trash first" and also the option below
that to "Ask before deleting for good".
Also renamed every function name etc. in that regard and also
settings string of the Tracker settings file.


# aed35104852941f0f6f3d1dcc5338b5f337d0a3c 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# adf8818ec004e8a20614523f3e893303ea318642 05-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Compilation fixes for Terminal, add to image.

It runs, but has shown up various bugs: app_server crashes, kernel
panics, rendering problems. Working on fixing these now.


# ea001e585a588e40404945a1201821da893d2e09 28-Jul-2012 John Scipione <jscipione@gmail.com>

Round 2 of style changes to Tracker

* focused on 80-char limit fixes.
* also some whitespace and case statement indentation fixes


# 96a1e39a63f093e57d351cf79b0e7ee51b80145a 27-Jul-2012 John Scipione <jscipione@gmail.com>

An error while emptying trash is not that dramatic.


# b05aa8b5b16e5b4f420a35c37805c6387df98737 27-Jul-2012 John Scipione <jscipione@gmail.com>

Style changes in Tracker, no functional change.

Manual whitespace cleanup
Change instances of const char * to const char*
Convert /* */ C style comments to // C++ style comments


# 851c719d021e7f867be9f6dd97da23ce881b86ff 04-Jul-2012 Humdinger <humdingerb@gmail.com>

Small text changes in alert when renaming/moving special folders.

Since the button was renamed from "Do it!" to the specific action,
an additional explanation in case of special user folders isn't
needed any more.
Split text into paragraphs for better readability.


# 546208a53940a26c6379c48a7854ade1a8250fc5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# 5c6b9eb00d0d623c12f72eb82a471cb4c71f4f33 23-Feb-2012 Jerome Duval <jerome.duval@gmail.com>

Some fixes for GCC 4.6 warning: variable set but not used


# dafbb164060463db6c906f729c05975c246bae7f 04-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

Tracker (FSUtils): negative passed to unsigned parameter

BVolume::BlockSize() might return a negative value (error code) and it
was passed as parameter of CalcItemsAndSize() as a size_t (unsigned).

Thus the check for an error code failed.

CID 4171.


# a86a5aef5d61460f1ab2a277238a2948e662be00 06-Nov-2011 John Scipione <jscipione@gmail.com>

Remove the translation text from the button label in FSUtils.cpp for the Tracker alert dialog that pops up when you try to move or rename an important system folder. The translation text is already provided in another place. Thanks humdinger.

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


# 88b4c422fea3efa7dd979160b2036cf6989f84dc 05-Nov-2011 John Scipione <jscipione@gmail.com>

Replace the word 'Haiku' in the alert dialogs that appear in Tracker when you
try to move or rename an important system folder with a macro so that
translators do not try and translate the name of the OS. I struggled
to find a global place where the OS name could be pulled from instead of
using a #define in FSUtils.cpp. I ended up grabbing the system name from the
utsname struct. This is identical to what is outputted by 'uname -s' which is
the word 'Haiku'.

Fixes #8092

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


# 55ea3ed849ab6f731db90123f3811d7c7232e5cc 04-Nov-2011 John Scipione <jscipione@gmail.com>

Do not capitalize the Button label strings in code. Instead allow the translators to provide a version in the proper case instead. I made the untranslated buttons lable strings capitalized so that it would look correct in English. Thanks humdinger and axeld.

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


# 504f70a6e1f46a849989435584fe7de980b3f415 03-Nov-2011 John Scipione <jscipione@gmail.com>

Change the text and button label of the activate button on Tracker dialogs
that appear when you try to rename or move an important system folder such
as 'system' or 'config' from the generic (and a little non-standard) 'Do It'
to a proper verb such as 'Rename' or 'Move'.

I take localization into account, there are now 3 different variables that
need to be translated, first is %ifYouDoAction which is the action verb in
one form, second is %toDoAction which is the action verb but in a different
form, and third is %toConfirmAction which is the text that appears on the
button label itself. Although in English there is no distinction between
%ifYouDoAction and %toDoAction (both use the same verb e.g. rename) there
is a distinction in other languages such as German.

Comments are provided in English and German using B_TRANSLATE_COMMENT as a
help for translators. I had some help from DeadYak and Humdinger getting the
German translations right since I only speak English (thanks guys). Humdinger
also directed me to the verb form translation issue in the first place.

I also removed the OSNAME macro and just use 'Haiku' instead since we aren't
maintaining an OpenTracker port for BeOS anymore. Ingo aka bonefish indicated
that this change could be a bit of a problem for distributions (were there
any) but if we actually wanted to support distributions we'd want to use a
global OSNAME macro somewhere else as I am sure the word 'Haiku' must appear
in the source in other places.

Closes #7767

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


# cb2f9709c51c232bafc851085434b4e121aedb72 26-Jun-2011 Philippe Saint-Pierre <stpere@gmail.com>

The destination directory wasn't stored in the UndoRedo record in the case of a duplication operation, causing issues when trying to redo an undone duplication (couldn't find the volume correctly).

Fixes #2883.


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


# dcb652ca5af20c9377a6c1d9e5b9c5436643f91c 19-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* Fixed ignoring the result of GetStat() which could cause random values to
be counted (for example already if a directory didn't have its X bit set).
* Instead of doing weird heuristics assuming the size on disk, use the actual
value the file system reports. This might have side effects on file systems
that don't report those correctly, which can then be fixed :-)


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


# 2d93b5283f6f66996df4a04f641f1cd8868fdfeb 28-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Set Escape as shortcut for BAlert Cancel option.

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


# 77e2c2dad3a96bee11984a15cfaf3047ee1c9e94 28-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Have ConfirmChangeIfWellKnownDirectory() protect the folders Common, Desktop, Root and Trash from renames and moves. Shift-key dialog protection added for the Home folder. Attempts on Desktop, Root and Trash are blocked silently. I admitt it's a bit odd to protect these so resolutely, unlike system, common and home, which are truly essential to the system. Would it be patronizing to enforce a stricter regime?

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


# 2ee8f3f65fdeb106272bd3a195898778c86abf27 25-Feb-2011 Siarzhuk Zharski <zharik@gmx.li>

Bunch of localization fixes pointed out by Diver. Thanks!

Notes:
- FileTypes: The "Same as" button label separated to two entities in dependency of
context: "Same Type as ..." and "Same Application as ...";
- Tracker: The sentences like "If you do %action [...]. To do %action [...]"
now use separately translated verbs for so called
"ifYouDoAction" and "toDoAction";
- NetworkStatus: NetworkStatusView _ShowConfiguration is fixed back after previous
attempt to localize it in r37337: useless code bloating purged out,
broken quasi-header "ifaceName information:" pulled back from Hell;
- StyledEdit: Menu item "Can't undo" had different casing in some situation. Looks
like HTA cannot detect such situation, so right lines "Can't undo"
were masked by wrong one "Can't Undo" and this line stay untranslated
for most time.



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


# b75475969359d7b034d1635346e05664ccd22283 23-Feb-2011 Philippe Saint-Pierre <stpere@gmail.com>

Replace occurences of strcpy and strcat by strlcpy and strlcat. At both places, while improbable, it was possible to get string overflows.

CID 9043, 9044


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


# 86de478e298e95e86f048e358ebe0669f80f1b29 30-Oct-2010 Jérôme Duval <korli@users.berlios.de>

Don't throw an error when setting filetype on a symlink fails (happens with ext2, attributes are readonly), there are no such errors for dirs and files anyway.


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


# 7b80b5d5181053872dd475b1c559bc010914a31c 17-Sep-2010 Alexandre Deckner <alex@zappotek.com>

* Use multiple translate contexts in Tracker for easier translation


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


# 108f794c9749f5aef3e4f37591e65e1e7edcd76c 16-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by mt: Translate various yet untranslated strings in libtracker,
closes ticket #6374. Thanks a bunch!


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


# 886c627650b0f2522e8a64dd96371cc45a867330 12-Sep-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Fixed debug build (format string/argument mismatches).


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


# 8eff03f5705966c294c96a4e249bb525069b8e78 25-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fixed all build warnings by collectcatkeys that I found
* automatic whitespace cleanup

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


# 4ed28a571a7d5f7f13b5b4636fabfeabdfddd40b 12-Jul-2010 Alexandre Deckner <alex@zappotek.com>

* Applied libtracker localization patch from T.Murai (a.k.a mt) with some modifications (see below).
* Functional modifications:
Reworked InfoWindow file size localization, the patch removed number formating (size in bytes) and was too complicated to my taste.
Replaced the uses of sprintf with the safer snprintf.
Changed signature to x-vnd.Haiku-libtracker instead of x-vnd.Haiku-libTracker (to be consistent with the binary name)
* Style modifications:
Reworked lots of 80 char indenting (probably due to the now shorter line lengths since your previous patch that wasn't using the macros)
Lots of missing brackets when "if's" becomes multiline.
Other minor fixes.

Noticed a few uses of FindItem on translated names that might become problematic someday. Added some TODO's regarding localization of file sizes. Localization might still be
optimized a bit regarding the produced en.catkeys

Note to translators: .catkeys files should be placed in haikusource/data/catalogs/kits/tracker though beware as the base en.catkeys might change
slightly in the next days.
Note to users: As with any other app you need to restart Tracker (or any aother app using libtracker's filepanels) for it to pick the locale setting. E.g: use 'quit an
application' and 'restart Tracker' from process controller.

Thanks a lot T.Murai


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


# 9a708202ac4fd50ce8f032117fe8983ad8cab692 14-May-2010 Rene Gollent <anevilyak@gmail.com>

FSCreateTrashDirs mustn't create the directories itself. This breaks the logic in FSGetTrashDir that creates/applies attributes if needed. This most likely explains Axel's random problems with trash directories being visible, since this would cause a fresh Haiku install's /boot/trash to never be marked invisible as it should be.



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


# 0230fc14ead346c09eed815ce1bbdde2ab02a293 29-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Neither ours nor BeOS' find_directory() will return an error if the directory
does not exist yet.
* Therefore, only BDirectory::SetTo() will fail if the trash does not exist
yet. Changed the code to actually work as expected, now.
* Fixed old and new style violations.


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


# ca34b4221c8f36e7e49f03c5f45f0dfebbe8dae7 28-Apr-2010 Rene Gollent <anevilyak@gmail.com>

Only write the icons if we did in fact have to freshly create the Trash directory. Should fix #5827 completely.



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


# 0872569da9cc928d5bb85da517ee46bbb2ed4a54 28-Apr-2010 Rene Gollent <anevilyak@gmail.com>

Temporarily comment out writing the vector icon since it currently appears to be broken somehow. Will look into it tonight.



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


# 63ebfa8d0837adbce171d06c4fd783bc0a6d4b48 28-Apr-2010 Rene Gollent <anevilyak@gmail.com>

When creating Trash directories, Tracker would only set the hidden and/or icon attributes at startup for volumes mounted at that point in time. Volumes mounted later would have the directory created, but not marked hidden or otherwise attributed, which would lead to confusing situations where the root Trash dirs would appear randomly while browsing the filesystem.
Instead, Tracker now always writes those attributes when calling FSGetTrashDir(), which is reused by FSCreateTrashDirs(). Fixes ticket #5827.




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


# 7438e942060a489af248e71fd6040a5403b58436 07-Feb-2010 Rene Gollent <anevilyak@gmail.com>

Fix spacing.



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


# 807bdfdf67a7210aed37af0e31f11035732c2658 07-Feb-2010 Rene Gollent <anevilyak@gmail.com>

As pointed out by mmlr, we only need to provide the symbol, and only in the case of gcc2.



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


# a5c2457fa8bc8afcb56f6629e6f254620cca380e 07-Feb-2010 Rene Gollent <anevilyak@gmail.com>

Re-add dev_t version of FSGetDeskDir for bin compat reasons: BeIDE (unfortunately) appears to make use of some of the private FSUtils calls. Reimplemented call to use the normal FSGetDeskDir ignoring the passed in volume argument since we no longer have a desktop directory any place else. Fixes the problem reported in #5135.


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


# 497aa62c2ff2a2a1947be439c3f74a0c69bc8018 30-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

* Provide a LaunchLooper that receives launch messages and executes the launch
functions provided with the given arguments.
* Make use of that looper to replace spawning a thread for each launch task.

On the one side this reduces the amount of used threads (and should fix #698)
and on the other side it makes the order in which refs are sent a bit more
predictable.


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


# 406799c165828cf3c523f591065a930c4c5a4af7 17-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Copy and paste bugs prevented the copy progress bar to function properly.


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


# aa61ee48ef2a616cf1b459f335f97b34de83f66f 17-Jan-2010 Rene Gollent <anevilyak@gmail.com>

Cleaned up legacy icon mappings and add some missing resource definitions to
TrackerIcons.h. Also removed the setup for the folder icon mimetype in
TrackerInitialState, as it was using a non-existent resource ID to do so with.



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


# 3cc5c3ffb1483f877201ace3b8f79e390f39291c 17-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Further cleanup of TrackerLoopControl. gStatusWindow is now nowhere used anymore
except inside TrackerLoopControl. The only expected change of behavior is when
trying to copy something onto a read-only volume. AFAICS, it would previously
prompt an alert and not already show the status window. Now it will show the
status window and prompt an alert, like in all the other situations when the
operation would be stopped before it even started by an alert. I was able to
remove quite a few code duplications along the way. CopyLoopControl can be
instantiated by itself and provides default implementations which could in turn
be removed from TrackerLoopControl.


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


# 8aad948744b464be52ab826340247f75963f8408 16-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

* 80 chars/line limit cleanup
* Fixed one more occurance of "dos" filesystem check.


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


# 7ca5e8873b6cec4e331ab0419d5221ec49105dbb 15-Jan-2010 Rene Gollent <anevilyak@gmail.com>

* PoseView: Re-enabled respecting the invisible pose attribute.
* FSUtils: Mark the root-level Trash directories as invisible. For the time being,
this renders the Trash only visible on the Desktop once more, pending
further consensus on how to handle it in the future. Note however that
this also means that Desktop and/or var directories that still have the
old _trk/pinfo_le attribute from prior to the previous visibility changes
will also be marked invisible again, and those people dual-booting older
BeOS will also still see this issue as the Tracker on those will still
force-write the invisible attribute onto those directories on every volume.



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


# 01dffd8edd94699ac1e6f2cc4322555f2171da14 14-Jan-2010 Rene Gollent <anevilyak@gmail.com>

More Tracker refactoring:
* relocated Trash dirs to volume roots by modifying find_directory() to report the trash location as volume/Trash.
* FSUtils no longer creates /home/Desktop on every volume.
* TrashWatcher now keeps icons in sync on all volumes.
* Simplified FSGetDeskDir since it no longer has to worry about getting the desk directory on any volume other than the root.
* Relocated trash context menu logic to BContainerWindow so it can also be used at the volume roots.
* DesktopPoseView now creates a virtual Trash pose representing the trash contents as before.
* Corrected typo: Model::WriteAttrKillForegin() -> Model::WriteAttrKillForeign().

Closes ticket #5245.



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


# 7b6edf5209614b01e0c0a6a226fe82c11e87abe0 14-Jan-2010 Rene Gollent <anevilyak@gmail.com>

Simplified FSIsDeskDir() as suggested by Axel. Thanks!



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


# 167898484d70594fedd4cf1f83927a54f80d7229 13-Jan-2010 Rene Gollent <anevilyak@gmail.com>

FSIsDeskDir should only consider a path to be the desktop if it lives on the boot volume. Fixes non-boot Desktop dirs still showing the volumes and such in windows and nav menus.


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


# 9869082c8da110fc0ef6a25c1ae4cd8d7f9b2c04 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

* First attempt at cleaning up the CopyLoopControl mess. Instantiate one
TrackerCopyLoopControl and pass it on when needed. Avoid access to
gStatusWindow directly. Later on, I will try to make it possible to drop more
files/folders onto an ongoing copy process to append it to the job, i.e. copy
those files to the same target folder.
* For each updating the status, entry_refs were copied instead of passed by
reference, which was a bit unnecessary overhead.

* Some coding style cleanup.


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


# 2865e5a048cc469e795643b947df1d976370d933 12-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Changed strings to sentence case in the rest of the Tracker code.
Remaining part of case-tracker.diff from #5169.


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


# 671dd808619ef6043eca11b09a193d877181d10f 12-Jan-2010 Rene Gollent <anevilyak@gmail.com>

Various cleanups:
* Removed dead/obsolete Integrate Non-boot Desktops code.
* Modified PoseView to ignore the fInvisible attribute of BPoseInfo for now.
This has the net effect that the Desktop folder and /boot/var are no longer
hidden from the user. To go with this change, Tracker no longer forcibly
writes that hidden setting to those folders on access. This feature might
be useful again in the future (especially in conjunction with relocating
the Trash folder somewhere such as the disk root), but is currently somewhat
problematic because those dual-booting with BeOS will still have a Tracker
that force writes those attributes which would bring us back to square one
with respect to showing the Desktop folder when we start respecting the
attribute again. Suggestions welcome. Haiku-only users can remove the
_trk/pinfo_le attribute on those folders to remove the invisibility
in any case.
* TrackerSettings: Removed obsolete desktop integration settings. Also
modified TrackerSettings parser to skip unrecognized settings instead
of aborting the settings file parsing process entirely.

Closes ticket #2872.



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


# 2ecfe97e37da9b8e321850b6f2d7abcee0ff30c4 18-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

* Some cleanup for 80 chars/line limit
* The target volume block size is passed to the CalcItemsAndSize() function
to get a more accurate picture of whether items will fit. Before, it would
assume hard coded 1024 bytes block size.


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


# 78248acdcca8336412c49df6933a0f9bcaa255b0 18-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

The usage of BStatusWindow::HasStatus() was really bogus. First of all
HasStatus() and UpdateStatus() were not run in the same lock, so the job
view could be gone anyway. And secondly, both methods iterate over all status
items to find the one with the correct thread. Doh, if we don't have enough
work to do, lets make some! Of course this was not critical in any case...


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


# d3b113282ac7a8412b61ada23aff12b2acd334fe 27-Oct-2009 Rene Gollent <anevilyak@gmail.com>

Move CheckDevicesEqual into FSUtils so it can be used in more places.
Rework ContainerWindow's B_REFS_RECEIVED to use CheckDevicesEqual to decide move vs copy as is done elsewhere.

Fixes ticket #4850.



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


# 0eab14cd223760b02fad3bd4474e572c2801c453 04-Oct-2009 Ryan Leavengood <leavengood@gmail.com>

Apply patch from Caitlin Shaw, aka rogueeve, to fix Tracker's replace behavior
for the case of 1 file.

Fixes #4717.


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


# 2c69b5b6c0e7b481a0c43366a1942a6055cbb864 19-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Made the libbe_test environment basically working under Haiku - to actually
make it work, one would need to use versioning for all libbe symbols. This is
worth an 8k price per file that links against libbe.so, so I didn't want to
commit this as is. An alternative to this solution would be to write a
separate application that is responsible for the app_server's window. Comments
welcome.
* Removed BeOS compatbility of the libbe_test stuff.
* Renamed the libbe_test targets from *haiku* to *test*, ie. libbe_haiku.so is
now called libbe_test.so, haiku_registrar is now test_registrar, etc.
* This also removes BeOS compatibility from tracker/FSUtils.cpp (all BeOS
compatibility should be removed, but I don't want to make Alexandre more work
in his branch, and it's not urgent at all).
* Replaced the former "run" scripts for the test environment with a single
run script (see updated NOTES file).
* Removed the libbe_test target from some applications - this was only to help
developing them under BeOS, and is thus no longer necessary.


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


# 33ce19159df65542687817e763a4504c9af39f5b 23-Apr-2009 Stefano Ceccherini <stefano.ceccherini@gmail.com>

if opening a document failed because the system is shutting down, don't ask the user if he wants to open the document with another application, since that would fail as well.

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


# 080385d599154e4bd4abbb8a40fb8c6834e3a000 09-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

Fixed logic to detect and warn about changes in the system folder. Merged
the "system" folder and "system folder or it's contents" case.


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


# 019f90e6348a15e47ef361c79970c4222e569b2d 05-Apr-2009 Jonas Sundström <jonas@kirilla.com>

Setting the escape key as shortcut for the Cancel options of Tracker's dialogs.

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


# 317bd7dda3eb26d4d24ba5b0a831461119f70d34 03-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Changed directory structure as suggested on the mailing list.
* Made the TimeZoneView less error prone, and also actually use Haiku code (the
previous check didn't work since it used #if, not #ifdef).
* Also took the liberty to rename our boot loader to haiku_loader, since I had
to update the nasm binary anyway. Updated the assembly sources to nasm 2.0.
* I haven't found where the synth location in the MIDI code is specified,
though.
* Also, NetBootArchive, and FloppyBootImage haven't been updated yet. Will do
so next.
* Some optional packages still put their license to beos/etc/licenses. I didn't
update them yet, as we'll probably do so anyway at some point. Also, I think
we might want to introduce a common/data/licenses instead for those.
* If you encounter any problems, please tell!


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


# 492e224b8e49c68ba8d98b2305a3add43438d5cc 14-Mar-2009 Michael Lotz <mmlr@mlotz.ch>

* Update the signature of _kern_load_image(). It has been changed and therefore
the calls to it always failed.
* Check what error is returned and read the approprite details out of the
message.


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


# 6a392dcec40bf0f22ddd8851bbf56f2f613a0a8c 29-Jan-2009 Rene Gollent <anevilyak@gmail.com>

Skip doing the preflight size calculation in cases where the requested FS operation will be instantaneous anyways.



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


# c3341227ea4fd2e248031bb5f2650a38d128a238 03-Dec-2008 Rene Gollent <anevilyak@gmail.com>

If the source volume is read only, only allow a copy op since move makes no sense in this case. Ideally we should probably also modify NavMenu and the drag context menu to only present the options that make sense in a particular situation. Fixes ticket #3195.


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


# 4f7d38d331f420a44b9ff458b267f6eaf8d3ff4c 02-Dec-2008 Rene Gollent <anevilyak@gmail.com>

Correctly indicate "Copying" vs "Moving" state in status window (thanks Adrian Panasiuk for pointing this out).



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


# 87f41e61ea0ecb3bf199d1b2fa8a8fa5e771dd61 25-Nov-2008 Rene Gollent <anevilyak@gmail.com>

Resolve several bugs that are probably as old as Tracker itself:
1) Move To now works as advertised in all cases - previously it
silently converted a move into a copy if the destination volume
was different, as its move code was not geared towards handling
that case properly. This also has the side effect that drag and
drop is now always a move as well unless overridden via right click
DnD. This may or may not be reverted back to the original behavior
later depending on the consensus.
2) Copying a folder onto another folder of the same name now merges
the contents instead of destroying the original. This fixes ticket
#1420. Still to do: interactive prompting to allow fine grained file
replacement and skipping in this and other multi-file cases, but
I'll open a new enhancement ticket for that.



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


# 9141571856dff38ff0a8f172b188b80fbc9596e0 25-Nov-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

- Traverse links when adding well known directories.

This change will make directories like the downloads folder get its correct
special icon even if it is a link to a another directory. The destination
directory also gets the icon which makes it easy to identify special
directories even in other partitions.



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


# dcf3842b09693d067406dca1ddf34c0c1c6bec72 25-Aug-2008 Bruno G. Albuquerque <bga@bug-br.org.br>

- Changed the well-known "Downloads" dir to be named "downloads" for
consistency.

All well-known directories in the home dir ("mail", "people", "config") are all
lowercase. The only exception was the "Downloads" one.



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


# f0e6ea2160bd4e098d36ddbd01a2583788945397 12-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Tracker never copied zero-sized attributes.


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


# d22f48c9080db38b13890290767bebfa1a6b1b1d 02-Aug-2007 Stephan Aßmus <superstippi@gmx.de>

* fix the build of the app_server test environment (libbe_test) after
the change to the nodemonitor syscall


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


# 74f09960d21fdec7352a60e1813aeac2b597f4a6 26-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

Forgot to remove some debug output.


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


# 74c0424a43b550536d4b55b8fc13631ca4edfcb0 26-Jul-2007 Axel Dörfler <axeld@pinc-software.de>

* Added a mechanism to retrieve a BMessage with eventual error descriptions
for _kern_load_image().
* Added KMessage to the runtime_loader (a bit hacky, though) - it will use
it to deliver the above mentioned functionality.
* load_dependencies() did return the wrong status code in case a library
was missing; now it returns B_MISSING_LIBRARY.
* load_dependencies() will now try to load all dependencies when a report
message is requested; therefore, all missing libraries are listed.
* Renamed uspace_program_args to user_space_program_args.
* The kernel filled in various members of the user_space_program_args structure
unsafely, ie. was not using user_memcpy().
* Renamed some local variables in team.c to better fit our style guide (ie.
uargs to userArgs).
* Changed Tracker to use the new _kern_load_image() variant on Haiku to retrieve
and report all missing libraries. This fixes bug #1324.
* Adapted kernel_cpp.cpp to the runtime loader as well; the latter will now
compile with _LOADER_MODE defined.


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


# eaac07392a47bde37ecebe60b878f4029a0b30b4 19-Jan-2007 Axel Dörfler <axeld@pinc-software.de>

* Fixed build under R5/Dano that was broken since Stippi added vector icon support.
* Separated Haiku's icon stuff a bit better, so that Tracker can still be built
without having Haiku headers around.
* Minor cleanup.


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


# 15e5a8b1e93aee46ad534271a0292af43c333589 07-Nov-2006 Stephan Aßmus <superstippi@gmx.de>

some more forgotten places for B_VECTOR_ICON_TYPE


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


# 9ecf9d1c1d4888d341a6eac72112c72d1ae3a4cb 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


# c4d51ab434f52dea55fa2671115d6589d87712e3 16-Apr-2006 Axel Dörfler <axeld@pinc-software.de>

* FSEmptyTrash() no longer checks against a specific error code from
find_thread().
* Minor cleanup.


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


# cd94fddab267dad9683764eb2606994ae38479c0 28-Mar-2006 Axel Dörfler <axeld@pinc-software.de>

* Tracker wrote icons with the wrong type at several places.
* Also replaced all B_COLOR_8_BIT with the B_CMAP8 constant.


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


# e2491d6b8a16ca83b1a8a5580c12c70a861be71a 08-Jan-2006 Jérôme Duval <korli@users.berlios.de>

reverted to previous version


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


# ebc8a403e56695c94de08e50957e9ceb218e0976 04-Jan-2006 Jérôme Duval <korli@users.berlios.de>

Installer makes use of FSCopyFolder in libtracker.so


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


# 8126a5e7f45ed8f9aab2e3d98994f2004f1e21a6 11-Dec-2005 Axel Dörfler <axeld@pinc-software.de>

Fixed debug build.


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


# 3d4b000bbde41b0eef27176f3e5fb8dda3407a5d 27-Jul-2005 Philippe Houdoin <philippe.houdoin@gmail.com>

More s/BeOS/Haiku/g if __HAIKU__...


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


# 02be5353fd41ea40007a382e13f007eaf6b5a3a0 22-May-2005 Axel Dörfler <axeld@pinc-software.de>

Added libtracker.so to the repository and the build.


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