/* DO NOT EDIT THIS FILE - it is machine generated (JCGO_116) */

#ifdef JCGO_SEPARATED
#define JCGO_116
#include "jcgortl.h"
#include "Main.h"
#endif

#ifdef JCGO_116

#ifdef CHKALL_java_io_VMFile
#include "jcgobchk.h"
#endif

JCGO_NOSEP_INLINE java_lang_String CFASTCALL
java_io_VMFile__getenv0__Ls( java_lang_String name )
{
#ifdef NOJAVA_java_io_VMFile_getenv0
 jcgo_jniNoNativeFunc();
 return jnull;
#else
 JCGO_JNI_BLOCK(1)
 return (java_lang_String)jcgo_jniLeave(jcgo_pJniEnv, (jobject)JCGO_JNI_FUNC(Java_java_io_VMFile_getenv0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  (jstring)JCGO_JNI_TOLOCALREF(1, name)));
#endif
}

JCGO_NOSEP_INLINE java_lang_String CFASTCALL
java_io_VMFile__getLineSeparator0__( void )
{
#ifdef NOJAVA_java_io_VMFile_getLineSeparator0
 jcgo_jniNoNativeFunc();
 return jnull;
#else
 JCGO_JNI_BLOCK(0)
 return (java_lang_String)jcgo_jniLeave(jcgo_pJniEnv, (jobject)JCGO_JNI_FUNC(Java_java_io_VMFile_getLineSeparator0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class))));
#endif
}

JCGO_NOSEP_FRWINL jint CFASTCALL
java_io_VMFile__isUniRootFileSys0__( void )
{
#ifdef NOJAVA_java_io_VMFile_isUniRootFileSys0
 jcgo_jniNoNativeFunc();
 return (jint)0;
#else
 jint jcgo_retval;
 JCGO_JNI_BLOCK(0)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_isUniRootFileSys0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)));
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_INLINE java_lang_String CFASTCALL
java_io_VMFile__normPlatformPath0__Ls( java_lang_String path )
{
#ifdef NOJAVA_java_io_VMFile_normPlatformPath0
 jcgo_jniNoNativeFunc();
 return jnull;
#else
 JCGO_JNI_BLOCK(1)
 return (java_lang_String)jcgo_jniLeave(jcgo_pJniEnv, (jobject)JCGO_JNI_FUNC(Java_java_io_VMFile_normPlatformPath0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  (jstring)JCGO_JNI_TOLOCALREF(1, path)));
#endif
}

JCGO_NOSEP_FRWINL java_lang_String CFASTCALL
java_io_VMFile__getDosUnixDrivePrefix0__( void )
{
#ifdef NOJAVA_java_io_VMFile_getDosUnixDrivePrefix0
 jcgo_jniNoNativeFunc();
 return jnull;
#else
 JCGO_JNI_BLOCK(0)
 return (java_lang_String)jcgo_jniLeave(jcgo_pJniEnv, (jobject)JCGO_JNI_FUNC(Java_java_io_VMFile_getDosUnixDrivePrefix0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class))));
#endif
}

JCGO_NOSEP_INLINE java_lang_String CFASTCALL
java_io_VMFile__getVolumeCurDir0__Ls( java_lang_String path )
{
#ifdef NOJAVA_java_io_VMFile_getVolumeCurDir0
 jcgo_jniNoNativeFunc();
 return jnull;
#else
 JCGO_JNI_BLOCK(1)
 return (java_lang_String)jcgo_jniLeave(jcgo_pJniEnv, (jobject)JCGO_JNI_FUNC(Java_java_io_VMFile_getVolumeCurDir0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  (jstring)JCGO_JNI_TOLOCALREF(1, path)));
#endif
}

JCGO_NOSEP_INLINE java_lang_String CFASTCALL
java_io_VMFile__getDriveCurDir__IZ( jint drive, jboolean useCache
 )
{
 {
  java_lang_String path;
  path= (java_lang_String)jnull;
  if (drive > 0 && JCGO_ARRAY_NZLENGTH(java_io_VMFile__driveDirCache) >
   drive && (!useCache || (path= ((java_lang_String)JCGO_ARRAY_NZLACCESS(java_io_VMFile__driveDirCache,
   drive))) == jnull))
  {
   path= (java_io_VMFile__getDriveCurDir0__I(
    drive));
   if (path != jnull && (java_lang_String__length__(
    path)) > 0)
   {
    path= (java_io_VMFile__normPlatformPath__Ls(
     path));
    if ((java_lang_String__charAt__I(
     path, 0)) == java_io_VMFile__FILE_SEP)
    {
     path= java_lang_VMSystem__concat0X__LsLs(
      (java_io_VMFile__drivePathPrefix__I(
      drive)), path);
    }
   }
   else
   {
    java_lang_String drivePrefix;
    java_lang_String filename;
    drivePrefix= java_lang_VMSystem__concat0X__LsLs(
     (java_io_VMFile__drivePathPrefix__I(
     drive)), JCGO_STRREF_OF(jcgo_string3_VMThrwbl));
    filename= (java_io_VMFile__realPath0__LsIA(
     drivePrefix, (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
     0, (jint)1)));
    if ((filename == drivePrefix || filename == jnull || (java_lang_String__length__(
     (path= (java_io_VMFile__normPlatformPath__Ls(
     filename))))) <= (jint)2 || (java_io_VMFile__driveIndexOf__C(
     (JCGO_CALL_FINALF(path) java_lang_String__charAt__I(
     path, 0)))) != drive || (JCGO_CALL_FINALF(path) java_lang_String__charAt__I(
     path, (jint)1)) != (jchar)58/*':'*/ || (JCGO_CALL_FINALF(path)
     java_lang_String__charAt__I(
     path, (jint)2)) != java_io_VMFile__FILE_SEP) && ((path= (java_io_VMFile__getVolumeCurDir0__Ls(
     drivePrefix))) == jnull || (java_lang_String__length__(
     (path= (java_io_VMFile__normPlatformPath__Ls(
     path))))) <= (jint)2 || (java_io_VMFile__driveIndexOf__C(
     (java_lang_String__charAt__I(
     path, 0)))) != drive || (java_lang_String__charAt__I(
     path, (jint)1)) != (jchar)58/*':'*/ || (java_lang_String__charAt__I(
     path, (jint)2)) != java_io_VMFile__FILE_SEP))
    {
     return (java_lang_String)jnull;
    }
   }
   if (((java_lang_String)JCGO_ARRAY_NZLACCESS(java_io_VMFile__driveDirCache,
    drive)) == jnull)
   {
    *(java_lang_String*)&JCGO_ARRAY_NZLACCESS(java_io_VMFile__driveDirCache,
     drive)= path;
   }
  }
  return path;
 }
}

