nice, i thought they would probably be very similar but the guy who
requested this said he tried to copy osdep-linux.c and it didn't work



On Fri, Mar 07, 2014 at 11:05:27PM -0600, J Raynor wrote:
> The TODO list has this item:
> 
> * get_cwd for cgywin
> 
> 
> I've attached a patch which implements this, along with get_name.
> Cygwin's /proc filesystem is similar enough to linux's that the code
> could be copied from osdep-linux.c, and that's what I've done.
> osdep-cygwin.c is just a copy of osdep-linux.c, just without the
> setting of EVENT_NOEPOLL, since this doesn't seem to be needed on
> cygwin.

> diff --git a/configure.ac b/configure.ac
> index c171940..a23e3ae 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -501,6 +501,10 @@ case "$host_os" in
>               AC_MSG_RESULT(hpux)
>               PLATFORM=hpux
>               ;;
> +     *cygwin*)
> +             AC_MSG_RESULT(cygwin)
> +             PLATFORM=cygwin
> +             ;;
>       *)
>               AC_MSG_RESULT(unknown)
>               PLATFORM=unknown
> diff --git a/osdep-cygwin.c b/osdep-cygwin.c
> new file mode 100644
> index 0000000..01d2d0c
> --- /dev/null
> +++ b/osdep-cygwin.c
> @@ -0,0 +1,88 @@
> +/* $Id$ */
> +
> +/*
> + * Copyright (c) 2009 Nicholas Marriott <n...@users.sourceforge.net>
> + *
> + * Permission to use, copy, modify, and distribute this software for any
> + * purpose with or without fee is hereby granted, provided that the above
> + * copyright notice and this permission notice appear in all copies.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
> + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
> + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
> + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
> + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
> + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
> + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
> + */
> +
> +#include <sys/types.h>
> +#include <sys/stat.h>
> +
> +#include <event.h>
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <unistd.h>
> +
> +#include "tmux.h"
> +
> +char *
> +osdep_get_name(int fd, unused char *tty)
> +{
> +     FILE    *f;
> +     char    *path, *buf;
> +     size_t   len;
> +     int      ch;
> +     pid_t    pgrp;
> +
> +     if ((pgrp = tcgetpgrp(fd)) == -1)
> +             return (NULL);
> +
> +     xasprintf(&path, "/proc/%lld/cmdline", (long long) pgrp);
> +     if ((f = fopen(path, "r")) == NULL) {
> +             free(path);
> +             return (NULL);
> +     }
> +     free(path);
> +
> +     len = 0;
> +     buf = NULL;
> +     while ((ch = fgetc(f)) != EOF) {
> +             if (ch == '\0')
> +                     break;
> +             buf = xrealloc(buf, 1, len + 2);
> +             buf[len++] = ch;
> +     }
> +     if (buf != NULL)
> +             buf[len] = '\0';
> +
> +     fclose(f);
> +     return (buf);
> +}
> +
> +char *
> +osdep_get_cwd(int fd)
> +{
> +     static char      target[MAXPATHLEN + 1];
> +     char            *path;
> +     pid_t            pgrp;
> +     ssize_t          n;
> +
> +     if ((pgrp = tcgetpgrp(fd)) == -1)
> +             return (NULL);
> +
> +     xasprintf(&path, "/proc/%lld/cwd", (long long) pgrp);
> +     n = readlink(path, target, MAXPATHLEN);
> +     free(path);
> +     if (n > 0) {
> +             target[n] = '\0';
> +             return (target);
> +     }
> +     return (NULL);
> +}
> +
> +struct event_base *
> +osdep_event_init(void)
> +{
> +     return (event_init());
> +}
> 

> ------------------------------------------------------------------------------
> Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
> With Perforce, you get hassle-free workflows. Merge that actually works. 
> Faster operations. Version large binaries.  Built-in WAN optimization and the
> freedom to use Git, Perforce or both. Make the move to Perforce.
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk

> _______________________________________________
> tmux-users mailing list
> tmux-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/tmux-users


------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to