diff options
Diffstat (limited to 'libjava/classpath/native/jni/java-io')
-rw-r--r-- | libjava/classpath/native/jni/java-io/Makefile.in | 25 | ||||
-rw-r--r-- | libjava/classpath/native/jni/java-io/java_io_VMFile.c | 106 |
2 files changed, 78 insertions, 53 deletions
diff --git a/libjava/classpath/native/jni/java-io/Makefile.in b/libjava/classpath/native/jni/java-io/Makefile.in index 6e49428f403..8423de836bb 100644 --- a/libjava/classpath/native/jni/java-io/Makefile.in +++ b/libjava/classpath/native/jni/java-io/Makefile.in @@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ $(top_srcdir)/../../lt~obsolete.m4 \ + $(top_srcdir)/m4/ac_prog_antlr.m4 \ + $(top_srcdir)/m4/ac_prog_java.m4 \ + $(top_srcdir)/m4/ac_prog_java_works.m4 \ $(top_srcdir)/m4/ac_prog_javac.m4 \ $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ @@ -101,6 +104,8 @@ ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +ANTLR = @ANTLR@ +ANTLR_JAR = @ANTLR_JAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -132,6 +137,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@ CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@ CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@ CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@ +CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@ +CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@ +CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@ +CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@ +CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@ +CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@ CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@ CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@ CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@ @@ -170,11 +181,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ -FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ +GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@ +GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -184,6 +196,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@ GJDOC = @GJDOC@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_LIBS = @GLIB_LIBS@ +GMP_CFLAGS = @GMP_CFLAGS@ +GMP_LIBS = @GMP_LIBS@ GREP = @GREP@ GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@ GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@ @@ -205,7 +219,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +JAR = @JAR@ +JAVA = @JAVA@ JAVAC = @JAVAC@ +JAVAC_IS_GCJ = @JAVAC_IS_GCJ@ JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ @@ -271,8 +288,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ -VM_BINARY = @VM_BINARY@ +WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@ WARNING_CFLAGS = @WARNING_CFLAGS@ +WITH_JAR_FALSE = @WITH_JAR_FALSE@ +WITH_JAR_TRUE = @WITH_JAR_TRUE@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -283,6 +302,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ +ac_ct_ANTLR = @ac_ct_ANTLR@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ @@ -342,6 +362,7 @@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ toolexeclibdir = @toolexeclibdir@ +uudecode = @uudecode@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libjavaio.la libjavaio_la_SOURCES = java_io_VMFile.c \ diff --git a/libjava/classpath/native/jni/java-io/java_io_VMFile.c b/libjava/classpath/native/jni/java-io/java_io_VMFile.c index e79704fa672..a15cec769ee 100644 --- a/libjava/classpath/native/jni/java-io/java_io_VMFile.c +++ b/libjava/classpath/native/jni/java-io/java_io_VMFile.c @@ -97,7 +97,7 @@ Java_java_io_VMFile_create (JNIEnv * env, if (result != CPNATIVE_OK) { if (result != EEXIST) - JCL_ThrowException (env, + JCL_ThrowException (env, "java/io/IOException", cpnative_getErrorString (result)); JCL_free_cstring (env, name, filename); @@ -124,12 +124,11 @@ Java_java_io_VMFile_create (JNIEnv * env, JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canRead (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring name) + jclass clazz __attribute__ ((__unused__)), + jstring name) { #ifndef WITHOUT_FILESYSTEM const char *filename; - int fd; int result; /* Don't use the JCL convert function because it throws an exception @@ -137,20 +136,18 @@ Java_java_io_VMFile_canRead (JNIEnv * env, filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) { - return 0; + return JNI_FALSE; } - /* The lazy man's way out. We actually do open the file for reading - briefly to verify it can be done */ - result = cpio_openFile (filename, &fd, CPFILE_FLAG_READ, 0); + result = cpio_checkAccess (filename, CPFILE_FLAG_READ); + (*env)->ReleaseStringUTFChars (env, name, filename); if (result != CPNATIVE_OK) - return 0; - cpio_closeFile (fd); + return JNI_FALSE; - return 1; + return JNI_TRUE; #else /* not WITHOUT_FILESYSTEM */ - return 0; + return JNI_FALSE; #endif /* not WITHOUT_FILESYSTEM */ } @@ -166,12 +163,11 @@ Java_java_io_VMFile_canRead (JNIEnv * env, JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canWrite (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring name) + jclass clazz __attribute__ ((__unused__)), + jstring name) { #ifndef WITHOUT_FILESYSTEM const char *filename; - int fd; int result; /* Don't use the JCL convert function because it throws an exception @@ -179,27 +175,34 @@ Java_java_io_VMFile_canWrite (JNIEnv * env, filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) { - return 0; + return JNI_FALSE; } - /* The lazy man's way out. We actually do open the file for writing - briefly to verify it can be done */ - result = cpio_openFile (filename, &fd, CPFILE_FLAG_READWRITE, 0); + result = cpio_checkAccess (filename, CPFILE_FLAG_WRITE); + (*env)->ReleaseStringUTFChars (env, name, filename); if (result != CPNATIVE_OK) { - return 0; + return JNI_FALSE; } - cpio_closeFile (fd); - return 1; + return JNI_TRUE; #else /* not WITHOUT_FILESYSTEM */ - return 0; + return JNI_FALSE; #endif /* not WITHOUT_FILESYSTEM */ } /*************************************************************************/ +JNIEXPORT jboolean JNICALL +Java_java_io_VMFile_canWriteDirectory (JNIEnv *env, jclass clazz, jstring path) +{ + /* this is only valid on *nix systems */ + return Java_java_io_VMFile_canWrite(env, clazz, path); +} + +/*************************************************************************/ + /* * This method checks to see if we have execute permission on a file. * @@ -250,8 +253,8 @@ Java_java_io_VMFile_canExecute (JNIEnv * env, JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setReadOnly (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring name) + jclass clazz __attribute__ ((__unused__)), + jstring name) { #ifndef WITHOUT_FILESYSTEM const char *filename; @@ -326,10 +329,10 @@ Java_java_io_VMFile_setWritable (JNIEnv *env, */ JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setExecutable (JNIEnv *env, - jclass clazz __attribute__ ((__unused__)), - jstring name, - jboolean executable, - jboolean ownerOnly) + jclass clazz __attribute__ ((__unused__)), + jstring name, + jboolean executable, + jboolean ownerOnly) { return set_file_permissions (env, name, executable, ownerOnly, CPFILE_FLAG_EXEC); @@ -434,8 +437,8 @@ Java_java_io_VMFile_getUsableSpace (JNIEnv *env, JNIEXPORT jboolean JNICALL Java_java_io_VMFile_exists (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring name) + jclass clazz __attribute__ ((__unused__)), + jstring name) { #ifndef WITHOUT_FILESYSTEM const char *filename; @@ -471,8 +474,8 @@ Java_java_io_VMFile_exists (JNIEnv * env, JNIEXPORT jboolean JNICALL Java_java_io_VMFile_isFile (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring name) + jclass clazz __attribute__ ((__unused__)), + jstring name) { #ifndef WITHOUT_FILESYSTEM const char *filename; @@ -508,8 +511,8 @@ Java_java_io_VMFile_isFile (JNIEnv * env, JNIEXPORT jboolean JNICALL Java_java_io_VMFile_isDirectory (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring name) + jclass clazz __attribute__ ((__unused__)), + jstring name) { #ifndef WITHOUT_FILESYSTEM const char *filename; @@ -545,8 +548,8 @@ Java_java_io_VMFile_isDirectory (JNIEnv * env, JNIEXPORT jlong JNICALL Java_java_io_VMFile_length (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring name) + jclass clazz __attribute__ ((__unused__)), + jstring name) { #ifndef WITHOUT_FILESYSTEM const char *filename; @@ -593,8 +596,8 @@ Java_java_io_VMFile_length (JNIEnv * env, JNIEXPORT jlong JNICALL Java_java_io_VMFile_lastModified (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring name) + jclass clazz __attribute__ ((__unused__)), + jstring name) { #ifndef WITHOUT_FILESYSTEM const char *filename; @@ -630,8 +633,8 @@ Java_java_io_VMFile_lastModified (JNIEnv * env, JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setLastModified (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring name, jlong newtime) + jclass clazz __attribute__ ((__unused__)), + jstring name, jlong newtime) { #ifndef WITHOUT_FILESYSTEM const char *filename; @@ -667,8 +670,8 @@ Java_java_io_VMFile_setLastModified (JNIEnv * env, JNIEXPORT jboolean JNICALL Java_java_io_VMFile_delete (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring name) + jclass clazz __attribute__ ((__unused__)), + jstring name) { #ifndef WITHOUT_FILESYSTEM const char *filename; @@ -703,8 +706,8 @@ Java_java_io_VMFile_delete (JNIEnv * env, JNIEXPORT jboolean JNICALL Java_java_io_VMFile_mkdir (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring name) + jclass clazz __attribute__ ((__unused__)), + jstring name) { #ifndef WITHOUT_FILESYSTEM const char *pathname; @@ -739,8 +742,8 @@ Java_java_io_VMFile_mkdir (JNIEnv * env, JNIEXPORT jboolean JNICALL Java_java_io_VMFile_renameTo (JNIEnv * env, - jobject obj __attribute__ ((__unused__)), - jstring t, jstring d) + jclass clazz __attribute__ ((__unused__)), + jstring t, jstring d) { #ifndef WITHOUT_FILESYSTEM const char *old_filename, *new_filename; @@ -783,8 +786,9 @@ Java_java_io_VMFile_renameTo (JNIEnv * env, */ JNIEXPORT jobjectArray JNICALL -Java_java_io_VMFile_list (JNIEnv * env, jobject obj - __attribute__ ((__unused__)), jstring name) +Java_java_io_VMFile_list (JNIEnv * env, + jclass clazz __attribute__ ((__unused__)), + jstring name) { #ifndef WITHOUT_FILESYSTEM const int REALLOC_SIZE = 10; @@ -991,8 +995,8 @@ maybeGrowBuf (JNIEnv *env, char *buf, int *size, int required) JNIEXPORT jstring JNICALL Java_java_io_VMFile_toCanonicalForm (JNIEnv *env, - jclass class __attribute__ ((__unused__)), - jstring jpath) + jclass class __attribute__ ((__unused__)), + jstring jpath) { #ifndef WITHOUT_FILESYSTEM const char *path; |