Only write documentation for installed parcels
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/2a44a5b3 Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/2a44a5b3 Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/2a44a5b3 Branch: refs/heads/master Commit: 2a44a5b364facdc17b948beff43f8d9c8ee7e96e Parents: 3530458 Author: Nick Wellnhofer <wellnho...@aevum.de> Authored: Mon Feb 13 16:12:19 2017 +0100 Committer: Nick Wellnhofer <wellnho...@aevum.de> Committed: Fri Feb 17 13:21:53 2017 +0100 ---------------------------------------------------------------------- compiler/src/CFCC.c | 8 ++++---- compiler/src/CFCCHtml.c | 9 +++++---- compiler/src/CFCCMan.c | 2 -- compiler/src/CFCClass.c | 7 +++++++ compiler/src/CFCClass.h | 3 +++ 5 files changed, 19 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2a44a5b3/compiler/src/CFCC.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCC.c b/compiler/src/CFCC.c index 6197e2e..10fec57 100644 --- a/compiler/src/CFCC.c +++ b/compiler/src/CFCC.c @@ -92,7 +92,8 @@ CFCC_write_man_pages(CFCC *self) { size_t num_classes = 0; for (size_t i = 0; ordered[i] != NULL; i++) { CFCClass *klass = ordered[i]; - if (!CFCClass_included(klass)) { ++num_classes; } + if (!CFCClass_needs_documentation(klass)) { continue; } + ++num_classes; } char **man_pages = (char**)CALLOCATE(num_classes, sizeof(char*)); @@ -101,7 +102,7 @@ CFCC_write_man_pages(CFCC *self) { // system. for (size_t i = 0, j = 0; ordered[i] != NULL; i++) { CFCClass *klass = ordered[i]; - if (CFCClass_included(klass)) { continue; } + if (!CFCClass_needs_documentation(klass)) { continue; } char *man_page = CFCCMan_create_man_page(klass); man_pages[j++] = man_page; @@ -114,10 +115,9 @@ CFCC_write_man_pages(CFCC *self) { // Write out any man pages that have changed. for (size_t i = 0, j = 0; ordered[i] != NULL; i++) { CFCClass *klass = ordered[i]; - if (CFCClass_included(klass)) { continue; } + if (!CFCClass_needs_documentation(klass)) { continue; } char *raw_man_page = man_pages[j++]; - if (!raw_man_page) { continue; } char *man_page = CFCUtil_sprintf("%s%s%s", self->man_header, raw_man_page, self->man_footer); http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2a44a5b3/compiler/src/CFCCHtml.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCCHtml.c b/compiler/src/CFCCHtml.c index e527c53..6d5f908 100644 --- a/compiler/src/CFCCHtml.c +++ b/compiler/src/CFCCHtml.c @@ -268,9 +268,7 @@ CFCCHtml_write_html_docs(CFCCHtml *self) { for (size_t i = 0; ordered[i] != NULL; i++) { CFCClass *klass = ordered[i]; - if (CFCClass_included(klass) || !CFCClass_public(klass)) { - continue; - } + if (!CFCClass_needs_documentation(klass)) { continue; } const char *class_name = CFCClass_get_name(klass); char *path = CFCUtil_global_replace(class_name, "::", CHY_DIR_SEP); @@ -341,6 +339,7 @@ S_create_index_doc(CFCCHtml *self, CFCClass **classes, CFCDocument **docs) { } // Compile class lists per parcel. + // TODO: Sort parcels. Don't derive filename from random parcel. char *class_lists = CFCUtil_strdup(""); char *parcel_names = CFCUtil_strdup(""); @@ -348,7 +347,9 @@ S_create_index_doc(CFCCHtml *self, CFCClass **classes, CFCDocument **docs) { for (size_t i = 0; parcels[i]; i++) { CFCParcel *parcel = parcels[i]; - if (CFCParcel_included(parcel)) { continue; } + if (CFCParcel_included(parcel) || !CFCParcel_is_installed(parcel)) { + continue; + } const char *prefix = CFCParcel_get_prefix(parcel); const char *parcel_name = CFCParcel_get_name(parcel); http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2a44a5b3/compiler/src/CFCCMan.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCCMan.c b/compiler/src/CFCCMan.c index 771d410..b271702 100644 --- a/compiler/src/CFCCMan.c +++ b/compiler/src/CFCCMan.c @@ -77,8 +77,6 @@ S_man_escape(const char *content); char* CFCCMan_create_man_page(CFCClass *klass) { - if (!CFCClass_public(klass)) { return NULL; } - const char *class_name = CFCClass_get_name(klass); // Create NAME. http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2a44a5b3/compiler/src/CFCClass.c ---------------------------------------------------------------------- diff --git a/compiler/src/CFCClass.c b/compiler/src/CFCClass.c index ea39848..1fb2041 100644 --- a/compiler/src/CFCClass.c +++ b/compiler/src/CFCClass.c @@ -887,6 +887,13 @@ CFCClass_abstract(CFCClass *self) { return self->is_abstract; } +int +CFCClass_needs_documentation(CFCClass *self) { + return CFCClass_public(self) + && !CFCClass_included(self) + && CFCParcel_is_installed(self->parcel); +} + const char* CFCClass_get_struct_sym(CFCClass *self) { return self->struct_sym; http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2a44a5b3/compiler/src/CFCClass.h ---------------------------------------------------------------------- diff --git a/compiler/src/CFCClass.h b/compiler/src/CFCClass.h index 91fa0cf..bf86f61 100644 --- a/compiler/src/CFCClass.h +++ b/compiler/src/CFCClass.h @@ -255,6 +255,9 @@ CFCClass_inert(CFCClass *self); int CFCClass_abstract(CFCClass *self); +int +CFCClass_needs_documentation(CFCClass *self); + const char* CFCClass_get_struct_sym(CFCClass *self);