[haiku-commits] r33926 - haiku/trunk/src/bin

  • From: revol@xxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 7 Nov 2009 00:47:53 +0100 (CET)

Author: mmu_man
Date: 2009-11-07 00:47:53 +0100 (Sat, 07 Nov 2009)
New Revision: 33926
Changeset: http://dev.haiku-os.org/changeset/33926/haiku

Modified:
   haiku/trunk/src/bin/checkitout.cpp
Log:
- fix BeOS build,
- add handling of svn: and svn+ssh: urls.


Modified: haiku/trunk/src/bin/checkitout.cpp
===================================================================
--- haiku/trunk/src/bin/checkitout.cpp  2009-11-06 22:14:11 UTC (rev 33925)
+++ haiku/trunk/src/bin/checkitout.cpp  2009-11-06 23:47:53 UTC (rev 33926)
@@ -31,9 +31,12 @@
 
 const char* kAppSig = "application/x-vnd.Haiku-checkitout";
 const char* kTrackerSig = "application/x-vnd.Be-TRAK";
+#if __HAIKU__
 const char* kTerminalSig = "application/x-vnd.Haiku-Terminal";
+#else
+const char* kTerminalSig = "application/x-vnd.Be-SHEL";
+#endif
 
-
 CheckItOut::CheckItOut() : BApplication(kAppSig)
 {
 }
@@ -74,7 +77,7 @@
                        bool modal = false, bool hideWhenDone = true);
        */
        panel->Window()->SetTitle("Check It Out to...");
-       panel->SetSaveText(name);
+       panel->SetSaveText(name.String());
        panel->Show();
        return B_OK;
 }
@@ -97,7 +100,7 @@
                        BString name;
                        msg->FindRef("directory", &ref);
                        msg->FindString("name", &name);
-                       _DoCheckItOut(&ref, name);
+                       _DoCheckItOut(&ref, name.String());
                        break;
                }
                case B_CANCEL:
@@ -110,8 +113,10 @@
 void
 CheckItOut::ArgvReceived(int32 argc, char** argv)
 {
-       if (argc <= 1)
+       if (argc <= 1) {
+               exit(1);
                return;
+       }
        
        BPrivate::Support::BUrl url(argv[1]);
        fUrlString = url;
@@ -152,7 +157,7 @@
        const char* pausec = " ; read -p 'Press any key'";
        char* args[] = { (char *)"/bin/sh", (char *)"-c", NULL, NULL};
 
-       BPrivate::Support::BUrl url(fUrlString);
+       BPrivate::Support::BUrl url(fUrlString.String());
        BString full = url.Full();
        BString proto = url.Proto();
        BString host = url.Host();
@@ -175,7 +180,19 @@
                be_roster->Launch(kTerminalSig, 3, args);
                return B_OK;
        }
-       return B_OK;
+       if (proto == "svn" || proto == "svn+ssh") {
+               BString cmd("svn checkout ");
+               cmd << url;
+               cmd << " '" << refPath.Path() << "/" << name << "'";
+               PRINT(("CMD='%s'\n", cmd.String()));
+               cmd << " && open '" << refPath.Path() << "/" << name << "'";
+               cmd << failc;
+               PRINT(("CMD='%s'\n", cmd.String()));
+               args[2] = (char*)cmd.String();
+               be_roster->Launch(kTerminalSig, 3, args);
+               return B_OK;
+       }
+       return B_ERROR;
 }
 
 


Other related posts:

  • » [haiku-commits] r33926 - haiku/trunk/src/bin - revol