Hi Not sure I follow, can you show me your code?
I think check() was meant for parse time so that eg bind-key could reject stuff when a key was bound rather when it was pressed, but since it is hardly used I'm fine with removing it. Note that bind/unbind use it as well as new-session. On Mon, Nov 19, 2012 at 12:39:34AM +0000, Thomas Adam wrote: > Hi, > > [ I've not forgotten about this, in case anyone was wondering. ] > > On Tue, Nov 06, 2012 at 12:48:54PM +0000, Nicholas Marriott wrote: > > On Sun, Nov 04, 2012 at 01:22:50AM +0000, Thomas Adam wrote: > > > To "fix" this, we would need to change where and how hooks are run from, > > > much like the notify_() hooks do now, but there would then be no > > > before/after mechanism. > > > > Hmm. Perhaps having per-session hooks doesn't make much sense. > > You say that, but even just passing the information through formats requires > having the correct context, because without it, any interpolation of > formatting would still be from the calling context of where the command came > from, not where it's ultimately ending up -- and for global or session > hooks, this is still a problem. > > So I started thinking about it. One way we might solve this is to augment > the cmd_entry struct with an additional function pointer field such as > "context" which shifts out the command-line parsing checks found in the > _exec() functions and parses them, filling out the client, session, winlink, > etc., which the command *would* run it, were it going to. > > This information could then be used by the before/after hooks mechanisms to > then detect the session the hook is running for, and when running certain > commands, run within that. > > I have a proof-of-concept for this and it seems to work quite well. But > there's two things here: > > 1. We already have a mechanism for this in many respects, and I wonder > whether augmenting struct cmd_ctx would be sufficient for this? > > 2. The cmd->entry->check() function seems like the remnants from the > pre-args parsing of tmux, and seemingly only the new-session command > implements this. To me this function is redundant, and has been shifted in > to the ->exec() functions, so we could just reuse this field and fix > cmd-new-session in the process. > > If such a context were set up in this way, then the argument checking in > each of the ->exec() functions can more-or-less disappear and just use the > values in the context struct directly. > > Once this is all sorted, then creating a format_tree becomes secondary, and > then everything will Just Work (tm). > > Kindly, > > -- Thomas Adam ------------------------------------------------------------------------------ Monitor your physical, virtual and cloud infrastructure from a single web console. Get in-depth insight into apps, servers, databases, vmware, SAP, cloud infrastructure, etc. Download 30-day Free Trial. Pricing starts from $795 for 25 servers or applications! http://p.sf.net/sfu/zoho_dev2dev_nov _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users