summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2005-07-25 22:45:28 (UTC)
committer Michael Krelin <hacker@klever.net>2005-07-25 22:45:28 (UTC)
commitd2f4327f3752ff30c3b0ec7fdd2e63bc1a1db5ee (patch) (unidiff)
tree1b5ddc636cee876fac8e90eb78ca3546a1a631b1
parent10639b71121a3fe7de24fe141d8dbe399fa283ff (diff)
downloaddipstick-d2f4327f3752ff30c3b0ec7fdd2e63bc1a1db5ee.zip
dipstick-d2f4327f3752ff30c3b0ec7fdd2e63bc1a1db5ee.tar.gz
dipstick-d2f4327f3752ff30c3b0ec7fdd2e63bc1a1db5ee.tar.bz2
added ability to parse multiple urls from plaintext selection and bumped versions
git-svn-id: http://svn.klever.net/kin/dipstick/trunk@126 fe716a7a-6dde-0310-88d9-d003556173a8
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--COPYING2
-rw-r--r--DipstickDlg.cpp62
-rw-r--r--DipstickDlg.h2
-rw-r--r--dipstick.rc24
-rw-r--r--help/dipstick.rtf4
-rw-r--r--help/dipstick.xml5
-rw-r--r--install/install.cpp2
-rw-r--r--install/install.rc10
-rw-r--r--resource.h1
-rw-r--r--stdafx.h3
10 files changed, 83 insertions, 32 deletions
diff --git a/COPYING b/COPYING
index 427b0ba..fa23ff9 100644
--- a/COPYING
+++ b/COPYING
@@ -1,9 +1,9 @@
1Copyright (c) 1996-2004 Klever Group (http://www.klever.net/) 1Copyright (c) 1996-2005 Klever Group (http://www.klever.net/)
2 2
3Permission is hereby granted, free of charge, to any person obtaining a copy of 3Permission is hereby granted, free of charge, to any person obtaining a copy of
4this software and associated documentation files (the "Software"), to deal in 4this software and associated documentation files (the "Software"), to deal in
5the Software without restriction, including without limitation the rights to 5the Software without restriction, including without limitation the rights to
6use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 6use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7of the Software, and to permit persons to whom the Software is furnished to do 7of the Software, and to permit persons to whom the Software is furnished to do
8so, subject to the following conditions: 8so, subject to the following conditions:
9 9
diff --git a/DipstickDlg.cpp b/DipstickDlg.cpp
index ace2aff..f27b219 100644
--- a/DipstickDlg.cpp
+++ b/DipstickDlg.cpp
@@ -100,16 +100,18 @@ WORD hi,lo;
100 //}}AFX_DATA_INIT 100 //}}AFX_DATA_INIT
101 // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 101 // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
102 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 102 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
103 m_bmpBack.LoadBitmap(IDB_DIABACK); 103 m_bmpBack.LoadBitmap(IDB_DIABACK);
104 m_bmpBack.GetBitmap(&m_bitmapBack); 104 m_bmpBack.GetBitmap(&m_bitmapBack);
105CString tmp; 105CString tmp;
106 VERIFY(tmp.LoadString(IDS_REGEX_HTMLURL)); 106 VERIFY(tmp.LoadString(IDS_REGEX_HTMLURL));
107 VERIFY(m_reHTMLURL.Compile(tmp,CRegEx::regExtended|CRegEx::regIgnoreCase)); 107 VERIFY(m_reHTMLURL.Compile(tmp,CRegEx::regExtended|CRegEx::regIgnoreCase));
108 VERIFY(tmp.LoadString(IDS_REGEX_URL));
109 VERIFY(m_reURL.Compile(tmp,CRegEx::regExtended|CRegEx::regIgnoreCase));
108} 110}
109 111
110CDipstickDlg::~CDipstickDlg() 112CDipstickDlg::~CDipstickDlg()
111{ 113{
112} 114}
113 115
114void CDipstickDlg::DoDataExchange(CDataExchange* pDX) 116void CDipstickDlg::DoDataExchange(CDataExchange* pDX)
115{ 117{
@@ -130,16 +132,17 @@ void CDipstickDlg::DoDataExchange(CDataExchange* pDX)
130 132
131BEGIN_MESSAGE_MAP(CDipstickDlg, CDialog) 133BEGIN_MESSAGE_MAP(CDipstickDlg, CDialog)
132 //{{AFX_MSG_MAP(CDipstickDlg) 134 //{{AFX_MSG_MAP(CDipstickDlg)
133 ON_WM_SYSCOMMAND() 135 ON_WM_SYSCOMMAND()
134 ON_WM_PAINT() 136 ON_WM_PAINT()
135 ON_WM_QUERYDRAGICON() 137 ON_WM_QUERYDRAGICON()
136 ON_WM_DESTROY() 138 ON_WM_DESTROY()
137 ON_BN_CLICKED(IDC_OPTIONS, OnOptions) 139 ON_BN_CLICKED(IDC_OPTIONS, OnOptions)
140 ON_MESSAGE(WM_DNP_URLSPING, OnURLSPing)
138 ON_MESSAGE(WM_DNP_URLPING, OnUrlPing) 141 ON_MESSAGE(WM_DNP_URLPING, OnUrlPing)
139 ON_MESSAGE(WM_DNP_ACTIVITYCOUNT, OnActivityCount) 142 ON_MESSAGE(WM_DNP_ACTIVITYCOUNT, OnActivityCount)
140 ON_MESSAGE(WM_DNP_UPDATEHOSTDATA, OnUpdateHostData) 143 ON_MESSAGE(WM_DNP_UPDATEHOSTDATA, OnUpdateHostData)
141 ON_MESSAGE(WM_DNP_HTML, OnHTMLTransfer) 144 ON_MESSAGE(WM_DNP_HTML, OnHTMLTransfer)
142 ON_NOTIFY(LVN_COLUMNCLICK, IDC_HOSTLIST, OnColumnclickHostlist) 145 ON_NOTIFY(LVN_COLUMNCLICK, IDC_HOSTLIST, OnColumnclickHostlist)
143 ON_WM_WINDOWPOSCHANGING() 146 ON_WM_WINDOWPOSCHANGING()
144 ON_COMMAND(ID_DRAGPAD_OPTIONS, OnDragpadOptions) 147 ON_COMMAND(ID_DRAGPAD_OPTIONS, OnDragpadOptions)
145 ON_COMMAND(ID_DRAGPAD_SHOWMAINWINDOW, OnDragpadShowmainwindow) 148 ON_COMMAND(ID_DRAGPAD_SHOWMAINWINDOW, OnDragpadShowmainwindow)
@@ -1180,16 +1183,17 @@ UINT cfNIF = RegisterClipboardFormat("Netscape Image Format");
1180 memmove(htmlBuff,&lps[startSelection],endSelection-startSelection+1); 1183 memmove(htmlBuff,&lps[startSelection],endSelection-startSelection+1);
1181 htmlBuff[endSelection-startSelection+1]=0; 1184 htmlBuff[endSelection-startSelection+1]=0;
1182 xf->html.ReleaseBuffer(); 1185 xf->html.ReleaseBuffer();
1183 if(bTestOnly){ 1186 if(bTestOnly){
1184 rv = m_reHTMLURL.Match(xf->html); 1187 rv = m_reHTMLURL.Match(xf->html);
1185 delete xf; 1188 delete xf;
1186 }else{ 1189 }else{
1187 PostMessage(WM_DNP_HTML,0,(LPARAM)xf); 1190 PostMessage(WM_DNP_HTML,0,(LPARAM)xf);
1191 rv = TRUE;
1188 } 1192 }
1189 }while(FALSE); 1193 }while(FALSE);
1190 GlobalUnlock(hg); 1194 GlobalUnlock(hg);
1191 GlobalFree(hg); 1195 GlobalFree(hg);
1192 return rv; 1196 return rv;
1193 } 1197 }
1194 if(pDO->IsDataAvailable(cfNIF)){ 1198 if(pDO->IsDataAvailable(cfNIF)){
1195 if(!bTestOnly){ 1199 if(!bTestOnly){
@@ -1205,26 +1209,38 @@ UINT cfNIF = RegisterClipboardFormat("Netscape Image Format");
1205 } *nif = (_nif*)lpv; 1209 } *nif = (_nif*)lpv;
1206 PostMessage(WM_DNP_URLPING,0,(LPARAM)new CString((LPCTSTR)&nif->data[nif->m_offURL])); 1210 PostMessage(WM_DNP_URLPING,0,(LPARAM)new CString((LPCTSTR)&nif->data[nif->m_offURL]));
1207 GlobalUnlock(hg); 1211 GlobalUnlock(hg);
1208 GlobalFree(hg); 1212 GlobalFree(hg);
1209 } 1213 }
1210 return TRUE; 1214 return TRUE;
1211 } 1215 }
1212 if(pDO->IsDataAvailable(CF_TEXT)){ 1216 if(pDO->IsDataAvailable(CF_TEXT)){
1213 if(!bTestOnly){ 1217 BOOL rv = FALSE;
1214 HGLOBAL hg = pDO->GetGlobalData(CF_TEXT); 1218 HGLOBAL hg = pDO->GetGlobalData(CF_TEXT);
1215 ASSERT(hg); 1219 ASSERT(hg);
1216 LPVOID lpv = GlobalLock(hg); 1220 LPVOID lpv = GlobalLock(hg);
1217 ASSERT(lpv); 1221 ASSERT(lpv);
1218 PostMessage(WM_DNP_URLPING,0,(LPARAM)new CString((LPCTSTR)lpv)); 1222 if(bTestOnly){
1219 GlobalUnlock(hg); 1223 rv = m_reURL.Match((LPCSTR)lpv);
1220 GlobalFree(hg); 1224 }else{
1225 CString sel = (LPCSTR)lpv;
1226 if(m_reURL.Match(sel)) {
1227 rv = TRUE;
1228 CString tmp = m_reURL.GetMatch(CRegEx::matchPostMatch);
1229 if(m_reURL.Match(tmp)) {
1230 PostMessage(WM_DNP_URLSPING,0,(LPARAM)new CString((LPCSTR)lpv));
1231 }else{
1232 PostMessage(WM_DNP_URLPING,0,(LPARAM)new CString((LPCTSTR)lpv));
1233 }
1234 }
1221 } 1235 }
1222 return TRUE; 1236 GlobalUnlock(hg);
1237 GlobalFree(hg);
1238 return rv;
1223 } 1239 }
1224 return FALSE; 1240 return FALSE;
1225} 1241}
1226 1242
1227LRESULT CDipstickDlg::OnHTMLTransfer(WPARAM wP, LPARAM lP) 1243LRESULT CDipstickDlg::OnHTMLTransfer(WPARAM wP, LPARAM lP)
1228{ 1244{
1229_xferHTML* xf = (_xferHTML*)lP; 1245_xferHTML* xf = (_xferHTML*)lP;
1230CSelectURLsDlg su; 1246CSelectURLsDlg su;
@@ -1252,16 +1268,42 @@ CSelectURLsDlg su;
1252 while(p){ 1268 while(p){
1253 CString url = su.m_URLs.GetNext(p); 1269 CString url = su.m_URLs.GetNext(p);
1254 PostMessage(WM_DNP_URLPING,0,(LPARAM)new CString(url)); 1270 PostMessage(WM_DNP_URLPING,0,(LPARAM)new CString(url));
1255 } 1271 }
1256 } 1272 }
1257 return 0; 1273 return 0;
1258} 1274}
1259 1275
1276LRESULT CDipstickDlg::OnURLSPing(WPARAM wP,LPARAM lP)
1277{
1278CString *sel = (CString*)lP;
1279TRACE1("URLS: %s\n",(LPCTSTR)*sel);
1280CSelectURLsDlg su;
1281 su.m_bAdjust = m_bSmartAdjust;
1282 su.m_bAdjustInnermost = m_bAdjustInnermost;
1283 BeginWaitCursor();
1284 while(m_reURL.Match(*sel)){
1285 CString url = m_reURL.GetMatch(CRegEx::matchMatch);
1286 (*sel) = m_reURL.GetMatch(CRegEx::matchPostMatch);
1287 if(!su.m_URLs.Find(url))
1288 VERIFY(su.m_URLs.AddTail(url));
1289 }
1290 EndWaitCursor();
1291 delete sel;
1292 if(su.DoModal()==IDOK){
1293 POSITION p = su.m_URLs.GetHeadPosition();
1294 while(p){
1295 CString url = su.m_URLs.GetNext(p);
1296 PostMessage(WM_DNP_URLPING,0,(LPARAM)new CString(url));
1297 }
1298 }
1299 return 0;
1300}
1301
1260UINT CPingyHost::PingProc(LPVOID pParam) 1302UINT CPingyHost::PingProc(LPVOID pParam)
1261{ 1303{
1262CPingyHost* pThis = (CPingyHost*)pParam; 1304CPingyHost* pThis = (CPingyHost*)pParam;
1263 ASSERT(pThis->m_Daddy); 1305 ASSERT(pThis->m_Daddy);
1264 return pThis->DoPing(); 1306 return pThis->DoPing();
1265} 1307}
1266 1308
1267UINT CPingyHost::DoPing() 1309UINT CPingyHost::DoPing()
@@ -1578,9 +1620,9 @@ CSingleLock sl(&m_mutex);
1578UINT CPingyHost::SuicideProc(LPVOID pParam) 1620UINT CPingyHost::SuicideProc(LPVOID pParam)
1579{ 1621{
1580CPingyHost* pThis = (CPingyHost*)pParam; 1622CPingyHost* pThis = (CPingyHost*)pParam;
1581CSingleLock sl(&pThis->m_mutex); 1623CSingleLock sl(&pThis->m_mutex);
1582 sl.Lock(); 1624 sl.Lock();
1583 VERIFY(sl.Unlock()); 1625 VERIFY(sl.Unlock());
1584 delete pThis; 1626 delete pThis;
1585 return 0; 1627 return 0;
1586} 1628} \ No newline at end of file
diff --git a/DipstickDlg.h b/DipstickDlg.h
index ce9ed22..47c3e01 100644
--- a/DipstickDlg.h
+++ b/DipstickDlg.h
@@ -38,16 +38,18 @@ class CDragPad;
38class CDipstickDlg : public CDialog 38class CDipstickDlg : public CDialog
39{ 39{
40// Construction 40// Construction
41 struct _xferHTML{ 41 struct _xferHTML{
42 CString html; 42 CString html;
43 CCrackURL src; 43 CCrackURL src;
44 }; 44 };
45public: 45public:
46 LRESULT OnURLSPing(WPARAM wP,LPARAM lP);
47 CRegEx m_reURL;
46 BOOL ExportLocations(LPCTSTR file); 48 BOOL ExportLocations(LPCTSTR file);
47 CString m_impexPath; 49 CString m_impexPath;
48 BOOL ImportLocations(LPCTSTR file); 50 BOOL ImportLocations(LPCTSTR file);
49 BOOL m_bIgnorelative; 51 BOOL m_bIgnorelative;
50 CEvent m_eveStartup; 52 CEvent m_eveStartup;
51 UINT volatile m_ActiveThreads; 53 UINT volatile m_ActiveThreads;
52 BOOL m_bAdjustInnermost; 54 BOOL m_bAdjustInnermost;
53 BOOL m_bSmartAdjust; 55 BOOL m_bSmartAdjust;
diff --git a/dipstick.rc b/dipstick.rc
index 55f9fde..8797946 100644
--- a/dipstick.rc
+++ b/dipstick.rc
@@ -77,29 +77,28 @@ IDI_UNREACHABLE ICON DISCARDABLE "res\\unreach.ico"
77// 77//
78 78
79IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 213, 61 79IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 213, 61
80STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU 80STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_CAPTION | WS_SYSMENU
81CAPTION "About Dipstick" 81CAPTION "About Dipstick"
82FONT 8, "MS Sans Serif" 82FONT 8, "MS Sans Serif"
83BEGIN 83BEGIN
84 ICON IDR_MAINFRAME,IDC_STATIC,11,17,21,20 84 ICON IDR_MAINFRAME,IDC_STATIC,11,17,21,20
85 LTEXT "Dipstick, Version 3.0",IDC_STATIC,40,7,89,8, 85 LTEXT "Dipstick, Version 3.1-trunk",IDC_STATIC,40,7,89,8,SS_NOPREFIX
86 SS_NOPREFIX 86 LTEXT "Copyright © 1996-2005 Klever Group",IDC_STATIC,40,25,
87 LTEXT "Copyright © 1996-2004 Klever Group", 87 166,8
88 IDC_STATIC,40,25,166,8
89 DEFPUSHBUTTON "OK",IDOK,174,7,32,14,WS_GROUP 88 DEFPUSHBUTTON "OK",IDOK,174,7,32,14,WS_GROUP
90 PUSHBUTTON "http://www.klever.net/",IDC_KLEVERNET,40,40,91,14 89 PUSHBUTTON "http://www.klever.net/",IDC_KLEVERNET,40,40,91,14
91END 90END
92 91
93IDD_DIPSTICK_DIALOG DIALOGEX 0, 0, 419, 152 92IDD_DIPSTICK_DIALOG DIALOGEX 0, 0, 419, 152
94STYLE DS_3DLOOK | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME 93STYLE DS_3DLOOK | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
95EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE | WS_EX_CONTEXTHELP | 94EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE | WS_EX_CONTEXTHELP |
96 WS_EX_APPWINDOW 95 WS_EX_APPWINDOW
97CAPTION " Dipstick 3.0" 96CAPTION " Dipstick 3.1-trunk"
98FONT 8, "MS Sans Serif", 0, 0, 0x1 97FONT 8, "MS Sans Serif", 0, 0, 0x1
99BEGIN 98BEGIN
100 CONTROL "List1",IDC_HOSTLIST,"SysListView32",LVS_REPORT | 99 CONTROL "List1",IDC_HOSTLIST,"SysListView32",LVS_REPORT |
101 LVS_SORTASCENDING | LVS_AUTOARRANGE | WS_BORDER | 100 LVS_SORTASCENDING | LVS_AUTOARRANGE | WS_BORDER |
102 WS_TABSTOP,8,8,349,136,WS_EX_CLIENTEDGE 101 WS_TABSTOP,8,8,349,136,WS_EX_CLIENTEDGE
103 PUSHBUTTON "&Manual Ping",IDC_MANUALPING,361,8,50,14 102 PUSHBUTTON "&Manual Ping",IDC_MANUALPING,361,8,50,14
104 PUSHBUTTON "&Reping",IDC_REPING,361,23,50,14,WS_DISABLED 103 PUSHBUTTON "&Reping",IDC_REPING,361,23,50,14,WS_DISABLED
105 PUSHBUTTON "Reping &All",IDC_REPINGALL,361,38,50,14,WS_DISABLED 104 PUSHBUTTON "Reping &All",IDC_REPINGALL,361,38,50,14,WS_DISABLED
@@ -258,41 +257,41 @@ END
258 257
259#ifndef _MAC 258#ifndef _MAC
260///////////////////////////////////////////////////////////////////////////// 259/////////////////////////////////////////////////////////////////////////////
261// 260//
262// Version 261// Version
263// 262//
264 263
265VS_VERSION_INFO VERSIONINFO 264VS_VERSION_INFO VERSIONINFO
266 FILEVERSION 3,0,0,0 265 FILEVERSION 3,1,0,0
267 PRODUCTVERSION 3,0,0,0 266 PRODUCTVERSION 3,1,0,0
268 FILEFLAGSMASK 0x3fL 267 FILEFLAGSMASK 0x3fL
269#ifdef _DEBUG 268#ifdef _DEBUG
270 FILEFLAGS 0x9L 269 FILEFLAGS 0x9L
271#else 270#else
272 FILEFLAGS 0x8L 271 FILEFLAGS 0x8L
273#endif 272#endif
274 FILEOS 0x4L 273 FILEOS 0x4L
275 FILETYPE 0x1L 274 FILETYPE 0x1L
276 FILESUBTYPE 0x0L 275 FILESUBTYPE 0x0L
277BEGIN 276BEGIN
278 BLOCK "StringFileInfo" 277 BLOCK "StringFileInfo"
279 BEGIN 278 BEGIN
280 BLOCK "040904b0" 279 BLOCK "040904b0"
281 BEGIN 280 BEGIN
282 VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0" 281 VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0"
283 VALUE "FileDescription", "Dipstick, mirror locator\0" 282 VALUE "FileDescription", "Dipstick, mirror locator\0"
284 VALUE "FileVersion", "3, 0, 0, 0\0" 283 VALUE "FileVersion", "3, 1, 0, 0\0"
285 VALUE "InternalName", "DIPSTICK\0" 284 VALUE "InternalName", "DIPSTICK\0"
286 VALUE "LegalCopyright", "Copyright © 1996-2004 Klever Group (http://www.klever.net/)\0" 285 VALUE "LegalCopyright", "Copyright © 1996-2005 Klever Group (http://www.klever.net/)\0"
287 VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0" 286 VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0"
288 VALUE "OriginalFilename", "DIPSTICK.EXE\0" 287 VALUE "OriginalFilename", "DIPSTICK.EXE\0"
289 VALUE "ProductName", "Dipstick\0" 288 VALUE "ProductName", "Dipstick\0"
290 VALUE "ProductVersion", "3, 0, 0, 0\0" 289 VALUE "ProductVersion", "3, 1, 0, 0\0"
291 END 290 END
292 END 291 END
293 BLOCK "VarFileInfo" 292 BLOCK "VarFileInfo"
294 BEGIN 293 BEGIN
295 VALUE "Translation", 0x409, 1200 294 VALUE "Translation", 0x409, 1200
296 END 295 END
297END 296END
298 297
@@ -455,17 +454,17 @@ BEGIN
455 IDS_ABOUTBOX "&About Dipstick.." 454 IDS_ABOUTBOX "&About Dipstick.."
456 IDS_PS_FAILEDTOLOCK "Failed to gain access to internal resources. Please, report to Klever." 455 IDS_PS_FAILEDTOLOCK "Failed to gain access to internal resources. Please, report to Klever."
457 IDP_SOCKETS_INIT_FAILED "Windows sockets initialization failed." 456 IDP_SOCKETS_INIT_FAILED "Windows sockets initialization failed."
458 IDS_CSVEXT ".csv" 457 IDS_CSVEXT ".csv"
459 IDS_HN_BADURL "Bad URL" 458 IDS_HN_BADURL "Bad URL"
460 IDS_ABEST_CLEANUP "Remove all locations from list?" 459 IDS_ABEST_CLEANUP "Remove all locations from list?"
461 IDS_ABEST_NONEFOUND "No reachable locations were found." 460 IDS_ABEST_NONEFOUND "No reachable locations were found."
462 IDS_ABEST_TITLE " Dipstick - report" 461 IDS_ABEST_TITLE " Dipstick - report"
463 IDS_DRAGPAD_TITLE " Dipstick 3.0" 462 IDS_DRAGPAD_TITLE " Dipstick 3.1-trunk"
464 IDS_DRAGPAD_URLS " %d/%d URL(s)" 463 IDS_DRAGPAD_URLS " %d/%d URL(s)"
465 IDS_REGEX_HTMLURL "<A[^[:alpha:]][^>]*href[[:space:]]*=[[:space:]]*""?([^[:space:]>""]+)""?[^>]*>" 464 IDS_REGEX_HTMLURL "<A[^[:alpha:]][^>]*href[[:space:]]*=[[:space:]]*""?([^[:space:]>""]+)""?[^>]*>"
466END 465END
467 466
468STRINGTABLE DISCARDABLE 467STRINGTABLE DISCARDABLE
469BEGIN 468BEGIN
470 IDS_KLEVERNET_URL "http://www.klever.net/" 469 IDS_KLEVERNET_URL "http://www.klever.net/"
471 IDS_PS_INTERNALERROR "Internal Error. Please report to Klever." 470 IDS_PS_INTERNALERROR "Internal Error. Please report to Klever."
@@ -475,17 +474,17 @@ BEGIN
475 IDS_PS_PORTUNREACHABLE "Destination port unreachable" 474 IDS_PS_PORTUNREACHABLE "Destination port unreachable"
476 IDS_PS_NORESOURCES "No resources" 475 IDS_PS_NORESOURCES "No resources"
477 IDS_PS_HWERROR "Hardware error" 476 IDS_PS_HWERROR "Hardware error"
478 IDS_PS_BIGPACKET "Packet size is too big" 477 IDS_PS_BIGPACKET "Packet size is too big"
479END 478END
480 479
481STRINGTABLE DISCARDABLE 480STRINGTABLE DISCARDABLE
482BEGIN 481BEGIN
483 IDC_DNDTARGET "Dipstick 3.0, click the right mouse button to display main window, left mouse button for menu" 482 IDC_DNDTARGET "Dipstick 3.1-trunk, click the right mouse button to display main window, left mouse button for menu"
484 IDC_HOST "Host name as specified or resolved by Dipstick" 483 IDC_HOST "Host name as specified or resolved by Dipstick"
485END 484END
486 485
487STRINGTABLE DISCARDABLE 486STRINGTABLE DISCARDABLE
488BEGIN 487BEGIN
489 IDC_URLCAPTION "Universal Resource Locator (URL) associated with this location" 488 IDC_URLCAPTION "Universal Resource Locator (URL) associated with this location"
490 IDC_URL "Universal Resource Locator (URL) associated with this location" 489 IDC_URL "Universal Resource Locator (URL) associated with this location"
491 IDC_HOSTCAPTION "Host name as specified or resolved by Dipstick" 490 IDC_HOSTCAPTION "Host name as specified or resolved by Dipstick"
@@ -532,16 +531,17 @@ END
532STRINGTABLE DISCARDABLE 531STRINGTABLE DISCARDABLE
533BEGIN 532BEGIN
534 IDC_MSWORKAROUND "In case of REDIRed URL - test the innermost one" 533 IDC_MSWORKAROUND "In case of REDIRed URL - test the innermost one"
535END 534END
536 535
537STRINGTABLE DISCARDABLE 536STRINGTABLE DISCARDABLE
538BEGIN 537BEGIN
539 IDS_CSVFILTER "Comma Separated Values (*.csv)|*.csv|All Files (*.*)|*.*||" 538 IDS_CSVFILTER "Comma Separated Values (*.csv)|*.csv|All Files (*.*)|*.*||"
539 IDS_REGEX_URL "([a-zA-Z]+://)?[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]*)+(/[^ \t\r\n\\f]*)?"
540END 540END
541 541
542#endif // English (U.S.) resources 542#endif // English (U.S.) resources
543///////////////////////////////////////////////////////////////////////////// 543/////////////////////////////////////////////////////////////////////////////
544 544
545 545
546 546
547#ifndef APSTUDIO_INVOKED 547#ifndef APSTUDIO_INVOKED
diff --git a/help/dipstick.rtf b/help/dipstick.rtf
index c91b3f4..839d331 100644
--- a/help/dipstick.rtf
+++ b/help/dipstick.rtf
@@ -13,29 +13,31 @@ DO NOT MODIFY THIS FILE DIRECTLY. EDIT XML DOCUMENT INSTEAD
13#{\footnote About} 13#{\footnote About}
14${\footnote About Dipstick} 14${\footnote About Dipstick}
15K{\footnote about} 15K{\footnote about}
16{ \f1\fs18\b\sb120 About {\b Dipstick}} 16{ \f1\fs18\b\sb120 About {\b Dipstick}}
17\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b Dipstick} is our award-winning freeware that allows you to evaluate {\i mirror sites} to figure out which one has currently the least traffic. 17\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b Dipstick} is our award-winning freeware that allows you to evaluate {\i mirror sites} to figure out which one has currently the least traffic.
18\par\sa120\sb120\qj\pard \f1\fs18\sb120 18\par\sa120\sb120\qj\pard \f1\fs18\sb120
19\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b {\i Enjoy!}} 19\par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b {\i Enjoy!}}
20{ 20{
21\par\pard\plain\sb360\sa120 \f1\fs16 Copyright (c) 1996-2004 {\uldb\cf0 Klever Group (http://www.klever.net/)}{\v %!ExecFile("http://www.klever.net/")} 21\par\pard\plain\sb360\sa120 \f1\fs16 Copyright (c) 1996-2005 {\uldb\cf0 Klever Group (http://www.klever.net/)}{\v %!ExecFile("http://www.klever.net/")}
22\par\qj\sb120\sa120Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 22\par\qj\sb120\sa120Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
23\par The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 23\par The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
24\par \sa360 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24\par \sa360 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25} 25}
26\par \sa0\sb120\ql \f1\fs16 Author: {\b\uldb\cf11 Michael Krelin ({\i hacker@klever.net})}{\v %!ExecFile("mailto:hacker@klever.net")} 26\par \sa0\sb120\ql \f1\fs16 Author: {\b\uldb\cf11 Michael Krelin ({\i hacker@klever.net})}{\v %!ExecFile("mailto:hacker@klever.net")}
27\par \sa0\sb0 Fan mail send to {\i\uldb gefilte@klever.net}{\v %!ExecFile("mailto:gefilte@klever.net")} 27\par \sa0\sb0 Fan mail send to {\i\uldb gefilte@klever.net}{\v %!ExecFile("mailto:gefilte@klever.net")}
28\page 28\page
29 29
30\pard\plain\keepn 30\pard\plain\keepn
31#{\footnote News} 31#{\footnote News}
32${\footnote What's new} 32${\footnote What's new}
33{ \f1\fs18\b\sb120 What's New} 33{ \f1\fs18\b\sb120 What's New}
34\par\pard\plain\f1\fs24\qc\cf2\b 3.1 - July 26th, 2005
35\par\pard\plain\fi0\li0\f1\fs18 \bullet Ability to parse multiple URLs from plaintext selection
34\par\pard\plain\f1\fs24\qc\cf2\b 3.0 - July 11th, 2004 36\par\pard\plain\f1\fs24\qc\cf2\b 3.0 - July 11th, 2004
35\par\pard\plain\fi0\li0\f1\fs18 \bullet Change of {\uldb license}{\v About} and opening the source. 37\par\pard\plain\fi0\li0\f1\fs18 \bullet Change of {\uldb license}{\v About} and opening the source.
36\par\pard\plain\fi0\li0\f1\fs18 \bullet Minor cosmetic changes 38\par\pard\plain\fi0\li0\f1\fs18 \bullet Minor cosmetic changes
37\par\pard\plain\f1\fs24\qc\cf2\b 2.52 - June 3rd, 1998 39\par\pard\plain\f1\fs24\qc\cf2\b 2.52 - June 3rd, 1998
38\par\pard\plain\fi0\li0\f1\fs18 \bullet Now works properly with Winsock 2 for Windows95. Also may start working with non-Microsoft TCP/IP stacks. 40\par\pard\plain\fi0\li0\f1\fs18 \bullet Now works properly with Winsock 2 for Windows95. Also may start working with non-Microsoft TCP/IP stacks.
39\par\pard\plain\fi0\li0\f1\fs18 \bullet Fixed bug that caused GPF when removing all URLs after testing is over and you picked the URL of your choice. 41\par\pard\plain\fi0\li0\f1\fs18 \bullet Fixed bug that caused GPF when removing all URLs after testing is over and you picked the URL of your choice.
40\par\pard\plain\f1\fs24\qc\cf2\b 2.5 - December 30th, 1997 42\par\pard\plain\f1\fs24\qc\cf2\b 2.5 - December 30th, 1997
41\par\pard\plain\fi0\li0\f1\fs18 \bullet Ability to export/import sets of URLs. 43\par\pard\plain\fi0\li0\f1\fs18 \bullet Ability to export/import sets of URLs.
diff --git a/help/dipstick.xml b/help/dipstick.xml
index 4754e47..8ed0383 100644
--- a/help/dipstick.xml
+++ b/help/dipstick.xml
@@ -1,20 +1,23 @@
1<?xml version="1.0"?> 1<?xml version="1.0"?>
2<winhelp> 2<winhelp>
3 <topic id="About" title="About Dipstick" keywords="about"> 3 <topic id="About" title="About Dipstick" keywords="about">
4 <heading scroll="no">About <kin>Dipstick</kin></heading> 4 <heading scroll="no">About <kin>Dipstick</kin></heading>
5 <p><kin>Dipstick</kin> is our award-winning freeware that allows you to evaluate <term>mirror sites</term> to figure out which one has currently the least traffic.</p> 5 <p><kin>Dipstick</kin> is our award-winning freeware that allows you to evaluate <term>mirror sites</term> to figure out which one has currently the least traffic.</p>
6 <p/> 6 <p/>
7 <p><b><i>Enjoy!</i></b></p> 7 <p><b><i>Enjoy!</i></b></p>
8 <license years="1996-2004"/> 8 <license years="1996-2005"/>
9 <credits/> 9 <credits/>
10 </topic> 10 </topic>
11 <topic id="News" title="What's new"> 11 <topic id="News" title="What's new">
12 <heading scroll="no">What's New</heading> 12 <heading scroll="no">What's New</heading>
13 <newsfor version="3.1" date="July 26th, 2005">
14 <ni>Ability to parse multiple URLs from plaintext selection</ni>
15 </newsfor>
13 <newsfor version="3.0" date="July 11th, 2004"> 16 <newsfor version="3.0" date="July 11th, 2004">
14 <ni>Change of <a href="#About">license</a> and opening the source.</ni> 17 <ni>Change of <a href="#About">license</a> and opening the source.</ni>
15 <ni>Minor cosmetic changes</ni> 18 <ni>Minor cosmetic changes</ni>
16 </newsfor> 19 </newsfor>
17 <newsfor version="2.52" date="June 3rd, 1998"> 20 <newsfor version="2.52" date="June 3rd, 1998">
18 <ni>Now works properly with Winsock 2 for Windows95. Also may start working with non-Microsoft TCP/IP stacks.</ni> 21 <ni>Now works properly with Winsock 2 for Windows95. Also may start working with non-Microsoft TCP/IP stacks.</ni>
19 <ni>Fixed bug that caused GPF when removing all URLs after testing is over and you picked the URL of your choice.</ni> 22 <ni>Fixed bug that caused GPF when removing all URLs after testing is over and you picked the URL of your choice.</ni>
20 </newsfor> 23 </newsfor>
diff --git a/install/install.cpp b/install/install.cpp
index 296f3a3..1d91bc2 100644
--- a/install/install.cpp
+++ b/install/install.cpp
@@ -1,14 +1,14 @@
1#include "resource.h" 1#include "resource.h"
2#include "../shared-code/install.h" 2#include "../shared-code/install.h"
3 3
4#define KINNAME "Dipstick" 4#define KINNAME "Dipstick"
5#define KINSHORT KINNAME 5#define KINSHORT KINNAME
6#define VERSION "3.0" 6#define VERSION "3.1-trunk"
7 7
8BOOL Install(void) 8BOOL Install(void)
9{ 9{
10STRING dPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group",KINSHORT "Path"); 10STRING dPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group",KINSHORT "Path");
11STRING kPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath"); 11STRING kPath = strFETCH_REG_KEY(HKEY_LOCAL_MACHINE,"Software\\Klever Group","KINPath");
12LPCSTR qPath = ((LPCSTR)dPath)?(LPCSTR)dPath:(((LPCSTR)kPath)?(LPSTR)kPath:"C:\\Program Files\\Klever\\Nothings"); 12LPCSTR qPath = ((LPCSTR)dPath)?(LPCSTR)dPath:(((LPCSTR)kPath)?(LPSTR)kPath:"C:\\Program Files\\Klever\\Nothings");
13STRING path = REQUESTPATH(" " KINNAME " " VERSION,"\nEnter destination path:",qPath); 13STRING path = REQUESTPATH(" " KINNAME " " VERSION,"\nEnter destination path:",qPath);
14 if(!path) 14 if(!path)
diff --git a/install/install.rc b/install/install.rc
index 016c554..2bdee9c 100644
--- a/install/install.rc
+++ b/install/install.rc
@@ -126,41 +126,41 @@ IDI_ICON ICON DISCARDABLE "../shared-data/install-icon.ico
126 126
127#ifndef _MAC 127#ifndef _MAC
128///////////////////////////////////////////////////////////////////////////// 128/////////////////////////////////////////////////////////////////////////////
129// 129//
130// Version 130// Version
131// 131//
132 132
133VS_VERSION_INFO VERSIONINFO 133VS_VERSION_INFO VERSIONINFO
134 FILEVERSION 3,0,0,0 134 FILEVERSION 3,1,0,0
135 PRODUCTVERSION 3,0,0,0 135 PRODUCTVERSION 3,1,0,0
136 FILEFLAGSMASK 0x3fL 136 FILEFLAGSMASK 0x3fL
137#ifdef _DEBUG 137#ifdef _DEBUG
138 FILEFLAGS 0x1L 138 FILEFLAGS 0x1L
139#else 139#else
140 FILEFLAGS 0x0L 140 FILEFLAGS 0x0L
141#endif 141#endif
142 FILEOS 0x40004L 142 FILEOS 0x40004L
143 FILETYPE 0x1L 143 FILETYPE 0x1L
144 FILESUBTYPE 0x0L 144 FILESUBTYPE 0x0L
145BEGIN 145BEGIN
146 BLOCK "StringFileInfo" 146 BLOCK "StringFileInfo"
147 BEGIN 147 BEGIN
148 BLOCK "040904b0" 148 BLOCK "040904b0"
149 BEGIN 149 BEGIN
150 VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0" 150 VALUE "CompanyName", "Klever Group (http://www.klever.net/)\0"
151 VALUE "FileDescription", "INSTALL: Dipstick, mirror locator\0" 151 VALUE "FileDescription", "INSTALL: Dipstick, mirror locator\0"
152 VALUE "FileVersion", "3, 0, 0, 0\0" 152 VALUE "FileVersion", "3, 1, 0, 0\0"
153 VALUE "InternalName", "INSTALL\0" 153 VALUE "InternalName", "INSTALL\0"
154 VALUE "LegalCopyright", "Copyright © 1996-2004 Klever Group (http://www.klever.net/)\0" 154 VALUE "LegalCopyright", "Copyright © 1996-2005 Klever Group (http://www.klever.net/)\0"
155 VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0" 155 VALUE "LegalTrademarks", "Klever Group (http://www.klever.net/)\0"
156 VALUE "OriginalFilename", "INSTALL.EXE\0" 156 VALUE "OriginalFilename", "INSTALL.EXE\0"
157 VALUE "ProductName", "Dipstick\0" 157 VALUE "ProductName", "Dipstick\0"
158 VALUE "ProductVersion", "3, 0, 0, 0\0" 158 VALUE "ProductVersion", "3, 1, 0, 0\0"
159 END 159 END
160 END 160 END
161 BLOCK "VarFileInfo" 161 BLOCK "VarFileInfo"
162 BEGIN 162 BEGIN
163 VALUE "Translation", 0x409, 1200 163 VALUE "Translation", 0x409, 1200
164 END 164 END
165END 165END
166 166
diff --git a/resource.h b/resource.h
index 2af32cb..2f7b81e 100644
--- a/resource.h
+++ b/resource.h
@@ -14,16 +14,17 @@
14#define IDS_HN_BADURL 105 14#define IDS_HN_BADURL 105
15#define IDS_ABEST_CLEANUP 106 15#define IDS_ABEST_CLEANUP 106
16#define IDS_ABEST_NONEFOUND 107 16#define IDS_ABEST_NONEFOUND 107
17#define IDS_ABEST_TITLE 108 17#define IDS_ABEST_TITLE 108
18#define IDS_DRAGPAD_TITLE 109 18#define IDS_DRAGPAD_TITLE 109
19#define IDS_DRAGPAD_URLS 110 19#define IDS_DRAGPAD_URLS 110
20#define IDS_REGEX_HTMLURL 111 20#define IDS_REGEX_HTMLURL 111
21#define IDS_CSVFILTER 112 21#define IDS_CSVFILTER 112
22#define IDS_REGEX_URL 113
22#define IDR_MAINFRAME 128 23#define IDR_MAINFRAME 128
23#define IDD_DRAGPAD 129 24#define IDD_DRAGPAD 129
24#define IDR_DNDAVI 130 25#define IDR_DNDAVI 130
25#define IDD_OPTIONS 132 26#define IDD_OPTIONS 132
26#define IDR_MENU 133 27#define IDR_MENU 133
27#define IDD_MANUALHOST 134 28#define IDD_MANUALHOST 134
28#define IDD_PROPS 135 29#define IDD_PROPS 135
29#define IDI_PINGING 136 30#define IDI_PINGING 136
diff --git a/stdafx.h b/stdafx.h
index 06ef43f..ed0fe4e 100644
--- a/stdafx.h
+++ b/stdafx.h
@@ -24,13 +24,14 @@
24#include "shared-code/kICMP.h" 24#include "shared-code/kICMP.h"
25#include "shared-code/RegEx.h" 25#include "shared-code/RegEx.h"
26#include "CrackURL.h" 26#include "CrackURL.h"
27 27
28 enum{ 28 enum{
29 WM_DNP_ACTIVITYCOUNT = WM_USER+16, 29 WM_DNP_ACTIVITYCOUNT = WM_USER+16,
30 WM_DNP_URLPING, 30 WM_DNP_URLPING,
31 WM_DNP_UPDATEHOSTDATA, 31 WM_DNP_UPDATEHOSTDATA,
32 WM_DNP_HTML 32 WM_DNP_HTML,
33 WM_DNP_URLSPING
33}; 34};
34#include <MMSystem.h> 35#include <MMSystem.h>
35// CG: The following line was added by the Windows Multimedia component. 36// CG: The following line was added by the Windows Multimedia component.
36#pragma comment(lib, "winmm.lib") 37#pragma comment(lib, "winmm.lib")