static void update_source_file(TMSourceFile *source_file, guchar* text_buf, gsize buf_size, gboolean use_buffer, gboolean update_workspace) { #ifdef TM_DEBUG g_message("Source file updating based on source file %s", source_file->file_name); #endif if (update_workspace) { /* tm_source_file_parse() deletes the tag objects - remove the tags from * workspace while they exist and can be scanned */ tm_tags_remove_file_tags(source_file, theWorkspace->tags_array); tm_tags_remove_file_tags(source_file, theWorkspace->typename_array); } tm_source_file_parse(source_file, text_buf, buf_size, use_buffer); tm_tags_sort(source_file->tags_array, file_tags_sort_attrs, FALSE, TRUE); if (update_workspace) { #ifdef TM_DEBUG g_message("Updating workspace from source file"); #endif tm_workspace_merge_tags(&theWorkspace->tags_array, source_file->tags_array); merge_extracted_tags(&(theWorkspace->typename_array), source_file->tags_array, TM_GLOBAL_TYPE_MASK); } #ifdef TM_DEBUG else g_message("Skipping workspace update because update_workspace is %s", update_workspace?"TRUE":"FALSE"); #endif }
gboolean tm_source_file_update(TMWorkObject *source_file, gboolean force , gboolean UNUSED recurse, gboolean update_parent) { if (force) { tm_source_file_parse(TM_SOURCE_FILE(source_file)); tm_tags_sort(source_file->tags_array, NULL, FALSE); /* source_file->analyze_time = tm_get_file_timestamp(source_file->file_name); */ if ((source_file->parent) && update_parent) { tm_work_object_update(source_file->parent, TRUE, FALSE, TRUE); } return TRUE; } else { #ifdef TM_DEBUG g_message ("no parsing of %s has been done", source_file->file_name); #endif return FALSE; } }