From: Philippe E. <ph...@wa...> - 2003-04-30 21:02:55
|
John Levon wrote: > On Wed, Apr 30, 2003 at 08:36:24PM +0000, Philippe Elie wrote: > > >>>>+vector<string> filter_session(vector<string> const & session, >>>>+ vector<string> const & session_exclude) >>> >>>Can't you use string_filter ? >> >>sure I could but it's not worth: too many complication >>in caller code > > > What complications ? If it's difficulltl then string_filter probably > needs some refactoring. > > This is especially relevent here, since you have a FIXME about allowing > globbing: if we use string_filter, then that would be an extremely > trivial change. > > It's good practice IMHO to pass around the filter itself rather than > two v<s> references. ok I see we don't use pp_interface with the same meaning. > > I guess I'll have a go. This do what the current code do and reflect pp_interface // need some tweaking, don't work as it. vector<string> filter_session(vector<string> const & session, vector<string> const & session_exclude) { string_filter filter(vector<string>(), session_session); vector<string> result; if (session.empty()) session.push_back("current"); // need a temp for session for (size_t i = 0 ; i < session.size() ; ++i) { if (!filter.match(session[i])) result.push_back(session[i]); } return result; } We keep separate name since it's not a filter in the same way as filtering symbols, for symbols we filter a list of symbols with include/exclude, here the exclude-filter is applied on the include session only. 3.5 session: <sessionlist> A comma-separated list of session names to resolve in. Absence of this tag, unlike all others, means "the current session", equivalent to specifying "session: current" 3.6 session-exclude: <sessionlist> A comma list of sessions to exclude ... Alternative is to change pp_interface first, clarify if we allow glob char in it and how we match: session:current,/path/my/* session-exclude:my regards, Phil |