When previously fixing shelf scripting for BSnow, I accidentally broke nested specifiers (i.e. Get ID of Replicant).
This should fix ticket #3087. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28571 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -575,17 +575,17 @@ BShelf::MessageReceived(BMessage *msg)
|
|||||||
if (err == B_OK )
|
if (err == B_OK )
|
||||||
repMessage = ReplicantAt(i, &replicant, &ID, &err);
|
repMessage = ReplicantAt(i, &replicant, &ID, &err);
|
||||||
if (err == B_OK && replicant) {
|
if (err == B_OK && replicant) {
|
||||||
|
msg->PopSpecifier();
|
||||||
BMessage archive;
|
BMessage archive;
|
||||||
err = replicant->Archive(&archive);
|
err = replicant->Archive(&archive);
|
||||||
if (err == B_OK)
|
if (err == B_OK && msg->GetCurrentSpecifier(&index, &specifier, &what, &prop) != B_OK) {
|
||||||
err = replyMsg.AddMessage("result", &archive);
|
err = replyMsg.AddMessage("result", &archive);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
// now handles the replicant suite
|
// now handles the replicant suite
|
||||||
err = B_BAD_SCRIPT_SYNTAX;
|
err = B_BAD_SCRIPT_SYNTAX;
|
||||||
if (msg->what != B_GET_PROPERTY)
|
if (msg->what != B_GET_PROPERTY)
|
||||||
break;
|
break;
|
||||||
if (msg->GetCurrentSpecifier(&index, &specifier, &what, &prop) != B_OK)
|
|
||||||
break;
|
|
||||||
if (strcmp(prop, "ID") == 0) {
|
if (strcmp(prop, "ID") == 0) {
|
||||||
err = replyMsg.AddInt32("result", ID);
|
err = replyMsg.AddInt32("result", ID);
|
||||||
} else if (strcmp(prop, "Name") == 0) {
|
} else if (strcmp(prop, "Name") == 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user