--- src/obex_test.c-orig	2002-12-01 18:34:41.000000000 +0100
+++ src/obex_test.c	2005-10-18 20:45:06.000000000 +0200
@@ -30,6 +30,7 @@
 #endif
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <unistd.h>
 #include <string.h>
 
@@ -70,7 +71,8 @@
 {
 	switch (event)	{
 	case OBEX_EV_PROGRESS:
-		printf("Made some progress...\n");
+		fputc('.', stdout);
+		fflush(stdout);
 		break;
 
 	case OBEX_EV_ABORT:
@@ -85,6 +87,7 @@
 			server_done(handle, object, obex_cmd, obex_rsp);
 		}
 		break;
+
 	case OBEX_EV_REQHINT:
 		/* Accept any command. Not rellay good, but this is a test-program :) */
 		OBEX_ObjectSetRsp(object, OBEX_RSP_CONTINUE, OBEX_RSP_SUCCESS);
@@ -159,7 +162,7 @@
 	obex_t *handle;
 #ifdef HAVE_BLUETOOTH
 	bdaddr_t bdaddr;
-	uint8_t channel;
+	uint8_t channel = BT_CHANNEL;
 #endif
 
 	struct context global_context = {0,};
@@ -169,6 +172,19 @@
 	char *port;
 	obex_ctrans_t custfunc;
 
+	if( (argc == 2) && (strcmp(argv[1], "-?") == 0 ) )
+	{
+		printf(
+			"usage: %s [ -s [ tty ] | -r [ tty ] | -i | -b [ address [ channel] ] ]\n"
+			"  The default is to use IrDA transport. Use options to:\n"
+			"    -s  use serial transport\n"
+			"    -r  use serial transport to R320\n"
+			"        (tty defaults to /dev/ttyS0 for both)\n"
+			"    -i  use TCP transport\n"
+			"    -b  use Bluetooth RFCOMM transport\n", argv[0]);
+		return 1;
+	}
+
 	if( (argc == 2 || argc ==3) && (strcmp(argv[1], "-s") == 0 ) )
 		cobex = TRUE;
 	if( (argc == 2 || argc ==3) && (strcmp(argv[1], "-r") == 0 ) ) {
@@ -240,12 +256,9 @@
 			str2ba(argv[2], &bdaddr);
 			if (bacmp(&bdaddr, BDADDR_ANY) == 0)
 				channel = atoi(argv[2]);
-			else
-				channel = BT_CHANNEL;
 			break;
 		case 2:
 			bacpy(&bdaddr, BDADDR_ANY);
-			channel = BT_CHANNEL;
 			break;
 #endif
 		default:
@@ -366,8 +379,21 @@
 				/* No process server events */
 				server_do(handle);
 			break;
+			case 'h':
+			case '?':
+				printf("commands:\n"
+					" c   connect\n"
+					" d   disconnect\n"
+					" g   get [file]\n"
+					" p   put [local remote]\n"
+					" x   push [file]\n"
+					" s   server\n"
+					" t   setpath [path]\n"
+					" h,? help\n"
+					" q   quit\n");
+			break;
 			default:
-				printf("Unknown command %s\n", cmd);
+				printf("Unknown command %s (h or ? for help)\n", cmd);
 		}
 	}
 #ifndef _WIN32

