(truncate_undo_list): Return void.
Take just one argument, the buffer. Make it current, and inhibit recursive GC. Access and update the undo list directly; return void. Refer to the undo...limit variables directly. Test undo_outer_limit only after counting the whole current command. When it's exceeded, call the function in undo-outer-limit-function. (undo_limit, undo_strong_limit, undo_outer_limit): Moved from alloc.c. (Vundo_outer_limit_function): New variable. (syms_of_undo): Define undo-limit, undo-strong-limit and undo-outer-limit here, and undo-outer-limit-function. Doc fixes.
Showing with 119 additions and 35 deletions