Stefan Monnier schrieb am Do., 28. Sep. 2017 um 23:22 Uhr: > >> >>> - (or (char-after (point)) :json-eof)) > >> >> I wonder why it used :json-eof instead of using nil ? > >> >> Any idea? > >> > Not sure--it has been there since json.el was added to Emacs. > >> Then why use 0 now instead of nil? > > Because `following-char' returns 0 at EOB. "At the end of the buffer or > > accessible region, return 0." > > But it also returns 0 in other cases. E.g. if you had changed > > (or (char-after (point)) :json-eof) > to > (char-after) > > it would give you nil at EOB (instead of 0). > > Agreed. I'm wondering what the purpose of `following-char' is. Even in the rare cases where you want to treat EOB and a following null character identically it would be cleaner to write (or (char-after) 0).