From ebf4767701457f30281aa0ca86159911b0e1edb3 Mon Sep 17 00:00:00 2001 From: MMagueta Date: Sat, 20 Sep 2025 04:42:09 +0000 Subject: deploy: 5ed1406c81044ff73fd919b5aad184aaed0a174b --- search/all_0.js | 16 + search/all_1.js | 5 + search/all_2.js | 4 + search/all_3.js | 4 + search/all_4.js | 7 + search/all_5.js | 4 + search/all_6.js | 4 + search/all_7.js | 7 + search/all_8.js | 5 + search/all_9.js | 4 + search/all_a.js | 4 + search/all_b.js | 12 + search/all_c.js | 19 ++ search/all_d.js | 16 + search/all_e.js | 4 + search/all_f.js | 4 + search/classes_0.js | 4 + search/classes_1.js | 5 + search/classes_2.js | 4 + search/classes_3.js | 5 + search/classes_4.js | 4 + search/close.svg | 18 ++ search/enums_0.js | 4 + search/enumvalues_0.js | 8 + search/files_0.js | 5 + search/files_1.js | 5 + search/files_2.js | 5 + search/files_3.js | 5 + search/files_4.js | 5 + search/functions_0.js | 6 + search/functions_1.js | 4 + search/functions_2.js | 8 + search/functions_3.js | 10 + search/functions_4.js | 9 + search/mag.svg | 24 ++ search/mag_d.svg | 24 ++ search/mag_sel.svg | 31 ++ search/mag_seld.svg | 31 ++ search/pages_0.js | 4 + search/pages_1.js | 4 + search/pages_2.js | 4 + search/search.css | 291 +++++++++++++++++ search/search.js | 840 +++++++++++++++++++++++++++++++++++++++++++++++++ search/searchdata.js | 39 +++ search/typedefs_0.js | 8 + search/typedefs_1.js | 4 + search/variables_0.js | 4 + search/variables_1.js | 4 + search/variables_2.js | 5 + search/variables_3.js | 4 + search/variables_4.js | 4 + search/variables_5.js | 5 + search/variables_6.js | 4 + search/variables_7.js | 4 + search/variables_8.js | 6 + search/variables_9.js | 4 + 56 files changed, 1581 insertions(+) create mode 100644 search/all_0.js create mode 100644 search/all_1.js create mode 100644 search/all_2.js create mode 100644 search/all_3.js create mode 100644 search/all_4.js create mode 100644 search/all_5.js create mode 100644 search/all_6.js create mode 100644 search/all_7.js create mode 100644 search/all_8.js create mode 100644 search/all_9.js create mode 100644 search/all_a.js create mode 100644 search/all_b.js create mode 100644 search/all_c.js create mode 100644 search/all_d.js create mode 100644 search/all_e.js create mode 100644 search/all_f.js create mode 100644 search/classes_0.js create mode 100644 search/classes_1.js create mode 100644 search/classes_2.js create mode 100644 search/classes_3.js create mode 100644 search/classes_4.js create mode 100644 search/close.svg create mode 100644 search/enums_0.js create mode 100644 search/enumvalues_0.js create mode 100644 search/files_0.js create mode 100644 search/files_1.js create mode 100644 search/files_2.js create mode 100644 search/files_3.js create mode 100644 search/files_4.js create mode 100644 search/functions_0.js create mode 100644 search/functions_1.js create mode 100644 search/functions_2.js create mode 100644 search/functions_3.js create mode 100644 search/functions_4.js create mode 100644 search/mag.svg create mode 100644 search/mag_d.svg create mode 100644 search/mag_sel.svg create mode 100644 search/mag_seld.svg create mode 100644 search/pages_0.js create mode 100644 search/pages_1.js create mode 100644 search/pages_2.js create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/searchdata.js create mode 100644 search/typedefs_0.js create mode 100644 search/typedefs_1.js create mode 100644 search/variables_0.js create mode 100644 search/variables_1.js create mode 100644 search/variables_2.js create mode 100644 search/variables_3.js create mode 100644 search/variables_4.js create mode 100644 search/variables_5.js create mode 100644 search/variables_6.js create mode 100644 search/variables_7.js create mode 100644 search/variables_8.js create mode 100644 search/variables_9.js (limited to 'search') diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000..fb7cc6e --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['algebra_20engine_0',['Relational Algebra Engine',['../index.html',1,'']]], + ['attr_5fdouble_1',['ATTR_DOUBLE',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a0720d64774dfe00e8064434a7d55a11b',1,'attribute.h']]], + ['attr_5fint_2',['ATTR_INT',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2acfce9fbc6c39c85087edb6a9bc727dcf',1,'attribute.h']]], + ['attr_5fset_3',['ATTR_SET',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a37475bd076e2882ca74017610d6c13d1',1,'attribute.h']]], + ['attr_5fstring_4',['ATTR_STRING',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2aa041276c55aea740bc728c3a2ea1cc8f',1,'attribute.h']]], + ['attr_5funknown_5',['ATTR_UNKNOWN',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a3b3cacd0afda8882a34d8eef5a2c5ca6',1,'attribute.h']]], + ['attribute_6',['Attribute',['../structAttribute.html',1,'']]], + ['attribute_2ec_7',['attribute.c',['../attribute_8c.html',1,'']]], + ['attribute_2eh_8',['attribute.h',['../attribute_8h.html',1,'']]], + ['attribute_5fcreate_9',['attribute_create',['../attribute_8c.html#a90566af01d8bb56b95be836bc00d60c5',1,'attribute_create(const char *name, AttributeType type, void *value): attribute.c'],['../attribute_8h.html#a90566af01d8bb56b95be836bc00d60c5',1,'attribute_create(const char *name, AttributeType type, void *value): attribute.c']]], + ['attribute_5fdestroy_10',['attribute_destroy',['../attribute_8c.html#a6124728ac9f45169d48d4ad0a2734e8e',1,'attribute_destroy(Attribute *attr): attribute.c'],['../attribute_8h.html#a6124728ac9f45169d48d4ad0a2734e8e',1,'attribute_destroy(Attribute *attr): attribute.c']]], + ['attribute_5fprint_11',['attribute_print',['../attribute_8c.html#abf605ec06c2893a3ec8069359146a2fd',1,'attribute_print(const Attribute *attr): attribute.c'],['../attribute_8h.html#abf605ec06c2893a3ec8069359146a2fd',1,'attribute_print(const Attribute *attr): attribute.c']]], + ['attributetype_12',['AttributeType',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2',1,'attribute.h']]] +]; diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 0000000..472dbc4 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['cmp_0',['cmp',['../structSet.html#a39ade50c69068171b307b049a247cab3',1,'Set']]], + ['contributing_1',['Contributing',['../index.html#contributing',1,'']]] +]; diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 0000000..f67b0e9 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['data_0',['data',['../structSetNode.html#a2c57957e74dbca54f44c8576c093ec2a',1,'SetNode']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000..681cd4a --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['engine_0',['Relational Algebra Engine',['../index.html',1,'']]] +]; diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 0000000..6149b68 --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['findattributecontext_0',['FindAttributeContext',['../structFindAttributeContext.html',1,'']]], + ['findtuplecontext_1',['FindTupleContext',['../structFindTupleContext.html',1,'']]], + ['found_2',['found',['../structFindTupleContext.html#a3fe7ee615330fbd6f1a7c362575a1193',1,'FindTupleContext::found'],['../structFindAttributeContext.html#aeadd5aa34e3d1403cbd5a17e808c2eb6',1,'FindAttributeContext::found']]], + ['freer_3',['freer',['../structSet.html#a35539f1fb4dacf88ced13489cd008621',1,'Set']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000..435f881 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['head_0',['head',['../structSet.html#ade085a59e756c98bc65e9a9bce7cbb1f',1,'Set']]] +]; diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000..ad34512 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['license_0',['License',['../index.html#license',1,'']]] +]; diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000..fd55179 --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['main_0',['main',['../main_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main.c']]], + ['main_2ec_1',['main.c',['../main_8c.html',1,'']]], + ['mainpage_2eh_2',['mainpage.h',['../mainpage_8h.html',1,'']]], + ['matched_3',['matched',['../structTupleEqualsContext.html#aa60b00cd04a44487de2b8f3fd526a5ea',1,'TupleEqualsContext']]] +]; diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 0000000..f52c738 --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['name_0',['name',['../structFindAttributeContext.html#a4d94ba8688cdd6f0560714e2b0accdad',1,'FindAttributeContext::name'],['../structAttribute.html#af3a246341507fd824515d868e00f1b0c',1,'Attribute::name'],['../structRelation.html#a62028d05b5ebcd1390d261101152aeed',1,'Relation::name']]], + ['next_1',['next',['../structSetNode.html#ac51725d344ad4629e000390b99a2e4e5',1,'SetNode']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000..1f347ec --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['other_0',['other',['../structTupleEqualsContext.html#a578df75a6e7cf671d1ec7f37a6b790b5',1,'TupleEqualsContext']]] +]; diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 0000000..c193766 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['project_20structure_0',['Project Structure',['../index.html#structure',1,'']]] +]; diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 0000000..ff267b8 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['relation_0',['Relation',['../structRelation.html',1,'']]], + ['relation_2ec_1',['relation.c',['../relation_8c.html',1,'']]], + ['relation_2eh_2',['relation.h',['../relation_8h.html',1,'']]], + ['relation_5fadd_5ftuple_3',['relation_add_tuple',['../relation_8c.html#a718a2758d8ded2bd459f4b49e6ba5247',1,'relation_add_tuple(Relation *r, Tuple *t): relation.c'],['../relation_8h.html#a718a2758d8ded2bd459f4b49e6ba5247',1,'relation_add_tuple(Relation *r, Tuple *t): relation.c']]], + ['relation_5fcreate_4',['relation_create',['../relation_8c.html#a5ae6c335d05a38f5abf0810dd6fa2990',1,'relation_create(const char *name): relation.c'],['../relation_8h.html#a5ae6c335d05a38f5abf0810dd6fa2990',1,'relation_create(const char *name): relation.c']]], + ['relation_5fdestroy_5',['relation_destroy',['../relation_8c.html#a567fe5c42e7a418c9b2d25f543d055ab',1,'relation_destroy(Relation *r): relation.c'],['../relation_8h.html#a567fe5c42e7a418c9b2d25f543d055ab',1,'relation_destroy(Relation *r): relation.c']]], + ['relation_5ffind_5ftuple_6',['relation_find_tuple',['../relation_8c.html#a4d2b75c6c804dc9df58c95f167b17cfe',1,'relation_find_tuple(Relation *r, Tuple *target): relation.c'],['../relation_8h.html#a199adac14c45258decea3c585a1bdff2',1,'relation_find_tuple(Relation *r, Tuple *t): relation.c']]], + ['relation_5fprint_7',['relation_print',['../relation_8c.html#a7662cf41d30fcc49e9acf625ae389898',1,'relation_print(const Relation *r): relation.c'],['../relation_8h.html#a7662cf41d30fcc49e9acf625ae389898',1,'relation_print(const Relation *r): relation.c']]], + ['relational_20algebra_20engine_8',['Relational Algebra Engine',['../index.html',1,'']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000..9f48c93 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['set_0',['set',['../structSet.html',1,'Set'],['../set_8h.html#ae18711cd0f4e4e8356608ed79326276b',1,'Set: set.h']]], + ['set_2ec_1',['set.c',['../set_8c.html',1,'']]], + ['set_2eh_2',['set.h',['../set_8h.html',1,'']]], + ['set_5fadd_3',['set_add',['../set_8c.html#a6d3c6162152fb63fc571c269ff42932e',1,'set_add(Set *set, void *elem): set.c'],['../set_8h.html#a6d3c6162152fb63fc571c269ff42932e',1,'set_add(Set *set, void *elem): set.c']]], + ['set_5fcontains_4',['set_contains',['../set_8c.html#a1f829089f94f01c84a55010ad1e6ca77',1,'set_contains(const Set *set, const void *elem): set.c'],['../set_8h.html#a1f829089f94f01c84a55010ad1e6ca77',1,'set_contains(const Set *set, const void *elem): set.c']]], + ['set_5fcreate_5',['set_create',['../set_8h.html#a5b646b26d147dfeeeea8e757a8096a8c',1,'set_create(SetCompareFn cmp, SetFreeFn freer): set.c'],['../set_8c.html#a5b646b26d147dfeeeea8e757a8096a8c',1,'set_create(SetCompareFn cmp, SetFreeFn freer): set.c']]], + ['set_5fdestroy_6',['set_destroy',['../set_8c.html#a9d762a027f1c3bcdd22f70ee9093a7dd',1,'set_destroy(Set *set): set.c'],['../set_8h.html#a9d762a027f1c3bcdd22f70ee9093a7dd',1,'set_destroy(Set *set): set.c']]], + ['set_5fforeach_7',['set_foreach',['../set_8c.html#add1f5ca395dd043e9bf77e58d4ba7d96',1,'set_foreach(const Set *set, SetIterFn fn, void *userdata): set.c'],['../set_8h.html#add1f5ca395dd043e9bf77e58d4ba7d96',1,'set_foreach(const Set *set, SetIterFn fn, void *userdata): set.c']]], + ['set_5fremove_8',['set_remove',['../set_8c.html#a810577df03b3c0d077c2e9c90fef6648',1,'set_remove(Set *set, const void *elem): set.c'],['../set_8h.html#a810577df03b3c0d077c2e9c90fef6648',1,'set_remove(Set *set, const void *elem): set.c']]], + ['set_5fsize_9',['set_size',['../set_8c.html#a3337392b0e2da0fbacb5cbd04bff7ff3',1,'set_size(const Set *set): set.c'],['../set_8h.html#a3337392b0e2da0fbacb5cbd04bff7ff3',1,'set_size(const Set *set): set.c']]], + ['setcomparefn_10',['SetCompareFn',['../set_8h.html#a06af63e60b3ef1e2879ce1896685b599',1,'set.h']]], + ['setfreefn_11',['SetFreeFn',['../set_8h.html#ae58aa89dcaed24a2807b4b67ff8f9cf6',1,'set.h']]], + ['setiterfn_12',['SetIterFn',['../set_8h.html#a370a2d3c5b99f48b2b5c2354b419ee2e',1,'set.h']]], + ['setnode_13',['setnode',['../set_8c.html#af51dc1642db17f15aec9837f783b577d',1,'SetNode: set.c'],['../structSetNode.html',1,'SetNode']]], + ['size_14',['size',['../structSet.html#a7fb84713e171a21a8160a4e375dd6653',1,'Set']]], + ['structure_15',['Project Structure',['../index.html#structure',1,'']]] +]; diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 0000000..6271272 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['target_0',['target',['../structFindTupleContext.html#ab2817d678ff12320e8c53b832cf24eb8',1,'FindTupleContext']]], + ['tuple_1',['Tuple',['../tuple_8h.html#a1dc581c6ec65e7a8712da56fb3a6d2ef',1,'tuple.h']]], + ['tuple_2ec_2',['tuple.c',['../tuple_8c.html',1,'']]], + ['tuple_2eh_3',['tuple.h',['../tuple_8h.html',1,'']]], + ['tuple_5fadd_5fattribute_4',['tuple_add_attribute',['../tuple_8h.html#a63de66548cc83afcefc268f4019d2daf',1,'tuple_add_attribute(Tuple *t, Attribute *attr): tuple.c'],['../tuple_8c.html#a63de66548cc83afcefc268f4019d2daf',1,'tuple_add_attribute(Tuple *t, Attribute *attr): tuple.c']]], + ['tuple_5fcreate_5',['tuple_create',['../tuple_8c.html#a639960fa1a575569355816fadd7437ee',1,'tuple_create(void): tuple.c'],['../tuple_8h.html#a639960fa1a575569355816fadd7437ee',1,'tuple_create(void): tuple.c']]], + ['tuple_5fdestroy_6',['tuple_destroy',['../tuple_8c.html#aeefa14da7fb7b4b40b8da4e1b536323e',1,'tuple_destroy(Tuple *t): tuple.c'],['../tuple_8h.html#aeefa14da7fb7b4b40b8da4e1b536323e',1,'tuple_destroy(Tuple *t): tuple.c']]], + ['tuple_5fequals_7',['tuple_equals',['../tuple_8c.html#a910c6d60f4130fc156f2c7d11c187be9',1,'tuple_equals(Tuple *a, Tuple *b): tuple.c'],['../tuple_8h.html#a910c6d60f4130fc156f2c7d11c187be9',1,'tuple_equals(Tuple *a, Tuple *b): tuple.c']]], + ['tuple_5ffind_5fattribute_8',['tuple_find_attribute',['../tuple_8c.html#abe09a57dbc3e53a9c75e7dfcd105e20a',1,'tuple_find_attribute(Tuple *t, const char *name): tuple.c'],['../tuple_8h.html#abe09a57dbc3e53a9c75e7dfcd105e20a',1,'tuple_find_attribute(Tuple *t, const char *name): tuple.c']]], + ['tuple_5fprint_9',['tuple_print',['../tuple_8c.html#a41061ae6a531d605c2bb4ea089edc674',1,'tuple_print(const Tuple *t): tuple.c'],['../tuple_8h.html#a41061ae6a531d605c2bb4ea089edc674',1,'tuple_print(const Tuple *t): tuple.c']]], + ['tupleequalscontext_10',['TupleEqualsContext',['../structTupleEqualsContext.html',1,'']]], + ['tuples_11',['tuples',['../structRelation.html#a4391a8b49141763a6be06860f0a9054b',1,'Relation']]], + ['type_12',['type',['../structAttribute.html#a0a15896484e2739d994af1db21c75127',1,'Attribute']]] +]; diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 0000000..ebcade8 --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['usage_0',['Usage',['../index.html#usage',1,'']]] +]; diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 0000000..45a8b42 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['value_0',['value',['../structAttribute.html#ab26947dfe88e9652b002a19c891d8082',1,'Attribute']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000..f8df33b --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['attribute_0',['Attribute',['../structAttribute.html',1,'']]] +]; diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 0000000..8a6fb8f --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['findattributecontext_0',['FindAttributeContext',['../structFindAttributeContext.html',1,'']]], + ['findtuplecontext_1',['FindTupleContext',['../structFindTupleContext.html',1,'']]] +]; diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 0000000..9c1f195 --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['relation_0',['Relation',['../structRelation.html',1,'']]] +]; diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 0000000..b4e26c9 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['set_0',['Set',['../structSet.html',1,'']]], + ['setnode_1',['SetNode',['../structSetNode.html',1,'']]] +]; diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 0000000..8349241 --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tupleequalscontext_0',['TupleEqualsContext',['../structTupleEqualsContext.html',1,'']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 0000000..337d6cc --- /dev/null +++ b/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 0000000..dd79074 --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['attributetype_0',['AttributeType',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2',1,'attribute.h']]] +]; diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 0000000..04f8006 --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['attr_5fdouble_0',['ATTR_DOUBLE',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a0720d64774dfe00e8064434a7d55a11b',1,'attribute.h']]], + ['attr_5fint_1',['ATTR_INT',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2acfce9fbc6c39c85087edb6a9bc727dcf',1,'attribute.h']]], + ['attr_5fset_2',['ATTR_SET',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a37475bd076e2882ca74017610d6c13d1',1,'attribute.h']]], + ['attr_5fstring_3',['ATTR_STRING',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2aa041276c55aea740bc728c3a2ea1cc8f',1,'attribute.h']]], + ['attr_5funknown_4',['ATTR_UNKNOWN',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a3b3cacd0afda8882a34d8eef5a2c5ca6',1,'attribute.h']]] +]; diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 0000000..0b4af1f --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['attribute_2ec_0',['attribute.c',['../attribute_8c.html',1,'']]], + ['attribute_2eh_1',['attribute.h',['../attribute_8h.html',1,'']]] +]; diff --git a/search/files_1.js b/search/files_1.js new file mode 100644 index 0000000..81464fc --- /dev/null +++ b/search/files_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['main_2ec_0',['main.c',['../main_8c.html',1,'']]], + ['mainpage_2eh_1',['mainpage.h',['../mainpage_8h.html',1,'']]] +]; diff --git a/search/files_2.js b/search/files_2.js new file mode 100644 index 0000000..5b37af5 --- /dev/null +++ b/search/files_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['relation_2ec_0',['relation.c',['../relation_8c.html',1,'']]], + ['relation_2eh_1',['relation.h',['../relation_8h.html',1,'']]] +]; diff --git a/search/files_3.js b/search/files_3.js new file mode 100644 index 0000000..d276a51 --- /dev/null +++ b/search/files_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['set_2ec_0',['set.c',['../set_8c.html',1,'']]], + ['set_2eh_1',['set.h',['../set_8h.html',1,'']]] +]; diff --git a/search/files_4.js b/search/files_4.js new file mode 100644 index 0000000..b0c911f --- /dev/null +++ b/search/files_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['tuple_2ec_0',['tuple.c',['../tuple_8c.html',1,'']]], + ['tuple_2eh_1',['tuple.h',['../tuple_8h.html',1,'']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 0000000..1b0b51e --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['attribute_5fcreate_0',['attribute_create',['../attribute_8c.html#a90566af01d8bb56b95be836bc00d60c5',1,'attribute_create(const char *name, AttributeType type, void *value): attribute.c'],['../attribute_8h.html#a90566af01d8bb56b95be836bc00d60c5',1,'attribute_create(const char *name, AttributeType type, void *value): attribute.c']]], + ['attribute_5fdestroy_1',['attribute_destroy',['../attribute_8c.html#a6124728ac9f45169d48d4ad0a2734e8e',1,'attribute_destroy(Attribute *attr): attribute.c'],['../attribute_8h.html#a6124728ac9f45169d48d4ad0a2734e8e',1,'attribute_destroy(Attribute *attr): attribute.c']]], + ['attribute_5fprint_2',['attribute_print',['../attribute_8c.html#abf605ec06c2893a3ec8069359146a2fd',1,'attribute_print(const Attribute *attr): attribute.c'],['../attribute_8h.html#abf605ec06c2893a3ec8069359146a2fd',1,'attribute_print(const Attribute *attr): attribute.c']]] +]; diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000..a669209 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main_0',['main',['../main_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main.c']]] +]; diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000..add1855 --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['relation_5fadd_5ftuple_0',['relation_add_tuple',['../relation_8c.html#a718a2758d8ded2bd459f4b49e6ba5247',1,'relation_add_tuple(Relation *r, Tuple *t): relation.c'],['../relation_8h.html#a718a2758d8ded2bd459f4b49e6ba5247',1,'relation_add_tuple(Relation *r, Tuple *t): relation.c']]], + ['relation_5fcreate_1',['relation_create',['../relation_8c.html#a5ae6c335d05a38f5abf0810dd6fa2990',1,'relation_create(const char *name): relation.c'],['../relation_8h.html#a5ae6c335d05a38f5abf0810dd6fa2990',1,'relation_create(const char *name): relation.c']]], + ['relation_5fdestroy_2',['relation_destroy',['../relation_8c.html#a567fe5c42e7a418c9b2d25f543d055ab',1,'relation_destroy(Relation *r): relation.c'],['../relation_8h.html#a567fe5c42e7a418c9b2d25f543d055ab',1,'relation_destroy(Relation *r): relation.c']]], + ['relation_5ffind_5ftuple_3',['relation_find_tuple',['../relation_8c.html#a4d2b75c6c804dc9df58c95f167b17cfe',1,'relation_find_tuple(Relation *r, Tuple *target): relation.c'],['../relation_8h.html#a199adac14c45258decea3c585a1bdff2',1,'relation_find_tuple(Relation *r, Tuple *t): relation.c']]], + ['relation_5fprint_4',['relation_print',['../relation_8c.html#a7662cf41d30fcc49e9acf625ae389898',1,'relation_print(const Relation *r): relation.c'],['../relation_8h.html#a7662cf41d30fcc49e9acf625ae389898',1,'relation_print(const Relation *r): relation.c']]] +]; diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000..8dfd816 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['set_5fadd_0',['set_add',['../set_8c.html#a6d3c6162152fb63fc571c269ff42932e',1,'set_add(Set *set, void *elem): set.c'],['../set_8h.html#a6d3c6162152fb63fc571c269ff42932e',1,'set_add(Set *set, void *elem): set.c']]], + ['set_5fcontains_1',['set_contains',['../set_8c.html#a1f829089f94f01c84a55010ad1e6ca77',1,'set_contains(const Set *set, const void *elem): set.c'],['../set_8h.html#a1f829089f94f01c84a55010ad1e6ca77',1,'set_contains(const Set *set, const void *elem): set.c']]], + ['set_5fcreate_2',['set_create',['../set_8c.html#a5b646b26d147dfeeeea8e757a8096a8c',1,'set_create(SetCompareFn cmp, SetFreeFn freer): set.c'],['../set_8h.html#a5b646b26d147dfeeeea8e757a8096a8c',1,'set_create(SetCompareFn cmp, SetFreeFn freer): set.c']]], + ['set_5fdestroy_3',['set_destroy',['../set_8c.html#a9d762a027f1c3bcdd22f70ee9093a7dd',1,'set_destroy(Set *set): set.c'],['../set_8h.html#a9d762a027f1c3bcdd22f70ee9093a7dd',1,'set_destroy(Set *set): set.c']]], + ['set_5fforeach_4',['set_foreach',['../set_8c.html#add1f5ca395dd043e9bf77e58d4ba7d96',1,'set_foreach(const Set *set, SetIterFn fn, void *userdata): set.c'],['../set_8h.html#add1f5ca395dd043e9bf77e58d4ba7d96',1,'set_foreach(const Set *set, SetIterFn fn, void *userdata): set.c']]], + ['set_5fremove_5',['set_remove',['../set_8c.html#a810577df03b3c0d077c2e9c90fef6648',1,'set_remove(Set *set, const void *elem): set.c'],['../set_8h.html#a810577df03b3c0d077c2e9c90fef6648',1,'set_remove(Set *set, const void *elem): set.c']]], + ['set_5fsize_6',['set_size',['../set_8c.html#a3337392b0e2da0fbacb5cbd04bff7ff3',1,'set_size(const Set *set): set.c'],['../set_8h.html#a3337392b0e2da0fbacb5cbd04bff7ff3',1,'set_size(const Set *set): set.c']]] +]; diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 0000000..73c83fc --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['tuple_5fadd_5fattribute_0',['tuple_add_attribute',['../tuple_8c.html#a63de66548cc83afcefc268f4019d2daf',1,'tuple_add_attribute(Tuple *t, Attribute *attr): tuple.c'],['../tuple_8h.html#a63de66548cc83afcefc268f4019d2daf',1,'tuple_add_attribute(Tuple *t, Attribute *attr): tuple.c']]], + ['tuple_5fcreate_1',['tuple_create',['../tuple_8c.html#a639960fa1a575569355816fadd7437ee',1,'tuple_create(void): tuple.c'],['../tuple_8h.html#a639960fa1a575569355816fadd7437ee',1,'tuple_create(void): tuple.c']]], + ['tuple_5fdestroy_2',['tuple_destroy',['../tuple_8c.html#aeefa14da7fb7b4b40b8da4e1b536323e',1,'tuple_destroy(Tuple *t): tuple.c'],['../tuple_8h.html#aeefa14da7fb7b4b40b8da4e1b536323e',1,'tuple_destroy(Tuple *t): tuple.c']]], + ['tuple_5fequals_3',['tuple_equals',['../tuple_8c.html#a910c6d60f4130fc156f2c7d11c187be9',1,'tuple_equals(Tuple *a, Tuple *b): tuple.c'],['../tuple_8h.html#a910c6d60f4130fc156f2c7d11c187be9',1,'tuple_equals(Tuple *a, Tuple *b): tuple.c']]], + ['tuple_5ffind_5fattribute_4',['tuple_find_attribute',['../tuple_8c.html#abe09a57dbc3e53a9c75e7dfcd105e20a',1,'tuple_find_attribute(Tuple *t, const char *name): tuple.c'],['../tuple_8h.html#abe09a57dbc3e53a9c75e7dfcd105e20a',1,'tuple_find_attribute(Tuple *t, const char *name): tuple.c']]], + ['tuple_5fprint_5',['tuple_print',['../tuple_8c.html#a41061ae6a531d605c2bb4ea089edc674',1,'tuple_print(const Tuple *t): tuple.c'],['../tuple_8h.html#a41061ae6a531d605c2bb4ea089edc674',1,'tuple_print(const Tuple *t): tuple.c']]] +]; diff --git a/search/mag.svg b/search/mag.svg new file mode 100644 index 0000000..ffb6cf0 --- /dev/null +++ b/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_d.svg b/search/mag_d.svg new file mode 100644 index 0000000..4122773 --- /dev/null +++ b/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 0000000..553dba8 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/mag_seld.svg b/search/mag_seld.svg new file mode 100644 index 0000000..c906f84 --- /dev/null +++ b/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 0000000..84ede7f --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['algebra_20engine_0',['Relational Algebra Engine',['../index.html',1,'']]] +]; diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 0000000..681cd4a --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['engine_0',['Relational Algebra Engine',['../index.html',1,'']]] +]; diff --git a/search/pages_2.js b/search/pages_2.js new file mode 100644 index 0000000..625ba45 --- /dev/null +++ b/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['relational_20algebra_20engine_0',['Relational Algebra Engine',['../index.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 0000000..19f76f9 --- /dev/null +++ b/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 0000000..6fd40c6 --- /dev/null +++ b/search/search.js @@ -0,0 +1,840 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e