Changeset 2098
- Timestamp:
- 03/25/08 23:37:04 (2 months ago)
- Files:
-
- libswish3/trunk/src/example/swish.xml (modified) (1 diff)
- libswish3/trunk/src/libswish3/config.c (modified) (3 diffs)
- libswish3/trunk/src/libswish3/docinfo.c (modified) (7 diffs)
- libswish3/trunk/src/libswish3/hash.c (modified) (1 diff)
- libswish3/trunk/src/libswish3/header.c (modified) (5 diffs)
- libswish3/trunk/src/libswish3/io.c (modified) (7 diffs)
- libswish3/trunk/src/libswish3/parser.c (modified) (27 diffs)
- libswish3/trunk/src/libswish3/words.c (modified) (1 diff)
- libswish3/trunk/src/swish_lint.c (modified) (2 diffs)
- libswish3/trunk/src/test.pl (modified) (2 diffs)
- libswish3/trunk/src/test_stdin/doc.xml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
libswish3/trunk/src/example/swish.xml
r2097 r2098 8 8 <title bias="+50" alias_for="swishtitle" /> 9 9 <other>color size weight</other> 10 <MixEDcASE>UPPERCASE</MixEDcASE> 10 11 </MetaNames> 11 12 libswish3/trunk/src/libswish3/config.c
r2097 r2098 36 36 extern int SWISH_DEBUG; 37 37 38 39 static void config_printer(xmlChar * val, xmlChar * str, xmlChar * key); 40 static void free_string(xmlChar *payload, xmlChar *key); 41 static void free_props(swish_Property *prop, xmlChar *propname); 42 static void free_metas(swish_MetaName *meta, xmlChar *metaname); 38 void 39 swish_free_config(swish_Config * config); 40 swish_Config * 41 swish_init_config(); 42 void 43 swish_config_set_default( swish_Config *config ); 44 swish_Config * 45 swish_add_config(xmlChar *conf, swish_Config *config); 46 swish_Config * 47 swish_parse_config(xmlChar *conf, swish_Config *config); 48 void 49 swish_debug_config(swish_Config * config); 50 void 51 swish_config_merge(swish_Config *config1, swish_Config *config2); 52 static void 53 free_string(xmlChar *payload, xmlChar * key); 54 static void 55 free_props(swish_Property *prop, xmlChar *propname); 56 static void 57 free_metas(swish_MetaName *meta, xmlChar *metaname); 58 static void 59 config_printer(xmlChar *val, xmlChar *str, xmlChar *key); 60 static void 61 property_printer(swish_Property *prop, xmlChar *str, xmlChar *propname); 62 static void 63 metaname_printer(swish_MetaName *meta, xmlChar *str, xmlChar *metaname); 64 static void 65 copy_property( 66 swish_Property *prop2, 67 xmlHashTablePtr props1, 68 xmlChar *prop2name 69 ); 70 static void 71 merge_properties(xmlHashTablePtr props1, xmlHashTablePtr props2); 72 static void 73 copy_metaname( 74 swish_MetaName *meta2, 75 xmlHashTablePtr metas1, 76 xmlChar *meta2name 77 ); 78 static void 79 merge_metanames(xmlHashTablePtr metas1, xmlHashTablePtr metas2); 43 80 44 81 static void … … 80 117 swish_free_config(swish_Config * config) 81 118 { 82 if (SWISH_DEBUG & SWISH_DEBUG_ CONFIG)119 if (SWISH_DEBUG & SWISH_DEBUG_MEMORY) 83 120 { 84 121 SWISH_DEBUG_MSG("freeing config"); … … 114 151 { 115 152 swish_Config *config; 153 154 if (SWISH_DEBUG & SWISH_DEBUG_MEMORY) { 155 SWISH_DEBUG_MSG("init config"); 156 } 116 157 117 158 /* the hashes will automatically grow as needed so we init with sane starting size */ libswish3/trunk/src/libswish3/docinfo.c
r2030 r2098 67 67 swish_free_docinfo( swish_DocInfo * ptr ) 68 68 { 69 if (SWISH_DEBUG > 9)69 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 70 70 SWISH_DEBUG_MSG("freeing swish_DocInfo"); 71 71 72 if (SWISH_DEBUG > 9)72 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 73 73 swish_debug_docinfo( ptr ); 74 74 … … 83 83 84 84 /* encoding and mime are malloced via xmlstrdup elsewhere */ 85 if (SWISH_DEBUG > 9)85 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 86 86 SWISH_DEBUG_MSG("freeing docinfo->encoding"); 87 87 swish_xfree(ptr->encoding); 88 if (SWISH_DEBUG > 9) 88 89 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 89 90 SWISH_DEBUG_MSG("freeing docinfo->mime"); 90 swish_xfree(ptr->mime); 91 if (SWISH_DEBUG > 9) 91 if (ptr->mime != NULL) 92 swish_xfree(ptr->mime); 93 94 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 92 95 SWISH_DEBUG_MSG("freeing docinfo->uri"); 93 swish_xfree(ptr->uri); 94 if (SWISH_DEBUG > 9) 96 if (ptr->uri != NULL) 97 swish_xfree(ptr->uri); 98 99 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 95 100 SWISH_DEBUG_MSG("freeing docinfo->ext"); 96 swish_xfree(ptr->ext); 97 if (SWISH_DEBUG > 9) 101 if (ptr->ext != NULL) 102 swish_xfree(ptr->ext); 103 104 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 98 105 SWISH_DEBUG_MSG("freeing docinfo->parser"); 99 swish_xfree(ptr->parser); 100 if (SWISH_DEBUG > 9) 106 if (ptr->parser != NULL) 107 swish_xfree(ptr->parser); 108 109 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 101 110 SWISH_DEBUG_MSG("freeing docinfo ptr"); 102 111 swish_xfree(ptr); 103 112 104 if (SWISH_DEBUG > 9)105 SWISH_DEBUG_MSG(" docinfo ptr isall freed");113 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 114 SWISH_DEBUG_MSG("swish_DocInfo all freed"); 106 115 } 107 116 … … 114 123 ok = 1; 115 124 116 if (SWISH_DEBUG > 3)125 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 117 126 swish_debug_docinfo(docinfo); 118 127 … … 143 152 144 153 if (!docinfo->mime) { 145 if (SWISH_DEBUG > 5)154 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 146 155 SWISH_DEBUG_MSG( "no MIME known. guessing based on uri extension '%s'", docinfo->ext); 147 156 docinfo->mime = swish_get_mime_type( config, docinfo->ext ); … … 149 158 else 150 159 { 151 if ( SWISH_DEBUG > 9)160 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 152 161 SWISH_DEBUG_MSG( "found MIME type in headers: '%s'", docinfo->mime); 153 162 … … 155 164 156 165 if (!docinfo->parser) { 157 if (SWISH_DEBUG > 5)166 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 158 167 SWISH_DEBUG_MSG( "no parser defined in headers -- deducing from content type '%s'", docinfo->mime); 159 168 … … 162 171 else 163 172 { 164 if (SWISH_DEBUG > 5)173 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 165 174 SWISH_DEBUG_MSG( "found parser in headers: '%s'", docinfo->parser); 166 175 167 176 } 168 177 169 if (SWISH_DEBUG > 9)178 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 170 179 swish_debug_docinfo(docinfo); 171 180 libswish3/trunk/src/libswish3/hash.c
r2097 r2098 26 26 27 27 extern int SWISH_DEBUG; 28 29 int swish_hash_add( xmlHashTablePtr hash, xmlChar *key, void * value ); 30 int 31 swish_hash_replace( xmlHashTablePtr hash, xmlChar *key, void *value ); 32 int 33 swish_hash_delete( xmlHashTablePtr hash, xmlChar *key ); 34 boolean 35 swish_hash_exists( xmlHashTablePtr hash, xmlChar *key ); 36 void * 37 swish_hash_fetch( xmlHashTablePtr hash, xmlChar *key ); 38 xmlHashTablePtr 39 swish_init_hash(int size); 40 void 41 swish_hash_merge( xmlHashTablePtr hash1, xmlHashTablePtr hash2 ); 42 static void free_hashval( void *val, xmlChar *key ); 43 static void 44 merge_hashes( xmlChar *value, xmlHashTablePtr hash1, xmlChar *key ); 45 28 46 29 47 static void free_hashval( void *val, xmlChar *key ) libswish3/trunk/src/libswish3/header.c
r2097 r2098 48 48 } things; 49 49 50 boolean51 swish_validate_header(char *filename);52 boolean53 swish_merge_config_with_header(char *filename, swish_Config *c);54 swish_Config *55 swish_read_header(char *filename);56 void57 swish_write_header(char* uri, swish_Config* config);58 50 static void 59 51 read_metaname_aliases( … … 89 81 process_node(xmlTextReaderPtr reader, headmaker *h); 90 82 static void 83 read_key_values_pair(xmlTextReaderPtr reader, xmlHashTablePtr hash, xmlChar* name); 84 static void 85 read_key_value_pair(xmlTextReaderPtr reader, xmlHashTablePtr hash, xmlChar* name); 86 static void 91 87 read_header(char *filename, headmaker *h); 92 88 static void 93 read_key_value_pair(xmlTextReaderPtr reader, xmlHashTablePtr hash, xmlChar* name);94 static void 95 read_key_values_pair(xmlTextReaderPtr reader, xmlHashTablePtr hash, xmlChar* name);89 test_meta_alias_for(swish_MetaName* meta, swish_Config* c, xmlChar* name); 90 static void 91 test_prop_alias_for(swish_Property* prop, swish_Config* c, xmlChar* name); 96 92 static headmaker * 97 93 init_headmaker(); … … 103 99 write_element_with_content(xmlTextWriterPtr writer, xmlChar* tag, xmlChar* content); 104 100 static void 101 write_metaname(swish_MetaName* meta, xmlTextWriterPtr writer, xmlChar* name); 102 static void 105 103 write_metanames(xmlTextWriterPtr writer, xmlHashTablePtr metanames); 106 104 static void 107 105 write_hash_entry(xmlChar* value, xmlTextWriterPtr writer, xmlChar* key); 108 106 static void 107 write_property(swish_Property* prop, xmlTextWriterPtr writer, xmlChar* name); 108 static void 109 109 write_properties(xmlTextWriterPtr writer, xmlHashTablePtr properties); 110 110 static void 111 write_parser(xmlChar* val, xmlTextWriterPtr writer, xmlChar* key); 112 static void 111 113 write_parsers(xmlTextWriterPtr writer, xmlHashTablePtr parsers); 114 static void 115 write_mime(xmlChar* type, things* things, xmlChar* ext); 112 116 static void 113 117 write_mimes(xmlTextWriterPtr writer, xmlHashTablePtr mimes); … … 150 154 newmeta->ref_cnt++; 151 155 newmeta->id = h->meta_id++; 156 newmeta->bias = meta->bias; 152 157 swish_hash_add( h->config->metanames, newmeta->name, newmeta ); 153 158 } … … 278 283 newprop->alias_for = swish_xstrdup( prop->name ); 279 284 newprop->id = h->prop_id++; 285 newprop->ignore_case = prop->ignore_case; 286 newprop->type = prop->type; 287 newprop->verbatim = prop->verbatim; 288 newprop->max = prop->max; 289 newprop->sort = prop->sort; 280 290 swish_hash_add( h->config->properties, newprop->name, newprop ); 281 291 //swish_debug_property(newprop); libswish3/trunk/src/libswish3/io.c
r1952 r2098 24 24 #include <err.h> 25 25 #include <string.h> 26 #include <libxml/globals.h>27 26 28 27 #include "libswish3.h" … … 30 29 extern int SWISH_DEBUG; 31 30 extern int errno; 31 32 static void 33 no_nulls( 34 xmlChar * filename, 35 xmlChar * buffer, 36 int bytes_read 37 ); 32 38 33 39 … … 63 69 } 64 70 65 if (j) 71 if (j) { 66 72 SWISH_WARN( 67 "Substituted %d embedded null or connector character(s) in file '%s' with newline(s) \n",73 "Substituted %d embedded null or connector character(s) in file '%s' with newline(s)", 68 74 j, filename); 75 } 69 76 } 70 77 … … 88 95 if (bytes_read != flen) 89 96 { 90 SWISH_CROAK("did not read expected bytes: %ld expected, %d read \n", flen, bytes_read);97 SWISH_CROAK("did not read expected bytes: %ld expected, %d read", flen, bytes_read); 91 98 } 92 99 buffer[bytes_read] = '\0'; /* terminate the string */ … … 120 127 if ((fp = fopen((char *) filename, "r")) == 0) 121 128 { 122 SWISH_CROAK("Error reading file %s: %s \n",129 SWISH_CROAK("Error reading file %s: %s", 123 130 filename, strerror(errno)); 124 131 } … … 128 135 if (bytes_read != flen) 129 136 { 130 SWISH_CROAK("did not read expected bytes: %ld expected, %d read (%s) \n",137 SWISH_CROAK("did not read expected bytes: %ld expected, %d read (%s)", 131 138 flen, bytes_read, strerror(errno)); 132 139 } … … 135 142 /* close the stream */ 136 143 if (fclose(fp)) 137 SWISH_CROAK("error closing filehandle for %s: %s \n",144 SWISH_CROAK("error closing filehandle for %s: %s", 138 145 filename, strerror(errno)); 139 146 libswish3/trunk/src/libswish3/parser.c
r2096 r2098 820 820 while (pop_tag_stack(ptr->metastack)) 821 821 { 822 if (SWISH_DEBUG > 9) 823 SWISH_DEBUG_MSG("head of stack is %d %s", ptr->metastack->count, ptr->metastack->head->name); 824 825 } 826 827 if (SWISH_DEBUG > 9) 822 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 823 SWISH_DEBUG_MSG("head of stack is %d %s", 824 ptr->metastack->count, ptr->metastack->head->name); 825 826 } 827 828 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 828 829 SWISH_DEBUG_MSG("freeing swish_ParserData metastack"); 829 830 … … 832 833 while (pop_tag_stack(ptr->propstack)) 833 834 { 834 if (SWISH_DEBUG > 9) 835 SWISH_DEBUG_MSG("head of stack is %d %s", ptr->propstack->count, ptr->propstack->head->name); 836 837 } 838 839 if (SWISH_DEBUG > 9) 835 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 836 SWISH_DEBUG_MSG("head of stack is %d %s", 837 ptr->propstack->count, ptr->propstack->head->name); 838 839 } 840 841 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 840 842 SWISH_DEBUG_MSG("freeing swish_ParserData propstack"); 841 843 … … 843 845 844 846 845 if (SWISH_DEBUG > 9)847 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 846 848 SWISH_DEBUG_MSG("freeing swish_ParserData properties"); 847 849 … … 849 851 swish_free_nb(ptr->properties); 850 852 851 if (SWISH_DEBUG > 9)853 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 852 854 SWISH_DEBUG_MSG("freeing swish_ParserData metanames"); 853 855 … … 856 858 857 859 858 if (SWISH_DEBUG > 9)860 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 859 861 SWISH_DEBUG_MSG("freeing swish_ParserData xmlBuffer"); 860 862 … … 862 864 863 865 864 if (SWISH_DEBUG > 9)866 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 865 867 SWISH_DEBUG_MSG("freeing swish_ParserData prop xmlBuffer"); 866 868 … … 868 870 869 871 870 if (SWISH_DEBUG > 9)872 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 871 873 SWISH_DEBUG_MSG("freeing swish_ParserData tag"); 872 874 … … 878 880 { 879 881 880 if (SWISH_DEBUG > 9)882 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 881 883 SWISH_DEBUG_MSG("freeing swish_ParserData libxml2 parser ctxt"); 882 884 … … 889 891 else 890 892 { 891 if (SWISH_DEBUG > 9)893 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 892 894 SWISH_DEBUG_MSG("swish_ParserData libxml2 parser ctxt already freed"); 893 895 … … 897 899 { 898 900 899 if (SWISH_DEBUG > 9)901 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 900 902 SWISH_DEBUG_MSG("free swish_ParserData wordList"); 901 903 … … 907 909 { 908 910 909 if (SWISH_DEBUG > 9)911 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 910 912 SWISH_DEBUG_MSG("free swish_ParserData docinfo"); 911 913 … … 915 917 } 916 918 917 if (SWISH_DEBUG > 9)919 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 918 920 SWISH_DEBUG_MSG("freeing swish_ParserData ptr"); 919 921 920 922 swish_xfree(ptr); 921 923 922 if (SWISH_DEBUG > 9)923 SWISH_DEBUG_MSG(" PARSE_DATAall freed");924 } 925 926 927 928 static HEAD *924 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 925 SWISH_DEBUG_MSG("swish_ParserData all freed"); 926 } 927 928 929 930 static HEAD* 929 931 buf_to_head(xmlChar * buf) 930 932 { … … 933 935 HEAD *h; 934 936 935 if (SWISH_DEBUG > 3)937 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 936 938 SWISH_DEBUG_MSG("parsing buffer into head: %s", buf); 937 939 … … 962 964 963 965 line[i] = '\0'; 964 h->lines[j++] = line;966 h->lines[j++] = swish_xstrdup( line ); 965 967 h->nlines++; 966 k++; /* get to the next char no matter what, then check if == 967 * '\n' */ 968 969 /* get to the next char no matter what, then check if == '\n' */ 970 k++; 968 971 969 972 if (buf[k] == '\n') … … 974 977 } 975 978 i = 0; 976 line = swish_xmalloc(SWISH_MAXSTRLEN + 1);977 979 978 980 continue; 979 981 } 980 982 } 983 984 swish_xfree(line); 981 985 982 986 return h; … … 1164 1168 } 1165 1169 1166 if (SWISH_DEBUG > 5)1167 { 1168 SWISH_DEBUG_MSG("returning %d header lines \n", h->nlines);1170 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 1171 { 1172 SWISH_DEBUG_MSG("returning %d header lines", h->nlines); 1169 1173 swish_debug_docinfo(info); 1170 1174 } … … 1216 1220 int file_cnt; 1217 1221 1218 i = 0;1219 file_cnt = 0;1220 nheaders = 0;1222 i = 0; 1223 file_cnt = 0; 1224 nheaders = 0; 1221 1225 min_headers = 2; 1222 1226 … … 1224 1228 fh = stdin; 1225 1229 1226 swish_mem_debug();1227 1228 1230 ln = swish_xmalloc(SWISH_MAXSTRLEN + 1); 1229 1231 head_buf = xmlBufferCreateSize((SWISH_MAX_HEADERS * SWISH_MAXSTRLEN) + SWISH_MAX_HEADERS); 1230 1231 swish_mem_debug();1232 1232 1233 1233 /* based on extprog.c */ 1234 while (fgets((char *) ln, SWISH_MAXSTRLEN, fh) != 0) 1235 { 1234 while (fgets((char *) ln, SWISH_MAXSTRLEN, fh) != 0) { 1236 1235 1237 1236 /* we don't use fgetws() because we don't care about 1238 1237 * indiv characters yet */ 1239 1238 1240 xmlChar *end;1241 xmlChar *line;1239 xmlChar *end; 1240 xmlChar *line; 1242 1241 1243 1242 line = swish_str_skip_ws(ln); /* skip leading white space */ … … 1252 1251 *end = '\0'; 1253 1252 } 1254 1255 swish_mem_debug();1256 1253 1257 if (nheaders >= min_headers && xmlStrlen(line) == 0) 1258 { 1254 if (nheaders >= min_headers && xmlStrlen(line) == 0) 1255 { 1259 1256 1260 1257 /* blank line indicates body */ … … 1265 1262 swish_check_docinfo(parser_data->docinfo, s3->config); 1266 1263 1267 if (SWISH_DEBUG > 9)1268 SWISH_DEBUG_MSG("reading %ld bytes from filehandle \n",1264 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 1265 SWISH_DEBUG_MSG("reading %ld bytes from filehandle", 1269 1266 (long int) parser_data->docinfo->size); 1270 1267 … … 1276 1273 1277 1274 if (xmlErr) 1278 SWISH_WARN("parser returned error %d \n", xmlErr);1279 1280 if (SWISH_DEBUG > 3)1275 SWISH_WARN("parser returned error %d", xmlErr); 1276 1277 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 1281 1278 { 1282 1279 SWISH_DEBUG_MSG("\n===============================================================\n"); … … 1286 1283 SWISH_DEBUG_MSG(" (%d words)", parser_data->docinfo->nwords); 1287 1284 } 1288 if (SWISH_DEBUG > 9)1285 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 1289 1286 SWISH_DEBUG_MSG("passing to handler"); 1290 1287 … … 1292 1289 (*s3->parser->handler)(parser_data); 1293 1290 1294 if (SWISH_DEBUG > 9)1291 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 1295 1292 SWISH_DEBUG_MSG("handler done"); 1296 1293 1297 1294 /* reset everything for next time */ 1298 1295 1299 1296 swish_xfree(read_buffer); 1300 1297 free_parser_data(parser_data); 1301 free_head(head); 1298 free_head(head); 1302 1299 xmlBufferEmpty(head_buf); 1303 1300 nheaders = 0; … … 1306 1303 file_cnt++; 1307 1304 1308 if (SWISH_DEBUG) 1309 { 1305 if (SWISH_DEBUG) { 1310 1306 etime = swish_print_fine_time(swish_time_elapsed() - curTime); 1311 1307 SWISH_DEBUG_MSG("%s elapsed time", etime); … … 1315 1311 curTime = swish_time_elapsed(); 1316 1312 1317 1318 if (SWISH_DEBUG) 1313 if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 1319 1314 SWISH_DEBUG_MSG("\n================ filehandle - done with file ===================\n"); 1320 1315 1321 1322 } 1323 else if (xmlStrlen(line) == 0) 1324 { 1316 } 1317 else if (xmlStrlen(line) == 0) { 1318 1325 1319 SWISH_CROAK("Not enough header lines reading from filehandle"); 1326 1320 1327 1328 } 1329 else 1330 { 1331 1332 swish_mem_debug(); 1333 1321 } 1322 else { 1323 1334 1324 /* we are reading headers */ 1335 1325 if( xmlBufferAdd( head_buf, line, -1 ) ) … … 1344 1334 } 1345 1335 1346 swish_mem_debug(); 1347 1348 if (xmlBufferLength(head_buf)) 1349 { 1336 if (xmlBufferLength(head_buf)) { 1350 1337 SWISH_CROAK("Some unparsed header lines remaining"); 1351 1338 } … … 1354 1341 xmlBufferFree(head_buf); 1355 1342 1356 swish_mem_debug();1357 1358 1343 return file_cnt; 1359 1344 } libswish3/trunk/src/libswish3/words.c
r2096 r2098 32 32 33 33 extern int SWISH_DEBUG; 34 static int strip_ascii_chars(xmlChar * word, int len); 35 static int strip_wide_chars(wchar_t * word, int len); 36 static int is_ignore_start_ascii(char c); 37 static int is_ignore_end_ascii(char c); 38 static int is_ignore_word_ascii(char c); 39 static int is_ignore_start(wint_t c); 40 static int is_ignore_end(wint_t c); 41 static int is_ignore_word(wint_t c); 42 static int bytes_in_chr(wint_t c); 43 static void make_ascii_tables(); 44 static int add_to_wordlist( 45 swish_WordList * list, 46 xmlChar * word, 47 int len, 48 xmlChar * metaname, 49 xmlChar * context, 50 int word_pos, 51 int offset 52 ); 34 static 35 int 36 is_ignore_start_ascii(char c); 37 static 38 int 39 is_ignore_end_ascii(char c); 40 static 41 int 42 is_ignore_word_ascii(char c); 43 static 44 int 45 is_ignore_start(wint_t c); 46 static 47 int 48 is_ignore_end(wint_t c); 49 static 50 int 51 is_ignore_word(wint_t c); 52 static int 53 bytes_in_chr(wint_t ch); 54 static void 55 make_ascii_tables(); 56 static int 57 strip_wide_chars(wchar_t * word, int len); 58 static int 59 strip_ascii_chars(xmlChar * word, int len); 60 static int 61 add_to_wordlist( 62 swish_WordList * list, 63 xmlChar * word, 64 int len, 65 xmlChar * metaname, 66 xmlChar * context, 67 int word_pos, 68 int offset 69 ); 53 70 54 71 static int initialized = 0; libswish3/trunk/src/swish_lint.c
r2096 r2098 84 84 printf("nwords: %d\n", parser_data->docinfo->nwords); 85 85 86 if (SWISH_DEBUG) 87 swish_mem_debug(); 88 86 89 twords += parser_data->docinfo->nwords; 87 90 88 if (SWISH_DEBUG) 89 { 91 if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 90 92 swish_debug_docinfo(parser_data->docinfo); 93 94 if (SWISH_DEBUG & SWISH_DEBUG_WORDLIST) 91 95 swish_debug_wordlist(parser_data->wordlist); 96 97 if (SWISH_DEBUG & SWISH_DEBUG_NAMEDBUFFER) { 92 98 swish_debug_nb(parser_data->properties, (xmlChar*)"Property"); 93 swish_debug_nb(parser_data->metanames, (xmlChar*)"MetaName");99 swish_debug_nb(parser_data->metanames, (xmlChar*)"MetaName"); 94 100 } 95 101 } … … 216 222 if (config_file != NULL) 217 223 swish_xfree(config_file); 224 218 225 219 226 return (0); libswish3/trunk/src/test.pl
r2097 r2098 31 31 32 32 my %stdindocs = ( 33 'doc.xml' => '840 4'33 'doc.xml' => '8407' 34 34 35 35 ); … … 62 62 my $file = shift; 63 63 my $o = join( ' ', `./swish_lint - < test_stdin/$file` ); 64 my ($count) = ( $o =~ m/ nwords: (\d+)/ );64 my ($count) = ( $o =~ m/total words: (\d+)/ ); 65 65 return $count || 0; 66 66 } libswish3/trunk/src/test_stdin/doc.xml
r1913 r2098 7 7 ozonometry proseucha touchable undullness anticipation surd monumentlike Phylloceratidae unmoldered poss Kornephorus possessional Digor Alix cytocyst miscrop unimedial untaintable diabolically apheliotropism inciter swirl alkalescency gametophyte abridgment umbraculiferous sanctionative kreis odorize unpleat bethumb scouress vigilation hyperbolically Lycosa Hyaenarctos unintentness rigorous carkingly monachization lad alliterative yer etheriform serow templardom plateman abaissed poddish delinquently myositis inagglutinable carnotite convertibleness Zelanian hypsometry muckerism unexceptionability rancheria localization overlaxative oligopolistic shibah burion underwitch preclaimant Oreamnos Ferison kiteflier procrastinating purposivistic promisor luckful hydrogenation gravimetric sclerophyllous anarchosyndicalist lesseeship obligedness peerlessness dentary almoign synizesis cheesery khakanship laverock leucitic shortchange putback unsaving intermeasurable Lance doughtily ungrayed anisyl semibarren physicalness unperseveringness guise readaptive filly champagnize metaplasia unstrategically ferntickled inactiveness shoreyer knotter bradawl prosabbath sevennight weariedly calligraphy proselytizer dove splenalgy aspen labioglossopharyngeal tartarize Capitolian microzone ascidiate nonrebel structuration undight guillotiner ravingly pize juniper revalidation aerodone pure semifatalistic Araneiformes sideration jackassification burucha ephor prelawfully unempowered succinous congressionist arjun antipole sphere favosite reconcession perfectiveness phosphuret dictyotaceous surroundings sacrament forebitt mesenchymal Kuehneola whitefoot pseudomedieval lambiness Iapyges talipomanus unreportedly atomic starter nonmulched tradesmanship Dinoflagellatae incapable undersized crippingly ableptically abruptly quadrupedous prolan unsnaky Priapulus intravital concentrator oversoothing postillator upshove sescuple prorealistic ineducation golfer addresser elytroplastic hasan craterlet ruggle unfurthersome misleading forestology Arenig Anabantidae endeictic unnabbed sulfogermanate petrosquamosal myxedematoid unadornedness ascogonium bouchal hysteralgia propositus shrive unsilentious polyaxon unserrated Inca leadenpated Chartism agricolous preaffliction stimulant bluffable scenecraft influx physique emulsionize Dorothea aquatint swanky dotlike scleroxanthin hortulan ganoin hyperchamaerrhine purificant overreplete mistrain nonrevival futureness ditchside enrichingly stigmatically tunicle ignominious overpreach somnambulant snakepipe ammoniticone Greekless arboraceous doomsday anomocarpous polishable turgescible Menfra glumpish nuculiform trunnion sectwise unadjudged stintedness lymhpangiophlebitis iconostasion matsuri Silicispongiae ungovernableness pericementitis Oschophoria levers unmarring sodden unsacrilegious incondensable wailer Titmarshian myoparesis Gurish metroptosis intercession Nazariteship nitrocotton restatement cytolytic persicary Sadduceeist ambos circumduct brachistocephalous Walloon graymalkin froghood Pachysandra spondylexarthrosis procuratory aerarian peribolus causse periastrum vocate semitrimmed endoperitonitis imperceptiveness praelabrum extratemporal praetexta Mishongnovi demonial alteregoism extoolitic arfvedsonite dragonish delicately wished ratfish enwallow unquantified Diplocarpon predeliberation unbehoving Pompilidae dendritiform vimineous cocowood cephalalgia soulfully shide rushlighted corke pterodactylid noninflammable akhyana reflexology paragoge toxicemia moonflower moonshine superoffensive Learoyd upwrap ulotrichan perking Adelarthrosomata disparately nonaculeate foughten asway Panathenaic rettery r hemoglobic moule tawie abbotship swordcraft senatress dollmaker aerophagia beamlet zoolater seralbuminous amenableness Larix antifebrile Zygopteris pregracile unimbrued pacificity Provencalize scutellated trituberculism Aggregata Wafdist bando trichogynial Wahabit Shinnecock Corrodentia redwithe unheuristic permissively festively linguipotence rhizopod stingbull secant gnosticize sulphurless Usheen cirrhosed anacampsis Megachile soprani unarousable convention pathematic repossession pantiled uninherited metachrosis inveigle acapu seneschalsy Lottie tritheism progressist unkennedness testudo adry uneducatedly casque surveyorship goneness untabernacled embracer bispore coz metatarsale nonvisional idiotish Tambouki agglutinator annihilable blennophlogisma subtlety anathematical analeptic domoid decadentism trochilopodous photoresistance undersell clanfellow prosiphonate sarmatier underseam hubber uhtsong inexecution recaptivation ruminate metalloidal intransitiveness plantula laconica renes anartismos Broadway intuit unwhimsical predental director spectrophotometer cystoscopy crankshaft unhopefulness osmolagnia anacrotic fient irid yieldable lawbreaking Naga prut groanful isocytic lactyl quilt Timaliinae Leptinotarsa rationment Melinis interchaff reflash nonporphyritic scanningly disgown beanfeaster wirable superparamount Arianizer homoiothermal blenniiform gater factotum extroversion brevier envelope fugu inobservation prasoid telautographist unfabulous slangous psychonomics querulous Climacium pausefully overbrutalize chicle liturgical noninherited anhydremia moderant uncreating tauriferous unadapted Termagant lithophany rhodamine unadult schistomelia Anthropodus incapacity toph ramous interlaminate untowered nonintermittent phaeophycean estadio malaise spineless astrophotographic heptachronous selflessness endogenetic futuric fluidram pseudoconhydrine May saccharosuria barrator larvikite candiru pectinase traphole infighter dithion immeasurableness biscayen unetymological Stoicism Fechnerian athwart semiconservative interabsorption essorant cionorrhaphia plumcot centuplication scry dyslogistic nozzler undisputing morg tileseed nonconjectural nibbler pipeline culminal procombat photozincographic deplorability clipping towardly dishling uncourageous tattied haughtily roastingly titler unriddled nonattached heliophyte matripotestal skyplast Antarctogaea Sevillian deject phrenological chapournet arthroclasia saccharometer denization unoverhauled iatric quinquertium qualifyingly backlet pailletted ademonist effodient unsteadying jessed rationally hunkerousness merriness fleshhook pavidity interfiltrate meningospinal lamellate moustoc evacuate sanshach coestablishment cast decasepalous cutcherry gallop bitters leftover spoiling profit bacteria exogeny defacement extraformal unworthy stroboscopic semihyperbolical octopolar sensualist phosphorescence anastomose biocatalyst repulsively volitation despondingly mesobranchial colorably Bakshaish entopic Alfurese simpletonic genuflect Casuarius tetrabasicity historicogeographical Wolffianism corporealness Seiurus quintetto Chaetangiaceae meticulous ammonal sacerdotical myxopodan ganoin crump glyptologist turbeh phallin ophthalmoscopical unwordably unenwoven salivator sophomore competitiveness clinometry suberiform reappraisement sandblast decapodous spume semisavagery caramelen subscribe semiarch cacotrichia pheal semifuddle Esperantido pantalon overjoyfully preeze gametange Portugalism gigful Clathraceae unviewable sidewinder unserviceably pillared relapse astragali goulash nonexisting enserf rehedge interpretively anthropometrically auxoblast pastural taxite piotine edaphon sclerodermitis seambiter Funariaceae hysteric matris tetanospasmin homespun peptizer vermetidae flockless stenophyllous chiffon superparliamentary craniognomic reincapable semicastration pedesis muslined borracha baseless appropriator mijakite toddlekins stampable polysyllabically whipstall preclaim hypnone overmean frostproofing flapmouthed learned peridial losenger quinatoxine stillion Acrasieae lunary humilific galvanical antisquama luciferin ammeter proritual inactivity pictural ichthyophagy squasher transmissionist lithophilous palaeoethnology telescopical orchamus wristwork backrope uncarpentered horsegate prolation Myomorpha volcanicity current paramylum sacrolumbar tumulary crunchweed overslight experimentator Guha spangler diffusible counterraid vaporability orinasality defraudation unordinary malignation Adrammelech unstability monotonical unchiming forcing Anthony clamorously tracheotome artlet turbanwise triangularly Itys myxa chrysotile glycolyl incisely polyautographic buildable inclose unglowing trochilic anhydromyelia fuguist gasper heterotransplant vowess overcompound micrography archipallial splanchnopathy chorda overwhelmer stoot tetartemorion component cuticularize thecodont Chionanthus ursuk Parinarium counterrevolutionize cankereat straightener freetrader endopterygotous whereaway clearable scarily nonfinancial disclass throatiness intraprostatic swiss impester unchested thermosetting teledendrion Holodiscus sweetheartship metatitanate enteromere lunistice anthocyanin winterization prosect loblolly uncolt onewhere Romanese bigwiggery diamicton killcalf gazetteership haloesque monerozoic tetractine nivellator Cestodaria reobject cacanthrax uncrippled Belinurus afferent mately thermological bolectioned goburra neoterically bisyllabic guanabana flutelike architecture contestable invocative quizzicalness pyrogenic spume reapposition pericardiosymphysis dissogeny codical architectural takings Grewia mnioid overveil matriarchic strychninization altogetherness unanalogical crowstepped thujone lensless Awol unpartable semisaprophytic espalier refrigerator afeard ijussite nanocephalic pyrogen osteoporotic Tongan deserver chiralgia robustity predesperate veneficous Karharbari landlubberly knacky nonpromotion odontogenic straitsman universitarianism coventrize frithles undogmatic anthroic sarcophagous genisaro ehuawa unremitted townspeople equilibration tigerling shalelike gilo eastbound partialistic turp unidactyl dudeen uncontradictedly uneatableness cedarn sociable literature humanitian abulic thunderstroke Bahamian anthropophagist cosegment nonlocalized corneule Saviour irreticence musicproof unvalidness winterweed fennig aselgeia irreplaceable contiguity propaedeutics laryngocele syntonin sexdigitism pervert prepollency Sphaerophorus blindfolded ambitious grandmotherism otocephaly intrusionist Aghlabite Tartarized sweetleaf gardenin abrogative Ranunculales Soricinae enarbor outen oolitic unfinishedly buttonless Roschach vivax wickup pickpole snuffliness sail Procyonidae prebasilar triacontaeterid zoophytical kenareh refulgence anticyclic folie ischioiliac Tetragynia albuminiferous remagnetize demirep Ineri whatreck zonuroid recertify unentangled seductionist overspeech viaggiatory mollifying crawleyroot merchantman coheartedness Danaidean mesothoracotheca parsimoniously lerp Frenchiness knabble Picene nonconvertible supportlessly frugally newsbill Chaetophorales retell unchastised nonthematic Bergamo cryptocarpic Scombroidea rhythmproof croc meriquinone amoebaeum embarrel twattling monoplasmatic trigamist fundamentalness nasopalatine backfurrow technist headrent Niagara nestiatria autoimmunization appropriator poephagous bucolically sestine albumenization Fragilariaceae Acamar silicify frustration trithiocarbonate Plesiosauri groomer lycanthropic burro Sinapis variformed circumlocution Zelkova floriated numinism caaming pleuritical stockjobbery drail gytling pantherlike culbut overglaze severation sabina reincorporate haemophile heterosomous whippiness wirble oomycete strainedly singlesticker incurrable pussyfoot inspirit Cajanus beknived wynn orthocenter bradmaker micropetrologist distractedly chronist Neillia capulin vespine conquian semilens haircutting almsfolk whippy decadarchy squatly weaselfish heliotropine Elodeaceae stippler appropriator symptomatologically institutively jing Hattism resilience wrothly nonexercise sonification prophoric Ciceronic pretangibly autodigestive qualify scorbutic carene ultrafederalist squatterarchy overfrieze codelinquent cactiform rachioscoliosis discerption increasableness animalculum unretrenched glyphic peregrination fireroom understamp ironish Sephardim megapode unembittered belonid anovesical semibejan stateside sanativeness hexacolic disematism hydromyelocele Wesleyism nuncheon Neroic Targumic elfenfolk dysteleology overtense timorousness blolly adenochondrosarcoma reboise perfectivity nondatival tragedial somniloquacious photopitometer refutatory arsenide schematic Maronist grat intraplant apesthesia latewhile fractionally notionist crazedly protarsal ultracrepidarian paradichlorbenzol radiogoniometry tarlatan grizzled galactolipin Saratogan germinator blazonry zygous unproficiency cotenancy ruderal stringhalted intellectuality nondisjunctional exhibitory semicellulose ribbon preconcertive cerine mythically praesidium boodledom kokumin rhoding costovertebral spatterdock siris pseudoreligious peristaphylitis swinepipe Mohawk sign tutrix muriated hayrick cystocarpic dicrotous raia Filicales esocataphoria tragedienne crotaphic woodwright ostmark feint cubitoradial semblative machree distater dozy radiotelegram eddo uncomprehending radioteria sphereless methylethylacetic bhangi huntswoman underwood nongovernmental moistureless swashy succorful pneumatophobia conoidic Chiam flagitious killingness unguessed amphicytula zoologically sclerometric Udi backless timbrophilism catalytically ramplor strutter preimpair sightful trouter singlet circumambulation shapesmith cocoon guayroto windowpeeper flareless supercilium caliginous sarcolytic trachycarpous unsatanic nonzonate wagoner chemicomineralogical neognathic machopolyp aniseikonic Carboloy lapeler busine righten disaccustomed balancedness barger amarin instellation historify unprenticed shallu phytozoan Extravagantes canceration moonpath topee gubernator tropacocaine Tritonidae abstricted divertibility engrossed prevalent serigrapher upgush cricotomy punctate strangerwise monarchess teleocephalous nictitation ectozoa unmultipliable tiller skill vulva Carmanians misfeasance impassive Cerithium festuca filmogen teioid nondialectical gasterosteoid holing proponer cannoned unadulterate unceremonious superrefined gonapophysis featurely astrolatry swarth disconsideration superquadrupetal parametrium misenjoy rattlingly scripturality nob acclivous biscacha unexplanatory patacao impeccant disgraceful ancylostome scopiped Hesperid ynambu phyllopode Angeleno intrapleural unimperative weightedness calcify cotted anovesical hysterorrhaphy unclericalness subsidiarily cisele colonizability unintroducible memorability goosewinged sulfurosyl anthrachrysone cyclometer Russula hymnary teaboard equivocacy swire remasticate recondensation angelographer silicular spillproof burmite Hypsilophodon diacetyl ectosphenotic unreadably somatotypy unserenaded merchanter electrotherapeutic expurgative onionskin tapsterlike anarthropodous biplanar stalactitical silkwork interpenetrable silicious beerishly subdeducible monoptical pyrovanadate reliquidate undiscernedly unviolined plastochron pectoriloquism superhumanity assassinatress irrevocability Pyraceae smog quardeel departisanize obstetricy Presbyterianize bumperette venerant flagellariaceous bingle gastroadynamic slithering hyperplane improbable unamiable rakery Aletris appear Piroplasma picrated tritonality gastrohydrorrhea josie unhid nonpaid cacochymic pickaroon underlip presenced washbasket titubancy pyrazolyl burrowstown countersuit succeedable medicable reprecipitate emprosthotonic ponderer theorem outshot contritely encystment Hydnoraceae parochiality raffishness uninterposed importunate beggarly Reboulia neurocoelian bespatterment superior lipomyoma sportless nonsustaining dulbert imitator mirthsomeness Corabecan belard Arminianism curcumin fleetingness gralloch Balak trimethylbenzene unlearned Crocidura arthrolite Plautine ectostosis Meum vedro uncultivability trochart antichrist phthisiogenetic troolie puerpera lanceman preoperculum perivaginal revelationist martyniaceous epimysium uncompelled inswamp cystid Amiidae Iriartea octagonally nonannuitant ptisan Alicant circumposition polyvalent mildewer nonrecoil alcine polycrase thionaphthene formability crowstick Serpulae nongovernmental Renaissancist saxigenous bacterially sodded typhization banty nephelinite admeasure mescal hotly nakedweed antierysipelas foredawn subdistichous basquine babyishness dispatch pantophagist minuter seathe unpriced Fordicidia proangiosperm dimensioned eburnated cypressroot impuberal quaternity musie bloodthirsting staminodium onchocercosis eternize Mazurian anachronist fecundity palaeoeremology mela Comnenian responsibleness trickster chayote tripylaean unsafe morindin routh bajra annidalin prolificate unexchanged rectoclysis paraglossia forgiveless unwounded noncurrency precalculable Hochelaga maggotiness spurge tomboyish chromophile dispensatory Alkoranic Crioceras Coelenterata nonobstructive babassu geophagous subreport tracklaying chemiotaxic polyphotal melanocomous rabigenic seborrhea phyllophore superessentially panspermy tawse clive polearm indicible wattled astrogeny delatorian bloodcurdler indestructibly byeman immutual preramus papyrocracy dragoon captainly xanthamide bellite stampage jug vara Sofronia vizard menorrhagic americium ethnobotanical needfulness disastrously persico amalgamable cymballike woodbin crappie quartzic peristoma putresce Lonchocarpus discrepancy engladden Richmondena immenseness spiritlike octroi Triuridaceae amphigenous aglow batsmanship dermatoma metalinguistics plew Sionite ligulin menopausic beedom transshift tricephalus preconvince resistibleness deodorization Maytime geometric rhabdomancy deltal unoiling cellaret manless circumflant taxameter aplostemonous unmaniac Dicotyledones yoghurt porphyroblastic infrastapedial multiflash multicolored oxonium canful bombard intervein wafermaking abraxas Conestoga oryctognostic magiristic ventail cedriret concubitant jabbed soapbubbly subdepartment nintu verminlike rostral tristful fermentativeness geochemistry squabble therebetween paratungstate ripsaw prereference Conchubar semirefined pardalote pricked Madegassy scirrhi Papaver reflecting defensibility Crinum pageanted megalithic orthoformic tristeza emydosaurian measurer anteporch mammock noncredible wattless biogenous bringer scho paratoluidine Hibito caecocolic anteflected trocaical cherishing Emydea hangman diametrally stifle nondelegate flaxseed Russianization participative pulicosity veneration intracorporeal hellandite folles Tamworth manship njave vivisectionist inning outfit alphabetic unevenly capillaceous Onychophora thoroughpaced desmotropic glossoncus praline ineffaceability ferfet berried repertory Vedaism navigant varnishlike superobjectionable brodeglass filefish Skittaget goldenhair rentaller noncompearance sudoral pharyngoplegic aspiculous lamplight ostentate defoul Methodisty semester demonial contrantiscion malaxator jingodom cunctatorship detergent ordure terrorist snurt Blarina telegrapheme cereal mytiloid unanimatedness frondous hale Dialypetalae Samoyedic doctorship trimetrogon embargoist vasculature snuffiness endotheliomyxoma sowens geniculated capewise isoclinal nebbuk lasket cockleshell Cirratulus eupepsy creatureship schene Malayalam jumart malignantly supravaginal cautelously incircumspection norpinic postvelar sigillary homocentrically straplike stubb Amiidae alkylize astrophysicist tolerableness sensualization scherzando unmittened onychomancy taxably phraseograph uncorruptedly vituline firebox kerat pacificist frankincensed blessed eurybathic piketail archimperial libellate litz aboriginary gallium ideoglyph caster Idotheidae quite periplus antical intriguer Reggie pylorostenosis reoppress Bahaullah pneumarthrosis prebudget carping sterics shamroot prosubscription mycomycetous tragicomicality cholanthrene upcloser skokiaan transmigrationism clivis counteropposite scornproof precaudal Paraguayan coexecutor broadhead solemncholy interavailability molrooken albinistic roastable bladderpod polynemid radiatics homeoplasy tibiotarsal sphygmoscope landholdership nonespousal Borussian listred postallantoic radialize kaolinic Pinkster Rumex isoptic myographical pierhead unhide archdetective barbaralalia recursion choledochostomy unparaphrased intima Szekler attenuant coxcombhood drama fissileness Anzac bother Isomyaria Tiberine creasing temprely divorceable epidermoid Cotyttia phylogenist sinfonietta amendableness thersitical umbraculum sportiveness expenthesis unbastilled bowleggedness outcorner transcolor beadman venenific uterus Haidan undean scuppaug pseudoyohimbine dissimilatory keratoscope spoliator predeparture dextrinate beaconwise skillion degradement landwire Cynoscion peritracheal frustrately nonexposure superfortunate tribually orality ensaint windowful karrusel frondesce shipwreck prepersuade dendrachate jeopardousness owyheeite Orcadian ragtime sympathicoblast flavaniline ruby hypogastric pedicurism inelaborated suaviloquent disquisitive helleboraster uphearted fearsomely skiving overconcerned bangalay segregator spill xenogenesis bote unadmire scarfpin iodate Aphelinus superrequirement uncurled elsewheres resorbence westwards faun zecchino forescript superunit Priapusian crisper whimbrel tressilation hypophyseoprivous scroll imperfection expeditionist sandrock bimetalic Irishism oculauditory nonpastoral anaerobation Bacchuslike undisinfected waspen microseism Diancecht magnetotherapy bath inhibitionist misvalue unartful encephalography juxtaspinal unscientific Strix heliozoan sora ramshackleness unnoteworthy dyke osteitis cataclysmatic spendful Atoxyl banqueteering rachis superabduction radicating aplite proctorize homocentrical heteroxanthine isopelletierin photalgia arrame unwatchable realist width predesignate Giovanni swayed bedcase ergatandromorphic trichophytia laxative didepsid impartible fimbrilla thermophilic douche recentralize huajillo shaken possessorship paintpot teaey Fauvist pleiobar protractible undropsical calcitreation convocationally sultam glove babyishness sewerage Chlorellaceae Santolina meatometer mischaracterization demonstrant piperaceous unobedient antenodal pickeer nosology Chueta resegmentation uncurled unrefusable Maybloom catchwater dulcimer omissively interpunctuation preintention uninlaid theophilanthropic unstandardized Knoxian charpoy verticil paragraphize avoidably vomicine Chromides abstractor plaice phototelegraph girlie motleyness omniprevalence Thushi nonsidereal outroll plesiomorphic uncoagulating spermatogenic phlegmagogue million Tauropolos eubacterium underplot Kabyle heptitol woodmancraft claustra labiovelar substratosphere hyponoia tripudiant goaty idealness brownback ourself Plotinize Galago jarrah leucocytic ferntickle fjeld roofage Agamae greet parodical tartaric lymnaean scantly faunistical Belemnites cururo Tagbanua philopolemic indistinctness thrombogen equiponderate broadly bonesetting caffeate nonmorainic retrotympanic Papilionides ineligibility dulcitol opeidoscope hyperpharyngeal Taxus surbase represcribe surely hematography undisliked unsinning platyglossia Anthomyiidae pleurolith semicircumvolution steedlike mincemeat flebile sker Inghamite extinguish nonconfidential unpeacefulness overflorid bharal nuisancer horning bicornuate aroeira pseudoerythrin ophthalmolith anachronical shamer paddy ventriloquistic divulsive overbitterly condensedly frigotherapy semiproof dulcitude museology sotted lactonization prandially anhidrosis circusy otosis metopion aphakial unopportuneness picramic Angelican unboastfully locomotively Algorab repercussion Lorettine oversadness unstagy semicombined unmonopolize cloiochoanitic muconic Lenaeum outskill predeliberation indulgentially enquicken Menyanthaceous Antipascha symphysy alimentariness anacoluthia pseudotuberculosis unyeaned phelonion sensationalism transitivism audiometry barrico bolivar ladylikely gorcrow spicant unpostered Cissus toy overgrade plausibly Haemogregarina malcreated celastraceous resiner molariform pseudoneuropteran remandment rongeur tucky dartingness Reki anisochromatic Almida unemotional chylifactive angico fantasticality gelatinizable bipectinate gunsman capitan Zen behemoth uncontainable riddlings mildewy omnifarious buttwoman venerator semilined intermason basidigital irremissibility solon Pilocereus unsummered hindberry verruca unappeased tomnoddy Cheviot concerningly carsick polygyria nonabridgment usuriousness starched presidentially undelectably sabulose singsong acylamino symbolater garsil unlade unsnubbable Georgemas instate autocephality gomphosis comurmurer pinchingly ascensional saturnize homochromy supremity Clinopodium bloodstroke turncoat hectograph boatie dentistry acana billetwood gestning apodeipnon untumid hierological Gibbi distract discopodous gasparillo unkinlike uninventively Ectotrophi technographically oxman transuranium metavauxite plexure Zygopteris Lycoperdales austerity demote imposableness telligraph rankness granduncle naw inversion macrogamy handwrite Oligomyodae bipartisanship macrodont foresaid aluminothermy haplessly eliasite Cytherean scientifical consolatrix suberize tracery assagai athrocytosis ferrotitanium Gotha oncometric indoctrination histologist daftlike responsive bravade guidman reformandum hussy toyish preultimate strongyle flowerwork unsolidness obtainable thalassinoid fleshings Qung elongated nonpause cordial proctorage lofty underjacket nonathletic meteorolitic moniment punkah jaculatorial antifederal unifier reassay Komi nonpurchaser mian Selaginella chambray vomiter sealflower acquired succent gorsechat myenteron Viduinae civilizee Tomkin subaural evidentness representment inaugurator odontocetous trier overthin sphenoethmoid overlier tidingless intralogical orchestrion millpost denaturization anteprostatic modular dermatopsy psorosis Jewstone reprehensible tucky unpropense epithalamium hippotomical Mithras fringy enanthematous causational metapophysial deerwood Sappho Newar decoctum mnemonics decate enkindler photochronographically hoofs esplees Djagatay phalerate jaculatory Moniliales plagueproof kapur zoogenesis rubberneck menthenone nummuloidal prediscourage Kronion carburant install subendocardial reauthenticate Hittite unrhyme dipperful nightcap spinosotubercular bookishness nonresidency tootler Squaloidei infraposition assonantic tetrazene alish unreeling reim lactiferous changeling anoil tricrural hypoaminoacidemia leucocytal aurodiamine damnously norther heptarchal Heroides unsprinkled disauthorize aulu sapiently miterwort spongilline cellulifugally veritable chylomicron launchful comply grundy merrymeeting lethal concluder arnut doodlesack celidographer chromatoptometry eniac newfangledly Volapuk overminutely epicenity suitability paleocrystallic recessively agapetae nonmucilaginous downsinking scriver chupon dactyloscopy backfiring irresolutely perfectibilian sarcastical Yankeefy tomjohn quadrialate exoascaceous demantoid coengager aweband necker outspout cinnamoned oinomania hologastrular poliad palely beating torment nondecoration septimole posteroclusion learned weariedness nonimperative annelidian sterile Cumar Usherian acerbity freedman keup bredbergite psychophysiologist subcircular Plotinism tinstuff tauntingness surra ununiting subesophageal groan maguey government impardonable nippy variation twaddling limnophilous astucity contubernial homonymous pseudoconjugation Isidoric expostulate parosteal unminding iodometry setiparous erubescence meminna expeller hosanna decumanus Tezcatzoncatl Potiguara guitarfish undocumentedness Fletcherize muriformly uberous trichogen institutionally Urdu homiletics ustilagineous beshower tapework Copehan blitz limbus unguled Mesozoic nitro Onchidiidae enjelly theogony fireproof chlorophylligerous twaddy psychopomp cutlips unturning vernally disomatous allokurtic rebaptism adamsite intervarietal mawbound bismuthiferous myrrhophore Mousterian pseudoconservative affreighter unblightedly hypermorph naricorn detrimental hyperdulia Aouellimiden breakneck duplexity disorganize chaya unaching sonderclass serrate Satanophil upscale Volsci premonopoly
