aboutsummaryrefslogtreecommitdiff
path: root/sh.c
diff options
context:
space:
mode:
Diffstat (limited to 'sh.c')
-rw-r--r--sh.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/sh.c b/sh.c
index 461f2c092..1524ef16b 100644
--- a/sh.c
+++ b/sh.c
@@ -217,11 +217,11 @@ static int builtin_cd(struct job *cmd, struct jobSet *junk)
217 newdir = cmd->progs[0].argv[1]; 217 newdir = cmd->progs[0].argv[1];
218 if (chdir(newdir)) { 218 if (chdir(newdir)) {
219 printf("cd: %s: %s\n", newdir, strerror(errno)); 219 printf("cd: %s: %s\n", newdir, strerror(errno));
220 return FALSE; 220 return EXIT_FAILURE;
221 } 221 }
222 getcwd(cwd, sizeof(char)*MAX_LINE); 222 getcwd(cwd, sizeof(char)*MAX_LINE);
223 223
224 return TRUE; 224 return EXIT_SUCCESS;
225} 225}
226 226
227/* built-in 'env' handler */ 227/* built-in 'env' handler */
@@ -245,14 +245,14 @@ static int builtin_exec(struct job *cmd, struct jobSet *junk)
245 fatalError("Exec to %s failed: %s\n", cmd->progs[0].argv[0], 245 fatalError("Exec to %s failed: %s\n", cmd->progs[0].argv[0],
246 strerror(errno)); 246 strerror(errno));
247 } 247 }
248 return TRUE; 248 return EXIT_SUCCESS;
249} 249}
250 250
251/* built-in 'exit' handler */ 251/* built-in 'exit' handler */
252static int builtin_exit(struct job *cmd, struct jobSet *junk) 252static int builtin_exit(struct job *cmd, struct jobSet *junk)
253{ 253{
254 if (!cmd->progs[0].argv[1] == 1) 254 if (!cmd->progs[0].argv[1] == 1)
255 exit TRUE; 255 exit(EXIT_SUCCESS);
256 256
257 exit (atoi(cmd->progs[0].argv[1])); 257 exit (atoi(cmd->progs[0].argv[1]));
258} 258}
@@ -267,12 +267,12 @@ static int builtin_fg_bg(struct job *cmd, struct jobSet *jobList)
267 if (!cmd->progs[0].argv[1] || cmd->progs[0].argv[2]) { 267 if (!cmd->progs[0].argv[1] || cmd->progs[0].argv[2]) {
268 errorMsg("%s: exactly one argument is expected\n", 268 errorMsg("%s: exactly one argument is expected\n",
269 cmd->progs[0].argv[0]); 269 cmd->progs[0].argv[0]);
270 return FALSE; 270 return EXIT_FAILURE;
271 } 271 }
272 if (sscanf(cmd->progs[0].argv[1], "%%%d", &jobNum) != 1) { 272 if (sscanf(cmd->progs[0].argv[1], "%%%d", &jobNum) != 1) {
273 errorMsg("%s: bad argument '%s'\n", 273 errorMsg("%s: bad argument '%s'\n",
274 cmd->progs[0].argv[0], cmd->progs[0].argv[1]); 274 cmd->progs[0].argv[0], cmd->progs[0].argv[1]);
275 return FALSE; 275 return EXIT_FAILURE;
276 for (job = jobList->head; job; job = job->next) { 276 for (job = jobList->head; job; job = job->next) {
277 if (job->jobId == jobNum) { 277 if (job->jobId == jobNum) {
278 break; 278 break;
@@ -286,7 +286,7 @@ static int builtin_fg_bg(struct job *cmd, struct jobSet *jobList)
286 if (!job) { 286 if (!job) {
287 errorMsg("%s: unknown job %d\n", 287 errorMsg("%s: unknown job %d\n",
288 cmd->progs[0].argv[0], jobNum); 288 cmd->progs[0].argv[0], jobNum);
289 return FALSE; 289 return EXIT_FAILURE;
290 } 290 }
291 291
292 if (*cmd->progs[0].argv[0] == 'f') { 292 if (*cmd->progs[0].argv[0] == 'f') {
@@ -305,7 +305,7 @@ static int builtin_fg_bg(struct job *cmd, struct jobSet *jobList)
305 305
306 job->stoppedProgs = 0; 306 job->stoppedProgs = 0;
307 307
308 return TRUE; 308 return EXIT_SUCCESS;
309} 309}
310 310
311/* built-in 'help' handler */ 311/* built-in 'help' handler */
@@ -326,7 +326,7 @@ static int builtin_help(struct job *dummy, struct jobSet *junk)
326 fprintf(stdout, "%s\t%s\n", x->cmd, x->descr); 326 fprintf(stdout, "%s\t%s\n", x->cmd, x->descr);
327 } 327 }
328 fprintf(stdout, "\n\n"); 328 fprintf(stdout, "\n\n");
329 return TRUE; 329 return EXIT_SUCCESS;
330} 330}
331 331
332/* built-in 'jobs' handler */ 332/* built-in 'jobs' handler */
@@ -343,7 +343,7 @@ static int builtin_jobs(struct job *dummy, struct jobSet *jobList)
343 343
344 printf(JOB_STATUS_FORMAT, job->jobId, statusString, job->text); 344 printf(JOB_STATUS_FORMAT, job->jobId, statusString, job->text);
345 } 345 }
346 return TRUE; 346 return EXIT_SUCCESS;
347} 347}
348 348
349 349
@@ -352,7 +352,7 @@ static int builtin_pwd(struct job *dummy, struct jobSet *junk)
352{ 352{
353 getcwd(cwd, sizeof(char)*MAX_LINE); 353 getcwd(cwd, sizeof(char)*MAX_LINE);
354 fprintf(stdout, "%s\n", cwd); 354 fprintf(stdout, "%s\n", cwd);
355 return TRUE; 355 return EXIT_SUCCESS;
356} 356}
357 357
358/* built-in 'export VAR=value' handler */ 358/* built-in 'export VAR=value' handler */
@@ -437,11 +437,11 @@ static int builtin_then(struct job *cmd, struct jobSet *junk)
437 437
438 if (! (cmd->jobContext & (IF_TRUE_CONTEXT|IF_FALSE_CONTEXT))) { 438 if (! (cmd->jobContext & (IF_TRUE_CONTEXT|IF_FALSE_CONTEXT))) {
439 errorMsg("unexpected token `then'\n"); 439 errorMsg("unexpected token `then'\n");
440 return FALSE; 440 return EXIT_FAILURE;
441 } 441 }
442 /* If the if result was FALSE, skip the 'then' stuff */ 442 /* If the if result was FALSE, skip the 'then' stuff */
443 if (cmd->jobContext & IF_FALSE_CONTEXT) { 443 if (cmd->jobContext & IF_FALSE_CONTEXT) {
444 return TRUE; 444 return EXIT_SUCCESS;
445 } 445 }
446 446
447 cmd->jobContext |= THEN_EXP_CONTEXT; 447 cmd->jobContext |= THEN_EXP_CONTEXT;
@@ -464,11 +464,11 @@ static int builtin_else(struct job *cmd, struct jobSet *junk)
464 464
465 if (! (cmd->jobContext & (IF_TRUE_CONTEXT|IF_FALSE_CONTEXT))) { 465 if (! (cmd->jobContext & (IF_TRUE_CONTEXT|IF_FALSE_CONTEXT))) {
466 errorMsg("unexpected token `else'\n"); 466 errorMsg("unexpected token `else'\n");
467 return FALSE; 467 return EXIT_FAILURE;
468 } 468 }
469 /* If the if result was TRUE, skip the 'else' stuff */ 469 /* If the if result was TRUE, skip the 'else' stuff */
470 if (cmd->jobContext & IF_TRUE_CONTEXT) { 470 if (cmd->jobContext & IF_TRUE_CONTEXT) {
471 return TRUE; 471 return EXIT_SUCCESS;
472 } 472 }
473 473
474 cmd->jobContext |= ELSE_EXP_CONTEXT; 474 cmd->jobContext |= ELSE_EXP_CONTEXT;
@@ -488,12 +488,12 @@ static int builtin_fi(struct job *cmd, struct jobSet *junk)
488{ 488{
489 if (! (cmd->jobContext & (IF_TRUE_CONTEXT|IF_FALSE_CONTEXT))) { 489 if (! (cmd->jobContext & (IF_TRUE_CONTEXT|IF_FALSE_CONTEXT))) {
490 errorMsg("unexpected token `fi'\n"); 490 errorMsg("unexpected token `fi'\n");
491 return FALSE; 491 return EXIT_FAILURE;
492 } 492 }
493 /* Clear out the if and then context bits */ 493 /* Clear out the if and then context bits */
494 cmd->jobContext &= ~(IF_TRUE_CONTEXT|IF_FALSE_CONTEXT|THEN_EXP_CONTEXT|ELSE_EXP_CONTEXT); 494 cmd->jobContext &= ~(IF_TRUE_CONTEXT|IF_FALSE_CONTEXT|THEN_EXP_CONTEXT|ELSE_EXP_CONTEXT);
495 debug_printf(stderr, "Hit an fi -- jobContext=%d\n", cmd->jobContext); 495 debug_printf(stderr, "Hit an fi -- jobContext=%d\n", cmd->jobContext);
496 return TRUE; 496 return EXIT_SUCCESS;
497} 497}
498#endif 498#endif
499 499
@@ -504,13 +504,13 @@ static int builtin_source(struct job *cmd, struct jobSet *junk)
504 int status; 504 int status;
505 505
506 if (!cmd->progs[0].argv[1] == 1) 506 if (!cmd->progs[0].argv[1] == 1)
507 return FALSE; 507 return EXIT_FAILURE;
508 508
509 input = fopen(cmd->progs[0].argv[1], "r"); 509 input = fopen(cmd->progs[0].argv[1], "r");
510 if (!input) { 510 if (!input) {
511 fprintf(stdout, "Couldn't open file '%s'\n", 511 fprintf(stdout, "Couldn't open file '%s'\n",
512 cmd->progs[0].argv[1]); 512 cmd->progs[0].argv[1]);
513 return FALSE; 513 return EXIT_FAILURE;
514 } 514 }
515 515
516 /* Now run the file */ 516 /* Now run the file */
@@ -524,10 +524,10 @@ static int builtin_unset(struct job *cmd, struct jobSet *junk)
524{ 524{
525 if (!cmd->progs[0].argv[1] == 1) { 525 if (!cmd->progs[0].argv[1] == 1) {
526 fprintf(stdout, "unset: parameter required.\n"); 526 fprintf(stdout, "unset: parameter required.\n");
527 return FALSE; 527 return EXIT_FAILURE;
528 } 528 }
529 unsetenv(cmd->progs[0].argv[1]); 529 unsetenv(cmd->progs[0].argv[1]);
530 return TRUE; 530 return EXIT_SUCCESS;
531} 531}
532 532
533/* free up all memory from a job */ 533/* free up all memory from a job */