1 |
/* ============================================================================ |
2 |
* Douglas Thrift's Web Contact License |
3 |
* |
4 |
* Copyright (C) 2002, Douglas Thrift. All Rights Reserved. |
5 |
* |
6 |
* Redistribution and use in source and binary forms, with or without |
7 |
* modification, are permitted provided that the following conditions are met: |
8 |
* |
9 |
* 1. Redistributions of source code must retain the above copyright notice, |
10 |
* this list of conditions and the following disclaimer. |
11 |
* |
12 |
* 2. Redistributions in binary form must reproduce the above copyright notice, |
13 |
* this list of conditions and the following disclaimer in the documentation |
14 |
* and/or other materials provided with the distribution. |
15 |
* |
16 |
* 3. The end-user documentation included with the redistribution, if any, must |
17 |
* include the following acknowledgment: |
18 |
* |
19 |
* "This product includes software developed by Douglas Thrift |
20 |
* (http://computers.douglasthrift.net/webcontact.html)." |
21 |
* |
22 |
* Alternately, this acknowledgment may appear in the software itself, if |
23 |
* and wherever such third-party acknowledgments normally appear. |
24 |
* |
25 |
* 4. The names "Douglas Thrift" and "Douglas Thrift's Web Contact" must not be |
26 |
* used to endorse or promote products derived from this software without |
27 |
* specific prior written permission. For written permission, please visit |
28 |
* http://www.douglasthrift.net/contact.html for contact information. |
29 |
* |
30 |
* 5. Products derived from this software may not be called "Douglas Thrift's |
31 |
* Web Contact", nor may "Douglas Thrift's Web Contact" appear in their |
32 |
* name, without prior written permission. |
33 |
* |
34 |
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, |
35 |
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND |
36 |
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
37 |
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
38 |
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
39 |
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, |
40 |
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
41 |
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
42 |
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, |
43 |
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
44 |
* ============================================================================ |
45 |
*/ |
46 |
// Windows XP FAQ Poll |
47 |
// |
48 |
// Douglas Thrift |
49 |
// |
50 |
// WinXPFAQPoll.cpp |
51 |
|
52 |
#include "WinXPFAQPoll.h" |
53 |
#include "Poller.h" |
54 |
|
55 |
string program; |
56 |
string programName = "Windows XP FAQ Poll"; |
57 |
string programVersion = "1.1"; |
58 |
bool debug = false; |
59 |
|
60 |
int main(int argc, char* argv[]) |
61 |
{ |
62 |
program = argv[0]; |
63 |
|
64 |
bool account = false; |
65 |
bool nodelete = false; |
66 |
string file = "poll.dat"; |
67 |
|
68 |
for (unsigned index = 1; index < argc; index++) |
69 |
{ |
70 |
string arg = argv[index]; |
71 |
|
72 |
if (arg == "-D") |
73 |
{ |
74 |
debug = true; |
75 |
} |
76 |
else if (arg == "-help") |
77 |
{ |
78 |
cout << "Usage: " << program << " [-account] [-nodelete] [-D] " |
79 |
<< "[-version] [-help]\nOptions:\n" |
80 |
<< " -account Write an account XML file and test\n" |
81 |
<< " -nodelete Do not purge deleted mail messages\n" |
82 |
<< " -D Display debug information\n" |
83 |
<< " -version Display version information and exit\n" |
84 |
<< " -help Display this message and exit\n"; |
85 |
|
86 |
return 0; |
87 |
} |
88 |
else if (arg == "-version") |
89 |
{ |
90 |
cout << programName << ' ' << programVersion << "\n\n" |
91 |
<< "Copyright (C) 2003, Douglas Thrift. All Roghts Reserved.\n" |
92 |
<< "\nThis product includes software developed by Douglas " |
93 |
<< "Thrift\n" |
94 |
<< "(http://computers.douglasthrift.net/imaphandler.html).\n\n" |
95 |
<< "This product includes software developed by Douglas Thrift" |
96 |
<< "\n(http://computers.douglasthrift.net/webcontact.html).\n" |
97 |
<< '\n'; |
98 |
|
99 |
return 0; |
100 |
} |
101 |
else if (arg == "-account") |
102 |
{ |
103 |
account = true; |
104 |
} |
105 |
else if (arg == "-nodelete") |
106 |
{ |
107 |
nodelete = true; |
108 |
} |
109 |
else |
110 |
{ |
111 |
file = arg; |
112 |
} |
113 |
} |
114 |
|
115 |
if (debug) |
116 |
{ |
117 |
cerr << "account = " << (account ? "true" : "false") << "\n" |
118 |
<< "nodelete = " << (nodelete ? "true" : "false") << "\n" |
119 |
<< "file = " << file << "\n"; |
120 |
} |
121 |
|
122 |
if (account) Poller::saveAccount(); |
123 |
|
124 |
Poller poller; |
125 |
|
126 |
if (!account) poller.poll(nodelete, file); |
127 |
|
128 |
return 0; |
129 |
} |
130 |
|
131 |
void entities(string& line, char character, char* entity) |
132 |
{ |
133 |
int begin = 0; |
134 |
|
135 |
while (begin < line.length()) |
136 |
{ |
137 |
int spot = line.find(character, begin); |
138 |
|
139 |
int end = spot + 1; |
140 |
|
141 |
if (spot != string::npos) |
142 |
{ |
143 |
line.replace(spot, 1, entity); |
144 |
} |
145 |
else |
146 |
{ |
147 |
break; |
148 |
} |
149 |
|
150 |
begin = end; |
151 |
} |
152 |
} |
153 |
|
154 |
void entities(string& line, char* entity, char character) |
155 |
{ |
156 |
int begin = 0; |
157 |
|
158 |
while (begin < line.length()) |
159 |
{ |
160 |
int spot = line.find(entity, begin); |
161 |
|
162 |
int end = spot + 1; |
163 |
|
164 |
if (spot != string::npos) |
165 |
{ |
166 |
line.replace(spot, strlen(entity), 1, character); |
167 |
} |
168 |
else |
169 |
{ |
170 |
break; |
171 |
} |
172 |
|
173 |
begin = end; |
174 |
} |
175 |
} |