3366fc6950636b37dbe404016dbddf34812455b0
[binutils-gdb.git] / gdb / linespec.h
1 /* Header for GDB line completion.
2 Copyright (C) 2000, 2007, 2008, 2009, 2010, 2011
3 Free Software Foundation, Inc.
4
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
17
18 #if !defined (LINESPEC_H)
19 #define LINESPEC_H 1
20
21 struct symtab;
22
23 /* An instance of this may be filled in by decode_line_1. The caller
24 must call init_linespec_result to initialize it. */
25
26 struct linespec_result
27 {
28 /* If non-NULL, an array of canonical names for returned
29 symtab_and_line objects. The array has as many elements as the
30 `nelts' field in the symtabs_and_line returned by decode_line_1.
31 An element in the array may be NULL. The array and each non-NULL
32 element in it are allocated with xmalloc and must be freed by the
33 caller. */
34 char **canonical;
35 };
36
37 /* Initialize a linespec_result. */
38
39 extern void init_linespec_result (struct linespec_result *);
40
41 extern struct symtabs_and_lines
42 decode_line_1 (char **argptr, int funfirstline,
43 struct symtab *default_symtab, int default_line,
44 struct linespec_result *canonical, int *not_found_ptr);
45
46 #endif /* defined (LINESPEC_H) */