aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2008-04-22 22:53:53 +0000
committerDan Fandrich <dan@coneharvesters.com>2008-04-22 22:53:53 +0000
commit1960eebc2d021ecf5ffc3f6d4e935d54aa592c72 (patch)
tree258a993cae8cec4f2eff333347adb8b87e809b84 /src
parentad1dd086937138f56e5942ae0840867372c77d03 (diff)
Added support for running on Symbian OS.
Diffstat (limited to 'src')
-rw-r--r--src/getpass.c15
-rw-r--r--src/main.c17
-rw-r--r--src/setup.h6
3 files changed, 33 insertions, 5 deletions
diff --git a/src/getpass.c b/src/getpass.c
index b5f2bc4ec..7209a2ab1 100644
--- a/src/getpass.c
+++ b/src/getpass.c
@@ -95,9 +95,18 @@ char *getpass_r(const char *prompt, char *buffer, size_t buflen)
#define DONE
#endif /* VMS */
+
#ifdef WIN32
/* Windows implementation */
#include <conio.h>
+#endif
+
+#ifdef __SYMBIAN32__
+#define getch() getchar()
+#endif
+
+#if defined(WIN32) || defined(__SYMBIAN32__)
+
char *getpass_r(const char *prompt, char *buffer, size_t buflen)
{
size_t i;
@@ -105,7 +114,7 @@ char *getpass_r(const char *prompt, char *buffer, size_t buflen)
for(i=0; i<buflen; i++) {
buffer[i] = getch();
- if ( buffer[i] == '\r' ) {
+ if ( buffer[i] == '\r' || buffer[i] == '\n' ) {
buffer[i] = 0;
break;
}
@@ -115,8 +124,10 @@ char *getpass_r(const char *prompt, char *buffer, size_t buflen)
previous one as well */
i = i - (i>=1?2:1);
}
+#ifndef __SYMBIAN32__
/* since echo is disabled, print a newline */
fputs("\n", stderr);
+#endif
/* if user didn't hit ENTER, terminate buffer */
if (i==buflen)
buffer[buflen-1]=0;
@@ -124,7 +135,7 @@ char *getpass_r(const char *prompt, char *buffer, size_t buflen)
return buffer; /* we always return success */
}
#define DONE
-#endif /* WIN32 */
+#endif /* WIN32 || __SYMBIAN32__ */
#ifdef NETWARE
/* NetWare implementation */
diff --git a/src/main.c b/src/main.c
index e3b3a6fe3..e9e1cb543 100644
--- a/src/main.c
+++ b/src/main.c
@@ -124,6 +124,15 @@
#include "memdebug.h"
#endif
+#if defined(NETWARE)
+#define PRINT_LINES_PAUSE 23
+#endif
+
+#if defined(__SYMBIAN32__)
+#define PRINT_LINES_PAUSE 16
+#define pressanykey() getchar()
+#endif
+
#define DEFAULT_MAXREDIRS 50L
#if defined(O_BINARY) && defined(HAVE_SETMODE)
@@ -787,8 +796,8 @@ static void help(void)
};
for(i=0; helptext[i]; i++) {
puts(helptext[i]);
-#ifdef NETWARE
- if (i && ((i % 23) == 0))
+#ifdef PRINT_LINES_PAUSE
+ if (i && ((i % PRINT_LINES_PAUSE) == 0))
pressanykey();
#endif
}
@@ -4988,6 +4997,10 @@ int main(int argc, char *argv[])
checkfds();
res = operate(&config, argc, argv);
+#ifdef __SYMBIAN32__
+ if (config.showerror)
+ pressanykey();
+#endif
free_config_fields(&config);
#ifdef __NOVELL_LIBC__
diff --git a/src/setup.h b/src/setup.h
index 41ba43084..b6a30b957 100644
--- a/src/setup.h
+++ b/src/setup.h
@@ -29,7 +29,7 @@
* Define WIN32 when build target is Win32 API
*/
-#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
+#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32) && !defined(__SYMBIAN32__)
#define WIN32
#endif
@@ -58,6 +58,10 @@
#include "config-amigaos.h"
#endif
+#ifdef __SYMBIAN32__
+#include "config-symbian.h"
+#endif
+
#ifdef TPF
#include "config-tpf.h"
/* change which select is used for the curl command line tool */