>
>Ideally, we can do this in a more-OO'ed manner,
>
> 1 add a new field 'int called' in 'struct mi_cmd',
> 2 set 'parse->cmd->called' in mi_cmd_execute to 1 and set it back to 0 when it is done.
> 3 pass 'struct mi_cmd *' to each MI command function, for example change function mi_breakpoint_created to
>
> mi_breakpoint_created (struct mi_cmd *self, struct breakpoint *b)
>
> 4 inside each MI command function, return early if self->called is 1. Then, we can get rid of mi_suppress_notification completely.
Confused. mi_breakpoint_created is not a MI command function, but rather a
notification observer. Whoever calls the observers (observer_notify_breakpoint_created)
is disconnected from commands, and I don't see that the coupling would be a good idea.