From: Nguyen Thai Ngoc Duy Date: Wed, 13 Apr 2011 13:24:44 GMT Subject: Re: [RFC/PATCH] handle_alias: provide GIT_CWD to !alias Message-ID: In-Reply-To: <4DA5A228.2040105@drmicha.warpmail.net> On Wed, Apr 13, 2011 at 8:16 PM, Michael J Gruber wrote: > Nguyen Thai Ngoc Duy venit, vidit, dixit 13.04.2011 15:12: >> On Wed, Apr 13, 2011 at 8:05 PM, Michael J Gruber >> wrote: >>> -                       ret = run_command_v_opt(alias_argv, RUN_USING_SHELL); >>> +                       strbuf_addstr(&sb, "GIT_CWD="); >>> +                       if (subdir) >>> +                               strbuf_addstr(&sb, subdir); >>> +                       env[0] = sb.buf; >>> +                       env[1] = NULL; >>> +                       ret = run_command_v_opt_cd_env(alias_argv, RUN_USING_SHELL, NULL, env); >>> +                       strbuf_release(&sb); >>>                        if (ret >= 0)   /* normal exit */ >>>                                exit(ret); >> >> subdir can be NULL. I'm not sure if it can be empty string though. May > > I'm pretty sure that my "if (subdir)" would catch that... Yes. I skimmed too quick and realized after sending my email. >> need a check and set it to '.' so "cd $GIT_CWD" does not go back to >> $HOME. > > Well, with the current implementation you get empty or the subdir so > that you can easily "test -n $GIT_CWD". If you want to cd around you can > do "cd ./$GIT_CWD" unconditionally. I think this is more useful than > having a "." there. In that case should the variable have a another name? CWD/PWD is usually absolute path. "cd ./$GIT_CWD" looks odd to me. Or you can getcwd() and set $OLDPWD. -- Duy