ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/DTUtil/DTUtil.cpp
(Generate patch)

Comparing DTUtil/DTUtil.cpp (file contents):
Revision 61 by Douglas Thrift, 2003-12-17T16:52:24-08:00 vs.
Revision 62 by Douglas Thrift, 2003-12-17T17:57:46-08:00

# Line 4 | Line 4
4   //
5   // $Id$
6  
7 + #ifdef _DEBUG
8 + #pragma warning(disable:4786)
9 + #endif
10 +
11 + #include <string>
12 + #include <sstream>
13 + #include <vector>
14 +
15 + using namespace std;
16 +
17   #include <windows.h>
18   #include "D:\NSIS\Contrib\ExDll\exdll.h"
19  
20 < void __declspec(dllexport) CheckNT(HWND hwndParent, int string_size, char
21 <        *variables, stack_t **stacktop)
20 > void __declspec(dllexport) CheckNT(HWND hwndParent, int string_size, char*
21 >        variables, stack_t** stacktop)
22   {
23          EXDLL_INIT();
24  
# Line 29 | Line 39 | void __declspec(dllexport) CheckNT(HWND
39                  }
40          }
41   }
42 +
43 + void __declspec(dllexport) GetArgs(HWND hwndParent, int string_size, char*
44 +        variables, stack_t** stacktop)
45 + {
46 +        EXDLL_INIT();
47 +
48 +        {
49 +                istringstream line(getuservariable(INST_CMDLINE));
50 +                vector<string> args;
51 +
52 +                do
53 +                {
54 +                        string arg;
55 +
56 +                        if (line.peek() == '\"')
57 +                        {
58 +                                line.ignore();
59 +                                getline(line, arg, '\"');
60 +                        }
61 +                        else
62 +                        {
63 +                                line >> arg;
64 +                                line.ignore();
65 +                        }
66 +
67 +                        if (arg != "") args.push_back(arg);
68 +                }
69 +                while (line.good());
70 +
71 +                for (unsigned index = args.size(); index > 0; index--)
72 +                {
73 +                        char* arg = new char[args[index - 1].size() + 1];
74 +
75 +                        sprintf(arg, args[index - 1].c_str());
76 +                        pushstring(arg);
77 +
78 +                        delete [] arg;
79 +                }
80 +        }
81 + }
82  
83   BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
84   {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines