comparison Python/sysmodule.c @ 35571:35c43674083a 2.4

backport patch [ 1119423 ] python -c readlink()s and stat()s '-c'
author Georg Brandl <georg@python.org>
date Thu, 15 Sep 2005 13:00:25 +0000
parents 91038801eb45
children 612a12178e47
comparison
equal deleted inserted replaced
35569:2691cbdae59b 35571:35c43674083a
1186 PyObject *a; 1186 PyObject *a;
1187 #ifdef HAVE_READLINK 1187 #ifdef HAVE_READLINK
1188 char link[MAXPATHLEN+1]; 1188 char link[MAXPATHLEN+1];
1189 char argv0copy[2*MAXPATHLEN+1]; 1189 char argv0copy[2*MAXPATHLEN+1];
1190 int nr = 0; 1190 int nr = 0;
1191 if (argc > 0 && argv0 != NULL) 1191 if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0)
1192 nr = readlink(argv0, link, MAXPATHLEN); 1192 nr = readlink(argv0, link, MAXPATHLEN);
1193 if (nr > 0) { 1193 if (nr > 0) {
1194 /* It's a symlink */ 1194 /* It's a symlink */
1195 link[nr] = '\0'; 1195 link[nr] = '\0';
1196 if (link[0] == SEP) 1196 if (link[0] == SEP)
1211 } 1211 }
1212 } 1212 }
1213 } 1213 }
1214 #endif /* HAVE_READLINK */ 1214 #endif /* HAVE_READLINK */
1215 #if SEP == '\\' /* Special case for MS filename syntax */ 1215 #if SEP == '\\' /* Special case for MS filename syntax */
1216 if (argc > 0 && argv0 != NULL) { 1216 if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
1217 char *q; 1217 char *q;
1218 #ifdef MS_WINDOWS 1218 #ifdef MS_WINDOWS
1219 char *ptemp; 1219 char *ptemp;
1220 if (GetFullPathName(argv0, 1220 if (GetFullPathName(argv0,
1221 sizeof(fullpath), 1221 sizeof(fullpath),
1234 if (n > 1 && p[-1] != ':') 1234 if (n > 1 && p[-1] != ':')
1235 n--; /* Drop trailing separator */ 1235 n--; /* Drop trailing separator */
1236 } 1236 }
1237 } 1237 }
1238 #else /* All other filename syntaxes */ 1238 #else /* All other filename syntaxes */
1239 if (argc > 0 && argv0 != NULL) { 1239 if (argc > 0 && argv0 != NULL && strcmp(argv0, "-c") != 0) {
1240 #if defined(HAVE_REALPATH) 1240 #if defined(HAVE_REALPATH)
1241 if (realpath(argv0, fullpath)) { 1241 if (realpath(argv0, fullpath)) {
1242 argv0 = fullpath; 1242 argv0 = fullpath;
1243 } 1243 }
1244 #endif 1244 #endif