1 #if HAVE_CONFIG_H
2 #  include "config.h"
3 #endif
4 
5 #include "common.h"
6 #include "attr.h"
7 #include "mapi_attr.h"
8 
9 /* Format Strings */
10 #define UINT8_FMT "%u"
11 #define INT8_FMT "%d"
12 #define UINT16_FMT "%hu"
13 #define INT16_FMT "%hd"
14 #if (SIZEOF_INT == 2)
15 #define UINT32_FMT  "%lu"
16 #define INT32_FMT  "%ld"
17 #else
18 #define UINT32_FMT  "%u"
19 #define INT32_FMT  "%d"
20 #endif /* (SIZEOF_INT == 2) */
21 
22 void
write_uint8(FILE * fp,uint8 b)23 write_uint8 (FILE* fp, uint8 b)
24 {
25     fprintf (fp, UINT8_FMT, b);
26 }
27 
28 void
write_uint16(FILE * fp,uint16 s)29 write_uint16 (FILE* fp, uint16 s)
30 {
31     fprintf (fp, UINT16_FMT, s);
32 }
33 
34 void
write_uint32(FILE * fp,uint32 l)35 write_uint32 (FILE* fp, uint32 l)
36 {
37     fprintf (fp, UINT32_FMT, l);
38 }
39 
40 void
write_int8(FILE * fp,int8 b)41 write_int8 (FILE* fp, int8 b)
42 {
43     fprintf (fp, INT8_FMT, b);
44 }
45 
46 void
write_int16(FILE * fp,int16 s)47 write_int16 (FILE* fp, int16 s)
48 {
49     fprintf (fp, INT16_FMT, s);
50 }
51 
52 void
write_int32(FILE * fp,int32 l)53 write_int32 (FILE* fp, int32 l)
54 {
55     fprintf (fp, INT32_FMT, l);
56 }
57 
58 void
write_float(FILE * fp,float f)59 write_float (FILE *fp, float f)
60 {
61     fprintf (fp, "%f", f);
62 }
63 
64 void
write_string(FILE * fp,const char * s)65 write_string (FILE *fp, const char *s)
66 {
67     fprintf (fp, "'%s'", s);
68 }
69 
70 void
write_byte(FILE * fp,uint8 b)71 write_byte (FILE* fp, uint8 b)
72 {
73     fprintf (fp, "0x%02x", b);
74 }
75 
76 void
write_word(FILE * fp,uint16 w)77 write_word (FILE *fp, uint16 w)
78 {
79     fprintf (fp, "0x%04x", w);
80 }
81 
82 void
write_dword(FILE * fp,uint32 dw)83 write_dword (FILE *fp, uint32 dw)
84 {
85     fprintf (fp, "0x%08x", dw);
86 }
87 
88 void
write_date(FILE * fp,struct date * dt)89 write_date (FILE *fp, struct date* dt)
90 {
91     fprintf (fp, "%s", date_to_str (dt));
92 }
93 
94 void
write_triple(FILE * fp,TRIPLE * triple)95 write_triple (FILE* fp, TRIPLE* triple)
96 {
97     fprintf (fp,
98 	     "{id=" UINT16_FMT
99 	     ",chgtrp=" UINT16_FMT
100 	     ",cch=" UINT16_FMT
101 	     ",cb=" UINT16_FMT "} "
102 	     "sender_display_name='%s', "
103 	     "sender_address='%s'",
104 	     triple->trp.id,
105 	     triple->trp.chbgtrp,
106 	     triple->trp.cch,
107 	     triple->trp.cb,
108 	     triple->sender_display_name,
109 	     triple->sender_address);
110 }
111 
112 void
write_boolean(FILE * fp,uint16 b)113 write_boolean (FILE *fp, uint16 b)
114 {
115     fprintf (fp, "%s", ((b == 0) ? "false" : "true"));
116 }
117 
118 void
write_uint64(FILE * fp,uint32 bytes[2])119 write_uint64 (FILE *fp, uint32 bytes[2])
120 {
121     fprintf (fp, "0x%08x 0x%08x", bytes[0], bytes[1]);
122 }
123 
124 void
write_guid(FILE * fp,GUID * guid)125 write_guid (FILE *fp, GUID *guid)
126 {
127     int j;
128     fprintf (fp, "{ 0x%04x 0x%02x 0x%02x { ",
129 	     guid->data1, guid->data2, guid->data3);
130     for (j = 0; j < 8; j++)
131     {
132 	write_byte (fp, guid->data4[j]);
133 	fprintf (fp, " ");
134     }
135     fprintf (fp, "}");
136 }
137