Op Tue, 8 Nov 2005 22:50:55 +0100 (MET) schreef Bas van Gompel
in <[EMAIL PROTECTED]>:
: Hi,
: Here is a patch to make setup tell where files are actually being
: downloaded from.
So, here is a modified version, using more std::stringy ways.
I got carried away a bit, and turned some more Strings into
std::string.
Also I needed to edit res.rc to prevent wrapping.
ChangeLog-entry: (Please fix the <at>.)
2005-12-05 Bas van Gompel <patch-cygsup.buzz<at>bavag.tmfweb.nl>
* geturl.cc: Use std::string, not String.
(init_dialog): Tell where file is downloaded from.
* geturl.h: Use std::string, not String.
* res.rc (IDD_INSTATUS): make IDC_INS_PKG not wrap.
L8r,
Buzz.
--
) | | ---/ ---/ Yes, this | This message consists of true | I do not
-- | | / / really is | and false bits entirely. | mail for
) | | / / a 72 by 4 +-------------------------------+ any1 but
-- \--| /--- /--- .sigfile. | |perl -pe "s.u(z)\1.as." | me. 4^re
Index: setup/geturl.cc
===================================================================
RCS file: /cvs/cygwin-apps/setup/geturl.cc,v
retrieving revision 2.25
diff -u -p -r2.25 geturl.cc
--- setup/geturl.cc 5 May 2005 22:48:35 -0000 2.25
+++ setup/geturl.cc 5 Dec 2005 02:58:22 -0000
@@ -61,18 +61,17 @@ int total_download_bytes_sofar = 0;
static DWORD start_tics;
static void
-init_dialog (String const &url, int length, HWND owner)
+init_dialog (std::string const &url, int length, HWND owner)
{
if (is_local_install)
return;
- char const *last_component = url.c_str();
- for (const char *ch = last_component; *ch; ch++)
- if (*ch == '/' || *ch == '\\' || *ch == ':')
- last_component = ch + 1;
+ int p_slash = url.find_last_of ('/');
+
max_bytes = length;
Progress.SetText1("Downloading...");
- Progress.SetText2(last_component);
+ Progress.SetText2((url.substr(p_slash + 1) + " from "
+ + url.substr(0, p_slash)).c_str());
Progress.SetText3("Connecting...");
Progress.SetBar1(0);
start_tics = GetTickCount ();
@@ -112,7 +111,7 @@ progress (int bytes)
}
static void
-getUrlToStream (String const &_url, HWND owner, io_stream *output)
+getUrlToStream (std::string const &_url, HWND owner, io_stream *output)
{
log (LOG_BABBLE) << "getUrlToStream " << _url << endLog;
is_local_install = (source == IDC_SOURCE_CWD);
@@ -153,7 +152,7 @@ getUrlToStream (String const &_url, HWND
}
io_stream *
-get_url_to_membuf (String const &_url, HWND owner)
+get_url_to_membuf (std::string const &_url, HWND owner)
{
io_stream_memory *membuf = new io_stream_memory ();
try
@@ -181,31 +180,31 @@ get_url_to_membuf (String const &_url, H
}
// predicate: url has no '\0''s in it.
-String
-get_url_to_string (String const &_url, HWND owner)
+std::string
+get_url_to_string (std::string const &_url, HWND owner)
{
io_stream *stream = get_url_to_membuf (_url, owner);
if (!stream)
- return String();
+ return std::string();
size_t bytes = stream->get_size ();
if (!bytes)
{
/* zero length, or error retrieving length */
delete stream;
log (LOG_BABBLE) << "get_url_to_string(): couldn't retrieve buffer size,
or zero length buffer" << endLog;
- return String();
+ return std::string();
}
char temp [bytes + 1];
/* membufs are quite safe */
stream->read (temp, bytes);
temp [bytes] = '\0';
delete stream;
- return String(temp);
+ return std::string(temp);
}
int
-get_url_to_file (String const &_url,
- String const &_filename,
+get_url_to_file (std::string const &_url,
+ std::string const &_filename,
int expected_length,
HWND owner)
{
Index: setup/geturl.h
===================================================================
RCS file: /cvs/cygwin-apps/setup/geturl.h,v
retrieving revision 2.10
diff -u -p -r2.10 geturl.h
--- setup/geturl.h 23 Dec 2004 18:12:12 -0000 2.10
+++ setup/geturl.h 5 Dec 2005 02:58:22 -0000
@@ -23,11 +23,10 @@ extern int total_download_bytes;
extern int total_download_bytes_sofar;
class io_stream;
-class String;
-io_stream *get_url_to_membuf (String const &, HWND owner);
-String get_url_to_string (String const&, HWND owner);
-int get_url_to_file (String const &_url, String const &_filename,
+io_stream *get_url_to_membuf (std::string const &, HWND owner);
+std::string get_url_to_string (std::string const&, HWND owner);
+int get_url_to_file (std::string const &_url, std::string const &_filename,
int expected_size, HWND owner);
#endif /* SETUP_GETURL_H */
Index: setup/res.rc
===================================================================
RCS file: /cvs/cygwin-apps/setup/res.rc,v
retrieving revision 2.68
diff -u -p -r2.68 res.rc
--- setup/res.rc 30 Nov 2005 22:48:31 -0000 2.68
+++ setup/res.rc 5 Dec 2005 02:58:49 -0000
@@ -190,7 +190,7 @@ CAPTION "Cygwin Setup"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Installing...",IDC_INS_ACTION,45,55,205,8,NOT WS_GROUP
- LTEXT "(PKG)",IDC_INS_PKG,45,70,205,8,NOT WS_GROUP
+ LTEXT "(PKG)",IDC_INS_PKG,45,70,205,8,NOT WS_GROUP |
SS_LEFTNOWORDWRAP
LTEXT "(FILE)",IDC_INS_FILE,45,85,205,8,NOT WS_GROUP
CONTROL "Progress1",IDC_INS_DISKFULL,"msctls_progress32",
PBS_SMOOTH | WS_BORDER,95,130,155,10