/* ============================================================================ * Douglas Thrift's Web Contact License * * Copyright (C) 2002, Douglas Thrift. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * 3. The end-user documentation included with the redistribution, if any, must * include the following acknowledgment: * * "This product includes software developed by Douglas Thrift * (http://computers.douglasthrift.net/webcontact.html)." * * Alternately, this acknowledgment may appear in the software itself, if * and wherever such third-party acknowledgments normally appear. * * 4. The names "Douglas Thrift" and "Douglas Thrift's Web Contact" must not be * used to endorse or promote products derived from this software without * specific prior written permission. For written permission, please visit * http://www.douglasthrift.net/contact.html for contact information. * * 5. Products derived from this software may not be called "Douglas Thrift's * Web Contact", nor may "Douglas Thrift's Web Contact" appear in their * name, without prior written permission. * * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ============================================================================ */ // Windows XP FAQ Poll // // Douglas Thrift // // WinXPFAQPoll.cpp #include "WinXPFAQPoll.h" #include "Poller.h" string program; string programName = "Windows XP FAQ Poll"; string programVersion = "1.0.0.1"; bool debug = false; int main(int argc, char* argv[]) { program = argv[0]; bool account = false; bool nodelete = false; for (unsigned index = 1; index < argc; index++) { string arg = argv[index]; if (arg == "-D") { debug = true; } else if (arg == "-help") { cout << "Usage: " << program << " [-account] [-nodelete] [-D] " << "[-version] [-help]\nOptions:\n" << " -account Write an account XML file and test\n" << " -nodelete Do not purge deleted mail messages\n" << " -D Display debug information\n" << " -version Display version information and exit\n" << " -help Display this message and exit\n"; return 0; } else if (arg == "-version") { cout << programName << ' ' << programVersion << "\n\n" << "Copyright (C) 2002, Douglas Thrift. All Roghts Reserved.\n" << "\nThis product includes software developed by Douglas " << "Thrift\n" << "(http://computers.douglasthrift.net/imaphandler.html).\n\n" << "This product includes software developed by Douglas Thrift" << "\n(http://computers.douglasthrift.net/webcontact.html).\n" << '\n'; return 0; } else if (arg == "-account") { account = true; } else if (arg == "-nodelete") { nodelete = true; } } if (debug) { cerr << "account = " << (account ? "true" : "false") << "\n" << "nodelete = " << (nodelete ? "true" : "false") << "\n"; } if (account) Poller::saveAccount(); Poller poller; if (!account) poller.poll(nodelete); return 0; } void entities(string& line, char character, char* entity) { int begin = 0; while (begin < line.length()) { int spot = line.find(character, begin); int end = spot + 1; if (spot != string::npos) { line.replace(spot, 1, entity); } else { break; } begin = end; } } void entities(string& line, char* entity, char character) { int begin = 0; while (begin < line.length()) { int spot = line.find(entity, begin); int end = spot + 1; if (spot != string::npos) { line.replace(spot, strlen(entity), 1, character); } else { break; } begin = end; } }