<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libc/stdio/local.h, branch upstream/11.0.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=upstream%2F11.0.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=upstream%2F11.0.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2012-04-29T16:28:39Z</updated>
<entry>
<title>Previously, vfscanf()'s wide character processing functions were</title>
<updated>2012-04-29T16:28:39Z</updated>
<author>
<name>David Schultz</name>
<email>das@FreeBSD.org</email>
</author>
<published>2012-04-29T16:28:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d7af8cf14be778fbf7f6ebc84346ae88fbd6978f'/>
<id>urn:sha1:d7af8cf14be778fbf7f6ebc84346ae88fbd6978f</id>
<content type='text'>
reading wide characters manually.  With this change, they now use
fgetwc().  To make this work, we use an internal version of fgetwc()
with a few extensions: it takes an mbstate * because non-wide streams
don't have a built-in mbstate, and it indicates the number of bytes
read.

vfscanf() now resembles vfwscanf() more closely.  Minor functional
improvements include working xlocale support in vfscanf(), setting the
stream error indicator on encoding errors, and proper handling of
shift-based encodings.  (Actually, making shift-based encodings work
with non-wide streams is hopeless, but the implementation now matches
the broken specification.)
</content>
</entry>
<entry>
<title>Implement xlocale APIs from Darwin, mainly for use by libc++.  This adds a</title>
<updated>2011-11-20T14:45:42Z</updated>
<author>
<name>David Chisnall</name>
<email>theraven@FreeBSD.org</email>
</author>
<published>2011-11-20T14:45:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3c87aa1d3dc1d8dad3efad322852a8e1e76dee55'/>
<id>urn:sha1:3c87aa1d3dc1d8dad3efad322852a8e1e76dee55</id>
<content type='text'>
load of _l suffixed versions of various standard library functions that use
the global locale, making them take an explicit locale parameter.  Also
adds support for per-thread locales.  This work was funded by the FreeBSD
Foundation.

Please test any code you have that uses the C standard locale functions!

Reviewed by:    das (gdtoa changes)
Approved by:    dim (mentor)
</content>
</entry>
<entry>
<title>- Use an initializer macro to initialize fields in 'fake' FILE objects used</title>
<updated>2010-03-11T17:03:32Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2010-03-11T17:03:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1b0181df2f46ef73a41ea8c9b7026718f8eec3a1'/>
<id>urn:sha1:1b0181df2f46ef73a41ea8c9b7026718f8eec3a1</id>
<content type='text'>
  by *sprintf(), etc.
- Explicitly initialize _fl_mutex to PTHREAD_MUTEX_INITIALIZER for all FILE
  objects.  This is currently a nop on FreeBSD, but is import for other
  platforms (or in the future) where PTHREAD_MUTEX_INITIALIZER is not simply
  zero.

PR:		threads/141198
Reported by:	Jeremy Huddleston @ Apple
MFC after:	2 weeks
</content>
</entry>
<entry>
<title>Expose FILE's internals to the world again in all their glory.  Restore</title>
<updated>2008-05-05T16:03:52Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2008-05-05T16:03:52Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=19e03ca8038019fe0fe7f511b91b758b95b78664'/>
<id>urn:sha1:19e03ca8038019fe0fe7f511b91b758b95b78664</id>
<content type='text'>
all the previous inline optimizations as well.  FILE is back to using
__mbstate_t, struct pthread *, and struct pthread_mutex *.
</content>
</entry>
<entry>
<title>Next round of stdio changes: Remove all inlining of stdio operations and</title>
<updated>2008-05-02T15:25:07Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2008-05-02T15:25:07Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c17bf9a9a5a3b59e03108b785f6b15070ff25651'/>
<id>urn:sha1:c17bf9a9a5a3b59e03108b785f6b15070ff25651</id>
<content type='text'>
move the definition of the type backing FILE (struct __sFILE) into an
internal header.
- Remove macros to inline certain operations from stdio.h.  Applications
  will now always call the functions instead.
- Move the various foo_unlocked() functions from unlocked.c into foo.c.
  This lets some of the inlining macros (e.g. __sfeof()) move into
  foo.c.
