Mercurial > emacs
changeset 30927:5c0b3d6959c4
(build_annotations): Add a comment explaining the
return value of format-annotate-function. Replace a spurios call
to Flength with a CONSP test. Call format-annotate-function with
a fifth arg specifying how many times the function has been called
in a row, to let it choose temporary buffers appropriately.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Thu, 17 Aug 2000 20:25:50 +0000 |
parents | ca900f999e04 |
children | 9747d7fb3ba9 |
files | src/fileio.c |
diffstat | 1 files changed, 12 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fileio.c Thu Aug 17 20:24:27 2000 +0000 +++ b/src/fileio.c Thu Aug 17 20:25:50 2000 +0000 @@ -4889,6 +4889,7 @@ Lisp_Object p, res; struct gcpro gcpro1, gcpro2; Lisp_Object original_buffer; + int i; XSETBUFFER (original_buffer, current_buffer); @@ -4921,21 +4922,26 @@ p = Vauto_save_file_format; else p = current_buffer->file_format; - while (!NILP (p)) + for (i = 0; !NILP (p); p = Fcdr (p), ++i) { struct buffer *given_buffer = current_buffer; + Vwrite_region_annotations_so_far = annotations; - res = call4 (Qformat_annotate_function, Fcar (p), start, end, - original_buffer); + + /* Value is either a list of annotations or nil if the function + has written annotations to a temporary buffer, which is now + current. */ + res = call5 (Qformat_annotate_function, Fcar (p), start, end, + original_buffer, make_number (i)); if (current_buffer != given_buffer) { XSETFASTINT (start, BEGV); XSETFASTINT (end, ZV); annotations = Qnil; } - Flength (res); - annotations = merge (annotations, res, Qcar_less_than_car); - p = Fcdr (p); + + if (CONSP (res)) + annotations = merge (annotations, res, Qcar_less_than_car); } /* At last, do the same for the function PRE_WRITE_CONVERSION