JCGO_NOSEP_FRWINL jint CFASTCALL
java_io_VMFile__isCaseSensitive0__( void )
{
#ifdef NOJAVA_java_io_VMFile_isCaseSensitive0
 jcgo_jniNoNativeFunc();
 return (jint)0;
#else
 jint jcgo_retval;
 JCGO_JNI_BLOCK(0)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_isCaseSensitive0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)));
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_FRWINL jint CFASTCALL
java_io_VMFile__dirDataSizeAndIsFind0__( void )
{
#ifdef NOJAVA_java_io_VMFile_dirDataSizeAndIsFind0
 jcgo_jniNoNativeFunc();
 return (jint)0;
#else
 jint jcgo_retval;
 JCGO_JNI_BLOCK(0)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_dirDataSizeAndIsFind0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)));
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_FRWINL jint CFASTCALL
java_io_VMFile__dirOpNeedsSync0__( void )
{
#ifdef NOJAVA_java_io_VMFile_dirOpNeedsSync0
 jcgo_jniNoNativeFunc();
 return (jint)0;
#else
 jint jcgo_retval;
 JCGO_JNI_BLOCK(0)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_dirOpNeedsSync0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)));
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_INLINE jint CFASTCALL
java_io_VMFile__access0__LsIII( java_lang_String path, jint chkRead,
 jint chkWrite, jint chkExec )
{
#ifdef NOJAVA_java_io_VMFile_access0
 jcgo_jniNoNativeFunc();
 return (jint)0;
#else
 jint jcgo_retval;
 JCGO_JNI_BLOCK(1)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_access0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  (jstring)JCGO_JNI_TOLOCALREF(1, path), chkRead, chkWrite, chkExec);
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_INLINE jint CFASTCALL
java_io_VMFile__isRegFileOrDir0__Ls( java_lang_String path )
{
#ifdef NOJAVA_java_io_VMFile_isRegFileOrDir0
 jcgo_jniNoNativeFunc();
 return (jint)0;
#else
 jint jcgo_retval;
 JCGO_JNI_BLOCK(1)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_isRegFileOrDir0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  (jstring)JCGO_JNI_TOLOCALREF(1, path));
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_INLINE jint CFASTCALL
java_io_VMFile__pathListPlatformSep0__Ls( java_lang_String pathlist
 )
{
#ifdef NOJAVA_java_io_VMFile_pathListPlatformSep0
 jcgo_jniNoNativeFunc();
 return (jint)0;
#else
 jint jcgo_retval;
 JCGO_JNI_BLOCK(1)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_pathListPlatformSep0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  (jstring)JCGO_JNI_TOLOCALREF(1, pathlist));
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_INLINE jchar CFASTCALL
java_io_VMFile__pathListPlatformSep__Ls( java_lang_String pathlist
 )
{
 {
  jint val;
  jchar ch;
  val= (java_io_VMFile__pathListPlatformSep0__Ls(
   pathlist));
  return (jchar)(val > 0? (jchar)val : (jchar)(((JCGO_CALL_FINALF(pathlist)
   java_lang_String__length__(
   pathlist)) > (jint)2 && (java_lang_String__charAt__I(
   pathlist, (jint)1)) == (jchar)58/*':'*/ && (java_io_VMFile__driveIndexOf__C(
   (java_lang_String__charAt__I(
   pathlist, 0)))) > 0 && ((ch= (java_lang_String__charAt__I(
   pathlist, (jint)2))) == (jchar)47/*'/'*/ || ch == (jchar)92/*'\\'*/)) ||
   (java_lang_String__indexOf__II(
   pathlist, (jchar)59/*';'*/, 0)) >= 0 || ((java_lang_String__indexOf__II(
   pathlist, (jchar)92/*'\\'*/, 0)) > 0 && (val= (java_lang_String__indexOf__II(
   pathlist, (jchar)58/*':'*/, 0))) > (jint)1 && (java_lang_String__indexOf__II(
   pathlist, (jchar)58/*':'*/, val + (jint)1)) < 0)? (jchar)59/*';'*/ :
   (jchar)((ch= java_io_VMFile__PATH_SEP) == (jchar)59/*';'*/ || (ch !=
   (jchar)58/*':'*/ && (java_lang_String__indexOf__II(
   pathlist, (jchar)58/*':'*/, 0)) >= 0)? (jchar)58/*':'*/ : ch)));
 }
}

JCGO_NOSEP_INLINE jlong CFASTCALL
java_io_VMFile__currentTime0__I( jint isNano )
{
#ifdef NOJAVA_java_io_VMFile_currentTime0
 jcgo_jniNoNativeFunc();
 return (jlong)0;
#else
 jlong jcgo_retval;
 JCGO_JNI_BLOCK(0)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_currentTime0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  isNano);
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_INLINE jObjectArr CFASTCALL
java_io_VMFile__list__Ls( java_lang_String path )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  jbyteArr dirdata;
  jObjectArr names;
  jint dirDSize;
  dirDSize= java_io_VMFile__DIR_DATASIZE_ISFIND;
  if (dirDSize < 0)
  {
   dirDSize= (-dirDSize);
  }
  dirdata= (jbyteArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte),
   0, dirDSize);
  path= (java_io_VMFile__normVolumeColon__Ls(
   path));
  if (java_io_VMFile__DIR_OP_LOCK != jnull)
  {
   {
    JCGO_SYNC_BLOCKSAFENZ(java_io_VMFile__DIR_OP_LOCK)
    {
     names= (java_io_VMFile__listInner__LsBA(
      path, dirdata));
    }
    JCGO_SYNC_END
   }
  }
  else
  {
   names= (java_io_VMFile__listInner__LsBA(
    path, dirdata));
  }
  return names;
 }
}

JCGO_NOSEP_STATIC jboolean CFASTCALL
java_io_VMFile__isDirectory__Ls( java_lang_String path )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  return (jboolean)((JCGO_CALL_FINALF(path) java_lang_String__equals__Lo(
   path, (java_lang_Object)JCGO_STRREF_OF(jcgo_string3_VMThrwbl))) ||
   (java_io_VMFile__isRegFileOrDir0__Ls(
   (java_io_VMFile__normVolumeColon__Ls(
   path)))) == (jint)2);
 }
}

JCGO_NOSEP_FRWINL jlong CFASTCALL
java_io_VMFile__currentTime__Z( jboolean isNano )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  return (java_io_VMFile__currentTime0__I(
   isNano? (jint)1 : 0));
 }
}

JCGO_NOSEP_FRWINL java_lang_String CFASTCALL
java_io_VMFile__getFileSeparator__( void )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  return (java_lang_String__valueOf__C(
   java_io_VMFile__FILE_SEP));
 }
}

