git-svn-id: svn://db.shs.com.ru/pip@606 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -430,7 +430,11 @@ if(LIB)
|
||||
if(APPLE)
|
||||
set(CMAKE_INSTALL_PREFIX /usr/local)
|
||||
else()
|
||||
set(CMAKE_INSTALL_PREFIX /usr)
|
||||
if (DEFINED ANDROID_PLATFORM)
|
||||
set(CMAKE_INSTALL_PREFIX ${ANDROID_SYSTEM_LIBRARY_PATH}/usr)
|
||||
else()
|
||||
set(CMAKE_INSTALL_PREFIX /usr)
|
||||
endif()
|
||||
endif()
|
||||
install(FILES ${HDRS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/pip)
|
||||
install(TARGETS ${PIP_LIBS_TARGETS} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
*/
|
||||
#include "piincludes_p.h"
|
||||
#include "piterminal.h"
|
||||
# include "pisharedmemory.h"
|
||||
#include "pisharedmemory.h"
|
||||
#ifdef WINDOWS
|
||||
# include <windows.h>
|
||||
# include <wincon.h>
|
||||
@@ -37,6 +37,13 @@
|
||||
# include <pty.h>
|
||||
# endif
|
||||
# endif
|
||||
# ifdef ANDROID
|
||||
# if __ANDROID_API__ >= 23
|
||||
# define HAS_FORKPTY
|
||||
# endif
|
||||
# else
|
||||
# define HAS_FORKPTY
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -133,11 +140,13 @@ void PITerminal::write(const PIByteArray & d) {
|
||||
msg << int(mtKey) << ke;
|
||||
writePipe(PRIVATE->pipe, msg);
|
||||
#else
|
||||
# ifdef HAS_FORKPTY
|
||||
if (PRIVATE->fd == 0) return;
|
||||
//ssize_t wrote = 0;
|
||||
//wrote =
|
||||
::write(PRIVATE->fd, d.data(), d.size_s());
|
||||
//piCout << "wrote" << wrote << d;
|
||||
# endif
|
||||
#endif
|
||||
cursor_tm.reset();
|
||||
cursor_blink = true;
|
||||
@@ -360,6 +369,7 @@ void PITerminal::run() {
|
||||
cursor_blink = !cursor_blink;
|
||||
}
|
||||
#ifndef WINDOWS
|
||||
# ifdef HAS_FORKPTY
|
||||
if (PRIVATE->fd == 0) return;
|
||||
PRIVATE->tmp_buf.resize(BUFFER_SIZE);
|
||||
int readed = ::read(PRIVATE->fd, PRIVATE->tmp_buf.data(), BUFFER_SIZE - PRIVATE->read_buf.size_s());
|
||||
@@ -396,6 +406,7 @@ void PITerminal::run() {
|
||||
PRIVATE->read_buf.clear();
|
||||
}
|
||||
PRIVATE->last_read = false;
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -779,6 +790,7 @@ bool PITerminal::initialize() {
|
||||
CloseHandle(PRIVATE->pi.hThread);
|
||||
resize(dsize_x, dsize_y);
|
||||
#else
|
||||
# ifdef HAS_FORKPTY
|
||||
char pty[256]; memset(pty, 0, 256);
|
||||
winsize ws;
|
||||
ws.ws_col = dsize_x;
|
||||
@@ -833,6 +845,7 @@ bool PITerminal::initialize() {
|
||||
size_y = dsize_y;
|
||||
resize(size_x, size_y);
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
cursor_blink = false;
|
||||
cursor_tm.reset();
|
||||
@@ -856,10 +869,12 @@ void PITerminal::destroy() {
|
||||
if (PRIVATE->hConBuf != INVALID_HANDLE_VALUE) CloseHandle(PRIVATE->hConBuf);
|
||||
//piCout << "destroy" << size_y;
|
||||
#else
|
||||
# ifdef HAS_FORKPTY
|
||||
if (PRIVATE->pid != 0)
|
||||
kill(PRIVATE->pid, SIGKILL);
|
||||
if (PRIVATE->fd != 0)
|
||||
::close(PRIVATE->fd);
|
||||
# endif
|
||||
#endif
|
||||
initPrivate();
|
||||
}
|
||||
@@ -875,6 +890,7 @@ bool PITerminal::resize(int cols, int rows) {
|
||||
msg << int(mtResize) << dsize_x << dsize_y;
|
||||
writePipe(PRIVATE->pipe, msg);
|
||||
#else
|
||||
# ifdef HAS_FORKPTY
|
||||
if (PRIVATE->fd == 0) return false;
|
||||
size_x = dsize_x;
|
||||
size_y = dsize_y;
|
||||
@@ -888,6 +904,7 @@ bool PITerminal::resize(int cols, int rows) {
|
||||
PRIVATE->cells_save.resize(size_y);
|
||||
for (int i = 0; i < size_y; ++i)
|
||||
PRIVATE->cells_save[i].resize(size_x);
|
||||
# endif
|
||||
#endif
|
||||
cells.resize(size_y);
|
||||
for (int i = 0; i < size_y; ++i)
|
||||
|
||||
@@ -31,9 +31,13 @@ char * __sysoemname__ = 0;
|
||||
#ifdef BLACKBERRY
|
||||
# include <ctype.h>
|
||||
#endif
|
||||
//#ifdef ANDROID
|
||||
# include <wchar.h>
|
||||
//#endif
|
||||
#include <wchar.h>
|
||||
#ifdef ANDROID
|
||||
# if __ANDROID_API__ < 21
|
||||
# define wctomb(s, wc) wcrtomb(s, wc, NULL)
|
||||
# define mbtowc(pwc, s, n) mbrtowc(pwc, s, n, NULL)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*! \class PIChar
|
||||
* \brief Unicode char
|
||||
|
||||
@@ -21,9 +21,13 @@
|
||||
#ifdef PIP_ICU
|
||||
# include "unicode/ucnv.h"
|
||||
#endif
|
||||
//#ifdef ANDROID
|
||||
# include <wchar.h>
|
||||
//#endif
|
||||
#include <wchar.h>
|
||||
#ifdef ANDROID
|
||||
# if __ANDROID_API__ < 21
|
||||
# define wctomb(s, wc) wcrtomb(s, wc, NULL)
|
||||
# define mbtowc(pwc, s, n) mbrtowc(pwc, s, n, NULL)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/*! \class PIString
|
||||
* \brief String class
|
||||
|
||||
Reference in New Issue
Block a user