1 #include <stdbool.h>
2 #include <unistd.h>
3 #include <gsf/gsf.h>
4 #include <gsf/gsf-input.h>
5 #include <gsf/gsf-infile.h>
6 #include <gsf/gsf-output.h>
7 #include <gsf/gsf-outfile.h>
8 #include <gsf/gsf-input-memory.h>
9 #include <gsf/gsf-input-stdio.h>
10 #include <gsf/gsf-output-stdio.h>
11 #include <gsf/gsf-infile-msole.h>
12 #include <gsf/gsf-outfile-msole.h>
13 
14 int
main(int argc,char ** argv)15 main (int argc, char **argv)
16 {
17 	GsfOutput *out, *outchild;
18 	GsfOutfile *outf;
19 	GsfInput *in, *inchild, *indup;
20 	GsfInfile *inf;
21 	gsize size;
22 
23 	(void)argc;
24 	(void)argv;
25 
26 	out = gsf_output_stdio_new("teststg", NULL);
27 	outf = gsf_outfile_msole_new(out);
28 	outchild = gsf_outfile_new_child(outf, "small", false);
29 	gsf_output_puts(outchild, "test\n");
30 	gsf_output_close(outchild);
31 	g_object_unref(G_OBJECT(outchild));
32 	gsf_output_close(GSF_OUTPUT(outf));
33 	g_object_unref(G_OBJECT(outf));
34 	g_object_unref(G_OBJECT(out));
35 
36 	in = gsf_input_stdio_new("teststg", NULL);
37 	inf = gsf_infile_msole_new(in, NULL);
38 	inchild = gsf_infile_child_by_name(inf, "small");
39 	indup = gsf_input_dup(inchild, NULL);
40 	size = gsf_input_size(inchild);
41 
42 	write(1, gsf_input_read(indup, size, NULL), size);
43 	g_object_unref(G_OBJECT(indup));
44 	g_object_unref(G_OBJECT(inchild));
45 	g_object_unref(G_OBJECT(inf));
46 	g_object_unref(G_OBJECT(in));
47 
48 	return 0;
49 }
50