Skip to content

Commit 38aa87f

Browse files
Mihail Chindrispcercuei
authored andcommitted
Update 19 aparitions of same 4 lines with function
This improve code readbility and reduce code size. Signed-off-by: Mihail Chindris <[email protected]>
1 parent 0571fcc commit 38aa87f

File tree

4 files changed

+42
-103
lines changed

4 files changed

+42
-103
lines changed

channel.c

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -207,60 +207,39 @@ ssize_t iio_snprintf_channel_xml(char *ptr, ssize_t len,
207207
ret = iio_snprintf(ptr, len, "<channel id=\"%s\"", chn->id);
208208
if (ret < 0)
209209
return ret;
210-
if (ptr) {
211-
ptr += ret;
212-
len -= ret;
213-
}
214-
alen += ret;
210+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
215211

216212
if (chn->name) {
217213
ret = iio_snprintf(ptr, len, " name=\"%s\"", chn->name);
218214
if (ret < 0)
219215
return ret;
220-
if (ptr) {
221-
ptr += ret;
222-
len -= ret;
223-
}
224-
alen += ret;
216+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
225217
}
226218

227219
ret = iio_snprintf(ptr, len, " type=\"%s\" >", chn->is_output ? "output" : "input");
228220
if (ret < 0)
229221
return ret;
230-
if (ptr) {
231-
ptr += ret;
232-
len -= ret;
233-
}
234-
alen += ret;
222+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
235223

236224
if (chn->is_scan_element) {
237225
ret = iio_snprintf_scan_element_xml(ptr, len, chn);
238226
if (ret < 0)
239227
return ret;
240-
if (ptr) {
241-
ptr += ret;
242-
len -= ret;
243-
}
244-
alen += ret;
228+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
245229
}
246230

247231
for (i = 0; i < chn->nb_attrs; i++) {
248232
ret = iio_snprintf_chan_attr_xml(ptr, len, &chn->attrs[i]);
249233
if (ret < 0)
250234
return ret;
251-
if (ptr) {
252-
ptr += ret;
253-
len -= ret;
254-
}
255-
alen += ret;
235+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
256236
}
257237

258238
ret = iio_snprintf(ptr, len, "</channel>");
259239
if (ret < 0)
260240
return ret;
261-
alen += ret;
262241

263-
return alen;
242+
return alen + ret;
264243
}
265244

266245
const char * iio_channel_get_id(const struct iio_channel *chn)

context.c

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,7 @@ static ssize_t sanitize_xml(char *ptr, ssize_t len, const char *str)
6464
if (ret < 0)
6565
return ret;
6666

67-
if (ptr) {
68-
len -= ret;
69-
ptr += ret;
70-
}
71-
72-
count += ret;
67+
iio_update_xml_indexes(ret, &ptr, &len, &count);
7368
}
7469

7570
return count;
@@ -92,60 +87,41 @@ static ssize_t iio_snprintf_context_xml(char *ptr, ssize_t len,
9287
if (ret < 0)
9388
return ret;
9489

95-
if (ptr) {
96-
ptr += ret;
97-
len -= ret;
98-
}
99-
alen += ret;
90+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
10091

10192
for (i = 0; i < ctx->nb_attrs; i++) {
10293
ret = iio_snprintf(ptr, len,
10394
"<context-attribute name=\"%s\" value=\"",
10495
ctx->attrs[i]);
10596
if (ret < 0)
10697
return ret;
107-
if (ptr) {
108-
ptr += ret;
109-
len -= ret;
110-
}
111-
alen += ret;
11298

99+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
113100
ret = sanitize_xml(ptr, len, ctx->values[i]);
114101
if (ret < 0)
115102
return ret;
116-
if (ptr) {
117-
ptr += ret;
118-
len -= ret;
119-
}
120-
alen += ret;
121-
103+
104+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
122105
ret = iio_snprintf(ptr, len, "\" />");
123106
if (ret < 0)
124107
return ret;
125-
if (ptr) {
126-
ptr += ret;
127-
len -= ret;
128-
}
129-
alen += ret;
108+
109+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
130110
}
131111

132112
for (i = 0; i < ctx->nb_devices; i++) {
133113
ret = iio_snprintf_device_xml(ptr, len, ctx->devices[i]);
134114
if (ret < 0)
135115
return ret;
136-
if (ptr) {
137-
ptr += ret;
138-
len -= ret;
139-
}
140-
alen += ret;
116+
117+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
141118
}
142119

143120
ret = iio_snprintf(ptr, len, "</context>");
144121
if (ret < 0)
145122
return ret;
146-
alen += ret;
147123

148-
return alen;
124+
return alen + ret;
149125
}
150126

