comparison src/insdel.c @ 1333:1b0339b048ce

[xemacs-hg @ 2003-03-02 09:38:37 by ben] To: xemacs-patches@xemacs.org PROBLEMS: Include nt/PROBLEMS and update. Add note about incremental linking badness. cmdloop.el, custom.el, dumped-lisp.el, files.el, keydefs.el, keymap.el, lisp-mode.el, make-docfile.el, replace.el, simple.el, subr.el, view-less.el, wid-edit.el: Lots of syncing with FSF 21.2. Use if-fboundp in wid-edit.el. New file newcomment.el from FSF. internals/internals.texi: Fix typo. (Build-Time Dependencies): New node. PROBLEMS: Delete. config.inc.samp, xemacs.mak: Eliminate HAVE_VC6, use SUPPORT_EDIT_AND_CONTINUE in its place. No incremental linking unless SUPPORT_EDIT_AND_CONTINUE, since it can cause nasty crashes in pdump. Put warnings about this in config.inc.samp. Report the full compile flags used for src and lib-src in the Installation output. alloc.c, lisp.h, ralloc.c, regex.c: Use ALLOCA() in regex.c to avoid excessive stack allocation. Also fix subtle problem with REL_ALLOC() -- any call to malloc() (direct or indirect) may relocate rel-alloced data, causing buffer text to shift. After any such call, regex must update all its pointers to such data. Add a system, when ERROR_CHECK_MALLOC, whereby regex.c indicates all the places it is prepared to handle malloc()/realloc()/free(), and any calls anywhere in XEmacs outside of this will trigger an abort. alloc.c, dialog-msw.c, eval.c, event-stream.c, general-slots.h, insdel.c, lisp.h, menubar-msw.c, menubar-x.c: Change *run_hook*_trapping_problems to take a warning class, not a string. Factor out code to issue warnings, add flag to call_trapping_problems() to postpone warning issue, and make *run_hook*_trapping_problems issue their own warnings tailored to the hook, postponed in the case of safe_run_hook_trapping_problems() so that the appropriate message can be issued about resetting to nil only when not `quit'. Make record_unwind_protect_restoring_int() non-static. dumper.c: Issue notes about incremental linking problems under Windows. fileio.c: Mule-ize encrypt/decrypt-string code. text.h: Spacing changes.
author ben
date Sun, 02 Mar 2003 09:38:54 +0000
parents 804517e16990
children a8d8f419b459
comparison
equal deleted inserted replaced
1332:6aa23bb3da6b 1333:1b0339b048ce
1 /* Buffer insertion/deletion and gap motion for XEmacs. 1 /* Buffer insertion/deletion and gap motion for XEmacs.
2 Copyright (C) 1985, 1986, 1991, 1992, 1993, 1994, 1995 2 Copyright (C) 1985, 1986, 1991, 1992, 1993, 1994, 1995
3 Free Software Foundation, Inc. 3 Free Software Foundation, Inc.
4 Copyright (C) 1995 Sun Microsystems, Inc. 4 Copyright (C) 1995 Sun Microsystems, Inc.
5 Copyright (C) 2001, 2002 Ben Wing. 5 Copyright (C) 2001, 2002, 2003 Ben Wing.
6 6
7 This file is part of XEmacs. 7 This file is part of XEmacs.
8 8
9 XEmacs is free software; you can redistribute it and/or modify it 9 XEmacs is free software; you can redistribute it and/or modify it
10 under the terms of the GNU General Public License as published by the 10 under the terms of the GNU General Public License as published by the
734 int speccount = specpdl_depth (); 734 int speccount = specpdl_depth ();
735 record_unwind_protect (first_change_hook_restore, buffer); 735 record_unwind_protect (first_change_hook_restore, buffer);
736 set_buffer_internal (buf); 736 set_buffer_internal (buf);
737 in_first_change = 1; 737 in_first_change = 1;
738 run_hook_trapping_problems 738 run_hook_trapping_problems
739 (0, Qfirst_change_hook, 739 (Qchange, Qfirst_change_hook,
740 INHIBIT_EXISTING_PERMANENT_DISPLAY_OBJECT_DELETION); 740 INHIBIT_EXISTING_PERMANENT_DISPLAY_OBJECT_DELETION);
741 unbind_to (speccount); 741 unbind_to (speccount);
742 } 742 }
743 } 743 }
744 } 744 }
805 /* Obsolete, for compatibility */ 805 /* Obsolete, for compatibility */
806 || !NILP (symbol_value_in_buffer (Qbefore_change_function, buffer))) 806 || !NILP (symbol_value_in_buffer (Qbefore_change_function, buffer)))
807 { 807 {
808 set_buffer_internal (buf); 808 set_buffer_internal (buf);
809 va_run_hook_with_args_trapping_problems 809 va_run_hook_with_args_trapping_problems
810 (0, Qbefore_change_functions, 2, 810 (Qchange, Qbefore_change_functions, 2,
811 make_int (start), make_int (end), 811 make_int (start), make_int (end),
812 INHIBIT_EXISTING_PERMANENT_DISPLAY_OBJECT_DELETION); 812 INHIBIT_EXISTING_PERMANENT_DISPLAY_OBJECT_DELETION);
813 /* Obsolete, for compatibility */ 813 /* Obsolete, for compatibility */
814 va_run_hook_with_args_trapping_problems 814 va_run_hook_with_args_trapping_problems
815 (0, Qbefore_change_function, 2, 815 (Qchange, Qbefore_change_function, 2,
816 make_int (start), make_int (end), 816 make_int (start), make_int (end),
817 INHIBIT_EXISTING_PERMANENT_DISPLAY_OBJECT_DELETION); 817 INHIBIT_EXISTING_PERMANENT_DISPLAY_OBJECT_DELETION);
818 } 818 }
819 } 819 }
820 820
894 { 894 {
895 set_buffer_internal (buf); 895 set_buffer_internal (buf);
896 /* The actual after-change functions take slightly 896 /* The actual after-change functions take slightly
897 different arguments than what we were passed. */ 897 different arguments than what we were passed. */
898 va_run_hook_with_args_trapping_problems 898 va_run_hook_with_args_trapping_problems
899 (0, Qafter_change_functions, 3, 899 (Qchange, Qafter_change_functions, 3,
900 make_int (start), make_int (new_end), 900 make_int (start), make_int (new_end),
901 make_int (orig_end - start), 901 make_int (orig_end - start),
902 INHIBIT_EXISTING_PERMANENT_DISPLAY_OBJECT_DELETION); 902 INHIBIT_EXISTING_PERMANENT_DISPLAY_OBJECT_DELETION);
903 /* Obsolete, for compatibility */ 903 /* Obsolete, for compatibility */
904 va_run_hook_with_args_trapping_problems 904 va_run_hook_with_args_trapping_problems
905 (0, Qafter_change_function, 3, 905 (Qchange, Qafter_change_function, 3,
906 make_int (start), make_int (new_end), 906 make_int (start), make_int (new_end),
907 make_int (orig_end - start), 907 make_int (orig_end - start),
908 INHIBIT_EXISTING_PERMANENT_DISPLAY_OBJECT_DELETION); 908 INHIBIT_EXISTING_PERMANENT_DISPLAY_OBJECT_DELETION);
909 } 909 }
910 } 910 }