lookup in reverse order also inside of batch
This commit is contained in:
parent
96c5cd4c42
commit
bc57f007e4
@ -68,20 +68,29 @@ TALER_TESTING_interpreter_lookup_command (struct TALER_TESTING_Interpreter *is,
|
|||||||
{
|
{
|
||||||
#define BATCH_INDEX 1
|
#define BATCH_INDEX 1
|
||||||
struct TALER_TESTING_Command *batch;
|
struct TALER_TESTING_Command *batch;
|
||||||
|
struct TALER_TESTING_Command *current;
|
||||||
|
const struct TALER_TESTING_Command *match;
|
||||||
|
|
||||||
|
current = TALER_TESTING_cmd_batch_get_current (cmd);
|
||||||
GNUNET_assert (GNUNET_OK ==
|
GNUNET_assert (GNUNET_OK ==
|
||||||
TALER_TESTING_get_trait_cmd (cmd,
|
TALER_TESTING_get_trait_cmd (cmd,
|
||||||
BATCH_INDEX,
|
BATCH_INDEX,
|
||||||
&batch));
|
&batch));
|
||||||
|
/* We must do the loop forward, but we can find the last match */
|
||||||
|
match = NULL;
|
||||||
for (unsigned int j = 0;
|
for (unsigned int j = 0;
|
||||||
NULL != (cmd = &batch[j])->label;
|
NULL != (cmd = &batch[j])->label;
|
||||||
j++)
|
j++)
|
||||||
{
|
{
|
||||||
|
if (current == cmd)
|
||||||
|
break; /* do not go past current command */
|
||||||
if ( (NULL != cmd->label) &&
|
if ( (NULL != cmd->label) &&
|
||||||
(0 == strcmp (cmd->label,
|
(0 == strcmp (cmd->label,
|
||||||
label)) )
|
label)) )
|
||||||
return cmd;
|
match = cmd;
|
||||||
}
|
}
|
||||||
|
if (NULL != match)
|
||||||
|
return match;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
|
||||||
|
Loading…
Reference in New Issue
Block a user