Thu Aug 25 16:51:48 2011 UTC ()
fix non-literal format string


(christos)
diff -r1.3 -r1.4 src/dist/pdisk/io.c

cvs diff -r1.3 -r1.4 src/dist/pdisk/Attic/io.c (expand / switch to unified diff)

--- src/dist/pdisk/Attic/io.c 2009/04/18 06:37:35 1.3
+++ src/dist/pdisk/Attic/io.c 2011/08/25 16:51:48 1.4
@@ -82,27 +82,26 @@ const long kDefault = -1; @@ -82,27 +82,26 @@ const long kDefault = -1;
82short unget_buf[UNGET_MAX_COUNT+1]; 82short unget_buf[UNGET_MAX_COUNT+1];
83int unget_count; 83int unget_count;
84char io_buffer[MAXIOSIZE]; 84char io_buffer[MAXIOSIZE];
85 85
86 86
87// 87//
88// Forward declarations 88// Forward declarations
89// 89//
90long get_number(int first_char); 90long get_number(int first_char);
91char* get_string(int eos); 91char* get_string(int eos);
92int my_getch(void); 92int my_getch(void);
93void my_ungetch(int c); 93void my_ungetch(int c);
94 94
95 
96// 95//
97// Routines 96// Routines
98// 97//
99int 98int
100my_getch() 99my_getch()
101{ 100{
102 if (unget_count > 0) { 101 if (unget_count > 0) {
103 return (unget_buf[--unget_count]); 102 return (unget_buf[--unget_count]);
104 } else { 103 } else {
105 return (getc(stdin)); 104 return (getc(stdin));
106 } 105 }
107} 106}
108 107
@@ -140,93 +139,93 @@ flush_to_newline(int keep_newline) @@ -140,93 +139,93 @@ flush_to_newline(int keep_newline)
140 // skip 139 // skip
141 } 140 }
142 } 141 }
143 return; 142 return;
144} 143}
145 144
146 145
147int 146int
148get_okay(const char *prompt, int default_value) 147get_okay(const char *prompt, int default_value)
149{ 148{
150 int c; 149 int c;
151 150
152 flush_to_newline(0); 151 flush_to_newline(0);
153 printf(prompt); 152 printf("%s", prompt);
154 153
155 for (;;) { 154 for (;;) {
156 c = my_getch(); 155 c = my_getch();
157 156
158 if (c <= 0) { 157 if (c <= 0) {
159 break; 158 break;
160 } else if (c == ' ' || c == '\t') { 159 } else if (c == ' ' || c == '\t') {
161 // skip blanks and tabs 160 // skip blanks and tabs
162 } else if (c == '\n') { 161 } else if (c == '\n') {
163 my_ungetch(c); 162 my_ungetch(c);
164 return default_value; 163 return default_value;
165 } else if (c == 'y' || c == 'Y') { 164 } else if (c == 'y' || c == 'Y') {
166 return 1; 165 return 1;
167 } else if (c == 'n' || c == 'N') { 166 } else if (c == 'n' || c == 'N') {
168 return 0; 167 return 0;
169 } else { 168 } else {
170 flush_to_newline(0); 169 flush_to_newline(0);
171 printf(prompt); 170 printf("%s", prompt);
172 } 171 }
173 } 172 }
174 return -1; 173 return -1;
175} 174}
176 175
177  176
178int 177int
179get_command(const char *prompt, int promptBeforeGet, int *command) 178get_command(const char *prompt, int promptBeforeGet, int *command)
180{ 179{
181 int c; 180 int c;
182 181
183 if (promptBeforeGet) { 182 if (promptBeforeGet) {
184 printf(prompt); 183 printf("%s", prompt);
185 }  184 }
186 for (;;) { 185 for (;;) {
187 c = my_getch(); 186 c = my_getch();
188 187
189 if (c <= 0) { 188 if (c <= 0) {
190 break; 189 break;
191 } else if (c == ' ' || c == '\t') { 190 } else if (c == ' ' || c == '\t') {
192 // skip blanks and tabs 191 // skip blanks and tabs
193 } else if (c == '\n') { 192 } else if (c == '\n') {
194 printf(prompt); 193 printf("%s", prompt);
195 } else { 194 } else {
196 *command = c; 195 *command = c;
197 return 1; 196 return 1;
198 } 197 }
199 } 198 }
200 return 0; 199 return 0;
201} 200}
202 201
203  202
204int 203int
205get_number_argument(const char *prompt, long *number, long default_value) 204get_number_argument(const char *prompt, long *number, long default_value)
206{ 205{
207 int c; 206 int c;
208 int result = 0; 207 int result = 0;
209 208
210 for (;;) { 209 for (;;) {
211 c = my_getch(); 210 c = my_getch();
212 211
213 if (c <= 0) { 212 if (c <= 0) {
214 break; 213 break;
215 } else if (c == ' ' || c == '\t') { 214 } else if (c == ' ' || c == '\t') {
216 // skip blanks and tabs 215 // skip blanks and tabs
217 } else if (c == '\n') { 216 } else if (c == '\n') {
218 if (default_value == kDefault) { 217 if (default_value == kDefault) {
219 printf(prompt); 218 printf("%s", prompt);
220 } else { 219 } else {
221 my_ungetch(c); 220 my_ungetch(c);
222 *number = default_value; 221 *number = default_value;
223 result = 1; 222 result = 1;
224 break; 223 break;
225 } 224 }
226 } else if ('0' <= c && c <= '9') { 225 } else if ('0' <= c && c <= '9') {
227 *number = get_number(c); 226 *number = get_number(c);
228 result = 1; 227 result = 1;
229 break; 228 break;
230 } else { 229 } else {
231 my_ungetch(c); 230 my_ungetch(c);
232 *number = 0; 231 *number = 0;
@@ -285,27 +284,27 @@ get_string_argument(const char *prompt,  @@ -285,27 +284,27 @@ get_string_argument(const char *prompt,
285{ 284{
286 int c; 285 int c;
287 int result = 0; 286 int result = 0;
288 287
289 for (;;) { 288 for (;;) {
290 c = my_getch(); 289 c = my_getch();
291 290
292 if (c <= 0) { 291 if (c <= 0) {
293 break; 292 break;
294 } else if (c == ' ' || c == '\t') { 293 } else if (c == ' ' || c == '\t') {
295 // skip blanks and tabs 294 // skip blanks and tabs
296 } else if (c == '\n') { 295 } else if (c == '\n') {
297 if (reprompt) { 296 if (reprompt) {
298 printf(prompt); 297 printf("%s", prompt);
299 } else { 298 } else {
300 my_ungetch(c); 299 my_ungetch(c);
301 *string = NULL; 300 *string = NULL;
302 break; 301 break;
303 } 302 }
304 } else if (c == '"' || c == '\'') { 303 } else if (c == '"' || c == '\'') {
305 *string = get_string(c); 304 *string = get_string(c);
306 result = 1; 305 result = 1;
307 break; 306 break;
308 } else if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') 307 } else if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')
309 || (c == '-' || c == '/' || c == '.' || c == ':')) { 308 || (c == '-' || c == '/' || c == '.' || c == ':')) {
310 my_ungetch(c); 309 my_ungetch(c);
311 *string = get_string(' '); 310 *string = get_string(' ');