if sourced file "shift"ed argvs so that $1 is NULL, restore wasn't done.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
int status = 0;
char *fullname;
char **argv;
+ char *args_need_save;
struct strlist *sp;
volatile struct shparam saveparam;
*/
fullname = find_dot_file(argv[0]);
argv++;
- if (argv[0]) { /* . FILE ARGS, ARGS exist */
+ args_need_save = argv[0];
+ if (args_need_save) { /* . FILE ARGS, ARGS exist */
int argc;
saveparam = shellparam;
shellparam.malloced = 0;
status = cmdloop(0);
popfile();
- if (argv[0]) {
+ if (args_need_save) {
freeparam(&shellparam);
shellparam = saveparam;
};