diff --git a/libuuu/cmd.cpp b/libuuu/cmd.cpp index c2eeb4e7..ace3f1d6 100644 --- a/libuuu/cmd.cpp +++ b/libuuu/cmd.cpp @@ -166,6 +166,9 @@ int CmdList::run_all(CmdCtx *p, bool dry_run) call_notify(nt); if (ret) return ret; + + if ((*it)->m_lastcmd) + break; } } return ret; diff --git a/libuuu/cmd.h b/libuuu/cmd.h index 6a4796d4..ae4a5188 100644 --- a/libuuu/cmd.h +++ b/libuuu/cmd.h @@ -90,8 +90,9 @@ class CmdBase public: vector m_param; uint64_t m_timeout; + bool m_lastcmd; std::string m_cmd; - CmdBase() { m_timeout = 2000; }; + CmdBase() { m_timeout = 2000; m_lastcmd = false; }; CmdBase(char *p) { m_timeout = 2000; if (p) m_cmd = p; } void insert_param_info(const char *key, void *pD, Param::Param_Type tp, bool ignore_case = true) { @@ -148,7 +149,7 @@ class CmdObjCreateMap:public map class CmdDone :public CmdBase { public: - CmdDone(char *p) :CmdBase(p) {}; + CmdDone(char *p) :CmdBase(p) { m_lastcmd = true; }; int run(CmdCtx *p); };