diff options
author | Lauro Moura <lauromoura@expertisesolutions.com.br> | 2019-10-07 10:51:36 +0200 |
---|---|---|
committer | Xavi Artigas <xavierartigas@yahoo.es> | 2019-10-09 16:18:30 +0200 |
commit | 86191b02c78348608652fcbd3c834060815107a3 (patch) | |
tree | 0fdc21b28988c6e4db0011c5053b173a75fb7967 | |
parent | cbe3c944df8f51df45734900a15e86cd45f50178 (diff) | |
download | efl-86191b02c78348608652fcbd3c834060815107a3.tar.gz |
eolian: Leave default text for libeolian users
Summary:
Instead of setting the default text at the library level, keep the
summary empty if nothing is provided.
The libeolian users them are free to check if the summary was actually
empty or a placeholder text was added.
ref T8309
Test Plan: Run attached tests
Reviewers: q66, segfaultxavi
Subscribers: cedric, brunobelo, #reviewers, felipealmeida, #committers
Tags: #efl
Maniphest Tasks: T8309
Differential Revision: https://phab.enlightenment.org/D10285
-rw-r--r-- | src/bin/eolian/docs.c | 16 | ||||
-rw-r--r-- | src/lib/eolian/eo_lexer.c | 2 | ||||
-rw-r--r-- | src/tests/eolian/data/docs_ref.h | 10 | ||||
-rw-r--r-- | src/tests/eolian/data/eo_docs.eo | 7 | ||||
-rw-r--r-- | src/tests/eolian/eolian_parsing.c | 9 |
5 files changed, 37 insertions, 7 deletions
diff --git a/src/bin/eolian/docs.c b/src/bin/eolian/docs.c index 31a80a28b6..c01508dab6 100644 --- a/src/bin/eolian/docs.c +++ b/src/bin/eolian/docs.c @@ -18,6 +18,8 @@ _indent_line(Eina_Strbuf *buf, int ind) #define DOC_LIMIT(ind) ((ind > DOC_LINE_TEST) ? (ind + DOC_LINE_OVER) \ : DOC_LINE_LIMIT) +#define SUMMARY_OR_DEFAULT(sum) (sum ? sum : "No description supplied.") + static void _generate_ref(const Eolian_State *state, const char *refn, Eina_Strbuf *wbuf) { @@ -385,6 +387,7 @@ _gen_doc_buf(const Eolian_State *state, const Eolian_Documentation *doc, if (!doc) return NULL; const char *sum = eolian_documentation_summary_get(doc); + sum = SUMMARY_OR_DEFAULT(sum); const char *desc = eolian_documentation_description_get(doc); const char *since = eolian_documentation_since_get(doc); @@ -549,7 +552,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, /* only summary, nothing else; generate standard brief doc */ if (!desc && !par && !vpar && !rdoc && (ftype == EOLIAN_METHOD || !pdoc)) { - _gen_doc_brief(state, sum ? sum : "No description supplied.", since, group, + _gen_doc_brief(state, SUMMARY_OR_DEFAULT(sum), since, group, NULL, indent, buf); return buf; } @@ -560,7 +563,7 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, curl += _indent_line(buf, indent); eina_strbuf_append(buf, " * @brief "); curl += sizeof(" * @brief ") - 1; - _append_section(state, sum ? sum : "No description supplied.", + _append_section(state, SUMMARY_OR_DEFAULT(sum), indent, curl, buf, wbuf); eina_strbuf_append_char(buf, '\n'); @@ -588,7 +591,8 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, const char *pdesc = eolian_documentation_description_get(pdoc); curl = _indent_line(buf, indent); eina_strbuf_append(buf, " * "); - _append_section(state, eolian_documentation_summary_get(pdoc), indent, + const char *psum = eolian_documentation_summary_get(pdoc); + _append_section(state, SUMMARY_OR_DEFAULT(psum), indent, curl + 3, buf, wbuf); eina_strbuf_append_char(buf, '\n'); if (pdesc) @@ -651,7 +655,8 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, { eina_strbuf_append_char(buf, ' '); curl += 1; - _append_section(state, eolian_documentation_summary_get(adoc), + const char *asum = eolian_documentation_summary_get(adoc); + _append_section(state, SUMMARY_OR_DEFAULT(asum), indent, curl, buf, wbuf); } @@ -684,7 +689,8 @@ eo_gen_docs_func_gen(const Eolian_State *state, const Eolian_Function *fid, curl = _indent_line(buf, indent); eina_strbuf_append(buf, " * @return "); curl += sizeof(" * @return ") - 1; - _append_section(state, eolian_documentation_summary_get(rdoc), indent, + const char *rsum = eolian_documentation_summary_get(rdoc); + _append_section(state, SUMMARY_OR_DEFAULT(rsum), indent, curl, buf, wbuf); eina_strbuf_append_char(buf, '\n'); if (since) diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c index ed165ee793..365ff34303 100644 --- a/src/lib/eolian/eo_lexer.c +++ b/src/lib/eolian/eo_lexer.c @@ -522,8 +522,6 @@ read_doc(Eo_Lexer *ls, Eo_Token *tok, int line, int column) if (eina_strbuf_length_get(rbuf)) doc->description = eina_stringshare_add(eina_strbuf_string_get(rbuf)); - if (!doc->summary) - doc->summary = eina_stringshare_add("No description supplied."); if (!doc->since && ls->klass && ls->klass->doc) doc->since = eina_stringshare_ref(ls->klass->doc->since); eina_strbuf_free(rbuf); diff --git a/src/tests/eolian/data/docs_ref.h b/src/tests/eolian/data/docs_ref.h index a5a92e6a4c..158b814ae0 100644 --- a/src/tests/eolian/data/docs_ref.h +++ b/src/tests/eolian/data/docs_ref.h @@ -132,6 +132,16 @@ EOAPI void eo_docs_prop_set(Eo *obj, int val); */ EOAPI int eo_docs_prop_get(const Eo *obj); +EOAPI void eo_docs_no_doc_meth(Eo *obj); + +/** No description supplied. + * + * @since 1.18 + * + * @ingroup Eo_Docs + */ +EOAPI void eo_docs_doc_with_empty_doc(Eo *obj); + EWAPI extern const Efl_Event_Description _EO_DOCS_EVENT_CLICKED; /** Event docs. diff --git a/src/tests/eolian/data/eo_docs.eo b/src/tests/eolian/data/eo_docs.eo index 1fe72df572..d42cdfcd95 100644 --- a/src/tests/eolian/data/eo_docs.eo +++ b/src/tests/eolian/data/eo_docs.eo @@ -78,6 +78,13 @@ class Eo_Docs { val: int; [[Value documentation.]] } } + + no_doc_meth { + } + + doc_with_empty_doc { + [[]] + } } events { clicked: void; [[Event docs.]] diff --git a/src/tests/eolian/eolian_parsing.c b/src/tests/eolian/eolian_parsing.c index d0dc4819d6..ac06f99eba 100644 --- a/src/tests/eolian/eolian_parsing.c +++ b/src/tests/eolian/eolian_parsing.c @@ -1263,6 +1263,15 @@ EFL_START_TEST(eolian_docs) "Event docs.")); fail_if(eolian_documentation_description_get(doc)); + fail_if(!(fid = eolian_class_function_by_name_get(class, "no_doc_meth", EOLIAN_METHOD))); + fail_if(!(fimp = eolian_function_implement_get(fid))); + fail_if((doc = eolian_implement_documentation_get(fimp, EOLIAN_METHOD))); + + fail_if(!(fid = eolian_class_function_by_name_get(class, "doc_with_empty_doc", EOLIAN_METHOD))); + fail_if(!(fimp = eolian_function_implement_get(fid))); + fail_if(!(doc = eolian_implement_documentation_get(fimp, EOLIAN_METHOD))); + fail_if(eolian_documentation_summary_get(doc)); + eolian_state_free(eos); } EFL_END_TEST |