]> git.saurik.com Git - wxWidgets.git/blob - samples/console/console.cpp
Don't run printf("%n") tests when _FORTIFY_SOURCE >= 2.
[wxWidgets.git] / samples / console / console.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: samples/console/console.cpp
3 // Purpose: A sample console (as opposed to GUI) program using wxWidgets
4 // Author: Vadim Zeitlin
5 // Modified by:
6 // Created: 04.10.99
7 // RCS-ID: $Id$
8 // Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
11
12 // ============================================================================
13 // declarations
14 // ============================================================================
15
16 // ----------------------------------------------------------------------------
17 // headers
18 // ----------------------------------------------------------------------------
19
20 // For compilers that support precompilation, includes "wx/wx.h".
21 #include "wx/wxprec.h"
22
23 #ifdef __BORLANDC__
24 #pragma hdrstop
25 #endif
26
27 // for all others, include the necessary headers (this file is usually all you
28 // need because it includes almost all "standard" wxWidgets headers)
29 #ifndef WX_PRECOMP
30 #include "wx/wx.h"
31 #endif
32
33 #include <wx/app.h>
34 #include <wx/cmdline.h>
35
36 // ============================================================================
37 // implementation
38 // ============================================================================
39
40 static const wxCmdLineEntryDesc cmdLineDesc[] =
41 {
42 { wxCMD_LINE_SWITCH, "h", "help", "show this help message",
43 wxCMD_LINE_VAL_NONE, wxCMD_LINE_OPTION_HELP },
44 { wxCMD_LINE_SWITCH, "d", "dummy", "a dummy switch" },
45 // ... your other command line options here...
46
47 { wxCMD_LINE_NONE }
48 };
49
50 int main(int argc, char **argv)
51 {
52 wxApp::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, "program");
53
54 wxInitializer initializer;
55 if ( !initializer )
56 {
57 fprintf(stderr, "Failed to initialize the wxWidgets library, aborting.");
58 return -1;
59 }
60
61 wxCmdLineParser parser(cmdLineDesc, argc, argv);
62 switch ( parser.Parse() )
63 {
64 case -1:
65 // help was given, terminating
66 break;
67
68 case 0:
69 // everything is ok; proceed
70 if (parser.Found("d"))
71 {
72 wxPrintf("Dummy switch was given...\n");
73
74 while (1)
75 {
76 wxChar input[128];
77 wxPrintf("Try to guess the magic number (type 'quit' to escape): ");
78 if ( !wxFgets(input, WXSIZEOF(input), stdin) )
79 break;
80
81 // kill the last '\n'
82 input[wxStrlen(input) - 1] = 0;
83
84 if (wxStrcmp(input, "quit") == 0)
85 break;
86
87 long val;
88 if (!wxString(input).ToLong(&val))
89 {
90 wxPrintf("Invalid number...\n");
91 continue;
92 }
93
94 if (val == 42)
95 wxPrintf("You guessed!\n");
96 else
97 wxPrintf("Bad luck!\n");
98 }
99 }
100 break;
101
102 default:
103 break;
104 }
105
106 // do something useful here
107
108 return 0;
109 }