=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd.c,v retrieving revision 1.87 retrieving revision 1.88 diff -u -r1.87 -r1.88 --- src/usr.bin/tmux/cmd.c 2013/10/10 12:07:36 1.87 +++ src/usr.bin/tmux/cmd.c 2013/10/10 12:28:56 1.88 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd.c,v 1.87 2013/10/10 12:07:36 nicm Exp $ */ +/* $OpenBSD: cmd.c,v 1.88 2013/10/10 12:28:56 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -1276,75 +1276,4 @@ } return (buf); -} - -/* - * Return the default path for a new pane. Several special values are accepted: - * the empty string or relative path for the current working directory, - * ~ for the user's home, - for the base working directory, . for the server - * working directory. - */ -const char * -cmd_default_path(const char *base, const char *current, const char *in) -{ - const char *root; - struct environ_entry *envent; - char tmp[MAXPATHLEN]; - struct passwd *pw; - int n; - size_t skip; - static char path[MAXPATHLEN]; - - skip = 1; - if (strcmp(in, "$HOME") == 0 || strncmp(in, "$HOME/", 6) == 0) { - /* User's home directory - $HOME. */ - skip = 5; - goto find_home; - } else if (in[0] == '~' && (in[1] == '\0' || in[1] == '/')) { - /* User's home directory - ~. */ - goto find_home; - } else if (in[0] == '-' && (in[1] == '\0' || in[1] == '/')) { - /* Base working directory. */ - root = base; - goto complete_path; - } else if (in[0] == '.' && (in[1] == '\0' || in[1] == '/')) { - /* Server working directory. */ - if (getcwd(tmp, sizeof tmp) != NULL) { - root = tmp; - goto complete_path; - } - return ("/"); - } else if (*in == '/') { - /* Absolute path. */ - return (in); - } else { - /* Empty or relative path. */ - if (current != NULL) - root = current; - else - return (base); - skip = 0; - goto complete_path; - } - - return (base); - -find_home: - envent = environ_find(&global_environ, "HOME"); - if (envent != NULL && *envent->value != '\0') - root = envent->value; - else if ((pw = getpwuid(getuid())) != NULL) - root = pw->pw_dir; - else - return (base); - -complete_path: - if (root[skip] == '\0') { - strlcpy(path, root, sizeof path); - return (path); - } - n = snprintf(path, sizeof path, "%s/%s", root, in + skip); - if (n > 0 && (size_t)n < sizeof path) - return (path); - return (base); }