Create branch for 0.19.1 release (copied from 0.19).
[geany-mirror.git] / tagmanager / nestlevel.h
blob00f7e09c91ad87ed2431cc6f2887299791404baa
1 /*
2 * $Id$
4 * Copyright (c) 1999-2002, Darren Hiebert
5 * Copyright 2009-2010 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
7 * This source code is released for free distribution under the terms of the
8 * GNU General Public License.
10 * Defines external interface to scope nesting levels for tags.
12 #ifndef _NESTLEVEL_H
13 #define _NESTLEVEL_H
16 * INCLUDE FILES
18 #include "general.h" /* must always come first */
20 #include "vstring.h"
23 * DATA DECLARATIONS
25 typedef struct NestingLevel NestingLevel;
26 typedef struct NestingLevels NestingLevels;
28 struct NestingLevel
30 int indentation;
31 vString *name;
32 int type;
35 struct NestingLevels
37 NestingLevel *levels;
38 int n; /* number of levels in use */
39 int allocated;
43 * FUNCTION PROTOTYPES
45 extern NestingLevels *nestingLevelsNew(void);
46 extern void nestingLevelsFree(NestingLevels *nls);
47 extern void nestingLevelsPush(NestingLevels *nls,
48 const vString *name, int type);
49 extern void nestingLevelsPop(NestingLevels *nls);
50 extern NestingLevel *nestingLevelsGetCurrent(NestingLevels *nls);
52 #endif /* _NESTLEVEL_H */
54 /* vi:set tabstop=4 shiftwidth=4: */