File: selectors.hh

package info (click to toggle)
monotone 0.40-7
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 24,064 kB
  • ctags: 17,296
  • sloc: cpp: 98,733; ansic: 83,690; sh: 6,065; lisp: 957; makefile: 777; perl: 715; python: 312; sql: 104; sed: 16
file content (55 lines) | stat: -rw-r--r-- 2,019 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#ifndef __SELECTORS_HH__
#define __SELECTORS_HH__

// Copyright (C) 2002 Graydon Hoare <graydon@pobox.com>
//
// This program is made available under the GNU GPL version 2.0 or
// greater. See the accompanying file COPYING for details.
//
// This program is distributed WITHOUT ANY WARRANTY; without even the
// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
// PURPOSE.

#include "vocab.hh"
#include <set>

class options;
class lua_hooks;
class project_t;

// In the normal case, to expand a selector on the command line, use one of
// these functions: the former if the selector can legitimately expand to
// more than one revision, the latter if it shouldn't.  Both treat a
// selector that expands to zero revisions, or a nonexistent revision, as an
// usage error, and generate progress messages when expanding selectors.

void complete(options const & opts, lua_hooks & lua,
              project_t & project, std::string const & str,
              std::set<revision_id> & completions);

void complete(options const & opts, lua_hooks & lua,
              project_t & project, std::string const & str,
              revision_id & completion);

// For extra control, use these functions.  expand_selector is just like the
// first overload of complete() except that it produces no progress messages
// or usage errors.  diagnose_ambiguous_expansion generates the canonical
// usage error if the set it is handed has more than one element.

void expand_selector(options const & opts, lua_hooks & lua,
                     project_t & project, std::string const & str,
                     std::set<revision_id> & completions);

void diagnose_ambiguous_expansion(project_t & project, std::string const & str,
                                  std::set<revision_id> const & completions);


// Local Variables:
// mode: C++
// fill-column: 76
// c-file-style: "gnu"
// indent-tabs-mode: nil
// End:
// vim: et:sw=2:sts=2:ts=2:cino=>2s,{s,\:s,+s,t0,g0,^-2,e-2,n-2,p2s,(0,=s:

#endif // __SELECTORS_HH__