2002-07-09 16:24:59 +04:00
|
|
|
# Annotations
|
|
|
|
# ===========
|
|
|
|
#
|
|
|
|
# This file contains a list of miscellaneous annotations.
|
|
|
|
# An entry has the following tags:
|
|
|
|
# * OS: the concerned "operating system" (BeOS R5, OBOS POSIX)
|
|
|
|
# * Module: the concerned class or file
|
|
|
|
# * Location: a more precise location, e.g. a function
|
|
|
|
# * Description: a description of the item
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BEntry
|
|
|
|
Location: BEntry(const BDirectory*, const char*),
|
|
|
|
SetTo(const BDirectory*, const char*)
|
|
|
|
Description: Crash when passing a NULL BDirectory.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BEntry
|
|
|
|
Location: MoveTo()
|
|
|
|
Description: Crashs when passing a NULL BDirectory.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BPath
|
|
|
|
Location: BPath(const BDirectory*, const char*, bool),
|
|
|
|
SetTo(const BDirectory*, const char*, bool)
|
|
|
|
Description: Crash when passing a NULL BDirectory.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BPath
|
|
|
|
Location: GetParent()
|
|
|
|
Description: Crashs when called on an uninitialized object or when passing
|
|
|
|
a NULL BPath.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BPath
|
|
|
|
Location: operator==(), operator!=()
|
|
|
|
Description: Uninitialized paths are not equal. An initialized path equals
|
|
|
|
a (const char*)NULL, an uninitialized path does not.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BPath
|
|
|
|
Location: Flatten()
|
|
|
|
Description: Crashs when passing a NULL buffer and doesn't check the buffer
|
|
|
|
size.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BStatable
|
|
|
|
Location: destructor
|
|
|
|
Description: Is not virtual.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BStatable
|
|
|
|
Location: GetAccessTime(), SetAccessTime()
|
|
|
|
Description: Access time unused.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BStatable
|
|
|
|
Location: GetPermissions()
|
|
|
|
Description: Doesn't filter the mode flags, thus not only the permissions are
|
|
|
|
returned.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BStatable
|
|
|
|
Location: Get*()
|
|
|
|
Description: Crash when passing a NULL pointer.
|
|
|
|
|
|
|
|
|
|
|
|
OS: OBOS POSIX
|
|
|
|
Module: BStatable
|
|
|
|
Location: SetPermissions/ModificationTime/CreationTime()
|
|
|
|
Description: Don't work due to set_stat(FileDescriptor, StatMember)
|
|
|
|
limitations.
|
|
|
|
|
|
|
|
|
|
|
|
OS: OBOS POSIX
|
|
|
|
Module: kernel_interface
|
|
|
|
Location: set_stat(FileDescriptor, StatMember)
|
|
|
|
Description: WSTAT_MODE, WSTAT_*TIME can't be implemented due to missing
|
|
|
|
fchmod()/FD time setters.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: libroot
|
|
|
|
Location: fchown()
|
|
|
|
Description: fchown(file, 0xFFFFFFFF, gid) sets the UID to 0xFFFFFFFF, which
|
|
|
|
is a bug.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: libroot
|
|
|
|
Location: readdir(), fs_read_attr_dir()
|
|
|
|
Description: The d_reclen field of a dirent structure does not contain the
|
|
|
|
length of the whole structure (unlike stated in
|
|
|
|
BeBook::BEntryList), but only the length of the d_name field.
|
|
|
|
If the terminating '\0' is counted or not seems to depend on the
|
|
|
|
file system.
|
|
|
|
|
|
|
|
|
|
|
|
OS: OBOS POSIX
|
|
|
|
Module: kernel_interface
|
|
|
|
Location: read_link(FileDescriptor, char*, size_t)
|
|
|
|
Description: Can't be implemented due to the lack of an FD readlink() version.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BSymLink
|
|
|
|
Location: MakeLinkedPath(const char*, BPath*)
|
|
|
|
Description: The dirPath seems to be converted into a BDirectory, which
|
|
|
|
causes links to be resolved, i.e. a "/tmp" dirPath expands to
|
|
|
|
"/boot/var/tmp". That does also mean, that the dirPath must
|
|
|
|
exists!
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BSymLink
|
|
|
|
Location: MakeLinkedPath()
|
|
|
|
Description: Crashs when passing a NULL const char* or BDirectory.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BNode
|
|
|
|
Location: GetNextAttrName()
|
|
|
|
Description: Crashs when passing a NULL buffer.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BNode
|
|
|
|
Location: Read/WriteAttrString()
|
|
|
|
Description: Crash when passing a NULL BString.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BNode
|
|
|
|
Location: Lock()
|
|
|
|
Description: Given two BNode objects initialized to the same node, it is
|
|
|
|
possible to Lock() one of them, although the BeBook says it isn't.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BDirectory
|
|
|
|
Location: BDirectory(const node_ref*), SetTo(const node_ref*)
|
|
|
|
Description: Crash when passing a NULL node_ref.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BDirectory
|
|
|
|
Location: GetEntry()
|
|
|
|
Description: Crashs when passing a NULL BEntry.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BDirectory
|
|
|
|
Location: FindEntry()
|
|
|
|
Description: Crashs when passing a NULL BEntry.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BDirectory
|
|
|
|
Location: Contains()
|
|
|
|
Description: If the BDirectory is uninitialized, the const char* version
|
|
|
|
returns true for existing entries, whereas the const BEntry*
|
|
|
|
version returns false.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BDirectory
|
|
|
|
Location: Contains(const BEntry*, bool)
|
|
|
|
Description: Crashs when passing a NULL BEntry.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BDirectory
|
|
|
|
Location: Contains(const BEntry*, bool)
|
|
|
|
Description: Bug: Tests with a directory, contained file/dir/symlink and
|
|
|
|
the respective node kind (B_FILE_NODE/B_DIRECTORY_NODE/
|
|
|
|
B_SYMLINK_NODE) result false.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BDirectory
|
|
|
|
Location: GetNextDirents()
|
|
|
|
Description: Crashs when passing a NULL buffer.
|
|
|
|
|
|
|
|
|
|
|
|
OS: OBOS
|
|
|
|
Module: BQuery
|
|
|
|
Location: Push*()
|
|
|
|
Description: Return status_t instead of void. Fail, if Fetch() has already
|
|
|
|
been called.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BQuery
|
|
|
|
Location: PushOp()
|
|
|
|
Description: Crashs when pushing B_CONTAINS/B_BEGINS/ENDS_WITH on an empty
|
|
|
|
stack.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BQuery
|
|
|
|
Location: PushUInt64()
|
|
|
|
Description: Doesn't work. Predicates constructed using it are invalid.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BQuery
|
|
|
|
Location: Get/SetPredicate()
|
|
|
|
Description: Crash when passing a NULL BString/char*.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BQuery
|
|
|
|
Location: SetVolume()
|
|
|
|
Description: Crashs when passing a NULL BVolume.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BQuery
|
|
|
|
Location: GetNextEntry/Ref()
|
|
|
|
Description: Crash when passing a NULL BEntry/entry_ref.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: {Get,Set}LongDescription()
|
|
|
|
Description: Crashes when passed a NULL description
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: GetLongDescription()
|
|
|
|
Description: The contents of the description string are modified even if
|
|
|
|
the function fails.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: SetShortDescription()
|
|
|
|
Description: When passed a NULL description, doesn't crash, but does
|
|
|
|
appear to make the result of following calls to SetShortDescription
|
|
|
|
unreliable (sometimes they work, sometimes they don't).
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location:
|
|
|
|
Description: The maximal MIME string length, BMimeType accepts is
|
|
|
|
B_MIME_TYPE_LENGTH *not* including terminating null. Note, that
|
|
|
|
app_info reserves only B_MIME_TYPE_LENGTH chars for the
|
|
|
|
signature field.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: SetAppHint()
|
|
|
|
Description: The entry_ref passed to SetAppHint() must be valid but is not
|
|
|
|
required to refer to a file that actually exists; furthermore,
|
|
|
|
if it does exist, the MIME type of the file is not required to
|
|
|
|
match the BMimeType object's type.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: SetIcon()
|
|
|
|
Description: The BBitmap passed to BMimeType::SetIcon() must be in the B_CMAP8
|
|
|
|
color space, or the application will crash. We should remember
|
|
|
|
to be smarter about this.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: GetIcon()
|
|
|
|
Description: The BBitmap passed to BMimeType::GetIcon() must be in the B_CMAP8
|
|
|
|
color space. If not, the call returns B_OK but doesn't actually
|
|
|
|
modify the bitmap. We should remember to be smarter about this.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: IsValid(const char*), GetSupertype(), Contains()
|
|
|
|
Description: Crash when passing NULL.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: {Get,Set}IconForType(char*, BBitmap*, icon_size)
|
|
|
|
Description: Passing NULL as the first parameter is the same as calling
|
|
|
|
{Get,Set}Icon() with the second two parameters (i.e. {gets,sets}
|
|
|
|
the icon for the type itself).
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: SetFileExtensions()
|
|
|
|
Description: Passing a NULL message does not clear the File Extensions field
|
|
|
|
for the MIME type as indicated by the Be Book; instead, it crashes
|
|
|
|
the application :-)
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: GetFileExtensions()
|
|
|
|
Description: A B_STRING_TYPE field of name "type" is *added* to the result
|
|
|
|
containing the MIME type of the BMimeType object. Since the
|
|
|
|
BMessage passed to SetFileExtensions() appears to be simply
|
|
|
|
flattened into the appropriate attribute, the "type" field is
|
|
|
|
appended to any such "type" fields that may already exist in
|
|
|
|
the original BMessage.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: Install()
|
|
|
|
Description: From the Be Book: "Currently, Install() may return a random value
|
|
|
|
if the object is already installed."
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location:
|
|
|
|
Description: MIME Type strings are converted to lowercase before being used
|
|
|
|
as filenames in the MIME database.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: Start/StopWatching()
|
|
|
|
Description: An invalid messenger (BMessenger::Invalid()) is fine as parameter.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: Mime.h/cpp
|
|
|
|
Location: get_device_icon()
|
|
|
|
Description: KDL when passing a NULL buffer!
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: CheckSnifferRule()
|
|
|
|
Description: Crashes when passing a NULL rule.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: GetSnifferRule()
|
|
|
|
Description: Crashes when passing a NULL BString.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: Check/Get/SetSnifferRule()
|
|
|
|
Description: The sniffer rules description in the BeBook deviates considerably
|
|
|
|
from the actual implementation:
|
|
|
|
- + masks
|
|
|
|
- + top level ORs: (patterns...) | (patterns...) | ...
|
|
|
|
- - range overriding: [range1] ([range2]pattern)
|
|
|
|
- either no or complete ranges: (pattern1 | pattern2)
|
|
|
|
or ([range1]pattern1 | [range2]pattern2), but not
|
|
|
|
([range1]pattern1 | pattern2)
|
|
|
|
- CheckSnifferRule() doesn't check some of the values, e.g.
|
|
|
|
ranges (negative values, or begin > end) or 0 <= priority <= 1.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: GuessMimeType(const entry_ref *, BMimeType *)
|
|
|
|
Description: When passing an uninitialized entry_ref, B_OK and
|
|
|
|
"application/octet-stream" are returned.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: SetAttrInfo
|
|
|
|
Description: Crashes when passed a NULL BMessage.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: GetInstalledTypes(BMessage*)
|
|
|
|
Description: The set of types returned by this function is determined as follows:
|
|
|
|
+ All *entries* (files, dirs, or symlinks) in the root MIME database
|
|
|
|
directory treated as MIME types, except those that begin with an
|
|
|
|
underscore; only dirs are treated as supertypes (unless the dir's
|
|
|
|
META:TYPE attribute is different than its filename, in which case
|
|
|
|
it's not treated as a supertype).
|
|
|
|
+ For each supertype, all *entries* (files, dirs, or symlinks) in the
|
|
|
|
corresponding supertype subdirectory are treated as a MIME type, except
|
|
|
|
those that begin with an underscore.
|
|
|
|
+ The MIME type for supertypes is taken from the name of the supertype
|
|
|
|
subdirectory.
|
|
|
|
+ The MIME type for non-supertypes is take from the entry's META:TYPE
|
|
|
|
attribute. If the entry has no META:TYPE attribute, the MIME type is
|
|
|
|
derived by concatentating the name of the supertype directory to the
|
|
|
|
name of the entry, separated by a "/" character. Either way, the MIME
|
|
|
|
string returned is not checked to be valid.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: GetInstalledTypes(char *super, BMessage*)
|
|
|
|
Description: The set of types returned by this function is determined as follows:
|
|
|
|
+ All *entries* (files, dirs, or symlinks) in the MIME database directory
|
|
|
|
corresponding to the "super" argument are treated as subtypes, *except*
|
|
|
|
those whose filenames begin with an underscore. It does not matter if
|
|
|
|
the supertype directory has a META:TYPE attribute or not.
|
|
|
|
+ The MIME type is taken from the entry's META:TYPE attribute. If the entry
|
|
|
|
has no such attribute, the MIME type is derived by concatentating the name
|
|
|
|
of the supertype directory (the directory's META:TYPE attribute is ignored
|
|
|
|
if present) to the name of the entry, separated by a "/" character. Either
|
|
|
|
way, the MIME string returned is not checked to be valid.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: GetInstalledSupertypes(BMessage*)
|
|
|
|
Description: The set of types returned by this function is determined as follows:
|
|
|
|
+ All directories in the root MIME database directory are treated as
|
|
|
|
supertypes (even directories beginning with an underscore).
|
|
|
|
+ The MIME type is derived from the directory name, which is not
|
|
|
|
checked to be a valid MIME string.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BMimeType
|
|
|
|
Location: GetWildcardApps()
|
|
|
|
Description: This code:
|
|
|
|
BMessage msg;
|
|
|
|
status_t error = BMimeType::GetWildcardApps(&msg);
|
|
|
|
is the same as:
|
|
|
|
BMessage msg;
|
|
|
|
BMimeType mime("application/octet-stream");
|
|
|
|
status_t error = mime.InitCheck();
|
|
|
|
if (!error)
|
|
|
|
error = mime.GetSupportingApps(&msg);
|
|
|
|
|
2002-08-18 03:57:55 +04:00
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BNodeInfo
|
|
|
|
Location: {Set,Get}AppHint()
|
|
|
|
Description: The file attribute the path of the "app hint" application
|
|
|
|
("BEOS:PPATH") is of type B_MIME_STRING_TYPE instead of
|
|
|
|
B_STRING_TYPE.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BNodeInfo
|
|
|
|
Location: GetType()
|
|
|
|
Description: When the string stored in the "BEOS:TYPE" attribute is longer
|
|
|
|
than B_MIME_TYPE_LENGTH, the returned string is one character
|
|
|
|
shorter than the actual string.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BNodeInfo
|
|
|
|
Location: GetIcon()
|
|
|
|
Description: Crashes when passing a NULL BBitmap.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BNodeInfo
|
|
|
|
Location: GetIcon()
|
|
|
|
Description: Crashes when getting B_LARGE_ICON and passing a BBitmap with
|
|
|
|
B_RGB32 color space. B_MINI_ICON works just fine.
|
|
|
|
|
|
|
|
|
2002-08-26 02:43:17 +04:00
|
|
|
OS: BeOS R5
|
|
|
|
Module: BAppFileInfo
|
|
|
|
Location: GetSupportedTypes()
|
|
|
|
Description: Crashes when passing a NULL BMessage.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BAppFileInfo
|
|
|
|
Location: Supports()
|
|
|
|
Description: Crashes when passing a NULL BMimeType.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BAppFileInfo
|
|
|
|
Location: SetSupportedTypes(const BMessage *types, bool syncAll)
|
|
|
|
Description: Crashes when passing a NULL BMessage and syncAll = true.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BAppFileInfo
|
|
|
|
Location: SetSupportedTypes()
|
|
|
|
Description: Sometimes installs a supported type, also when the file's
|
|
|
|
signature is not installed in the MIME database. This happens
|
|
|
|
e.g. when setting two supported types and then setting two
|
|
|
|
different types. The second of the new types is installed.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BAppFileInfo
|
|
|
|
Location: SetSupportedTypes(const BMessage *types)
|
|
|
|
Description: Returns B_ENTRY_NOT_FOUND when the file's signature is not
|
|
|
|
installed in the MIME database, although the operation is
|
|
|
|
carried out successfully.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BAppFileInfo
|
|
|
|
Location: GetIcon(), GetIconForType()
|
|
|
|
Description: Crashes when getting B_LARGE_ICON and passing a BBitmap with
|
|
|
|
B_RGB32 color space. B_MINI_ICON works just fine.
|
|
|
|
|
|
|
|
|
|
|
|
OS: BeOS R5
|
|
|
|
Module: BAppFileInfo
|
|
|
|
Location: GetVersionInfo(), SetVersionInfo()
|
|
|
|
Description: Crash when passing a NULL version_info.
|
|
|
|
|
|
|
|
|