Mercurial > public > mercurial-scm > hg
changeset 33815:97ee669f1f6d
i18n: make hggettext use original docstring to compute offset
Before this patch, hggettext uses __doc__ of each functions to compute
offset of document text.
But __doc__ of many functions is already modified by decorators in
registrar (e.g. @templatekeyword adds ":NAME: " prefix to it), and
hggettext can not find it out in original source.
This causes many "unknown offset in ..." warning at "make update-pot",
and leaving them might cause overlooking serious problems.
This patch makes hggettext use original docstring, which decorators in
registrar save into _origdoc, to compute offset.
Even after this patch, there are still a few "unknown offset in ..."
warning at "make update-pot" for specific reasons. These will be fixed
later one by one.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Wed, 02 Aug 2017 01:03:20 +0900 |
parents | 81b12f69ef5b |
children | 1775f93da25c |
files | i18n/hggettext |
diffstat | 1 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/i18n/hggettext Fri Aug 11 14:21:49 2017 +0200 +++ b/i18n/hggettext Wed Aug 02 01:03:20 2017 +0900 @@ -122,9 +122,14 @@ name = "%s.%s" % (actualpath, func.__name__) lineno = inspect.getsourcelines(func)[1] doc = func.__doc__ + origdoc = getattr(func, '_origdoc', '') if rstrip: doc = doc.rstrip() - lineno += offset(src, doc, name, 1) + origdoc = origdoc.rstrip() + if origdoc: + lineno += offset(src, origdoc, name, 1) + else: + lineno += offset(src, doc, name, 1) print(poentry(actualpath, lineno, doc))