git-svn-id: svn://10.0.0.236/trunk@94033 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
syd%netscape.com
2001-05-05 07:19:22 +00:00
parent ac0dc938fd
commit 5f05b369c4
5 changed files with 61 additions and 0 deletions

View File

@@ -1883,6 +1883,15 @@ nsInstall::FileOpFileIsDirectory(nsInstallFolder& aTarget, PRBool* aReturn)
return NS_OK;
}
PRInt32
nsInstall::FileOpFileIsWritable(nsInstallFolder& aTarget, PRBool* aReturn)
{
nsCOMPtr<nsIFile> localFile = aTarget.GetFileSpec();
localFile->IsWritable(aReturn);
return NS_OK;
}
PRInt32
nsInstall::FileOpFileIsFile(nsInstallFolder& aTarget, PRBool* aReturn)
{

View File

@@ -252,6 +252,7 @@ class nsInstall
PRInt32 FileOpFileGetModDate(nsInstallFolder& aTarget, double* aReturn);
PRInt32 FileOpFileGetSize(nsInstallFolder& aTarget, PRInt64* aReturn);
PRInt32 FileOpFileIsDirectory(nsInstallFolder& aTarget, PRBool* aReturn);
PRInt32 FileOpFileIsWritable(nsInstallFolder& aTarget, PRBool* aReturn);
PRInt32 FileOpFileIsFile(nsInstallFolder& aTarget, PRBool* aReturn);
PRInt32 FileOpFileModDateChanged(nsInstallFolder& aTarget, double aOldStamp, PRBool* aReturn);
PRInt32 FileOpFileMove(nsInstallFolder& aSrc, nsInstallFolder& aTarget, PRInt32* aReturn);

View File

@@ -772,6 +772,52 @@ InstallFileOpFileIsDirectory(JSContext *cx, JSObject *obj, uintN argc, jsval *ar
return JS_TRUE;
}
//
// Native method FileIsWritable
//
JSBool PR_CALLBACK
InstallFileOpFileIsWritable(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
{
nsInstall *nativeThis = (nsInstall*)JS_GetPrivate(cx, obj);
PRInt32 nativeRet;
JSObject *jsObj;
nsInstallFolder *folder;
*rval = BOOLEAN_TO_JSVAL(PR_FALSE);
// If there's no private data, this must be the prototype, so ignore
if(nsnull == nativeThis)
{
return JS_TRUE;
}
if (argc == 0 || argv[0] == JSVAL_NULL || !JSVAL_IS_OBJECT(argv[0])) //argv[0] MUST be a jsval
{
*rval = BOOLEAN_TO_JSVAL(PR_FALSE);
return JS_TRUE;
}
jsObj = JSVAL_TO_OBJECT(argv[0]);
if (!JS_InstanceOf(cx, jsObj, &FileSpecObjectClass, nsnull))
{
*rval = BOOLEAN_TO_JSVAL(PR_FALSE);
return JS_TRUE;
}
folder = (nsInstallFolder*)JS_GetPrivate(cx, jsObj);
if(!folder || NS_OK != nativeThis->FileOpFileIsWritable(*folder, &nativeRet))
{
return JS_TRUE;
}
*rval = BOOLEAN_TO_JSVAL(nativeRet);
return JS_TRUE;
}
//
// Native method FileIsFile
//
@@ -1424,6 +1470,7 @@ static JSFunctionSpec FileOpMethods[] =
{"modDate", InstallFileOpFileGetModDate, 1},
{"size", InstallFileOpFileGetSize, 1},
{"isDirectory", InstallFileOpFileIsDirectory, 1},
{"isWritable", InstallFileOpFileIsWritable, 1},
{"isFile", InstallFileOpFileIsFile, 1},
{"modDateChanged", InstallFileOpFileModDateChanged, 2},
{"move", InstallFileOpFileMove, 2},

View File

@@ -66,6 +66,9 @@ InstallFileOpFileGetSize(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
JSBool PR_CALLBACK
InstallFileOpFileIsDirectory(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
JSBool PR_CALLBACK
InstallFileOpFileIsWritable(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
JSBool PR_CALLBACK
InstallFileOpFileIsFile(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);

View File

@@ -1838,6 +1838,7 @@ static JSFunctionSpec InstallMethods[] =
{"fileGetModDate", InstallFileOpFileGetModDate, 1},
{"fileGetSize", InstallFileOpFileGetSize, 1},
{"fileIsDirectory", InstallFileOpFileIsDirectory, 1},
{"fileIsWritable", InstallFileOpFileIsWritable, 1},
{"fileIsFile", InstallFileOpFileIsFile, 1},
{"fileModDateChanged", InstallFileOpFileModDateChanged, 2},
{"fileMove", InstallFileOpFileMove, 2},