Move the boolean flags into struct expo so that the state can be maintained over function calls.
Signed-off-by: Simon Glass <s...@chromium.org> --- boot/cedit.c | 17 ++++++++--------- include/expo.h | 4 ++++ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/boot/cedit.c b/boot/cedit.c index 9baef39a0cd..3703538e5dc 100644 --- a/boot/cedit.c +++ b/boot/cedit.c @@ -154,7 +154,6 @@ int cedit_run(struct expo *exp) struct video_priv *vid_priv; uint scene_id; struct scene *scn; - bool done, save; int ret; ret = cedit_prepare(exp, &vid_priv, &scn); @@ -162,8 +161,8 @@ int cedit_run(struct expo *exp) return log_msg_ret("prep", ret); scene_id = ret; - done = false; - save = false; + exp->done = false; + exp->save = false; do { struct expo_action act; @@ -179,11 +178,11 @@ int cedit_run(struct expo *exp) cedit_arange(exp, vid_priv, scene_id); switch (scn->highlight_id) { case EXPOID_SAVE: - done = true; - save = true; + exp->done = true; + exp->save = true; break; case EXPOID_DISCARD: - done = true; + exp->done = true; break; } break; @@ -197,7 +196,7 @@ int cedit_run(struct expo *exp) break; case EXPOACT_QUIT: log_debug("quitting\n"); - done = true; + exp->done = true; break; default: break; @@ -205,11 +204,11 @@ int cedit_run(struct expo *exp) } else if (ret != -EAGAIN) { LOGR("cep", ret); } - } while (!done); + } while (!exp->done); if (ret) return log_msg_ret("end", ret); - if (!save) + if (!exp->save) return -EACCES; return 0; diff --git a/include/expo.h b/include/expo.h index 63452bbdd6a..f8d44c0ea20 100644 --- a/include/expo.h +++ b/include/expo.h @@ -105,6 +105,8 @@ struct expo_theme { * @text_mode: true to use text mode for the menu (no vidconsole) * @popup: true to use popup menus, instead of showing all items * @priv: Private data for the controller + * @done: Indicates that a cedit session is complete and the user has quit + * @save: Indicates that cedit data should be saved, rather than discarded * @theme: Information about fonts styles, etc. * @scene_head: List of scenes * @str_head: list of strings @@ -120,6 +122,8 @@ struct expo { bool text_mode; bool popup; void *priv; + bool done; + bool save; struct expo_theme theme; struct list_head scene_head; struct list_head str_head; -- 2.43.0