mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-27 04:50:28 +00:00
Fix bugs and make code tinier
- Fixed bug where stdio eof wasn't being sticky - Fixed bug where fseeko() wasn't clearing eof state - Removed assert() usage from libc favoring _unassert() / _npassert()
This commit is contained in:
parent
9b7c8db846
commit
d5910e2673
115 changed files with 510 additions and 290 deletions
|
@ -21,7 +21,7 @@
|
|||
|
||||
size_t uint64toarray_fixed16(uint64_t x, char b[hasatleast 17], uint8_t k) {
|
||||
char *p;
|
||||
assert(k <= 64 && !(k & 3));
|
||||
_unassert(k <= 64 && !(k & 3));
|
||||
for (p = b; k > 0;) *p++ = "0123456789abcdef"[(x >> (k -= 4)) & 15];
|
||||
*p = '\0';
|
||||
return p - b;
|
||||
|
|
|
@ -16,13 +16,13 @@
|
|||
│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │
|
||||
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "libc/mem/reverse.internal.h"
|
||||
#include "libc/assert.h"
|
||||
#include "libc/fmt/conv.h"
|
||||
#include "libc/fmt/divmod10.internal.h"
|
||||
#include "libc/fmt/fmt.internal.h"
|
||||
#include "libc/fmt/internal.h"
|
||||
#include "libc/limits.h"
|
||||
#include "libc/mem/reverse.internal.h"
|
||||
|
||||
#define BUFFER_SIZE 144
|
||||
|
||||
|
@ -121,7 +121,7 @@ int __fmt_ntoa2(int out(const char *, void *, size_t), void *arg,
|
|||
}
|
||||
buf[len++] = alphabet[digit];
|
||||
} while (value);
|
||||
assert(count <= BUFFER_SIZE);
|
||||
_npassert(count <= BUFFER_SIZE);
|
||||
}
|
||||
return __fmt_ntoa_format(out, arg, buf, len, neg, log2base, prec, width,
|
||||
flags);
|
||||
|
|
|
@ -16,11 +16,10 @@
|
|||
│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │
|
||||
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "libc/assert.h"
|
||||
#include "libc/fmt/fmt.h"
|
||||
#include "libc/intrin/kprintf.h"
|
||||
#include "libc/runtime/runtime.h"
|
||||
|
||||
int swprintf(wchar_t* ws, size_t n, const wchar_t* format, ...) {
|
||||
assert(!"not implemented");
|
||||
abort();
|
||||
kprintf("error: swprintf() not supported yet by cosmo libc sorry!\n");
|
||||
_Exit(1);
|
||||
}
|
||||
|
|
|
@ -23,10 +23,10 @@
|
|||
void *unhexbuf(void *buf, size_t size, const char *hexdigs) {
|
||||
size_t i;
|
||||
unsigned char *p;
|
||||
assert(size * 2 == strlen(hexdigs));
|
||||
_npassert(size * 2 == strlen(hexdigs));
|
||||
p = buf;
|
||||
for (i = 0; i < size; ++i) {
|
||||
assert(isxdigit(hexdigs[i / 2 + 0]) && isxdigit(hexdigs[i / 2 + 1]));
|
||||
_npassert(isxdigit(hexdigs[i / 2 + 0]) && isxdigit(hexdigs[i / 2 + 1]));
|
||||
}
|
||||
for (i = 0; i < size; ++i) {
|
||||
p[i] = hextoint(hexdigs[i * 2 + 0]) * 16 + hextoint(hexdigs[i * 2 + 1]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue