Get around a bug on skip-chars-forward.
(ebnf-8-bit-chars): New var for bug fix. (ebnf-string): Bug fix.
This commit is contained in:
parent
8dd095ee45
commit
5268b4422d
1 changed files with 14 additions and 1 deletions
|
@ -4996,12 +4996,25 @@ Otherwise, it is treated as an empty string."
|
|||
(point))))
|
||||
|
||||
|
||||
;; to avoid a bug of `skip-chars-forward' on version 20.4.1, that is, it
|
||||
;; doesn't accept the range "\240-\377", but it accepts the character sequence
|
||||
;; from \240 to \377. It seems that version 20.7 has the same problem.
|
||||
(defconst ebnf-8-bit-chars
|
||||
(let ((char ?\240)
|
||||
str)
|
||||
(while (<= char ?\377)
|
||||
(setq str (concat str (char-to-string char))
|
||||
char (1+ char)))
|
||||
str))
|
||||
|
||||
|
||||
(defun ebnf-string (chars eos-char kind)
|
||||
(forward-char)
|
||||
(buffer-substring-no-properties
|
||||
(point)
|
||||
(progn
|
||||
(skip-chars-forward (concat chars "\240-\377") ebnf-limit)
|
||||
;;(skip-chars-forward (concat chars "\240-\377") ebnf-limit)
|
||||
(skip-chars-forward (concat chars ebnf-8-bit-chars) ebnf-limit)
|
||||
(if (or (eobp) (/= (following-char) eos-char))
|
||||
(error "Illegal %s: missing `%c'." kind eos-char)
|
||||
(forward-char)
|
||||
|
|
Loading…
Add table
Reference in a new issue