Why is "goto-line" in Emacs for interactive use only?

Viewed 3126

What problem can happen if the goto-line function is used in a non-interactive elisp program? Its docstring gives a warning saying that:

This function is usually the wrong thing to use in a Lisp program. What you probably want instead is something like:

(goto-char (point-min)) (forward-line (1- N))

Moreover, when I try to byte-compile-file my init file including goto-line, I get a unpleasant warning like this once again:

.emacs:170:19:Warning: `goto-line' used from Lisp code
That command is designed for interactive use only

Is using goto-line in a non-interactive program really so dangerous? Relatedly, why is the suggested forward-line solution preferable?

2 Answers
Related