Changeset 3453 in kBuild for trunk/src/kash/eval.c
- Timestamp:
- Sep 14, 2020 9:28:42 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kash/eval.c
r3449 r3453 818 818 /* Both child and parent exits thru here. */ 819 819 STATIC void 820 evalcommand_out(shinstance *psh, int flags, char *lastarg, struct stackmark *smarkp)820 evalcommand_out(shinstance *psh, int flags, char *lastarg, unsigned expfnamedepth, struct stackmark *smarkp) 821 821 { 822 822 if (lastarg) … … 826 826 */ 827 827 setvar(psh, "_", lastarg, 0); 828 expredircleanup(psh, expfnamedepth); 828 829 popstackmark(psh, smarkp); 829 830 … … 835 836 /* Called if we forkshell(). */ 836 837 STATIC void 837 evalcommand_parent(shinstance *psh, int flags, char *lastarg, struct stackmark *smarkp,838 evalcommand_parent(shinstance *psh, int flags, char *lastarg, unsigned expfnamedepth, struct stackmark *smarkp, 838 839 int mode, struct job *jp, int pip[2], struct backcmd *backcmd) 839 840 { … … 847 848 FORCEINTON; 848 849 849 evalcommand_out(psh, flags, lastarg, smarkp);850 evalcommand_out(psh, flags, lastarg, expfnamedepth, smarkp); 850 851 } 851 852 … … 853 854 { 854 855 struct stackmark smark; 856 unsigned expfnamedepth; 855 857 856 858 struct backcmd *backcmd; … … 1044 1046 } 1045 1047 1046 evalcommand_out(psh, args->flags, args->lastarg, &args->smark);1048 evalcommand_out(psh, args->flags, args->lastarg, args->expfnamedepth, &args->smark); 1047 1049 } 1048 1050 … … 1131 1133 struct strlist *sp; 1132 1134 const char *path = pathval(psh); 1133 unsigned expfnamedepth;1134 1135 1135 1136 /* First expand the arguments. */ … … 1155 1156 *arglist.lastp = NULL; 1156 1157 1157 expfnamedepth = expredir(psh, cmd->ncmd.redirect);1158 args.expfnamedepth = expredir(psh, cmd->ncmd.redirect); 1158 1159 1159 1160 /* Now do the initial 'name=value' ones we skipped above */ … … 1221 1222 psh->exitstatus = 127; 1222 1223 flushout(&psh->errout); 1223 evalcommand_out(psh, flags, args.lastarg, &args.smark);1224 evalcommand_out(psh, flags, args.lastarg, args.expfnamedepth, &args.smark); 1224 1225 return; 1225 1226 } … … 1274 1275 forkshell2(psh, jp, cmd, mode, evalcommand_child, cmd, 1275 1276 &args, sizeof(args), evalcommand_setup_child); 1276 evalcommand_parent(psh, flags, args.lastarg, &args.smark, mode, jp,1277 1277 evalcommand_parent(psh, flags, args.lastarg, args.expfnamedepth, 1278 &args.smark, mode, jp, args.pip, backcmd); 1278 1279 #else 1279 1280 if (forkshell(psh, jp, cmd, mode) != 0) { 1280 evalcommand_parent(psh, flags, args.lastarg, &args.smark, mode, jp, 1281 args.pip, backcmd); 1282 expredircleanup(psh, expfnamedepth); 1281 evalcommand_parent(psh, flags, args.lastarg, args.expfnamedepth, 1282 &args.smark, mode, jp, args.pip, backcmd); 1283 1283 return; /* at end of routine */ 1284 1284 } … … 1291 1291 evalcommand_doit(psh, cmd, &args); 1292 1292 } 1293 expredircleanup(psh, expfnamedepth);1294 1293 } 1295 1294
Note:
See TracChangeset
for help on using the changeset viewer.