JCGO_NOSEP_FRWINL java_lang_String CFASTCALL
java_io_VMFile__getPathSeparator__( void )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  return (java_lang_String__valueOf__C(
   java_io_VMFile__PATH_SEP));
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__pathParentOf__Ls( java_lang_String path )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  jint prefixLen;
  jint pos;
  prefixLen= (java_io_VMFile__pathPrefixLength__Ls(
   path));
  if ((java_lang_String__length__(
   path)) == prefixLen)
  {
   return (java_lang_String)jnull;
  }
  pos= (java_lang_String__lastIndexOf__I(
   path, java_io_VMFile__FILE_SEP));
  if (pos <= prefixLen)
  {
   pos= prefixLen;
  }
  return pos > 0? (java_lang_String__substring__II(
   path, 0, pos)) : jnull;
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__makeAbsPath__Ls( java_lang_String path )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  java_lang_String curDir;
  jint prefixLen;
  prefixLen= (java_io_VMFile__pathPrefixLength__Ls(
   path));
  if (prefixLen > 0)
  {
   if (java_io_VMFile__IS_UNIX_FS)
   {
    return path;
   }
   if (prefixLen > (jint)2)
   {
    jObject jcgo_rcvrL1;
    struct java_lang_StringBuilder_s jcgo_stackobj1;
    struct java_lang_String_s jcgo_stackobj2;
    return (java_lang_String__charAt__I(
     path, prefixLen - (jint)1)) == (jchar)58/*':'*/? (jcgo_rcvrL1=
     (jObject)(jcgo_rcvrL1= (jObject)(java_lang_String__substring__II(
     path, 0, prefixLen)), java_lang_StringBuilder__append__Ls(
     java_lang_StringBuilder__append__Ls(
     java_lang_StringBuilder__this__(
     JCGO_STACKOBJ_NEW(jcgo_stackobj1, java_lang_StringBuilder_methods)),
     (java_lang_String)jcgo_rcvrL1), (java_lang_String__valueOf__CX(
     java_io_VMFile__FILE_SEP, JCGO_STACKOBJ_NEW(jcgo_stackobj2, java_lang_String_methods))))),
     java_lang_String__new__L5dy9e(
     java_lang_StringBuilder__append__Ls(
     (java_lang_StringBuilder)jcgo_rcvrL1, (java_lang_String__substring__I(
     path, prefixLen))))) : path;
   }
   if (prefixLen == (jint)1)
   {
    jObject jcgo_rcvrL1;
    return (curDir= (java_io_VMFile__getCurDir__())) != jnull && (prefixLen=
     (java_io_VMFile__pathPrefixLength__Ls(
     curDir))) > 0? (jcgo_rcvrL1= (jObject)(java_lang_String__substring__II(
     curDir, 0, prefixLen > (jint)3? prefixLen - (jint)1 : prefixLen)),
     java_io_VMFile__pathAppendName__LsLs(
     (java_lang_String)jcgo_rcvrL1, (java_lang_String__substring__I(
     path, (jint)1)))) : jnull;
   }
   curDir= (java_io_VMFile__getDriveCurDir__IZ(
    (java_io_VMFile__driveIndexOf__C(
    (java_lang_String__charAt__I(
    path, 0)))), (jboolean)jtrue));
   path= (java_lang_String__substring__I(
    path, (jint)2));
  }
  else
  {
   curDir= (java_io_VMFile__getCurDir__());
   if ((java_lang_String__equals__Lo(
    path, (java_lang_Object)JCGO_STRREF_OF(jcgo_string3_VMThrwbl))))
   {
    return curDir;
   }
  }
  return curDir != jnull? (java_io_VMFile__pathAppendName__LsLs(
   curDir, (java_lang_String__length__(
   path)) > (jint)1 && (java_lang_String__charAt__I(
   path, 0)) == (jchar)46/*'.'*/ && (java_lang_String__charAt__I(
   path, (jint)1)) == java_io_VMFile__FILE_SEP? (java_lang_String__substring__I(
   path, (jint)2)) : path)) : jnull;
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__collapsePathDots__Ls( java_lang_String path )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  jint ofs;
  jint skip;
  ofs= (java_io_VMFile__pathPrefixLength__Ls(
   path));
  skip= 0;
  {
   jint pos;
   pos= (java_lang_String__length__(
    path));
   for (; pos > ofs; pos--)
   {
    jint next;
    next= pos;
    pos= (JCGO_CALL_FINALF(path) java_lang_String__lastIndexOf__II(
     path, java_io_VMFile__FILE_SEP, next - (jint)1)) + (jint)1;
    if (pos <= ofs)
    {
     pos= ofs;
    }
    if (next - (jint)1 == pos && (java_lang_String__charAt__I(
     path, pos)) == (jchar)46/*'.'*/)
    {
     jObject jcgo_rcvrL1;
     if ((java_lang_String__length__(
      path)) == next)
     {
      if (pos <= ofs)
      {
       if (pos > 0)
       {
        path= (java_lang_String__substring__II(
         path, 0, pos));
       }
       break;
      }
      next--;
     }
     path= (jcgo_rcvrL1= (jObject)(java_lang_String__substring__II(
      path, 0, next - (jint)1)), java_lang_VMSystem__concat0X__LsLs(
      (java_lang_String)jcgo_rcvrL1, (java_lang_String__substring__I(
      path, next + (jint)1))));
    }
    else
    {
     if (next - (jint)1 > pos && (java_lang_String__charAt__I(
      path, pos)) == (jchar)46/*'.'*/ && (java_lang_String__charAt__I(
      path, pos + (jint)1)) == (jchar)46/*'.'*/)
     {
      jint i;
      i= pos + (jint)2;
      if (!java_io_VMFile__IS_UNIX_FS)
      {
       while (i < next && (java_lang_String__charAt__I(
        path, i)) == (jchar)46/*'.'*/)
       {
        i++;
       }
      }
      if (i == next)
      {
       skip+= next - pos;
      }
     }
     if (skip > 0)
     {
      jint i;
      jObject jcgo_rcvrL1;
      i= pos;
      skip--;
      if ((java_lang_String__length__(
       path)) == next)
      {
       next--;
       if (pos <= ofs)
       {
        if (pos <= 0)
        {
         path= JCGO_STRREF_OF(jcgo_string3_VMThrwbl);
         i= (jint)1;
        }
       }
       else
       {
        i--;
       }
      }
      path= (jcgo_rcvrL1= (jObject)(java_lang_String__substring__II(
       path, 0, i)), java_lang_VMSystem__concat0X__LsLs(
       (java_lang_String)jcgo_rcvrL1, (java_lang_String__substring__I(
       path, next + (jint)1))));
     }
    }
   }
  }
  return path;
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__canonPathCase__Ls( java_lang_String path )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  if (!java_io_VMFile__IS_CASE_SENSITIVE)
  {
   java_lang_String name;
   java_lang_String canonName;
   jbyteArr dirdata;
   java_lang_Object lockObj;
   jint prefixLen;
   jint pos;
   jint dirDSize;
   jchar sep;
   prefixLen= (java_io_VMFile__pathPrefixLength__Ls(
    path));
   name= (java_lang_String__substring__II(
    path, 0, prefixLen));
   canonName= (java_lang_VMAccessorJavaLang__toUpperCaseLatinVMSystem__Ls(
    name));
   if (canonName != name)
   {
    path= java_lang_VMSystem__concat0X__LsLs(
     canonName, (java_lang_String__substring__I(
     path, prefixLen)));
   }
   pos= prefixLen;
   sep= java_io_VMFile__FILE_SEP;
   dirDSize= java_io_VMFile__DIR_DATASIZE_ISFIND;
   dirdata= (jbyteArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jbyte),
    0, dirDSize >= 0? dirDSize : (-dirDSize));
   lockObj= java_io_VMFile__DIR_OP_LOCK;
   while ((JCGO_CALL_FINALF(path) java_lang_String__length__(
    path)) > pos)
   {
    jint next;
    jint i;
    next= (java_lang_String__indexOf__II(
     path, sep, pos));
    if (next < 0)
    {
     next= (java_lang_String__length__(
      path));
    }
    i= pos;
    while (i < next && (java_lang_String__charAt__I(
     path, i)) == (jchar)46/*'.'*/)
    {
     i++;
    }
    if (i < next)
    {
     java_lang_String curPath;
     curPath= (java_lang_String__substring__II(
      path, 0, next));
     name= (java_lang_String__substring__II(
      path, pos, next));
     if (dirDSize > 0)
     {
      if (pos > prefixLen)
      {
       jintArr resArr;
       java_lang_String filename;
       canonName= (java_lang_String__substring__II(
        path, 0, pos - (jint)1));
       resArr= (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint),
        0, (jint)1);
       filename= (java_io_VMFile__realPath0__LsIA(
        canonName, resArr));
       (gnu_java_nio_VMAccessorGnuJavaNio__checkIOResCodeVMChannel__I(
        JCGO_ARRAY_NZIACCESS(resArr, 0)));
       if (filename != canonName && filename != jnull)
       {
        curPath= (java_io_VMFile__pathAppendName__LsLs(
         (java_io_VMFile__normPlatformPath__Ls(
         filename)), name));
       }
      }
      if (lockObj != jnull)
      {
       {
        JCGO_SYNC_BLOCKSAFENZ(lockObj)
        {
         canonName= (java_io_VMFile__canonPathCaseMatch__LsBA(
          curPath, dirdata));
        }
        JCGO_SYNC_END
       }
      }
      else
      {
       canonName= (java_io_VMFile__canonPathCaseMatch__LsBA(
        curPath, dirdata));
      }
      if (canonName == jnull || (java_lang_String__indexOf__II(
       name, (jchar)42/*'*'*/, 0)) >= 0 || (java_lang_String__indexOf__II(
       name, (jchar)63/*'?'*/, 0)) >= 0)
      {
       break;
      }
     }
     else
     {
      jlongArr devInodeArr;
      jint res;
      devInodeArr= (jlongArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jlong),
       0, (jint)2);
      JCGO_ARRAY_NZJACCESS(devInodeArr, 0)= JLONG_C(-1);
      res= (java_io_VMFile__getLnkDevInode0__LsJA(
       curPath, devInodeArr));
      if (res < 0 && (java_io_VMFile__isIOErrorNoEntity0__I(
       res)) != 0)
      {
       break;
      }
      (gnu_java_nio_VMAccessorGnuJavaNio__checkIOResCodeVMChannel__I(
       res));
      if (JCGO_ARRAY_NZJACCESS(devInodeArr, 0) == JLONG_C(-1) || JCGO_ARRAY_NZJACCESS(devInodeArr,
       (jint)1) == JLONG_C(0))
      {
       break;
      }
      curPath= (java_lang_String__substring__II(
       path, 0, pos > prefixLen? pos - (jint)1 : pos));
      if (lockObj != jnull)
      {
       {
        JCGO_SYNC_BLOCKSAFENZ(lockObj)
        {
         canonName= (java_io_VMFile__canonPathCaseFind__LsBALs(
          curPath, dirdata, name));
        }
        JCGO_SYNC_END
       }
      }
      else
      {
       canonName= (java_io_VMFile__canonPathCaseFind__LsBALs(
        curPath, dirdata, name));
      }
      if (canonName == jnull)
      {
       break;
      }
      if ((JCGO_CALL_FINALF(canonName) java_lang_String__length__(
       canonName)) == 0)
      {
       if (lockObj != jnull)
       {
        {
         JCGO_SYNC_BLOCKSAFENZ(lockObj)
         {
          canonName= (java_io_VMFile__canonPathCaseScan__LsBAJA(
           curPath, dirdata, devInodeArr));
         }
         JCGO_SYNC_END
        }
       }
       else
       {
        canonName= (java_io_VMFile__canonPathCaseScan__LsBAJA(
         curPath, dirdata, devInodeArr));
       }
       if (canonName == jnull || (java_lang_String__length__(
        canonName)) == 0)
       {
        break;
       }
      }
     }
     if (!(JCGO_CALL_FINALF(canonName) java_lang_String__equals__Lo(
      canonName, (java_lang_Object)name)))
     {
      jObject jcgo_rcvrL1;
      struct java_lang_StringBuilder_s jcgo_stackobj1;
      path= (jcgo_rcvrL1= (jObject)java_lang_StringBuilder__append__Ls(
       java_lang_StringBuilder__append__Ls(
       java_lang_StringBuilder__this__(
       JCGO_STACKOBJ_NEW(jcgo_stackobj1, java_lang_StringBuilder_methods)),
       (java_lang_String__substring__II(
       path, 0, pos))), canonName), java_lang_String__new__L5dy9e(
       java_lang_StringBuilder__append__Ls(
       (java_lang_StringBuilder)jcgo_rcvrL1, (java_lang_String__substring__I(
       path, next)))));
      next= (java_lang_String__length__(
       canonName)) + pos;
     }
    }
    pos= next + (jint)1;
   }
  }
  return path;
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__normPlatformPath__Ls( java_lang_String path )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  java_lang_String normPath;
  jint len;
  jchar sep;
  len= (JCGO_CALL_FINALF(path) java_lang_String__length__(
   path));
  if (len == 0)
  {
   return JCGO_STRREF_OF(jcgo_string3_VMThrwbl);
  }
  normPath= (java_io_VMFile__normPlatformPath0__Ls(
   path));
  if (normPath != jnull && (java_lang_String__length__(
   normPath)) > 0)
  {
   jchar ch;
   if (!java_io_VMFile__IS_UNIX_FS && (ch= (java_lang_String__charAt__I(
    normPath, 0))) >= (jchar)97/*'a'*/ && ch <= (jchar)122/*'z'*/ &&
    (java_lang_String__length__(
    normPath)) > (jint)1 && (java_lang_String__charAt__I(
    normPath, (jint)1)) == (jchar)58/*':'*/)
   {
    jObject jcgo_rcvrL1;
    normPath= (jcgo_rcvrL1= (jObject)(java_lang_String__valueOf__C(
     (jchar)(ch - ((jint)(jchar)97/*'a'*/ - (jchar)65/*'A'*/)))), java_lang_VMSystem__concat0X__LsLs(
     (java_lang_String)jcgo_rcvrL1, (java_lang_String__substring__I(
     normPath, (jint)1))));
   }
   return normPath;
  }
  sep= java_io_VMFile__FILE_SEP;
  if (java_io_VMFile__IS_UNIX_FS)
  {
   path= (java_lang_String__replace__CC(
    path, (jchar)92/*'\\'*/, sep));
   if (len > (jint)1)
   {
    jint drive;
    if ((java_lang_String__charAt__I(
     path, (jint)1)) == (jchar)58/*':'*/ && (drive= (java_io_VMFile__driveIndexOf__C(
     (java_lang_String__charAt__I(
     path, 0))))) > 0)
    {
     jObject jcgo_rcvrL1;
     struct java_lang_StringBuilder_s jcgo_stackobj1;
     struct java_lang_String_s jcgo_stackobj2;
     struct java_lang_String_s jcgo_stackobj3;
     path= drive == java_io_VMFile__defaultDrive? (len > (jint)2? (java_lang_String__substring__I(
      path, (jint)2)) : JCGO_STRREF_OF(jcgo_string3_VMThrwbl)) : (jcgo_rcvrL1=
      (jObject)(jcgo_rcvrL1= (jObject)java_lang_StringBuilder__append__Ls(
      java_lang_StringBuilder__append__Ls(
      java_lang_StringBuilder__this__(
      JCGO_STACKOBJ_NEW(jcgo_stackobj1, java_lang_StringBuilder_methods)),
      java_io_VMFile__DOS_UNIX_DRIVE_PREFIX), (java_lang_String__valueOf__CX(
      (jchar)(drive + ((jchar)97/*'a'*/ - (jint)1)), JCGO_STACKOBJ_NEW(jcgo_stackobj2,
      java_lang_String_methods)))), java_lang_StringBuilder__append__Ls(
      (java_lang_StringBuilder)jcgo_rcvrL1, (len != (jint)2 && (java_lang_String__charAt__I(
      path, (jint)2)) != sep? (java_lang_String__valueOf__CX(
      sep, JCGO_STACKOBJ_NEW(jcgo_stackobj3, java_lang_String_methods))) :
      JCGO_STRREF_OF(jcgo_string3_String6D)))), java_lang_String__new__L5dy9e(
      java_lang_StringBuilder__append__Ls(
      (java_lang_StringBuilder)jcgo_rcvrL1, (java_lang_String__substring__I(
      path, (jint)2)))));
     len= (java_lang_String__length__(
      path));
    }
    if ((java_lang_String__charAt__I(
     path, len - (jint)1)) == sep && len > (jint)1)
    {
     path= (java_lang_String__substring__II(
      path, 0, len - (jint)1));
    }
   }
  }
  else
  {
   if (len > (jint)2 && (java_lang_String__charAt__I(
    path, 0)) == (jchar)47/*'/'*/)
   {
    if ((java_lang_String__charAt__I(
     path, (jint)2)) == (jchar)58/*':'*/ && (java_io_VMFile__driveIndexOf__C(
     (java_lang_String__charAt__I(
     path, (jint)1)))) > 0)
    {
     path= (java_lang_String__substring__I(
      path, (jint)1));
     if (len == (jint)3)
     {
      path= java_lang_VMSystem__concat0X__LsLs(
       (java_lang_String)path, (java_lang_String__valueOf__C(
       sep)));
     }
     len= (java_lang_String__length__(
      path));
    }
    else
    {
     java_lang_String prefix;
     jint pos;
     jchar ch;
     prefix= java_io_VMFile__DOS_UNIX_DRIVE_PREFIX;
     pos= (java_lang_String__length__(
      prefix)) + (jint)1;
     if (pos <= len && (java_lang_String__startsWith__Ls(
      path, prefix)) && (ch= (java_lang_String__charAt__I(
      path, pos - (jint)1))) >= (jchar)97/*'a'*/ && ch <= (jchar)122/*'z'*/ &&
      (len == pos || (java_lang_String__charAt__I(
      path, pos)) == (jchar)47/*'/'*/))
     {
      jObject jcgo_rcvrL1;
      struct java_lang_StringBuilder_s jcgo_stackobj4;
      struct java_lang_String_s jcgo_stackobj5;
      path= (jcgo_rcvrL1= (jObject)java_lang_StringBuilder__append__Ls(
       java_lang_StringBuilder__append__Ls(
       java_lang_StringBuilder__this__(
       JCGO_STACKOBJ_NEW(jcgo_stackobj4, java_lang_StringBuilder_methods)),
       (java_lang_String__substring__II(
       path, pos - (jint)1, pos))), JCGO_STRREF_OF(jcgo_string441_Mdclnt)),
       java_lang_String__new__L5dy9e(
       java_lang_StringBuilder__append__Ls(
       (java_lang_StringBuilder)jcgo_rcvrL1, (len != pos? (java_lang_String__substring__I(
       path, pos)) : (java_lang_String__valueOf__CX(
       sep, JCGO_STACKOBJ_NEW(jcgo_stackobj5, java_lang_String_methods)))))));
      len= (java_lang_String__length__(
       path));
     }
    }
   }
   path= (java_lang_String__replace__CC(
    path, (jchar)47/*'/'*/, sep));
   if (len > (jint)1)
   {
    jchar ch;
    if ((java_lang_String__charAt__I(
     path, (jint)1)) == (jchar)58/*':'*/ && (ch= (java_lang_String__charAt__I(
     path, 0))) >= (jchar)97/*'a'*/ && ch <= (jchar)122/*'z'*/)
    {
     jObject jcgo_rcvrL1;
     path= (jcgo_rcvrL1= (jObject)(java_lang_String__valueOf__C(
      (jchar)(ch - ((jint)(jchar)97/*'a'*/ - (jchar)65/*'A'*/)))),
      java_lang_VMSystem__concat0X__LsLs(
      (java_lang_String)jcgo_rcvrL1, (java_lang_String__substring__I(
      path, (jint)1))));
    }
    if ((java_lang_String__charAt__I(
     path, len - (jint)1)) == sep && (len > (jint)3 || ((java_lang_String__charAt__I(
     path, (jint)1)) != (jchar)58/*':'*/ && (java_lang_String__charAt__I(
     path, len - (jint)2)) != sep)))
    {
     path= (java_lang_String__substring__II(
      path, 0, len - (jint)1));
    }
   }
  }
  return path;
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__normPlatformListOfPaths__Ls( java_lang_String pathlist
 )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  java_lang_String properPathSep;
  jint pos;
  jchar sep;
  struct java_lang_String_s jcgo_stackobj1;
  sep= (java_io_VMFile__pathListPlatformSep__Ls(
   pathlist));
  pos= 0;
  properPathSep= sep != java_io_VMFile__PATH_SEP? (java_lang_String__valueOf__CX(
   java_io_VMFile__PATH_SEP, JCGO_STACKOBJ_NEW(jcgo_stackobj1, java_lang_String_methods))) :
   jnull;
  do
  {
   java_lang_String path;
   java_lang_String normPath;
   jint next;
   next= (JCGO_CALL_FINALF(pathlist) java_lang_String__indexOf__II(
    pathlist, sep, pos));
   if (next < 0)
   {
    next= (java_lang_String__length__(
     pathlist));
   }
   else
   {
    if (properPathSep != jnull)
    {
     jObject jcgo_rcvrL1;
     struct java_lang_StringBuilder_s jcgo_stackobj2;
     pathlist= (jcgo_rcvrL1= (jObject)java_lang_StringBuilder__append__Ls(
      java_lang_StringBuilder__append__Ls(
      java_lang_StringBuilder__this__(
      JCGO_STACKOBJ_NEW(jcgo_stackobj2, java_lang_StringBuilder_methods)),
      (java_lang_String__substring__II(
      pathlist, 0, next))), properPathSep), java_lang_String__new__L5dy9e(
      java_lang_StringBuilder__append__Ls(
      (java_lang_StringBuilder)jcgo_rcvrL1, (java_lang_String__substring__I(
      pathlist, next + (jint)1)))));
    }
   }
   path= (java_lang_String__substring__II(
    pathlist, pos, next));
   normPath= (java_io_VMFile__normPlatformPath__Ls(
    path));
   if (path != normPath)
   {
    jObject jcgo_rcvrL1;
    struct java_lang_StringBuilder_s jcgo_stackobj3;
    pathlist= (jcgo_rcvrL1= (jObject)java_lang_StringBuilder__append__Ls(
     java_lang_StringBuilder__append__Ls(
     java_lang_StringBuilder__this__(
     JCGO_STACKOBJ_NEW(jcgo_stackobj3, java_lang_StringBuilder_methods)),
     (java_lang_String__substring__II(
     pathlist, 0, pos))), normPath), java_lang_String__new__L5dy9e(
     java_lang_StringBuilder__append__Ls(
     (java_lang_StringBuilder)jcgo_rcvrL1, (java_lang_String__substring__I(
     pathlist, next)))));
    next= (java_lang_String__length__(
     normPath)) + pos;
   }
   pos= next + (jint)1;
  }
   while ((java_lang_String__length__(
   pathlist)) >= pos);
  return pathlist;
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__normVolumeColon__Ls( java_lang_String path )
{
 {
  jint len;
  len= (JCGO_CALL_FINALF(path) java_lang_String__length__(
   path));
  return len > (jint)1? ((java_lang_String__charAt__I(
   path, len - (jint)1)) == (jchar)58/*':'*/ && (java_io_VMFile__pathPrefixLength__Ls(
   path)) == len? java_lang_VMSystem__concat0X__LsLs(
   path, JCGO_STRREF_OF(jcgo_string3_VMThrwbl)) : path) : len > 0?
   path : JCGO_STRREF_OF(jcgo_string3_VMThrwbl);
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__getenvPlatform__Ls( java_lang_String name )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  java_lang_String value;
  value= (java_io_VMFile__getenv0__Ls(
   name));
  if (value != jnull && (java_lang_String__length__(
   value)) == 0)
  {
   value= (java_lang_String)jnull;
  }
  return value;
 }
}