- Update a few comments.
- struct __sFILE can now go back to using mbstate_t, pthread_t, and
  pthread_mutex_t instead of knowing about their private, backing types.

MFC after:	1 month
Reviewed by:	kan
</content>
</entry>
<entry>
<title>Next stage of stdio cleanup: Retire __sFILEX and merge the fields back into</title>
<updated>2008-04-17T22:17:54Z</updated>
<author>
<name>John Baldwin</name>
<email>jhb@FreeBSD.org</email>
</author>
<published>2008-04-17T22:17:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=1e98f88776fc606df245a382685b1ac634a81389'/>
<id>urn:sha1:1e98f88776fc606df245a382685b1ac634a81389</id>
<content type='text'>
__sFILE.  This was supposed to be done in 6.0.  Some notes:
- Where possible I restored the various lines to their pre-__sFILEX state.
- Retire INITEXTRA() and just initialize the wchar bits (orientation and
  mbstate) explicitly instead.  The various places that used INITEXTRA
  didn't need the locking fields or _up initialized.  (Some places needed
  _up to exist and not be off the end of a NULL or garbage pointer, but
  they didn't require it to be initialized to a specific value.)
- For now, stdio.h "knows" that pthread_t is a 'struct pthread *' to
  avoid namespace pollution of including all the pthread types in stdio.h.
  Once we remove all the inlines and make __sFILE private it can go back
  to using pthread_t, etc.
- This does not remove any of the inlines currently and does not change
  any of the public ABI of 'FILE'.

MFC after:	1 month
Reviewed by:	peter
</content>
</entry>
<entry>
<title>Per Regents of the University of Calfornia letter, remove advertising</title>
<updated>2007-01-09T00:28:16Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2007-01-09T00:28:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=c879ae3536e6d92b8d96c8965c5b05fcb9541520'/>
<id>urn:sha1:c879ae3536e6d92b8d96c8965c5b05fcb9541520</id>
<content type='text'>
clause.

# If I've done so improperly on a file, please let me know.
</content>
</entry>
<entry>
<title>Add fcloseall() to libc.  This removes the need to export _cleanup().</title>
<updated>2006-04-22T15:09:15Z</updated>
<author>
<name>Daniel Eischen</name>
<email>deischen@FreeBSD.org</email>
</author>
<published>2006-04-22T15:09:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b62c955c52603eca6fa3169965074883a2fb19f5'/>
<id>urn:sha1:b62c955c52603eca6fa3169965074883a2fb19f5</id>
<content type='text'>
Linux also provides an fcloseall() implementation.

Discussed on:	arch
</content>
</entry>
<entry>
<title>With current pthread implementations, a mutex initialization will</title>
<updated>2005-12-16T02:50:53Z</updated>
<author>
<name>David Xu</name>
<email>davidxu@FreeBSD.org</email>
</author>
<published>2005-12-16T02:50:53Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=3b52e4d1b797c7c281cd73c515515e4b6c3867fe'/>
<id>urn:sha1:3b52e4d1b797c7c281cd73c515515e4b6c3867fe</id>
<content type='text'>
allocate a memory block. sscanf calls __svfscanf which in turn calls
fread, fread triggers mutex initialization but the mutex is not
destroyed in sscanf, this leads to memory leak. To avoid the memory
leak and performance issue, we create a none MT-safe version of fread:
__fread, and instead let __svfscanf call __fread.

PR: threads/90392
Patch submitted by: dhartmei
MFC after: 7 days
</content>
</entry>
<entry>
<title>Move the declaration of __cleanup to libc_private.h as it is used in both</title>
<updated>2005-09-12T13:46:32Z</updated>
<author>
<name>Stefan Farfeleder</name>
<email>stefanf@FreeBSD.org</email>
</author>
<published>2005-09-12T13:46:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=2ba64027bcd11ef6c7d378302a64491ea70cde91'/>
<id>urn:sha1:2ba64027bcd11ef6c7d378302a64491ea70cde91</id>
<content type='text'>
stdio/ and stdlib/.  Don't define __cleanup twice.
</content>
</entry>
</feed>
