- int len_base_prefix = strlen(base_prefix);
-
- for (j=0; j<num_ext1_suffixes; j++)
- {
- char *ext1_suffix = ext1_suffixes[j];
- int start_pos = len_base_prefix;
- int match = token_suffix_match(token, ext1_suffix, start_pos);
-
- if (match == SUFFIX_MATCH_COMPLETE)
- {
- printf("--- found complete token '%s'\n", token);
- }
- else if (match == SUFFIX_MATCH)
- {
- int len_ext1_suffix = strlen(ext1_suffix);
-
- for (k=0; k<num_ext2_suffixes; k++)
- {
- char *ext2_suffix = ext2_suffixes[k];
- int start_pos = len_base_prefix + len_ext1_suffix;
- int match = token_suffix_match(token, ext2_suffix, start_pos);
-
- if (match == SUFFIX_MATCH_COMPLETE)
- {
- printf("--- found complete token '%s'\n", token);
- }
- }
- }
- }
+ exact_match = TRUE;
+
+ add_dynamic_file_list_entry(dynamic_file_list,
+ num_dynamic_file_list_entries,
+ extra_file_list,
+ suffix_list,
+ num_suffix_list_entries,
+ token);
+ add_property_mapping(property_mapping,
+ num_property_mapping_entries,
+ base_index, ext1_index, ext2_index, -1,
+ current_summarized_file_list_entry);
+ continue;
+ }
+
+ start_pos += len_ext2_suffix;
+ }
+
+ if (exact_match)
+ break;
+
+#if 0
+ if (IS_PARENT_PROCESS())
+ printf("---> examining token '%s': search 3rd suffix ...\n",token);
+#endif
+
+ /* ---------- step 3: search for matching third suffix ---------- */
+
+ for (l=0; l<num_ext3_suffixes && !ext3_suffix_found; l++)
+ {
+ char *ext3_suffix = ext3_suffixes[l];
+ int len_ext3_suffix = strlen(ext3_suffix);
+
+ ext3_suffix_found =token_suffix_match(token,ext3_suffix,start_pos);
+
+ if (!ext3_suffix_found)
+ continue;
+
+ ext3_index = l;
+
+ if (start_pos + len_ext3_suffix == len_token) /* exact match */
+ {
+ exact_match = TRUE;
+
+ add_dynamic_file_list_entry(dynamic_file_list,
+ num_dynamic_file_list_entries,
+ extra_file_list,
+ suffix_list,
+ num_suffix_list_entries,
+ token);
+ add_property_mapping(property_mapping,
+ num_property_mapping_entries,
+ base_index, ext1_index, ext2_index, ext3_index,
+ current_summarized_file_list_entry);
+ continue;