This question already has an answer here:

The following loop hangs my emacs (even when called with -q) to the point that I have to force quit it.

(let ((buffs (buffer-list)))
  (while buffs
    (delq (car buffs) buffs)
    (print (cadr buffs))))

I don't understand why this should happen, but is there something I can do to recover from a hanging Emacs?

marked as duplicate by Tyler, Community Oct 12 '16 at 12:35

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • My understanding of the word "crash" is "exiting badly" possibly with a segfault or something like that. Apparently this is not what you mean. – JeanPierre Oct 12 '16 at 10:13
  • You are right. Hanging is a better word. I'll edit – dangom Oct 12 '16 at 10:15

I guess since youre saving the result of buffer-list, buffs never evaluates to a falsy value. You should update the buffs variable by seting it to the return vaulue of your delq.

(setq buffs (delq (car buffs) buffs))

Not the answer you're looking for? Browse other questions tagged or ask your own question.