JCGO_NOSEP_FRWINL java_lang_String CFASTCALL
java_io_VMFile__getLineSeparator__( void )
{
 JCGO_CLINIT_TRIG(java_io_VMFile__class);
 {
  java_lang_String newline;
  newline= (java_io_VMFile__getLineSeparator0__());
  return newline != jnull && (java_lang_String__length__(
   newline)) > 0? newline : JCGO_STRREF_OF(jcgo_string3_PrntStrm);
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__pathAppendName__LsLs( java_lang_String path, java_lang_String
 name )
{
 {
  jint len;
  struct java_lang_StringBuilder_s jcgo_stackobj1;
  struct java_lang_String_s jcgo_stackobj2;
  len= (JCGO_CALL_FINALF(path) java_lang_String__length__(
   path));
  return len > 0? ((JCGO_CALL_FINALF(name) java_lang_String__length__(
   name)) > 0? ((java_lang_String__charAt__I(
   path, len - (jint)1)) != java_io_VMFile__FILE_SEP? java_lang_String__new__L5dy9e(
   java_lang_StringBuilder__append__Ls(
   java_lang_StringBuilder__append__Ls(
   java_lang_StringBuilder__append__Ls(
   java_lang_StringBuilder__this__(
   JCGO_STACKOBJ_NEW(jcgo_stackobj1, java_lang_StringBuilder_methods)),
   path), (java_lang_String__valueOf__CX(
   java_io_VMFile__FILE_SEP, JCGO_STACKOBJ_NEW(jcgo_stackobj2, java_lang_String_methods)))),
   name)) : java_lang_VMSystem__concat0X__LsLs(
   path, name)) : path) : name;
 }
}

JCGO_NOSEP_STATIC jObjectArr CFASTCALL
java_io_VMFile__listInner__LsBA( java_lang_String path, jbyteArr dirdata
 )
{
 {
  java_lang_String filename;
  jObjectArr JCGO_TRY_VOLATILE names;
  JCGO_TRY_VOLATILE jint count;
  filename= path;
  if (java_io_VMFile__DIR_DATASIZE_ISFIND > 0)
  {
   filename= (java_io_VMFile__realPath0__LsIA(
    path, (jintArr)jcgo_newArray(JCGO_CORECLASS_FOR(OBJT_jint), 0,
    (jint)1)));
   filename= (java_io_VMFile__pathAppendName__LsLs(
    filename != path && filename != jnull? (java_io_VMFile__normPlatformPath__Ls(
    filename)) : path, JCGO_STRREF_OF(jcgo_string2_VMFile)));
  }
  filename= (java_io_VMFile__dirOpenReadFirst0__BALs(
   dirdata, filename));
  if (filename == jnull || (java_lang_String__length__(
   filename)) == 0)
  {
   return (jObjectArr)jnull;
  }
  ;
  {
   JCGO_TRY_BLOCK
   {
    names= (jObjectArr)jcgo_newArray(JCGO_CLASSREF_OF(java_lang_String__class),
     0, (jint)1);
    count= 0;
    do
    {
     if (!(JCGO_CALL_FINALF(filename) java_lang_String__equals__Lo(
      filename, (java_lang_Object)JCGO_STRREF_OF(jcgo_string3_VMThrwbl))) &&
      !(java_lang_String__equals__Lo(
      filename, (java_lang_Object)JCGO_STRREF_OF(jcgo_string301_VMSstmPr))))
     {
      if (JCGO_ARRAY_LENGTH(names) <= count)
      {
       jObjectArr newNames;
       newNames= (jObjectArr)jcgo_newArray(JCGO_CLASSREF_OF(java_lang_String__class),
        0, JCGO_SHR_F(count, (jint)1) + count + (jint)32);
       (java_lang_System__arraycopy__LoILoII(
        (java_lang_Object)names, (java_lang_Object)newNames, 0, 0,
        count));
       names= newNames;
      }
      *(java_lang_String*)&JCGO_ARRAY_NZLACCESS(names, count++)= filename;
     }
     filename= (java_io_VMFile__dirReadNext0__BA(
      dirdata));
    }
     while (filename != jnull && (java_lang_String__length__(
     filename)) > 0);
   }
   JCGO_TRY_LEAVE
   {
    (java_io_VMFile__dirClose0__BA(
     dirdata));
   }
   JCGO_TRY_FINALLYEND
  }
  if (JCGO_ARRAY_LENGTH(names) > count)
  {
   jObjectArr newNames;
   newNames= (jObjectArr)jcgo_newArray(JCGO_CLASSREF_OF(java_lang_String__class),
    0, count);
   (java_lang_System__arraycopy__LoILoII(
    (java_lang_Object)names, (java_lang_Object)newNames, 0, 0, count));
   names= newNames;
  }
  return names;
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__canonPathCaseMatch__LsBA( java_lang_String curPath,
 jbyteArr dirdata )
{
 {
  java_lang_String JCGO_TRY_VOLATILE canonName;
  canonName= (java_io_VMFile__dirOpenReadFirst0__BALs(
   dirdata, curPath));
  if (canonName != jnull && (java_lang_String__length__(
   canonName)) > 0)
  {
   {
    JCGO_TRY_BLOCK
    {
     java_lang_String filename;
     filename= (java_io_VMFile__dirReadNext0__BA(
      dirdata));
     if (filename != jnull && (java_lang_String__length__(
      filename)) > 0)
     {
      canonName= (java_lang_String)jnull;
      do
      {
       filename= (java_io_VMFile__dirReadNext0__BA(
        dirdata));
      }
       while (filename != jnull && (java_lang_String__length__(
       filename)) > 0);
     }
    }
    JCGO_TRY_LEAVE
    {
     (java_io_VMFile__dirClose0__BA(
      dirdata));
    }
    JCGO_TRY_FINALLYEND
   }
  }
  else
  {
   jint res;
   res= (java_io_VMFile__access0__LsIII(
    curPath, 0, 0, 0));
   if (res < 0 && (java_io_VMFile__isIOErrorNoEntity0__I(
    res)) == 0)
   {
    (gnu_java_nio_VMAccessorGnuJavaNio__checkIOResCodeVMChannel__I(
     res));
   }
   canonName= (java_lang_String)jnull;
  }
  return canonName;
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__canonPathCaseFind__LsBALs( java_lang_String curPath,
 jbyteArr dirdata, java_lang_String name )
{
 {
  java_lang_String JCGO_TRY_VOLATILE canonName;
  canonName= (java_io_VMFile__dirOpenReadFirst0__BALs(
   dirdata, curPath));
  if (canonName != jnull)
  {
   if ((java_lang_String__length__(
    canonName)) > 0)
   {
    {
     JCGO_TRY_BLOCK
     {
      do
      {
       if ((JCGO_CALL_FINALF(canonName) java_lang_String__equals__Lo(
        canonName, (java_lang_Object)name)))
       {
        break;
       }
       canonName= (java_io_VMFile__dirReadNext0__BA(
        dirdata));
      }
       while (canonName != jnull && (java_lang_String__length__(
       canonName)) > 0);
     }
     JCGO_TRY_LEAVE
     {
      (java_io_VMFile__dirClose0__BA(
       dirdata));
     }
     JCGO_TRY_FINALLYEND
    }
    if (canonName == jnull)
    {
     canonName= JCGO_STRREF_OF(jcgo_string3_String6D);
    }
   }
   else
   {
    canonName= (java_lang_String)jnull;
   }
  }
  return canonName;
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__canonPathCaseScan__LsBAJA( java_lang_String curPath,
 jbyteArr dirdata, jlongArr devInodeArr )
{
 {
  java_lang_String JCGO_TRY_VOLATILE canonName;
  canonName= (java_io_VMFile__dirOpenReadFirst0__BALs(
   dirdata, curPath));
  if (canonName != jnull && (java_lang_String__length__(
   canonName)) > 0)
  {
   {
    JCGO_TRY_BLOCK
    {
     jlong stDev;
     jlong stIno;
     jint compared;
     stDev= JCGO_ARRAY_JACCESS(devInodeArr, 0);
     stIno= JCGO_ARRAY_NZJACCESS(devInodeArr, (jint)1);
     compared= 0;
     do
     {
      if (!(JCGO_CALL_FINALF(canonName) java_lang_String__equals__Lo(
       canonName, (java_lang_Object)JCGO_STRREF_OF(jcgo_string3_VMThrwbl))) &&
       !(java_lang_String__equals__Lo(
       canonName, (java_lang_Object)JCGO_STRREF_OF(jcgo_string301_VMSstmPr))))
      {
       jint res;
       JCGO_ARRAY_NZJACCESS(devInodeArr, 0)= JLONG_C(-1);
       res= (java_io_VMFile__getLnkDevInode0__LsJA(
        (java_io_VMFile__pathAppendName__LsLs(
        curPath, canonName)), devInodeArr));
       if (res >= 0)
       {
        if (JCGO_ARRAY_NZJACCESS(devInodeArr, 0) == stDev && JCGO_ARRAY_NZJACCESS(devInodeArr,
         (jint)1) == stIno)
        {
         java_lang_String filename;
         if (compared > 0)
         {
          break;
         }
         filename= (java_io_VMFile__dirReadNext0__BA(
          dirdata));
         if (filename == jnull || (java_lang_String__length__(
          filename)) == 0)
         {
          break;
         }
         JCGO_ARRAY_NZJACCESS(devInodeArr, 0)= JLONG_C(-1);
         if ((java_io_VMFile__getLnkDevInode0__LsJA(
          (java_io_VMFile__pathAppendName__LsLs(
          curPath, filename)), devInodeArr)) >= 0 && JCGO_ARRAY_NZJACCESS(devInodeArr,
          0) == stDev && JCGO_ARRAY_NZJACCESS(devInodeArr, (jint)1) ==
          stIno)
         {
          canonName= (java_lang_String)jnull;
         }
         break;
        }
        compared++;
       }
       else
       {
        if ((java_io_VMFile__isIOErrorNoEntity0__I(
         res)) == 0)
        {
         (gnu_java_nio_VMAccessorGnuJavaNio__checkIOResCodeVMChannel__I(
          res));
        }
       }
      }
      canonName= (java_io_VMFile__dirReadNext0__BA(
       dirdata));
     }
      while (canonName != jnull && (java_lang_String__length__(
      canonName)) > 0);
    }
    JCGO_TRY_LEAVE
    {
     (java_io_VMFile__dirClose0__BA(
      dirdata));
    }
    JCGO_TRY_FINALLYEND
   }
  }
  return canonName;
 }
}

JCGO_NOSEP_STATIC jint CFASTCALL
java_io_VMFile__pathPrefixLength__Ls( java_lang_String path )
{
 {
  jint pos;
  jint len;
  pos= 0;
  len= (JCGO_CALL_FINALF(path) java_lang_String__length__(
   path));
  if (len > 0)
  {
   jchar sep;
   sep= java_io_VMFile__FILE_SEP;
   if (java_io_VMFile__IS_UNIX_FS)
   {
    if ((java_lang_String__charAt__I(
     path, 0)) == sep)
    {
     pos= (jint)1;
    }
   }
   else
   {
    if ((java_lang_String__charAt__I(
     path, 0)) == sep)
    {
     pos= (jint)1;
     if (len != (jint)1 && (java_lang_String__charAt__I(
      path, (jint)1)) == sep)
     {
      while (++pos < len)
      {
       if ((java_lang_String__charAt__I(
        path, pos)) == sep)
       {
        break;
       }
      }
      if (pos < len)
      {
       while (++pos < len)
       {
        if ((java_lang_String__charAt__I(
         path, pos)) == sep)
        {
         break;
        }
       }
       if (pos < len)
       {
        pos++;
       }
      }
     }
    }
    else
    {
     pos= (java_lang_String__indexOf__II(
      path, (jchar)58/*':'*/, 0)) + (jint)1;
     if (pos > (jint)1)
     {
      jint i;
      if ((java_lang_String__lastIndexOf__II(
       path, (jchar)46/*'.'*/, pos - (jint)2)) >= 0 || ((i= (java_lang_String__lastIndexOf__II(
       path, sep, pos - (jint)2))) > 0 && (java_lang_String__lastIndexOf__II(
       path, sep, i - (jint)1)) >= 0))
      {
       pos= 0;
      }
      else
      {
       if (pos < len)
       {
        if ((java_lang_String__charAt__I(
         path, pos)) == sep)
        {
         pos++;
        }
        else
        {
         if (pos > (jint)2 && (java_lang_String__indexOf__II(
          path, (jchar)58/*':'*/, pos)) < 0 && (java_lang_String__indexOf__II(
          path, sep, pos + (jint)1)) < 0)
         {
          pos= 0;
         }
        }
       }
      }
     }
    }
   }
  }
  return pos;
 }
}

JCGO_NOSEP_STATIC jint CFASTCALL
java_io_VMFile__driveIndexOf__C( jchar ch )
{
 {
  if (ch >= (jchar)65/*'A'*/ && ch <= (jchar)90/*'Z'*/)
  {
   return ch - ((jchar)65/*'A'*/ - (jint)1);
  }
  if (ch >= (jchar)97/*'a'*/ && ch <= (jchar)122/*'z'*/)
  {
   return ch - ((jchar)97/*'a'*/ - (jint)1);
  }
  return (-(jint)1);
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__drivePathPrefix__I( jint drive )
{
 {
  return drive > 0 && drive <= (jint)(jchar)90/*'Z'*/ - (jchar)65/*'A'*/ +
   (jint)1? java_lang_VMSystem__concat0X__LsLs(
   (java_lang_String__valueOf__C(
   (jchar)(drive + ((jchar)65/*'A'*/ - (jint)1)))), JCGO_STRREF_OF(jcgo_string441_Mdclnt)) :
   jnull;
 }
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__getCurDir__( void )
{
 {
  java_lang_String path;
  path= ((java_lang_String)JCGO_ARRAY_NZLACCESS(java_io_VMFile__driveDirCache,
   0));
  if (path == jnull)
  {
   jint drive;
   path= (java_io_VMFile__getDriveCurDir0__I(
    0));
   if (path == jnull || (java_lang_String__length__(
    path)) == 0)
   {
    return (java_lang_String)jnull;
   }
   if (java_io_VMFile__IS_UNIX_FS && (java_lang_String__length__(
    path)) > (jint)2 && (java_lang_String__charAt__I(
    path, (jint)1)) == (jchar)58/*':'*/ && (java_lang_String__charAt__I(
    path, (jint)2)) == java_io_VMFile__FILE_SEP)
   {
    java_io_VMFile__defaultDrive= (java_io_VMFile__driveIndexOf__C(
     (java_lang_String__charAt__I(
     path, 0))));
   }
   path= (java_io_VMFile__normPlatformPath__Ls(
    path));
   *(java_lang_String*)&JCGO_ARRAY_NZLACCESS(java_io_VMFile__driveDirCache,
    0)= path;
   if (JCGO_ARRAY_NZLENGTH(java_io_VMFile__driveDirCache) > (jint)1 &&
    (java_lang_String__length__(
    path)) > (jint)2 && (java_lang_String__charAt__I(
    path, (jint)1)) == (jchar)58/*':'*/ && (drive= (java_io_VMFile__driveIndexOf__C(
    (java_lang_String__charAt__I(
    path, 0))))) > 0 && (java_lang_String__charAt__I(
    path, (jint)2)) == java_io_VMFile__FILE_SEP)
   {
    *(java_lang_String*)&JCGO_ARRAY_NZLACCESS(java_io_VMFile__driveDirCache,
     drive)= path;
   }
  }
  return path;
 }
}

JCGO_NOSEP_STATIC jint CFASTCALL
java_io_VMFile__getFilePathSepChar0__I( jint isPath )
{
#ifdef NOJAVA_java_io_VMFile_getFilePathSepChar0
 jcgo_jniNoNativeFunc();
 return (jint)0;
#else
 jint jcgo_retval;
 JCGO_JNI_BLOCK(0)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_getFilePathSepChar0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  isPath);
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_STATIC jint CFASTCALL
java_io_VMFile__isIOErrorNoEntity0__I( jint res )
{
#ifdef NOJAVA_java_io_VMFile_isIOErrorNoEntity0
 jcgo_jniNoNativeFunc();
 return (jint)0;
#else
 jint jcgo_retval;
 JCGO_JNI_BLOCK(0)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_isIOErrorNoEntity0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  res);
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__realPath0__LsIA( java_lang_String path, jintArr resArr
 )
{
#ifdef NOJAVA_java_io_VMFile_realPath0
 jcgo_jniNoNativeFunc();
 return jnull;
#else
 JCGO_JNI_BLOCK(2)
 return (java_lang_String)jcgo_jniLeave(jcgo_pJniEnv, (jobject)JCGO_JNI_FUNC(Java_java_io_VMFile_realPath0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  (jstring)JCGO_JNI_TOLOCALREF(1, path), (jintArray)JCGO_JNI_TOLOCALREF(2,
  resArr)));
#endif
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__getDriveCurDir0__I( jint drive )
{
#ifdef NOJAVA_java_io_VMFile_getDriveCurDir0
 jcgo_jniNoNativeFunc();
 return jnull;
#else
 JCGO_JNI_BLOCK(0)
 return (java_lang_String)jcgo_jniLeave(jcgo_pJniEnv, (jobject)JCGO_JNI_FUNC(Java_java_io_VMFile_getDriveCurDir0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  drive));
#endif
}

JCGO_NOSEP_STATIC jint CFASTCALL
java_io_VMFile__getLnkDevInode0__LsJA( java_lang_String path, jlongArr
 devInodeArr )
{
#ifdef NOJAVA_java_io_VMFile_getLnkDevInode0
 jcgo_jniNoNativeFunc();
 return (jint)0;
#else
 jint jcgo_retval;
 JCGO_JNI_BLOCK(2)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_getLnkDevInode0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  (jstring)JCGO_JNI_TOLOCALREF(1, path), (jlongArray)JCGO_JNI_TOLOCALREF(2,
  devInodeArr));
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__dirOpenReadFirst0__BALs( jbyteArr dirdata, java_lang_String
 path )
{
#ifdef NOJAVA_java_io_VMFile_dirOpenReadFirst0
 jcgo_jniNoNativeFunc();
 return jnull;
#else
 JCGO_JNI_BLOCK(2)
 return (java_lang_String)jcgo_jniLeave(jcgo_pJniEnv, (jobject)JCGO_JNI_FUNC(Java_java_io_VMFile_dirOpenReadFirst0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  (jbyteArray)JCGO_JNI_TOLOCALREF(1, dirdata), (jstring)JCGO_JNI_TOLOCALREF(2,
  path)));
#endif
}

JCGO_NOSEP_STATIC java_lang_String CFASTCALL
java_io_VMFile__dirReadNext0__BA( jbyteArr dirdata )
{
#ifdef NOJAVA_java_io_VMFile_dirReadNext0
 jcgo_jniNoNativeFunc();
 return jnull;
#else
 JCGO_JNI_BLOCK(1)
 return (java_lang_String)jcgo_jniLeave(jcgo_pJniEnv, (jobject)JCGO_JNI_FUNC(Java_java_io_VMFile_dirReadNext0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  (jbyteArray)JCGO_JNI_TOLOCALREF(1, dirdata)));
#endif
}

JCGO_NOSEP_STATIC jint CFASTCALL
java_io_VMFile__dirClose0__BA( jbyteArr dirdata )
{
#ifdef NOJAVA_java_io_VMFile_dirClose0
 jcgo_jniNoNativeFunc();
 return (jint)0;
#else
 jint jcgo_retval;
 JCGO_JNI_BLOCK(1)
 jcgo_retval= JCGO_JNI_FUNC(Java_java_io_VMFile_dirClose0)(jcgo_pJniEnv,
  (jclass)JCGO_JNI_TOLOCALREF(0, JCGO_CLASSREF_OF(java_io_VMFile__class)),
  (jbyteArray)JCGO_JNI_TOLOCALREF(1, dirdata));
 jcgo_jniLeave(jcgo_pJniEnv, NULL);
 return jcgo_retval;
#endif
}

JCGO_NOSEP_STATIC void CFASTCALL
java_io_VMFile__class__0( void )
{
 jObject jcgo_rcvrL1;
 JCGO_CLINIT_BEGIN(java_io_VMFile__class);
 java_io_VMFile__IS_CASE_SENSITIVE= (java_io_VMFile__isCaseSensitive0__()) !=
  0;
 java_io_VMFile__IS_UNIX_FS= (java_io_VMFile__isUniRootFileSys0__()) !=
  0;
 java_io_VMFile__FILE_SEP= (jchar)(java_io_VMFile__getFilePathSepChar0__I(
  0));
 java_io_VMFile__PATH_SEP= (jchar)(java_io_VMFile__getFilePathSepChar0__I(
  (jint)1));
 java_io_VMFile__DIR_DATASIZE_ISFIND= (java_io_VMFile__dirDataSizeAndIsFind0__());
 java_io_VMFile__DIR_OP_LOCK= (java_io_VMFile__dirOpNeedsSync0__()) !=
  0? java_lang_Object__new__() : jnull;
 java_io_VMFile__driveDirCache= (jObjectArr)jcgo_newArray(JCGO_CLASSREF_OF(java_lang_String__class),
  0, java_io_VMFile__IS_UNIX_FS? (jint)1 : (jint)(jchar)90/*'Z'*/ -
  (jchar)65/*'A'*/ + (jint)2);
 java_io_VMFile__DOS_UNIX_DRIVE_PREFIX= (jcgo_rcvrL1= (jObject)(java_io_VMFile__getDosUnixDrivePrefix0__()),
  JCGO_CALL_FINALF((java_lang_String)jcgo_rcvrL1) java_lang_String__replace__CC(
  (java_lang_String)jcgo_rcvrL1, (jchar)47/*'/'*/, java_io_VMFile__FILE_SEP));
 JCGO_CLINIT_DONE(java_io_VMFile__class);
}

JCGO_NOSEP_DATA CONST struct jcgo_methods_s java_io_VMFile_methods=
{
 JCGO_CLASSREF_OF(java_io_VMFile__class),
 JCGO_GCJDESCR_ZEROINIT
 OBJT_java_io_VMFile,
 0,
 NULL,
 JCGO_CLINIT_INIT(java_io_VMFile__class__0)
 0
};

JCGO_NOSEP_DATA struct java_io_VMFile_class_s java_io_VMFile__class
 ATTRIBNONGC=
{
 {
  &java_lang_Class_methods,
  JCGO_MON_INIT
  JCGO_OBJREF_OF(*(java_lang_Object)&java_io_VMFile_methods),
  JCGO_STRREF_OF(jcgo_string1_VMFile),
  JCGO_CLASSREF_OF(java_lang_Object__class),
  ((jObjectArr)JCGO_OBJREF_OF(jcgo_array3_Object)),
  0x1d0
 }
};

JCGO_NOSEP_GCDATA java_lang_Object java_io_VMFile__DIR_OP_LOCK ATTRIBGCBSS=
 jnull;

JCGO_NOSEP_GCDATA jObjectArr java_io_VMFile__driveDirCache ATTRIBGCBSS=
 jnull;

JCGO_NOSEP_GCDATA java_lang_String java_io_VMFile__DOS_UNIX_DRIVE_PREFIX
 ATTRIBGCBSS= jnull;

JCGO_NOSEP_DATA jint java_io_VMFile__DIR_DATASIZE_ISFIND= (jint)0;

JCGO_NOSEP_DATA jint java_io_VMFile__defaultDrive= (jint)0;

JCGO_NOSEP_DATA jchar java_io_VMFile__FILE_SEP= (jchar)0;

JCGO_NOSEP_DATA jchar java_io_VMFile__PATH_SEP= (jchar)0;

JCGO_NOSEP_DATA jboolean java_io_VMFile__IS_CASE_SENSITIVE= (jboolean)0;

JCGO_NOSEP_DATA jboolean java_io_VMFile__IS_UNIX_FS= (jboolean)0;

JCGO_NOSEP_DATA CONST jcgo_arrtype63_GmCnnctn jcgo_array3_VMFile=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 14,
 {
  (jbyte)(jchar)106/*'j'*/, (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)118/*'v'*/,
   (jbyte)(jchar)97/*'a'*/, (jbyte)(jchar)46/*'.'*/, (jbyte)(jchar)105/*'i'*/,
   (jbyte)(jchar)111/*'o'*/, (jbyte)(jchar)46/*'.'*/, (jbyte)(jchar)86/*'V'*/,
   (jbyte)(jchar)77/*'M'*/, (jbyte)(jchar)70/*'F'*/, (jbyte)(jchar)105/*'i'*/,
   (jbyte)(jchar)108/*'l'*/, (jbyte)(jchar)101/*'e'*/
 }
};

JCGO_NOSEP_DATA CONST jcgo_arrtype640_Mdclnt jcgo_array4_VMFile=
{
 (jvtable)&jbyteArr_methods,
 JCGO_MON_INIT
 3,
 {
  (jbyte)(jchar)42/*'*'*/, (jbyte)(jchar)46/*'.'*/, (jbyte)(jchar)42/*'*'*/
 }
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string1_VMFile
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array3_VMFile),
 0, 14, (jint)0xb4691dcfL
};

JCGO_NOSEP_DATA JCGO_NOTHR_CONST struct java_lang_String_s jcgo_string2_VMFile
 JCGO_THRD_ATTRNONGC=
{
 &java_lang_String_methods,
 JCGO_MON_INIT
 (java_lang_Object)JCGO_OBJREF_OF(jcgo_array4_VMFile),
 0, 3, (jint)0xa366L
};

#ifdef CHKALL_java_io_VMFile
#include "jcgochke.h"
#endif

#endif
