diff --git a/src/lib66/parse/parse_frontend.c b/src/lib66/parse/parse_frontend.c index c2e80a9a055f72bde9ec6e6f96d63f968176cd92..3533f8e0f736c2a9e78d57e07a2d98e98895e723 100644 --- a/src/lib66/parse/parse_frontend.c +++ b/src/lib66/parse/parse_frontend.c @@ -35,6 +35,8 @@ #include <66/enum.h> #include <66/state.h> // service_is_g flag #include <66/parser.h> +#include <66/module.h> +#include <66/instance.h> static void parse_service_instance(stralloc *frontend, char const *svsrc, char const *sv, int insta) { @@ -196,17 +198,15 @@ int parse_frontend(char const *sv, resolve_service_t *ares, unsigned int *aresle res.dependencies.ndepends += res.dependencies.noptsdeps ; } - /** We take the dependencies in two case: - * If the user ask for it(force > 1) - * If the service was never parsed(!isparsed)*/ - if (force > 1 || !isparsed) - if (!parse_dependencies(&res, ares, areslen, info, force, conf, forced_directory, main)) + /** parse dependencies iff the service was never parsed */ + if (!isparsed) + if (!parse_dependencies(&res, ares, areslen, info, force, conf, forced_directory, main, force > 1 ? 1 : 0)) log_dieu(LOG_EXIT_SYS, "parse dependencies of service: ", svname) ; if (res.type == TYPE_MODULE) parse_module(&res, ares, areslen, info, force) ; - log_trace("add service ", svname, " to the selection: ") ; + log_trace("add service ", svname, " to the selection") ; if (service_resolve_array_search(ares, *areslen, svname) < 0) { if (*areslen >= SS_MAX_SERVICE)