예제 #1
0
void
check_binary_file(char *filename)
{
    unsigned char *image;
    unsigned char *p;
    unsigned       idsize;
    int            nbytes;
    int            nrecords;

    image = get_binary_file_image(filename, &nbytes);
    if ( image == NULL ) {
        check_printf("No file image: %s\n", filename);
        return;
    }
    p = image;
    CHECK_FOR_ERROR(strcmp((char*)p, gdata->header)==0);
    check_printf("Filename=%s, nbytes=%d, header=\"%s\"\n",
                        filename, nbytes, p);
    p+=((int)strlen((char*)p)+1);
    idsize = read_u4(&p);
    CHECK_FOR_ERROR(idsize==sizeof(HprofId));
    (void)read_u4(&p);
    (void)read_u4(&p);
    /* LINTED */
    nrecords = check_tags(p, nbytes - (int)( p - image ) );
    check_printf("#%d total records found in %d bytes\n", nrecords, nbytes);
    HPROF_FREE(image);
}
예제 #2
0
 void visit(T &theNode) override
 {
     if(theNode.enabled() || !visit_only_enabled())
     {
         if(check_tags(m_tags, theNode.tags())){ m_objects.push_back(&theNode); }
         Visitor::visit(static_cast<gl::Object3D&>(theNode));
     }
 };
