+struct func_line {
+ long len;
+ char buf[80];
+};
+
+static void get_func_line(xdfenv_t *xe, xdemitconf_t const *xecfg,
+ struct func_line *func_line, long start, long limit)
+{
+ find_func_t ff = xecfg->find_func ? xecfg->find_func : def_ff;
+ long l, size = sizeof(func_line->buf);
+ char *buf = func_line->buf;
+
+ for (l = start; l > limit && 0 <= l; l--) {
+ const char *rec;
+ long reclen = xdl_get_rec(&xe->xdf1, l, &rec);
+ long len = ff(rec, reclen, buf, size, xecfg->find_func_priv);
+ if (len >= 0) {
+ func_line->len = len;
+ break;
+ }
+ }
+}
+