summaryrefslogtreecommitdiff
path: root/sys/src/ape/lib/ap/stdio
AgeCommit message (Collapse)Author
2020-05-15Fix scans of more than one character in %[]Ori Bernstein
This got broken in d8e877a89dae, where we returned 0 on the first mismatch; we want to return 0 only when we consumed no characters.
2020-05-12[ape] add missing conversion flags for scanfOri Bernstein
We're missing type flags for: hh: char ll: vlong z: size_t t: ptrdiff_t j: intmax_t The lack of '%lld' was causing us to fail when parsing timezone files. This brings us in line with the specifiers in the C99 standard, section 7.19.6.2p11
2020-05-09fix '%[]' specifiers and '%n' (thanks phil9)Ori Bernstein
When a match() fails, we need to unget the character we tried to match against, rather than leaving it consumed. Also, we can't break out of a conversion before we reach the end of a format string, because things like the '%n' conversion do not consume anything, and should still be handled.
2020-02-10remove C99_SPRINTF_EXTENSION define.Ori Bernstein
It's been 20 years since c99 came out. By now, if code hasn't been fixed, it's not going to be. Requiring this define just confuses porters.
2019-06-21Turn on warnings when building libap.Ori Bernstein
For ape, we never enabled warnings in cflags. Turning it on brings up a lot of warnings. Most are noise, but a few caught unused variables and trunctaions of pointers. to smaller integers (int, long). A few warnings remain.
2016-11-27stdio: fix sclose() buffer overrun when terminating string, realloc() error ↵cinap_lenrek
handling (thanks porlock) theres a bug is in sclose() where it doesnt check if wp is beyond the buffer. also wp was not updated after realloc(). bug was reported by porlock on 9fans: Plan 9's implementation of the standard C functions snprintf and vsnprintf have a buffer overrun bug. If the buffer length equals the output length (without the terminating null), then one too many characters is written to the buffer. For example, snprintf(buf, 4, "ABCD"); will write 5 characters to buf.
2016-05-04ape: return plan9 error strings from strerror()cinap_lenrek
when _syserrno() fails to map a plan9 error string to a unix error number, we copy the plan9 error string to the per process error buffer "plan9err" and set errno = EPLAN9. when strerror() is called with EPLAN9, it returns a pointer to the plan9err buffer.
2016-01-07ape/stdio: %z format is VLONG on amd64cinap_lenrek
2014-12-22ape: add fprint %z format (thanks Ori_B)cinap_lenrek
2014-05-29ape/stdio: set errno to EMFILE when running out of streamscinap_lenrek
2013-11-06synchronize ape's vfprintf with libstdiomischief
in ape's vfprintf we don't check if the file we're writing is actually a string buffer, resulting in a return of -1, when we should actually return the number of bytes that would be written.
2013-03-11ape: threadsafe errnocinap_lenrek
store errno on the private process stack so its always per process and not just per memory space. errno itself becomes a macro dereferencing int *_errnoloc; which is initialized from main9.s pointing to the private stack location. various fixes in programs that just imported errno variable with "extern int errno;" instead of including <errno.h>.
2013-03-11ape/stdio: make fopen() quasi threadsafe for pythoncinap_lenrek
python uses processes sharing memory. it requires at least fopen() to be called by multiple threads at once so we introduce _IO_newfile() which allocates the FILE structure slot under a lock.
2012-07-30import updated compilers from sourcescinap_lenrek
2011-05-10ape: fix fread/fwrite, python: disable bytecode dumps, inst: rename textonly ↵cinap_lenrek
to start and remove inst/gui, add sys/lib/rootbind, cisfd(8) manpage
2011-05-09fixed freadaiju
2011-05-09fixed fwrite (hopefully didn't break anything)aiju
2011-03-30Import sources from 2011-03-30 iso image - libTaru Karttunen
2011-03-30Import sources from 2011-03-30 iso imageTaru Karttunen