21 lines
537 B
C
21 lines
537 B
C
#ifndef COSMOPOLITAN_LIBC_RUNTIME_APPENDCHAR_H_
|
|
#define COSMOPOLITAN_LIBC_RUNTIME_APPENDCHAR_H_
|
|
#ifndef __STRICT_ANSI__
|
|
#include "libc/str/str.h"
|
|
#include "libc/str/tpenc.h"
|
|
#include "libc/str/tpencode.h"
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
|
|
static inline void AppendChar(char **p, char *pe, wint_t wc) {
|
|
uint64_t w;
|
|
w = tpenc(wc);
|
|
do {
|
|
if (*p >= pe) break;
|
|
*(*p)++ = w & 0xff;
|
|
} while (w >>= 8);
|
|
}
|
|
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* !ANSI */
|
|
#endif /* COSMOPOLITAN_LIBC_RUNTIME_APPENDCHAR_H_ */
|