1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-08 15:35:02 +00:00
Commit Graph

168 Commits

Author SHA1 Message Date
Juanma Barranquero
aed1337830 Use macro SPECPDL_INDEX. 2002-07-11 14:18:02 +00:00
Kim F. Storm
9dde4e0c8f (insert_1_both, insert_from_string_1)
(insert_from_buffer_1): Recalculate END_UNCHANGED in case the
insert happened in the end_unchanged region.  Otherwise, the
redisplay may be confused and duplicate the last line in the
buffer [seen after save-buffer when require-final-newline==t].
2002-06-13 22:07:13 +00:00
Kim F. Storm
73df3b72f6 (make_gap_smaller): Preserve BEG_UNCHANGED during gap
reduction.  This fixes a display problem where stray newlines were
inserted in the window (corrected by C-l).  Clarified code (IMHO).
2002-02-09 22:58:25 +00:00
Richard M. Stallman
b58e3ca17e (adjust_after_replace_noundo): New function. 2002-01-11 21:29:13 +00:00
Andreas Schwab
e17144de55 (make_gap_larger): Make sure buffer size does not overflow range of int. 2002-01-06 20:47:00 +00:00
Andrew Innes
d77fbc162b (make_gap) [DOUG_LEA_MALLOC]: Call make_gap_smaller if
arg is negative.
2001-12-11 21:13:53 +00:00
Andrew Innes
8af5b8e71f (make_gap_larger): New function.
(make_gap_smaller): New function.
(make_gap) [USE_MMAP_FOR_BUFFERS || REL_ALLOC]: Call
make_gap_smaller if arg is negative.
2001-12-05 21:37:11 +00:00
Pavel Janík
335c5470b5 Change doc-string comments to new style' [w/doc:' keyword]. 2001-11-13 07:48:37 +00:00
Richard M. Stallman
048a0fbbb1 (replace_range): Use adjust_markers_for_replace
instead of adjust_markers_for_delete and adjust_markers_for_insert.
2001-11-11 20:04:45 +00:00
Gerd Moellmann
da80a8d55e (insert_1_both): Do nothing if NCHARS == 0. 2001-10-26 12:02:42 +00:00
Gerd Moellmann
32c82ac0a1 Don't define min/max. 2001-10-08 08:08:08 +00:00
Gerd Moellmann
319f0b4f5f (make_gap): Use MOST_POSITIVE_FIXNUM. 2001-10-06 23:46:55 +00:00
Gerd Moellmann
27ea0af23c (Qinhibit_modification_hooks): New variable.
(syms_of_insdel): Initialize and staticpro it.
2001-09-11 12:31:56 +00:00
Gerd Moellmann
460e6bae47 (signal_before_change, signal_after_change): Consider a
local change hook which changes the buffer.
2001-05-16 16:07:20 +00:00
Gerd Moellmann
0a41199524 (del_range_1, del_range_byte, del_range_both): Handle
case that TO ends up beyond ZV after running before-change-functions.
2001-02-13 16:29:20 +00:00
Eli Zaretskii
87ba0a6bc7 (make_gap): Remove unused variable `result'. 2001-01-02 14:10:36 +00:00
Miles Bader
00de298745 (adjust_markers_for_delete): Handle before-insertion markers correctly. 2000-10-18 06:20:27 +00:00
Gerd Moellmann
6bbd7a2959 Avoid some more compiler warnings. 2000-09-21 20:54:57 +00:00
Gerd Moellmann
71a7bfa7ee (make_gap): Use enlarge_buffer_text. 2000-09-14 15:13:29 +00:00
Dave Love
1675d08629 (signal_before_change, signal_after_change): Don't check
Vbefore_change_function, Vafter_change_function.
2000-06-02 12:42:54 +00:00
Kenichi Handa
adee4f912a (adjust_markers_for_replace): Fix previous change.
(adjust_after_replace): If PREV_TEXT is nil, call
adjust_markers_for_insert, not adjust_markers_for_replace.
2000-05-22 00:19:43 +00:00
Kenichi Handa
b16afa45bb (adjust_markers_for_record_delete): Deleted.
(adjust_markers_for_insert): Argument changed.  Caller changed.
(adjust_markers_for_replace): Likewise.
(ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
(copy_text): Delete unused local varialbe c_save.  For converting
to multibyte, be sure to make all 8-bit characters in valid
multibyte form.
(count_size_as_multibyte): Handle 8-bit characters correctly.
(insert_1_both, insert_from_string_1, insert_from_buffer_1,
adjust_after_replace, replace_range, del_range_2)
[BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
(insert_1_both, insert_from_string_1, insert_from_buffer_1,
adjust_after_replace, replace_range, del_range_2) Delete codes for
handling byte combining.
(adjust_before_replace): Deleted.
2000-05-20 00:01:34 +00:00
Gerd Moellmann
06d8227a86 (insert_from_buffer_1): Adjust FROM position by number
of inserted characters when BUF equals the current buffer, and PT
is in front of or equal to FROM.
2000-05-04 21:45:40 +00:00
Ken Raeburn
8801a864d2 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW, XSUBR, XBUFFER):
Verify correct object type before returning pointer, using eassert.
* frame.h (XFRAME): Likewise.

* buffer.c (Frename_buffer, Fset_buffer_multibyte,
swap_out_buffer_local_variables, Fmove_overlay): Don't apply XSYMBOL, XBUFFER,
etc, to values that may be nil or of the wrong type.
* data.c (set_internal): Likewise.
* dispextern.h (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P): Likewise.
* fileio.c (auto_save_1): Likewise.
* insdel.c (check_markers): Likewise.
* marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
* undo.c (record_insert): Likewise.
* vmsproc.c (child_sig): Likewise.
* window.c (unshow_buffer, window_loop): Likewise.
* xterm.c (x_erase_phys_cursor): Likewise.
2000-03-30 09:56:31 +00:00
Kenichi Handa
233cc02d54 (del_range_1): Call update_compositions.
(del_range_both): Call update_compositions just once..
2000-02-11 02:20:49 +00:00
Kenichi Handa
0ef71121ca (copy_text): Adjusted for the change of CHAR_STRING.
(insert_char): Likewise.
(insert): Call update_compositions.
(insert_and_inherit): Likewise.
(insert_before_markers): Likewise.
(insert_before_markers_and_inherit): Likewise.
(insert_from_string): Likewise.
(insert_from_string_before_markers): Likewise.
(insert_from_buffer): Likewise.
(replace_range): Likewise.
(count_combining_composition): Deleted.
(count_combining_before): Delete codes for a composite character.
(count_combining_after): Likewise.
(del_range_1): Call update_compositions.
(del_range_byte): Likewise.
(del_range_both): Likewise.
(Fcombine_after_change_execute): Likewise.
1999-12-15 00:13:49 +00:00
Stefan Monnier
7dae4502b6 * editfns.c (Fdelete_and_extract_region): New function.
(syms_of_editfns): register it.
* insdel.c (del_range): update del_range_1 call.
(del_range_1, del_range_2): Add a ret_string argument to
request that the deleted text be returned.
(del_range_byte, del_range_both): Update del_range_2 call.
* lisp.h (del_range_1, del_range_2): change prototype
* casefiddle.c (casify_region): Update del_range_1 call.
* coding.c (code_convert_region): Update del_range_2 call.
* fileio.c (Finsert_file_contents): Update del_range_2 call.
1999-12-07 04:42:40 +00:00
Eli Zaretskii
809f3d5188 (adjust_markers_for_delete): Fix last change. 1999-12-06 17:04:33 +00:00
Kenichi Handa
94ef31ccad (adjust_markers_for_delete): Make it non-static. 1999-12-06 04:47:25 +00:00
Gerd Moellmann
f2cab2ea4a (insert_1_both): Call set_text_properties with last
parameter nil so that no after changes will be signaled.
1999-11-26 12:07:04 +00:00
Gerd Moellmann
339ee9797d Remove USE_TEXT_PROPERTIES. 1999-11-11 11:45:06 +00:00
Paul Eggert
68c45bf065 Add support for large files, 64-bit Solaris, system locale codings.
* Makefile.in (emacs): Set the LC_ALL environment variable to "C"
when dumping, so that the dumped Emacs doesn't have stray locale info.
(dired.o): Depend on systime.h.
(editfns.o): Depend on coding.h.

* alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
Include <config.h> before any system include files.

* alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
xmenu.c, xterm.c:
Do not include <stdlib.h>, as <config.h> does this now.

* callproc.c (Fcall_process):
Synchronize messages locale before invoking strerror.
Decode resulting string with locale-coding-system.

* coding.c (Vlocale_coding_system): New var.
(syms_of_coding): Adjust to above change.
(emacs_strerror): New function.

* coding.h (emacs_strerror, Vlocale_coding_system): New decls.

* config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
HAVE_STRSIGNAL): New macros.
(BITS_PER_LONG): Default to 64 if _LP64 is defined.
<stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.

* dired.c: Include "systime.h".
(Ffile_attributes): Do not cast s.st_size to int; this loses
information if int is 32 bits but st_size and EMACS_INT are larger.
Treat large device numbers like large inode numbers.

* dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.

* editfns.c: Include coding.h.
(emacs_strftime): Remove decl.
(emacs_strftimeu): New decl.
(emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
Use emacs_strftimeu instead of emacs_strftime.
(Fformat_time_string): Convert format string using
Vlocale_coding_system, and convert result back.  Synchronize time
locale before invoking lower level function.  Invoke
emacs_memftimeu, passing ut, instead of emacs_memftime.

* emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
(Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
Vprevious_time_locale): New variables.
(main): Invoke setlocale early, so that initial error messages are
localized properly.  But skip locale-setting if LC_ALL is "C".
Fix up locale when it's safe to do so.
(fixup_locale): Moved here from xterm.c.
(synchronize_locale, synchronize_time_locale,
synchronize_messages_locale): New functions.
(syms_of_emacs): Accommodate above changes.

* fileio.c (report_file_error): Convert strerror output according
to Vlocale_coding_system.
(Finsert_file_contents): Check for arithmetic overflow in
computations that depend on file size.  Report IO errors
with emacs_strerror, not strerror.

* fns.c (Fgethash): Declare dflt parameter.

* gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
is defined; that's config.h's job.

* lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
default these values to long, BITS_PER_LONG, and unsigned long.
(VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
(PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
(code_convert_string_norecord, fixup_locale,
synchronize_messages_locale, synchronize_time_locale,
emacs_open, emacs_close, emacs_read, emacs_write): New decls.
All Emacs callers of open, close, read, write changed to use
emacs_open, emacs_close, emacs_read, emacs_write.

* lread.c (file_offset, file_tell): New macros.  All uses of ftell
changed to file_tell.
(saved_doc_string_position, prev_saved_doc_string_position): Now
of type file_offset.
(init_lread): Do not fix locale here; fixup_locale now does this.

* m/amdahl.h, s/usg5-4.h:
(NSIG): Remove.
(NSIG_MINIMUM): New macro.

* m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
s/umips.h, s/usg5-4.h:
(SIGIO): Do not undef.
(BROKEN_SIGIO): New macro.

* m/ustation.h:
(SIGTSTP): Do not undef.
(BROKEN_SIGTSTP): New macro.

* s/gnu-linux.h:
(SIGPOLL, SIGURG): Do not undef.
(BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.

* s/ptx4.h:
(SIGINFO): Do not undef.
(BROKEN_SIGINFO): New macros.

* m/delta.h, s/ptx.h, s/template.h: Doc fix.

* mktime.c, strftime.c: Update to glibc 2.1.2 version, with
some Emacs-related changes merged.

* print.c (float_to_string): Prepend "-" to representation of a
NaN if the NaN is negative.

* process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
(wait_reading_process_input): Use emacs_strerror, not strerror.

* process.c (status_message, sigchld_handler): Synchronize locale,
then use strsignal istead of sys_siglist.
* w32proc.c (sys_wait): Likewise.

* s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
s/usg5-2.h, s/usg5-3.h, s/xenix.h:
(open, close, read, write, INTERRUPTIBLE_OPEN,
INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.

* s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
* sysdep.c (sys_read, sys_write, read, write, sys_close, close,
sys_open, open): Remove.
(emacs_open, emacs_close, emacs_read, emacs_write): Always define;
the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
macros are no longer used.
(emacs_open): Renamed from sys_open.  Merge BSD4_1 version.
(emacs_close): Renamed from sys_close.
(emacs_read): Renamed from sys_read.
(emacs_write): Renamed from sys_write.
(sys_siglist): Do not declare if HAVE_STRSIGNAL.
(dup2): Do not print error on failure; the real dup2 doesn't.
(strsignal): New function, defined if !HAVE_STRSIGNAL.

* syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
is defined.
(SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
(NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
(strsignal): Declare if !HAVE_STRSIGNAL.

* unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
(ElfW): Define in terms of ElfExpandBitsW.

* w32proc.c (sys_siglist): Remove decl.

* xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
with ANSI C.
(display_string): Declare face_string_pos arg.

* xfns.c (Fx_show_tip): Declare timeout param.

* xterm.c: No need to include locale.h.
(x_alloc_lighter_color, x_setup_relief_color):
Pass arg as double, not float, for compatibility with ANSI C.
(fixup_locale): Move to emacs.c.
(x_term_init): Do not setlocale or fixup locale; the main program
does this now.
1999-10-19 07:25:11 +00:00
Gerd Moellmann
6021f7c517 (copy_text): Removed unused variables.
(count_combining_after, count_combining_after, insert_1_both,
insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
(adjust_after_replace, replace_range): Add parentheses to logical
expressions.  Remove unused variables.
(CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
expression.
1999-09-19 21:46:46 +00:00
Ken Raeburn
03699b140e Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member access. 1999-09-13 02:23:04 +00:00
Richard M. Stallman
a1628e9150 (del_range_1): Don't treat minibuffer prompt specially. 1999-09-12 17:29:24 +00:00
Richard M. Stallman
7baf49cf5e (syms_of_insdel): Define Lisp variable inhibit-modification-hooks. 1999-09-07 03:25:35 +00:00
Kenichi Handa
cae184f227 (count_combining_composition): New function.
(count_combining_before): Adjust the way to check byte-combining
possibility for the new handling of multibyte sequence.  Call
count_combining_composition for a composite character.
(count_combining_after): Likewise.
1999-09-03 01:28:42 +00:00
Gerd Moellmann
a50df55bb6 (gap_left): Use BUF_COMPUTE_UNCHANGED.
(gap_right): Ditto.
(modify_region): Ditto.
(gap_left): Compute beg/end_unchanged per buffer.
(gap_right): Ditto.
(adjust_after_replace): Likewise.
(replace_range, del_range_2, modify_region): Likewise.
1999-08-23 00:11:45 +00:00
Gerd Moellmann
4f13cc9959 Remove conditional compilation on NO_PROMPT_IN_BUFFER. 1999-08-21 19:29:47 +00:00
Dave Love
c4a10daf11 Use stdlib.h. 1999-08-18 13:10:52 +00:00
Andreas Schwab
534b98409f (insert_from_string_1): Check gap size against number
of outgoing bytes, not incoming bytes.
1999-08-04 11:26:17 +00:00
Gerd Moellmann
2e9f55fde2 (prepare_to_modify_buffer): Set windows_or_buffers_changed,
(del_range_1) [PROMPT_IN_BUFFER]: If start position
is less than mini-buffer prompt width, use prompt width as start.
1999-07-21 21:43:52 +00:00
Richard M. Stallman
c8a3c7eb27 (adjust_markers_for_replace): When doing an insertion
(replacing a region of zero length), handle markers at the
insertion point properly.
1999-02-18 05:40:34 +00:00
Kenichi Handa
9c36993afd (del_range_1): Call signal_after_change.
(del_range_byte): Likewise.
(del_range_both): Likewise.
(del_range_2): Don't call signal_after_change.
1999-01-11 11:42:52 +00:00
Eli Zaretskii
8cbf107d58 (copy_text, count_size_as_multibyte): Don't convert 7-bit ASCII characters via
nonascii-translation-table.
1998-12-21 16:13:57 +00:00
Karl Heuer
4468c4f1cf (insert_from_buffer_1): Properly count the size
of output from conversion to multibyte even when input
is split across the gap.
1998-12-10 03:19:37 +00:00
Kenichi Handa
ea12aa2bf9 (byte_combining_error): Error message improved. 1998-11-11 10:37:09 +00:00
Karl Heuer
101e446fa0 (Fcombine_after_change_execute): Return nil, not junk.
If nothing to do, return immediately.
(syms_of_insdel): Initialize combine_after_change_buffer.
1998-11-05 20:06:22 +00:00
Kenichi Handa
b80f1b20d3 (replace_range): Fix previous change. 1998-10-31 05:24:11 +00:00
Kenichi Handa
039af53ac4 (byte_combining_error): New function.
(CHECK_BYTE_COMBINING_FOR_INSERT): Call byte_combining_error.
(insert_from_string_1): Set *(GPT_ADDR) to 0 before calling
CHECK_BYTE_COMBINING_FOR_INSERT.
(insert_from_buffer_1): Likewise.
(adjust_after_replace): Check the posibility of inhibitted byte
combining correctly.
(replace_range): Before signaling an error for inhibitted byte
combining, recover the buffer in a safe state.
(del_range_2): Check the posibility of inhibitted byte combining
correctly.
1998-10-31 05:12:07 +00:00