* Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
@ 2005-01-17 0:34 Chip Coldwell
2005-01-17 16:08 ` Stefan Monnier
0 siblings, 1 reply; 13+ messages in thread
From: Chip Coldwell @ 2005-01-17 0:34 UTC (permalink / raw)
I realize that I should expect problems if I choose to live on the
bleeding edge, but I figure I might as well report this problem just
in case the developers aren't already aware of it.
The problem is with Emacs 21.3.50.1 that I checked out from CVS
sources and compiled using the emacs/mac/make-package shell script on
the Macintosh OS X (10.3.7). If I am editing in tex-mode and I run
the function 'tex-file' (by default bound to C-c C-f) emacs goes into
an infinite loop. The loop is in the function
lisp/tex-mode.el:tex-start-shell
(defun tex-start-shell ()
(with-current-buffer
(make-comint
"tex-shell"
(or tex-shell-file-name (getenv "ESHELL") shell-file-name)
nil)
(let ((proc (get-process "tex-shell")))
(set-process-sentinel proc 'tex-shell-sentinel)
(set-process-query-on-exit-flag proc nil)
(tex-shell)
(while (zerop (buffer-size))
(sleep-for 1)))))
The function creates a shell using "make-comint", then waits for the
shell to start in the loop at the bottom. Presumably, when the shell
has started, it will issue a prompt and the (buffer-size) procedure
will return non-zero and break out of the loop. The problem is that
it never does.
I am informed by Andreas Schwab that ptys are broken on Mac OS X, and
therefore process-connection-type is set to nil so instead of allocating a
pseudo-terminal to communicate with the sub-process emacs uses a pipe.
The shell discovers that its not connected to a terminal and runs as
non-interactive, suppressing the prompts and causing the infinite loop I
describe above.
My proposed solution is a tiny patch:
--- emacs/lisp/textmodes/tex-mode.el.~1.153.~ Sat Dec 11 17:00:38 2004
+++ emacs/lisp/textmodes/tex-mode.el Sun Jan 16 13:59:50 2005
@@ -1495,7 +1495,8 @@
(make-comint
"tex-shell"
(or tex-shell-file-name (getenv "ESHELL") shell-file-name)
- nil)
+ nil
+ "-i")
(let ((proc (get-process "tex-shell")))
(set-process-sentinel proc 'tex-shell-sentinel)
(set-process-query-on-exit-flag proc nil)
This adds the "-i" switch to the command line that exec's the shell,
causing it to run interactively.
I have tested this on Mac OS X and it did solve the problem. A very
similar "-i" switch appears in lisp/shell.el ("M-x shell").
Chip
--
Charles M. "Chip" Coldwell
"Turn on, log in, tune out"
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-17 0:34 Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug Chip Coldwell
@ 2005-01-17 16:08 ` Stefan Monnier
2005-01-17 17:41 ` Steven Tamm
2005-01-19 0:49 ` Richard Stallman
0 siblings, 2 replies; 13+ messages in thread
From: Stefan Monnier @ 2005-01-17 16:08 UTC (permalink / raw)
Cc: emacs-devel
> The function creates a shell using "make-comint", then waits for the
> shell to start in the loop at the bottom. Presumably, when the shell
> has started, it will issue a prompt and the (buffer-size) procedure
> will return non-zero and break out of the loop. The problem is that
> it never does.
> I am informed by Andreas Schwab that ptys are broken on Mac OS X, and
> therefore process-connection-type is set to nil so instead of allocating
> a pseudo-terminal to communicate with the sub-process emacs uses a pipe.
> The shell discovers that its not connected to a terminal and runs as
> non-interactive, suppressing the prompts and causing the infinite loop
> I describe above.
AFAIK the "broken tty" issue was solved a while back (somewhere around 10.3)
and I thought we had reverted process-connection-type's default to t.
But indeed I see in lisp/term/mac-win.el that we still set
process-connection-type to nil. Shouldn't we remove it, or at least make it
depend on the OS's version?
> --- emacs/lisp/textmodes/tex-mode.el.~1.153.~ Sat Dec 11 17:00:38 2004
> +++ emacs/lisp/textmodes/tex-mode.el Sun Jan 16 13:59:50 2005
> @@ -1495,7 +1495,8 @@
> (make-comint
> "tex-shell"
> (or tex-shell-file-name (getenv "ESHELL") shell-file-name)
> - nil)
> + nil
> + "-i")
> (let ((proc (get-process "tex-shell")))
> (set-process-sentinel proc 'tex-shell-sentinel)
> (set-process-query-on-exit-flag proc nil)
> This adds the "-i" switch to the command line that exec's the shell, causing
> it to run interactively.
> I have tested this on Mac OS X and it did solve the problem. A very similar
> "-i" switch appears in lisp/shell.el ("M-x shell").
Indeed, shell uses the same trick. So I guess it's OK to do it in tex-shell
as well. If anybody wants to install that patch, please do it for me.
Stefan
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-17 16:08 ` Stefan Monnier
@ 2005-01-17 17:41 ` Steven Tamm
2005-01-17 18:59 ` Stefan Monnier
2005-01-19 0:49 ` Richard Stallman
1 sibling, 1 reply; 13+ messages in thread
From: Steven Tamm @ 2005-01-17 17:41 UTC (permalink / raw)
Cc: Chip Coldwell, emacs-devel
I checked in this fix. It seemed like the right thing to do regardless.
As for pty's, there were still some issues with the last few characters
of a process being eaten. I can't seem reproduce it now as easily as
before, so maybe it was actually solved. If there's a consensus, I can
switch it back.
Index: lisp/term/mac-win.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/term/mac-win.el,v
retrieving revision 1.30
diff -u -d -b -w -r1.30 mac-win.el
--- lisp/term/mac-win.el 30 Dec 2004 02:04:31 -0000 1.30
+++ lisp/term/mac-win.el 17 Jan 2005 17:40:12 -0000
@@ -1696,8 +1696,9 @@
;; Tell Emacs to use pipes instead of pty's for processes because the
;; latter sometimes lose characters. Pty support is compiled in since
-;; ange-ftp will not work without it.
-(setq process-connection-type nil)
+;; ange-ftp will not work without it. Fixed with darwin 7 (OS X 10.3).
+(setq process-connection-type
+ (not (string-match "-darwin[0-6]\\." system-configuration)))
;; Assume that fonts are always scalable on the Mac. This sometimes
;; results in characters with jagged edges. However, without it,
-Steven
On Jan 17, 2005, at 8:08 AM, Stefan Monnier wrote:
>> The function creates a shell using "make-comint", then waits for the
>> shell to start in the loop at the bottom. Presumably, when the shell
>> has started, it will issue a prompt and the (buffer-size) procedure
>> will return non-zero and break out of the loop. The problem is that
>> it never does.
>
>> I am informed by Andreas Schwab that ptys are broken on Mac OS X, and
>> therefore process-connection-type is set to nil so instead of
>> allocating
>> a pseudo-terminal to communicate with the sub-process emacs uses a
>> pipe.
>> The shell discovers that its not connected to a terminal and runs as
>> non-interactive, suppressing the prompts and causing the infinite loop
>> I describe above.
>
> AFAIK the "broken tty" issue was solved a while back (somewhere around
> 10.3)
> and I thought we had reverted process-connection-type's default to t.
> But indeed I see in lisp/term/mac-win.el that we still set
> process-connection-type to nil. Shouldn't we remove it, or at least
> make it
> depend on the OS's version?
>
>> --- emacs/lisp/textmodes/tex-mode.el.~1.153.~ Sat Dec 11 17:00:38
>> 2004
>> +++ emacs/lisp/textmodes/tex-mode.el Sun Jan 16 13:59:50 2005
>> @@ -1495,7 +1495,8 @@
>> (make-comint
>> "tex-shell"
>> (or tex-shell-file-name (getenv "ESHELL") shell-file-name)
>> - nil)
>> + nil
>> + "-i")
>> (let ((proc (get-process "tex-shell")))
>> (set-process-sentinel proc 'tex-shell-sentinel)
>> (set-process-query-on-exit-flag proc nil)
>
>> This adds the "-i" switch to the command line that exec's the shell,
>> causing
>> it to run interactively.
>
>> I have tested this on Mac OS X and it did solve the problem. A very
>> similar
>> "-i" switch appears in lisp/shell.el ("M-x shell").
>
> Indeed, shell uses the same trick. So I guess it's OK to do it in
> tex-shell
> as well. If anybody wants to install that patch, please do it for me.
>
>
> Stefan
>
>
> _______________________________________________
> Emacs-devel mailing list
> Emacs-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-17 17:41 ` Steven Tamm
@ 2005-01-17 18:59 ` Stefan Monnier
2005-01-18 4:08 ` Steven Tamm
0 siblings, 1 reply; 13+ messages in thread
From: Stefan Monnier @ 2005-01-17 18:59 UTC (permalink / raw)
Cc: Chip Coldwell, emacs-devel
> --- lisp/term/mac-win.el 30 Dec 2004 02:04:31 -0000 1.30
> +++ lisp/term/mac-win.el 17 Jan 2005 17:40:12 -0000
> @@ -1696,8 +1696,9 @@
> ;; Tell Emacs to use pipes instead of pty's for processes because the
> ;; latter sometimes lose characters. Pty support is compiled in since
> -;; ange-ftp will not work without it.
> -(setq process-connection-type nil)
> +;; ange-ftp will not work without it. Fixed with darwin 7 (OS X 10.3).
> +(setq process-connection-type
> + (not (string-match "-darwin[0-6]\\." system-configuration)))
> ;; Assume that fonts are always scalable on the Mac. This sometimes
> ;; results in characters with jagged edges. However, without it,
BTW, I think I've never noticed the tex-shell problem on my Mac because
I build it for X11 so mac-win.el is not loaded (and thus
process-connection-type stays t).
Shouldn't the process-connection-type be set somewhere else than in
mac-win.el.
Stefan
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-17 18:59 ` Stefan Monnier
@ 2005-01-18 4:08 ` Steven Tamm
2005-01-18 11:14 ` YAMAMOTO Mitsuharu
0 siblings, 1 reply; 13+ messages in thread
From: Steven Tamm @ 2005-01-18 4:08 UTC (permalink / raw)
Cc: YAMAMOTO Mitsuharu, emacs-devel '
The problem only applied to the carbon build, I believe. The pty's
weren't setup correctly when launching from a bundle. My recollection
is fuzzy, so it could be something else.
-Steven
On Jan 17, 2005, at 10:59 AM, Stefan Monnier wrote:
>> --- lisp/term/mac-win.el 30 Dec 2004 02:04:31 -0000 1.30
>> +++ lisp/term/mac-win.el 17 Jan 2005 17:40:12 -0000
>> @@ -1696,8 +1696,9 @@
>
>> ;; Tell Emacs to use pipes instead of pty's for processes because
>> the
>> ;; latter sometimes lose characters. Pty support is compiled in
>> since
>> -;; ange-ftp will not work without it.
>> -(setq process-connection-type nil)
>> +;; ange-ftp will not work without it. Fixed with darwin 7 (OS X
>> 10.3).
>> +(setq process-connection-type
>> + (not (string-match "-darwin[0-6]\\." system-configuration)))
>
>> ;; Assume that fonts are always scalable on the Mac. This sometimes
>> ;; results in characters with jagged edges. However, without it,
>
> BTW, I think I've never noticed the tex-shell problem on my Mac because
> I build it for X11 so mac-win.el is not loaded (and thus
> process-connection-type stays t).
>
> Shouldn't the process-connection-type be set somewhere else than in
> mac-win.el.
>
>
> Stefan
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-18 4:08 ` Steven Tamm
@ 2005-01-18 11:14 ` YAMAMOTO Mitsuharu
2005-01-18 17:31 ` Steven Tamm
2005-02-25 6:19 ` YAMAMOTO Mitsuharu
0 siblings, 2 replies; 13+ messages in thread
From: YAMAMOTO Mitsuharu @ 2005-01-18 11:14 UTC (permalink / raw)
Cc: Stefan Monnier, emacs-devel
>>>>> On Mon, 17 Jan 2005 20:08:50 -0800, Steven Tamm <steventamm@mac.com> said:
> The problem only applied to the carbon build, I believe. The pty's
> weren't setup correctly when launching from a bundle. My
> recollection is fuzzy, so it could be something else.
How about this? I used uname(3) because the variable
system-configuration corresponds to the build environment, not the
execution environment.
I guess Darwin x86 also has the same kind of problem. Does anyone
know about that? Should we define and use DARWIN instead of MAC_OSX?
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
Index: lisp/term/mac-win.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/term/mac-win.el,v
retrieving revision 1.30
diff -c -r1.30 mac-win.el
*** lisp/term/mac-win.el 30 Dec 2004 02:04:31 -0000 1.30
--- lisp/term/mac-win.el 18 Jan 2005 10:43:11 -0000
***************
*** 1694,1704 ****
(if (string= default-directory "/")
(cd "~"))
- ;; Tell Emacs to use pipes instead of pty's for processes because the
- ;; latter sometimes lose characters. Pty support is compiled in since
- ;; ange-ftp will not work without it.
- (setq process-connection-type nil)
-
;; Assume that fonts are always scalable on the Mac. This sometimes
;; results in characters with jagged edges. However, without it,
;; fonts with both truetype and bitmap representations but no italic
--- 1692,1697 ----
Index: src/process.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/process.c,v
retrieving revision 1.447
diff -c -r1.447 process.c
*** src/process.c 27 Dec 2004 16:06:43 -0000 1.447
--- src/process.c 18 Jan 2005 10:43:12 -0000
***************
*** 117,122 ****
--- 117,126 ----
#include <sys/wait.h>
#endif
+ #ifdef MAC_OSX
+ #include <sys/utsname.h>
+ #endif
+
#include "systime.h"
#include "systty.h"
***************
*** 6632,6637 ****
--- 6636,6656 ----
return 0;
}
+
+ #ifdef MAC_OSX
+ /* Return the major release number of Darwin. */
+
+ static int
+ darwin_major_release ()
+ {
+ struct utsname uts;
+
+ if (uname (&uts) == 0)
+ return atoi (uts.release);
+ else
+ return -1;
+ }
+ #endif
\f
void
init_process ()
***************
*** 6704,6709 ****
--- 6723,6733 ----
Fprovide (intern ("make-network-process"), subfeatures);
}
#endif /* HAVE_SOCKETS */
+ #ifdef MAC_OSX
+ /* Darwin version < 7 has a problem in pty handling. */
+ if (darwin_major_release () < 7)
+ Vprocess_connection_type = Qnil;
+ #endif
}
void
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-18 11:14 ` YAMAMOTO Mitsuharu
@ 2005-01-18 17:31 ` Steven Tamm
2005-02-25 6:19 ` YAMAMOTO Mitsuharu
1 sibling, 0 replies; 13+ messages in thread
From: Steven Tamm @ 2005-01-18 17:31 UTC (permalink / raw)
Cc: Stefan Monnier, emacs-devel
Darn. I forgot that 10.2 and 10.3 are still binary compatible (unlike
10.1). Are pty's still broken on 10.2.8? In any case it makes sense
to have it be #ifdef DARWIN.
I'd also suggest that we have a "darwin-kernel-release" variable
defined only with system-type darwin and place it someplace like
sysdep.c or editfns.c. Should this, perhaps be a built-in variable
across all *nix platforms? Something similar to
get_emacs_configuration in w32.c?
-Steven
On Jan 18, 2005, at 3:14 AM, YAMAMOTO Mitsuharu wrote:
>>>>>> On Mon, 17 Jan 2005 20:08:50 -0800, Steven Tamm
>>>>>> <steventamm@mac.com> said:
>
>> The problem only applied to the carbon build, I believe. The pty's
>> weren't setup correctly when launching from a bundle. My
>> recollection is fuzzy, so it could be something else.
>
> How about this? I used uname(3) because the variable
> system-configuration corresponds to the build environment, not the
> execution environment.
>
> I guess Darwin x86 also has the same kind of problem. Does anyone
> know about that? Should we define and use DARWIN instead of MAC_OSX?
>
> YAMAMOTO Mitsuharu
> mituharu@math.s.chiba-u.ac.jp
>
> Index: lisp/term/mac-win.el
> ===================================================================
> RCS file: /cvsroot/emacs/emacs/lisp/term/mac-win.el,v
> retrieving revision 1.30
> diff -c -r1.30 mac-win.el
> *** lisp/term/mac-win.el 30 Dec 2004 02:04:31 -0000 1.30
> --- lisp/term/mac-win.el 18 Jan 2005 10:43:11 -0000
> ***************
> *** 1694,1704 ****
> (if (string= default-directory "/")
> (cd "~"))
>
> - ;; Tell Emacs to use pipes instead of pty's for processes because the
> - ;; latter sometimes lose characters. Pty support is compiled in
> since
> - ;; ange-ftp will not work without it.
> - (setq process-connection-type nil)
> -
> ;; Assume that fonts are always scalable on the Mac. This sometimes
> ;; results in characters with jagged edges. However, without it,
> ;; fonts with both truetype and bitmap representations but no italic
> --- 1692,1697 ----
> Index: src/process.c
> ===================================================================
> RCS file: /cvsroot/emacs/emacs/src/process.c,v
> retrieving revision 1.447
> diff -c -r1.447 process.c
> *** src/process.c 27 Dec 2004 16:06:43 -0000 1.447
> --- src/process.c 18 Jan 2005 10:43:12 -0000
> ***************
> *** 117,122 ****
> --- 117,126 ----
> #include <sys/wait.h>
> #endif
>
> + #ifdef MAC_OSX
> + #include <sys/utsname.h>
> + #endif
> +
> #include "systime.h"
> #include "systty.h"
>
> ***************
> *** 6632,6637 ****
> --- 6636,6656 ----
>
> return 0;
> }
> +
> + #ifdef MAC_OSX
> + /* Return the major release number of Darwin. */
> +
> + static int
> + darwin_major_release ()
> + {
> + struct utsname uts;
> +
> + if (uname (&uts) == 0)
> + return atoi (uts.release);
> + else
> + return -1;
> + }
> + #endif
> \f
> void
> init_process ()
> ***************
> *** 6704,6709 ****
> --- 6723,6733 ----
> Fprovide (intern ("make-network-process"), subfeatures);
> }
> #endif /* HAVE_SOCKETS */
> + #ifdef MAC_OSX
> + /* Darwin version < 7 has a problem in pty handling. */
> + if (darwin_major_release () < 7)
> + Vprocess_connection_type = Qnil;
> + #endif
> }
>
> void
>
>
> _______________________________________________
> Emacs-devel mailing list
> Emacs-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-17 16:08 ` Stefan Monnier
2005-01-17 17:41 ` Steven Tamm
@ 2005-01-19 0:49 ` Richard Stallman
2005-01-19 19:16 ` Steven Tamm
1 sibling, 1 reply; 13+ messages in thread
From: Richard Stallman @ 2005-01-19 0:49 UTC (permalink / raw)
Cc: coldwell, emacs-devel
But indeed I see in lisp/term/mac-win.el that we still set
process-connection-type to nil. Shouldn't we remove it, or at least make it
depend on the OS's version?
If ptys work, Emacs ought to use them (in the cases where it normally
does use them).
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-19 0:49 ` Richard Stallman
@ 2005-01-19 19:16 ` Steven Tamm
2005-01-20 21:32 ` Richard Stallman
2005-01-21 6:20 ` Nozomu Ando
0 siblings, 2 replies; 13+ messages in thread
From: Steven Tamm @ 2005-01-19 19:16 UTC (permalink / raw)
Cc: coldwell, Stefan Monnier, emacs-devel
I added a new variable called operating-system-release (to editfns.c)
that returns the string that would be returned "uname -r" on systems
with sys/utsname defined.
I changed mac-win.el to use ptys on darwin 7 and higher (i.e. OSX 10.3)
based on this variable. Since builds on 10.2 and 10.3 are binary
compatible (unlike 10.1) this is the only way to tell the difference.
-Steven
On Jan 18, 2005, at 4:49 PM, Richard Stallman wrote:
> But indeed I see in lisp/term/mac-win.el that we still set
> process-connection-type to nil. Shouldn't we remove it, or at
> least make it
> depend on the OS's version?
>
> If ptys work, Emacs ought to use them (in the cases where it normally
> does use them).
>
>
> _______________________________________________
> Emacs-devel mailing list
> Emacs-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-19 19:16 ` Steven Tamm
@ 2005-01-20 21:32 ` Richard Stallman
2005-01-21 6:20 ` Nozomu Ando
1 sibling, 0 replies; 13+ messages in thread
From: Richard Stallman @ 2005-01-20 21:32 UTC (permalink / raw)
Cc: coldwell, monnier, emacs-devel
I added a new variable called operating-system-release (to editfns.c)
that returns the string that would be returned "uname -r" on systems
with sys/utsname defined.
That seems useful. Although it's a new feature, it internal and safe
and needed to fix a bug, so it is ok.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-19 19:16 ` Steven Tamm
2005-01-20 21:32 ` Richard Stallman
@ 2005-01-21 6:20 ` Nozomu Ando
2005-01-21 19:40 ` Steven Tamm
1 sibling, 1 reply; 13+ messages in thread
From: Nozomu Ando @ 2005-01-21 6:20 UTC (permalink / raw)
Cc: emacs-devel
Steven Tamm <steventamm@mac.com> writes:
> I changed mac-win.el to use ptys on darwin 7 and higher (i.e. OSX
> 10.3) based on this variable.
If my understanding is correct, we cannot use ptys at all on darwin 6
or below now?
Ptys on darwin 6 have the problem of data loss at the end of the stream,
but they are still useful for interactive subprocesses, such as M-x shell.
Moreover, we can fix the kernel of darwin 6 becuase its source is available.
Could you please re-consider the last change and make it user's selectable
that emacs should use ptys or not by setting process-connection-type ?
---
Nozomu Ando
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-21 6:20 ` Nozomu Ando
@ 2005-01-21 19:40 ` Steven Tamm
0 siblings, 0 replies; 13+ messages in thread
From: Steven Tamm @ 2005-01-21 19:40 UTC (permalink / raw)
Cc: emacs-devel
Your understanding is correct. However I had seen data loss even with
interactive processes, although the data was always useless.
Perhaps it would be better to have process-connection-type default to
nil with darwin 6, but allow the user to override it if they know what
they are doing?
Something like this.
Index: src/process.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/process.c,v
retrieving revision 1.447
diff -u -d -b -w -r1.447 process.c
--- src/process.c 27 Dec 2004 16:06:43 -0000 1.447
+++ src/process.c 21 Jan 2005 19:38:57 -0000
@@ -187,6 +187,7 @@
#include "syswait.h"
extern void set_waiting_for_input P_ ((EMACS_TIME *));
+extern char *get_operating_system_release ();
#ifndef USE_CRT_DLL
extern int errno;
@@ -6704,6 +6705,19 @@
Fprovide (intern ("make-network-process"), subfeatures);
}
#endif /* HAVE_SOCKETS */
+
+#ifdef DARWIN
+ /* PTYs are broken on Darwin < 6, but are sometimes useful for
interactive
+ processes. As such, we only change the default value. */
+ if (initialized)
+ {
+ char *release = get_operating_system_release();
+ if (!release || !release[0] || (release[0] < MIN_PTY_KERNEL_VERSION
+ && release[1] == '.')) {
+ Vprocess_connection_type = Qnil;
+ }
+ }
+#endif
}
void
Index: src/s/darwin.h
===================================================================
RCS file: /cvsroot/emacs/emacs/src/s/darwin.h,v
retrieving revision 1.19
diff -u -d -b -w -r1.19 darwin.h
--- src/s/darwin.h 20 Jan 2005 18:13:48 -0000 1.19
+++ src/s/darwin.h 21 Jan 2005 19:38:59 -0000
@@ -37,6 +37,10 @@
#define BSD_SYSTEM
/* #define VMS */
+#ifndef DARWIN
+#define DARWIN 1
+#endif
+
/* MAC_OS is used to conditionally compile code common to both MAC_OS8
and MAC_OSX. */
#ifdef MAC_OSX
@@ -103,25 +107,17 @@
/*
* Define HAVE_PTYS if the system supports pty devices.
+ * Note: PTYs are broken on darwin <6. Use at your own risk.
*/
#define HAVE_PTYS
-
-/*
- * PTYs only work correctly on Darwin 7 or higher. So make
PTY_ITERATION
- * Test the operating system release and only allow PTYs if it is
greater
- * than 7.
+/**
+ * PTYs only work correctly on Darwin 7 or higher. So make the
+ * default for process-connection-type dependent on the kernel
+ * version.
*/
#define MIN_PTY_KERNEL_VERSION '7'
-#define PTY_ITERATION \
- char *release = get_operating_system_release(); \
- if (!release || !release[0] || (release[0] < MIN_PTY_KERNEL_VERSION \
- && release[1] == '.')) \
- return -1; \
- for (c = FIRST_PTY_LETTER; c <= 'z'; c++) \
- for (i = 0; i < 16; i++)
-
/*
* Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
-Steven
On Jan 20, 2005, at 10:20 PM, Nozomu Ando wrote:
>
> Steven Tamm <steventamm@mac.com> writes:
>> I changed mac-win.el to use ptys on darwin 7 and higher (i.e. OSX
>> 10.3) based on this variable.
>
> If my understanding is correct, we cannot use ptys at all on darwin 6
> or below now?
>
> Ptys on darwin 6 have the problem of data loss at the end of the
> stream,
> but they are still useful for interactive subprocesses, such as M-x
> shell.
>
> Moreover, we can fix the kernel of darwin 6 becuase its source is
> available.
>
> Could you please re-consider the last change and make it user's
> selectable
> that emacs should use ptys or not by setting process-connection-type ?
> ---
> Nozomu Ando
>
>
> _______________________________________________
> Emacs-devel mailing list
> Emacs-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-devel
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug
2005-01-18 11:14 ` YAMAMOTO Mitsuharu
2005-01-18 17:31 ` Steven Tamm
@ 2005-02-25 6:19 ` YAMAMOTO Mitsuharu
1 sibling, 0 replies; 13+ messages in thread
From: YAMAMOTO Mitsuharu @ 2005-02-25 6:19 UTC (permalink / raw)
Cc: Stefan Monnier, emacs-devel
>>>>> On Tue, 18 Jan 2005 20:14:23 +0900, YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> said:
> I guess Darwin x86 also has the same kind of problem. Does anyone
> know about that? Should we define and use DARWIN instead of
> MAC_OSX?
Sorry. The macro DARWIN is already used in some system headers to
distinguish Mac OS X from bare Darwin. (For example, see
/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h)
So we should not define this on Mac OS X.
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2005-02-25 6:19 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-17 0:34 Emacs 21.3.50.1 (CVS sources) MacOS X tex-mode bug Chip Coldwell
2005-01-17 16:08 ` Stefan Monnier
2005-01-17 17:41 ` Steven Tamm
2005-01-17 18:59 ` Stefan Monnier
2005-01-18 4:08 ` Steven Tamm
2005-01-18 11:14 ` YAMAMOTO Mitsuharu
2005-01-18 17:31 ` Steven Tamm
2005-02-25 6:19 ` YAMAMOTO Mitsuharu
2005-01-19 0:49 ` Richard Stallman
2005-01-19 19:16 ` Steven Tamm
2005-01-20 21:32 ` Richard Stallman
2005-01-21 6:20 ` Nozomu Ando
2005-01-21 19:40 ` Steven Tamm
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).