String getWorkingDirectory()

in src/com/pty4j/windows/winpty/WinPty.java [314:333]


  String getWorkingDirectory() throws IOException {
    if (myClosed) {
      return null;
    }
    int bufferLength = 1024;
    Pointer buffer = new Memory(Native.WCHAR_SIZE * bufferLength);
    PointerByReference errPtr = new PointerByReference();
    try {
      int result = INSTANCE.winpty_get_current_directory(myWinpty, bufferLength, buffer, errPtr);
      if (result > 0) {
        return buffer.getWideString(0);
      }
      WString message = INSTANCE.winpty_error_msg(errPtr.getValue());
      int code = INSTANCE.winpty_error_code(errPtr.getValue());
      throw new IOException("winpty_get_current_directory failed, code: " + code + ", message: " + message);
    }
    finally {
      INSTANCE.winpty_error_free(errPtr.getValue());
    }
  }