From bd19f38853dad5a89abada6ee5e7a23c65173894 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Thu, 23 May 2019 13:08:08 +0300 Subject: Revise dependency handling. Correctly display cyclic dependencies. * src/comp.c (component_log_dep): Remove. (report_cyclic_dependency): New function. (comp_array_remove): New function. (component_build_depmap): Remove erroneous components both from the component table and dependency map. (components_dump_depmap): Avoid trailing whitespace in the output. * src/depmap.c (depmap_clear_all): Remove. (depmap_remove): New function. * src/pies.h (CF_REMOVE): New flag. (depmap_clear_all): Remove prototype. (depmap_remove): New prototype. * tests/Makefile.am: Add new test. * tests/atlocal.in (trimws): New function. * tests/cyclic.at: New test. * tests/testsuite.at: Include new test. --- src/pies.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/pies.h') diff --git a/src/pies.h b/src/pies.h index 70d972a..e7e5d71 100644 --- a/src/pies.h +++ b/src/pies.h @@ -199,6 +199,8 @@ enum pies_comp_mode #define CF_NULLINPUT 0x200 /* Provide null input stream */ +#define CF_REMOVE 0x400 /* Marked for removal */ + #define ISCF_TCPMUX(f) ((f) & (CF_TCPMUX | CF_TCPMUXPLUS)) struct prog; @@ -374,9 +376,7 @@ pies_depmap_t depmap_copy (pies_depmap_t dpm); void depmap_set (pies_depmap_t dmap, size_t row, size_t col); int depmap_isset (pies_depmap_t dmap, size_t row, size_t col); void depmap_clear (pies_depmap_t dmap, size_t row, size_t col); - -void depmap_clear_all (pies_depmap_t dmap, enum pies_depmap_direction dir, - size_t coord); +void depmap_remove (pies_depmap_t dmap, size_t n); void depmap_tc (pies_depmap_t dmap); size_t depmap_first (pies_depmap_t dmap, enum pies_depmap_direction dir, -- cgit v1.2.1