summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-08-30 23:08:08 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-08-30 23:08:08 +0000
commit640c4107f3bd657015486f2d487230aa5e6f6e33 (patch)
tree4b204a687a95a487329bee656a92d85e840d9929 /firmware
parent99207d647533f995fe05fbd15ed8d0c829ee6006 (diff)
downloadrockbox-640c4107f3bd657015486f2d487230aa5e6f6e33.tar.gz
rockbox-640c4107f3bd657015486f2d487230aa5e6f6e33.zip
format: supports %zd (ssize_t) and %zu (ssize_t)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27953 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/common/format.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/firmware/common/format.c b/firmware/common/format.c
index 2655a871c9..0fa838f511 100644
--- a/firmware/common/format.c
+++ b/firmware/common/format.c
@@ -42,6 +42,8 @@ int format(
42 long lval, lsign; 42 long lval, lsign;
43 unsigned int uval; 43 unsigned int uval;
44 unsigned long ulval; 44 unsigned long ulval;
45 size_t uszval;
46 ssize_t szval, szsign;
45 bool ok = true; 47 bool ok = true;
46 48
47 tmpbuf[sizeof tmpbuf - 1] = '\0'; 49 tmpbuf[sizeof tmpbuf - 1] = '\0';
@@ -167,6 +169,40 @@ int format(
167 169
168 break; 170 break;
169 171
172 case 'z':
173 ch = *fmt++;
174 switch(ch) {
175 case 'd':
176 szval = szsign = va_arg (ap, long);
177 if (szval < 0)
178 szval = -szval;
179 do
180 {
181 *--str = (szval % 10) + '0';
182 szval /= 10;
183 }
184 while (szval > 0);
185 if (szsign < 0)
186 *--str = '-';
187 break;
188
189 case 'u':
190 uszval = va_arg(ap, size_t);
191 do
192 {
193 *--str = (uszval % 10) + '0';
194 uszval /= 10;
195 }
196 while (uszval > 0);
197 break;
198
199 default:
200 *--str = 'z';
201 *--str = ch;
202 }
203
204 break;
205
170 default: 206 default:
171 *--str = ch; 207 *--str = ch;
172 break; 208 break;