# HG changeset patch # User FUJIWARA Katsunori # Date 2017-08-01 16:03:20 # Node ID 97ee669f1f6d785395dd1174e825f9a5a30f8acf # Parent 81b12f69ef5b10d2c5a5870eeab6c4c3d07e1a6d 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. diff --git a/i18n/hggettext b/i18n/hggettext --- a/i18n/hggettext +++ b/i18n/hggettext @@ -122,9 +122,14 @@ def docstrings(path): 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))