blob: da31b9720965c582769ed567e7f60d25da465ad8 [file] [log] [blame]
Nguyen Anh Quynh6023ef72014-04-29 11:21:04 +08001/* Capstone Disassembly Engine */
2/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +08003
4#include <stdint.h>
5#include <stdarg.h>
6#include <stdio.h>
7
8#include "SStream.h"
Nguyen Anh Quynhedeeb042014-01-15 20:44:03 +08009#include "cs_priv.h"
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080010
11void SStream_Init(SStream *ss)
12{
13 ss->index = 0;
14 ss->buffer[0] = '\0';
15}
16
17void SStream_concat(SStream *ss, const char *fmt, ...)
18{
Nguyen Anh Quynhfc83a432014-02-22 23:26:27 +080019#ifndef CAPSTONE_DIET
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080020 va_list ap;
Axel 0vercl0k Souchet779d4c72014-05-08 23:44:49 +010021 int ret = 0;
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080022 va_start(ap, fmt);
Axel 0vercl0k Souchet779d4c72014-05-08 23:44:49 +010023 ret = cs_vsnprintf(ss->buffer + ss->index, sizeof(ss->buffer) - (ss->index + 1), fmt, ap);
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080024 va_end(ap);
25 ss->index += ret;
Nguyen Anh Quynhfc83a432014-02-22 23:26:27 +080026#endif
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080027}
28
29/*
30 int main()
31 {
32 SStream ss;
33 int64_t i;
34
35 SStream_Init(&ss);
36
37 SStream_concat(&ss, "hello ");
38 SStream_concat(&ss, "%d - 0x%x", 200, 16);
39
40 i = 123;
41 SStream_concat(&ss, " + %ld", i);
42 SStream_concat(&ss, "%s", "haaaaa");
43
44 printf("%s\n", ss.buffer);
45
46 return 0;
47 }
48 */