From 0636e12570db853051ba4d7adf034926ec38eafa Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Fri, 22 Mar 2019 17:33:17 +0100 Subject: [PATCH] item->element in da --- makefile | 36 ++++++++++++++++--------- src-0/1_tests/da.cli.h | 3 --- src-da/0_makefile-flags | 2 ++ src-da/1_include/da.h | 10 +++---- src-da/1_lib/libda.a | Bin 11602 -> 0 bytes src-da/1_tests/0_makefile-flags | 3 ++- src-da/1_tests/test_da.lib.c | 2 +- src-da/1_tmp/makefile_deps | 1 - src-da/da.lib.c | 46 ++++++++++++++++---------------- src-da/da.lib.h | 10 +++---- src-da/da.lib.o | Bin 11296 -> 0 bytes src-db/1_tmp/makefile_deps | 1 - src-db/dbprintf.lib.h | 3 --- src-tranche/0_makefile-flags | 2 +- src-tranche/1_doc/todo.txt | 11 ++++++++ src-tranche/1_tests/test.dat | 17 ++++++++++++ src-tranche/tranche.cli.c | 11 ++++++++ stage/include/da.h | 10 +++---- stage/lib/libda.a | Bin 11602 -> 0 bytes tools/bin/make | 2 +- tools/lib/makefile_cc | 5 ---- 21 files changed, 108 insertions(+), 67 deletions(-) delete mode 100644 src-0/1_tests/da.cli.h delete mode 100644 src-da/1_lib/libda.a delete mode 100644 src-da/1_tmp/makefile_deps delete mode 100644 src-da/da.lib.o delete mode 100644 src-db/1_tmp/makefile_deps delete mode 100644 src-db/dbprintf.lib.h create mode 100644 src-tranche/1_doc/todo.txt create mode 100644 src-tranche/1_tests/test.dat delete mode 100644 stage/lib/libda.a diff --git a/makefile b/makefile index f8e38f8..c8d9a4e 100755 --- a/makefile +++ b/makefile @@ -1,19 +1,31 @@ -#subdirectories=$(shell /usr/bin/find . -maxdepth 1 -printf "%f " | sed y/\./\ /) -subdirectories=$(wildcard src-*) +SRCDIRS= $(wildcard src-*) +MAKEABLE=$(shell \ + find src-*\ + -mindepth 1 \ + \( -name '?_makefile' -o -name 'makefile' -o -name 'Makefile' \)\ + -printf "%h\n"\ + | grep -v deprecated | grep -v doc | sort -u | sed ':a;N;$!ba;s/\n/ /g' \ +) all : -# $(foreach dir, $(subdirectories), \ -# if [ -f $(dir)/0_makefile ]; then \ -# make -C $(dir) all && make -C $(dir) stage; \ -# fi;\ -# ) - -dist-clean : - $(foreach dir, $(subdirectories), \ - cd $(dir);\ - make dist-clean;\ + $(foreach dir, $(MAKEABLE), \ + make -C $$dir + -make -C $$dir stage ) +info: + @echo "SRCDIRS:" $(SRCDIRS) + @echo "MAKEABLE:" $(MAKEABLE) + +clean : + for dir in $(MAKEABLE); do pushd $$dir; make clean; popd; done + +dist-clean : clean + for i in $(wildcard stage/lib/*); do rm $$i; done + for i in $(wildcard stage/inc/*); do rm $$i; done + for i in $(wildcard stage/bin/*); do rm $$i; done + + diff --git a/src-0/1_tests/da.cli.h b/src-0/1_tests/da.cli.h deleted file mode 100644 index 6ea42df..0000000 --- a/src-0/1_tests/da.cli.h +++ /dev/null @@ -1,3 +0,0 @@ -/* This file was automatically generated. Do not edit! */ -#undef INTERFACE -int test_da_0(); diff --git a/src-da/0_makefile-flags b/src-da/0_makefile-flags index daa96bb..31435c3 100644 --- a/src-da/0_makefile-flags +++ b/src-da/0_makefile-flags @@ -30,3 +30,5 @@ LIBFILE=libda.a INCFILE=da.h MAKE=/usr/bin/make --no-print-directory -f $(PROJECT_SUBU)/tools/lib/makefile_cc +#MAKE=/usr/bin/make -f $(PROJECT_SUBU)/tools/lib/makefile_cc + diff --git a/src-da/1_include/da.h b/src-da/1_include/da.h index d5ba4db..d4e34de 100644 --- a/src-da/1_include/da.h +++ b/src-da/1_include/da.h @@ -6,23 +6,23 @@ typedef struct Da{ char *base; - char *end; // one byte/one item off the end of the array + char *end; // one byte/one element off the end of the array size_t size; // size >= (end - base) + 1; - size_t item_size; + size_t element_size; } Da; #define RETURN(dap, r) \ { da_map(dap, da_free, NULL); return r; } -void da_alloc(Da *dap, size_t item_size); +void da_alloc(Da *dap, size_t element_size); void da_free(Da *dap); void da_rewind(Da *dap); char *da_expand(Da *dap); void da_rebase(Da *dap, char *old_base, void *pta); bool da_endq(Da *dap, void *pt); bool da_boundq(Da *dap); -void da_push(Da *dap, void *item); -bool da_pop(Da *dap, void *item); +void da_push(Da *dap, void *element); +bool da_pop(Da *dap, void *element); void da_map(Da *dap, void f(void *, void *), void *closure); void da_free_elements(Da *dap); char *da_fgets(Da *dap, FILE *fd); diff --git a/src-da/1_lib/libda.a b/src-da/1_lib/libda.a deleted file mode 100644 index db52b0b9598e64bd8f47ec7d30b1bcbaf73b0838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11602 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 diff --git a/src-da/1_tests/0_makefile-flags b/src-da/1_tests/0_makefile-flags index 4b8fa2c..4661a67 100644 --- a/src-da/1_tests/0_makefile-flags +++ b/src-da/1_tests/0_makefile-flags @@ -28,6 +28,7 @@ CFLAGS=-std=gnu11 -fPIC -I. -I../1_include -ggdb -Werror -DDEBUG -DDEBUGDB LINKFLAGS=-L. -L../1_lib -ltests -lda LIBFILE=libtests.a -MAKE=/usr/bin/make --no-print-directory -f $(PROJECT_SUBU)/tools/lib/makefile_cc +MAKE=/usr/bin/make --no-print-directory -f $(PROJECT_SUBU)/tools/lib/makefile_cc +#MAKE=/usr/bin/make -f $(PROJECT_SUBU)/tools/lib/makefile_cc diff --git a/src-da/1_tests/test_da.lib.c b/src-da/1_tests/test_da.lib.c index 4657c3d..88a94c7 100644 --- a/src-da/1_tests/test_da.lib.c +++ b/src-da/1_tests/test_da.lib.c @@ -46,7 +46,7 @@ bool test_da_1(){ int *pt = (int *)da.base; // will double, 4 -> 8, then double 8 -> 16 while( i < 10 ){ - da.end += da.item_size; + da.end += da.element_size; if( da_boundq(&da) ){ char *old_base = da_expand(&da); da_rebase(&da, old_base, &pt); diff --git a/src-da/1_tmp/makefile_deps b/src-da/1_tmp/makefile_deps deleted file mode 100644 index 905b038..0000000 --- a/src-da/1_tmp/makefile_deps +++ /dev/null @@ -1 +0,0 @@ -da.lib.o: da.lib.c da.lib.h diff --git a/src-da/da.lib.c b/src-da/da.lib.c index 5e51d43..afa1e51 100644 --- a/src-da/da.lib.c +++ b/src-da/da.lib.c @@ -14,9 +14,9 @@ Dynamic Array // We manipulate pointers to a smallest addressable unit. The sizeof operator // returns counts in these addressable units. Sizeof(char) is defined to be 1. -void da_alloc(Da *dap, size_t item_size){ - dap->item_size = item_size; - dap->size = 4 * item_size; +void da_alloc(Da *dap, size_t element_size){ + dap->element_size = element_size; + dap->size = 4 * element_size; dap->base = malloc(dap->size); dap->end = dap->base; } @@ -32,14 +32,20 @@ bool da_empty(Da *dap){ return dap->end == dap->base; } +void da_rebase(Da *dap, char *old_base, void *pta){ + char **pt = (char **)pta; + size_t offset = *pt - old_base; + *pt = dap->base + offset; +} + // Doubles size of of da. Returns old base, so that existing pointers into the // array can be moved to the new array char *da_expand(Da *dap){ - size_t end_offset = ((char *)dap->end - (char *)dap->base); char *old_base = dap->base; + size_t end_offset = dap->end - old_base; size_t new_size = dap->size << 1; char *new_base = malloc( new_size ); - memcpy( new_base, old_base, end_offset + dap->item_size); + memcpy( new_base, old_base, end_offset + dap->element_size); free(old_base); dap->base = new_base; dap->end = new_base + end_offset; @@ -47,12 +53,6 @@ char *da_expand(Da *dap){ return old_base; } -void da_rebase(Da *dap, char *old_base, void *pta){ - char **pt = (char **)pta; - size_t offset = *pt - old_base; - *pt = dap->base + offset; -} - // true when pt has run off the end of the area currently allocated for the array bool da_endq(Da *dap, void *pt){ return (char *)pt >= dap->end; @@ -63,29 +63,29 @@ bool da_boundq(Da *dap){ return dap->end >= dap->base + dap->size; } -void da_push(Da *dap, void *item){ +void da_push(Da *dap, void *element){ if( dap->end >= dap->base + dap->size ) da_expand(dap); - memcpy(dap->end, item, dap->item_size); - dap->end += dap->item_size; + memcpy(dap->end, element, dap->element_size); + dap->end += dap->element_size; } -bool da_pop(Da *dap, void *item){ - bool flag = dap->end >= dap->base + dap->item_size; +bool da_pop(Da *dap, void *element){ + bool flag = dap->end >= dap->base + dap->element_size; if( flag ){ - dap->end -= dap->item_size; - if(item) memcpy(item, dap->end, dap->item_size); + dap->end -= dap->element_size; + if(element) memcpy(element, dap->end, dap->element_size); } return flag; } -// passed in f(item_pt, arg_pt) +// passed in f(element_pt, arg_pt) // We have no language support closures, so we pass in an argument for it. // The closure may be set to NULL if it is not needed. void da_map(Da *dap, void f(void *, void *), void *closure){ char *pt = dap->base; while( pt != dap->end ){ f(pt, closure); - pt += dap->item_size; + pt += dap->element_size; } } @@ -104,12 +104,12 @@ void da_free_elements(Da *dap){ // buffer. Returns the old_base so that external pointers can be rebased. // It is possible that the the base hasn't changed. Use feof(FILE *stream) to // test for EOF; -char *da_fgets(Da *dap, FILE *fd){ +char *da_fgets(Da *dap, FILE *file){ char *old_base = dap->base; - int c = fgetc(fd); + int c = fgetc(file); while( c != EOF && c != '\n' ){ da_push(dap, &c); - c = fgetc(fd); + c = fgetc(file); } int terminator = 0; da_push(dap, &terminator); diff --git a/src-da/da.lib.h b/src-da/da.lib.h index d5ba4db..d4e34de 100644 --- a/src-da/da.lib.h +++ b/src-da/da.lib.h @@ -6,23 +6,23 @@ typedef struct Da{ char *base; - char *end; // one byte/one item off the end of the array + char *end; // one byte/one element off the end of the array size_t size; // size >= (end - base) + 1; - size_t item_size; + size_t element_size; } Da; #define RETURN(dap, r) \ { da_map(dap, da_free, NULL); return r; } -void da_alloc(Da *dap, size_t item_size); +void da_alloc(Da *dap, size_t element_size); void da_free(Da *dap); void da_rewind(Da *dap); char *da_expand(Da *dap); void da_rebase(Da *dap, char *old_base, void *pta); bool da_endq(Da *dap, void *pt); bool da_boundq(Da *dap); -void da_push(Da *dap, void *item); -bool da_pop(Da *dap, void *item); +void da_push(Da *dap, void *element); +bool da_pop(Da *dap, void *element); void da_map(Da *dap, void f(void *, void *), void *closure); void da_free_elements(Da *dap); char *da_fgets(Da *dap, FILE *fd); diff --git a/src-da/da.lib.o b/src-da/da.lib.o deleted file mode 100644 index 979ccb8c50e62de2d9e5704a63517e4f5ab51778..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11296 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 diff --git a/src-db/1_tmp/makefile_deps b/src-db/1_tmp/makefile_deps deleted file mode 100644 index 8fa09cf..0000000 --- a/src-db/1_tmp/makefile_deps +++ /dev/null @@ -1 +0,0 @@ -dbprintf.lib.o: dbprintf.lib.c dbprintf.lib.h diff --git a/src-db/dbprintf.lib.h b/src-db/dbprintf.lib.h deleted file mode 100644 index 3056cf6..0000000 --- a/src-db/dbprintf.lib.h +++ /dev/null @@ -1,3 +0,0 @@ -/* This file was automatically generated. Do not edit! */ -#undef INTERFACE -int dbprintf(const char *format,...); diff --git a/src-tranche/0_makefile-flags b/src-tranche/0_makefile-flags index 2c44f58..238137a 100644 --- a/src-tranche/0_makefile-flags +++ b/src-tranche/0_makefile-flags @@ -24,7 +24,7 @@ TRYDIR=1_try CC=gcc CFLAGS=-std=gnu11 -fPIC -I. -I$(PROJECT_SUBU)/stage/include -ggdb -Werror -DDEBUG -DDEBUGDB #CFLAGS=-std=gnu11 -fPIC -I. -Werror -LINKFLAGS=-L1_lib -lda +LINKFLAGS=-L1_lib -L$(PROJECT_SUBU)/stage/lib -lda -ltranche LIBFILE=libtranche.a INCFILE=tranche.h diff --git a/src-tranche/1_doc/todo.txt b/src-tranche/1_doc/todo.txt new file mode 100644 index 0000000..1494e66 --- /dev/null +++ b/src-tranche/1_doc/todo.txt @@ -0,0 +1,11 @@ + +2019-03-22T13:37:23Z +1. indentation + + the first non blank line after the #tranche keyword sets the indentation + level for the following text. When echoing to the output file + remove that many leading spaces. + + Hmm, or allow options among the tranche parameters, -indent 3 or + -indent ' '. + diff --git a/src-tranche/1_tests/test.dat b/src-tranche/1_tests/test.dat new file mode 100644 index 0000000..455b725 --- /dev/null +++ b/src-tranche/1_tests/test.dat @@ -0,0 +1,17 @@ + +#tranche test1.dat test2.dat +The little red hen said to Mick, no thank you not today sir. +And then all the barnes animals shouted out in glee. +No more misery! + +#endtranche + +#tranche apple.dat +apple banana pear +monkey ape bear +#tranche apple.dat nectarine.dat +nectarine orange +never go there said the man +but when you do, pick three +#endtranche +#endtranche diff --git a/src-tranche/tranche.cli.c b/src-tranche/tranche.cli.c index eb0fa3e..cbad345 100644 --- a/src-tranche/tranche.cli.c +++ b/src-tranche/tranche.cli.c @@ -2,5 +2,16 @@ int main(int argc, char **argv, char **envp){ + if(argc != 2){ + fprintf(stderr, "usage: %s \n",argv[0]); + } + FILE *file = fopen(argv[1], "r"); + + Da targets; + da_alloc(&targets, sizeof(int)); + da_push(&da_targets, stdout); + tranche_send(file, &da_targets); + da_free(targets); + fclose(file); } diff --git a/stage/include/da.h b/stage/include/da.h index d5ba4db..d4e34de 100644 --- a/stage/include/da.h +++ b/stage/include/da.h @@ -6,23 +6,23 @@ typedef struct Da{ char *base; - char *end; // one byte/one item off the end of the array + char *end; // one byte/one element off the end of the array size_t size; // size >= (end - base) + 1; - size_t item_size; + size_t element_size; } Da; #define RETURN(dap, r) \ { da_map(dap, da_free, NULL); return r; } -void da_alloc(Da *dap, size_t item_size); +void da_alloc(Da *dap, size_t element_size); void da_free(Da *dap); void da_rewind(Da *dap); char *da_expand(Da *dap); void da_rebase(Da *dap, char *old_base, void *pta); bool da_endq(Da *dap, void *pt); bool da_boundq(Da *dap); -void da_push(Da *dap, void *item); -bool da_pop(Da *dap, void *item); +void da_push(Da *dap, void *element); +bool da_pop(Da *dap, void *element); void da_map(Da *dap, void f(void *, void *), void *closure); void da_free_elements(Da *dap); char *da_fgets(Da *dap, FILE *fd); diff --git a/stage/lib/libda.a b/stage/lib/libda.a deleted file mode 100644 index db52b0b9598e64bd8f47ec7d30b1bcbaf73b0838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11602 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 diff --git a/tools/bin/make b/tools/bin/make index d51fcb8..3345aba 100755 --- a/tools/bin/make +++ b/tools/bin/make @@ -2,7 +2,7 @@ mf=( ?_makefile ) if [ -f "$mf" ]; then - /usr/bin/make -f ?_makefile "$@" + /usr/bin/make -f "$mf" "$@" else /usr/bin/make "$@" fi diff --git a/tools/lib/makefile_cc b/tools/lib/makefile_cc index ac1f960..5cdfb39 100755 --- a/tools/lib/makefile_cc +++ b/tools/lib/makefile_cc @@ -98,11 +98,6 @@ clean: if [ -f $(LIBDIR)/$(LIBFILE) ]; then rm $(LIBDIR)/$(LIBFILE); fi if [ -f $(DEPSFILE) ]; then rm $(DEPSFILE); fi -dist-clean: - make clean - if [ -d $(TESTDIR) ]; then cd $(TESTDIR); make dist-clean; fi - if [ -d $(TRYDIR) ] ; then cd $(TRYDIR); make dist-clean; fi - # $(LIBDIR)/$(LIBFILE) : $(OBJECTS_LIB) ar rcs $(LIBDIR)/$(LIBFILE) $(OBJECTS_LIB) -- 2.20.1