annotate place.h @ 185:16b4451e34b8

Add the ability to output line numbers, sort of. It is enabled with the intentionally undocumented -p option (similar to -P but reversed sense) and it might be vaguely useful but only prints the line number when the file changes and may not get the line numbers right.
author David A. Holland
date Fri, 12 Jun 2015 03:59:36 -0400
parents 4c3375895c6e
children 3a25180d3a5c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
1 /*-
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
2 * Copyright (c) 2010 The NetBSD Foundation, Inc.
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
3 * All rights reserved.
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
4 *
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
5 * This code is derived from software contributed to The NetBSD Foundation
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
6 * by David A. Holland.
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
7 *
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
8 * Redistribution and use in source and binary forms, with or without
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
9 * modification, are permitted provided that the following conditions
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
10 * are met:
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
11 * 1. Redistributions of source code must retain the above copyright
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
12 * notice, this list of conditions and the following disclaimer.
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
13 * 2. Redistributions in binary form must reproduce the above copyright
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
14 * notice, this list of conditions and the following disclaimer in the
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
15 * documentation and/or other materials provided with the distribution.
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
16 *
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
17 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
18 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
19 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
27 * POSSIBILITY OF SUCH DAMAGE.
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
28 */
76c114899f63 copyrights
David A. Holland
parents: 17
diff changeset
29
153
28ac21a359d1 needs include guard
David A. Holland
parents: 112
diff changeset
30 #ifndef PLACE_H
28ac21a359d1 needs include guard
David A. Holland
parents: 112
diff changeset
31 #define PLACE_H
28ac21a359d1 needs include guard
David A. Holland
parents: 112
diff changeset
32
183
4c3375895c6e Don't use <stdbool.h> unless __STDC__ is large enough.
David A. Holland
parents: 176
diff changeset
33 #include "bool.h"
12
6c15ca895585 improve places more
David A. Holland
parents: 11
diff changeset
34
6c15ca895585 improve places more
David A. Holland
parents: 11
diff changeset
35 enum places {
6c15ca895585 improve places more
David A. Holland
parents: 11
diff changeset
36 P_NOWHERE,
6c15ca895585 improve places more
David A. Holland
parents: 11
diff changeset
37 P_BUILTIN,
6c15ca895585 improve places more
David A. Holland
parents: 11
diff changeset
38 P_COMMANDLINE,
6c15ca895585 improve places more
David A. Holland
parents: 11
diff changeset
39 P_FILE,
6c15ca895585 improve places more
David A. Holland
parents: 11
diff changeset
40 };
8
97243badae69 split place stuff to its own file
David A. Holland
parents:
diff changeset
41 struct place {
12
6c15ca895585 improve places more
David A. Holland
parents: 11
diff changeset
42 enum places type;
13
120629a5d6bf seenfile -> placefile (clearer)
David A. Holland
parents: 12
diff changeset
43 const struct placefile *file;
8
97243badae69 split place stuff to its own file
David A. Holland
parents:
diff changeset
44 unsigned line;
97243badae69 split place stuff to its own file
David A. Holland
parents:
diff changeset
45 unsigned column;
97243badae69 split place stuff to its own file
David A. Holland
parents:
diff changeset
46 };
97243badae69 split place stuff to its own file
David A. Holland
parents:
diff changeset
47
10
800f3a560a3b move seenfiles to place.c too
David A. Holland
parents: 8
diff changeset
48 void place_init(void);
800f3a560a3b move seenfiles to place.c too
David A. Holland
parents: 8
diff changeset
49 void place_cleanup(void);
800f3a560a3b move seenfiles to place.c too
David A. Holland
parents: 8
diff changeset
50
8
97243badae69 split place stuff to its own file
David A. Holland
parents:
diff changeset
51 void place_setnowhere(struct place *p);
97243badae69 split place stuff to its own file
David A. Holland
parents:
diff changeset
52 void place_setbuiltin(struct place *p, unsigned num);
14
David A. Holland
parents: 13
diff changeset
53 void place_setcommandline(struct place *p, unsigned word, unsigned column);
David A. Holland
parents: 13
diff changeset
54 void place_setfilestart(struct place *p, const struct placefile *pf);
8
97243badae69 split place stuff to its own file
David A. Holland
parents:
diff changeset
55
176
a2f047301c15 Replace Joerg's place_setfile with something that at least sort of works.
David A. Holland
parents: 164
diff changeset
56 const char *place_getname(const struct place *);
112
2b0b61fd1a36 Fix handling of relative includes.
David A. Holland
parents: 30
diff changeset
57 const char *place_getparsedir(const struct place *incplace);
185
16b4451e34b8 Add the ability to output line numbers, sort of.
David A. Holland
parents: 183
diff changeset
58 bool place_eq(const struct place *, const struct place *);
16b4451e34b8 Add the ability to output line numbers, sort of.
David A. Holland
parents: 183
diff changeset
59 bool place_samefile(const struct place *, const struct place *);
112
2b0b61fd1a36 Fix handling of relative includes.
David A. Holland
parents: 30
diff changeset
60
176
a2f047301c15 Replace Joerg's place_setfile with something that at least sort of works.
David A. Holland
parents: 164
diff changeset
61 void place_changefile(struct place *p, const char *name);
a2f047301c15 Replace Joerg's place_setfile with something that at least sort of works.
David A. Holland
parents: 164
diff changeset
62
13
120629a5d6bf seenfile -> placefile (clearer)
David A. Holland
parents: 12
diff changeset
63 const struct placefile *place_addfile(const struct place *incplace,
120629a5d6bf seenfile -> placefile (clearer)
David A. Holland
parents: 12
diff changeset
64 const char *name, bool fromsystemdir);
153
28ac21a359d1 needs include guard
David A. Holland
parents: 112
diff changeset
65
28ac21a359d1 needs include guard
David A. Holland
parents: 112
diff changeset
66 #endif /* PLACE_H */