diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/base/arg.c | 70 | ||||
-rw-r--r-- | src/base/fmt/buffer.c (renamed from src/libfmt/buffer.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/do.c (renamed from src/libfmt/do.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/esprint.c (renamed from src/libfmt/esprint.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/float.c (renamed from src/libfmt/float.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/fprint.c (renamed from src/libfmt/fprint.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/internal.h (renamed from src/libfmt/internal.h) | 2 | ||||
-rw-r--r-- | src/base/fmt/locale.c (renamed from src/libfmt/locale.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/nsprint.c (renamed from src/libfmt/nsprint.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/open.c (renamed from src/libfmt/open.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/panic.c (renamed from src/libfmt/panic.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/print.c (renamed from src/libfmt/print.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/rules.mk | 21 | ||||
-rw-r--r-- | src/base/fmt/sprint.c (renamed from src/libfmt/sprint.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/test.c (renamed from src/libfmt/test.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/vesprint.c (renamed from src/libfmt/vesprint.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/vfprint.c (renamed from src/libfmt/vfprint.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/vnsprint.c (renamed from src/libfmt/vnsprint.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/vprint.c (renamed from src/libfmt/vprint.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/vwrite.c (renamed from src/libfmt/vwrite.c) | 0 | ||||
-rw-r--r-- | src/base/fmt/write.c (renamed from src/libfmt/write.c) | 0 | ||||
-rw-r--r-- | src/base/io/close.c | 7 | ||||
-rw-r--r-- | src/base/io/open.c | 6 | ||||
-rw-r--r-- | src/base/io/rules.mk | 3 | ||||
-rw-r--r-- | src/base/rules.mk | 9 | ||||
-rw-r--r-- | src/base/utf/canfit.c (renamed from src/libutf/canfit.c) | 0 | ||||
-rw-r--r-- | src/base/utf/decode.c (renamed from src/libutf/decode.c) | 0 | ||||
-rw-r--r-- | src/base/utf/decodeprev.c (renamed from src/libutf/decodeprev.c) | 0 | ||||
-rw-r--r-- | src/base/utf/encode.c (renamed from src/libutf/encode.c) | 0 | ||||
-rw-r--r-- | src/base/utf/find.c (renamed from src/libutf/find.c) | 0 | ||||
-rw-r--r-- | src/base/utf/findlast.c (renamed from src/libutf/findlast.c) | 0 | ||||
-rw-r--r-- | src/base/utf/internal.h (renamed from src/libutf/internal.h) | 1 | ||||
-rw-r--r-- | src/base/utf/len.c (renamed from src/libutf/len.c) | 0 | ||||
-rw-r--r-- | src/base/utf/rules.mk | 71 | ||||
-rw-r--r-- | src/base/utf/runelen.c (renamed from src/libutf/runelen.c) | 0 | ||||
-rw-r--r-- | src/base/utf/vendor/common.c (renamed from src/libutf/vendor/common.c) | 2 | ||||
-rw-r--r-- | src/base/utf/vendor/common.h (renamed from src/libutf/vendor/common.h) | 1 | ||||
-rw-r--r-- | src/base/utf/vendor/mkgraphemedata.c (renamed from src/libutf/vendor/mkgraphemedata.c) | 0 | ||||
-rw-r--r-- | src/base/utf/vendor/mkrunetype.c (renamed from src/libutf/vendor/mkrunetype.c) | 0 | ||||
-rw-r--r-- | src/base/utf/vendor/mkrunewidth.c (renamed from src/libutf/vendor/mkrunewidth.c) | 0 | ||||
-rw-r--r-- | src/cmd/core/basename.c | 1 | ||||
-rw-r--r-- | src/cmd/core/cat.c | 1 | ||||
-rw-r--r-- | src/cmd/dwm/dwm.h | 1 | ||||
-rw-r--r-- | src/cmd/menu/menu.h | 1 | ||||
-rw-r--r-- | src/cmd/rc/rc.h | 2 | ||||
-rw-r--r-- | src/cmd/term/term.h | 1 | ||||
-rw-r--r-- | src/libbio/rules.mk | 5 | ||||
-rw-r--r-- | src/libc/rules.mk | 20 | ||||
-rw-r--r-- | src/libc/stdio.c | 59 | ||||
-rw-r--r-- | src/libc/string.c | 80 | ||||
-rw-r--r-- | src/libfmt/rules.mk | 36 | ||||
-rw-r--r-- | src/libutf/rules.mk | 76 | ||||
-rw-r--r-- | src/rules.mk | 6 |
53 files changed, 111 insertions, 371 deletions
diff --git a/src/base/arg.c b/src/base/arg.c index 269043e..64e4dd6 100644 --- a/src/base/arg.c +++ b/src/base/arg.c @@ -1,71 +1 @@ -#include <u.h> -#include <base.h> - -// NOTE: this utf8 bit is copied from libunicode to remove the hard dependency just for ARG_BEGIN. - -#define UTFmax 4 -#define RuneSync 0x80u -#define RuneSelf 0x80u -#define RuneErr 0xFFFDu -#define RuneMax 0x10FFFFu -#define RuneMask 0x1FFFFFu - -#define Bit(i) (7-(i)) -/* N 0's preceded by i 1's e.g. T(Bit(2)) is 1100 0000 */ -#define Tbyte(i) (((1 << (Bit(i)+1))-1) ^ 0xFF) -/* 0000 0000 0000 0111 1111 1111 */ -#define RuneX(i) ((1 << (Bit(i) + ((i)-1)*Bitx))-1) -enum -{ - Bitx = Bit(1), - Tx = Tbyte(1), - Rune1 = (1 << (Bit(0)+0*Bitx)) - 1, - - Maskx = (1 << Bitx) - 1, /* 0011 1111 */ - Testx = Maskx ^ 0xff, /* 1100 0000 */ - - SurrogateMin = 0xD800, - SurrogateMax = 0xDFFF, - Bad = RuneErr, -}; - - -int -arg·bytetorune(uint32* r, byte* s) -{ - int c[4], i; - uint32 l; - - c[0] = *(ubyte*)(s); - if(c[0] < Tx) { - *r = c[0]; - return 1; - } - - l = c[0]; - for(i = 1; i < UTFmax; i++) { - c[i] = *(ubyte*)(s+i); - c[i] ^= Tx; - if (c[i] & Testx) goto bad; - - l = (l << Bitx) | c[i]; - if(c[0] < Tbyte(i + 2)) { - l &= RuneX(i + 1); - if (i == 1) { - if (c[0] < Tbyte(2) || l <= Rune1) - goto bad; - } else if (l <= RuneX(i) || l > RuneMax) - goto bad; - if (i == 2 && SurrogateMin <= l && l <= SurrogateMax) - goto bad; - - *r = l; - return i + 1; - } - } -bad: - *r = RuneErr; - return 1; -} - char *argv0; diff --git a/src/libfmt/buffer.c b/src/base/fmt/buffer.c index 0099e72..0099e72 100644 --- a/src/libfmt/buffer.c +++ b/src/base/fmt/buffer.c diff --git a/src/libfmt/do.c b/src/base/fmt/do.c index bd2e65c..bd2e65c 100644 --- a/src/libfmt/do.c +++ b/src/base/fmt/do.c diff --git a/src/libfmt/esprint.c b/src/base/fmt/esprint.c index 6d97340..6d97340 100644 --- a/src/libfmt/esprint.c +++ b/src/base/fmt/esprint.c diff --git a/src/libfmt/float.c b/src/base/fmt/float.c index 63ea80f..63ea80f 100644 --- a/src/libfmt/float.c +++ b/src/base/fmt/float.c diff --git a/src/libfmt/fprint.c b/src/base/fmt/fprint.c index 5077359..5077359 100644 --- a/src/libfmt/fprint.c +++ b/src/base/fmt/fprint.c diff --git a/src/libfmt/internal.h b/src/base/fmt/internal.h index 725cfff..7bf47af 100644 --- a/src/libfmt/internal.h +++ b/src/base/fmt/internal.h @@ -2,8 +2,6 @@ #include <u.h> #include <base.h> -#include <libutf.h> -#include <libfmt.h> typedef int (*Formatter)(fmt·State *io); typedef struct Verb Verb; diff --git a/src/libfmt/locale.c b/src/base/fmt/locale.c index 437c61e..437c61e 100644 --- a/src/libfmt/locale.c +++ b/src/base/fmt/locale.c diff --git a/src/libfmt/nsprint.c b/src/base/fmt/nsprint.c index 90489e0..90489e0 100644 --- a/src/libfmt/nsprint.c +++ b/src/base/fmt/nsprint.c diff --git a/src/libfmt/open.c b/src/base/fmt/open.c index 8aadef5..8aadef5 100644 --- a/src/libfmt/open.c +++ b/src/base/fmt/open.c diff --git a/src/libfmt/panic.c b/src/base/fmt/panic.c index 25ee277..25ee277 100644 --- a/src/libfmt/panic.c +++ b/src/base/fmt/panic.c diff --git a/src/libfmt/print.c b/src/base/fmt/print.c index 20b8e00..20b8e00 100644 --- a/src/libfmt/print.c +++ b/src/base/fmt/print.c diff --git a/src/base/fmt/rules.mk b/src/base/fmt/rules.mk new file mode 100644 index 0000000..fdfdac0 --- /dev/null +++ b/src/base/fmt/rules.mk @@ -0,0 +1,21 @@ +# Local sources +SRCS_$(d)+=\ + $(d)/fmt/buffer.c\ + $(d)/fmt/do.c\ + $(d)/fmt/esprint.c\ + $(d)/fmt/fprint.c\ + $(d)/fmt/locale.c\ + $(d)/fmt/nsprint.c\ + $(d)/fmt/open.c\ + $(d)/fmt/print.c\ + $(d)/fmt/sprint.c\ + $(d)/fmt/vesprint.c\ + $(d)/fmt/vfprint.c\ + $(d)/fmt/vnsprint.c\ + $(d)/fmt/vprint.c\ + $(d)/fmt/vwrite.c\ + $(d)/fmt/panic.c\ + $(d)/fmt/write.c + +CHECK_$(d)+=\ + $(d)/fmt/test.c diff --git a/src/libfmt/sprint.c b/src/base/fmt/sprint.c index f1be6dd..f1be6dd 100644 --- a/src/libfmt/sprint.c +++ b/src/base/fmt/sprint.c diff --git a/src/libfmt/test.c b/src/base/fmt/test.c index d81a62e..d81a62e 100644 --- a/src/libfmt/test.c +++ b/src/base/fmt/test.c diff --git a/src/libfmt/vesprint.c b/src/base/fmt/vesprint.c index 18f4dd2..18f4dd2 100644 --- a/src/libfmt/vesprint.c +++ b/src/base/fmt/vesprint.c diff --git a/src/libfmt/vfprint.c b/src/base/fmt/vfprint.c index 4306ea7..4306ea7 100644 --- a/src/libfmt/vfprint.c +++ b/src/base/fmt/vfprint.c diff --git a/src/libfmt/vnsprint.c b/src/base/fmt/vnsprint.c index 7ded908..7ded908 100644 --- a/src/libfmt/vnsprint.c +++ b/src/base/fmt/vnsprint.c diff --git a/src/libfmt/vprint.c b/src/base/fmt/vprint.c index bb3076b..bb3076b 100644 --- a/src/libfmt/vprint.c +++ b/src/base/fmt/vprint.c diff --git a/src/libfmt/vwrite.c b/src/base/fmt/vwrite.c index cacdef2..cacdef2 100644 --- a/src/libfmt/vwrite.c +++ b/src/base/fmt/vwrite.c diff --git a/src/libfmt/write.c b/src/base/fmt/write.c index 9a77223..9a77223 100644 --- a/src/libfmt/write.c +++ b/src/base/fmt/write.c diff --git a/src/base/io/close.c b/src/base/io/close.c new file mode 100644 index 0000000..5a773cd --- /dev/null +++ b/src/base/io/close.c @@ -0,0 +1,7 @@ +#include "internal.h" + +int +io·close(io·Stream *s) +{ + return fclose(s); +} diff --git a/src/base/io/open.c b/src/base/io/open.c index 71e88d4..fe78255 100644 --- a/src/base/io/open.c +++ b/src/base/io/open.c @@ -5,9 +5,3 @@ io·open(byte *name, byte *mode) { return fopen(name, mode); } - -int -io·close(io·Stream *s) -{ - return fclose(s); -} diff --git a/src/base/io/rules.mk b/src/base/io/rules.mk index 2e03ca5..124cd09 100644 --- a/src/base/io/rules.mk +++ b/src/base/io/rules.mk @@ -3,6 +3,7 @@ SRCS_$(d)+=\ $(d)/io/flush.c\ $(d)/io/interface.c\ $(d)/io/open.c\ + $(d)/io/close.c\ $(d)/io/putbyte.c\ $(d)/io/putstring.c\ $(d)/io/read.c\ @@ -11,4 +12,4 @@ SRCS_$(d)+=\ $(d)/io/stat.c\ $(d)/io/tell.c\ $(d)/io/unget.c\ - $(d)/io/write.c\ + $(d)/io/write.c diff --git a/src/base/rules.mk b/src/base/rules.mk index 9f25d37..0a262c7 100644 --- a/src/base/rules.mk +++ b/src/base/rules.mk @@ -5,10 +5,15 @@ include share/push.mk # local sources SRCS_$(d):=\ $(d)/arg.c + +CHECK_$(d):=\ + $(d)/test.c + include $(d)/bufio/rules.mk include $(d)/coro/rules.mk include $(d)/error/rules.mk include $(d)/flate/rules.mk +include $(d)/fmt/rules.mk include $(d)/fs/rules.mk include $(d)/gz/rules.mk include $(d)/io/rules.mk @@ -18,12 +23,10 @@ include $(d)/os/rules.mk include $(d)/rng/rules.mk include $(d)/sort/rules.mk include $(d)/string/rules.mk -CHECK_$(d):=\ - $(d)/test.c +include $(d)/utf/rules.mk # outputs LIBS_$(d) := $(d)/base.a -BINS_$(d) := include share/paths.mk diff --git a/src/libutf/canfit.c b/src/base/utf/canfit.c index 4579ab3..4579ab3 100644 --- a/src/libutf/canfit.c +++ b/src/base/utf/canfit.c diff --git a/src/libutf/decode.c b/src/base/utf/decode.c index 01797f1..01797f1 100644 --- a/src/libutf/decode.c +++ b/src/base/utf/decode.c diff --git a/src/libutf/decodeprev.c b/src/base/utf/decodeprev.c index 27dced6..27dced6 100644 --- a/src/libutf/decodeprev.c +++ b/src/base/utf/decodeprev.c diff --git a/src/libutf/encode.c b/src/base/utf/encode.c index fa7c93e..fa7c93e 100644 --- a/src/libutf/encode.c +++ b/src/base/utf/encode.c diff --git a/src/libutf/find.c b/src/base/utf/find.c index d75feb8..d75feb8 100644 --- a/src/libutf/find.c +++ b/src/base/utf/find.c diff --git a/src/libutf/findlast.c b/src/base/utf/findlast.c index ab25ab2..ab25ab2 100644 --- a/src/libutf/findlast.c +++ b/src/base/utf/findlast.c diff --git a/src/libutf/internal.h b/src/base/utf/internal.h index 9719977..49945dd 100644 --- a/src/libutf/internal.h +++ b/src/base/utf/internal.h @@ -2,7 +2,6 @@ #include <u.h> #include <base.h> -#include <libutf.h> /* * NOTE: we use the preprocessor to ensure we have unsigned constants. diff --git a/src/libutf/len.c b/src/base/utf/len.c index 8fbd679..8fbd679 100644 --- a/src/libutf/len.c +++ b/src/base/utf/len.c diff --git a/src/base/utf/rules.mk b/src/base/utf/rules.mk new file mode 100644 index 0000000..446c113 --- /dev/null +++ b/src/base/utf/rules.mk @@ -0,0 +1,71 @@ +UNICODE=14.0.0 + +SRCS_$(d)+=\ + $(d)/utf/encode.c\ + $(d)/utf/decode.c\ + $(d)/utf/decodeprev.c\ + $(d)/utf/find.c\ + $(d)/utf/findlast.c\ + $(d)/utf/canfit.c\ + $(d)/utf/runelen.c\ + $(d)/utf/len.c\ + $(d)/utf/runetype-$(UNICODE).c\ + $(d)/utf/runewidth-$(UNICODE).c + +# ======================================================================== +# table generation + +# NOTE: this is pretty hacky... +NEED_OBJS=\ + $(OBJ_DIR)/base/arg.o\ + $(OBJ_DIR)/base/utf/decode.o\ + $(OBJ_DIR)/base/error/panicf.o\ + $(OBJ_DIR)/base/io/readln.o\ + $(OBJ_DIR)/base/io/open.o\ + $(OBJ_DIR)/base/io/close.o + +$(d)/utf/vendor/common.o: $(d)/utf/vendor/common.c + $(COMPILE) + +# rune categories +$(d)/utf/vendor/UnicodeData-$(UNICODE).txt: + @echo "GET UnicodeData.txt";\ + curl https://www.unicode.org/Public/$(UNICODE)/ucd/UnicodeData.txt > $@ + +$(d)/utf/vendor/mkrunetype: $(d)/utf/vendor/mkrunetype.c $(d)/utf/vendor/common.o $(NEED_OBJS) + $(COMPLINK) + +GENS += $(d)/utf/vendor/mkrunetype + +$(d)/utf/runetype-$(UNICODE).c: $(d)/utf/vendor/UnicodeData-$(UNICODE).txt $(d)/utf/vendor/mkrunetype + @$(dir $@)vendor/mkrunetype $< > $@ + +# rune widths +$(d)/utf/vendor/EastAsianWidth-$(UNICODE).txt: + @echo "GET EastAsianWidth.txt";\ + curl https://www.unicode.org/Public/$(UNICODE)/ucd/EastAsianWidth.txt > $@ + +$(d)/utf/vendor/EmojiData-$(UNICODE).txt: + @echo "GET EmojiData.txt";\ + curl https://www.unicode.org/Public/$(UNICODE)/ucd/emoji/emoji-data.txt > $@ + +$(d)/utf/vendor/mkrunewidth: $(d)/utf/vendor/mkrunewidth.c $(d)/utf/vendor/common.o $(NEED_OBJS) + $(COMPLINK) + +GENS += $(d)/utf/vendor/mkrunewidth + +$(d)/utf/runewidth-$(UNICODE).c: $(d)/utf/vendor/mkrunewidth $(d)/utf/vendor/UnicodeData-$(UNICODE).txt $(d)/utf/vendor/EastAsianWidth-$(UNICODE).txt $(d)/utf/vendor/EmojiData-$(UNICODE).txt + @$(dir $@)vendor/mkrunewidth $(filter-out $<, $^) > $@ + +# grapheme boundaries +$(d)/utf/vendor/GraphemeBreakProperty-$(UNICODE).txt: + @echo "GET GraphemeBreakProperty.txt";\ + curl https://www.unicode.org/Public/$(UNICODE)/ucd/auxiliary/GraphemeBreakProperty.txt > $@ + +$(d)/utf/vendor/mkgraphemedata: $(d)/utf/vendor/mkgraphemedata.c $(d)/utf/vendor/common.o $(NEED_OBJS) + $(COMPLINK) + +$(d)/utf/graphemedata-$(UNICODE).c: $(d)/utf/vendor/mkgraphemedata $(d)/utf/vendor/GraphemeBreakProperty-$(UNICODE).txt + $^ > $@ + +GENS += $(d)/utf/vendor/mkgraphemedata diff --git a/src/libutf/runelen.c b/src/base/utf/runelen.c index dac7f15..dac7f15 100644 --- a/src/libutf/runelen.c +++ b/src/base/utf/runelen.c diff --git a/src/libutf/vendor/common.c b/src/base/utf/vendor/common.c index 5a03a50..fcf1177 100644 --- a/src/libutf/vendor/common.c +++ b/src/base/utf/vendor/common.c @@ -99,7 +99,7 @@ putsearch(void) { puts( "#include <u.h>\n" - "#include <libutf.h>\n" + "#include <base/utf.h>\n" "\n" "static\n" "rune*\n" diff --git a/src/libutf/vendor/common.h b/src/base/utf/vendor/common.h index 62f6c5b..51a53bd 100644 --- a/src/libutf/vendor/common.h +++ b/src/base/utf/vendor/common.h @@ -2,7 +2,6 @@ #include <u.h> #include <base.h> -#include <libutf.h> enum { diff --git a/src/libutf/vendor/mkgraphemedata.c b/src/base/utf/vendor/mkgraphemedata.c index ce5a952..ce5a952 100644 --- a/src/libutf/vendor/mkgraphemedata.c +++ b/src/base/utf/vendor/mkgraphemedata.c diff --git a/src/libutf/vendor/mkrunetype.c b/src/base/utf/vendor/mkrunetype.c index b33df32..b33df32 100644 --- a/src/libutf/vendor/mkrunetype.c +++ b/src/base/utf/vendor/mkrunetype.c diff --git a/src/libutf/vendor/mkrunewidth.c b/src/base/utf/vendor/mkrunewidth.c index 14e6973..14e6973 100644 --- a/src/libutf/vendor/mkrunewidth.c +++ b/src/base/utf/vendor/mkrunewidth.c diff --git a/src/cmd/core/basename.c b/src/cmd/core/basename.c index ba9d4c9..263592f 100644 --- a/src/cmd/core/basename.c +++ b/src/cmd/core/basename.c @@ -1,6 +1,5 @@ #include <u.h> #include <base.h> -#include <libfmt.h> static void usage(void) diff --git a/src/cmd/core/cat.c b/src/cmd/core/cat.c index 4f0929c..e9b770b 100644 --- a/src/cmd/core/cat.c +++ b/src/cmd/core/cat.c @@ -1,6 +1,5 @@ #include <u.h> #include <base.h> -#include <libfmt.h> static void usage(void) diff --git a/src/cmd/dwm/dwm.h b/src/cmd/dwm/dwm.h index afec1f2..269f373 100644 --- a/src/cmd/dwm/dwm.h +++ b/src/cmd/dwm/dwm.h @@ -2,7 +2,6 @@ #pragma once #include <u.h> #include <base.h> -#include <libutf.h> #include <errno.h> #include <locale.h> diff --git a/src/cmd/menu/menu.h b/src/cmd/menu/menu.h index f4345bb..de01607 100644 --- a/src/cmd/menu/menu.h +++ b/src/cmd/menu/menu.h @@ -1,7 +1,6 @@ /* See LICENSE file for copyright and license details. */ #include <u.h> #include <base.h> -#include <libutf.h> #include <time.h> #include <locale.h> diff --git a/src/cmd/rc/rc.h b/src/cmd/rc/rc.h index f52e4e2..76a1b3d 100644 --- a/src/cmd/rc/rc.h +++ b/src/cmd/rc/rc.h @@ -2,7 +2,7 @@ #include <u.h> #include <base.h> -#include <libutf.h> +#include <base/utf.h> // ----------------------------------------------------------------------- // types diff --git a/src/cmd/term/term.h b/src/cmd/term/term.h index 6784974..c370239 100644 --- a/src/cmd/term/term.h +++ b/src/cmd/term/term.h @@ -3,7 +3,6 @@ #include <u.h> #include <base.h> -#include <libutf.h> #include <signal.h> #include <sys/ioctl.h> diff --git a/src/libbio/rules.mk b/src/libbio/rules.mk index f4e75f4..032670c 100644 --- a/src/libbio/rules.mk +++ b/src/libbio/rules.mk @@ -6,7 +6,6 @@ SRCS_$(d) := \ $(d)/newick.c \ $(d)/phylo.c LIBS_$(d) := $(d)/libbio.a -BINS_$(d) := # CHECK_$(d) := \ # $(d)/test.c \ # $(d)/simulate.c @@ -17,8 +16,8 @@ include share/paths.mk $(LIBS_$(d)): $(OBJS_$(d)) $(OBJS_$(d)/io) $(ARCHIVE) -$(TEST_$(d)): TLIBS = $(LIBS_$(d)) $(OBJ_DIR)/libn/libn.a -$(TEST_$(d)): $(UNIT_$(d)) $(LIBS_$(d)) $(OBJ_DIR)/libn/libn.a +$(TEST_$(d)): TLIBS = $(LIBS_$(d)) $(OBJ_DIR)/base/base.a +$(TEST_$(d)): $(UNIT_$(d)) $(LIBS_$(d)) $(OBJ_DIR)/base/base.a $(LINK) include share/pop.mk diff --git a/src/libc/rules.mk b/src/libc/rules.mk deleted file mode 100644 index 34e0912..0000000 --- a/src/libc/rules.mk +++ /dev/null @@ -1,20 +0,0 @@ -include share/push.mk - -# Iterate through subdirectory tree - -# Local sources -SRCS_$(d) := $(wildcard $(d)/*.c) -LIBS_$(d) := $(d)/libc_n.a -BINS_$(d) := - -include share/paths.mk - -# Local rules -$(LIBS_$(d)): TCFLAGS = -ffreestanding -fno-builtin -nostdlib -$(LIBS_$(d)): $(OBJS_$(d)) - $(ARCHIVE) - -$(BINS_$(d)): $(OBJ_DIR)/libn/test.o - $(LINK) - -include share/pop.mk diff --git a/src/libc/stdio.c b/src/libc/stdio.c deleted file mode 100644 index 8bbbe9a..0000000 --- a/src/libc/stdio.c +++ /dev/null @@ -1,59 +0,0 @@ -#include <u.h> -#include <libc.h> - -int -printf(byte* fmt, ...) -{ - va_list args; - va_start(args, fmt); - - int nw, rem, peek, len; - byte *str, c; - - while (*fmt) { - rem = INT_MAX - nw; - - if (fmt[0] != '%' || fmt[1] == '%') { - if (fmt[0] == '%') fmt++; - - for (peek = 1; fmt[peek] && fmt[peek] != '%'; peek++) { - ; - } - if (rem < peek) return -1; - // TODO: Print here. - fmt += peek; - nw += peek; - continue; - } - - str = fmt++; - - switch (*fmt++) { - case 'c': - c = va_arg(args, int); - if (rem < 0) return -1; - // TODO: Print here - nw++; - break; - - case 's': - str = va_arg(args, byte*); - len = strlen(str); - if (rem < len) return -1; - // TODO: Print here - nw += len; - break; - default: - fmt = str; - len = strlen(fmt); - if (rem < len) return -1; - // TODO: Print here - nw += len; - fmt += len; - break; - } - } - - va_end(args); - return nw; -} diff --git a/src/libc/string.c b/src/libc/string.c deleted file mode 100644 index 0e41efa..0000000 --- a/src/libc/string.c +++ /dev/null @@ -1,80 +0,0 @@ -#include <u.h> -#include <libc.h> - -void* -memcopy(void *dst, void *src, intptr n) -{ - byte *e, *s, *d; - - d = dst; - e = d + n; - for (s = src ; d != e; ++s, ++d) { - *d = *s; - } - - return dst; -} - -void* -memmove(void *dst, void *src, intptr n) -{ - byte *e, *s, *d; - s = src; - d = dst; - - if (d < s) { - e = d + n; - for (; d != e; ++s, ++d) - *d = *s; - - } else { - e = d; - d += n; - s += n; - for (; d != e; --s, --d) - d[-1] = s[-1]; - } - - return dst; -} - -void* -memset(void *buf, int val, intptr n) -{ - byte *b, *e; - b = buf; - e = b + n; - for (; b != e; b++) { - *b = (byte)val; - } - - return buf; -} - -int -memcmp(void *lhs, void *rhs, intptr n) -{ - byte *bl, *br, *e; - - br = rhs; - e = br + n; - for (bl = lhs; br != e; ++bl, ++br) { - if (*bl < *br) - return -1; - else if (*bl > *br) - return 1; - } - - return 0; -} - -int -strlen(byte* s) -{ - byte* b; - for (b = s; *b; b++) { - ; - } - - return b - s; -} diff --git a/src/libfmt/rules.mk b/src/libfmt/rules.mk deleted file mode 100644 index 75a7bc7..0000000 --- a/src/libfmt/rules.mk +++ /dev/null @@ -1,36 +0,0 @@ -include share/push.mk - -# Local sources -SRCS_$(d):=\ - $(d)/buffer.c\ - $(d)/do.c\ - $(d)/esprint.c\ - $(d)/fprint.c\ - $(d)/locale.c\ - $(d)/nsprint.c\ - $(d)/open.c\ - $(d)/print.c\ - $(d)/sprint.c\ - $(d)/vesprint.c\ - $(d)/vfprint.c\ - $(d)/vnsprint.c\ - $(d)/vprint.c\ - $(d)/vwrite.c\ - $(d)/panic.c\ - $(d)/write.c - -LIBS_$(d):=\ - $(d)/libfmt.a - -CHECK_$(d):=\ - $(d)/test.c - -include share/paths.mk - -$(LIBS_$(d)): $(OBJS_$(d)) - $(ARCHIVE) - -$(TEST_$(d)): $(UNIT_$(d)) $(LIBS_$(d)) $(OBJ_DIR)/libutf/libutf.a $(OBJ_DIR)/base/base.a - $(COMPLINK) - -include share/pop.mk diff --git a/src/libutf/rules.mk b/src/libutf/rules.mk deleted file mode 100644 index aeb86b2..0000000 --- a/src/libutf/rules.mk +++ /dev/null @@ -1,76 +0,0 @@ -include share/push.mk - -UNICODE=14.0.0 - -SRCS_$(d):=\ - $(d)/encode.c\ - $(d)/decode.c\ - $(d)/decodeprev.c\ - $(d)/find.c\ - $(d)/findlast.c\ - $(d)/canfit.c\ - $(d)/runelen.c\ - $(d)/len.c\ - $(d)/runetype-$(UNICODE).c\ - $(d)/runewidth-$(UNICODE).c - -LIBS_$(d):=$(d)/libutf.a - -include share/paths.mk - -# ======================================================================== -# table generation - -$(d)/vendor/common.o: $(d)/vendor/common.c - $(COMPILE) - -# rune categories -$(d)/vendor/UnicodeData-$(UNICODE).txt: - @echo "GET UnicodeData.txt";\ - curl https://www.unicode.org/Public/$(UNICODE)/ucd/UnicodeData.txt > $@ - -$(d)/vendor/mkrunetype: $(d)/vendor/mkrunetype.c $(d)/vendor/common.o $(OBJ_DIR)/base/base.a - $(COMPLINK) - -GENS += $(d)/vendor/mkrunetype - -$(d)/runetype-$(UNICODE).c: $(d)/vendor/UnicodeData-$(UNICODE).txt $(d)/vendor/mkrunetype - @$(dir $@)vendor/mkrunetype $< > $@ - -# rune widths -$(d)/vendor/EastAsianWidth-$(UNICODE).txt: - @echo "GET EastAsianWidth.txt";\ - curl https://www.unicode.org/Public/$(UNICODE)/ucd/EastAsianWidth.txt > $@ - -$(d)/vendor/EmojiData-$(UNICODE).txt: - @echo "GET EmojiData.txt";\ - curl https://www.unicode.org/Public/$(UNICODE)/ucd/emoji/emoji-data.txt > $@ - -$(d)/vendor/mkrunewidth: $(d)/vendor/mkrunewidth.c $(d)/vendor/common.o $(OBJ_DIR)/base/base.a - $(COMPLINK) - -GENS += $(d)/vendor/mkrunewidth - -$(d)/runewidth-$(UNICODE).c: $(d)/vendor/mkrunewidth $(d)/vendor/UnicodeData-$(UNICODE).txt $(d)/vendor/EastAsianWidth-$(UNICODE).txt $(d)/vendor/EmojiData-$(UNICODE).txt - @$(dir $@)vendor/mkrunewidth $(filter-out $<, $^) > $@ - -# grapheme boundaries -$(d)/vendor/GraphemeBreakProperty-$(UNICODE).txt: - @echo "GET GraphemeBreakProperty.txt";\ - curl https://www.unicode.org/Public/$(UNICODE)/ucd/auxiliary/GraphemeBreakProperty.txt > $@ - -$(d)/vendor/mkgraphemedata: $(d)/vendor/mkgraphemedata.c $(d)/vendor/common.o $(OBJ_DIR)/base/base.a - $(COMPLINK) - -$(d)/graphemedata-$(UNICODE).c: $(d)/vendor/mkgraphemedata $(d)/vendor/GraphemeBreakProperty-$(UNICODE).txt - $^ > $@ - -GENS += $(d)/vendor/mkgraphemedata - -# ======================================================================== -# normal operations - -$(LIBS_$(d)): $(OBJS_$(d)) - $(ARCHIVE) - -include share/pop.mk diff --git a/src/rules.mk b/src/rules.mk index 9bb61ae..368479c 100644 --- a/src/rules.mk +++ b/src/rules.mk @@ -8,12 +8,6 @@ include $(DIR)/rules.mk DIR := $(d)/base include $(DIR)/rules.mk -DIR := $(d)/libutf -include $(DIR)/rules.mk - -DIR := $(d)/libfmt -include $(DIR)/rules.mk - DIR := $(d)/libmath include $(DIR)/rules.mk |