Mercurial > cpython-lru_cache-weakref
diff Python/sysmodule.c @ 4256:e225e70fd657 legacy-trunk
Changes to setpythonpath():
Test for / as well as for SEP for MS filenames.
Drop trailing separator from sys.path[0] for MS and Unix filenames.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Tue, 10 Sep 1996 14:44:21 +0000 |
| parents | c80c515999b9 |
| children | 1427d61f1307 |
line wrap: on
line diff
--- a/Python/sysmodule.c Tue Sep 10 12:39:26 1996 +0000 +++ b/Python/sysmodule.c Tue Sep 10 14:44:21 1996 +0000 @@ -367,14 +367,33 @@ fatal("can't assign sys.argv"); if (path != NULL) { char *p = NULL; - int n; + int n = 0; object *a; +#if SEP == '\\' /* Special case for MS filename syntax */ + if (argc > 0 && argv[0] != NULL) { + char *q; + p = strrchr(argv[0], SEP); + /* Test for alternate separator */ + q = strrchr(p ? p : argv[0], '/'); + if (q != NULL) + p = q; + if (p != NULL) { + n = p + 1 - argv[0]; + if (n > 1 && p[-1] != ':') + n--; /* Drop trailing separator */ + } + } +#else /* All other filename syntaxes */ if (argc > 0 && argv[0] != NULL) p = strrchr(argv[0], SEP); - if (p == NULL) - n = 0; - else + if (p != NULL) { n = p + 1 - argv[0]; +#if SEP == '/' /* Special case for Unix filename syntax */ + if (n > 1) + n--; /* Drop trailing separator */ +#endif /* Unix */ + } +#endif /* All others */ a = newsizedstringobject(argv[0], n); if (a == NULL) fatal("no mem for sys.path insertion");
