You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2013/05/11 17:22:12 UTC
[lucy-commits] [2/5] git commit: refs/heads/master - Omit header for empty man page
sections
Omit header for empty man page sections
Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/cbddfc10
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/cbddfc10
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/cbddfc10
Branch: refs/heads/master
Commit: cbddfc10e023a57d105049cac840c4af70111c9c
Parents: d20b08d
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sat May 11 11:30:02 2013 +0200
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sat May 11 16:34:56 2013 +0200
----------------------------------------------------------------------
clownfish/compiler/src/CFCCClass.c | 83 +++++++++++++++++++++++--------
1 files changed, 62 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucy/blob/cbddfc10/clownfish/compiler/src/CFCCClass.c
----------------------------------------------------------------------
diff --git a/clownfish/compiler/src/CFCCClass.c b/clownfish/compiler/src/CFCCClass.c
index 3fa13da..da882ab 100644
--- a/clownfish/compiler/src/CFCCClass.c
+++ b/clownfish/compiler/src/CFCCClass.c
@@ -27,9 +27,15 @@
#include "CFCUtil.h"
static char*
+S_man_create_name(CFCClass *klass);
+
+static char*
S_man_create_synopsis(CFCClass *klass);
static char*
+S_man_create_description(CFCClass *klass);
+
+static char*
S_man_create_functions(CFCClass *klass);
static char*
@@ -71,20 +77,15 @@ char*
CFCCClass_create_man_page(CFCClass *klass) {
const char *class_name = CFCClass_get_class_name(klass);
- CFCDocuComment *docucom = CFCClass_get_docucomment(klass);
- if (!docucom) { return NULL; }
-
- // Get the class's brief description.
- const char *raw_brief = CFCDocuComment_get_brief(docucom);
- char *brief = S_man_escape_content(raw_brief);
-
- // Get the class's long description.
- const char *raw_description = CFCDocuComment_get_long(docucom);
- char *description = S_man_escape_content(raw_description);
+ // Create NAME.
+ char *name = S_man_create_name(klass);
// Create SYNOPSIS.
char *synopsis = S_man_create_synopsis(klass);
+ // Create DESCRIPTION.
+ char *description = S_man_create_description(klass);
+
// Create CONSTRUCTORS.
char *functions_man = S_man_create_functions(klass);
@@ -111,22 +112,17 @@ CFCCClass_create_man_page(CFCClass *klass) {
".\\\" See the License for the specific language governing permissions and\n"
".\\\" limitations under the License.\n"
".TH %s 3\n"
- ".SH NAME\n"
- "%s - %s\n"
"%s"
- ".SH DESCRIPTION\n"
- "%s\n"
+ "%s"
+ "%s"
"%s"
"%s"
"%s";
char *man_page
- = CFCUtil_sprintf(pattern, class_name, class_name, brief, synopsis,
- description, functions_man, methods_man,
- inheritance);
+ = CFCUtil_sprintf(pattern, class_name, name, synopsis, description,
+ functions_man, methods_man, inheritance);
- FREEMEM(brief);
FREEMEM(synopsis);
- FREEMEM(description);
FREEMEM(functions_man);
FREEMEM(methods_man);
FREEMEM(inheritance);
@@ -135,20 +131,61 @@ CFCCClass_create_man_page(CFCClass *klass) {
}
static char*
+S_man_create_name(CFCClass *klass) {
+ char *result = CFCUtil_strdup(".SH NAME\n");
+ result = CFCUtil_cat(result, CFCClass_get_class_name(klass), NULL);
+
+ CFCDocuComment *docucom = CFCClass_get_docucomment(klass);
+ if (docucom) {
+ const char *raw_brief = CFCDocuComment_get_brief(docucom);
+ if (raw_brief && raw_brief[0] != '\0') {
+ char *brief = S_man_escape_content(raw_brief);
+ result = CFCUtil_cat(result, " - ", brief, NULL);
+ FREEMEM(brief);
+ }
+ }
+
+ result = CFCUtil_cat(result, "\n", NULL);
+
+ return result;
+}
+
+static char*
S_man_create_synopsis(CFCClass *klass) {
CHY_UNUSED_VAR(klass);
return CFCUtil_strdup("");
}
static char*
+S_man_create_description(CFCClass *klass) {
+ char *result = CFCUtil_strdup("");
+
+ CFCDocuComment *docucom = CFCClass_get_docucomment(klass);
+ if (!docucom) { return result; }
+
+ const char *raw_description = CFCDocuComment_get_long(docucom);
+ if (!raw_description || raw_description[0] == '\0') { return result; }
+
+ char *description = S_man_escape_content(raw_description);
+ result = CFCUtil_cat(result, ".SH DESCRIPTION\n", description, "\n", NULL);
+ FREEMEM(description);
+
+ return result;
+}
+
+static char*
S_man_create_functions(CFCClass *klass) {
CFCFunction **functions = CFCClass_functions(klass);
- char *result = CFCUtil_strdup(".SH FUNCTIONS\n");
+ char *result = CFCUtil_strdup("");
for (int func_num = 0; functions[func_num] != NULL; func_num++) {
CFCFunction *func = functions[func_num];
if (!CFCFunction_public(func)) { continue; }
+ if (result[0] == '\0') {
+ result = CFCUtil_cat(result, ".SH FUNCTIONS\n", NULL);
+ }
+
const char *micro_sym = CFCFunction_micro_sym(func);
const char *full_func_sym = CFCFunction_full_func_sym(func);
@@ -164,12 +201,16 @@ S_man_create_functions(CFCClass *klass) {
static char*
S_man_create_methods(CFCClass *klass) {
CFCMethod **fresh_methods = CFCClass_fresh_methods(klass);
- char *result = CFCUtil_strdup(".SH METHODS\n");
+ char *result = CFCUtil_strdup("");
for (int meth_num = 0; fresh_methods[meth_num] != NULL; meth_num++) {
CFCMethod *method = fresh_methods[meth_num];
if (!CFCMethod_public(method)) { continue; }
+ if (result[0] == '\0') {
+ result = CFCUtil_cat(result, ".SH METHODS\n", NULL);
+ }
+
const char *macro_sym = CFCMethod_get_macro_sym(method);
char *full_method_sym = CFCMethod_full_method_sym(method, NULL);