172445Sassar/*
2233294Sstas * Copyright (c) 2000,2004 Kungliga Tekniska H��gskolan
372445Sassar * (Royal Institute of Technology, Stockholm, Sweden).
472445Sassar * All rights reserved.
5233294Sstas *
672445Sassar * Redistribution and use in source and binary forms, with or without
772445Sassar * modification, are permitted provided that the following conditions
872445Sassar * are met:
9233294Sstas *
1072445Sassar * 1. Redistributions of source code must retain the above copyright
1172445Sassar *    notice, this list of conditions and the following disclaimer.
12233294Sstas *
1372445Sassar * 2. Redistributions in binary form must reproduce the above copyright
1472445Sassar *    notice, this list of conditions and the following disclaimer in the
1572445Sassar *    documentation and/or other materials provided with the distribution.
16233294Sstas *
1772445Sassar * 3. Neither the name of the Institute nor the names of its contributors
1872445Sassar *    may be used to endorse or promote products derived from this software
1972445Sassar *    without specific prior written permission.
20233294Sstas *
2172445Sassar * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
2272445Sassar * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2372445Sassar * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2472445Sassar * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
2572445Sassar * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2672445Sassar * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2772445Sassar * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2872445Sassar * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2972445Sassar * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
3072445Sassar * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
3172445Sassar * SUCH DAMAGE.
3272445Sassar */
33233294Sstas/* $Id$ */
3472445Sassar
3572445Sassar#ifndef __rtbl_h__
3672445Sassar#define __rtbl_h__
3772445Sassar
38178825Sdfr#ifndef ROKEN_LIB_FUNCTION
39178825Sdfr#ifdef _WIN32
40233294Sstas#define ROKEN_LIB_FUNCTION
41233294Sstas#define ROKEN_LIB_CALL     __cdecl
42178825Sdfr#else
43178825Sdfr#define ROKEN_LIB_FUNCTION
44233294Sstas#define ROKEN_LIB_CALL
45178825Sdfr#endif
46178825Sdfr#endif
47178825Sdfr
48178825Sdfr#if !defined(__GNUC__) && !defined(__attribute__)
49178825Sdfr#define __attribute__(x)
50178825Sdfr#endif
51178825Sdfr
52178825Sdfr#ifdef __cplusplus
53178825Sdfrextern "C" {
54178825Sdfr#endif
55178825Sdfr
5672445Sassarstruct rtbl_data;
5772445Sassartypedef struct rtbl_data *rtbl_t;
5872445Sassar
5972445Sassar#define RTBL_ALIGN_LEFT		0
6072445Sassar#define RTBL_ALIGN_RIGHT	1
6172445Sassar
62178825Sdfr/* flags */
63178825Sdfr#define RTBL_HEADER_STYLE_NONE	1
6472445Sassar
65233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
66178825Sdfrrtbl_add_column (rtbl_t, const char*, unsigned int);
6772445Sassar
68233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
69178825Sdfrrtbl_add_column_by_id (rtbl_t, unsigned int, const char*, unsigned int);
7072445Sassar
71233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
72178825Sdfrrtbl_add_column_entryv_by_id (rtbl_t table, unsigned int id,
73178825Sdfr			      const char *fmt, ...)
74178825Sdfr	__attribute__ ((format (printf, 3, 0)));
7572445Sassar
76233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
77178825Sdfrrtbl_add_column_entry (rtbl_t, const char*, const char*);
7872445Sassar
79233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
80178825Sdfrrtbl_add_column_entryv (rtbl_t, const char*, const char*, ...)
81178825Sdfr	__attribute__ ((format (printf, 3, 0)));
8272445Sassar
83233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
84178825Sdfrrtbl_add_column_entry_by_id (rtbl_t, unsigned int, const char*);
8572445Sassar
86233294SstasROKEN_LIB_FUNCTION rtbl_t ROKEN_LIB_CALL
87178825Sdfrrtbl_create (void);
88178825Sdfr
89233294SstasROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
90178825Sdfrrtbl_destroy (rtbl_t);
91178825Sdfr
92233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
93178825Sdfrrtbl_format (rtbl_t, FILE*);
94178825Sdfr
95233294SstasROKEN_LIB_FUNCTION unsigned int ROKEN_LIB_CALL
96178825Sdfrrtbl_get_flags (rtbl_t);
97178825Sdfr
98233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
99178825Sdfrrtbl_new_row (rtbl_t);
100178825Sdfr
101233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
102178825Sdfrrtbl_set_column_affix_by_id (rtbl_t, unsigned int, const char*, const char*);
103178825Sdfr
104233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
105178825Sdfrrtbl_set_column_prefix (rtbl_t, const char*, const char*);
106178825Sdfr
107233294SstasROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
108178825Sdfrrtbl_set_flags (rtbl_t, unsigned int);
109178825Sdfr
110233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
111178825Sdfrrtbl_set_prefix (rtbl_t, const char*);
112178825Sdfr
113233294SstasROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
114178825Sdfrrtbl_set_separator (rtbl_t, const char*);
115178825Sdfr
116178825Sdfr#ifdef __cplusplus
117178825Sdfr}
118178825Sdfr#endif
119178825Sdfr
12072445Sassar#endif /* __rtbl_h__ */
121