From c303288dc31b2fc3d9e35a62271fb99801c34412 Mon Sep 17 00:00:00 2001 From: "Michael D. Lowis" Date: Thu, 5 Jan 2017 12:46:50 -0500 Subject: [PATCH] Combined libx and libedit --- .gitignore | 1 + Makefile | 25 ++++++--------- TODO.md | 1 + fetchtag.c | 52 -------------------------------- {libedit => lib}/buf.c | 0 {libedit => lib}/exec.c | 0 {libedit => lib}/filetype.c | 0 {libedit => lib}/utf8.c | 0 {libedit => lib}/utils.c | 0 {libedit => lib}/view.c | 0 {libx => lib}/x11.c | 0 coverage.sh => tools/coverage.sh | 0 12 files changed, 12 insertions(+), 67 deletions(-) delete mode 100644 fetchtag.c rename {libedit => lib}/buf.c (100%) rename {libedit => lib}/exec.c (100%) rename {libedit => lib}/filetype.c (100%) rename {libedit => lib}/utf8.c (100%) rename {libedit => lib}/utils.c (100%) rename {libedit => lib}/view.c (100%) rename {libx => lib}/x11.c (100%) rename coverage.sh => tools/coverage.sh (100%) diff --git a/.gitignore b/.gitignore index 51995e0..2c0e260 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ tags *.gcov xedit xpick +DELETEME diff --git a/Makefile b/Makefile index 277e5e9..27359b4 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,13 @@ INCS = -Iinc/ -LIBEDIT_OBJS = \ - libedit/buf.o \ - libedit/filetype.o \ - libedit/utf8.o \ - libedit/utils.o \ - libedit/exec.o \ - libedit/view.o - -LIBX_OBJS = \ - libx/x11.o +LIBEDIT_OBJS = \ + lib/buf.o \ + lib/filetype.o \ + lib/utf8.o \ + lib/utils.o \ + lib/exec.o \ + lib/view.o \ + lib/x11.o TEST_OBJS = \ unittests.o \ @@ -47,16 +45,13 @@ uninstall: test: unittests ./unittests -xedit: xedit.o libx.a libedit.a +xedit: xedit.o libedit.a $(LD) -o $@ $^ $(LDFLAGS) -xpick: xpick.o libx.a libedit.a +xpick: xpick.o libedit.a $(LD) -o $@ $^ $(LDFLAGS) libedit.a: $(LIBEDIT_OBJS) $(AR) $(ARFLAGS) $@ $^ -libx.a: $(LIBX_OBJS) - $(AR) $(ARFLAGS) $@ $^ - unittests: $(TEST_OBJS) libedit.a diff --git a/TODO.md b/TODO.md index ee8d344..2b88dec 100644 --- a/TODO.md +++ b/TODO.md @@ -2,6 +2,7 @@ Up Next: +* Undo/Redo tags should apply to the edit buffer, ctrl+z + ctrl+y to the current buffer * Tag line count should account for wrapped lines * block selection should handle brace-balancing * context sensitive selection of words, commands, line numbers, or filenames. diff --git a/fetchtag.c b/fetchtag.c deleted file mode 100644 index 8b0105a..0000000 --- a/fetchtag.c +++ /dev/null @@ -1,52 +0,0 @@ -#include -#include -#include - -typedef struct { - char* file; - char* cmd; -} Choice; - -void add_choice(uint8_t* buf, size_t n) { - char* str = malloc(n); - memcpy(str, buf, n); - str[n] = '\0'; - /**/ - char* tag = strtok(str, "\t"); - char* file = strtok(NULL, "\t"); - char* cmd = file + strlen(file) + 1; - char* end = strrchr(cmd, ';'); - if (end) *end = '\0'; - - puts(tag); - puts(file); - puts(cmd); -} - -void fetchtags(char* tagfile, char* tag) { - size_t mlen = strlen(tag); - FMap file = fmap(tagfile); - for (size_t n, i = 0; i < file.len;) { - if (file.buf[i] > *tag) { - break; - } if ((file.buf[i + mlen] == '\t') && - (0 == strncmp(((char*)file.buf+i), tag, mlen))) { - for (n = 0; file.buf[i + n++] != '\n';); - add_choice(file.buf + i, n-1); - i += n; - } else { - while (file.buf[i++] != '\n'); - } - } -} - -int main(int argc, char** argv) { - /* usage message */ - if (argc != 3) { - printf("Usage: %s \n", argv[0]); - exit(1); - } - /* scan the file */ - fetchtags(argv[1], argv[2]); - return 0; -} diff --git a/libedit/buf.c b/lib/buf.c similarity index 100% rename from libedit/buf.c rename to lib/buf.c diff --git a/libedit/exec.c b/lib/exec.c similarity index 100% rename from libedit/exec.c rename to lib/exec.c diff --git a/libedit/filetype.c b/lib/filetype.c similarity index 100% rename from libedit/filetype.c rename to lib/filetype.c diff --git a/libedit/utf8.c b/lib/utf8.c similarity index 100% rename from libedit/utf8.c rename to lib/utf8.c diff --git a/libedit/utils.c b/lib/utils.c similarity index 100% rename from libedit/utils.c rename to lib/utils.c diff --git a/libedit/view.c b/lib/view.c similarity index 100% rename from libedit/view.c rename to lib/view.c diff --git a/libx/x11.c b/lib/x11.c similarity index 100% rename from libx/x11.c rename to lib/x11.c diff --git a/coverage.sh b/tools/coverage.sh similarity index 100% rename from coverage.sh rename to tools/coverage.sh -- 2.52.0