From f54e7e8c2aeb4fafebf0d5bd5570b060462c9ecf Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Thu, 1 Feb 2018 08:31:01 +0200 Subject: Initial commit --- src/escpos/stack.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/escpos/stack.h (limited to 'src/escpos/stack.h') diff --git a/src/escpos/stack.h b/src/escpos/stack.h new file mode 100644 index 0000000..ce79551 --- /dev/null +++ b/src/escpos/stack.h @@ -0,0 +1,41 @@ +#pragma once + +#include "util/membuf.h" +#include + +struct varbuf { + struct membuf buf; + size_t offset; +}; + +void +varbuf_begin(struct varbuf *var); + +void +varbuf_reset(struct varbuf *var); + +void +varbuf_remove_last(struct varbuf *var); + +struct stack { + struct varbuf var; + + union { + struct escpos_mem str; + uint8_t num; + }; + + enum stack_type { + STACK_STR, + STACK_NUM, + } type; +}; + +void +stack_num(struct stack *stack, const uint8_t base); + +const struct escpos_mem* +stack_get_str(const struct stack *stack); + +uint8_t +stack_get_num(const struct stack *stack); -- cgit v1.2.3