Ignore:
Timestamp:
May 21, 2007, 2:27:53 AM (18 years ago)
Author:
bird
Message:

In progress...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/essentials/dev-lang/python/Python/sysmodule.c

    r3225 r3364  
    13191319                        /* It's a symlink */
    13201320                        link[nr] = '\0';
    1321                         if (link[0] == SEP)
     1321                        if (IS_ABSPATH(link))
    13221322                                argv0 = link; /* Link to absolute path */
    1323                         else if (strchr(link, SEP) == NULL)
     1323                        else if (!HAS_ANYSEP(link))
    13241324                                ; /* Link without path */
    13251325                        else {
    13261326                                /* Must join(dirname(argv0), link) */
    13271327                                char *q = strrchr(argv0, SEP);
     1328#ifdef ALTSEP
     1329                                char *q2 = strrchr(q ? q : argv0, ALTSEP);
     1330                                if (q2)
     1331                                        q = q2;
     1332#endif
     1333#ifdef DRVSEP
     1334                                if (!q && HAS_DRV(argv0))
     1335                                        q = strchr(argv0, DRVSEP);
     1336#endif
     1337
    13281338                                if (q == NULL)
    13291339                                        argv0 = link; /* argv0 without path */
     
    13311341                                        /* Must make a copy */
    13321342                                        strcpy(argv0copy, argv0);
    1333                                         q = strrchr(argv0copy, SEP);
     1343                                        q = &argv0copy[q - argv0];
    13341344                                        strcpy(q+1, link);
    13351345                                        argv0 = argv0copy;
     
    13691379#endif
    13701380                        p = strrchr(argv0, SEP);
     1381#ifdef ALTSEP
     1382                        {
     1383                                char *p2 = strrchr(p ? p : argv0, ALTSEP);
     1384                                if (p2 != NULL)
     1385                                        p = p2;
     1386                        }
     1387#endif
     1388#ifdef DRVSEP
     1389                        if (p == NULL && HAS_DRV(argv0))
     1390                                p = strchr(argv0, DRVSEP);
     1391#endif
    13711392                }
    13721393                if (p != NULL) {
Note: See TracChangeset for help on using the changeset viewer.