* Turned off unconditional debug output in the RosterSettingsCharStream class.
* Replaced some DBG(OUT) debug output with the registrar's global one. * Cleanup, mostly whitespace. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34305 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
b9d85c1270
commit
ae4d11e97f
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2001-2006, Haiku Inc.
|
||||
* Copyright 2001-2009, Haiku Inc.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
@ -8,8 +8,10 @@
|
||||
* Axel Dörfler, axeld@pinc-software.de
|
||||
*/
|
||||
|
||||
|
||||
//! Recently launched apps list
|
||||
|
||||
|
||||
#include "RecentApps.h"
|
||||
|
||||
#include <tracker_private.h>
|
||||
@ -24,25 +26,25 @@
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#define DBG(x) (x)
|
||||
//#define DBG(x)
|
||||
#define OUT printf
|
||||
#include "Debug.h"
|
||||
|
||||
|
||||
/*! \class RecentApps
|
||||
\brief Manages the roster's list of recently launched applications
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*! \var std::list<std::string> RecentApps::fAppList
|
||||
\brief The list of app sigs, most recent first
|
||||
|
||||
|
||||
The signatures are expected to be stored all lowercase, as MIME
|
||||
signatures are case-independent.
|
||||
*/
|
||||
|
||||
|
||||
/*! \brief Creates a new list.
|
||||
|
||||
|
||||
The list is initially empty.
|
||||
*/
|
||||
RecentApps::RecentApps()
|
||||
@ -61,10 +63,10 @@ RecentApps::~RecentApps()
|
||||
|
||||
/*! \brief Places the app with the given signature at the front of
|
||||
the recent apps list.
|
||||
|
||||
|
||||
If the app already exists elsewhere in the list, that item is
|
||||
removed so only one instance exists in the list at any time.
|
||||
|
||||
|
||||
\param appSig The application's signature
|
||||
\param appFlags The application's flags. If \a appFlags contains
|
||||
either \c B_ARGV_ONLY or \c B_BACKGROUND_APP, the
|
||||
@ -109,7 +111,7 @@ RecentApps::Add(const char *appSig, int32 appFlags)
|
||||
|
||||
/*! \brief Adds the signature of the application referred to by \a ref at
|
||||
the front of the recent apps list.
|
||||
|
||||
|
||||
The entry is checked for a BEOS:APP_SIG attribute. If that fails, the
|
||||
app's resources are checked. If no signature can be found, the call
|
||||
fails.
|
||||
@ -123,7 +125,7 @@ RecentApps::Add(const entry_ref *ref, int32 appFlags)
|
||||
BFile file;
|
||||
BAppFileInfo info;
|
||||
char signature[B_MIME_TYPE_LENGTH];
|
||||
|
||||
|
||||
status_t err = file.SetTo(ref, B_READ_ONLY);
|
||||
if (!err)
|
||||
err = info.SetTo(&file);
|
||||
@ -137,16 +139,16 @@ RecentApps::Add(const entry_ref *ref, int32 appFlags)
|
||||
|
||||
/*! \brief Returns the first \a maxCount recent apps in the \c BMessage
|
||||
pointed to by \a list.
|
||||
|
||||
|
||||
The message is cleared first, and \c entry_refs for the the apps are
|
||||
stored in the \c "refs" field of the message (\c B_REF_TYPE).
|
||||
|
||||
|
||||
If there are fewer than \a maxCount items in the list, the entire
|
||||
list is returned.
|
||||
|
||||
|
||||
Since BRoster::GetRecentApps() returns \c void, the message pointed
|
||||
to by \a list is simply cleared if maxCount is invalid (i.e. <= 0).
|
||||
*/
|
||||
*/
|
||||
status_t
|
||||
RecentApps::Get(int32 maxCount, BMessage *list)
|
||||
{
|
||||
@ -166,8 +168,10 @@ RecentApps::Get(int32 maxCount, BMessage *list)
|
||||
entry_ref ref;
|
||||
if (GetRefForApp(item->c_str(), &ref) == B_OK)
|
||||
status = list->AddRef("refs", &ref);
|
||||
else
|
||||
DBG(OUT("WARNING: RecentApps::Get(): No ref found for app '%s'\n", item->c_str()));
|
||||
else {
|
||||
D(PRINT("WARNING: RecentApps::Get(): No ref found for app '%s'\n",
|
||||
item->c_str()));
|
||||
}
|
||||
}
|
||||
|
||||
return status;
|
||||
@ -180,7 +184,7 @@ status_t
|
||||
RecentApps::Clear()
|
||||
{
|
||||
fAppList.clear();
|
||||
return B_OK;
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -220,7 +224,7 @@ RecentApps::Save(FILE* file)
|
||||
|
||||
/*! \brief Fetches an \c entry_ref for the application with the
|
||||
given signature.
|
||||
|
||||
|
||||
First the MIME database is checked for a matching application type
|
||||
with a valid app hint attribute. If that fails, a query is established
|
||||
to track down such an application, if there is one available.
|
||||
@ -235,8 +239,8 @@ RecentApps::GetRefForApp(const char *appSig, entry_ref *result)
|
||||
// and Ingo's on vacation :-P :-)
|
||||
BMimeType mime(appSig);
|
||||
status_t err = mime.InitCheck();
|
||||
if (!err)
|
||||
if (!err)
|
||||
err = mime.GetAppHint(result);
|
||||
return err;
|
||||
return err;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2001-2006, Haiku Inc.
|
||||
* Copyright 2001-2009, Haiku Inc.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
@ -8,10 +8,15 @@
|
||||
* Axel Dörfler, axeld@pinc-software.de
|
||||
*/
|
||||
|
||||
|
||||
//! Recently launched apps list
|
||||
|
||||
|
||||
#include "RecentEntries.h"
|
||||
|
||||
#include <new>
|
||||
#include <map>
|
||||
|
||||
#include <AppFileInfo.h>
|
||||
#include <Entry.h>
|
||||
#include <File.h>
|
||||
@ -20,17 +25,14 @@
|
||||
#include <Path.h>
|
||||
#include <Roster.h>
|
||||
#include <String.h>
|
||||
|
||||
#include <storage_support.h>
|
||||
|
||||
#include <new>
|
||||
#include <map>
|
||||
#include "Debug.h"
|
||||
|
||||
|
||||
using namespace std;
|
||||
|
||||
#define DBG(x) (x)
|
||||
//#define DBG(x)
|
||||
#define OUT printf
|
||||
|
||||
|
||||
/*! \struct recent_entry
|
||||
|
||||
@ -38,7 +40,7 @@ using namespace std;
|
||||
that launched/used/opened/viewed/whatevered it, and an index used for
|
||||
keeping track of orderings when loading/storing the recent entries list
|
||||
from/to disk.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
/*! \brief Creates a new recent_entry object.
|
||||
@ -49,7 +51,7 @@ recent_entry::recent_entry(const entry_ref *ref, const char *appSig,
|
||||
ref(ref ? *ref : entry_ref()),
|
||||
sig(appSig),
|
||||
index(index)
|
||||
{
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -64,14 +66,14 @@ recent_entry::recent_entry(const entry_ref *ref, const char *appSig,
|
||||
|
||||
/*! \var std::list<std::string> RecentEntries::fEntryList
|
||||
\brief The list of entries and their corresponding app sigs, most recent first
|
||||
|
||||
|
||||
The signatures are expected to be stored all lowercase, as MIME
|
||||
signatures are case-independent.
|
||||
*/
|
||||
|
||||
|
||||
/*! \brief Creates a new list.
|
||||
|
||||
|
||||
The list is initially empty.
|
||||
*/
|
||||
RecentEntries::RecentEntries()
|
||||
@ -89,10 +91,10 @@ RecentEntries::~RecentEntries()
|
||||
|
||||
/*! \brief Places the given entry Places the app with the given signature at the front of
|
||||
the recent apps list.
|
||||
|
||||
|
||||
If the app already exists elsewhere in the list, that item is
|
||||
removed so only one instance exists in the list at any time.
|
||||
|
||||
|
||||
\param appSig The application's signature
|
||||
\param appFlags The application's flags. If \a appFlags contains
|
||||
either \c B_ARGV_ONLY or \c B_BACKGROUND_APP, the
|
||||
@ -134,25 +136,25 @@ RecentEntries::Add(const entry_ref *ref, const char *appSig)
|
||||
|
||||
/*! \brief Returns the first \a maxCount recent apps in the \c BMessage
|
||||
pointed to by \a list.
|
||||
|
||||
|
||||
The message is cleared first, and \c entry_refs for the the apps are
|
||||
stored in the \c "refs" field of the message (\c B_REF_TYPE).
|
||||
|
||||
|
||||
If there are fewer than \a maxCount items in the list, the entire
|
||||
list is returned.
|
||||
|
||||
|
||||
Duplicate entries are never returned, i.e. if two instances of the
|
||||
same entry were added under different app sigs, and both instances
|
||||
match the given filter criterion, only the most recent instance is
|
||||
returned; the latter instance is ignored and not counted towards
|
||||
the \a maxCount number of entries to return.
|
||||
|
||||
|
||||
Since BRoster::GetRecentEntries() returns \c void, the message pointed
|
||||
to by \a list is simply cleared if maxCount is invalid (i.e. <= 0).
|
||||
|
||||
|
||||
\param fileTypes An array of file type filters. These file types are
|
||||
expected to be all lowercase.
|
||||
*/
|
||||
*/
|
||||
status_t
|
||||
RecentEntries::Get(int32 maxCount, const char *fileTypes[],
|
||||
int32 fileTypesCount, const char *appSig, BMessage *result)
|
||||
@ -181,7 +183,7 @@ RecentEntries::Get(int32 maxCount, const char *fileTypes[],
|
||||
char type[B_MIME_TYPE_LENGTH];
|
||||
if (GetTypeForRef(&(*item)->ref, type) == B_OK) {
|
||||
bool match = false;
|
||||
for (int i = 0; i < fileTypesCount; i++) {
|
||||
for (int i = 0; i < fileTypesCount; i++) {
|
||||
if (!strcasecmp(type, fileTypes[i])) {
|
||||
match = true;
|
||||
break;
|
||||
@ -231,7 +233,7 @@ RecentEntries::Clear()
|
||||
delete *i;
|
||||
}
|
||||
fEntryList.clear();
|
||||
return B_OK;
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
|
||||
@ -243,9 +245,10 @@ RecentEntries::Print()
|
||||
std::list<recent_entry*>::iterator item;
|
||||
int counter = 1;
|
||||
for (item = fEntryList.begin(); item != fEntryList.end(); item++) {
|
||||
printf("%d: device == '%ld', dir == '%lld', name == '%s', app == '%s', index == %ld\n",
|
||||
counter++, (*item)->ref.device, (*item)->ref.directory, (*item)->ref.name,
|
||||
(*item)->sig.c_str(), (*item)->index);
|
||||
printf("%d: device == '%ld', dir == '%lld', name == '%s', app == '%s', "
|
||||
"index == %ld\n", counter++, (*item)->ref.device,
|
||||
(*item)->ref.directory, (*item)->ref.name, (*item)->sig.c_str(),
|
||||
(*item)->index);
|
||||
}
|
||||
return B_OK;
|
||||
}
|
||||
@ -268,7 +271,7 @@ RecentEntries::Save(FILE* file, const char *description, const char *tag)
|
||||
change over time (whereas ours will). If our implementation
|
||||
proves to be slower that R5, we may want to consider using
|
||||
the data structure pervasively.
|
||||
*/
|
||||
*/
|
||||
std::map<entry_ref, std::list<recent_entry*> > map;
|
||||
uint32 count = fEntryList.size();
|
||||
|
||||
@ -278,12 +281,12 @@ RecentEntries::Save(FILE* file, const char *description, const char *tag)
|
||||
recent_entry *entry = *item;
|
||||
if (entry) {
|
||||
entry->index = count;
|
||||
map[entry->ref].push_back(entry);
|
||||
map[entry->ref].push_back(entry);
|
||||
} else {
|
||||
DBG(OUT("WARNING: RecentEntries::Save(): The entry %ld entries "
|
||||
"from the front of fEntryList was found to be NULL\n",
|
||||
fEntryList.size() - count));
|
||||
}
|
||||
D(PRINT("WARNING: RecentEntries::Save(): The entry %ld entries "
|
||||
"from the front of fEntryList was found to be NULL\n",
|
||||
fEntryList.size() - count));
|
||||
}
|
||||
}
|
||||
} catch (...) {
|
||||
return B_NO_MEMORY;
|
||||
@ -305,22 +308,22 @@ RecentEntries::Save(FILE* file, const char *description, const char *tag)
|
||||
for (std::list<recent_entry*>::iterator item = list.begin();
|
||||
item != list.end(); i++, item++) {
|
||||
recent_entry *entry = *item;
|
||||
if (entry)
|
||||
if (entry)
|
||||
fprintf(file, " \"%s\" %ld", entry->sig.c_str(), entry->index);
|
||||
else {
|
||||
DBG(OUT("WARNING: RecentEntries::Save(): The entry %ld entries "
|
||||
"from the front of the compiled recent_entry* list for the "
|
||||
"entry ref (%ld, %lld, '%s') was found to be NULL\n",
|
||||
i, mapItem->first.device, mapItem->first.directory,
|
||||
mapItem->first.name));
|
||||
D(PRINT("WARNING: RecentEntries::Save(): The entry %ld "
|
||||
"entries from the front of the compiled recent_entry* "
|
||||
"list for the entry ref (%ld, %lld, '%s') was found to "
|
||||
"be NULL\n", i, mapItem->first.device,
|
||||
mapItem->first.directory, mapItem->first.name));
|
||||
}
|
||||
}
|
||||
fprintf(file, "\n");
|
||||
} else {
|
||||
DBG(OUT("WARNING: RecentEntries::Save(): entry_ref_to_path() failed on "
|
||||
"the entry_ref (%ld, %lld, '%s') with error 0x%lx\n",
|
||||
mapItem->first.device, mapItem->first.directory,
|
||||
mapItem->first.name, outputError));
|
||||
D(PRINT("WARNING: RecentEntries::Save(): entry_ref_to_path() "
|
||||
"failed on the entry_ref (%ld, %lld, '%s') with error 0x%lx\n",
|
||||
mapItem->first.device, mapItem->first.directory,
|
||||
mapItem->first.name, outputError));
|
||||
}
|
||||
}
|
||||
|
||||
@ -353,5 +356,5 @@ RecentEntries::GetTypeForRef(const entry_ref *ref, char *result)
|
||||
result[bytes] = '\0';
|
||||
}
|
||||
|
||||
return error;
|
||||
return error;
|
||||
}
|
||||
|
@ -1,3 +1,12 @@
|
||||
/*
|
||||
* Copyright 2002-2009, Haiku Inc.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*
|
||||
* Authors:
|
||||
* Tyler Dauwalder
|
||||
*/
|
||||
|
||||
|
||||
#include "RosterSettingsCharStream.h"
|
||||
|
||||
#include <sniffer/Err.h>
|
||||
@ -5,6 +14,9 @@
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "Debug.h"
|
||||
|
||||
|
||||
const status_t RosterSettingsCharStream::kEndOfLine;
|
||||
const status_t RosterSettingsCharStream::kEndOfStream;
|
||||
const status_t RosterSettingsCharStream::kInvalidEscape;
|
||||
@ -15,24 +27,26 @@ const status_t RosterSettingsCharStream::kStringTooLong;
|
||||
|
||||
using namespace BPrivate::Storage::Sniffer;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// CharStream
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
RosterSettingsCharStream::RosterSettingsCharStream(const std::string &string)
|
||||
: CharStream(string)
|
||||
:
|
||||
CharStream(string)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
RosterSettingsCharStream::RosterSettingsCharStream()
|
||||
: CharStream()
|
||||
:
|
||||
CharStream()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
RosterSettingsCharStream::~RosterSettingsCharStream()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Reads the next string from the stream
|
||||
|
||||
- Strings are either unquoted or quoted strings on a single line.
|
||||
@ -53,12 +67,12 @@ RosterSettingsCharStream::~RosterSettingsCharStream()
|
||||
characters they represent before being stored in the result.
|
||||
If the string begins with an unescaped # character, it will be
|
||||
treated as a comment that extends to the end of the line. #
|
||||
characters may appear unescaped anywhere else in the string.
|
||||
characters may appear unescaped anywhere else in the string.
|
||||
- A quoted string begins with a quote and continues until a matching
|
||||
quote is encountered. If a newline is found before that point,
|
||||
kEndOfLine is returned. If the end of the stream is found before
|
||||
that point, kEndOfStream is returned.
|
||||
|
||||
|
||||
\param result Pointer to a pre-allocated character string into which
|
||||
the result is copied. Since all strings to be read from
|
||||
the RosterSettings file are filenames, mime strings, or
|
||||
@ -67,7 +81,7 @@ RosterSettingsCharStream::~RosterSettingsCharStream()
|
||||
discovered to be longer, reading is aborted and an
|
||||
error code is returned.
|
||||
\return
|
||||
*/
|
||||
*/
|
||||
status_t
|
||||
RosterSettingsCharStream::GetString(char *result)
|
||||
{
|
||||
@ -76,21 +90,21 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
error = InitCheck();
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
|
||||
enum RosterSettingsScannerState {
|
||||
rsssStart,
|
||||
rsssUnquoted,
|
||||
rsssQuoted,
|
||||
rsssEscape,
|
||||
};
|
||||
|
||||
|
||||
RosterSettingsScannerState state = rsssStart;
|
||||
RosterSettingsScannerState escapedState = rsssStart;
|
||||
|
||||
|
||||
bool keepLooping = true;
|
||||
ssize_t resultPos = 0;
|
||||
char quote = '\0';
|
||||
|
||||
|
||||
while (keepLooping) {
|
||||
if (resultPos >= B_PATH_NAME_LENGTH) {
|
||||
error = kStringTooLong;
|
||||
@ -99,14 +113,14 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
break;
|
||||
}
|
||||
char ch = Get();
|
||||
switch (state) {
|
||||
switch (state) {
|
||||
case rsssStart:
|
||||
switch (ch) {
|
||||
case '#':
|
||||
error = kComment;
|
||||
keepLooping = false;
|
||||
break;
|
||||
|
||||
|
||||
case '\t':
|
||||
case ' ':
|
||||
// Acceptable whitespace, so ignore it.
|
||||
@ -117,20 +131,20 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
error = kEndOfLine;
|
||||
keepLooping = false;
|
||||
break;
|
||||
|
||||
|
||||
case '\\':
|
||||
// Escape sequence
|
||||
escapedState = rsssUnquoted;
|
||||
state = rsssEscape;
|
||||
break;
|
||||
|
||||
|
||||
case '\'':
|
||||
case '"':
|
||||
// Valid quote
|
||||
quote = ch;
|
||||
state = rsssQuoted;
|
||||
break;
|
||||
|
||||
|
||||
case 0x3:
|
||||
// End-Of-Text
|
||||
if (IsEmpty()) {
|
||||
@ -139,7 +153,7 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
break;
|
||||
}
|
||||
// else fall through...
|
||||
|
||||
|
||||
default:
|
||||
// Valid unquoted character
|
||||
result[resultPos++] = ch;
|
||||
@ -147,7 +161,7 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case rsssUnquoted:
|
||||
switch (ch) {
|
||||
case '\t':
|
||||
@ -161,13 +175,13 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
error = kEndOfLine;
|
||||
keepLooping = false;
|
||||
break;
|
||||
|
||||
|
||||
case '\\':
|
||||
// Escape sequence
|
||||
escapedState = state;
|
||||
state = rsssEscape;
|
||||
break;
|
||||
|
||||
|
||||
case 0x3:
|
||||
// End-Of-Text
|
||||
if (IsEmpty()) {
|
||||
@ -176,45 +190,45 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
break;
|
||||
}
|
||||
// else fall through...
|
||||
|
||||
|
||||
case '#':
|
||||
// comments must begin the string, thus
|
||||
// this char also falls through...
|
||||
|
||||
|
||||
default:
|
||||
// Valid unquoted character
|
||||
result[resultPos++] = ch;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case rsssQuoted:
|
||||
if (ch == quote) {
|
||||
// Terminating quote
|
||||
keepLooping = false;
|
||||
} else {
|
||||
switch (ch) {
|
||||
switch (ch) {
|
||||
case '\n':
|
||||
// End of line
|
||||
error = kUnterminatedQuotedString;
|
||||
keepLooping = false;
|
||||
break;
|
||||
|
||||
|
||||
case '\\':
|
||||
// Escape sequence
|
||||
escapedState = state;
|
||||
state = rsssEscape;
|
||||
break;
|
||||
|
||||
|
||||
case 0x3:
|
||||
// End-Of-Text
|
||||
if (IsEmpty()) {
|
||||
error = kEndOfStream;
|
||||
keepLooping = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// else fall through...
|
||||
|
||||
|
||||
default:
|
||||
// Valid quoted character
|
||||
result[resultPos++] = ch;
|
||||
@ -222,7 +236,7 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case rsssEscape:
|
||||
switch (ch) {
|
||||
case '\n':
|
||||
@ -230,7 +244,7 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
error = kInvalidEscape;
|
||||
keepLooping = false;
|
||||
break;
|
||||
|
||||
|
||||
case 0x3:
|
||||
// End-Of-Text
|
||||
if (IsEmpty()) {
|
||||
@ -239,14 +253,14 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
break;
|
||||
}
|
||||
// else fall through...
|
||||
|
||||
|
||||
default:
|
||||
// Valid unquoted character
|
||||
result[resultPos++] = ch;
|
||||
state = escapedState;
|
||||
break;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
break;
|
||||
|
||||
default:
|
||||
error = kUnexpectedState;
|
||||
@ -254,7 +268,7 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Read past any comments
|
||||
if (error == kComment) {
|
||||
// Read to the end of the line. If a valid read still occured,
|
||||
@ -267,7 +281,7 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
}
|
||||
// Replace the newline if the comment was hit immediately
|
||||
// preceding the unquoted string
|
||||
if (state == rsssUnquoted)
|
||||
if (state == rsssUnquoted)
|
||||
Unget();
|
||||
error = ch == '\n' ? kEndOfLine : kEndOfStream;
|
||||
}
|
||||
@ -277,20 +291,21 @@ RosterSettingsCharStream::GetString(char *result)
|
||||
Unget();
|
||||
error = B_OK;
|
||||
}
|
||||
|
||||
|
||||
// NULL terminate regardless
|
||||
result[resultPos] = '\0';
|
||||
|
||||
printf("error == 0x%lx, result == '%s'\n", error, result);
|
||||
|
||||
return error;
|
||||
|
||||
D(PRINT("error == 0x%lx, result == '%s'\n", error, result));
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Reads past any remaining characters on the current line.
|
||||
|
||||
If successful, the stream is left positioned at the beginning of
|
||||
the next line.
|
||||
|
||||
|
||||
\return
|
||||
- \c B_OK: success
|
||||
- kEndOfStream: The end of the stream was reached.
|
||||
@ -307,107 +322,107 @@ RosterSettingsCharStream::SkipLine()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const char *roster_settings_icons =
|
||||
"\xa1\xa5\x9d\xd6\xac\x98\x83\xaa\x5f\xcb\x9b\x9a\xa3\xb1\xaa\xa7"
|
||||
"\xb1\xb2\x58\xca\xb2\xa0\xa9\x57\xde\xc7\xc4\xc6\x59\xb5\xbd\xa5"
|
||||
"\x9b\x9f\x97\xd0\xa6\x92\x7d\xa4\x59\xb5\x8f\x99\x95\xae\x5d\xab"
|
||||
"\xac\x65\x9a\xb5\x6b\x9b\x4e\xa4\xcd\xbb\xaf\xb4\x9c\xb5\xba\x9f"
|
||||
"\x88\x8c\x84\xbd\x93\x7f\x63\x87\x99\x60\x75\x89\x8b\x9e\x9c\x9e"
|
||||
"\x4a\x98\x8e\xaf\x51\x83\x80\x95\x6c\xac\x9f\xa8\x85\xa7\xbe\x2f"
|
||||
"\xb9\xbd\xb5\xee\xc4\xb0\x94\xb8\xca\x91\xa6\xa6\xc4\xd1\xc9\xbd"
|
||||
"\x7b\xc4\x70\xd0\xc3\xb1\xb1\x6f\xf0\xd1\xd3\xd1\xcf\x86\x92\x60"
|
||||
"\x9e\xa2\x9a\xd3\xa9\x95\x79\xa7\xaa\xbf\x89\x90\xa6\x6d\xb3\xaa"
|
||||
"\x60\xbd\x55\xb7\xb6\x99\xa5\x54\xca\xb6\xc2\xb6\x56\x7c\xd4\x45"
|
||||
"\x7d\x81\x79\xb2\x88\x74\x58\x7f\x8a\xab\x67\x7c\x32\xa1\x8d\x8e"
|
||||
"\x98\x97\x79\x96\x46\x70\x79\x7f\xa6\xa7\xa9\x51\x36\x4a\x56\x24"
|
||||
"\xb3\xb7\xaf\xe8\xbe\xaa\x8e\xb1\xb2\xde\x58\xab\xb7\xd5\xc9\x70"
|
||||
"\xbd\xc6\xbd\x88\xce\xa5\xaa\x69\xea\xde\xc2\xd6\xb7\xc4\xdd\xb7"
|
||||
"\x8e\x92\x8a\xc3\x99\x85\x69\x8c\x8d\xb9\x33\x7b\x43\xb0\x9e\x94"
|
||||
"\x96\x9e\x8e\xb1\x9e\x3b\x89\x89\xb3\xa9\x9d\xa4\x8e\x9f\xc4\x35"
|
||||
"\xa1\xa5\x9d\xd6\xac\x98\x83\xaa\x5f\xcb\x9b\x9a\xa3\xb1\xaa\xa7"
|
||||
"\xb1\xb2\x58\xca\xb2\xa0\xa9\x57\xde\xc7\xc4\xc6\x59\xb5\xbd\xa5"
|
||||
"\x9b\x9f\x97\xd0\xa6\x92\x7d\xa4\x59\xb5\x8f\x99\x95\xae\x5d\xab"
|
||||
"\xac\x65\x9a\xb5\x6b\x9b\x4e\xa4\xcd\xbb\xaf\xb4\x9c\xb5\xba\x9f"
|
||||
"\x88\x8c\x84\xbd\x93\x7f\x63\x87\x99\x60\x75\x89\x8b\x9e\x9c\x9e"
|
||||
"\x4a\x98\x8e\xaf\x51\x83\x80\x95\x6c\xac\x9f\xa8\x85\xa7\xbe\x2f"
|
||||
"\xb9\xbd\xb5\xee\xc4\xb0\x94\xb8\xca\x91\xa6\xa6\xc4\xd1\xc9\xbd"
|
||||
"\x7b\xc4\x70\xd0\xc3\xb1\xb1\x6f\xf0\xd1\xd3\xd1\xcf\x86\x92\x60"
|
||||
"\x9e\xa2\x9a\xd3\xa9\x95\x79\xa7\xaa\xbf\x89\x90\xa6\x6d\xb3\xaa"
|
||||
"\x60\xbd\x55\xb7\xb6\x99\xa5\x54\xca\xb6\xc2\xb6\x56\x7c\xd4\x45"
|
||||
"\x7d\x81\x79\xb2\x88\x74\x58\x7f\x8a\xab\x67\x7c\x32\xa1\x8d\x8e"
|
||||
"\x98\x97\x79\x96\x46\x70\x79\x7f\xa6\xa7\xa9\x51\x36\x4a\x56\x24"
|
||||
"\xb3\xb7\xaf\xe8\xbe\xaa\x8e\xb1\xb2\xde\x58\xab\xb7\xd5\xc9\x70"
|
||||
"\xbd\xc6\xbd\x88\xce\xa5\xaa\x69\xea\xde\xc2\xd6\xb7\xc4\xdd\xb7"
|
||||
"\x8e\x92\x8a\xc3\x99\x85\x69\x8c\x8d\xb9\x33\x7b\x43\xb0\x9e\x94"
|
||||
"\x96\x9e\x8e\xb1\x9e\x3b\x89\x89\xb3\xa9\x9d\xa4\x8e\x9f\xc4\x35"
|
||||
|
||||
"\x96\x9a\x92\xcb\xa1\x8d\x71\x95\xa7\x6e\x7d\x97\x9e\xbe\x58\xa6"
|
||||
"\xa6\xa9\x93\xb1\xa8\x91\x90\x4c\xd3\xbc\xb9\xbb\x4e\xaa\xb2\x9a"
|
||||
"\xb0\xb4\xac\xe5\xbb\xa7\x8b\xaf\xc1\x88\xa1\xa5\xb8\xd3\xb7\xbb"
|
||||
"\xbb\xc8\xae\x85\xcd\xac\x63\xb3\xd9\xdb\xbf\xcf\xc6\x7d\x89\x57"
|
||||
"\x7d\x81\x79\xb2\x88\x74\x58\x7b\x7c\xa8\x22\x71\x73\x90\x3f\x82"
|
||||
"\x88\x9a\x34\xa4\x8b\x80\x75\x81\xa8\x99\xa9\x51\x36\x4a\x56\x24"
|
||||
"\x84\x88\x80\xb9\x8f\x7b\x5f\x83\x95\x5c\x6e\x7e\x7a\xa0\x95\x93"
|
||||
"\x8b\x92\x3b\xb0\x96\x85\x7f\x3a\xc1\xaa\xa7\xa9\x3c\x98\xa0\x88"
|
||||
"\xa5\x9f\x8c\xbd\xa2\x81\xb7\x92\x9a\xb4\x81\x88\x91\xab\x9e\x99"
|
||||
"\x9e\xa6\x93\xb1\xa5\x89\x8f\x92\xc0\xb3\xaa\xaf\x94\xa8\xb4\x82"
|
||||
"\xa7\xab\xa3\xdc\xb2\x9e\x82\xa6\xb8\x7f\x8d\x53\xb0\xcb\xb7\xa5"
|
||||
"\xc7\x72\x5f\x7d\x71\x55\x5b\x5e\x8c\x7f\x76\x7b\x60\x74\x80\x4e"
|
||||
"\x9a\x9e\x96\xcf\xa5\x91\x75\x99\xab\x72\x80\x46\xa3\xbb\xab\xac"
|
||||
"\xb0\xc2\x52\x70\x64\x48\x4e\x51\x7f\x72\x69\x6e\x53\x67\x73\x41"
|
||||
"\x95\x99\x91\xca\xa0\x8c\x70\x9e\xa0\xb2\x86\x8d\x9d\x64\xaa\xa1"
|
||||
"\xa4\xa4\xa0\xb2\xa7\x90\x8f\x4b\xbf\xb5\xb6\xb0\xa6\xbf\x6e\x3c"
|
||||
"\x96\x9a\x92\xcb\xa1\x8d\x71\x95\xa7\x6e\x7d\x97\x9e\xbe\x58\xa6"
|
||||
"\xa6\xa9\x93\xb1\xa8\x91\x90\x4c\xd3\xbc\xb9\xbb\x4e\xaa\xb2\x9a"
|
||||
"\xb0\xb4\xac\xe5\xbb\xa7\x8b\xaf\xc1\x88\xa1\xa5\xb8\xd3\xb7\xbb"
|
||||
"\xbb\xc8\xae\x85\xcd\xac\x63\xb3\xd9\xdb\xbf\xcf\xc6\x7d\x89\x57"
|
||||
"\x7d\x81\x79\xb2\x88\x74\x58\x7b\x7c\xa8\x22\x71\x73\x90\x3f\x82"
|
||||
"\x88\x9a\x34\xa4\x8b\x80\x75\x81\xa8\x99\xa9\x51\x36\x4a\x56\x24"
|
||||
"\x84\x88\x80\xb9\x8f\x7b\x5f\x83\x95\x5c\x6e\x7e\x7a\xa0\x95\x93"
|
||||
"\x8b\x92\x3b\xb0\x96\x85\x7f\x3a\xc1\xaa\xa7\xa9\x3c\x98\xa0\x88"
|
||||
"\xa5\x9f\x8c\xbd\xa2\x81\xb7\x92\x9a\xb4\x81\x88\x91\xab\x9e\x99"
|
||||
"\x9e\xa6\x93\xb1\xa5\x89\x8f\x92\xc0\xb3\xaa\xaf\x94\xa8\xb4\x82"
|
||||
"\xa7\xab\xa3\xdc\xb2\x9e\x82\xa6\xb8\x7f\x8d\x53\xb0\xcb\xb7\xa5"
|
||||
"\xc7\x72\x5f\x7d\x71\x55\x5b\x5e\x8c\x7f\x76\x7b\x60\x74\x80\x4e"
|
||||
"\x9a\x9e\x96\xcf\xa5\x91\x75\x99\xab\x72\x80\x46\xa3\xbb\xab\xac"
|
||||
"\xb0\xc2\x52\x70\x64\x48\x4e\x51\x7f\x72\x69\x6e\x53\x67\x73\x41"
|
||||
"\x95\x99\x91\xca\xa0\x8c\x70\x9e\xa0\xb2\x86\x8d\x9d\x64\xaa\xa1"
|
||||
"\xa4\xa4\xa0\xb2\xa7\x90\x8f\x4b\xbf\xb5\xb6\xb0\xa6\xbf\x6e\x3c"
|
||||
|
||||
"\x84\x6e\x64\x7b\x8e\x8e\xc9\x50\xac\xc7\x8d\x87\x4f\xb7\xab\xa9"
|
||||
"\x5c\xb8\xa3\xbe\xb8\x9b\xab\x51\x7f\x72\x69\x6e\x53\x67\x73\x41"
|
||||
"\x8c\x77\x6c\x83\x96\x96\xcf\x58\xa1\x7a\x8a\x8f\xab\xb9\xb3\xab"
|
||||
"\xad\xaf\x59\xbb\xb0\xa5\xa4\xad\xda\xd7\x71\x76\x5b\x6f\x7b\x49"
|
||||
"\x79\x65\x59\x70\x8c\x75\xb6\x99\x92\xb9\x34\x84\x97\x5e\xa5\x94"
|
||||
"\x96\x59\x88\xa9\xab\x90\xa0\x46\x74\x67\x5e\x63\x48\x5c\x68\x36"
|
||||
"\x98\x81\x77\x8e\x94\x52\xdc\xb5\xba\xda\xa6\xac\xae\xbd\xbf\x6a"
|
||||
"\xbc\xd0\x64\xc8\xc8\xa3\xa5\xb1\xd5\xe2\x7c\x81\x66\x7a\x86\x54"
|
||||
"\x8c\x76\x6b\x82\x8d\x95\xce\x57\xb8\xc8\x9b\x9f\x56\xb7\xb8\xb2"
|
||||
"\xb6\xc4\x58\xbf\xb8\xa1\xa3\xa3\xca\xc6\xb2\xb9\xb7\x6e\x7a\x48"
|
||||
"\x70\x5b\x4f\x66\x74\x2a\xb3\x88\x8c\xb1\x6f\x31\x93\xa3\x9c\x42"
|
||||
"\x9e\x98\x90\xa2\x4e\x78\x8d\x8d\xc2\xba\x54\x59\x3e\x52\x5e\x2c"
|
||||
"\x77\x5f\x55\x6c\x7a\x83\x66\x9a\x98\xb8\x82\x37\x62\x9f\x7c\x7b"
|
||||
"\xab\x56\x43\x61\x55\x39\x3f\x42\x70\x63\x5a\x5f\x44\x58\x64\x32"
|
||||
"\x7a\x63\x58\x6f\x88\x7b\xae\x44\x8d\xa8\x86\x89\x8f\xb2\xa4\x90"
|
||||
"\x50\x9a\x86\xb5\x64\x89\x90\x92\xb7\x65\x9e\xa6\x99\xae\x85\x92"
|
||||
"\x84\x6e\x64\x7b\x8e\x8e\xc9\x50\xac\xc7\x8d\x87\x4f\xb7\xab\xa9"
|
||||
"\x5c\xb8\xa3\xbe\xb8\x9b\xab\x51\x7f\x72\x69\x6e\x53\x67\x73\x41"
|
||||
"\x8c\x77\x6c\x83\x96\x96\xcf\x58\xa1\x7a\x8a\x8f\xab\xb9\xb3\xab"
|
||||
"\xad\xaf\x59\xbb\xb0\xa5\xa4\xad\xda\xd7\x71\x76\x5b\x6f\x7b\x49"
|
||||
"\x79\x65\x59\x70\x8c\x75\xb6\x99\x92\xb9\x34\x84\x97\x5e\xa5\x94"
|
||||
"\x96\x59\x88\xa9\xab\x90\xa0\x46\x74\x67\x5e\x63\x48\x5c\x68\x36"
|
||||
"\x98\x81\x77\x8e\x94\x52\xdc\xb5\xba\xda\xa6\xac\xae\xbd\xbf\x6a"
|
||||
"\xbc\xd0\x64\xc8\xc8\xa3\xa5\xb1\xd5\xe2\x7c\x81\x66\x7a\x86\x54"
|
||||
"\x8c\x76\x6b\x82\x8d\x95\xce\x57\xb8\xc8\x9b\x9f\x56\xb7\xb8\xb2"
|
||||
"\xb6\xc4\x58\xbf\xb8\xa1\xa3\xa3\xca\xc6\xb2\xb9\xb7\x6e\x7a\x48"
|
||||
"\x70\x5b\x4f\x66\x74\x2a\xb3\x88\x8c\xb1\x6f\x31\x93\xa3\x9c\x42"
|
||||
"\x9e\x98\x90\xa2\x4e\x78\x8d\x8d\xc2\xba\x54\x59\x3e\x52\x5e\x2c"
|
||||
"\x77\x5f\x55\x6c\x7a\x83\x66\x9a\x98\xb8\x82\x37\x62\x9f\x7c\x7b"
|
||||
"\xab\x56\x43\x61\x55\x39\x3f\x42\x70\x63\x5a\x5f\x44\x58\x64\x32"
|
||||
"\x7a\x63\x58\x6f\x88\x7b\xae\x44\x8d\xa8\x86\x89\x8f\xb2\xa4\x90"
|
||||
"\x50\x9a\x86\xb5\x64\x89\x90\x92\xb7\x65\x9e\xa6\x99\xae\x85\x92"
|
||||
|
||||
"\xa8\x92\x86\x9d\xb6\xa9\xdc\xc4\xbf\x94\xaa\xbb\x71\xcd\xd3\xcd"
|
||||
"\x7e\xd5\xc1\xd6\x9f\x69\x97\xb3\xe9\xde\xdf\xed\x75\x89\x95\x63"
|
||||
"\xaf\xb3\xab\xe4\xba\xa6\x91\xb8\x6d\xce\xa3\xa9\xb2\xbf\x71\xc0"
|
||||
"\xc3\xc8\xbb\xd8\xcb\xa8\xa3\xb5\x93\xdb\xcf\x82\xaf\xbf\xe5\x56"
|
||||
"\xa6\xaa\xa2\xdb\xb1\x9d\x88\xaf\x64\xc5\x9a\xa0\xa9\xb6\x68\xb7"
|
||||
"\xba\xbf\xb2\xcf\xc2\x9f\x9a\xac\x8a\xd6\xc3\xce\xbc\x73\x7f\x4d"
|
||||
"\xab\xaf\xa7\xe0\xb6\xa2\x86\xb3\xb8\xc6\x9b\xaa\x60\xce\xb5\xad"
|
||||
"\x6d\xb8\xa3\xd3\xb6\x99\xa6\xbf\x90\x83\x7a\x7f\x64\x78\x84\x52"
|
||||
"\x90\x94\x8c\xc5\x9b\x87\x6b\x92\x97\xbe\x7a\x8f\x45\xa8\xa0\x4d"
|
||||
"\x74\xac\x9c\xb3\xa8\x90\x43\x88\xb5\xba\xa3\xb0\x8d\xaa\xbc\x94"
|
||||
"\xa4\xa8\xa0\xd9\xaf\x9b\x86\xad\x62\xc5\x96\xa0\xab\xb8\xb9\xb4"
|
||||
"\xab\xb2\x5b\xbb\xc6\x51\xb0\xa9\xdd\xcd\x72\xc4\xac\x83\xcf\xa8"
|
||||
"\xb0\xb4\xac\xe5\xbb\xa7\x92\xb9\x6e\xd7\xab\xa1\xb7\xd6\xc1\xbf"
|
||||
"\xbd\xbf\xab\x85\x7f\x5d\xb8\xb4\xd8\xcc\xd0\xd3\xa9\xc5\xcc\xb4"
|
||||
"\x7e\x82\x7a\xb3\x89\x75\x59\x7d\x8f\x56\x66\x79\x80\x9d\x8f\x8e"
|
||||
"\x89\x96\x7c\x53\x8f\x6c\x7a\x7f\xb7\xa8\xaa\x52\x37\x4b\x57\x25"
|
||||
"\xa8\x92\x86\x9d\xb6\xa9\xdc\xc4\xbf\x94\xaa\xbb\x71\xcd\xd3\xcd"
|
||||
"\x7e\xd5\xc1\xd6\x9f\x69\x97\xb3\xe9\xde\xdf\xed\x75\x89\x95\x63"
|
||||
"\xaf\xb3\xab\xe4\xba\xa6\x91\xb8\x6d\xce\xa3\xa9\xb2\xbf\x71\xc0"
|
||||
"\xc3\xc8\xbb\xd8\xcb\xa8\xa3\xb5\x93\xdb\xcf\x82\xaf\xbf\xe5\x56"
|
||||
"\xa6\xaa\xa2\xdb\xb1\x9d\x88\xaf\x64\xc5\x9a\xa0\xa9\xb6\x68\xb7"
|
||||
"\xba\xbf\xb2\xcf\xc2\x9f\x9a\xac\x8a\xd6\xc3\xce\xbc\x73\x7f\x4d"
|
||||
"\xab\xaf\xa7\xe0\xb6\xa2\x86\xb3\xb8\xc6\x9b\xaa\x60\xce\xb5\xad"
|
||||
"\x6d\xb8\xa3\xd3\xb6\x99\xa6\xbf\x90\x83\x7a\x7f\x64\x78\x84\x52"
|
||||
"\x90\x94\x8c\xc5\x9b\x87\x6b\x92\x97\xbe\x7a\x8f\x45\xa8\xa0\x4d"
|
||||
"\x74\xac\x9c\xb3\xa8\x90\x43\x88\xb5\xba\xa3\xb0\x8d\xaa\xbc\x94"
|
||||
"\xa4\xa8\xa0\xd9\xaf\x9b\x86\xad\x62\xc5\x96\xa0\xab\xb8\xb9\xb4"
|
||||
"\xab\xb2\x5b\xbb\xc6\x51\xb0\xa9\xdd\xcd\x72\xc4\xac\x83\xcf\xa8"
|
||||
"\xb0\xb4\xac\xe5\xbb\xa7\x92\xb9\x6e\xd7\xab\xa1\xb7\xd6\xc1\xbf"
|
||||
"\xbd\xbf\xab\x85\x7f\x5d\xb8\xb4\xd8\xcc\xd0\xd3\xa9\xc5\xcc\xb4"
|
||||
"\x7e\x82\x7a\xb3\x89\x75\x59\x7d\x8f\x56\x66\x79\x80\x9d\x8f\x8e"
|
||||
"\x89\x96\x7c\x53\x8f\x6c\x7a\x7f\xb7\xa8\xaa\x52\x37\x4b\x57\x25"
|
||||
|
||||
"\xa1\xa5\x9d\xd6\xac\x98\x7c\xa0\xb2\x79\x9b\x9b\x9a\xc9\xac\xac"
|
||||
"\xaa\xb7\xb1\x76\xb6\x9d\xad\x98\xd1\xd6\x70\x75\x5a\x6e\x7a\x48"
|
||||
"\x97\xac\x94\xc2\xa7\x40\xc9\x9f\xa2\xb9\x86\x47\xa3\xb8\xa6\x9e"
|
||||
"\xa3\x65\x99\xbf\xa9\x9b\x4e\x88\xc0\xbe\xbd\xb3\xa5\xc5\x74\x42"
|
||||
"\x88\x8c\x84\xbd\x93\x7f\x6a\x91\x46\xa8\x6e\x8a\x86\xa5\x91\x45"
|
||||
"\x8b\x52\x96\xac\x9f\x79\x80\x90\xb2\xb4\xa2\x5b\x84\x95\xb9\x8c"
|
||||
"\xb9\xbd\xb5\xee\xc4\xb0\x94\xb8\xca\x91\xb5\xb7\xb7\xdc\xc4\xc4"
|
||||
"\xc2\x83\xb1\x8e\xd2\xb5\xb1\xbc\xfb\x91\x88\x8d\x72\x86\x92\x60"
|
||||
"\x9e\xa2\x9a\xd3\xa9\x95\x79\xa7\x9d\xcf\x96\x4a\x7b\xae\xa9\xa6"
|
||||
"\xb5\x68\xa7\xc2\xaa\x96\xa4\xb2\x83\x76\x6d\x72\x57\x6b\x77\x45"
|
||||
"\x7d\x81\x79\xb2\x88\x74\x58\x85\x8a\x98\x6d\x7c\x32\xa1\x3f\x86"
|
||||
"\x88\x92\x79\x52\x87\x2a\x78\x88\xb3\xa6\x94\x93\x76\x97\x9a\x81"
|
||||
"\xb3\xb7\xaf\xe8\xbe\xaa\x8e\xb2\xc4\x8b\x9c\xa4\xb4\xd8\xbe\xbe"
|
||||
"\xbc\x7d\xbe\xd0\xce\xb5\x66\xc2\xe6\xdf\xd3\x86\xb3\xc3\xe9\x5a"
|
||||
"\x8e\x92\x8a\xc3\x99\x85\x69\x8d\x9f\x66\x7f\x89\x96\xb1\x50\x94"
|
||||
"\x9e\x58\x9e\xb2\xac\x8d\x41\x8c\xb6\xc3\x5d\x62\x47\x5b\x67\x35"
|
||||
"\xa1\xa5\x9d\xd6\xac\x98\x7c\xa0\xb2\x79\x9b\x9b\x9a\xc9\xac\xac"
|
||||
"\xaa\xb7\xb1\x76\xb6\x9d\xad\x98\xd1\xd6\x70\x75\x5a\x6e\x7a\x48"
|
||||
"\x97\xac\x94\xc2\xa7\x40\xc9\x9f\xa2\xb9\x86\x47\xa3\xb8\xa6\x9e"
|
||||
"\xa3\x65\x99\xbf\xa9\x9b\x4e\x88\xc0\xbe\xbd\xb3\xa5\xc5\x74\x42"
|
||||
"\x88\x8c\x84\xbd\x93\x7f\x6a\x91\x46\xa8\x6e\x8a\x86\xa5\x91\x45"
|
||||
"\x8b\x52\x96\xac\x9f\x79\x80\x90\xb2\xb4\xa2\x5b\x84\x95\xb9\x8c"
|
||||
"\xb9\xbd\xb5\xee\xc4\xb0\x94\xb8\xca\x91\xb5\xb7\xb7\xdc\xc4\xc4"
|
||||
"\xc2\x83\xb1\x8e\xd2\xb5\xb1\xbc\xfb\x91\x88\x8d\x72\x86\x92\x60"
|
||||
"\x9e\xa2\x9a\xd3\xa9\x95\x79\xa7\x9d\xcf\x96\x4a\x7b\xae\xa9\xa6"
|
||||
"\xb5\x68\xa7\xc2\xaa\x96\xa4\xb2\x83\x76\x6d\x72\x57\x6b\x77\x45"
|
||||
"\x7d\x81\x79\xb2\x88\x74\x58\x85\x8a\x98\x6d\x7c\x32\xa1\x3f\x86"
|
||||
"\x88\x92\x79\x52\x87\x2a\x78\x88\xb3\xa6\x94\x93\x76\x97\x9a\x81"
|
||||
"\xb3\xb7\xaf\xe8\xbe\xaa\x8e\xb2\xc4\x8b\x9c\xa4\xb4\xd8\xbe\xbe"
|
||||
"\xbc\x7d\xbe\xd0\xce\xb5\x66\xc2\xe6\xdf\xd3\x86\xb3\xc3\xe9\x5a"
|
||||
"\x8e\x92\x8a\xc3\x99\x85\x69\x8d\x9f\x66\x7f\x89\x96\xb1\x50\x94"
|
||||
"\x9e\x58\x9e\xb2\xac\x8d\x41\x8c\xb6\xc3\x5d\x62\x47\x5b\x67\x35"
|
||||
|
||||
"\x96\x9a\x92\xcb\xa1\x8d\x78\x9f\x54\xbb\x90\x90\x8e\xad\xa1\xa1"
|
||||
"\x9f\x60\x9c\xb9\x5f\x9c\x98\xa1\xcc\x6d\xaa\xb2\x9a\xa7\xc1\x9a"
|
||||
"\xb0\xb4\xac\xe5\xbb\xa7\x8b\x85\x6e\xda\x96\xac\xb9\xd4\xc4\xb2"
|
||||
"\x72\x94\x67\xc9\xbe\xad\xb5\xab\xe7\xda\xc7\xd2\xb6\xda\x89\x57"
|
||||
"\x7d\x81\x79\xb2\x88\x74\x58\x52\x3b\xa2\x6b\x7b\x86\x94\x3f\x54"
|
||||
"\x3f\x8b\x79\xa2\x98\x6b\x86\x7c\xb5\xad\xa9\x51\x36\x4a\x56\x24"
|
||||
"\x71\x96\x34\xb3\x99\x7d\x5f\x80\x87\xa1\x6d\x30\x8d\x9b\x8b\x41"
|
||||
"\x7d\x8f\x87\xad\x92\x83\x95\x3b\x69\x5c\x53\x58\x3d\x51\x5d\x2b"
|
||||
"\x8d\x91\x69\xa2\x98\x64\x68\x50\x68\xae\x8c\x7a\x5f\x69\x4f\x61"
|
||||
"\x62\x6a\x98\x62\xa3\x4d\x56\x84\x7e\xac\x7c\xb8\x55\xab\xc3\x34"
|
||||
"\xa7\xab\xa3\xdc\xb2\x9e\xb9\x9e\xb1\xd3\x91\xa5\x93\xb7\xb5\xb8"
|
||||
"\xae\xc3\x95\xbd\xbc\xa8\x9f\xaf\xc2\xbf\xc1\xce\xa4\xc5\xdd\x4e"
|
||||
"\x9a\x9e\x96\xcf\xa5\x91\x75\x99\xab\x72\x72\x9a\xa4\xaa\xae\xab"
|
||||
"\x63\xb7\x51\xb1\xa8\x9a\xa1\x50\xc4\xc3\xb1\xb2\xa0\xaa\xd0\x41"
|
||||
"\x7f\xa4\x91\x76\xb0\x8c\x70\x82\x94\xb9\x8e\x86\x9c\xb7\x57\x93"
|
||||
"\xa9\xa4\x4c\xac\xa3\x8e\x97\x99\xc0\x6c\xb7\xb7\x4d\xb6\xc0\x99"
|
||||
;
|
||||
"\x96\x9a\x92\xcb\xa1\x8d\x78\x9f\x54\xbb\x90\x90\x8e\xad\xa1\xa1"
|
||||
"\x9f\x60\x9c\xb9\x5f\x9c\x98\xa1\xcc\x6d\xaa\xb2\x9a\xa7\xc1\x9a"
|
||||
"\xb0\xb4\xac\xe5\xbb\xa7\x8b\x85\x6e\xda\x96\xac\xb9\xd4\xc4\xb2"
|
||||
"\x72\x94\x67\xc9\xbe\xad\xb5\xab\xe7\xda\xc7\xd2\xb6\xda\x89\x57"
|
||||
"\x7d\x81\x79\xb2\x88\x74\x58\x52\x3b\xa2\x6b\x7b\x86\x94\x3f\x54"
|
||||
"\x3f\x8b\x79\xa2\x98\x6b\x86\x7c\xb5\xad\xa9\x51\x36\x4a\x56\x24"
|
||||
"\x71\x96\x34\xb3\x99\x7d\x5f\x80\x87\xa1\x6d\x30\x8d\x9b\x8b\x41"
|
||||
"\x7d\x8f\x87\xad\x92\x83\x95\x3b\x69\x5c\x53\x58\x3d\x51\x5d\x2b"
|
||||
"\x8d\x91\x69\xa2\x98\x64\x68\x50\x68\xae\x8c\x7a\x5f\x69\x4f\x61"
|
||||
"\x62\x6a\x98\x62\xa3\x4d\x56\x84\x7e\xac\x7c\xb8\x55\xab\xc3\x34"
|
||||
"\xa7\xab\xa3\xdc\xb2\x9e\xb9\x9e\xb1\xd3\x91\xa5\x93\xb7\xb5\xb8"
|
||||
"\xae\xc3\x95\xbd\xbc\xa8\x9f\xaf\xc2\xbf\xc1\xce\xa4\xc5\xdd\x4e"
|
||||
"\x9a\x9e\x96\xcf\xa5\x91\x75\x99\xab\x72\x72\x9a\xa4\xaa\xae\xab"
|
||||
"\x63\xb7\x51\xb1\xa8\x9a\xa1\x50\xc4\xc3\xb1\xb2\xa0\xaa\xd0\x41"
|
||||
"\x7f\xa4\x91\x76\xb0\x8c\x70\x82\x94\xb9\x8e\x86\x9c\xb7\x57\x93"
|
||||
"\xa9\xa4\x4c\xac\xa3\x8e\x97\x99\xc0\x6c\xb7\xb7\x4d\xb6\xc0\x99";
|
||||
|
||||
|
@ -1752,19 +1752,20 @@ TRoster::_HandleGetRecentEntries(BMessage* request)
|
||||
switch (request->what) {
|
||||
case B_REG_GET_RECENT_DOCUMENTS:
|
||||
error = fRecentDocuments.Get(maxCount, (const char**)fileTypes,
|
||||
fileTypesCount, appSig, &reply);
|
||||
fileTypesCount, appSig, &reply);
|
||||
D(fRecentDocuments.Print());
|
||||
break;
|
||||
|
||||
case B_REG_GET_RECENT_FOLDERS:
|
||||
error = fRecentFolders.Get(maxCount, (const char**)fileTypes,
|
||||
fileTypesCount, appSig, &reply);
|
||||
fileTypesCount, appSig, &reply);
|
||||
D(fRecentFolders.Print());
|
||||
break;
|
||||
|
||||
default:
|
||||
D(PRINT(("WARNING: TRoster::_HandleGetRecentEntries(): unexpected "
|
||||
"request->what value of 0x%lx\n", request->what)));
|
||||
D(PRINT(("WARNING: TRoster::_HandleGetRecentEntries(): "
|
||||
"unexpected request->what value of 0x%lx\n",
|
||||
request->what)));
|
||||
error = B_BAD_VALUE;
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user