* buffer.h (struct buffer_text): New field chars_modiff.
authorChong Yidong <cyd@stupidchicken.com>
Fri, 1 Sep 2006 13:28:13 +0000 (13:28 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Fri, 1 Sep 2006 13:28:13 +0000 (13:28 +0000)
commit3e1451520bdae2a79247347e66724306692533f6
treee652c2d5f077b41d82c14d815d75531a96a546d5
parentd178a6ebf9c714f2360997d16746d8c81f04f07b
* buffer.h (struct buffer_text): New field chars_modiff.
        (CHARS_MODIFF, BUF_CHARS_MODIFF): New macros.
        * buffer.c (Fbuffer_chars_modified_tick): New function returning
        value of BUF_CHARS_MODIFF.
        (syms_of_buffer): Defsubr it.
        (Fget_buffer_create): Initialize BUF_CHARS_MODIFF.
        * insdel.c (modify_region): New argument preserve_chars_modiff.
        Set CHARS_MODIFF to MODIFF provided preserve_chars_modiff is zero.
        (insert_1_both, insert_from_string_1, insert_from_buffer_1)
        (adjust_after_replace, adjust_after_replace_noundo)
        (replace_range, replace_range_2, del_range_2): Reset CHARS_MODIFF.
        * lisp.h (modify_region): Add fourth argument in extern.
        * casefiddle.c (casify_region): Call modify_region with fourth
        argument zero to assert that CHARS_MODIFF is updated.
        * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
        (Ftranspose_regions): Likewise.
        * textprop.c (Fadd_text_properties, Fset_text_properties)
        (Fremove_text_properties, Fremove_list_of_text_properties):
        Call modify_region with fourth argument 1 to avoid that
        CHARS_MODIFF is updated.
src/ChangeLog
src/buffer.c
src/buffer.h
src/casefiddle.c
src/editfns.c
src/insdel.c
src/lisp.h
src/textprop.c