void InteractiveInputTestCase::TestRegExInteractive() { #ifdef TEST_REGEX wxPuts(wxT("*** Testing RE interactively ***")); for ( ;; ) { wxChar pattern[128]; wxPrintf(wxT("Enter a pattern (press ENTER or type 'quit' to escape): ")); if ( !wxFgets(pattern, WXSIZEOF(pattern), stdin) ) break; // kill the last '\n' pattern[wxStrlen(pattern) - 1] = 0; if (pattern[0] == '\0' || wxStrcmp(pattern, "quit") == 0) break; wxRegEx re; if ( !re.Compile(pattern) ) { continue; } wxChar text[128]; for ( ;; ) { wxPrintf(wxT("Enter text to match: ")); if ( !wxFgets(text, WXSIZEOF(text), stdin) ) break; // kill the last '\n' text[wxStrlen(text) - 1] = 0; if ( !re.Matches(text) ) { wxPrintf(wxT("No match.\n")); } else { wxPrintf(wxT("Pattern matches at '%s'\n"), re.GetMatch(text).c_str()); size_t start, len; for ( size_t n = 1; ; n++ ) { if ( !re.GetMatch(&start, &len, n) ) { break; } wxPrintf(wxT("Subexpr %u matched '%s'\n"), n, wxString(text + start, len).c_str()); } } } wxPuts("\n"); } #endif // TEST_REGEX }
int main(int argc, char **argv) { wxApp::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, "program"); wxInitializer initializer; if ( !initializer ) { fprintf(stderr, "Failed to initialize the wxWidgets library, aborting."); return -1; } wxCmdLineParser parser(cmdLineDesc, argc, argv); switch ( parser.Parse() ) { case -1: // help was given, terminating break; case 0: // everything is ok; proceed if (parser.Found("d")) { wxPrintf("Dummy switch was given...\n"); while (1) { wxChar input[128]; wxPrintf("Try to guess the magic number (type 'quit' to escape): "); if ( !wxFgets(input, WXSIZEOF(input), stdin) ) break; // kill the last '\n' input[wxStrlen(input) - 1] = 0; if (wxStrcmp(input, "quit") == 0) break; long val; if (!wxString(input).ToLong(&val)) { wxPrintf("Invalid number...\n"); continue; } if (val == 42) wxPrintf("You guessed!\n"); else wxPrintf("Bad luck!\n"); } } break; default: break; } // do something useful here return 0; }
void InteractiveInputTestCase::TestDateTimeInteractive() { #ifdef TEST_DATETIME wxPuts(wxT("\n*** interactive wxDateTime tests ***")); wxChar buf[128]; for ( ;; ) { wxPrintf(wxT("Enter a date (press ENTER or type 'quit' to escape): ")); if ( !wxFgets(buf, WXSIZEOF(buf), stdin) ) break; // kill the last '\n' buf[wxStrlen(buf) - 1] = 0; if ( buf[0] == '\0' || wxStrcmp(buf, "quit") == 0 ) break; wxDateTime dt; const wxChar *p = dt.ParseDate(buf); if ( !p ) { wxPrintf(wxT("ERROR: failed to parse the date '%s'.\n"), buf); continue; } else if ( *p ) { wxPrintf(wxT("WARNING: parsed only first %u characters.\n"), p - buf); } wxPrintf(wxT("%s: day %u, week of month %u/%u, week of year %u\n"), dt.Format(wxT("%b %d, %Y")).c_str(), dt.GetDayOfYear(), dt.GetWeekOfMonth(wxDateTime::Monday_First), dt.GetWeekOfMonth(wxDateTime::Sunday_First), dt.GetWeekOfYear(wxDateTime::Monday_First)); } wxPuts("\n"); #endif // TEST_DATETIME }
void SpellCheckCmdLineInterface::GetFeedback() { wxChar strReplacement[256]; wxPrintf(_T("\nReplacement? : \n")); if ( !wxFgets(strReplacement, WXSIZEOF(strReplacement), stdin) ) m_nLastAction = ACTION_IGNORE; /* ignore the current misspelling */ else { strReplacement[wxStrlen(strReplacement) - 1] = '\0'; if (wxStrlen(strReplacement) == 0) { m_nLastAction = ACTION_IGNORE; /* ignore the current misspelling */ } else { m_nLastAction = ACTION_REPLACE; m_strReplaceWithText = strReplacement; } } }
void InteractiveInputTestCase::TestDiskInfo() { #ifdef TEST_INFO_FUNCTIONS wxPuts(wxT("*** Testing wxGetDiskSpace() ***")); for ( ;; ) { wxChar pathname[128]; wxPrintf(wxT("Enter a directory name (press ENTER or type 'quit' to escape): ")); if ( !wxFgets(pathname, WXSIZEOF(pathname), stdin) ) break; // kill the last '\n' pathname[wxStrlen(pathname) - 1] = 0; if (pathname[0] == '\0' || wxStrcmp(pathname, "quit") == 0) break; wxLongLong total, free; if ( !wxGetDiskSpace(pathname, &total, &free) ) { wxPuts(wxT("ERROR: wxGetDiskSpace failed.")); } else { wxPrintf(wxT("%sKb total, %sKb free on '%s'.\n"), (total / 1024).ToString().c_str(), (free / 1024).ToString().c_str(), pathname); } wxPuts("\n"); } wxPuts("\n"); #endif // TEST_INFO_FUNCTIONS }
int main(int argc, char **argv) { wxApp::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, "program"); wxInitializer initializer; if ( !initializer ) { fprintf(stderr, "Failed to initialize the wxWidgets library, aborting."); return -1; } wxCmdLineParser parser(cmdLineDesc, argc, argv); switch ( parser.Parse() ) { case -1: // help was given, terminating break; case 0: // everything is ok; proceed if (parser.Found("d")) { wxPrintf("Dummy switch was given...\n"); #if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */ # pragma ivdep # pragma swp # pragma unroll # pragma prefetch # if 0 # pragma simd noassert # endif #endif /* VDM auto patch */ while (1) { wxChar input[128]; wxPrintf("Try to guess the magic number (type 'quit' to escape): "); if ( !wxFgets(input, WXSIZEOF(input), stdin) ) break; // kill the last '\n' input[wxStrlen(input) - 1] = 0; if (wxStrcmp(input, "quit") == 0) break; long val; if (!wxString(input).ToLong(&val)) { wxPrintf("Invalid number...\n"); continue; } if (val == 42) wxPrintf("You guessed!\n"); else wxPrintf("Bad luck!\n"); } } break; default: break; } if ( argc == 1 ) { // If there were no command-line options supplied, emit a message // otherwise it's not obvious that the sample ran successfully wxPrintf("Welcome to the wxWidgets 'console' sample!\n"); wxPrintf("For more information, run it again with the --help option\n"); } // do something useful here return 0; }
void InteractiveInputTestCase::TestFtpInteractive() { #ifdef TEST_FTP wxFTP ftp; wxPuts(wxT("\n*** Interactive wxFTP test ***")); #ifdef FTP_ANONYMOUS wxPrintf(wxT("--- Attempting to connect to %s:21 anonymously...\n"), hostname); #else // !FTP_ANONYMOUS wxChar user[256]; wxFgets(user, WXSIZEOF(user), stdin); user[wxStrlen(user) - 1] = '\0'; // chop off '\n' ftp.SetUser(user); wxChar password[256]; wxPrintf(wxT("Password for %s: "), password); wxFgets(password, WXSIZEOF(password), stdin); password[wxStrlen(password) - 1] = '\0'; // chop off '\n' ftp.SetPassword(password); wxPrintf(wxT("--- Attempting to connect to %s:21 as %s...\n"), hostname, user); #endif // FTP_ANONYMOUS/!FTP_ANONYMOUS if ( !ftp.Connect(hostname) ) { wxPrintf(wxT("ERROR: failed to connect to %s\n"), hostname); return; } else { wxPrintf(wxT("--- Connected to %s, current directory is '%s'\n"), hostname, ftp.Pwd().c_str()); } wxChar buf[128]; for ( ;; ) { wxPrintf(wxT("Enter FTP command (press ENTER or type 'quit' to escape): ")); if ( !wxFgets(buf, WXSIZEOF(buf), stdin) ) break; // kill the last '\n' buf[wxStrlen(buf) - 1] = 0; if (buf[0] == '\0' || wxStrcmp(buf, "quit") == 0) break; // special handling of LIST and NLST as they require data connection wxString start(buf, 4); start.MakeUpper(); if ( start == wxT("LIST") || start == wxT("NLST") ) { wxString wildcard; if ( wxStrlen(buf) > 4 ) wildcard = buf + 5; wxArrayString files; if ( !ftp.GetList(files, wildcard, start == wxT("LIST")) ) { wxPrintf(wxT("ERROR: failed to get %s of files\n"), start.c_str()); } else { wxPrintf(wxT("--- %s of '%s' under '%s':\n"), start.c_str(), wildcard.c_str(), ftp.Pwd().c_str()); size_t count = files.GetCount(); for ( size_t n = 0; n < count; n++ ) { wxPrintf(wxT("\t%s\n"), files[n].c_str()); } wxPuts(wxT("--- End of the file list")); } } else // !list { wxChar ch = ftp.SendCommand(buf); wxPrintf(wxT("Command %s"), ch ? wxT("succeeded") : wxT("failed")); if ( ch ) { wxPrintf(wxT(" (return code %c)"), ch); } wxPrintf(wxT(", server reply:\n%s\n\n"), ftp.GetLastResult().c_str()); } } wxPuts(wxT("\n")); #endif // TEST_FTP }