comparison Python/sysmodule.c @ 3877:408e374934e5 legacy-trunk

Always insert script directory in front of sys.path -- if there's no sys.argv, insert "". Note that "." is removed as a default component of the path (see changes to getpath.c and Setup.in).
author Guido van Rossum <guido@python.org>
date Tue, 30 Jul 1996 20:35:50 +0000
parents 93868c7a15c9
children c80c515999b9
comparison
equal deleted inserted replaced
3876:0638fdc23eec 3877:408e374934e5
358 setpythonargv(argc, argv) 358 setpythonargv(argc, argv)
359 int argc; 359 int argc;
360 char **argv; 360 char **argv;
361 { 361 {
362 object *av = makeargvobject(argc, argv); 362 object *av = makeargvobject(argc, argv);
363 object *path = sysget("path");
363 if (av == NULL) 364 if (av == NULL)
364 fatal("no mem for sys.argv"); 365 fatal("no mem for sys.argv");
365 if (sysset("argv", av) != 0) 366 if (sysset("argv", av) != 0)
366 fatal("can't assign sys.argv"); 367 fatal("can't assign sys.argv");
367 if (argc > 0) { 368 if (path != NULL) {
368 object *path = sysget("path"); 369 char *p = NULL;
369 if (path != NULL) { 370 int n;
370 char *p = strrchr(argv[0], SEP); 371 object *a;
371 int n; 372 if (argc > 0 && argv[0] != NULL)
372 object *a; 373 p = strrchr(argv[0], SEP);
373 if (p == NULL) 374 if (p == NULL)
374 n = 0; 375 n = 0;
375 else 376 else
376 n = p + 1 - argv[0]; 377 n = p + 1 - argv[0];
377 a = newsizedstringobject(argv[0], n); 378 a = newsizedstringobject(argv[0], n);
378 if (a == NULL) 379 if (a == NULL)
379 fatal("no mem for sys.path insertion"); 380 fatal("no mem for sys.path insertion");
380 if (inslistitem(path, 0, a) < 0) 381 if (inslistitem(path, 0, a) < 0)
381 fatal("sys.path.insert(0) failed"); 382 fatal("sys.path.insert(0) failed");
382 DECREF(a); 383 DECREF(a);
383 }
384 } 384 }
385 DECREF(av); 385 DECREF(av);
386 } 386 }