File: show.h

package info (click to toggle)
libreswan 4.3-1%2Bdeb11u4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 62,688 kB
  • sloc: ansic: 108,293; sh: 25,973; xml: 11,756; python: 10,230; makefile: 1,580; javascript: 1,353; yacc: 825; sed: 647; perl: 584; lex: 159; awk: 156
file content (81 lines) | stat: -rw-r--r-- 2,153 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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/* show functions, for libreswan
 *
 * Copyright (C) 2020 Andrew Cagney
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2 of the License, or (at your
 * option) any later version.  See <https://www.gnu.org/licenses/gpl2.txt>.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * for more details.
 */

#ifndef SHOW_H
#define SHOW_H

/*
 * Try to deal with the separator (aka blank line or spacer) problem
 * in show output.
 */

struct show;
enum rc_type;

struct show *alloc_show(struct logger *logger);
void free_show(struct show **s);
/* underlying global logger formed by alloc_show() */
struct logger *show_logger(struct show *s);

/*
 * output primitives: access the internal jambuf; show the contents of
 * a jambuf.
 */

struct jambuf *show_jambuf(struct show *s);
void jambuf_to_show(struct jambuf *jambuf, struct show *s, enum rc_type rc);
#define SHOW_JAMBUF(RC, S, BUF)				\
	for (struct jambuf *BUF = show_jambuf(s);	\
	     BUF != NULL;				\
	     jambuf_to_show(BUF, S, RC), BUF = NULL)

/*
 * Flag that the next line needs to be preceded by a separator (aka
 * blank line).  For instance:
 *
 *    struct show *s = new_show(whackfd);
 *    show_separator(s);
 *    show_comment(s, "heading 1");
 *    show_separator(s);
 *    show_separator(s);
 *    show_comment(s, "heading 2");
 *    show_separator(s);
 *    free_show(&s);
 *
 * will output:
 *
 *    line 1
 *    <blank>
 *    line 2
 *    <blank>
 *
 */
void show_separator(struct show *s);

/*
 * If necessary show the separator (aka blank line), and then show the
 * message.  Suppress further separation.
 *
 * "comment" comes from RC_COMMENT, better name?
 */

void show_comment(struct show *s, const char *message, ...) PRINTF_LIKE(2);

/*
 * A raw line (no prefix).
 */
void show_raw(struct show *s, const char *message, ...) PRINTF_LIKE(2);

#endif