|Subject:||bug#39911: 27.0.90; error in wisent-total-conflicts if no source filename|
|Date:||Wed, 4 Mar 2020 09:23:36 -0800|
This bug was detected while running docker.el and other packages that depend on tablist . Tablist is an extension of tabulated-list-mode that provides the ability to filter the tabulated list via an _expression_ language. I am not the author of tablist however the author is aware of this issue.
In 27.0.90, tablist is now giving an error when entering its _expression_ editor. In the debugger I traced the error to wisent-total-conflicts in lisp/cedet/semantic/wisent/comp.el line 2273, in commit 390b4bc1e25fe691548d7ec982eb2f7027fe26a3 . That commit introduced a mechanism to ignore “expected conflicts” via a symbol whose name is constructed on the fly like this:
(replace-regexp-in-string "\\.el$" "" src)
However, this code doesn’t handle the case where the filename “src” is nil.
To reproduce the issue, compile a grammar like this:
;; Use lowercase for better looking error messages.
(operand unary-operator binary-operator or and not)
;; terminal associativity & precedence
((?\( ?\)) nil)
((operand) $1) ;;Named filter
((operand binary-operator operand) `(,(intern $2) ,$1 ,$3))
((unary-operator operand) `(,(intern $1) ,$2))
((not filter) `(not ,$2))
((filter and filter) `(and ,$1 ,$3))
((filter or filter) `(or ,$1 ,$3))
((?\( filter ?\)) $2))))
;; error => “replace-regexp-in-string: Wrong type argument: arrayp, nil”
|[Prev in Thread]||Current Thread||[Next in Thread]|