1*e81a9547SAugustin Cavalier# Annotations 2*e81a9547SAugustin Cavalier# =========== 3*e81a9547SAugustin Cavalier# 4*e81a9547SAugustin Cavalier# This file contains a list of miscellaneous annotations. 5*e81a9547SAugustin Cavalier# An entry has the following tags: 6*e81a9547SAugustin Cavalier# * OS: the concerned "operating system" (BeOS R5, OBOS POSIX) 7*e81a9547SAugustin Cavalier# * Module: the concerned class or file 8*e81a9547SAugustin Cavalier# * Location: a more precise location, e.g. a function 9*e81a9547SAugustin Cavalier# * Description: a description of the item 10*e81a9547SAugustin Cavalier 11*e81a9547SAugustin CavalierOS: BeOS R5 12*e81a9547SAugustin CavalierModule: BEntry 13*e81a9547SAugustin CavalierLocation: BEntry(const BDirectory*, const char*), 14*e81a9547SAugustin Cavalier SetTo(const BDirectory*, const char*) 15*e81a9547SAugustin CavalierDescription: Crash when passing a NULL BDirectory. 16*e81a9547SAugustin Cavalier 17*e81a9547SAugustin Cavalier 18*e81a9547SAugustin CavalierOS: BeOS R5 19*e81a9547SAugustin CavalierModule: BEntry 20*e81a9547SAugustin CavalierLocation: MoveTo() 21*e81a9547SAugustin CavalierDescription: Crashs when passing a NULL BDirectory. 22*e81a9547SAugustin Cavalier 23*e81a9547SAugustin Cavalier 24*e81a9547SAugustin CavalierOS: BeOS R5 25*e81a9547SAugustin CavalierModule: BPath 26*e81a9547SAugustin CavalierLocation: BPath(const BDirectory*, const char*, bool), 27*e81a9547SAugustin Cavalier SetTo(const BDirectory*, const char*, bool) 28*e81a9547SAugustin CavalierDescription: Crash when passing a NULL BDirectory. 29*e81a9547SAugustin Cavalier 30*e81a9547SAugustin Cavalier 31*e81a9547SAugustin CavalierOS: BeOS R5 32*e81a9547SAugustin CavalierModule: BPath 33*e81a9547SAugustin CavalierLocation: GetParent() 34*e81a9547SAugustin CavalierDescription: Crashs when called on an uninitialized object or when passing 35*e81a9547SAugustin Cavalier a NULL BPath. 36*e81a9547SAugustin Cavalier 37*e81a9547SAugustin Cavalier 38*e81a9547SAugustin CavalierOS: BeOS R5 39*e81a9547SAugustin CavalierModule: BPath 40*e81a9547SAugustin CavalierLocation: operator==(), operator!=() 41*e81a9547SAugustin CavalierDescription: Uninitialized paths are not equal. An initialized path equals 42*e81a9547SAugustin Cavalier a (const char*)NULL, an uninitialized path does not. 43*e81a9547SAugustin Cavalier 44*e81a9547SAugustin Cavalier 45*e81a9547SAugustin CavalierOS: BeOS R5 46*e81a9547SAugustin CavalierModule: BPath 47*e81a9547SAugustin CavalierLocation: Flatten() 48*e81a9547SAugustin CavalierDescription: Crashs when passing a NULL buffer and doesn't check the buffer 49*e81a9547SAugustin Cavalier size. 50*e81a9547SAugustin Cavalier 51*e81a9547SAugustin Cavalier 52*e81a9547SAugustin CavalierOS: BeOS R5 53*e81a9547SAugustin CavalierModule: BStatable 54*e81a9547SAugustin CavalierLocation: destructor 55*e81a9547SAugustin CavalierDescription: Is not virtual. 56*e81a9547SAugustin Cavalier 57*e81a9547SAugustin Cavalier 58*e81a9547SAugustin CavalierOS: BeOS R5 59*e81a9547SAugustin CavalierModule: BStatable 60*e81a9547SAugustin CavalierLocation: GetAccessTime(), SetAccessTime() 61*e81a9547SAugustin CavalierDescription: Access time unused. 62*e81a9547SAugustin Cavalier 63*e81a9547SAugustin Cavalier 64*e81a9547SAugustin CavalierOS: BeOS R5 65*e81a9547SAugustin CavalierModule: BStatable 66*e81a9547SAugustin CavalierLocation: GetPermissions() 67*e81a9547SAugustin CavalierDescription: Doesn't filter the mode flags, thus not only the permissions are 68*e81a9547SAugustin Cavalier returned. 69*e81a9547SAugustin Cavalier 70*e81a9547SAugustin Cavalier 71*e81a9547SAugustin CavalierOS: BeOS R5 72*e81a9547SAugustin CavalierModule: BStatable 73*e81a9547SAugustin CavalierLocation: Get*() 74*e81a9547SAugustin CavalierDescription: Crash when passing a NULL pointer. 75*e81a9547SAugustin Cavalier 76*e81a9547SAugustin Cavalier 77*e81a9547SAugustin CavalierOS: OBOS POSIX 78*e81a9547SAugustin CavalierModule: BStatable 79*e81a9547SAugustin CavalierLocation: SetPermissions/ModificationTime/CreationTime() 80*e81a9547SAugustin CavalierDescription: Don't work due to set_stat(FileDescriptor, StatMember) 81*e81a9547SAugustin Cavalier limitations. 82*e81a9547SAugustin Cavalier 83*e81a9547SAugustin Cavalier 84*e81a9547SAugustin CavalierOS: OBOS POSIX 85*e81a9547SAugustin CavalierModule: kernel_interface 86*e81a9547SAugustin CavalierLocation: set_stat(FileDescriptor, StatMember) 87*e81a9547SAugustin CavalierDescription: WSTAT_MODE, WSTAT_*TIME can't be implemented due to missing 88*e81a9547SAugustin Cavalier fchmod()/FD time setters. 89*e81a9547SAugustin Cavalier 90*e81a9547SAugustin Cavalier 91*e81a9547SAugustin CavalierOS: BeOS R5 92*e81a9547SAugustin CavalierModule: libroot 93*e81a9547SAugustin CavalierLocation: fchown() 94*e81a9547SAugustin CavalierDescription: fchown(file, 0xFFFFFFFF, gid) sets the UID to 0xFFFFFFFF, which 95*e81a9547SAugustin Cavalier is a bug. 96*e81a9547SAugustin Cavalier 97*e81a9547SAugustin Cavalier 98*e81a9547SAugustin CavalierOS: BeOS R5 99*e81a9547SAugustin CavalierModule: libroot 100*e81a9547SAugustin CavalierLocation: readdir(), fs_read_attr_dir() 101*e81a9547SAugustin CavalierDescription: The d_reclen field of a dirent structure does not contain the 102*e81a9547SAugustin Cavalier length of the whole structure (unlike stated in 103*e81a9547SAugustin Cavalier BeBook::BEntryList), but only the length of the d_name field. 104*e81a9547SAugustin Cavalier If the terminating '\0' is counted or not seems to depend on the 105*e81a9547SAugustin Cavalier file system. 106*e81a9547SAugustin Cavalier 107*e81a9547SAugustin Cavalier 108*e81a9547SAugustin CavalierOS: OBOS POSIX 109*e81a9547SAugustin CavalierModule: kernel_interface 110*e81a9547SAugustin CavalierLocation: read_link(FileDescriptor, char*, size_t) 111*e81a9547SAugustin CavalierDescription: Can't be implemented due to the lack of an FD readlink() version. 112*e81a9547SAugustin Cavalier 113*e81a9547SAugustin Cavalier 114*e81a9547SAugustin CavalierOS: BeOS R5 115*e81a9547SAugustin CavalierModule: BSymLink 116*e81a9547SAugustin CavalierLocation: MakeLinkedPath(const char*, BPath*) 117*e81a9547SAugustin CavalierDescription: The dirPath seems to be converted into a BDirectory, which 118*e81a9547SAugustin Cavalier causes links to be resolved, i.e. a "/tmp" dirPath expands to 119*e81a9547SAugustin Cavalier "/boot/var/tmp". That does also mean, that the dirPath must 120*e81a9547SAugustin Cavalier exists! 121*e81a9547SAugustin Cavalier 122*e81a9547SAugustin Cavalier 123*e81a9547SAugustin CavalierOS: BeOS R5 124*e81a9547SAugustin CavalierModule: BSymLink 125*e81a9547SAugustin CavalierLocation: MakeLinkedPath() 126*e81a9547SAugustin CavalierDescription: Crashs when passing a NULL const char* or BDirectory. 127*e81a9547SAugustin Cavalier 128*e81a9547SAugustin Cavalier 129*e81a9547SAugustin CavalierOS: BeOS R5 130*e81a9547SAugustin CavalierModule: BNode 131*e81a9547SAugustin CavalierLocation: GetNextAttrName() 132*e81a9547SAugustin CavalierDescription: Crashs when passing a NULL buffer. 133*e81a9547SAugustin Cavalier 134*e81a9547SAugustin Cavalier 135*e81a9547SAugustin CavalierOS: BeOS R5 136*e81a9547SAugustin CavalierModule: BNode 137*e81a9547SAugustin CavalierLocation: Read/WriteAttrString() 138*e81a9547SAugustin CavalierDescription: Crash when passing a NULL BString. 139*e81a9547SAugustin Cavalier 140*e81a9547SAugustin Cavalier 141*e81a9547SAugustin CavalierOS: BeOS R5 142*e81a9547SAugustin CavalierModule: BNode 143*e81a9547SAugustin CavalierLocation: Lock() 144*e81a9547SAugustin CavalierDescription: Given two BNode objects initialized to the same node, it is 145*e81a9547SAugustin Cavalier possible to Lock() one of them, although the BeBook says it isn't. 146*e81a9547SAugustin Cavalier 147*e81a9547SAugustin Cavalier 148*e81a9547SAugustin CavalierOS: BeOS R5 149*e81a9547SAugustin CavalierModule: BDirectory 150*e81a9547SAugustin CavalierLocation: BDirectory(const node_ref*), SetTo(const node_ref*) 151*e81a9547SAugustin CavalierDescription: Crash when passing a NULL node_ref. 152*e81a9547SAugustin Cavalier 153*e81a9547SAugustin Cavalier 154*e81a9547SAugustin CavalierOS: BeOS R5 155*e81a9547SAugustin CavalierModule: BDirectory 156*e81a9547SAugustin CavalierLocation: GetEntry() 157*e81a9547SAugustin CavalierDescription: Crashs when passing a NULL BEntry. 158*e81a9547SAugustin Cavalier 159*e81a9547SAugustin Cavalier 160*e81a9547SAugustin CavalierOS: BeOS R5 161*e81a9547SAugustin CavalierModule: BDirectory 162*e81a9547SAugustin CavalierLocation: FindEntry() 163*e81a9547SAugustin CavalierDescription: Crashs when passing a NULL BEntry. 164*e81a9547SAugustin Cavalier 165*e81a9547SAugustin Cavalier 166*e81a9547SAugustin CavalierOS: BeOS R5 (OBOS) 167*e81a9547SAugustin CavalierModule: BDirectory 168*e81a9547SAugustin CavalierLocation: Contains(const char*, int32) 169*e81a9547SAugustin CavalierDescription: If the supplied path is absolute and refers to an existing 170*e81a9547SAugustin Cavalier entry, true is returned, even if the directory does not contain 171*e81a9547SAugustin Cavalier the entry or is not even initialized. 172*e81a9547SAugustin Cavalier (The OBOS implementation makes the behavior more consistent 173*e81a9547SAugustin Cavalier with the BEntry* version, which returns false when the 174*e81a9547SAugustin Cavalier directory is not initialized and true only if the directory 175*e81a9547SAugustin Cavalier actually contains the entry.) 176*e81a9547SAugustin Cavalier 177*e81a9547SAugustin Cavalier 178*e81a9547SAugustin CavalierOS: BeOS R5 179*e81a9547SAugustin CavalierModule: BDirectory 180*e81a9547SAugustin CavalierLocation: Contains(const BEntry*, int32) 181*e81a9547SAugustin CavalierDescription: Crashs when passing a NULL BEntry. 182*e81a9547SAugustin Cavalier 183*e81a9547SAugustin Cavalier 184*e81a9547SAugustin CavalierOS: BeOS R5 185*e81a9547SAugustin CavalierModule: BDirectory 186*e81a9547SAugustin CavalierLocation: Contains(const BEntry*, bool) 187*e81a9547SAugustin CavalierDescription: Bug: Tests with a directory, contained file/dir/symlink and 188*e81a9547SAugustin Cavalier the respective node kind (B_FILE_NODE/B_DIRECTORY_NODE/ 189*e81a9547SAugustin Cavalier B_SYMLINK_NODE) result false. 190*e81a9547SAugustin Cavalier 191*e81a9547SAugustin Cavalier 192*e81a9547SAugustin CavalierOS: BeOS R5 193*e81a9547SAugustin CavalierModule: BDirectory 194*e81a9547SAugustin CavalierLocation: GetNextDirents() 195*e81a9547SAugustin CavalierDescription: Crashs when passing a NULL buffer. 196*e81a9547SAugustin Cavalier 197*e81a9547SAugustin Cavalier 198*e81a9547SAugustin CavalierOS: OBOS 199*e81a9547SAugustin CavalierModule: BQuery 200*e81a9547SAugustin CavalierLocation: Push*() 201*e81a9547SAugustin CavalierDescription: Return status_t instead of void. Fail, if Fetch() has already 202*e81a9547SAugustin Cavalier been called. 203*e81a9547SAugustin Cavalier 204*e81a9547SAugustin Cavalier 205*e81a9547SAugustin CavalierOS: BeOS R5 206*e81a9547SAugustin CavalierModule: BQuery 207*e81a9547SAugustin CavalierLocation: PushOp() 208*e81a9547SAugustin CavalierDescription: Crashs when pushing B_CONTAINS/B_BEGINS/ENDS_WITH on an empty 209*e81a9547SAugustin Cavalier stack. 210*e81a9547SAugustin Cavalier 211*e81a9547SAugustin Cavalier 212*e81a9547SAugustin CavalierOS: BeOS R5 213*e81a9547SAugustin CavalierModule: BQuery 214*e81a9547SAugustin CavalierLocation: PushUInt64() 215*e81a9547SAugustin CavalierDescription: Doesn't work. Predicates constructed using it are invalid. 216*e81a9547SAugustin Cavalier 217*e81a9547SAugustin Cavalier 218*e81a9547SAugustin CavalierOS: BeOS R5 219*e81a9547SAugustin CavalierModule: BQuery 220*e81a9547SAugustin CavalierLocation: Get/SetPredicate() 221*e81a9547SAugustin CavalierDescription: Crash when passing a NULL BString/char*. 222*e81a9547SAugustin Cavalier 223*e81a9547SAugustin Cavalier 224*e81a9547SAugustin CavalierOS: BeOS R5 225*e81a9547SAugustin CavalierModule: BQuery 226*e81a9547SAugustin CavalierLocation: SetVolume() 227*e81a9547SAugustin CavalierDescription: Crashs when passing a NULL BVolume. 228*e81a9547SAugustin Cavalier 229*e81a9547SAugustin Cavalier 230*e81a9547SAugustin CavalierOS: BeOS R5 231*e81a9547SAugustin CavalierModule: BQuery 232*e81a9547SAugustin CavalierLocation: GetNextEntry/Ref() 233*e81a9547SAugustin CavalierDescription: Crash when passing a NULL BEntry/entry_ref. 234*e81a9547SAugustin Cavalier 235*e81a9547SAugustin Cavalier 236*e81a9547SAugustin CavalierOS: BeOS R5 237*e81a9547SAugustin CavalierModule: BMimeType 238*e81a9547SAugustin CavalierLocation: {Get,Set}LongDescription() 239*e81a9547SAugustin CavalierDescription: Crashes when passed a NULL description 240*e81a9547SAugustin Cavalier 241*e81a9547SAugustin Cavalier 242*e81a9547SAugustin CavalierOS: BeOS R5 243*e81a9547SAugustin CavalierModule: BMimeType 244*e81a9547SAugustin CavalierLocation: GetLongDescription() 245*e81a9547SAugustin CavalierDescription: The contents of the description string are modified even if 246*e81a9547SAugustin Cavalier the function fails. 247*e81a9547SAugustin Cavalier 248*e81a9547SAugustin Cavalier 249*e81a9547SAugustin CavalierOS: BeOS R5 250*e81a9547SAugustin CavalierModule: BMimeType 251*e81a9547SAugustin CavalierLocation: SetShortDescription() 252*e81a9547SAugustin CavalierDescription: When passed a NULL description, doesn't crash, but does 253*e81a9547SAugustin Cavalier appear to make the result of following calls to SetShortDescription 254*e81a9547SAugustin Cavalier unreliable (sometimes they work, sometimes they don't). 255*e81a9547SAugustin Cavalier 256*e81a9547SAugustin Cavalier 257*e81a9547SAugustin CavalierOS: BeOS R5 vs. OBOS 258*e81a9547SAugustin CavalierModule: BMimeType 259*e81a9547SAugustin CavalierLocation: 260*e81a9547SAugustin CavalierDescription: R5: The maximal MIME string length, BMimeType accepts is 261*e81a9547SAugustin Cavalier B_MIME_TYPE_LENGTH *not* including terminating null. Note, that 262*e81a9547SAugustin Cavalier app_info reserves only B_MIME_TYPE_LENGTH chars for the 263*e81a9547SAugustin Cavalier signature field. 264*e81a9547SAugustin Cavalier OBOS: That's why we support strings that fit into a buffer of 265*e81a9547SAugustin Cavalier size B_MIME_TYPE_LENGTH only. This is consistent with the use 266*e81a9547SAugustin Cavalier of the other *_LENGTH constants. 267*e81a9547SAugustin Cavalier 268*e81a9547SAugustin Cavalier 269*e81a9547SAugustin CavalierOS: BeOS R5 270*e81a9547SAugustin CavalierModule: BMimeType 271*e81a9547SAugustin CavalierLocation: SetAppHint() 272*e81a9547SAugustin CavalierDescription: The entry_ref passed to SetAppHint() must be valid but is not 273*e81a9547SAugustin Cavalier required to refer to a file that actually exists; furthermore, 274*e81a9547SAugustin Cavalier if it does exist, the MIME type of the file is not required to 275*e81a9547SAugustin Cavalier match the BMimeType object's type. 276*e81a9547SAugustin Cavalier 277*e81a9547SAugustin Cavalier 278*e81a9547SAugustin CavalierOS: BeOS R5 279*e81a9547SAugustin CavalierModule: BMimeType 280*e81a9547SAugustin CavalierLocation: SetIcon() 281*e81a9547SAugustin CavalierDescription: The BBitmap passed to BMimeType::SetIcon() must be in the B_CMAP8 282*e81a9547SAugustin Cavalier color space, or the application will crash. We should remember 283*e81a9547SAugustin Cavalier to be smarter about this. 284*e81a9547SAugustin Cavalier 285*e81a9547SAugustin Cavalier 286*e81a9547SAugustin CavalierOS: BeOS R5 287*e81a9547SAugustin CavalierModule: BMimeType 288*e81a9547SAugustin CavalierLocation: GetIcon() 289*e81a9547SAugustin CavalierDescription: The BBitmap passed to BMimeType::GetIcon() must be in the B_CMAP8 290*e81a9547SAugustin Cavalier color space. If not, the call returns B_OK but doesn't actually 291*e81a9547SAugustin Cavalier modify the bitmap. We should remember to be smarter about this. 292*e81a9547SAugustin Cavalier 293*e81a9547SAugustin Cavalier 294*e81a9547SAugustin CavalierOS: BeOS R5 295*e81a9547SAugustin CavalierModule: BMimeType 296*e81a9547SAugustin CavalierLocation: IsValid(const char*), GetSupertype(), Contains() 297*e81a9547SAugustin CavalierDescription: Crash when passing NULL. 298*e81a9547SAugustin Cavalier 299*e81a9547SAugustin Cavalier 300*e81a9547SAugustin CavalierOS: BeOS R5 301*e81a9547SAugustin CavalierModule: BMimeType 302*e81a9547SAugustin CavalierLocation: {Get,Set}IconForType(char*, BBitmap*, icon_size) 303*e81a9547SAugustin CavalierDescription: Passing NULL as the first parameter is the same as calling 304*e81a9547SAugustin Cavalier {Get,Set}Icon() with the second two parameters (i.e. {gets,sets} 305*e81a9547SAugustin Cavalier the icon for the type itself). 306*e81a9547SAugustin Cavalier 307*e81a9547SAugustin Cavalier 308*e81a9547SAugustin CavalierOS: BeOS R5 309*e81a9547SAugustin CavalierModule: BMimeType 310*e81a9547SAugustin CavalierLocation: SetFileExtensions() 311*e81a9547SAugustin CavalierDescription: Passing a NULL message does not clear the File Extensions field 312*e81a9547SAugustin Cavalier for the MIME type as indicated by the Be Book; instead, it crashes 313*e81a9547SAugustin Cavalier the application :-) 314*e81a9547SAugustin Cavalier 315*e81a9547SAugustin Cavalier 316*e81a9547SAugustin CavalierOS: BeOS R5 317*e81a9547SAugustin CavalierModule: BMimeType 318*e81a9547SAugustin CavalierLocation: GetFileExtensions() 319*e81a9547SAugustin CavalierDescription: A B_STRING_TYPE field of name "type" is *added* to the result 320*e81a9547SAugustin Cavalier containing the MIME type of the BMimeType object. Since the 321*e81a9547SAugustin Cavalier BMessage passed to SetFileExtensions() appears to be simply 322*e81a9547SAugustin Cavalier flattened into the appropriate attribute, the "type" field is 323*e81a9547SAugustin Cavalier appended to any such "type" fields that may already exist in 324*e81a9547SAugustin Cavalier the original BMessage. 325*e81a9547SAugustin Cavalier 326*e81a9547SAugustin Cavalier 327*e81a9547SAugustin CavalierOS: BeOS R5 328*e81a9547SAugustin CavalierModule: BMimeType 329*e81a9547SAugustin CavalierLocation: Install() 330*e81a9547SAugustin CavalierDescription: From the Be Book: "Currently, Install() may return a random value 331*e81a9547SAugustin Cavalier if the object is already installed." 332*e81a9547SAugustin Cavalier 333*e81a9547SAugustin Cavalier 334*e81a9547SAugustin CavalierOS: BeOS R5 335*e81a9547SAugustin CavalierModule: BMimeType 336*e81a9547SAugustin CavalierLocation: 337*e81a9547SAugustin CavalierDescription: MIME Type strings are converted to lowercase before being used 338*e81a9547SAugustin Cavalier as filenames in the MIME database. 339*e81a9547SAugustin Cavalier 340*e81a9547SAugustin Cavalier 341*e81a9547SAugustin CavalierOS: BeOS R5 342*e81a9547SAugustin CavalierModule: BMimeType 343*e81a9547SAugustin CavalierLocation: Start/StopWatching() 344*e81a9547SAugustin CavalierDescription: An invalid messenger (BMessenger::Invalid()) is fine as parameter. 345*e81a9547SAugustin Cavalier 346*e81a9547SAugustin Cavalier 347*e81a9547SAugustin CavalierOS: BeOS R5 348*e81a9547SAugustin CavalierModule: Mime.h/cpp 349*e81a9547SAugustin CavalierLocation: get_device_icon() 350*e81a9547SAugustin CavalierDescription: KDL when passing a NULL buffer! 351*e81a9547SAugustin Cavalier 352*e81a9547SAugustin Cavalier 353*e81a9547SAugustin CavalierOS: BeOS R5 354*e81a9547SAugustin CavalierModule: BMimeType 355*e81a9547SAugustin CavalierLocation: CheckSnifferRule() 356*e81a9547SAugustin CavalierDescription: Crashes when passing a NULL rule. 357*e81a9547SAugustin Cavalier 358*e81a9547SAugustin Cavalier 359*e81a9547SAugustin CavalierOS: BeOS R5 360*e81a9547SAugustin CavalierModule: BMimeType 361*e81a9547SAugustin CavalierLocation: GetSnifferRule() 362*e81a9547SAugustin CavalierDescription: Crashes when passing a NULL BString. 363*e81a9547SAugustin Cavalier 364*e81a9547SAugustin Cavalier 365*e81a9547SAugustin CavalierOS: BeOS R5 366*e81a9547SAugustin CavalierModule: BMimeType 367*e81a9547SAugustin CavalierLocation: Check/Get/SetSnifferRule() 368*e81a9547SAugustin CavalierDescription: The sniffer rules description in the BeBook deviates considerably 369*e81a9547SAugustin Cavalier from the actual implementation: 370*e81a9547SAugustin Cavalier - + masks 371*e81a9547SAugustin Cavalier - + top level ORs: (patterns...) | (patterns...) | ... 372*e81a9547SAugustin Cavalier - - range overriding: [range1] ([range2]pattern) 373*e81a9547SAugustin Cavalier - either no or complete ranges: (pattern1 | pattern2) 374*e81a9547SAugustin Cavalier or ([range1]pattern1 | [range2]pattern2), but not 375*e81a9547SAugustin Cavalier ([range1]pattern1 | pattern2) 376*e81a9547SAugustin Cavalier - CheckSnifferRule() doesn't check some of the values, e.g. 377*e81a9547SAugustin Cavalier ranges (negative values, or begin > end) or 0 <= priority <= 1. 378*e81a9547SAugustin Cavalier 379*e81a9547SAugustin Cavalier 380*e81a9547SAugustin CavalierOS: BeOS R5 381*e81a9547SAugustin CavalierModule: BMimeType 382*e81a9547SAugustin CavalierLocation: GuessMimeType(const entry_ref *, BMimeType *) 383*e81a9547SAugustin CavalierDescription: When passing an uninitialized entry_ref, B_OK and 384*e81a9547SAugustin Cavalier "application/octet-stream" are returned. 385*e81a9547SAugustin Cavalier 386*e81a9547SAugustin Cavalier 387*e81a9547SAugustin CavalierOS: BeOS R5 388*e81a9547SAugustin CavalierModule: BMimeType 389*e81a9547SAugustin CavalierLocation: SetAttrInfo 390*e81a9547SAugustin CavalierDescription: Crashes when passed a NULL BMessage. 391*e81a9547SAugustin Cavalier 392*e81a9547SAugustin Cavalier 393*e81a9547SAugustin CavalierOS: BeOS R5 394*e81a9547SAugustin CavalierModule: BMimeType 395*e81a9547SAugustin CavalierLocation: GetInstalledTypes(BMessage*) 396*e81a9547SAugustin CavalierDescription: The set of types returned by this function is determined as follows: 397*e81a9547SAugustin Cavalier + All *entries* (files, dirs, or symlinks) in the root MIME database 398*e81a9547SAugustin Cavalier directory treated as MIME types, except those that begin with an 399*e81a9547SAugustin Cavalier underscore; only dirs are treated as supertypes (unless the dir's 400*e81a9547SAugustin Cavalier META:TYPE attribute is different than its filename, in which case 401*e81a9547SAugustin Cavalier it's not treated as a supertype). 402*e81a9547SAugustin Cavalier + For each supertype, all *entries* (files, dirs, or symlinks) in the 403*e81a9547SAugustin Cavalier corresponding supertype subdirectory are treated as a MIME type, except 404*e81a9547SAugustin Cavalier those that begin with an underscore. 405*e81a9547SAugustin Cavalier + The MIME type for supertypes is taken from the name of the supertype 406*e81a9547SAugustin Cavalier subdirectory. 407*e81a9547SAugustin Cavalier + The MIME type for non-supertypes is take from the entry's META:TYPE 408*e81a9547SAugustin Cavalier attribute. If the entry has no META:TYPE attribute, the MIME type is 409*e81a9547SAugustin Cavalier derived by concatentating the name of the supertype directory to the 410*e81a9547SAugustin Cavalier name of the entry, separated by a "/" character. Either way, the MIME 411*e81a9547SAugustin Cavalier string returned is not checked to be valid. 412*e81a9547SAugustin Cavalier 413*e81a9547SAugustin Cavalier 414*e81a9547SAugustin CavalierOS: BeOS R5 415*e81a9547SAugustin CavalierModule: BMimeType 416*e81a9547SAugustin CavalierLocation: GetInstalledTypes(char *super, BMessage*) 417*e81a9547SAugustin CavalierDescription: The set of types returned by this function is determined as follows: 418*e81a9547SAugustin Cavalier + All *entries* (files, dirs, or symlinks) in the MIME database directory 419*e81a9547SAugustin Cavalier corresponding to the "super" argument are treated as subtypes, *except* 420*e81a9547SAugustin Cavalier those whose filenames begin with an underscore. It does not matter if 421*e81a9547SAugustin Cavalier the supertype directory has a META:TYPE attribute or not. 422*e81a9547SAugustin Cavalier + The MIME type is taken from the entry's META:TYPE attribute. If the entry 423*e81a9547SAugustin Cavalier has no such attribute, the MIME type is derived by concatentating the name 424*e81a9547SAugustin Cavalier of the supertype directory (the directory's META:TYPE attribute is ignored 425*e81a9547SAugustin Cavalier if present) to the name of the entry, separated by a "/" character. Either 426*e81a9547SAugustin Cavalier way, the MIME string returned is not checked to be valid. 427*e81a9547SAugustin Cavalier 428*e81a9547SAugustin Cavalier 429*e81a9547SAugustin CavalierOS: BeOS R5 430*e81a9547SAugustin CavalierModule: BMimeType 431*e81a9547SAugustin CavalierLocation: GetInstalledSupertypes(BMessage*) 432*e81a9547SAugustin CavalierDescription: The set of types returned by this function is determined as follows: 433*e81a9547SAugustin Cavalier + All directories in the root MIME database directory are treated as 434*e81a9547SAugustin Cavalier supertypes (even directories beginning with an underscore). 435*e81a9547SAugustin Cavalier + The MIME type is derived from the directory name, which is not 436*e81a9547SAugustin Cavalier checked to be a valid MIME string. 437*e81a9547SAugustin Cavalier 438*e81a9547SAugustin Cavalier 439*e81a9547SAugustin CavalierOS: BeOS R5 440*e81a9547SAugustin CavalierModule: BMimeType 441*e81a9547SAugustin CavalierLocation: GetWildcardApps() 442*e81a9547SAugustin CavalierDescription: This code: 443*e81a9547SAugustin Cavalier BMessage msg; 444*e81a9547SAugustin Cavalier status_t error = BMimeType::GetWildcardApps(&msg); 445*e81a9547SAugustin Cavalier is the same as: 446*e81a9547SAugustin Cavalier BMessage msg; 447*e81a9547SAugustin Cavalier BMimeType mime("application/octet-stream"); 448*e81a9547SAugustin Cavalier status_t error = mime.InitCheck(); 449*e81a9547SAugustin Cavalier if (!error) 450*e81a9547SAugustin Cavalier error = mime.GetSupportingApps(&msg); 451*e81a9547SAugustin Cavalier 452*e81a9547SAugustin Cavalier 453*e81a9547SAugustin CavalierOS: BeOS R5 454*e81a9547SAugustin CavalierModule: BNodeInfo 455*e81a9547SAugustin CavalierLocation: {Set,Get}AppHint() 456*e81a9547SAugustin CavalierDescription: The file attribute the path of the "app hint" application 457*e81a9547SAugustin Cavalier ("BEOS:PPATH") is of type B_MIME_STRING_TYPE instead of 458*e81a9547SAugustin Cavalier B_STRING_TYPE. 459*e81a9547SAugustin Cavalier 460*e81a9547SAugustin Cavalier 461*e81a9547SAugustin CavalierOS: BeOS R5 462*e81a9547SAugustin CavalierModule: BNodeInfo 463*e81a9547SAugustin CavalierLocation: GetType() 464*e81a9547SAugustin CavalierDescription: When the string stored in the "BEOS:TYPE" attribute is longer 465*e81a9547SAugustin Cavalier than B_MIME_TYPE_LENGTH, the returned string is one character 466*e81a9547SAugustin Cavalier shorter than the actual string. 467*e81a9547SAugustin Cavalier 468*e81a9547SAugustin Cavalier 469*e81a9547SAugustin CavalierOS: BeOS R5 470*e81a9547SAugustin CavalierModule: BNodeInfo 471*e81a9547SAugustin CavalierLocation: GetIcon() 472*e81a9547SAugustin CavalierDescription: Crashes when passing a NULL BBitmap. 473*e81a9547SAugustin Cavalier 474*e81a9547SAugustin Cavalier 475*e81a9547SAugustin CavalierOS: BeOS R5 476*e81a9547SAugustin CavalierModule: BNodeInfo 477*e81a9547SAugustin CavalierLocation: GetIcon() 478*e81a9547SAugustin CavalierDescription: Crashes when getting B_LARGE_ICON and passing a BBitmap with 479*e81a9547SAugustin Cavalier B_RGB32 color space. B_MINI_ICON works just fine. 480*e81a9547SAugustin Cavalier 481*e81a9547SAugustin Cavalier 482*e81a9547SAugustin CavalierOS: BeOS R5 483*e81a9547SAugustin CavalierModule: BAppFileInfo 484*e81a9547SAugustin CavalierLocation: GetSupportedTypes() 485*e81a9547SAugustin CavalierDescription: Crashes when passing a NULL BMessage. 486*e81a9547SAugustin Cavalier 487*e81a9547SAugustin Cavalier 488*e81a9547SAugustin CavalierOS: BeOS R5 489*e81a9547SAugustin CavalierModule: BAppFileInfo 490*e81a9547SAugustin CavalierLocation: Supports() 491*e81a9547SAugustin CavalierDescription: Crashes when passing a NULL BMimeType. 492*e81a9547SAugustin Cavalier 493*e81a9547SAugustin Cavalier 494*e81a9547SAugustin CavalierOS: BeOS R5 495*e81a9547SAugustin CavalierModule: BAppFileInfo 496*e81a9547SAugustin CavalierLocation: SetSupportedTypes(const BMessage *types, bool syncAll) 497*e81a9547SAugustin CavalierDescription: Crashes when passing a NULL BMessage and syncAll = true. 498*e81a9547SAugustin Cavalier 499*e81a9547SAugustin Cavalier 500*e81a9547SAugustin CavalierOS: BeOS R5 501*e81a9547SAugustin CavalierModule: BAppFileInfo 502*e81a9547SAugustin CavalierLocation: SetSupportedTypes() 503*e81a9547SAugustin CavalierDescription: Sometimes installs a supported type, also when the file's 504*e81a9547SAugustin Cavalier signature is not installed in the MIME database. This happens 505*e81a9547SAugustin Cavalier e.g. when setting two supported types and then setting two 506*e81a9547SAugustin Cavalier different types. The second of the new types is installed. 507*e81a9547SAugustin Cavalier 508*e81a9547SAugustin Cavalier 509*e81a9547SAugustin CavalierOS: BeOS R5 510*e81a9547SAugustin CavalierModule: BAppFileInfo 511*e81a9547SAugustin CavalierLocation: SetSupportedTypes(const BMessage *types) 512*e81a9547SAugustin CavalierDescription: Returns B_ENTRY_NOT_FOUND when the file's signature is not 513*e81a9547SAugustin Cavalier installed in the MIME database, although the operation is 514*e81a9547SAugustin Cavalier carried out successfully. 515*e81a9547SAugustin Cavalier 516*e81a9547SAugustin Cavalier 517*e81a9547SAugustin CavalierOS: BeOS R5 518*e81a9547SAugustin CavalierModule: BAppFileInfo 519*e81a9547SAugustin CavalierLocation: SetSupportedTypes() 520*e81a9547SAugustin CavalierDescription: Don't check whether the supplied types are valid MIME types. And 521*e81a9547SAugustin Cavalier don't fail, if they are not. OBOS checks them. 522*e81a9547SAugustin Cavalier 523*e81a9547SAugustin Cavalier 524*e81a9547SAugustin CavalierOS: BeOS R5 525*e81a9547SAugustin CavalierModule: BAppFileInfo 526*e81a9547SAugustin CavalierLocation: GetIcon(), GetIconForType() 527*e81a9547SAugustin CavalierDescription: Crashes when getting B_LARGE_ICON and passing a BBitmap with 528*e81a9547SAugustin Cavalier B_RGB32 color space. B_MINI_ICON works just fine. 529*e81a9547SAugustin Cavalier 530*e81a9547SAugustin Cavalier 531*e81a9547SAugustin CavalierOS: BeOS R5 532*e81a9547SAugustin CavalierModule: BAppFileInfo 533*e81a9547SAugustin CavalierLocation: GetVersionInfo(), SetVersionInfo() 534*e81a9547SAugustin CavalierDescription: Crash when passing a NULL version_info. 535*e81a9547SAugustin Cavalier 536*e81a9547SAugustin Cavalier 537*e81a9547SAugustin CavalierModule: BTest 538*e81a9547SAugustin CavalierLocation: SetName() 539*e81a9547SAugustin CavalierDescription: Should also rename the mount point. 540*e81a9547SAugustin CavalierPriority: medium 541*e81a9547SAugustin Cavalier 542*e81a9547SAugustin Cavalier 543