Looks great. Applied and tested. I added a little more info to the log
message, but all done. Great job on your first submission.
Thanks Chris! 
-Fitz
PS Karl, after you verify, can you close the issue? I didn't want to
close until you got a minute to review.
> --------------E02E153B32545035AB5EB7CD
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
> 
> Attached is the patch and a log entry.  Please let me know if I did anything
> wrong. =)
> 
> --Chris
> --------------E02E153B32545035AB5EB7CD
> Content-Type: text/plain; charset=us-ascii;
>  name="patch.txt"
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline;
>  filename="patch.txt"
> 
> Index: subversion/clients/cmdline//help-cmd.c
> ===================================================================
> RCS file: /usr/local/tigris/data/helm/cvs/repository/subversion/subversion/clients/cmdline/help-cmd.c,v
> retrieving revision 1.3
> diff -u -r1.3 help-cmd.c
> --- subversion/clients/cmdline//help-cmd.c	2001/07/07 11:15:42	1.3
> +++ subversion/clients/cmdline//help-cmd.c	2001/07/24 23:00:23
> @@ -33,7 +33,8 @@
>  static void
>  print_command_info (const svn_cl__cmd_desc_t *cmd_desc,
>                      svn_boolean_t help, 
> -                    apr_pool_t *pool)
> +                    apr_pool_t *pool,
> +                    FILE *stream)
>  {
>    const svn_cl__cmd_desc_t *this_cmd
>      = svn_cl__get_canonical_command (cmd_desc->name);
> @@ -41,33 +42,33 @@
>    svn_boolean_t first_time;
>  
>    /* Print the canonical command name. */
> -  fputs (canonical_cmd->name, stdout);
> +  fputs (canonical_cmd->name, stream);
>  
>    /* Print the list of aliases. */
>    first_time = TRUE;
>    for (this_cmd++; (this_cmd->name && this_cmd->is_alias); this_cmd++) 
>      {
>        if (first_time) {
> -        printf (" (");
> +        fprintf (stream, " (");
>          first_time = FALSE;
>        }
>        else
> -        printf (", ");
> +        fprintf (stream, ", ");
>        
> -      printf ("%s", this_cmd->name);
> +      fprintf (stream, "%s", this_cmd->name);
>      }
>  
>    if (! first_time)
> -    printf (")");
> +    fprintf (stream, ")");
>    
>    if (help)
> -    printf (": %s\n", canonical_cmd->help);
> +    fprintf (stream, ": %s\n", canonical_cmd->help);
>  }
>  
>  
>  /* Print a generic (non-command-specific) usage message. */
>  static void
> -print_generic_help (apr_pool_t *pool)
> +print_generic_help (apr_pool_t *pool, FILE *stream)
>  {
>    static const char usage[] =
>      "usage: svn <subcommand> [options] [args]\n"
> @@ -86,21 +87,21 @@
>  
>    int i = 0;
>  
> -  printf ("%s", usage);
> +  fprintf (stream, "%s", usage);
>    while (svn_cl__cmd_table[i].name) 
>      {
>        /*  for (i = 0; i < max; i++) */
>        if (! svn_cl__cmd_table[i].is_alias)
>          {
> -          printf ("   ");
> -          print_command_info (svn_cl__cmd_table + i, FALSE, pool);
> -          printf ("\n");
> +          fprintf (stream, "   ");
> +          print_command_info (svn_cl__cmd_table + i, FALSE, pool, stream);
> +          fprintf (stream, "\n");
>          }
>        i++;
>      }
>  
> -  printf ("\n");
> -  printf ("%s\n", info);
> +  fprintf (stream, "\n");
> +  fprintf (stream, "%s\n", info);
>  
>  }
>  
> @@ -159,14 +160,27 @@
>          svn_stringbuf_t *this = (((svn_stringbuf_t **) (targets)->elts))[i];
>  	svn_cl__subcommand_help (this->data, pool);
>        }
> +
> +  /* the help command was given with no subcommands */
> +  else if (os && !targets->nelts)
> +    {
> +      /* the -h or --help option was given */
> +      if (opt_state && opt_state->help)
> +        print_generic_help (pool, stdout);
> +      
> +      /* help was given by itself */
> +      else
> +        svn_cl__subcommand_help ("help", pool);
> +    }
> +
>    else
>      {
>        /* the -v or --version option was given */
>        if (opt_state && opt_state->version) 
>            SVN_ERR (print_version_info (pool));        
>  
> +      /* an unknown option was given */
>        else
> -        print_generic_help (pool);      
> +        print_generic_help (pool, stderr);      
>      }
>  
>    return SVN_NO_ERROR;
> @@ -184,7 +198,7 @@
>      svn_cl__get_canonical_command (subcommand);
>      
>    if (cmd)
> -    print_command_info (cmd, TRUE, pool);
> +    print_command_info (cmd, TRUE, pool, stdout);
>    else
>      fprintf (stderr, "\"%s\": unknown command.\n\n", subcommand);
>  }
> 
> --------------E02E153B32545035AB5EB7CD
> Content-Type: text/plain; charset=us-ascii;
>  name="log.txt"
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline;
>  filename="log.txt"
> 
> * clients/cmdline/help-cmd.c (print_command_info, print_generic_help): 
> Added FILE *stream to parameter lists to allow callers to select the 
> output stream to use.  Switched all printf's to fprintf's to take 
> advantage of the new parameter.
> * clients/cmdline/help-cmd.c (svn_cl__help): Added a case to handle when 
> svn is invoked with help or --help.  Updated calls to print_generic_help 
> and print_command_info to use new parameter list.
> * clients/cmdline/help-cmd.c (svn_cl__subcommand_help): Updated call
> to print_command_info to use new parameter list.
> 
> 
> --------------E02E153B32545035AB5EB7CD
> Content-Type: text/plain; charset=us-ascii
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org
> --------------E02E153B32545035AB5EB7CD--
> 
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:33 2006