Changeset 1199 for trunk/src/kash/exec.c
- Timestamp:
- Oct 7, 2007, 12:04:05 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kash/exec.c
r1198 r1199 144 144 const int has_ext = 1; 145 145 #endif 146 TRACE(( "shellexec: argv[0]=%s idx=%d\n", argv[0], idx));146 TRACE((psh, "shellexec: argv[0]=%s idx=%d\n", argv[0], idx)); 147 147 if (strchr(argv[0], '/') != NULL) { 148 148 cmdname = stalloc(psh, strlen(argv[0]) + 5); 149 149 strcpy(cmdname, argv[0]); 150 150 tryexec(cmdname, argv, envp, vforked, has_ext); 151 TRACE(( "shellexec: cmdname=%s\n", cmdname));151 TRACE((psh, "shellexec: cmdname=%s\n", cmdname)); 152 152 stunalloc(psh, cmdname); 153 153 e = errno; … … 176 176 break; 177 177 } 178 TRACE(( "shellexec failed for '%s', errno %d, vforked %d, suppressint %d\n",178 TRACE((psh, "shellexec failed for '%s', errno %d, vforked %d, suppressint %d\n", 179 179 argv[0], e, vforked, suppressint )); 180 exerror( EXEXEC, "%s: %s", argv[0], errmsg(e, E_EXEC));180 exerror(psh, EXEXEC, "%s: %s", argv[0], errmsg(psh, e, E_EXEC)); 181 181 /* NOTREACHED */ 182 182 } … … 216 216 * with a normal fork(2). 217 217 */ 218 exraise( EXSHELLPROC);218 exraise(psh, EXSHELLPROC); 219 219 } 220 220 initshellproc(); … … 230 230 #endif 231 231 setparam(argv + 1); 232 exraise( EXSHELLPROC);232 exraise(psh, EXSHELLPROC); 233 233 } 234 234 errno = e; … … 274 274 break; 275 275 if (ap == &newargs[NEWARGS]) 276 bad: error( "Bad #! line");276 bad: error(psh, "Bad #! line"); 277 277 STARTSTACKSTR(psh, outp); 278 278 do { … … 287 287 for (;;) { 288 288 if (equal(p, "sh") || equal(p, "ash")) { 289 TRACE(( "hash bang self\n"));289 TRACE((psh, "hash bang self\n")); 290 290 return; 291 291 } … … 301 301 i = (char *)ap - (char *)newargs; /* size in bytes */ 302 302 if (i == 0) 303 error( "Bad #! line");303 error(psh, "Bad #! line"); 304 304 for (ap2 = argv ; *ap2++ != NULL ; ); 305 305 new = ckmalloc(i + ((char *)ap2 - (char *)argv)); … … 309 309 ap = argv; 310 310 while (*ap2++ = *ap++); 311 TRACE(( "hash bang '%s'\n", new[0]));311 TRACE((psh, "hash bang '%s'\n", new[0])); 312 312 shellexec(new, envp, pathval(), 0, 0); 313 313 /* NOTREACHED */ … … 464 464 printentry(cmdp, verbose); 465 465 } 466 output_flushall( );466 output_flushall(psh); 467 467 } 468 468 argptr++; … … 487 487 stunalloc(psh, name); 488 488 } while (--idx >= 0); 489 out1str( name);489 out1str(psh, name); 490 490 break; 491 491 case CMDSPLBLTIN: 492 out1fmt( "special builtin %s", cmdp->cmdname);492 out1fmt(psh, "special builtin %s", cmdp->cmdname); 493 493 break; 494 494 case CMDBUILTIN: 495 out1fmt( "builtin %s", cmdp->cmdname);495 out1fmt(psh, "builtin %s", cmdp->cmdname); 496 496 break; 497 497 case CMDFUNCTION: 498 out1fmt( "function %s", cmdp->cmdname);498 out1fmt(psh, "function %s", cmdp->cmdname); 499 499 if (verbose) { 500 500 struct procstat ps; … … 502 502 commandtext(&ps, cmdp->param.func); 503 503 INTON; 504 out1str( "() { ");505 out1str(ps .cmd);506 out1str( "; }");504 out1str(psh, "() { "); 505 out1str(psh, ps.cmd); 506 out1str(psh, "; }"); 507 507 } 508 508 break; 509 509 default: 510 error( "internal error: %s cmdtype %d", cmdp->cmdname, cmdp->cmdtype);510 error(psh, "internal error: %s cmdtype %d", cmdp->cmdname, cmdp->cmdtype); 511 511 } 512 512 if (cmdp->rehash) 513 out1c( '*');514 out1c( '\n');513 out1c(psh, '*'); 514 out1c(psh, '\n'); 515 515 } 516 516 … … 641 641 if (idx < prev) 642 642 goto loop; 643 TRACE(( "searchexec \"%s\": no change\n", name));643 TRACE((psh, "searchexec \"%s\": no change\n", name)); 644 644 goto success; 645 645 } … … 668 668 if ((cmdp = cmdlookup(name, 0)) == NULL || 669 669 cmdp->cmdtype != CMDFUNCTION) 670 error( "%s not defined in %s", name, fullname);670 error(psh, "%s not defined in %s", name, fullname); 671 671 stunalloc(psh, fullname); 672 672 goto success; … … 686 686 } 687 687 #endif 688 TRACE(( "searchexec \"%s\" returns \"%s\"\n", name, fullname));688 TRACE((psh, "searchexec \"%s\" returns \"%s\"\n", name, fullname)); 689 689 INTOFF; 690 690 if (act & DO_ALTPATH) { … … 703 703 delete_cmd_entry(); 704 704 if (act & DO_ERR) 705 outfmt(out2, "%s: %s\n", name, errmsg( e, E_EXEC));705 outfmt(out2, "%s: %s\n", name, errmsg(psh, e, E_EXEC)); 706 706 entry->cmdtype = CMDUNKNOWN; 707 707 return; … … 1094 1094 1095 1095 if (p_flag && (v_flag || V_flag)) 1096 error( "cannot specify -p with -v or -V");1096 error(psh, "cannot specify -p with -v or -V"); 1097 1097 1098 1098 while ((arg = *argptr++)) { 1099 1099 if (!v_flag) 1100 out1str( arg);1100 out1str(psh, arg); 1101 1101 /* First look at the keywords */ 1102 1102 for (pp = parsekwd; *pp; pp++) … … 1108 1108 err = 1; 1109 1109 else 1110 out1str( " is a shell keyword\n");1110 out1str(psh, " is a shell keyword\n"); 1111 1111 continue; 1112 1112 } 1113 1113 1114 1114 /* Then look at the aliases */ 1115 if ((ap = lookupalias( arg, 1)) != NULL) {1115 if ((ap = lookupalias(psh, arg, 1)) != NULL) { 1116 1116 if (!v_flag) 1117 out1fmt( " is an alias for \n");1118 out1fmt( "%s\n", ap->val);1117 out1fmt(psh, " is an alias for \n"); 1118 out1fmt(psh, "%s\n", ap->val); 1119 1119 continue; 1120 1120 } … … 1140 1140 } while (--j >= 0); 1141 1141 if (!v_flag) 1142 out1fmt( " is%s ",1142 out1fmt(psh, " is%s ", 1143 1143 cmdp ? " a tracked alias for" : ""); 1144 out1fmt( "%s\n", name);1144 out1fmt(psh, "%s\n", name); 1145 1145 } else { 1146 1146 if (access(arg, X_OK) == 0) { 1147 1147 if (!v_flag) 1148 out1fmt( " is ");1149 out1fmt( "%s\n", arg);1148 out1fmt(psh, " is "); 1149 out1fmt(psh, "%s\n", arg); 1150 1150 } else { 1151 1151 if (!v_flag) 1152 out1fmt( ": %s\n",1152 out1fmt(psh, ": %s\n", 1153 1153 strerror(errno)); 1154 1154 else … … 1160 1160 case CMDFUNCTION: 1161 1161 if (!v_flag) 1162 out1str( " is a shell function\n");1162 out1str(psh, " is a shell function\n"); 1163 1163 else 1164 out1fmt( "%s\n", arg);1164 out1fmt(psh, "%s\n", arg); 1165 1165 break; 1166 1166 1167 1167 case CMDBUILTIN: 1168 1168 if (!v_flag) 1169 out1str( " is a shell builtin\n");1169 out1str(psh, " is a shell builtin\n"); 1170 1170 else 1171 out1fmt( "%s\n", arg);1171 out1fmt(psh, "%s\n", arg); 1172 1172 break; 1173 1173 1174 1174 case CMDSPLBLTIN: 1175 1175 if (!v_flag) 1176 out1str( " is a special shell builtin\n");1176 out1str(psh, " is a special shell builtin\n"); 1177 1177 else 1178 out1fmt( "%s\n", arg);1178 out1fmt(psh, "%s\n", arg); 1179 1179 break; 1180 1180 1181 1181 default: 1182 1182 if (!v_flag) 1183 out1str( ": not found\n");1183 out1str(psh, ": not found\n"); 1184 1184 err = 127; 1185 1185 break;
Note:
See TracChangeset
for help on using the changeset viewer.