※ 引述《ric2k1 (Ric)》之銘言:
: ※ 引述《geneliu (^^)》之銘言:
: : 輸入 mset 3 5 7 是不是應該會被檢查出 CMD_OPT_EXTRA @@?
: : 因為我用老師的測試程式執行 mset 3 5 7 之後
: : 似乎就把 3 吃進去了...
: 搞笑了... 居然把 "else if" 括錯地方...
: In cmdParser.cpp ---
: bool
: CmdExec::lexSingleOption
: (const string& option, string& token, bool optional) const
: {
: size_t n = myStrGetTok(option, token);
: if (!optional) {
: if (token.size() == 0) {
: errorOption(CMD_OPT_MISSING, "");
: return false;
: }
: else if (n != string::npos) {
: errorOption(CMD_OPT_EXTRA, option.substr(n));
: return false;
: } // 這個括弧放錯了.... orz
: }
: return true;
: }
這樣改了之後 如果我以下面的方式執行
e.g
mcalc> help help 3 5 7
Usage: HELp [(string cmd)]
它就不會去管後面的部份是否全部正確 而會照常執行
其他使用到 lexSingleOption 的好像都會有同樣的情形
我記得還沒改之前 似乎都可偵測的到 ...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.223.18