Hi Arash,

I noticed some of your recent commits broke compatibility with emacs 26
and 27.

On the current master branch, "gmake EMACS=emacs-26.1" (or 27.1) gives
----------------------------------------------------------------------
In end of data:
latex.el:9045:1:Warning: the following functions are not known to be defined:
    string-trim, always

...
In end of data:
style/natbib.el:200:1:Warning: the function ‘string-empty-p’ is not known to
    be defined.

----------------------------------------------------------------------
(1) `string-trim' and `string-empty-p'
In emacs 26 and 27, `string-trim' and `string-empty-p' are in subr-x.el,
so it seems that we need `(require 'subr-x)'. (On the other hand, they
are available in subr.el and simple.el in emacs 29. So maybe
(unless (and (fboundp 'string-trim)
             (fboundp 'string-empty-p))
  (require 'subr-x))
or something like it?)

(2) `always'
According to NEWS.28, `always' was first introduced in emacs 28. So we
have to replace it with lambda or compatibility function like
(defun TeX-always (&rest _)
  t)

In addition,

> +      (cl-letf (((symbol-function 'y-or-n-p) #'always))

it seems to me that `cl-flet' suits better than `cl-letf' here.

(By the way, what is mystery to me is that "gmake EMACS=emacs-26.1"
gives
----------------------------------------------------------------------
In TeX-current-defun-name:
tex.el:6770:56:Warning: reference to free variable ‘LaTeX-section-label’
----------------------------------------------------------------------
while emacs 27 and later don't. It seems that emacs 27 and later load
latex.el before they compile tex.el, but I don't see the reason why
emacs 26 doesn't then...)

Regards,
Ikumi Keita
#StandWithUkraine #StopWarInUkraine

Reply via email to