You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.6 KiB

diff -u -r ../isync-1.3.0.orig/src/compat/config.c ./src/compat/config.c
--- ../isync-1.3.0.orig/src/compat/config.c 2017-10-01 17:42:35.000000000 +0900
+++ ./src/compat/config.c 2018-02-06 08:41:15.750006264 +0900
@@ -451,7 +451,7 @@
goto gotstor;
box->local_store_path = my_strndup( path, pl );
/* derive a suitable name */
- if (!strcmp( box->local_store_path, "/var/mail/" ) || !strcmp( box->local_store_path, "/var/spool/mail/" )) {
+ if (!strcmp( box->local_store_path, "@TERMUX_PREFIX@/var/mail/" ) || !strcmp( box->local_store_path, "@TERMUX_PREFIX@/var/spool/mail/" )) {
local_store = nfstrdup( "spool" );
} else if (!strcmp( box->local_store_path, "~/" )) {
local_store = nfstrdup( "home" );
diff -u -r ../isync-1.3.0.orig/src/compat/main.c ./src/compat/main.c
--- ../isync-1.3.0.orig/src/compat/main.c 2017-10-01 17:42:35.000000000 +0900
+++ ./src/compat/main.c 2018-02-06 08:41:15.750006264 +0900
@@ -384,7 +384,7 @@
return 1;
}
} else {
- strcpy( path2, "/tmp/mbsyncrcXXXXXX" );
+ strcpy( path2, "@TERMUX_PREFIX@/tmp/mbsyncrcXXXXXX" );
if ((fd = mkstemp( path2 )) < 0) {
sys_error( "Error: cannot create temporary config file" );
return 1;
diff -u -r ../isync-1.3.0.orig/src/drv_imap.c ./src/drv_imap.c
--- ../isync-1.3.0.orig/src/drv_imap.c 2017-10-01 17:42:35.000000000 +0900
+++ ./src/drv_imap.c 2018-02-06 08:41:15.750006264 +0900
@@ -36,6 +36,9 @@
#include <time.h>
#include <sys/wait.h>
+#include <termios.h>
+#include <readline/readline.h>
+
#ifdef HAVE_LIBSASL
# include <sasl/sasl.h>
# include <sasl/saslutil.h>
@@ -251,6 +254,33 @@
"Deleted",
};
+#ifdef __ANDROID__
+static char* getpass(const char *prompt) {
+ struct termios term_old, term_new;
+ int nread;
+
+ /* Turn echoing off and fail if we can't. */
+ if (tcgetattr (0, &term_old) != 0) {
+ return NULL;
+ }
+
+ term_new = term_old;
+ term_new.c_lflag &= ~ECHO;
+
+ if (tcsetattr (0, TCSAFLUSH, &term_new) != 0) {
+ return NULL;
+ }
+
+ /* Read the password. */
+ char *password = readline(prompt);
+
+ /* Restore terminal. */
+ (void) tcsetattr (0, TCSAFLUSH, &term_old);
+
+ return password;
+}
+#endif
+
static imap_cmd_t *
new_imap_cmd( int size )
{
diff -u -r ../isync-1.3.0.orig/src/socket.c ./src/socket.c
--- ../isync-1.3.0.orig/src/socket.c 2017-10-01 17:42:35.000000000 +0900
+++ ./src/socket.c 2018-02-06 08:41:15.750006264 +0900
@@ -398,7 +398,7 @@
_exit( 127 );
close( a[0] );
close( a[1] );
- execl( "/bin/sh", "sh", "-c", conf->tunnel, (char *)0 );
+ execl( "@TERMUX_PREFIX@/bin/sh", "sh", "-c", conf->tunnel, (char *)0 );
_exit( 127 );
}