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