📄 changes
字号:
* Fixed group scanning with modifiers.* Fixed compilation for 64-bit Digital Unix.* Igor Zlatkovic Fixed compilation of dprintf, which uses read/write, for MSVC.* Fixed various compilation problems on Digital Unix (mainly associated with va_list).Version 1.2 - 2001/04/11------------------------* Added autoconf integration. If compiled with HAVE_CONFIG_H the following happens. Firstly, <config.h> is included. Secondly, trio will only be compiled if WITH_TRIO is defined herein. Thirdly, if TRIO_REPLACE_STDIO is defined, only stdio functions that have not been detected by autoconf, i.e. those not defined by HAVE_PRINTF or similar, will be replaced by trio functions (suggested by Daniel Veillard).* Fixed '%m.nf' output. Previously trio did not treat the width properly in all cases (reported by Gisli Ottarsson).* Added explicit promotion for the scanfv family.* Fixed more C++ compilation warnings.Version 1.1 - 2001/02/25------------------------* Added explicit promotion for the printfv familiy. A float must be specified by %hf.* Fixed positionals for printfv (reported by Gisli Ottarsson).* Fixed an integer to pointer conversion problem on the SGI MIPS C compiler (reported by Gisli Ottarsson).* Fixed ANSI C++ warnings (type casting, and namespace is a reserved keyword).* Added \n to all examples in the documentation to prevent confusion.* Fixed StrSubstringMaxVersion 1.0 - 2000/12/10------------------------* Bumped Version number.Version 0.25 - 2000/12/09-------------------------* Wrote more documentation.* Improved NaN support and added NaN to regression test.* Fixed C99 support.* Added missing getter/setter functions.Version 0.24 - 2000/12/02-------------------------* Added callback functionality for the user-defined specifier (<>). All the necessary functions are defined in triop.h header file. See the documentation for trio_register for further detail.* Wrote initial documentation on the callback functionality.* Added the printfv and scanfv family of functions, which takes a pointer array rather than variadic arguments. Each pointer in the array must point to the associated data (requested by Bruce Korb).* As indicated in version 0.21 the extension modifiers (<>) have now been completely removed.* Added skipping of thousand-separators in floating-point number scanning.Version 0.23 - 2000/10/21-------------------------* Added width to scanning of floating-point numbers.* Wrote more documentation on trio_printf.* Fixed problem with trailing zeroes after decimal-point.Version 0.22 - 2000/08/06-------------------------* Added LC_CTYPE locale dependent character class expressions to scan lists. Included are [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:]* Added C escapes to alternative string formatting and scanning.* Added StrSubstringMax.* Wrote a little more documentation.* Fixed scanf return values.* Fixed a sign error for non-ascii characters.Version 0.21 - 2000/07/19-------------------------* Converted the documentation to TeX. With latex2man the documentation can automatically be converted into man pages.* Added trio_scanf, trio_vscanf, trio_fscanf, and trio_vfscanf.* Added trio_dprintf, trio_vdprintf, trio_dscanf, and trio_vdscanf. These functions can be used to write and read directly to pipes and sockets (the assume blocking sockets). Stdio buffering is surpassed, so the functions are async-safe. However, reading from stdin (STDIN_FILENO) or writing to stdout (STDOUT_FILENO) reintroduces the buffering.* Added trio_dprintf and trio_vdprintf. These can be used to write directly to pipes and sockets.* Paul Janzen Added trio_asprintf and trio_vasprintf, which are compatible with the GNU and BSD interfaces.* Added scanlist ranges for group scanning (%[]).* Added width for scanning (missing for floating-point numbers though).* Added variable size modifier (&) to handle system defined types of unknown size. This modifier makes certain assumptions about the integer sizes, which may not be valid on any machine. Consequently, the modifier will remain undocumented, as it may be removed later.* Added \777 and \xFF to alternative string scanning (%#s)* Added the TRIO_REPLACE_STDIO check in the header.* Improved performance of the multibyte character parsing.* Fixed positionals (%n$) which had stopped working.* Fixed hh and ll modifiers to allow exactly two letters and no more.* Fixed ANSI C++ warnings. Also fixed the compiler warning about casting between integer and pointer (this has been annoying me for ages). * Fixed snprintf and vsnprintf with zero buffer size.* Fixed NAN problems (reported by Keith Briggs).* Fixed parsing of multibyte characters. The format string was not correctly advanced in case of a multibyte character.* Renamed many of the internal functions to have more consistant names.* Removed the <quote=c> and <fill=c> modifiers. They are not really worth including. The other <> modifiers may disappear as well.Version 0.20 - 2000/06/05-------------------------* Added intmax_t and ptrdiff_t support.* Added support for LC_NUMERIC grouping.* Added double-dot notation for the conversion base. The style is now %width.precision.base, where any argument can be a number, an asterix indicating a parameter, or be omitted entirely. For example, %*..2i is to specify binary numbers without precision, and with width as a parameter on the va_list.* Added sticky modifier (!), which makes subsequent specifiers of the same type reuse the current modifiers. Inspired by a suggestion from Gary Porter.* Added group scanning (%[]). Scanlist ranges and multibyte sequences are not supported yet.* Added count scanning (%n).* Changed the number scanning to accept thousand separators and any base.* Fixed positional for parameters. It is possible to write something like %3$*1$.*2$d (which happens to be the same as %*.*d).* Fixed precision of integers.* Fixed parameter flags. Before trio could only handle one parameter flag per specifier, although two (three with double-dot base) were possible.* Fixed isinf() for those platforms where it is unimplemented.Version 0.18 - 2000/05/27-------------------------* Rewrote the entire floating-point formatting function (Danny Dulai had reported several errors and even supplied some patches, which unfortunately were lost due to the refactoring).* Removed the use of strlen() in the declaration of a stack array. This caused problems on some compilers (besides it isn't really ANSI C compliant anyways). Using some arbitrarily chosen maximum value; should examine if some standard defines an upper limit on the length of decimal-point and thousands-separator (sizeof(wchar_t) perhaps?)* Changed the parsing of the format string to be multibyte aware.Version 0.17 - 2000/05/19-------------------------* Added INF, -INF, and NAN for floating-point numbers.* Fixed %#.9g -- alternative with precision.* Ken Gibson Fixed printing of negative hex numbers* Joerg (last name unknown) Fixed convertion of non-ASCII charactersVersion 0.16 - 1999/08/06-------------------------* Changed the constness of the second argument of StrFloat and StrDouble. The lack of parameter overloading in C is the reason for the strange use of constness in strtof and strtod.* Cleaned up constness.Version 0.15 - 1999/07/23-------------------------* Fixed the internal representation of numbers from signed to unsigned. Signed numbers posed a problem for large unsigned numbers (reported by Tero)* Fixed a tiny bug in trio_vsprintfcat* Changed the meaning of the max argument of StrAppendMax to be consistant with StrFormatAppendMax. Now it is the maximal size of the entire target buffer, not just the appended size. This makes it easier to avoid buffer overflows (requested by Tero)Version 0.14 - 1999/05/16-------------------------* Added size_t support (just waiting for a C99 compliant compiler to add ptrdiff_t and intmax_t)* Rewrote TrioOutStreamDouble so it does not use the libc sprintf to emulate floating-point anylonger.* Fixed width, precision, and adjustment for numbers and doubles.Version 0.13 - 1999/05/06-------------------------* Fixed zero padding for %d. Now %d will only zero pad if explicitly requested to do so with the 0 flag (reported by Tero).* Fixed an incorrect while() condition in TrioGetString (reported by Tero).Version 0.12 - 1999/04/19-------------------------* Fixed incorrect zero padding of pointers* Added StrHash with STRIO_HASH_PLAIN* Added StrFormatDateMaxVersion 0.11 - 1999/03/25-------------------------* Made it compile under cygwin* Fixed a bug were TrioPreprocess would return an error if no formatting chars were found (reported by Tero).Version - 1999/03/19--------------------* Added trio_strerror and TRIO_ERROR_NAME.* Changed the error codes to be positive (as errno)* Fixed two reads of uninitialized memory reported by Purify* Added binary specifiers 'b' and 'B' (like SCO.) ThousandSeparator can be used to separate nibbles (4 bit)* Renamed all Internal* functions to Trio*, which seems like a better namespace (even though it is of no practical interest because these functions are not visible beyond the scope of this file.)Version - 1999/03/12--------------------* Added hex-float format for StrToDouble* Double references and gaps in the arguments are not allowed (for the %n$ format) and in both cases an error code is returned.* Added StrToDouble (and StrToFloat)Version - 1999/03/08--------------------* Added InStream and OutStream to the trio_T structure.* Started work on TrioScan.* Return values for errors changed. Two macros to unpack the error code has been added to the header.* Shortshort (hh) flag added.* %#s also quotes the quote-char now.* Removed the 'errorInFormat' boolean, which isn't used anymore after the functions bail out with an error instead.Version - 1999/03/04--------------------* More than MAX_PARAMETERS parametes will now cause the TrioPreprocess() function to return error.* Unknown flags and/or specifiers cause errors too.* Added trio_snprintfcat and trio_vsnprintfcat and the defined name StrFormatAppendMax. They append a formatted string to the end of a string.* Define MAX_PARAMETERS to 128 at all times instead of using NL_ARGMAX when that exists.* Added platform fixes for Amiga as suggested by Tero J鋘k
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -