作者ric2k1 (Ric)
看板EE_DSnP
标题Re: [问题] MSET 指令
时间Wed Nov 22 10:57:43 2006
※ 引述《samuelduan ()》之铭言:
: ※ 引述《ric2k1 (Ric)》之铭言:
: : 搞笑了... 居然把 "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 的好像都会有同样的情形
: 我记得还没改之前 似乎都可侦测的到 ...
我的天呀... 真是太 embarrasing 了...
CmdExec::lexSingleOption 应该是要改成 ---
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;
}
}
// No matter it is optional or not, n should be the end
if (n != string::npos) {
errorOption(CMD_OPT_EXTRA, option.substr(n));
return false;
}
return true;
}
-------
应该是没错了吧?
好吧, 这部分的 code 我会请助教特别注意, 不要扣大家的分数...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.21.240
1F:推 davidlue:有点不敢upload了XD 11/22 13:14
2F:→ davidlue:请问这次没有测资吗? 看同学抓出这麽多问题 11/22 13:14
3F:→ davidlue:真的很怕自己写的东西还有地方错orz 11/22 13:14