diff --git a/ChangeLog b/ChangeLog
index d54f9e3992cbcd96b6969c015bdb7bc53962badf..314ffeaf7a43be55628b48f13d0f6a4653c4c605 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2005-12-27 Per Cederqvist <ceder@lysator.liu.se>
+
+ Simplified the name parsing routing, and save some small amount of
+ memory, by removing the priority field of Matching_info.
+ * src/libraries/libcommon/parser.c (parse): Don't let the priority
+ influence the match. The priority functionality was poorly
+ documented, not used by lyskomd, and made the code more complex.
+ * src/libraries/libcommon/parser.h (Matching_info): Removed the
+ priority field, which is no longer used.
+ * src/server/simple-cache.c (rebuild_matching_info_entry): Don't
+ initialize the priority field.
+ (build_matching_info): Ditto.
+
2005-12-25 Per Cederqvist <ceder@lysator.liu.se>
Minor code cleanup.
diff --git a/src/libraries/libcommon/parser.c b/src/libraries/libcommon/parser.c
index 4ce423e893a13ec5f16521af8a181ed2039ab577..57b58d0ac49c6b158100a34084ada8ea36a4fd0b 100644
--- a/src/libraries/libcommon/parser.c
+++ b/src/libraries/libcommon/parser.c
@@ -319,7 +319,6 @@ parse (String source_string,
int no_of_source_words;
int first_non_matching;
int best_match;
- int highest_priority;
const int chunk_size = 20;
@@ -356,7 +355,6 @@ parse (String source_string,
size_of_index_list = 0;
index = -1;
best_match = 1; /* At least one word */
- highest_priority = 1;
while (match_table[++index].conf_no != 0)
{
if (s_empty (match_table[index].name))
@@ -376,17 +374,11 @@ parse (String source_string,
if (first_non_matching < best_match)
continue; /* Try next entry in table */
- if ( first_non_matching == best_match
- && highest_priority > match_table[index].priority)
- continue;
-
/* If we reach this far, then we have a match that should be
* inserted in the table. But if it is a better match than any
* before, then we clear the table first. */
- if ( first_non_matching > best_match
- || match_table[index].priority > highest_priority)
+ if ( first_non_matching > best_match )
{
- highest_priority = match_table[index].priority;
best_match = first_non_matching;
answer.no_of_matches = 0;
}
@@ -411,7 +403,6 @@ parse (String source_string,
answer.indexes = temp_indexes;
}
- highest_priority = match_table [index].priority;
answer.indexes[answer.no_of_matches] = index;
/* Find out where the arguments start.
* This value should not be used if more than one match is found.
diff --git a/src/libraries/libcommon/parser.h b/src/libraries/libcommon/parser.h
index 9a0808e274345dd128627d9fc8d4a3ee407aeb5c..66116a959dfbc1e122fbb2d7fe927d0ecaaaac8f 100644
--- a/src/libraries/libcommon/parser.h
+++ b/src/libraries/libcommon/parser.h
@@ -75,7 +75,6 @@ typedef struct matching_info {
Conf_no conf_no; /* Conference */
String name; /* Name to match against */
Parse_token * tokens; /* Tokenized version of name */
- int priority; /* Normally in interval 1..15 */
} Matching_info;
diff --git a/src/server/simple-cache.c b/src/server/simple-cache.c
index 4194cd08f0dc24d0f6f864124dc4570ab556e98d..b75ac12d81de6ef65dcbda0b54c136a89b3b61be 100644
--- a/src/server/simple-cache.c
+++ b/src/server/simple-cache.c
@@ -1536,7 +1536,6 @@ rebuild_matching_info_entry(Conf_no conf_no)
*/
mtch->name = EMPTY_STRING;
mtch->tokens = NULL;
- mtch->priority = 0;
}
}
else
@@ -1588,7 +1587,6 @@ rebuild_matching_info_entry(Conf_no conf_no)
match_table[no_of_match_info].name = small_conf_arr[conf_no]->name;
match_table[no_of_match_info].tokens = tokenize(small_conf_arr[conf_no]->name,
s_fcrea_str(WHITESPACE));
- match_table[no_of_match_info].priority = 7;
match_table[no_of_match_info].conf_no = conf_no;
/* Bump the number of match infos and enter the ending dummy */
@@ -1596,7 +1594,6 @@ rebuild_matching_info_entry(Conf_no conf_no)
no_of_match_info += 1;
match_table[no_of_match_info].name = EMPTY_STRING;
match_table[no_of_match_info].tokens = NULL;
- match_table[no_of_match_info].priority = 0;
match_table[no_of_match_info].conf_no = 0;
}
@@ -1625,7 +1622,6 @@ build_matching_info(void)
{
mtch->name = small_conf_arr[ i ]->name;
mtch->tokens = tokenize(mtch->name, s_fcrea_str(WHITESPACE));
- mtch->priority = 7;
mtch->conf_no = i;
++mtch;
++conf;
@@ -1635,7 +1631,6 @@ build_matching_info(void)
mtch->name = EMPTY_STRING;
mtch->tokens = NULL;
- mtch->priority = 0;
mtch->conf_no = 0;
return OK;