From 550bad1124fbad500c2b05e950b1cecc6b9f1c60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sun, 3 Oct 2010 21:02:47 +0000 Subject: [PATCH] * 7zip asks for a password on the stdout, we check for the "Enter password" string. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38878 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/expander/ExpanderWindow.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/apps/expander/ExpanderWindow.cpp b/src/apps/expander/ExpanderWindow.cpp index 2fd63bc681..f6e50adb4a 100644 --- a/src/apps/expander/ExpanderWindow.cpp +++ b/src/apps/expander/ExpanderWindow.cpp @@ -335,6 +335,20 @@ ExpanderWindow::MessageReceived(BMessage* msg) fListingText->Insert(string.String()); } fListingText->ScrollToSelection(); + } else if (fExpandingStarted) { + BString string; + int32 i = 0; + while (msg->FindString("output", i++, &string) == B_OK) { + if (strstr(string.String(), "Enter password") != NULL) { + fExpandingThread->SuspendExternalExpander(); + BString password; + PasswordAlert* alert = + new PasswordAlert("passwordAlert", string); + alert->Go(password); + fExpandingThread->ResumeExternalExpander(); + fExpandingThread->PushInput(password); + } + } } break; @@ -346,7 +360,8 @@ ExpanderWindow::MessageReceived(BMessage* msg) fExpandingThread->SuspendExternalExpander(); if (strstr(string.String(), "password") != NULL) { BString password; - PasswordAlert* alert = new PasswordAlert("passwordAlert", string); + PasswordAlert* alert = new PasswordAlert("passwordAlert", + string); alert->Go(password); fExpandingThread->ResumeExternalExpander(); fExpandingThread->PushInput(password); @@ -356,7 +371,7 @@ ExpanderWindow::MessageReceived(BMessage* msg) B_WIDTH_AS_USUAL, B_EVEN_SPACING, B_WARNING_ALERT); if (alert->Go() == 0) { fExpandingThread->ResumeExternalExpander(); - StopExpanding(); + StopExpanding(); } else fExpandingThread->ResumeExternalExpander(); }