extdiff: refactor closure of saved diff command as a top-level class
This allows us to collect __doc__ for translation.
i18n: use inspect.getsourcelines() to obtain lineno from func or class
Before, func must be a function object. I want to make it parse docstring
of classes, too.
chg: just take it as EOF if recv() returns 0
hgc->sockfd is a blocking stream socket. recv() should never return 0 other
than EOF.
See
4fc4b8cc9957 for the original problem.