diff --git a/core/code/inner.go b/core/code/inner.go index f30441c2..aa9245c0 100644 --- a/core/code/inner.go +++ b/core/code/inner.go @@ -115,9 +115,8 @@ func _inner_show(m *ice.Message, name string) { } } func _inner_main(m *ice.Message, arg ...string) { - if len(arg) > 2 && arg[2] != "" { - m.Cmdy(web.STORY, web.INDEX, arg[2]) - return + if len(arg) > 2 { + arg = arg[:2] } _inner_list(m, path.Join(arg...)) } diff --git a/type.go b/type.go index 03e9ffce..fb62de8e 100644 --- a/type.go +++ b/type.go @@ -89,12 +89,18 @@ func (c *Context) cmd(m *Message, cmd *Command, key string, arg ...string) *Mess if m.Hand = true; action != "" && cmd.Action != nil { if h, ok := cmd.Action[action]; ok { + if action == m.Option("_action") { + m.Option("_action", "") + } m.Log(LOG_CMDS, "%s.%s %d %v %s", c.Name, key, len(arg), arg, kit.FileLine(h.Hand, 3)) h.Hand(m, args...) return m } for _, h := range cmd.Action { if h.Name == action || h.Help == action { + if action == m.Option("_action") { + m.Option("_action", "") + } m.Log(LOG_CMDS, "%s.%s %d %v %s", c.Name, key, len(arg), arg, kit.FileLine(h.Hand, 3)) h.Hand(m, args...) return m