summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorLines
2017-12-18fix iconv output of surrogate pairs in ucs2Rich Felker-1/+1
in the unified code for handling utf-16 and ucs2 output, the check for ucs2 wrongly looked at the source charset rather than the destination charset.
2017-12-18add support for BOM-determined-endian UCS2, UTF-16, and UTF-32 to iconvRich Felker-3/+40
previously, the charset names without endianness specified were always interpreted as big endian. unicode specifies that UTF-16 and UTF-32 have BOM-determined endianness if BOM is present, and are otherwise big endian. since commit 5b546faa67544af395d6407553762b37e9711157 added support for stateful encodings, it is now possible to implement BOM support via the conversion descriptor state. for conversions to these charsets, the output is always big endian and does not have a BOM.
2017-12-18add cp866 (dos cyrillic) to iconvRich Felker-0/+12
2017-12-18update case mappings to unicode 10.0Rich Felker-2/+41
the mapping tables and code are not automatically generated; they were produced by comparing the output of towupper/towlower against the mappings in the UCD, ignoring characters that were previously excluded from case mappings or from alphabetic status (micro sign and circled letters), and adding table entries or code for everything else missing. based very loosely on a patch by Reini Urban.
2017-12-18update ctype tables to unicode 10.0Rich Felker-220/+305
2017-12-18reformat ctype tables to be diff-friendly, match tool outputRich Felker-263/+276
the new version of the code used to generate these tables forces a newline every 256 entries, whereas at the time these files were originally generated and committed, it only wrapped them at 80 columns. the new behavior ensures that localized changes to the tables, if they are ever needed, will produce localized diffs. commit d060edf6c569ba9df4b52d6bcd93edde812869c9 made the corresponding changes to the iconv tables.
2017-12-15fix endian errors in netinet/icmp6.h due to failure to include endian.hRich Felker-0/+1
2017-12-14fix endian errors in arpa/nameser.h due to failure to include endian.hJo-Philipp Wich-0/+1
2017-12-14remove unused explicit dependency rules for crti/crtnNicholas Wilson-4/+0
notes by maintainer: commit 2f853dd6b9a95d5b13ee8f9df762125e0588df5d added these rules because the new system for handling arch-provided replacement files introduced for out-of-tree builds did not apply to the crt tree. commit 63bcda4d8f4074e9d92ae156afd0dced6e64eb65 later adapted the makefile logic so that the crt and ldso trees go through the same replacement logic as everything else, but failed to remove the explicit rules that assumed the arch would always provide asm replacements. in addition to cleaning things up, removing these spurious rules allows crti/crtn asm to be omitted by an arch (thereby using the empty C files instead) if they are not needed.
2017-12-14use the name UTC instead of GMT for UTC timezoneNatanael Copa-12/+12
notes by maintainer: both C and POSIX use the term UTC to specify related functionality, despite POSIX defining it as something more like UT1 or historical (pre-UTC) GMT without leap seconds. neither specifies the associated string for %Z. old choice of "GMT" violated principle of least surprise for users and some applications/tests. use "UTC" instead.
2017-12-14fix sysconf for infinite rlimitsNatanael Copa-0/+2
sysconf should return -1 for infinity, not LONG_MAX.
2017-12-14fix x32 unistd macros to report as ILP32 not LP64Nicholas Wilson-2/+2
2017-12-14fix data race in at_quick_exitRich Felker-3/+4
aside from theoretical arbitrary results due to UB, this could practically cause unbounded overflow of static array if hit, but hitting it depends on having more than 32 calls to at_quick_exit and having them sufficiently often.
2017-12-12add ibm1047 codepage (ebcdic representation of latin1) to iconvRich Felker-0/+20
2017-12-11implement strftime padding specifier extensionsTimo Teräs-8/+14
notes added by maintainer: the '-' specifier allows default padding to be suppressed, and '_' allows padding with spaces instead of the default (zeros). these extensions seem to be included in several other implementations including FreeBSD and derivatives, and Solaris. while portable software should not depend on them, time format strings are often exposed to the user for configurable time display. reportedly some python programs also use and depend on them.
2017-12-06adjust fopencookie structure tag for ABI-compatRich Felker-1/+1
stdio types use the struct tag names from glibc libio to match C++ ABI.
2017-12-06implement the fopencookie extension to stdioWilliam Pitcock-0/+152
notes added by maintainer: this function is a GNU extension. it was chosen over the similar BSD function funopen because the latter depends on fpos_t being an arithmetic type as part of its public API, conflicting with our definition of fpos_t and with the intent that it be an opaque type. it was accepted for inclusion because, despite not being widely used, it is usually very difficult to extricate software using it from the dependency on it. calling pattern for the read and write callbacks is not likely to match glibc or other implementations, but should work with any reasonable callbacks. in particular the read function is never called without at least one byte being needed to satisfy its caller, so that spurious blocking is not introduced. contracts for what callbacks called from inside libc/stdio can do are always complicated, and at some point still need to be specified explicitly. at the very least, the callbacks must return or block indefinitely (they cannot perform nonlocal exits) and they should not make calls to stdio using their own FILE as an argument.