예제 #3
0
ptrdiff_t tree_set_store::set_set_tag(ptrdiff_t set)
{
  if (buckets[set].tag != EMPTY_TAG)
  {
    return buckets[set].tag;
  }
  check_tags();
  tags[tags_next] = set;
  buckets[set].tag = tags_next;
  return tags_next++;
}
예제 #4
0
GST_END_TEST
GST_START_TEST (test_merge)
{
  GstTagList *list = NULL, *list2 = NULL, *merge = NULL;

  /* check merging */
  /* unfixed */
  GST_DEBUG ("unfixed");
  NEW_LISTS_UNFIXED (GST_TAG_MERGE_REPLACE_ALL);
  check_tags (merge, UTAG, UNFIXED3, UNFIXED4, NULL);
  NEW_LISTS_UNFIXED (GST_TAG_MERGE_REPLACE);
  check_tags (merge, UTAG, UNFIXED3, UNFIXED4, NULL);
  NEW_LISTS_UNFIXED (GST_TAG_MERGE_PREPEND);
  check_tags (merge, UTAG, UNFIXED3, UNFIXED4, UNFIXED1, UNFIXED2, NULL);
  NEW_LISTS_UNFIXED (GST_TAG_MERGE_APPEND);
  check_tags (merge, UTAG, UNFIXED1, UNFIXED2, UNFIXED3, UNFIXED4, NULL);
  NEW_LISTS_UNFIXED (GST_TAG_MERGE_KEEP);
  check_tags (merge, UTAG, UNFIXED1, UNFIXED2, NULL);
  NEW_LISTS_UNFIXED (GST_TAG_MERGE_KEEP_ALL);
  check_tags (merge, UTAG, UNFIXED1, UNFIXED2, NULL);

  /* fixed */
  GST_DEBUG ("fixed");
  NEW_LISTS_FIXED (GST_TAG_MERGE_REPLACE_ALL);
  check_tags (merge, FTAG, FIXED3, NULL);
  NEW_LISTS_FIXED (GST_TAG_MERGE_REPLACE);
  check_tags (merge, FTAG, FIXED3, NULL);
  NEW_LISTS_FIXED (GST_TAG_MERGE_PREPEND);
  check_tags (merge, FTAG, FIXED3, NULL);
  NEW_LISTS_FIXED (GST_TAG_MERGE_APPEND);
  check_tags (merge, FTAG, FIXED1, NULL);
  NEW_LISTS_FIXED (GST_TAG_MERGE_KEEP);
  check_tags (merge, FTAG, FIXED1, NULL);
  NEW_LISTS_FIXED (GST_TAG_MERGE_KEEP_ALL);
  check_tags (merge, FTAG, FIXED1, NULL);

  /* first list empty */
  GST_DEBUG ("first empty");
  NEW_LISTS_EMPTY1 (GST_TAG_MERGE_REPLACE_ALL);
  check_tags (merge, FTAG, FIXED3, NULL);
  NEW_LISTS_EMPTY1 (GST_TAG_MERGE_REPLACE);
  check_tags (merge, FTAG, FIXED3, NULL);
  NEW_LISTS_EMPTY1 (GST_TAG_MERGE_PREPEND);
  check_tags (merge, FTAG, FIXED3, NULL);
  NEW_LISTS_EMPTY1 (GST_TAG_MERGE_APPEND);
  check_tags (merge, FTAG, FIXED3, NULL);
  NEW_LISTS_EMPTY1 (GST_TAG_MERGE_KEEP);
  check_tags (merge, FTAG, FIXED3, NULL);
  NEW_LISTS_EMPTY1 (GST_TAG_MERGE_KEEP_ALL);
  check_tags_empty (merge);

  /* second list empty */
  GST_DEBUG ("second empty");
  NEW_LISTS_EMPTY2 (GST_TAG_MERGE_REPLACE_ALL);
  check_tags_empty (merge);
  NEW_LISTS_EMPTY2 (GST_TAG_MERGE_REPLACE);
  check_tags (merge, FTAG, FIXED1, NULL);
  NEW_LISTS_EMPTY2 (GST_TAG_MERGE_PREPEND);
  check_tags (merge, FTAG, FIXED1, NULL);
  NEW_LISTS_EMPTY2 (GST_TAG_MERGE_APPEND);
  check_tags (merge, FTAG, FIXED1, NULL);
  NEW_LISTS_EMPTY2 (GST_TAG_MERGE_KEEP);
  check_tags (merge, FTAG, FIXED1, NULL);
  NEW_LISTS_EMPTY2 (GST_TAG_MERGE_KEEP_ALL);
  check_tags (merge, FTAG, FIXED1, NULL);

  /* clean up */
  if (list)
    gst_tag_list_unref (list);
  if (list2)
    gst_tag_list_unref (list2);
  if (merge)
    gst_tag_list_unref (merge);
}
예제 #5
0
GST_END_TEST
GST_START_TEST (test_add)
{
  GstTagList *list = NULL;

  /* check additions */
  /* unfixed */
  NEW_LIST_UNFIXED (GST_TAG_MERGE_REPLACE_ALL);
  check_tags (list, UTAG, UNFIXED4, NULL);
  NEW_LIST_UNFIXED (GST_TAG_MERGE_REPLACE);
  check_tags (list, UTAG, UNFIXED4, NULL);
  NEW_LIST_UNFIXED (GST_TAG_MERGE_PREPEND);
  check_tags (list, UTAG, UNFIXED4, UNFIXED3, UNFIXED2, UNFIXED1, NULL);
  NEW_LIST_UNFIXED (GST_TAG_MERGE_APPEND);
  check_tags (list, UTAG, UNFIXED1, UNFIXED2, UNFIXED3, UNFIXED4, NULL);
  NEW_LIST_UNFIXED (GST_TAG_MERGE_KEEP);
  check_tags (list, UTAG, UNFIXED1, NULL);
  NEW_LIST_UNFIXED (GST_TAG_MERGE_KEEP_ALL);
  check_tags (list, UTAG, NULL);

  /* fixed */
  NEW_LIST_FIXED (GST_TAG_MERGE_REPLACE_ALL);
  check_tags (list, FTAG, FIXED4, NULL);
  NEW_LIST_FIXED (GST_TAG_MERGE_REPLACE);
  check_tags (list, FTAG, FIXED4, NULL);
  NEW_LIST_FIXED (GST_TAG_MERGE_PREPEND);
  check_tags (list, FTAG, FIXED4, NULL);
  NEW_LIST_FIXED (GST_TAG_MERGE_APPEND);
  check_tags (list, FTAG, FIXED1, NULL);
  NEW_LIST_FIXED (GST_TAG_MERGE_KEEP);
  check_tags (list, FTAG, FIXED1, NULL);
  NEW_LIST_FIXED (GST_TAG_MERGE_KEEP_ALL);
  check_tags (list, FTAG, NULL);

  /* clean up */
  if (list)
    gst_tag_list_unref (list);
}
예제 #6
0
Prob::represent_t
Prob::Match::applicable(int            from,
                           int            to,
                           const Tag     *first_tag,
                           bool           silent)
{
    if(type != NOT_APPLICABLE)	// @additional
	return type;

    const char *category = strchr(name, '@');
    if(!category)
    {
	if(!silent)
	    out->add("warning", "regeln har ingen typ");
	return NOT_APPLICABLE;
    }
    category++;	// step past '@'

    if(strcmp(name, "ie@vbrecog") == 0)
    {
	if(!check_tags(tag, tag_c))
	{
	    if(!silent)
		out->add("warning", "tag för ersättning saknas");
	    return NOT_APPLICABLE;
	}
	return REPLACE;
    }
    else if(strcmp(name, "clbegin@clrecog") == 0)
    {
	return NOT_APPLICABLE;
    }
    else if(strcmp(name, "clend@clrecog") == 0)
    {
	return NOT_APPLICABLE;
    }
    else if(strcmp(category, "nprecog") == 0)
    {
	if(!check_tags(tag, tag_c))
	{
	    if(!silent)
		out->add("warning", "tag för ersättning saknas");
	    return NOT_APPLICABLE;
	}
	else if(begin == end &&
		first_tag->String()[0] == tag[0]->String()[0] &&
		first_tag->String()[1] == tag[0]->String()[1])
	{
	    if(!silent)
		out->add("note",
		        "singleton-NP ändrar inte ursprunglig ordklass");
	    return NOT_APPLICABLE;
	}
	return REPLACE;
    }
    else if(strcmp(category, "vbrecog") == 0)
    {
	if(begin == end)
	{
	    if(!silent)
		out->add("note", "singleton-VP ersätts inte");
	    return NOT_APPLICABLE;
	}
	else if(!check_tags(tag, tag_c))
	{
	    if(!silent)
		out->add("warning", "tag för ersättning saknas");
	    return NOT_APPLICABLE;
	}
	return REPLACE;
    }
    else if(strcmp(category, "pprecog") == 0 || 
	    strcmp(category, "abrecog") == 0)
    {
	return REMOVE;
    }
    else if(strcmp(category, "jjrecog") == 0)
    {
#if 0	// leaving the external jj:s gives a lot of false alarms
	if(strcmp(name, "jjexternal@jjrecog") == 0)
	    return NOT_APPLICABLE;  // leave
	else
#endif
	    return REMOVE;
    }
    else if(strcmp(category, "qnrecog") == 0)
    {
	return NOT_APPLICABLE;
    }
    else
    {
	if(!silent)
	{
	    std::ostringstream s;
	    s << "'" << category << "' är en okänd kategori";
	    out->add("warning", s.str().c_str());
	}
	return NOT_APPLICABLE;
    }
}
예제 #7
0
// Hier geht die Post ab
void import_file (const gchar *import_path)
{
	TagLib_File *file;
	TagLib_Tag *tag;
	gchar *export_path;
	gchar *filename;
	gchar *artist;
	gchar *album;
	
	// Prüfen ob die Datei gültig ist
	file = taglib_file_new (import_path);
	if (file == NULL) {
		return;
	}
	
	// Prüfen ob wir Tags haben
	tag = taglib_file_tag (file);
	if (tag == NULL) {
		return;
	}
	
	// Falls Tags unvollständig sind -> Nicht importieren
	if (!check_tags (tag)) {
		gchar *text;
		text = g_strdup_printf ("Nicht importieren! (Tags unvollstaendig) -> %s", import_path);
		settings_import_messages_add (text);
		return;
	}
	
	// Dateiname holen
	filename = g_path_get_basename (import_path);
	
	// Die einzelnen Tags holen
	artist = taglib_tag_artist(tag);
	album = taglib_tag_album (tag);
	
	// Artist & Album Ordner erstellen
	create_artist_dir (artist);
	create_album_dir (album, artist);
	
	// Export Pfad bestimmen
	export_path = get_song_path (tag, get_file_extension (filename));
	
	// Prüfen, ob schon vorhanden
	if (exist_target (export_path, import_path)) {
		gchar *text;
		text = g_strdup_printf ("Überspringe: %s", filename);
		settings_import_messages_add (text);
		return;
	}
	
	// Datei kopieren
	if (!copy_file (import_path, export_path)) {
		gchar *text;
		text = g_strdup_printf ("Import fehlgeschlagen! -> %s", filename);
		settings_import_messages_add (text);
		return;
	}
	
	// File in Datenbank eintragen
	if (!register_file (export_path)) {
		gchar *text;
		text = g_strdup_printf ("Datei '%s' konnte nicht in der Datenbank registriert werden!", filename);
		settings_import_messages_add (text);
		return;
	}
	
	// Speicher wieder freigeben
	taglib_tag_free_strings ();
	taglib_file_free (file);
}
예제 #8
0
TEST(tagged_tuple, tags) {
  check_tags();
  check_tags<Y>("hello");
  check_tags<Z, X>('=', "world");
  check_tags<X, Y, Z>(5.6, 10, true);
}