Hi Hendrik,

On Wed, Jul 27, 2011, Hendrik Sattler wrote:
> ---
>  apps/obex_test/obex_test.c        |   12 ++++---
>  apps/obex_test/obex_test_client.c |   61 ++++++++++++++++++++++--------------
>  2 files changed, 44 insertions(+), 29 deletions(-)

Patches 1-9 have been applied, but this one has issues (though in
general these two c-files are a total mess as far as coding style and
whitespace is concerned).

> 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);

Could you just do

if (fgets(...) == NULL)
        break;

to avoid the typecast (and even if there was a typecast there's always a
space before the function/variable name.

> +             if (cmd[0] == 0) /* EOF */
>                       break;
> -             switch (cmd[0] | 0x20)  {
> +             cmd[strlen(cmd)-1] = 0; /* remove trailing newline */

That should be cmd[strlen(cmd) - 1] = '\0'; (0 is for integers, '\0' for
characters. Also not the whitespace change.

> +     fprintf(stdout, "PUSH file> ");
> +     fflush(stdout);
> +     (void)fgets(fname, sizeof(fname), stdin);

The same thing as above.

> +     if (fname[0] == 0) /* EOF */

== '\0'

> +     fname[strlen(fname)-1] = 0; /* remove trailing newline */

Same thing as earlier.

> +     if (strlen(fname) == 0) {
>               perror("scanf");

You're not using scanf anymore so this error log isn't correct. Also,
since you're truncating the string this strlen check doesn't guarantee
that errno will be set.

> +     (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;
>       }

Same issues here as I've already pointed out.

> +     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)

And here.

> +     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;
>       }

And here.

> +     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;
>       }

And here.

Btw, since the code patterns in all of these places are almost the same
it'd probably make sense to make a helper function for this.

Johan

------------------------------------------------------------------------------
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