From: Cyril Hrubis <chrubis@suse.cz>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH 3/7] docparse: data_storage: Add integer type node
Date: Mon, 18 Oct 2021 17:47:55 +0200 [thread overview]
Message-ID: <20211018154800.11013-4-chrubis@suse.cz> (raw)
In-Reply-To: <20211018154800.11013-1-chrubis@suse.cz>
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
---
docparse/data_storage.h | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/docparse/data_storage.h b/docparse/data_storage.h
index 339450c8b..117c1d127 100644
--- a/docparse/data_storage.h
+++ b/docparse/data_storage.h
@@ -15,6 +15,7 @@ enum data_type {
DATA_ARRAY,
DATA_HASH,
DATA_STRING,
+ DATA_INT,
};
struct data_node_array {
@@ -41,12 +42,18 @@ struct data_node_string {
char val[];
};
+struct data_node_int {
+ enum data_type type;
+ long val;
+};
+
struct data_node {
union {
enum data_type type;
struct data_node_hash hash;
struct data_node_array array;
struct data_node_string string;
+ struct data_node_int i;
};
};
@@ -64,6 +71,19 @@ static inline struct data_node *data_node_string(const char *string)
return node;
}
+static inline struct data_node *data_node_int(long i)
+{
+ struct data_node *node = malloc(sizeof(struct data_node_int));
+
+ if (!node)
+ return NULL;
+
+ node->type = DATA_INT;
+ node->i.val = i;
+
+ return node;
+}
+
#define MAX_ELEMS 100
static inline struct data_node *data_node_hash(void)
@@ -122,6 +142,7 @@ static inline void data_node_free(struct data_node *self)
switch (self->type) {
case DATA_STRING:
+ case DATA_INT:
break;
case DATA_HASH:
for (i = 0; i < self->hash.elems_used; i++) {
@@ -209,6 +230,10 @@ static inline void data_node_print_(struct data_node *self, unsigned int padd)
unsigned int i;
switch (self->type) {
+ case DATA_INT:
+ data_print_padd(padd);
+ printf("%li\n", self->i.val);
+ break;
case DATA_STRING:
data_print_padd(padd);
printf("'%s'\n", self->string.val);
@@ -295,6 +320,10 @@ static inline void data_to_json_(struct data_node *self, FILE *f, unsigned int p
unsigned int i;
switch (self->type) {
+ case DATA_INT:
+ padd = do_padd ? padd : 0;
+ data_fprintf(f, padd, "%li", self->i.val);
+ break;
case DATA_STRING:
padd = do_padd ? padd : 0;
data_fprintf_esc(f, padd, self->string.val);
--
2.32.0
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2021-10-18 15:48 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-18 15:47 [LTP] [PATCH 0/7] docparse improvements Cyril Hrubis
2021-10-18 15:47 ` [LTP] [PATCH 1/7] docparse: Implement #define and #include Cyril Hrubis
2021-10-29 8:26 ` Petr Vorel
2021-10-29 8:27 ` Petr Vorel
2021-10-18 15:47 ` [LTP] [PATCH 2/7] docparse: Add tests Cyril Hrubis
2021-10-22 11:32 ` Petr Vorel
2021-10-25 12:46 ` Cyril Hrubis
2021-10-25 20:00 ` Petr Vorel
2021-10-22 11:41 ` Petr Vorel
2021-10-25 12:51 ` Cyril Hrubis
2021-10-25 20:01 ` Petr Vorel
2021-10-18 15:47 ` Cyril Hrubis [this message]
2021-10-18 15:47 ` [LTP] [PATCH 4/7] docparse: Implement ARRAY_SIZE() Cyril Hrubis
2021-11-01 12:36 ` Richard Palethorpe
2021-11-01 13:18 ` Cyril Hrubis
2021-10-18 15:47 ` [LTP] [PATCH 5/7] docparse: Add type normalization Cyril Hrubis
2021-10-18 15:47 ` [LTP] [PATCH 6/7] docparse: Group data to 'testsuite' and 'defaults' Cyril Hrubis
2021-10-18 15:47 ` [LTP] [PATCH 7/7] docparse/Makefile: Do not abort on missing generators Cyril Hrubis
2021-10-22 11:29 ` Petr Vorel
2021-10-25 12:48 ` Cyril Hrubis
2021-10-27 9:47 ` Petr Vorel
2021-10-18 15:48 ` [LTP] [PATCH 0/7] docparse improvements Cyril Hrubis
2021-10-27 13:22 ` Richard Palethorpe
2021-10-27 13:48 ` Cyril Hrubis
2021-10-28 8:11 ` Richard Palethorpe
2021-10-29 8:54 ` Cyril Hrubis
2021-11-01 9:04 ` Richard Palethorpe
2021-11-01 9:59 ` Cyril Hrubis
2021-11-01 12:20 ` Richard Palethorpe
2021-11-01 15:10 ` Cyril Hrubis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211018154800.11013-4-chrubis@suse.cz \
--to=chrubis@suse.cz \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).