The branch, master has been updated
       via  e8567098a4eaa81306effeaef430d9d74f603f7a (commit)
      from  bdea2f9eda1abc8f4a6c423af62ef7538b2ad249 (commit)

- Log -----------------------------------------------------------------
commit e8567098a4eaa81306effeaef430d9d74f603f7a
Author: Nicholas Marriott <[email protected]>
Commit: Nicholas Marriott <[email protected]>

    Add support for Cgywin, apparently it is enough just to open the tty again 
in
    the server and fd passing is not necessary. Needs some ifdefs unfortunately 
but
    no way around that and some of them can go next time we're willing to do a
    protocol bump. Patch from J Raynor jxraynor at gmail dot com.
---
 client.c        |    5 +++++
 compat.h        |    5 +++++
 server-client.c |    5 ++++-
 tmux.h          |    4 ++++
 4 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/client.c b/client.c
index 691ace3..b9e3b30 100644
--- a/client.c
+++ b/client.c
@@ -328,8 +328,13 @@ client_send_identify(int flags)
            strlcpy(data.term, term, sizeof data.term) >= sizeof data.term)
                *data.term = '\0';
 
+#ifdef __CYGWIN__
+       snprintf(&data.ttyname, sizeof data.ttyname, "%s",
+           ttyname(STDIN_FILENO));
+#else
        if ((fd = dup(STDIN_FILENO)) == -1)
                fatal("dup failed");
+#endif
        imsg_compose(&client_ibuf,
            MSG_IDENTIFY, PROTOCOL_VERSION, -1, fd, &data, sizeof data);
        client_update_event();
diff --git a/compat.h b/compat.h
index d397379..b84ff40 100644
--- a/compat.h
+++ b/compat.h
@@ -30,6 +30,10 @@
 #define __packed __attribute__ ((__packed__))
 #endif
 
+#ifndef ECHOPRT
+#define ECHOPRT 0
+#endif
+
 #ifndef HAVE_BSD_TYPES
 typedef uint8_t u_int8_t;
 typedef uint16_t u_int16_t;
@@ -210,6 +214,7 @@ int          daemon(int, int);
 
 #ifndef HAVE_B64_NTOP
 /* b64_ntop.c */
+#undef b64_ntop /* for Cygwin */
 int             b64_ntop(const char *, size_t, char *, size_t);
 #endif
 
diff --git a/server-client.c b/server-client.c
index 01616cb..5923eb0 100644
--- a/server-client.c
+++ b/server-client.c
@@ -825,9 +825,12 @@ server_client_msg_dispatch(struct client *c)
                case MSG_IDENTIFY:
                        if (datalen != sizeof identifydata)
                                fatalx("bad MSG_IDENTIFY size");
+                       memcpy(&identifydata, imsg.data, sizeof identifydata);
+#ifdef __CYGWIN__
+                       imsg.fd = open(identifydata.ttyname, O_RDWR|O_NOCTTY);
+#endif
                        if (imsg.fd == -1)
                                fatalx("MSG_IDENTIFY missing fd");
-                       memcpy(&identifydata, imsg.data, sizeof identifydata);
 
                        server_client_msg_identify(c, &identifydata, imsg.fd);
                        break;
diff --git a/tmux.h b/tmux.h
index eb53d3b..cc1c79e 100644
--- a/tmux.h
+++ b/tmux.h
@@ -471,6 +471,10 @@ struct msg_identify_data {
 
        char            term[TERMINAL_LENGTH];
 
+#ifdef __CYGWIN__
+       char            ttyname[TTY_NAME_MAX];
+#endif
+
 #define IDENTIFY_UTF8 0x1
 #define IDENTIFY_256COLOURS 0x2
 /* 0x4 unused */


-----------------------------------------------------------------------

Summary of changes:
 client.c        |    5 +++++
 compat.h        |    5 +++++
 server-client.c |    5 ++++-
 tmux.h          |    4 ++++
 4 files changed, 18 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
tmux

------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
tmux-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-cvs

Reply via email to