a4c8c79428
- lib/Makefile: stale .rel удаляются сверкой списка модулей перед упаковкой; штамп build/.modules триггерит перелинковку при любом изменении состава исходников (при смене списка архив сносится — на exFAT гранулярность mtime грубая, сравнение времён ненадёжно) - top-level TESTS: все каталоги tests/ теперь собираются make all (43 программы; banktest переименован из banked.exe — конфликт имён с tests/banked); mdview2 добавлен в APPS - размерный регресс: toolchain/size_check.py сверяет _CODE всех программ с docs/size_baseline.tsv; make size-check / size-baseline - заголовки: контракт затенения SDCC задокументирован в docs/libc-headers.md; новый string.h (include_next + strlwr/strupr); из sprinter_compat.h убраны макросы min/max — конфликтовали с функциями из stdlib.h, и в Solid-C min/max тоже функции Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
19 lines
646 B
C
19 lines
646 B
C
/*
|
|
* string.h — цепочка к SDCC-шному string.h + Sprinter-расширения.
|
|
*
|
|
* Вся стандартная строковая библиотека (memcpy/memset/strlen/strcmp/
|
|
* strtok/…) приходит из SDCC z80.lib через include_next — здесь только
|
|
* ДОБАВЛЯЕМ, ничего не затеняя (контракт: docs/libc-headers.md).
|
|
*/
|
|
|
|
#ifndef STRING_H_SPRINTER
|
|
#define STRING_H_SPRINTER
|
|
|
|
#include_next <string.h>
|
|
|
|
/* Регистры in-place с поддержкой кириллицы CP866 (возвращают s). */
|
|
char *strlwr(char *s);
|
|
char *strupr(char *s);
|
|
|
|
#endif
|