aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKaroly Lorentey2004-08-19 15:05:01 +0000
committerKaroly Lorentey2004-08-19 15:05:01 +0000
commitbda56b550fc7fffcec4d94e2cafc3793d0cec624 (patch)
tree6fff2c4bd2b46711c2527c403b95a621b7e9bf5e /src
parentccc84c2458c0a2e4e2ca62fa4c43527902f7e101 (diff)
parenteacd5edcd3f50db44271fae73dce8949ceb47ca8 (diff)
downloademacs-bda56b550fc7fffcec4d94e2cafc3793d0cec624.tar.gz
emacs-bda56b550fc7fffcec4d94e2cafc3793d0cec624.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-489 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-490 Update from CVS: man/fixit.texi (Spelling): Fix typo. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-491 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-492 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-493 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-494 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-495 Update from CVS: Add missing lisp/mh-e files * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-496 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-497 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-498 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-499 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-500 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-234
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog41
-rw-r--r--src/buffer.c2
-rw-r--r--src/fileio.c5
-rw-r--r--src/intervals.c4
-rw-r--r--src/minibuf.c5
-rw-r--r--src/process.c69
-rw-r--r--src/sysdep.c23
-rw-r--r--src/xfaces.c5
8 files changed, 122 insertions, 32 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 3f9b6d85e51..9d9c4ee498c 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,40 @@
12004-08-18 Kim F. Storm <storm@cua.dk>
2
3 * process.c (Faccept_process_output): Add arg JUST-THIS-ONE;
4 forward to wait_reading_process_input via DO_DISPLAY arg.
5 (wait_reading_process_input): If DO_DISPLAY < 0 for a process
6 object, only process output from that process; also inhibit
7 running timers if DO_DISPLAY==-2.
8
92004-08-17 Kim F. Storm <storm@cua.dk>
10
11 * process.c (process_send_signal): Fix last change--use
12 _POSIX_VDISABLE instead of CVDISABLE when available.
13
142004-08-16 Richard M. Stallman <rms@gnu.org>
15
16 * sysdep.c (child_setup_tty) [SIGNALS_VIA_CHARACTERS]:
17 Set VQUIT and VINTR chars to the standard ones if they are unset.
18 [AIX]: Don't do that here. And don't force VINTR to standard
19 when SIGNALS_VIA_CHARACTERS.
20
21 * process.c (process_send_signal)
22 [SIGNALS_VIA_CHARACTERS, HAVE_TERMIOS]: Clean up.
23 Do nothing if the character is CVDISABLE.
24
25 * xfaces.c (merge_face_ref): Specifying `unspecified' is a no-op.
26
27 * intervals.c (move_if_not_intangible):
28 Force POSITION to be between BEGV and ZV.
29
302004-08-14 John Paul Wallington <jpw@gnu.org>
31
32 * buffer.c (Frestore_buffer_modified_p): Doc fix.
33
34 * fileio.c (Fread_file_name): Doc fix.
35
36 * minibuf.c (syms_of_minibuf) <completion-ignore-case>: Doc fix.
37
12004-08-09 Luc Teirlinck <teirllm@auburn.edu> 382004-08-09 Luc Teirlinck <teirllm@auburn.edu>
2 39
3 * keymap.c (Fmake_keymap, Fmap_keymap, Fwhere_is_internal): Doc fixes. 40 * keymap.c (Fmake_keymap, Fmap_keymap, Fwhere_is_internal): Doc fixes.
@@ -66,6 +103,10 @@
66 103
67 * callint.c (Fcall_interactively): Doc fix. 104 * callint.c (Fcall_interactively): Doc fix.
68 105
1062004-07-30 Richard M. Stallman <rms@gnu.org>
107
108 * abbrev.c (Fexpand_abbrev): Undo previous change.
109
692004-07-30 Kim F. Storm <storm@cua.dk> 1102004-07-30 Kim F. Storm <storm@cua.dk>
70 111
71 * editfns.c (Fformat): Allocate extra (dummy) element in info. 112 * editfns.c (Fformat): Allocate extra (dummy) element in info.
diff --git a/src/buffer.c b/src/buffer.c
index f55ae7983f4..bade501b1a7 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1077,7 +1077,7 @@ A non-nil FLAG means mark the buffer modified. */)
1077 1077
1078DEFUN ("restore-buffer-modified-p", Frestore_buffer_modified_p, 1078DEFUN ("restore-buffer-modified-p", Frestore_buffer_modified_p,
1079 Srestore_buffer_modified_p, 1, 1, 0, 1079 Srestore_buffer_modified_p, 1, 1, 0,
1080 doc: /* Like `set-buffer-modified-p', with a differences concerning redisplay. 1080 doc: /* Like `set-buffer-modified-p', with a difference concerning redisplay.
1081It is not ensured that mode lines will be updated to show the modified 1081It is not ensured that mode lines will be updated to show the modified
1082state of the current buffer. Use with care. */) 1082state of the current buffer. Use with care. */)
1083 (flag) 1083 (flag)
diff --git a/src/fileio.c b/src/fileio.c
index 180f6f94130..da544f72234 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -6195,7 +6195,10 @@ DIR should be an absolute directory name. It defaults to the value of
6195 6195
6196If this command was invoked with the mouse, use a file dialog box if 6196If this command was invoked with the mouse, use a file dialog box if
6197`use-dialog-box' is non-nil, and the window system or X toolkit in use 6197`use-dialog-box' is non-nil, and the window system or X toolkit in use
6198provides a file dialog box. */) 6198provides a file dialog box.
6199
6200See also `read-file-name-completion-ignore-case'
6201and `read-file-name-function'. */)
6199 (prompt, dir, default_filename, mustmatch, initial, predicate) 6202 (prompt, dir, default_filename, mustmatch, initial, predicate)
6200 Lisp_Object prompt, dir, default_filename, mustmatch, initial, predicate; 6203 Lisp_Object prompt, dir, default_filename, mustmatch, initial, predicate;
6201{ 6204{
diff --git a/src/intervals.c b/src/intervals.c
index 33ef9a34177..a822dafefcf 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -2275,6 +2275,10 @@ move_if_not_intangible (position)
2275 pos = Fnext_char_property_change (pos, Qnil); 2275 pos = Fnext_char_property_change (pos, Qnil);
2276 2276
2277 } 2277 }
2278 else if (position < BEGV)
2279 position = BEGV;
2280 else if (position > ZV)
2281 position = ZV;
2278 2282
2279 /* If the whole stretch between PT and POSITION isn't intangible, 2283 /* If the whole stretch between PT and POSITION isn't intangible,
2280 try moving to POSITION (which means we actually move farther 2284 try moving to POSITION (which means we actually move farther
diff --git a/src/minibuf.c b/src/minibuf.c
index d28a5799afa..3d2c6c3a475 100644
--- a/src/minibuf.c
+++ b/src/minibuf.c
@@ -2678,7 +2678,10 @@ property of a history variable overrides this default. */);
2678 Vcompletion_auto_help = Qt; 2678 Vcompletion_auto_help = Qt;
2679 2679
2680 DEFVAR_BOOL ("completion-ignore-case", &completion_ignore_case, 2680 DEFVAR_BOOL ("completion-ignore-case", &completion_ignore_case,
2681 doc: /* Non-nil means don't consider case significant in completion. */); 2681 doc: /* Non-nil means don't consider case significant in completion.
2682
2683See also `read-file-name-completion-ignore-case' concerning case significance
2684in completion when reading a file name. */);
2682 completion_ignore_case = 0; 2685 completion_ignore_case = 0;
2683 2686
2684 DEFVAR_BOOL ("enable-recursive-minibuffers", &enable_recursive_minibuffers, 2687 DEFVAR_BOOL ("enable-recursive-minibuffers", &enable_recursive_minibuffers,
diff --git a/src/process.c b/src/process.c
index ff3f79158ca..1cebdf07875 100644
--- a/src/process.c
+++ b/src/process.c
@@ -3718,7 +3718,7 @@ close_process_descs ()
3718} 3718}
3719 3719
3720DEFUN ("accept-process-output", Faccept_process_output, Saccept_process_output, 3720DEFUN ("accept-process-output", Faccept_process_output, Saccept_process_output,
3721 0, 3, 0, 3721 0, 4, 0,
3722 doc: /* Allow any pending output from subprocesses to be read by Emacs. 3722 doc: /* Allow any pending output from subprocesses to be read by Emacs.
3723It is read into the process' buffers or given to their filter functions. 3723It is read into the process' buffers or given to their filter functions.
3724Non-nil arg PROCESS means do not return until some output has been received 3724Non-nil arg PROCESS means do not return until some output has been received
@@ -3726,15 +3726,20 @@ from PROCESS.
3726Non-nil second arg TIMEOUT and third arg TIMEOUT-MSECS are number of 3726Non-nil second arg TIMEOUT and third arg TIMEOUT-MSECS are number of
3727seconds and microseconds to wait; return after that much time whether 3727seconds and microseconds to wait; return after that much time whether
3728or not there is input. 3728or not there is input.
3729If optional fourth arg JUST-THIS-ONE is non-nil, only accept output
3730from PROCESS, suspending reading output from other processes.
3731If JUST-THIS-ONE is an integer, don't run any timers either.
3729Return non-nil iff we received any output before the timeout expired. */) 3732Return non-nil iff we received any output before the timeout expired. */)
3730 (process, timeout, timeout_msecs) 3733 (process, timeout, timeout_msecs, just_this_one)
3731 register Lisp_Object process, timeout, timeout_msecs; 3734 register Lisp_Object process, timeout, timeout_msecs, just_this_one;
3732{ 3735{
3733 int seconds; 3736 int seconds;
3734 int useconds; 3737 int useconds;
3735 3738
3736 if (! NILP (process)) 3739 if (! NILP (process))
3737 CHECK_PROCESS (process); 3740 CHECK_PROCESS (process);
3741 else
3742 just_this_one = Qnil;
3738 3743
3739 if (! NILP (timeout_msecs)) 3744 if (! NILP (timeout_msecs))
3740 { 3745 {
@@ -3776,7 +3781,9 @@ Return non-nil iff we received any output before the timeout expired. */)
3776 XSETFASTINT (process, 0); 3781 XSETFASTINT (process, 0);
3777 3782
3778 return 3783 return
3779 (wait_reading_process_input (seconds, useconds, process, 0) 3784 (wait_reading_process_input (seconds, useconds, process,
3785 NILP (just_this_one) ? 0 :
3786 !INTEGERP (just_this_one) ? -1 : -2)
3780 ? Qt : Qnil); 3787 ? Qt : Qnil);
3781} 3788}
3782 3789
@@ -4009,8 +4016,11 @@ wait_reading_process_input_1 ()
4009 process. The return value is true iff we read some input from 4016 process. The return value is true iff we read some input from
4010 that process. 4017 that process.
4011 4018
4012 DO_DISPLAY != 0 means redisplay should be done to show subprocess 4019 If READ_KBD is a process object, DO_DISPLAY < 0 means handle only
4013 output that arrives. 4020 output from that process (suspending output from other processes)
4021 and DO_DISPLAY == -2 specifically means don't run any timers either.
4022 Otherwise, != 0 means redisplay should be done to show subprocess
4023 output that arrives.
4014 4024
4015 If READ_KBD is a pointer to a struct Lisp_Process, then the 4025 If READ_KBD is a pointer to a struct Lisp_Process, then the
4016 function returns true iff we received input from that process 4026 function returns true iff we received input from that process
@@ -4032,6 +4042,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
4032 EMACS_TIME timeout, end_time; 4042 EMACS_TIME timeout, end_time;
4033 int wait_channel = -1; 4043 int wait_channel = -1;
4034 struct Lisp_Process *wait_proc = 0; 4044 struct Lisp_Process *wait_proc = 0;
4045 int just_wait_proc = 0;
4035 int got_some_input = 0; 4046 int got_some_input = 0;
4036 /* Either nil or a cons cell, the car of which is of interest and 4047 /* Either nil or a cons cell, the car of which is of interest and
4037 may be changed outside of this routine. */ 4048 may be changed outside of this routine. */
@@ -4048,6 +4059,11 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
4048 wait_proc = XPROCESS (read_kbd); 4059 wait_proc = XPROCESS (read_kbd);
4049 wait_channel = XINT (wait_proc->infd); 4060 wait_channel = XINT (wait_proc->infd);
4050 XSETFASTINT (read_kbd, 0); 4061 XSETFASTINT (read_kbd, 0);
4062 if (do_display < 0)
4063 {
4064 just_wait_proc = do_display;
4065 do_display = 0;
4066 }
4051 } 4067 }
4052 4068
4053 /* If waiting for non-nil in a cell, record where. */ 4069 /* If waiting for non-nil in a cell, record where. */
@@ -4122,7 +4138,8 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
4122 But not if wait_for_cell; in those cases, 4138 But not if wait_for_cell; in those cases,
4123 the wait is supposed to be short, 4139 the wait is supposed to be short,
4124 and those callers cannot handle running arbitrary Lisp code here. */ 4140 and those callers cannot handle running arbitrary Lisp code here. */
4125 if (NILP (wait_for_cell)) 4141 if (NILP (wait_for_cell)
4142 && just_wait_proc != -2)
4126 { 4143 {
4127 EMACS_TIME timer_delay; 4144 EMACS_TIME timer_delay;
4128 4145
@@ -4258,7 +4275,12 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
4258 4275
4259 /* Wait till there is something to do */ 4276 /* Wait till there is something to do */
4260 4277
4261 if (!NILP (wait_for_cell)) 4278 if (just_wait_proc)
4279 {
4280 FD_SET (XINT (wait_proc->infd), &Available);
4281 check_connect = check_delay = 0;
4282 }
4283 else if (!NILP (wait_for_cell))
4262 { 4284 {
4263 Available = non_process_wait_mask; 4285 Available = non_process_wait_mask;
4264 check_connect = check_delay = 0; 4286 check_connect = check_delay = 0;
@@ -5549,29 +5571,40 @@ process_send_signal (process, signo, current_group, nomsg)
5549 work. If the system has it, use it. */ 5571 work. If the system has it, use it. */
5550#ifdef HAVE_TERMIOS 5572#ifdef HAVE_TERMIOS
5551 struct termios t; 5573 struct termios t;
5574 cc_t *sig_char = NULL;
5575
5576 tcgetattr (XINT (p->infd), &t);
5552 5577
5553 switch (signo) 5578 switch (signo)
5554 { 5579 {
5555 case SIGINT: 5580 case SIGINT:
5556 tcgetattr (XINT (p->infd), &t); 5581 sig_char = &t.c_cc[VINTR];
5557 send_process (proc, &t.c_cc[VINTR], 1, Qnil); 5582 break;
5558 return;
5559 5583
5560 case SIGQUIT: 5584 case SIGQUIT:
5561 tcgetattr (XINT (p->infd), &t); 5585 sig_char = &t.c_cc[VQUIT];
5562 send_process (proc, &t.c_cc[VQUIT], 1, Qnil); 5586 break;
5563 return;
5564 5587
5565 case SIGTSTP: 5588 case SIGTSTP:
5566 tcgetattr (XINT (p->infd), &t);
5567#if defined (VSWTCH) && !defined (PREFER_VSUSP) 5589#if defined (VSWTCH) && !defined (PREFER_VSUSP)
5568 send_process (proc, &t.c_cc[VSWTCH], 1, Qnil); 5590 sig_char = &t.c_cc[VSWTCH];
5569#else 5591#else
5570 send_process (proc, &t.c_cc[VSUSP], 1, Qnil); 5592 sig_char = &t.c_cc[VSUSP];
5571#endif 5593#endif
5572 return; 5594 break;
5573 } 5595 }
5574 5596
5597#ifndef _POSIX_VDISABLE
5598#ifdef CVDISABLE
5599#define _POSIX_VDISABLE CVDISABLE
5600#else
5601#define _POSIX_VDISABLE '\0'
5602#endif
5603#endif
5604
5605 if (sig_char && *sig_char != _POSIX_VDISABLE)
5606 send_process (proc, sig_char, 1, Qnil);
5607 return;
5575#else /* ! HAVE_TERMIOS */ 5608#else /* ! HAVE_TERMIOS */
5576 5609
5577 /* On Berkeley descendants, the following IOCTL's retrieve the 5610 /* On Berkeley descendants, the following IOCTL's retrieve the
diff --git a/src/sysdep.c b/src/sysdep.c
index 018fdc1fd57..26f433c9a1d 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -607,6 +607,15 @@ child_setup_tty (out)
607 s.main.c_cflag = (s.main.c_cflag & ~CBAUD) | B9600; /* baud rate sanity */ 607 s.main.c_cflag = (s.main.c_cflag & ~CBAUD) | B9600; /* baud rate sanity */
608#endif /* HPUX */ 608#endif /* HPUX */
609 609
610#ifdef SIGNALS_VIA_CHARACTERS
611 /* the QUIT and INTR character are used in process_send_signal
612 so set them here to something useful. */
613 if (s.main.c_cc[VQUIT] == 0377)
614 s.main.c_cc[VQUIT] = '\\'&037; /* Control-\ */
615 if (s.main.c_cc[VINTR] == 0377)
616 s.main.c_cc[VINTR] = 'C'&037; /* Control-C */
617#endif /* not SIGNALS_VIA_CHARACTERS */
618
610#ifdef AIX 619#ifdef AIX
611/* AIX enhanced edit loses NULs, so disable it */ 620/* AIX enhanced edit loses NULs, so disable it */
612#ifndef IBMR2AIX 621#ifndef IBMR2AIX
@@ -617,16 +626,10 @@ child_setup_tty (out)
617 don't ignore break, but don't signal either, so it looks like NUL. */ 626 don't ignore break, but don't signal either, so it looks like NUL. */
618 s.main.c_iflag &= ~IGNBRK; 627 s.main.c_iflag &= ~IGNBRK;
619 s.main.c_iflag &= ~BRKINT; 628 s.main.c_iflag &= ~BRKINT;
620 /* QUIT and INTR work better as signals, so disable character forms */ 629 /* rms: Formerly it set s.main.c_cc[VINTR] to 0377 here
621 s.main.c_cc[VINTR] = 0377; 630 unconditionally. Then a SIGNALS_VIA_CHARACTERS conditional
622#ifdef SIGNALS_VIA_CHARACTERS 631 would force it to 0377. That looks like duplicated code. */
623 /* the QUIT and INTR character are used in process_send_signal 632#ifndef SIGNALS_VIA_CHARACTERS
624 so set them here to something useful. */
625 if (s.main.c_cc[VQUIT] == 0377)
626 s.main.c_cc[VQUIT] = '\\'&037; /* Control-\ */
627 if (s.main.c_cc[VINTR] == 0377)
628 s.main.c_cc[VINTR] = 'C'&037; /* Control-C */
629#else /* no TIOCGPGRP or no TIOCGLTC or no TIOCGETC */
630 /* QUIT and INTR work better as signals, so disable character forms */ 633 /* QUIT and INTR work better as signals, so disable character forms */
631 s.main.c_cc[VQUIT] = 0377; 634 s.main.c_cc[VQUIT] = 0377;
632 s.main.c_cc[VINTR] = 0377; 635 s.main.c_cc[VINTR] = 0377;
diff --git a/src/xfaces.c b/src/xfaces.c
index f664249a290..10b7ef1148c 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -3629,7 +3629,10 @@ merge_face_ref (f, face_ref, to, err_msgs, named_merge_points)
3629 Lisp_Object value = XCAR (XCDR (face_ref)); 3629 Lisp_Object value = XCAR (XCDR (face_ref));
3630 int err = 0; 3630 int err = 0;
3631 3631
3632 if (EQ (keyword, QCfamily)) 3632 /* Specifying `unspecified' is a no-op. */
3633 if (EQ (value, Qunspecified))
3634 ;
3635 else if (EQ (keyword, QCfamily))
3633 { 3636 {
3634 if (STRINGP (value)) 3637 if (STRINGP (value))
3635 to[LFACE_FAMILY_INDEX] = value; 3638 to[LFACE_FAMILY_INDEX] = value;