コード例 #1
0
ファイル: importFg4Section.c プロジェクト: cogitokat/brlcad
int
ged_importFg4Section(struct ged *gedp, int argc, const char *argv[])
{
    char *cp;
    char *line;
    char *lines;
    int eosFlag = 0;
    static const char *usage = "obj section";

    GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR);
    GED_CHECK_READ_ONLY(gedp, GED_ERROR);
    GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR);

    /* initialize result */
    bu_vls_trunc(gedp->ged_result_str, 0);

    /* must be wanting help */
    if (argc == 1) {
	bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
	return GED_HELP;
    }

    if (argc != 3) {
	bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage);
	return GED_ERROR;
    }

    grid_size = GRID_BLOCK;
    grid_pts = (point_t *)bu_malloc(grid_size * sizeof(point_t) ,
				    "importFg4Section: grid_pts");

    lines = strdup(argv[2]);
    cp = line = lines;

    FIND_NEWLINE(cp, eosFlag);

    bu_strlcpy(field, line+8, sizeof(field));
    group_id = atoi(field);

    bu_strlcpy(field, line+16, sizeof(field));
    comp_id = atoi(field);

    region_id = group_id * 1000 + comp_id;

    if (comp_id > 999) {
	bu_log("Illegal component id number %d, changed to 999\n", comp_id);
	comp_id = 999;
    }

    bu_strlcpy(field, line+24, sizeof(field));
    mode = atoi(field);
    if (mode != 1 && mode != 2) {
	bu_log("Illegal mode (%d) for group %d component %d, using volume mode\n",
	       mode, group_id, comp_id);
	mode = 2;
    }

    while (!eosFlag) {
	++cp;
	line = cp;
	FIND_NEWLINE(cp, eosFlag);

	if (!bu_strncmp(line, "GRID", 4))
	    do_grid(line);
	else if (!bu_strncmp(line, "CTRI", 4))
	    do_tri(line);
	else if (!bu_strncmp(line, "CQUAD", 4))
	    do_quad(line);
    }

    make_bot_object(argv[1], gedp->ged_wdbp);
    free((void *)lines);
    bu_free((void *)grid_pts, "importFg4Section: grid_pts");

    /* free memory associated with globals */
    bu_free((void *)faces, "importFg4Section: faces");
    bu_free((void *)thickness, "importFg4Section: thickness");
    bu_free((void *)facemode, "importFg4Section: facemode");

    faces = NULL;
    thickness = NULL;
    facemode = NULL;

    return TCL_OK;
}
コード例 #2
0
/* Read /etc/resolv.conf and configure the resolver from it. */
Boolean ssh_dns_resolver_read_resolv_conf(SshDNSResolver resolver,
					  unsigned char *name)
{
#ifndef VXWORKS
  unsigned char *buffer, *p, *q, c;
  SshIpAddrStruct address[1];
  size_t buffer_len;
  int i;

  if (!ssh_read_file_with_limit((char *)name, 65536, &buffer, &buffer_len))
    return FALSE;

  ssh_dns_resolver_safety_belt_clear(resolver);

  i = 0;
  p = buffer;
  while (buffer_len > 0)
    {
      SKIP_SPACE(p, buffer_len);
      if (buffer_len < 10)
	break;
      if (strncasecmp((char *)p, "nameserver", 9) == 0 && isspace(p[10]))
	{
	  p += 10;
	  buffer_len -= 10;
	  SKIP_SPACE(p, buffer_len);
	  q = p;
	  FIND_SPACE(q, buffer_len);
	  c = *q;
	  *q = '\0';
	  if (ssh_ipaddr_parse(address, p))
	    {
	      ssh_dns_resolver_safety_belt_add(resolver, 1, address);
	      i++;
	    }
	  *q = c;
	  p = q;
	}
      FIND_NEWLINE(p, buffer_len);
    }
  ssh_free(buffer);
  if (i == 0)
    return FALSE;
  return TRUE;
#else /* VXWORKS */
  /* Get name server addresses from VxWorks name resolver.
     VxWorks resolver is enabled
     by defining:
     #define INCLUDE_DNS_RESOLVER
     #define RESOLVER_DOMAIN_SERVER  "90.0.0.3"
     #define RESOLVER_DOMAIN         "wrs.com"
     In $WIND_BASE/target/config/xxx/config.h or
     $WIND_BASEtarget/config/all/configAll.h.
     If INCLUDE_DNS_RESOLVER is not defined, VxWorks returns name
     server address 0.0.0.0.
  */
  int i, addr_cnt;
  RESOLV_PARAMS_S resolv_params;
  SshIpAddrStruct address[1];

  ssh_dns_resolver_safety_belt_clear(resolver);

  resolvParamsGet(&resolv_params);
  for(addr_cnt = i = 0; i < MAXNS; i++)
    {
      if (ssh_ipaddr_parse(address, resolv_params.nameServersAddr[i]))
	{
	  ssh_dns_resolver_safety_belt_add(resolver, 1, address);
	  addr_cnt++;
	}
    }
  return addr_cnt > 0;
#endif
}
コード例 #3
0
ファイル: importFg4Section.c プロジェクト: cciechad/brlcad
int
wdb_importFg4Section_cmd(struct rt_wdb	*wdbp,
			 Tcl_Interp	*interp,
			 int		argc,
			 char 		**argv)
{
    char *cp;
    char *line;
    char *lines;
    int eosFlag = 0;

    if (argc != 3) {
	struct bu_vls vls;

	bu_vls_init(&vls);
	bu_vls_printf(&vls, "helplib_alias wdb_importFg4Section %s", argv[0]);
	Tcl_Eval(interp, bu_vls_addr(&vls));
	bu_vls_free(&vls);
	return TCL_ERROR;
    }

    grid_size = GRID_BLOCK;
    grid_pts = (point_t *)bu_malloc(grid_size * sizeof(point_t) ,
				    "importFg4Section: grid_pts");

    lines = strdup(argv[2]);
    cp = line = lines;

    FIND_NEWLINE(cp, eosFlag);

    bu_strlcpy(field, line+8, sizeof(field));
    group_id = atoi(field);

    bu_strlcpy(field, line+16, sizeof(field));
    comp_id = atoi(field);

    region_id = group_id * 1000 + comp_id;

    if (comp_id > 999) {
	bu_log( "Illegal component id number %d, changed to 999\n", comp_id );
	comp_id = 999;
    }

    bu_strlcpy(field, line+24, sizeof(field));
    mode = atoi(field);
    if (mode != 1 && mode != 2) {
	bu_log("Illegal mode (%d) for group %d component %d, using volume mode\n",
	       mode, group_id, comp_id);
	mode = 2;
    }

    while (!eosFlag) {
	++cp;
	line = cp;
	FIND_NEWLINE(cp, eosFlag);

	if (!strncmp(line, "GRID", 4))
	    do_grid(line);
	else if (!strncmp(line, "CTRI", 4))
	    do_tri(line);
	else if (!strncmp(line, "CQUAD", 4))
	    do_quad(line);
    }

    make_bot_object(argv[1], wdbp);
    free((void *)lines);
    bu_free((void *)grid_pts, "importFg4Section: grid_pts");

    /* free memory associated with globals */
    bu_free((void *)faces, "importFg4Section: faces");
    bu_free((void *)thickness, "importFg4Section: thickness");
    bu_free((void *)facemode, "importFg4Section: facemode");

    faces = NULL;
    thickness = NULL;
    facemode = NULL;

    return TCL_OK;
}