151127
/* Returns a string containing the XML representation of this context */

device.c

Lines changed: 16 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -38,96 +38,70 @@ ssize_t iio_snprintf_device_xml(char *ptr, ssize_t len,
3838
ret = iio_snprintf(ptr, len, "<device id=\"%s\"", dev->id);
3939
if (ret < 0)
4040
return ret;
41-
if (ptr) {
42-
ptr += ret;
43-
len -= ret;
44-
}
45-
alen += ret;
4641

42+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
4743
if (dev->name) {
4844
ret = iio_snprintf(ptr, len, " name=\"%s\"", dev->name);
4945
if (ret < 0)
5046
return ret;
51-
if (ptr) {
52-
ptr += ret;
53-
len -= ret;
54-
}
55-
alen += ret;
47+
48+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
5649
}
5750

5851
if (dev->label) {
5952
ret = iio_snprintf(ptr, len, " label=\"%s\"", dev->label);
6053
if (ret < 0)
6154
return ret;
62-
if (ptr) {
63-
ptr += ret;
64-
len -= ret;
65-
}
66-
alen += ret;
55+
56+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
6757
}
6858

6959
ret = iio_snprintf(ptr, len, " >");
7060
if (ret < 0)
7161
return ret;
72-
if (ptr) {
73-
ptr += ret;
74-
len -= ret;
75-
}
76-
alen += ret;
62+
63+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
7764

7865
for (i = 0; i < dev->nb_channels; i++) {
7966
ret = iio_snprintf_channel_xml(ptr, len, dev->channels[i]);
8067
if (ret < 0)
8168
return ret;
82-
if (ptr) {
83-
ptr += ret;
84-
len -= ret;
85-
}
86-
alen += ret;
69+
70+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
8771
}
8872

8973
for (i = 0; i < dev->attrs.num; i++) {
9074
ret = iio_snprintf_xml_attr(ptr, len, dev->attrs.names[i],
9175
IIO_ATTR_TYPE_DEVICE);
9276
if (ret < 0)
9377
return ret;
94-
if (ptr) {
95-
ptr += ret;
96-
len -= ret;
97-
}
98-
alen += ret;
78+
79+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
9980
}
10081

10182
for (i = 0; i < dev->buffer_attrs.num; i++) {
10283
ret = iio_snprintf_xml_attr(ptr, len, dev->buffer_attrs.names[i],
10384
IIO_ATTR_TYPE_BUFFER);
10485
if (ret < 0)
10586
return ret;
106-
if (ptr) {
107-
ptr += ret;
108-
len -= ret;
109-
}
110-
alen += ret;
87+
88+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
11189
}
11290

11391
for (i = 0; i < dev->debug_attrs.num; i++) {
11492
ret = iio_snprintf_xml_attr(ptr, len, dev->debug_attrs.names[i],
11593
IIO_ATTR_TYPE_DEBUG);
11694
if (ret < 0)
11795
return ret;
118-
if (ptr) {
119-
ptr += ret;
120-
len -= ret;
121-
}
122-
alen += ret;
96+
97+
iio_update_xml_indexes(ret, &ptr, &len, &alen);
12398
}
12499

125100
ret = iio_snprintf(ptr, len, "</device>");
126101
if (ret < 0)
127102
return ret;
128-
alen += ret;
129103

130-
return alen;
104+
return alen + ret;
131105
}
132106

133107
int add_iio_dev_attr(struct iio_dev_attrs *attrs, const char *attr,

iio-private.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,4 +271,14 @@ int add_iio_dev_attr(struct iio_dev_attrs *attrs, const char *attr,
271271

272272
ssize_t __iio_printf iio_snprintf(char *buf, size_t len, const char *fmt, ...);
273273

274+
static inline void iio_update_xml_indexes(ssize_t ret, char **ptr, ssize_t *len,
275+
ssize_t *alen)
276+
{
277+
if (*ptr) {
278+
*ptr += ret;
279+
*len -= ret;
280+
}
281+
*alen += ret;
282+
}
283+
274284
#endif /* __IIO_PRIVATE_H__ */

0 commit comments

Comments
 (0)