|
From: <cre...@us...> - 2006-10-12 18:24:48
|
Revision: 1552
http://svn.sourceforge.net/frontierkernel/?rev=1552&view=rev
Author: creecode
Date: 2006-10-12 11:24:42 -0700 (Thu, 12 Oct 2006)
Log Message:
-----------
added file.getPosixPath verb
minor code formatting tweaks
Modified Paths:
--------------
Frontier/branches/FSRef_Migration/Common/resources/Mac/kernelverbs.r
Frontier/branches/FSRef_Migration/Common/resources/Win32/kernelverbs.rc
Frontier/branches/FSRef_Migration/Common/source/fileverbs.c
Modified: Frontier/branches/FSRef_Migration/Common/resources/Mac/kernelverbs.r
===================================================================
--- Frontier/branches/FSRef_Migration/Common/resources/Mac/kernelverbs.r 2006-10-11 19:04:12 UTC (rev 1551)
+++ Frontier/branches/FSRef_Migration/Common/resources/Mac/kernelverbs.r 2006-10-12 18:24:42 UTC (rev 1552)
@@ -608,9 +608,10 @@
};
-resource 'EFP#' (idfileverbs, "file") {
+resource 'EFP#' ( idfileverbs, "file" ) {
{
+
"file", false, {
"created",
@@ -694,10 +695,12 @@
"freespaceonvolumedouble",
"volumesizedouble",
"getmp3info",
- "readwholefile", /* 2006-04-11 aradke */
- "getLabelIndex", /* 2006-04-23 creedon */
- "setLabelIndex", /* 2006-04-23 creedon */
- "getLabelNames" /* 2006-04-23 creedon */
+ "readwholefile", // 2006-04-11 aradke
+ "getLabelIndex", // 2006-04-23 creedon
+ "setLabelIndex", // 2006-04-23 creedon
+ "getLabelNames", // 2006-04-23 creedon
+ "getPosixPath" // 2006-10-07 creedon
+
}
}
};
Modified: Frontier/branches/FSRef_Migration/Common/resources/Win32/kernelverbs.rc
===================================================================
--- Frontier/branches/FSRef_Migration/Common/resources/Win32/kernelverbs.rc 2006-10-11 19:04:12 UTC (rev 1551)
+++ Frontier/branches/FSRef_Migration/Common/resources/Win32/kernelverbs.rc 2006-10-12 18:24:42 UTC (rev 1552)
@@ -578,12 +578,12 @@
END
-1007 /*idfileverbs*/ EFP DISCARDABLE
+1007 /* idfileverbs */ EFP DISCARDABLE
BEGIN
- 1, //Number of "blocks" in this resource
- "file\0", //Function Processor Name
- false, //Window required
- 86, //Count of verbs
+ 1, // Number of "blocks" in this resource
+ "file\0", // Function Processor Name
+ false, // Window required
+ 86, // Count of verbs
"created\0",
"modified\0",
"type\0",
@@ -664,11 +664,12 @@
"getpathchar\0",
"freespaceonvolumedouble\0",
"volumesizedouble\0",
- "getmp3info\0", /*7.0b12 PBS: Andr\xE9's file.getMp3Info verb*/
- "readwholefile\0", /* 2006-04-11 aradke */
- "getLabelIndex\0", /* 2006-04-23 creedon */
- "setLabelIndex\0", /* 2006-04-23 creedon */
- "getLabelNames" /* 2006-04-23 creedon */
+ "getmp3info\0", // 7.0b12 PBS: Andr\xE9's file.getMp3Info verb
+ "readwholefile\0", // 2006-04-11 aradke
+ "getLabelIndex\0", // 2006-04-23 creedon
+ "setLabelIndex\0", // 2006-04-23 creedon
+ "getLabelNames\0", // 2006-04-23 creedon
+ "getPosixPath\0" // 2006-10-07 creedon
END
1008 /*idrezverbs*/ EFP DISCARDABLE
Modified: Frontier/branches/FSRef_Migration/Common/source/fileverbs.c
===================================================================
--- Frontier/branches/FSRef_Migration/Common/source/fileverbs.c 2006-10-11 19:04:12 UTC (rev 1551)
+++ Frontier/branches/FSRef_Migration/Common/source/fileverbs.c 2006-10-12 18:24:42 UTC (rev 1552)
@@ -237,7 +237,7 @@
comparefunc,
- /*end of new verbs added by DW, 7/27/91*/
+ // end of new verbs added by DW, 7/27/91
writewholefilefunc,
@@ -249,15 +249,18 @@
getmp3infofunc,
- readwholefilefunc, /* 2006-04-11 aradke */
+ readwholefilefunc, // 2006-04-11 aradke
- getlabelindexfunc, /* 2006-04-23 creedon */
+ getlabelindexfunc, // 2006-04-23 creedon
- setlabelindexfunc, /* 2006-04-23 creedon */
+ setlabelindexfunc, // 2006-04-23 creedon
- getlabelnamesfunc, /* 2006-04-23 creedon */
+ getlabelnamesfunc, // 2006-04-23 creedon
+ getposixpathfunc, // 2006-10-07 creedon
+
ctfileverbs
+
} tyfiletoken;
@@ -2716,6 +2719,95 @@
} // filedeleteverb
+static boolean getposixpathverb ( hdltreenode hp1, tyvaluerecord *vreturned ) {
+
+ //
+ // 2006-10-07 creedon: created
+ //
+
+ #ifdef MACVERSION
+
+ bigstring bs;
+ tyfilespec fs;
+ tyvaluerecord v;
+
+ flnextparamislast = true;
+
+ if ( ! getparamvalue ( hp1, 1, &v ) )
+ return ( false );
+
+ switch ( v.valuetype ) {
+
+ /* case stringvaluetype:
+
+ pullstringvalue (&v, bs);
+
+ flfolder = endswithpathsep(bs);
+
+ if (flfolder)
+ setstringlength (bs, stringlength (bs) - 1);
+
+ filefrompath (bs, bs); // bs now holds the filename
+
+ break; */
+
+ default:
+
+ if ( ! coercetofilespec ( &v ) )
+ return ( false );
+
+ fs = **v.data.filespecvalue;
+
+ boolean fl;
+ OSStatus status;
+
+ fl = extendfilespec ( &fs, &fs );
+
+ status = FSRefMakePath ( &fs.fsref, ( UInt8 * ) bs, 256 ); // bs is now a c string
+
+ convertcstring ( bs ); // bs is now a bigstring
+
+ if ( fl ) {
+
+ boolean flfolder;
+
+ ( void ) fileexists ( &fs, &flfolder ); // don't care about return, just flfolder value
+
+ if ( flfolder && bs [*bs] != '/' )
+ pushchar ( '/', bs );
+ }
+
+ else {
+
+ if ( fs.path != NULL ) {
+
+ bigstring bsfile;
+
+ CFStringRefToStr255 ( fs.path, bsfile );
+
+ pushchar ( '/', bs );
+
+ pushstring ( bsfile, bs );
+
+ }
+ }
+
+ break;
+ }
+
+ return ( setstringvalue ( bs, vreturned ) );
+
+ #endif // MACVERSION
+
+ #ifdef WIN95VERSION
+
+ return ( false )
+
+ #endif
+
+ } // getposixpathverb
+
+
#ifdef MACVERSION
static boolean newaliasverb (hdltreenode hparam1, tyvaluerecord *vreturned) {
@@ -3997,8 +4089,13 @@
case readwholefilefunc: // 2006-04-11 aradke
return (readwholefileverb (hparam1, v));
-
+
+ case getposixpathfunc: // 2006-10-07 creedon
+
+ return ( getposixpathverb ( hp1, v ) );
+
#ifdef WIN95VERSION
+
case newaliasfunc:
case filefollowaliasfunc:
case filegeticonposfunc:
@@ -4013,15 +4110,19 @@
case volumeejectfunc:
case setfiletypefunc:
case setfilecreatorfunc:
+
#endif
+
default:
getstringlist (langerrorlist, unimplementedverberror, bserror);
break;
- } /*switch*/
+
+ } // switch
return (false);
- } /*filefunctionvalue*/
+
+ } // filefunctionvalue
static boolean rezfunctionvalue (short token, hdltreenode hparam1, tyvaluerecord *vreturned, bigstring bserror) {
@@ -4119,7 +4220,6 @@
} /*fileinitverbs*/
-
boolean filestart (void) {
/*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|