On 24 May 2011 10:50, Corinna Vinschen wrote:
> On May 24 11:15, Corinna Vinschen wrote:
>> On May 23 21:14, Andy Koppe wrote:
>> > On 23 May 2011 12:50, Corinna Vinschen wrote:
>> > > And who's going to create the patches?
>> >
>> > I suppose that should be me, but my spare time is rather limited at
>> > the moment and I still owe a patch or two for other things.
>>
>> I'm just trying a setup.exe patch which creates "Cygwin Terminal"
>> desktop and start menu entries which point to "mintty -".  I just
>> have to get rid of my build environment problems...
>
> Ok, here's my patch.  It just replaces the Desktop and Start Menu
> entries with "Cygwin Terminal" entries pointing to "mintty -" and
> leaves Cygwin.bat untouched.  Is that ok with everyone?
>
> Index: desktop.cc
> ===================================================================
> RCS file: /cvs/cygwin-apps/setup/desktop.cc,v
> retrieving revision 2.55
> diff -u -p -r2.55 desktop.cc
> --- desktop.cc  19 Nov 2010 15:49:54 -0000      2.55
> +++ desktop.cc  24 May 2011 09:47:51 -0000
> @@ -78,7 +78,8 @@ DesktopSetupPage::DesktopSetupPage ()
>  static void
>  make_link (const std::string& linkpath,
>            const std::string& title,
> -           const std::string& target)
> +           const std::string& target,
> +           const std::string& arg)
>  {
>   std::string fname = linkpath + "/" + title + ".lnk";
>
> @@ -93,10 +94,10 @@ make_link (const std::string& linkpath,
>   std::string exepath;
>   std::string argbuf;
>
> -  if (!is_legacy)
> +  if (IsWindowsNT ())
>     {
>       exepath = target;
> -      argbuf = " ";
> +      argbuf = arg;
>     }
>   else
>     {
> @@ -105,6 +106,8 @@ make_link (const std::string& linkpath,
>       GetWindowsDirectory (windir, sizeof (windir));
>       exepath = std::string(windir) + "\\command.com";
>       argbuf = "/E:4096 /c " + target;
> +      if (arg.size ())
> +       argbuf += " " + arg;
>     }
>
>   msg ("make_link_2 (%s, %s, %s, %s)",
> @@ -115,7 +118,8 @@ make_link (const std::string& linkpath,
>  }
>
>  static void
> -start_menu (const std::string& title, const std::string& target)
> +start_menu (const std::string& title, const std::string& target,
> +           const std::string& arg)
>  {
>   LPITEMIDLIST id;
>   int issystem = (root_scope == IDC_ROOT_SYSTEM) ? 1 : 0;
> @@ -137,11 +141,12 @@ start_menu (const std::string& title, co
>     }
>  // end of Win95 addition
>   path += "/Cygwin";
> -  make_link (path, title, target);
> +  make_link (path, title, target, arg);
>  }
>
>  static void
> -desktop_icon (const std::string& title, const std::string& target)
> +desktop_icon (const std::string& title, const std::string& target,
> +             const std::string& arg)
>  {
>   char path[MAX_PATH];
>   LPITEMIDLIST id;
> @@ -161,7 +166,7 @@ desktop_icon (const std::string& title,
>       msg ("Desktop directory for deskop link changed to: %s", path);
>     }
>  // end of Win95 addition
> -  make_link (path, title, target);
> +  make_link (path, title, target, arg);
>  }
>
>  static void
> @@ -243,15 +248,17 @@ do_desktop_setup ()
>
>   make_cygwin_bat ();
>
> +  std::string target;
> +
> +  target = is_legacy ? batname : backslash (cygpath ("/bin/mintty"));
> +
>   if (root_menu)
> -    {
> -      start_menu ("Cygwin Bash Shell", batname);
> -    }
> +    start_menu (is_legacy ? "Cygwin Bash Shell" : "Cygwin Terminal", target,
> +               is_legacy ? "" : "-");
>
>   if (root_desktop)
> -    {
> -      desktop_icon ("Cygwin", batname);
> -    }
> +    desktop_icon (is_legacy ? "Cygwin" : "Cygwin Terminal", target,
> +                 is_legacy ? "" : "-");
>  }
>
>  static int da[] = { IDC_ROOT_DESKTOP, 0 };
> @@ -425,8 +432,11 @@ DesktopSetupPage::OnActivate ()
>       else
>        {
>          root_menu =
> -           check_startmenu ("Cygwin Bash Shell",
> -                            backslash (cygpath ("/cygwin.bat")));
> +           is_legacy
> +           ? check_startmenu ("Cygwin Bash Shell",
> +                              backslash (cygpath ("/cygwin.bat")))
> +           : check_startmenu ("Cygwin Terminal",
> +                              backslash (cygpath ("/bin/mintty")));
>        }
>
>       if (NoDesktopOption)
> @@ -436,7 +446,10 @@ DesktopSetupPage::OnActivate ()
>       else
>        {
>          root_desktop =
> -           check_desktop ("Cygwin", backslash (cygpath ("/cygwin.bat")));
> +           is_legacy
> +           ? check_desktop ("Cygwin", backslash (cygpath ("/cygwin.bat")))
> +           : check_desktop ("Cygwin Terminal",
> +                            backslash (cygpath ("/bin/mintty")));
>        }
>     }

Ah, sorry, I didn't realise that the desktop shortcut at the moment
was simply called "Cygwin" rather than "Cygwin Bash Shell". I suppose
that could just stay like that actually.

Also, since the start menu shortcut already is inside the "Cygwin"
folder, just "Terminal" rather than "Cygwin Terminal" would be nice
and crisp there.

Andy

Reply via email to