Overview
Comment: | of_asprintf: Add %K format specifier.
%K is for const of_unichar_t*. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
945ff1043d8055315d81cd52aebceb06 |
User & Date: | js on 2013-11-23 17:48:21 |
Other Links: | manifest | tags |
Context
2013-11-24
| ||
17:28 | of_asprintf: Change %k to %C and %K to %S. check-in: 4b56450a24 user: js tags: trunk | |
2013-11-23
| ||
17:48 | of_asprintf: Add %K format specifier. check-in: 945ff1043d user: js tags: trunk | |
17:28 | OF(Mutable)String_UTF8: Code simplification. check-in: f177032b43 user: js tags: trunk | |
Changes
Modified src/OFMutableString.h from [8ef9ff62cf] to [7cc5398316].
︙ | ︙ | |||
83 84 85 86 87 88 89 | encoding: (of_string_encoding_t)encoding length: (size_t)cStringLength; /*! * @brief Appends a formatted string to the OFMutableString. * * See printf for the format syntax. As an addition, %@ is available as format | | | | 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | encoding: (of_string_encoding_t)encoding length: (size_t)cStringLength; /*! * @brief Appends a formatted string to the OFMutableString. * * See printf for the format syntax. As an addition, %@ is available as format * specifier for objects, %k for of_unichar_t and %K for const of_unichar_t*. * * @param format A format string which generates the string to append */ - (void)appendFormat: (OFConstantString*)format, ...; /*! * @brief Appends a formatted string to the OFMutableString. * * See printf for the format syntax. As an addition, %@ is available as format * specifier for objects, %k for of_unichar_t and %K for const of_unichar_t*. * * @param format A format string which generates the string to append * @param arguments The arguments used in the format string */ - (void)appendFormat: (OFConstantString*)format arguments: (va_list)arguments; |
︙ | ︙ |
Modified src/OFStream.h from [72c5abcbb8] to [a037efd8d4].
︙ | ︙ | |||
983 984 985 986 987 988 989 | - (size_t)writeLine: (OFString*)string encoding: (of_string_encoding_t)encoding; /*! * @brief Writes a formatted string into the stream. * * See printf for the format syntax. As an addition, %@ is available as format | | | | 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 | - (size_t)writeLine: (OFString*)string encoding: (of_string_encoding_t)encoding; /*! * @brief Writes a formatted string into the stream. * * See printf for the format syntax. As an addition, %@ is available as format * specifier for objects, %k for of_unichar_t and %K for const of_unichar_t*. * * @param format A string used as format * @return The number of bytes written */ - (size_t)writeFormat: (OFConstantString*)format, ...; /*! * @brief Writes a formatted string into the stream. * * See printf for the format syntax. As an addition, %@ is available as format * specifier for objects, %k for of_unichar_t and %K for const of_unichar_t*. * * @param format A string used as format * @param arguments The arguments used in the format string * @return The number of bytes written */ - (size_t)writeFormat: (OFConstantString*)format arguments: (va_list)arguments; |
︙ | ︙ |
Modified src/OFString.h from [ddf9f2532e] to [add596737a].
︙ | ︙ | |||
261 262 263 264 265 266 267 | length: (size_t)length byteOrder: (of_byte_order_t)byteOrder; /*! * @brief Creates a new OFString from a format string. * * See printf for the format syntax. As an addition, %@ is available as format | | | 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 | length: (size_t)length byteOrder: (of_byte_order_t)byteOrder; /*! * @brief Creates a new OFString from a format string. * * See printf for the format syntax. As an addition, %@ is available as format * specifier for objects, %k for of_unichar_t and %K for const of_unichar_t*. * * @param format A string used as format to initialize the OFString * @return A new autoreleased OFString */ + (instancetype)stringWithFormat: (OFConstantString*)format, ...; /*! |
︙ | ︙ | |||
490 491 492 493 494 495 496 | length: (size_t)length byteOrder: (of_byte_order_t)byteOrder; /*! * @brief Initializes an already allocated OFString with a format string. * * See printf for the format syntax. As an addition, %@ is available as format | | | | | 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 | length: (size_t)length byteOrder: (of_byte_order_t)byteOrder; /*! * @brief Initializes an already allocated OFString with a format string. * * See printf for the format syntax. As an addition, %@ is available as format * specifier for objects, %k for of_unichar_t and %K for const of_unichar_t*. * * @param format A string used as format to initialize the OFString * @return An initialized OFString */ - initWithFormat: (OFConstantString*)format, ... OF_FORMAT_FUNCTION(1, 2); /*! * @brief Initializes an already allocated OFString with a format string. * * See printf for the format syntax. As an addition, %@ is available as format * specifier for objects, %k for of_unichar_t and %K for const of_unichar_t*. * * @param format A string used as format to initialize the OFString * @param arguments The arguments used in the format string * @return An initialized OFString */ - initWithFormat: (OFConstantString*)format arguments: (va_list)arguments; |
︙ | ︙ |
Modified src/of_asprintf.m from [3466f7d906] to [0045836345].
︙ | ︙ | |||
24 25 26 27 28 29 30 | #include <stdbool.h> #include <wchar.h> #include <sys/types.h> #import "OFString.h" | < < | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #include <stdbool.h> #include <wchar.h> #include <sys/types.h> #import "OFString.h" #import "asprintf.h" #import "autorelease.h" #import "macros.h" #define MAX_SUBFORMAT_LEN 64 struct context { |
︙ | ︙ | |||
327 328 329 330 331 332 333 | { char buffer[5]; size_t len = of_string_utf8_encode( va_arg(ctx->arguments, of_unichar_t), buffer); if (len == 0) | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 | { char buffer[5]; size_t len = of_string_utf8_encode( va_arg(ctx->arguments, of_unichar_t), buffer); if (len == 0) return false; buffer[len] = 0; tmpLen = asprintf(&tmp, ctx->subformat, buffer); } break; case 'K': if (ctx->lengthModifier != LENGTH_MODIFIER_NONE) return false; ctx->subformat[ctx->subformatLen - 1] = 's'; { const of_unichar_t *arg = va_arg(ctx->arguments, const of_unichar_t*); size_t i, j, len = of_string_utf32_length(arg); char *buffer; if (SIZE_MAX / 4 < len || (SIZE_MAX / 4) - len < 1) return false; if ((buffer = malloc((len * 4) + 1)) == NULL) return false; for (i = j = 0; i < len; i++) { size_t clen = of_string_utf8_encode(arg[i], buffer + j); if (clen == 0) { free(buffer); return false; } j += clen; } buffer[j] = 0; tmpLen = asprintf(&tmp, ctx->subformat, buffer); free(buffer); } break; case 'd': case 'i': switch (ctx->lengthModifier) { case LENGTH_MODIFIER_NONE: case LENGTH_MODIFIER_HH: |
︙ | ︙ |