summaryrefslogtreecommitdiffstats
path: root/Mac/Python/macgetargv.c
diff options
context:
space:
mode:
authorJack Jansen <jack.jansen@cwi.nl>2001-09-10 22:00:39 (GMT)
committerJack Jansen <jack.jansen@cwi.nl>2001-09-10 22:00:39 (GMT)
commit697842f58cfa15e86e92fa1c2733d7d9908a340e (patch)
tree7f5045964d5946de3f348459fb485a2463eddb69 /Mac/Python/macgetargv.c
parentb0e8e9b72fb6eb42ecd4d9ea9e88563d1ca4528a (diff)
downloadcpython-697842f58cfa15e86e92fa1c2733d7d9908a340e.zip
cpython-697842f58cfa15e86e92fa1c2733d7d9908a340e.tar.gz
cpython-697842f58cfa15e86e92fa1c2733d7d9908a340e.tar.bz2
Replaced PyMac_FullPath by PyMac_FullPathname, which has an extra 'length'
parameter for the return string (as unix pathnames are not limited by the 255 char pstring limit). Implemented the function for MachO-Python, where it returns unix pathnames.
Diffstat (limited to 'Mac/Python/macgetargv.c')
-rw-r--r--Mac/Python/macgetargv.c30
1 files changed, 10 insertions, 20 deletions
diff --git a/Mac/Python/macgetargv.c b/Mac/Python/macgetargv.c
index c5af0ec..8fdbad5 100644
--- a/Mac/Python/macgetargv.c
+++ b/Mac/Python/macgetargv.c
@@ -54,10 +54,16 @@ typedef unsigned long refcontype;
#include "Python.h"
#include "macglue.h"
+#ifdef TARGET_API_MAC_OSX
+#define PATHNAMELEN 1024
+#else
+#define PATHNAMELEN 256
+#endif
+
static int arg_count;
static char *arg_vector[256];
FSSpec PyMac_ApplicationFSSpec;
-char PyMac_ApplicationPath[256];
+char PyMac_ApplicationPath[PATHNAMELEN];
/* Duplicate a string to the heap. We also export this since it isn't standard
** and others use it
@@ -73,22 +79,6 @@ strdup(const char *src)
}
#endif
-#if TARGET_API_MAC_OSX
-OSErr
-PyMac_GetFullPath(FSSpec *fss, char *path)
-{
- FSRef fsr;
- OSErr err;
-
- *path = '\0';
- err = FSpMakeFSRef(fss, &fsr);
- if ( err ) return err;
- err = (OSErr)FSRefMakePath(&fsr, path, 1024);
- if ( err ) return err;
- return 0;
-}
-#endif /* TARGET_API_MAC_OSX */
-
#if !TARGET_API_MAC_OSX
/* Initialize FSSpec and full name of current application */
@@ -109,7 +99,7 @@ PyMac_init_process_location(void)
info.processAppSpec = &PyMac_ApplicationFSSpec;
if ( err=GetProcessInformation(&currentPSN, &info))
return err;
- if ( err=PyMac_GetFullPath(&PyMac_ApplicationFSSpec, PyMac_ApplicationPath) )
+ if ( err=PyMac_GetFullPathname(&PyMac_ApplicationFSSpec, PyMac_ApplicationPath, PATHNAMELEN) )
return err;
applocation_inited = 1;
return 0;
@@ -170,7 +160,7 @@ handle_open_doc(const AppleEvent *theAppleEvent, AppleEvent *reply, refcontype r
DescType rttype;
long i, ndocs, size;
FSSpec fss;
- char path[1024];
+ char path[PATHNAMELEN];
got_one = 1;
if ((err = AEGetParamDesc(theAppleEvent,
@@ -185,7 +175,7 @@ handle_open_doc(const AppleEvent *theAppleEvent, AppleEvent *reply, refcontype r
&keywd, &rttype, &fss, sizeof(fss), &size);
if (err)
break;
- PyMac_GetFullPath(&fss, path);
+ PyMac_GetFullPathname(&fss, path, PATHNAMELEN);
arg_vector[arg_count++] = strdup(path);
}
return err;