Exemplo n.º 1
0
Arquivo: atlas.c Projeto: cpence/arcus
arcus_atlas *atlas_from_file(const char *filename)
{
    scew_reader *reader;
    scew_parser *parser;
    scew_tree *tree;
    arcus_atlas *ret;
    
    reader = scew_reader_file_create(filename);
    if (!reader)
    {
        set_error_string("atlas_from_file: cannot open/read file");
        return NULL;
    }

    parser = scew_parser_create();
    if (!parser)
    {
        set_error_string("atlas_from_file: cannot create a parser (scew bug?)");
        
        scew_reader_close(reader);
        scew_reader_free(reader);
        return NULL;
    }

    tree = scew_parser_load(parser, reader);
    if (!tree)
    {
        set_error_string("atlas_from_file: cannot create tree from parser and reader (invalid XML?)");
        
        scew_parser_free(parser);
        scew_reader_close(reader);
        scew_reader_free(reader);
        return NULL;
    }

    ret = atlas_from_xml(scew_tree_root(tree));
        
    scew_tree_free(tree);
    scew_parser_free(parser);
    scew_reader_close(reader);
    scew_reader_free(reader);
    
    return ret;
}
Exemplo n.º 2
0
int
main (int argc, char *argv[])
{
  scew_reader *reader = NULL;
  scew_parser *parser = NULL;
  scew_tree *tree = NULL;
  scew_writer *writer = NULL;
  scew_printer *printer = NULL;

#if defined(_MSC_VER) && defined(XML_UNICODE_WCHAR_T)
  /* Change stdout to Unicode before writing anything. */
  _setmode(_fileno(stdout), _O_U16TEXT);
#endif /* _MSC_VER && XML_UNICODE_WCHAR_T */

  if (argc < 2)
    {
      scew_printf (_XT("Usage: scew_print file.xml\n"));
      return EXIT_FAILURE;
    }

  /* Creates an SCEW parser. This is the first function to call. */
  parser = scew_parser_create ();

  scew_parser_ignore_whitespaces (parser, SCEW_TRUE);

  /* Loads an XML file. */
  reader = scew_reader_file_create (argv[1]);
  if (reader == NULL)
    {
      scew_error code = scew_error_code ();
      scew_printf (_XT("Unable to load file (error #%d: %s)\n"),
                   code, scew_error_string (code));
      return EXIT_FAILURE;
    }

  tree = scew_parser_load (parser, reader);
  if (tree == NULL)
    {
      scew_error code = scew_error_code ();
      scew_printf (_XT("Unable to parse file (error #%d: %s)\n"),
                   code, scew_error_string (code));
      if (code == scew_error_expat)
        {
          enum XML_Error expat_code = scew_error_expat_code (parser);
          scew_printf (_XT("Expat error #%d (line %d, column %d): %s\n"),
                       expat_code,
                       scew_error_expat_line (parser),
                       scew_error_expat_column (parser),
                       scew_error_expat_string (expat_code));
        }

      /* Frees the SCEW parser and reader. */
      scew_reader_free (reader);
      scew_parser_free (parser);

      return EXIT_FAILURE;
    }

  /* Prints full tree. */
  scew_printf (_XT("\n*** Manual print:\n\n"));
  print_element (scew_tree_root (tree), 0);

  /* Prints full tree using SCEW writer. */
  scew_printf (_XT("\n\n*** SCEW writer (stdout) print:\n\n"));

  writer = scew_writer_fp_create (stdout);
  printer = scew_printer_create (writer);
  scew_printer_print_tree (printer, tree);
  scew_printf (_XT("\n"));

  /* Remember to free tree (scew_parser_free does not free it). */
  scew_tree_free (tree);

  /* Also free the printer and writer. */
  scew_writer_free (writer);
  scew_printer_free (printer);

  /* Frees the SCEW parser and reader. */
  scew_reader_free (reader);
  scew_parser_free (parser);

  return 0;
}
Exemplo n.º 3
0
procim_node_identifier get_axis_joystick_node_id(userslot_bool_key userslot){
	return joystick_loockup[userslot_axis_lookup[userslot].joy_key].prcm_node_id;
}

Err_No_t Joy_parse_config_file(joystick_settings *joy_settings UNUSED, const char *JoyIniFile UNUSED){
	scew_reader *reader = NULL;
	scew_parser *parser = NULL;
	scew_tree *tree = NULL;

	/* Creates an SCEW parser. This is the first function to call. */
	parser = scew_parser_create();

	scew_parser_ignore_whitespaces(parser, SCEW_TRUE);

	/* Loads an XML file. */
	reader = scew_reader_file_create(JoyIniFile);
	if (reader == NULL) {
		scew_error code = scew_error_code();
		scew_printf(_XT("Unable to load file (error #%d: %s)\n"), code,
				scew_error_string(code));
	}

	tree = scew_parser_load(parser, reader);
	if (tree == NULL) {
		scew_error code = scew_error_code();
		scew_printf(_XT("Unable to parse file (error #%d: %s)\n"), code,
				scew_error_string(code));
		if (code == scew_error_expat) {
			enum XML_Error expat_code = scew_error_expat_code(parser);
			scew_printf(_XT("Expat error #%d (line %d, column %d): %s\n"),
					expat_code, scew_error_expat_line(parser),