linux subdivision ying gai ke yi le ba

源代码在线查看: target-test.c

软件大小: 10313 K
上传用户: zhangyuntong
关键词: subdivision linux ying gai
下载地址: 免注册下载 普通下载 VIP

相关代码

				/*
				 * target-test.c -- test the target condensing function
				 *
				 * ====================================================================
				 * Copyright (c) 2000-2004 CollabNet.  All rights reserved.
				 *
				 * This software is licensed as described in the file COPYING, which
				 * you should have received as part of this distribution.  The terms
				 * are also available at http://subversion.tigris.org/license-1.html.
				 * If newer versions of this license are posted there, you may use a
				 * newer version instead, at your option.
				 *
				 * This software consists of voluntary contributions made by many
				 * individuals.  For exact contribution history, see the revision
				 * history and logs, available at http://subversion.tigris.org/.
				 * ====================================================================
				 */
				
				#define APR_WANT_STDIO
				#include 
				#include 
				
				#include "svn_cmdline.h"
				#include "svn_pools.h"
				#include "svn_path.h"
				#include "svn_utf.h"
				
				int main(int argc, char **argv)
				{
				  apr_pool_t *pool;
				  svn_error_t *err;
				  apr_array_header_t *targets;
				  apr_array_header_t *condensed_targets;
				  const char *common_path = 0;
				  const char *common_path2 = 0;
				  int i;
				
				  if (argc < 2) {
				    fprintf(stderr, "USAGE: %s \n", argv[0]);
				    return EXIT_FAILURE;
				  }
				
				  /* Initialize the app. */
				  if (svn_cmdline_init("target-test", stderr) != EXIT_SUCCESS)
				    return EXIT_FAILURE;
				
				  /* Create our top-level pool. */
				  pool = svn_pool_create(NULL);
				
				  /* Create the target array */
				  targets = apr_array_make(pool, argc - 1, sizeof(const char *));
				  for (i = 1; i < argc; i++)
				    {
				      const char *path_utf8;
				      err = svn_utf_cstring_to_utf8(&path_utf8, argv[i], pool);
				      if (err != SVN_NO_ERROR)
				        svn_handle_error(err, stderr, 1);
				      *((const char **)apr_array_push(targets)) = 
				        svn_path_internal_style(path_utf8, pool);
				    }
				
				
				  /* Call the function */
				  err = svn_path_condense_targets(&common_path, &condensed_targets, targets,
				                                  TRUE, pool);
				  if (err != SVN_NO_ERROR)
				    svn_handle_error(err, stderr, 1);
				
				  /* Display the results */
				  {
				    const char *common_path_stdout;
				    err = svn_utf_cstring_from_utf8(&common_path_stdout, common_path, pool);
				    if (err != SVN_NO_ERROR)
				      svn_handle_error(err, stderr, 1);
				    printf("%s: ", common_path_stdout);
				  }
				  for (i = 0; i < condensed_targets->nelts; i++)
				    {
				      const char * target = ((const char**)condensed_targets->elts)[i];
				      if (target)
				        {
				          const char *target_stdout;
				          err = svn_utf_cstring_from_utf8(&target_stdout, target, pool);
				          if (err != SVN_NO_ERROR)
				            svn_handle_error(err, stderr, 1);
				          printf("%s, ", target_stdout);
				        }
				      else
				        printf("NULL, "); 
				    }
				  printf ("\n");
				
				  /* Now ensure it works without the pbasename */
				  err = svn_path_condense_targets(&common_path2, NULL, targets, TRUE, pool);
				  if (err != SVN_NO_ERROR)
				    svn_handle_error(err, stderr, 1);
				
				  if (strcmp (common_path, common_path2) != 0)
				    {
				      printf("Common path without getting targets does not match common path "
				             "with targets\n");
				      return EXIT_FAILURE;
				    }
				
				
				  return EXIT_SUCCESS;
				}
							

相关资源