Commit 65c3e12
committed
Correct the behavior and return value of snprintf()
According to C99 7.19.6.5, it explicitly defines the behavior and
return value of snprintf(). However, consider the following description
in that section:
* If n is zero, nothing is written.
* Output characters beyond the n-1st are discarded rather than being
written to the array, and a null character is written at the end
of the characters actually written into the array.
* The snprintf function returns the number of characters that would
have been written had n been sufficiently large.
While validating snprintf() in the built-in C library, it was found
that the behavior and/or the return value did not match the above
description.
Therefore, these changes fix the implementation of snprintf() to
comply with the specification, and the related test cases are also
adjusted to verify the behavior and return value of snprintf().1 parent ff83f01 commit 65c3e12
File tree
6 files changed
+194
-48
lines changed- lib
- tests
- snapshots
6 files changed
+194
-48
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
219 | 264 | | |
220 | | - | |
221 | | - | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
222 | 293 | | |
223 | 294 | | |
224 | 295 | | |
| |||
249 | 320 | | |
250 | 321 | | |
251 | 322 | | |
252 | | - | |
| 323 | + | |
253 | 324 | | |
254 | 325 | | |
255 | 326 | | |
256 | 327 | | |
257 | 328 | | |
258 | 329 | | |
259 | 330 | | |
260 | | - | |
| 331 | + | |
261 | 332 | | |
262 | 333 | | |
263 | 334 | | |
264 | 335 | | |
265 | 336 | | |
266 | 337 | | |
267 | 338 | | |
268 | | - | |
269 | | - | |
| 339 | + | |
| 340 | + | |
270 | 341 | | |
271 | 342 | | |
272 | 343 | | |
| |||
280 | 351 | | |
281 | 352 | | |
282 | 353 | | |
| 354 | + | |
283 | 355 | | |
284 | | - | |
| 356 | + | |
285 | 357 | | |
286 | 358 | | |
287 | 359 | | |
288 | | - | |
289 | | - | |
290 | | - | |
291 | | - | |
| 360 | + | |
292 | 361 | | |
293 | 362 | | |
294 | | - | |
| 363 | + | |
295 | 364 | | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
| 365 | + | |
300 | 366 | | |
301 | | - | |
| 367 | + | |
302 | 368 | | |
303 | | - | |
304 | | - | |
| 369 | + | |
305 | 370 | | |
306 | 371 | | |
307 | 372 | | |
| |||
328 | 393 | | |
329 | 394 | | |
330 | 395 | | |
331 | | - | |
332 | | - | |
333 | | - | |
| 396 | + | |
334 | 397 | | |
335 | 398 | | |
336 | 399 | | |
337 | | - | |
338 | | - | |
| 400 | + | |
339 | 401 | | |
340 | 402 | | |
341 | 403 | | |
342 | | - | |
| 404 | + | |
343 | 405 | | |
344 | 406 | | |
345 | 407 | | |
346 | | - | |
| 408 | + | |
347 | 409 | | |
348 | 410 | | |
349 | 411 | | |
350 | | - | |
| 412 | + | |
351 | 413 | | |
352 | 414 | | |
353 | 415 | | |
354 | | - | |
355 | | - | |
| 416 | + | |
356 | 417 | | |
357 | 418 | | |
358 | 419 | | |
| |||
361 | 422 | | |
362 | 423 | | |
363 | 424 | | |
364 | | - | |
365 | | - | |
366 | | - | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
367 | 428 | | |
368 | 429 | | |
369 | 430 | | |
370 | 431 | | |
371 | 432 | | |
372 | | - | |
373 | | - | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
374 | 440 | | |
375 | 441 | | |
376 | 442 | | |
377 | 443 | | |
378 | | - | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
379 | 451 | | |
380 | 452 | | |
381 | 453 | | |
382 | 454 | | |
383 | | - | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
384 | 462 | | |
385 | 463 | | |
386 | 464 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1647 | 1647 | | |
1648 | 1648 | | |
1649 | 1649 | | |
| 1650 | + | |
| 1651 | + | |
| 1652 | + | |
| 1653 | + | |
| 1654 | + | |
1650 | 1655 | | |
1651 | 1656 | | |
1652 | 1657 | | |
| |||
1656 | 1661 | | |
1657 | 1662 | | |
1658 | 1663 | | |
1659 | | - | |
| 1664 | + | |
| 1665 | + | |
| 1666 | + | |
| 1667 | + | |
| 1668 | + | |
1660 | 1669 | | |
1661 | 1670 | | |
| 1671 | + | |
| 1672 | + | |
| 1673 | + | |
1662 | 1674 | | |
1663 | 1675 | | |
1664 | 1676 | | |
1665 | 1677 | | |
1666 | 1678 | | |
1667 | 1679 | | |
1668 | | - | |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
| 1683 | + | |
1669 | 1684 | | |
1670 | 1685 | | |
| 1686 | + | |
| 1687 | + | |
| 1688 | + | |
1671 | 1689 | | |
1672 | 1690 | | |
1673 | 1691 | | |
1674 | 1692 | | |
1675 | 1693 | | |
1676 | 1694 | | |
| 1695 | + | |
| 1696 | + | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
| 1700 | + | |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
| 1704 | + | |
| 1705 | + | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
| 1713 | + | |
| 1714 | + | |
| 1715 | + | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
| 1732 | + | |
| 1733 | + | |
| 1734 | + | |
| 1735 | + | |
| 1736 | + | |
| 1737 | + | |
| 1738 | + | |
| 1739 | + | |
| 1740 | + | |
| 1741 | + | |
| 1742 | + | |
| 1743 | + | |
| 1744 | + | |
1677 | 1745 | | |
1678 | 1746 | | |
1679 | 1747 | | |
| |||
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
0 commit comments