---
 apps/obex_test/obex_test.c        |   12 ++++---
 apps/obex_test/obex_test_client.c |   61 ++++++++++++++++++++++--------------
 2 files changed, 44 insertions(+), 29 deletions(-)

diff --git a/apps/obex_test/obex_test.c b/apps/obex_test/obex_test.c
index 4200f9b..350d808 100644
--- a/apps/obex_test/obex_test.c
+++ b/apps/obex_test/obex_test.c
@@ -153,8 +153,8 @@ static int inet_connect(obex_t *handle)
 //
 int main (int argc, char *argv[])
 {
-       char cmd[10];
-       int num, end = 0;
+       char cmd[3];
+       int end = 0;
        int cobex = FALSE, tcpobex = FALSE, btobex = FALSE, r320 = FALSE, 
usbobex = FALSE;
        obex_t *handle;
 #ifdef HAVE_BLUETOOTH
@@ -350,10 +350,12 @@ int main (int argc, char *argv[])
 
        while (!end) {
                printf("> ");
-               num = scanf("%s", cmd);
-               if (num == EOF)
+               fflush(stdout);
+               (void)fgets(cmd, sizeof(cmd), stdin);
+               if (cmd[0] == 0) /* EOF */
                        break;
-               switch (cmd[0] | 0x20)  {
+               cmd[strlen(cmd)-1] = 0; /* remove trailing newline */
+               switch(cmd[0]) {
                        case 'h':
                                printf("Commands:\n"
                                       " c - connect\n"
diff --git a/apps/obex_test/obex_test_client.c 
b/apps/obex_test/obex_test_client.c
index 8f0efc7..d9714b4 100644
--- a/apps/obex_test/obex_test_client.c
+++ b/apps/obex_test/obex_test_client.c
@@ -227,17 +227,19 @@ void push_client(obex_t *handle)
        unsigned int uname_size;
        char *bfname;
        uint8_t *uname;
-       int num;
 
        obex_headerdata_t hd;
        
        uint8_t *buf;
        int file_size;
 
-       printf("PUSH filename> ");
-       memset(fname, 0, sizeof(fname));
-       num = scanf("%199c", fname);
-       if (num != 1) {
+       fprintf(stdout, "PUSH file> ");
+       fflush(stdout);
+       (void)fgets(fname, sizeof(fname), stdin);
+       if (fname[0] == 0) /* EOF */
+               return;
+       fname[strlen(fname)-1] = 0; /* remove trailing newline */
+       if (strlen(fname) == 0) {
                perror("scanf");
                return;
        }
@@ -294,15 +296,17 @@ void put_client(obex_t *handle)
        char rname[200];
        unsigned int rname_size;
        obex_headerdata_t hd;
-       int num;
        
        uint8_t *buf;
        int file_size;
 
-       printf("PUT file (local)> ");
-       memset(lname, 0, sizeof(lname));
-       num = scanf("%199c", lname);
-       if (num != 1) {
+       fprintf(stdout, "PUT file (local)> ");
+       fflush(stdout);
+       (void)fgets(lname, sizeof(lname), stdin);
+       if (lname[0] == 0) /* EOF */
+               return;
+       lname[strlen(lname)-1] = 0; /* remove trailing newline */
+       if (strlen(lname) == 0) {
                perror("scanf:");
                return;
        }
@@ -314,10 +318,13 @@ void put_client(obex_t *handle)
                return;
        }
 
-       printf("PUT remote filename (default: %s)> ", lname);
-       memset(rname, 0, sizeof(rname));
-       num = scanf("%199c", rname);
-       if (num == 0)
+       fprintf(stdout, "PUT remote filename (default: %s)> ", lname);
+       fflush(stdout);
+       (void)fgets(rname, sizeof(rname), stdin);
+       if (rname[0] == 0) /* EOF */
+               return;
+       rname[strlen(rname)-1] = 0; /* remove trailing newline */
+       if (strlen(rname) == 0)
                strcpy(rname, lname);
        printf("Going to send %d bytes\n", file_size);
 
@@ -362,13 +369,16 @@ void get_client(obex_t *handle, struct context *gt)
        obex_object_t *object;
        uint8_t rname[200];
        char req_name[200];
-       int num, rname_size;
+       int rname_size;
        obex_headerdata_t hd;
 
-       printf("GET File> ");
-       memset(req_name, 0, sizeof(req_name));
-       num = scanf("%199c", req_name);
-       if (num != 1) {
+       fprintf(stdout, "GET file> ");
+       fflush(stdout);
+       (void)fgets(req_name, sizeof(req_name), stdin);
+       if (req_name[0] == 0) /* EOF */
+               return;
+       req_name[strlen(req_name)-1] = 0; /* remove trailing newline */
+       if (strlen(req_name) == 0) {
                perror("scanf:");
                return;
        }
@@ -438,13 +448,16 @@ void setpath_client(obex_t *handle)
        uint8_t setpath_data[2] = { 0, 0 };
        obex_object_t *object;
        char path[200];
-       int num, path_size;
+       int path_size;
        obex_headerdata_t hd;
 
-       printf("SETPATH> ");
-       memset(path, 0, sizeof(path));
-       num = scanf("%199c", path);
-       if (num != 1) {
+       fprintf(stdout, "SETPATH> ");
+       fflush(stdout);
+       (void)fgets(path, sizeof(path), stdin);
+       if (path[0] == 0) /* EOF */
+               return;
+       path[strlen(path)-1] = 0; /* remove trailing newline */
+       if (strlen(path) == 0) {
                perror("scanf:");
                return;
        }
-- 
1.7.5.4


------------------------------------------------------------------------------
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
_______________________________________________
Openobex-users mailing list
Openobex-users@lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/openobex-users

Reply via email to