summaryrefslogtreecommitdiff
path: root/support/dktools/test-membuf.c
blob: 1785e53de2ae692f207a8cc850ec796350a3d208 (plain)
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
/*
	WARNING: This file was generated by dkct.
	Changes you make here will be lost if dkct is run again!
	You should modify the original source and run dkct on it.
	Original source: test-membuf.ctr
*/

/**	@file test-membuf.c The test-membuf module.
*/


#line 1 "test-membuf.ctr"

#include <stdio.h>

#include "dk4membuf.h"
#include "dk4membf.h"



int main(void)
{
  char		 buf[32];
  dk4_er_t	 er;
  dk4_membuf_t	*mbptr;
  size_t	 rdb;
  int		 cc;
  int		 res;

  dk4error_init(&er);
  mbptr = dk4membuf_open(&er);
  if (NULL != mbptr) {
    cc = 1;
    while (1 == cc) {
      rdb = fread(buf, 1, sizeof(buf), stdin);
      if (0 < rdb) {
        if (0 != feof(stdin)) { cc = 0; }
        res = dk4membuf_store(mbptr, buf, rdb, &er);
	if (0 == res) {
	  fprintf(stderr, "Failed to save data!\n"); fflush(stderr);
	}
      } else {
        cc = 0;
      }
    }
    res = dk4membuf_size(&rdb, mbptr, &er);
    if (0 != res) {
      fprintf(stderr, "Size: %lu\n", (unsigned long)rdb); fflush(stderr);
    } else {
      fprintf(stderr, "Size calculation failed!\n"); fflush(stderr);
    }
    res = dk4membuf_to_file(stdout, mbptr, &er);
    if (0 == res) {
      fprintf(stderr, "Failed to write output!\n"); fflush(stderr);
    }
    dk4membuf_close(mbptr);
  }
  return 0;
}