(main) [WINDOWSNT]: Don't ifdef away the call to `ttyname'.
authorEli Zaretskii <eliz@gnu.org>
Sat, 1 Nov 2008 13:49:23 +0000 (13:49 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sat, 1 Nov 2008 13:49:23 +0000 (13:49 +0000)
(w32_getenv): Treat $TERM specially: if not found in the environment and in
the Registry, return "w32console".
(ttyname) [WINDOWSNT]: New function.

lib-src/ChangeLog
lib-src/emacsclient.c

index 228a579..2a702b8 100644 (file)
@@ -1,3 +1,11 @@
+2008-11-01  Eli Zaretskii  <eliz@gnu.org>
+
+       * emacsclient.c (main) [WINDOWSNT]: Don't ifdef away the call to
+       `ttyname'.
+       (w32_getenv): Treat $TERM specially: if not found in the
+       environment and in the Registry, return "w32console".
+       (ttyname) [WINDOWSNT]: New function.
+
 2008-10-31  Andreas Schwab  <schwab@suse.de>
 
        * emacsclient.c (main): Don't force sending tty when in eval mode.
index 921fc20..cac8bce 100644 (file)
@@ -353,8 +353,13 @@ w32_getenv (envvar)
 
   if (! (value = w32_get_resource (HKEY_CURRENT_USER, envvar, &dwType)) &&
       ! (value = w32_get_resource (HKEY_LOCAL_MACHINE, envvar, &dwType)))
-    /* Not found in the registry.  */
-    return NULL;
+    {
+      /* "w32console" is what Emacs on Windows uses for tty-type under -nw.  */
+      if (strcmp (envvar, "TERM") == 0)
+       return xstrdup ("w32console");
+      /* Found neither in the environment nor in the registry.  */
+      return NULL;
+    }
 
   if (dwType == REG_SZ)
     /* Registry; no need to expand.  */
@@ -435,6 +440,13 @@ w32_execvp (path, argv)
 #undef execvp
 #define execvp w32_execvp
 
+/* Emulation of ttyname for Windows.  */
+char *
+ttyname (int fd)
+{
+  return "CONOUT$";
+}
+
 #endif /* WINDOWSNT */
 
 /* Display a normal or error message.
@@ -570,10 +582,8 @@ decode_options (argc, argv)
 
   if (!tty && display)
     window_system = 1;
-#if !defined (WINDOWSNT)
   else if (!current_frame)
     tty = 1;
-#endif
 
   /* --no-wait implies --current-frame on ttys when there are file
        arguments or expressions given.  */
@@ -1444,9 +1454,8 @@ main (argc, argv)
     {
       char *type = egetenv ("TERM");
       char *tty_name = NULL;
-#ifndef WINDOWSNT
+
       tty_name = ttyname (fileno (stdout));
-#endif
 
       if (! tty_name)
         {