Changeset 2098

Show
Ignore:
Timestamp:
03/25/08 23:37:04 (2 months ago)
Author:
karpet
Message:

fix long-standing mem leak with stdin parsing

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • libswish3/trunk/src/example/swish.xml

    r2097 r2098  
    88   <title bias="+50" alias_for="swishtitle" /> 
    99   <other>color size weight</other> 
     10   <MixEDcASE>UPPERCASE</MixEDcASE> 
    1011  </MetaNames> 
    1112   
  • libswish3/trunk/src/libswish3/config.c

    r2097 r2098  
    3636extern int      SWISH_DEBUG; 
    3737 
    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); 
     38void 
     39swish_free_config(swish_Config * config); 
     40swish_Config  * 
     41swish_init_config(); 
     42void 
     43swish_config_set_default( swish_Config *config ); 
     44swish_Config * 
     45swish_add_config(xmlChar *conf, swish_Config *config); 
     46swish_Config  * 
     47swish_parse_config(xmlChar *conf, swish_Config *config); 
     48void 
     49swish_debug_config(swish_Config * config); 
     50void 
     51swish_config_merge(swish_Config *config1, swish_Config *config2); 
     52static void 
     53free_string(xmlChar *payload, xmlChar * key); 
     54static void 
     55free_props(swish_Property *prop, xmlChar *propname); 
     56static void 
     57free_metas(swish_MetaName *meta, xmlChar *metaname); 
     58static void 
     59config_printer(xmlChar *val, xmlChar *str, xmlChar *key); 
     60static void 
     61property_printer(swish_Property *prop, xmlChar *str, xmlChar *propname); 
     62static void 
     63metaname_printer(swish_MetaName *meta, xmlChar *str, xmlChar *metaname); 
     64static void 
     65copy_property( 
     66    swish_Property *prop2, 
     67    xmlHashTablePtr props1, 
     68    xmlChar *prop2name 
     69); 
     70static void 
     71merge_properties(xmlHashTablePtr props1, xmlHashTablePtr props2); 
     72static void 
     73copy_metaname( 
     74    swish_MetaName *meta2, 
     75    xmlHashTablePtr metas1, 
     76    xmlChar *meta2name  
     77); 
     78static void 
     79merge_metanames(xmlHashTablePtr metas1, xmlHashTablePtr metas2); 
    4380 
    4481static void 
     
    80117swish_free_config(swish_Config * config) 
    81118{ 
    82     if (SWISH_DEBUG & SWISH_DEBUG_CONFIG
     119    if (SWISH_DEBUG & SWISH_DEBUG_MEMORY
    83120    { 
    84121        SWISH_DEBUG_MSG("freeing config"); 
     
    114151{ 
    115152    swish_Config  *config; 
     153     
     154    if (SWISH_DEBUG & SWISH_DEBUG_MEMORY) { 
     155        SWISH_DEBUG_MSG("init config"); 
     156    } 
    116157     
    117158    /* the hashes will automatically grow as needed so we init with sane starting size */ 
  • libswish3/trunk/src/libswish3/docinfo.c

    r2030 r2098  
    6767swish_free_docinfo( swish_DocInfo * ptr ) 
    6868{     
    69     if (SWISH_DEBUG > 9
     69    if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO
    7070        SWISH_DEBUG_MSG("freeing swish_DocInfo"); 
    7171 
    72     if (SWISH_DEBUG > 9
     72    if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO
    7373        swish_debug_docinfo( ptr ); 
    7474 
     
    8383     
    8484    /* encoding and mime are malloced via xmlstrdup elsewhere */ 
    85     if (SWISH_DEBUG > 9
     85    if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO
    8686        SWISH_DEBUG_MSG("freeing docinfo->encoding"); 
    8787    swish_xfree(ptr->encoding); 
    88     if (SWISH_DEBUG > 9) 
     88     
     89    if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 
    8990        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) 
    9295        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) 
    95100        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) 
    98105        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) 
    101110        SWISH_DEBUG_MSG("freeing docinfo ptr"); 
    102111    swish_xfree(ptr); 
    103112     
    104     if (SWISH_DEBUG > 9
    105         SWISH_DEBUG_MSG("docinfo ptr is all freed"); 
     113    if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO
     114        SWISH_DEBUG_MSG("swish_DocInfo all freed"); 
    106115} 
    107116 
     
    114123    ok = 1; 
    115124 
    116     if (SWISH_DEBUG > 3
     125    if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO
    117126        swish_debug_docinfo(docinfo); 
    118127 
     
    143152 
    144153    if (!docinfo->mime) { 
    145         if (SWISH_DEBUG > 5
     154        if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO
    146155            SWISH_DEBUG_MSG( "no MIME known. guessing based on uri extension '%s'", docinfo->ext); 
    147156        docinfo->mime = swish_get_mime_type( config, docinfo->ext ); 
     
    149158    else 
    150159    { 
    151         if ( SWISH_DEBUG > 9
     160        if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO
    152161            SWISH_DEBUG_MSG( "found MIME type in headers: '%s'", docinfo->mime); 
    153162             
     
    155164     
    156165    if (!docinfo->parser) { 
    157         if (SWISH_DEBUG > 5
     166        if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO
    158167            SWISH_DEBUG_MSG( "no parser defined in headers -- deducing from content type '%s'", docinfo->mime); 
    159168             
     
    162171    else 
    163172    { 
    164         if (SWISH_DEBUG > 5
     173        if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO
    165174            SWISH_DEBUG_MSG( "found parser in headers: '%s'", docinfo->parser); 
    166175             
    167176    } 
    168177     
    169     if (SWISH_DEBUG > 9
     178    if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO
    170179        swish_debug_docinfo(docinfo); 
    171180 
  • libswish3/trunk/src/libswish3/hash.c

    r2097 r2098  
    2626 
    2727extern int SWISH_DEBUG; 
     28 
     29int swish_hash_add( xmlHashTablePtr hash, xmlChar *key, void * value ); 
     30int  
     31swish_hash_replace( xmlHashTablePtr hash, xmlChar *key, void *value ); 
     32int  
     33swish_hash_delete( xmlHashTablePtr hash, xmlChar *key ); 
     34boolean 
     35swish_hash_exists( xmlHashTablePtr hash, xmlChar *key ); 
     36void * 
     37swish_hash_fetch( xmlHashTablePtr hash, xmlChar *key ); 
     38xmlHashTablePtr  
     39swish_init_hash(int size); 
     40void 
     41swish_hash_merge( xmlHashTablePtr hash1, xmlHashTablePtr hash2 ); 
     42static void free_hashval( void *val, xmlChar *key ); 
     43static void 
     44merge_hashes( xmlChar *value, xmlHashTablePtr hash1, xmlChar *key ); 
     45 
    2846 
    2947static void free_hashval( void *val, xmlChar *key ) 
  • libswish3/trunk/src/libswish3/header.c

    r2097 r2098  
    4848} things; 
    4949 
    50 boolean 
    51 swish_validate_header(char *filename); 
    52 boolean 
    53 swish_merge_config_with_header(char *filename, swish_Config *c); 
    54 swish_Config * 
    55 swish_read_header(char *filename); 
    56 void 
    57 swish_write_header(char* uri, swish_Config* config); 
    5850static void 
    5951read_metaname_aliases( 
     
    8981process_node(xmlTextReaderPtr reader, headmaker *h); 
    9082static void 
     83read_key_values_pair(xmlTextReaderPtr reader, xmlHashTablePtr hash, xmlChar* name); 
     84static void 
     85read_key_value_pair(xmlTextReaderPtr reader, xmlHashTablePtr hash, xmlChar* name); 
     86static void 
    9187read_header(char *filename, headmaker *h); 
    9288static 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); 
     89test_meta_alias_for(swish_MetaName* meta, swish_Config* c, xmlChar* name); 
     90static void 
     91test_prop_alias_for(swish_Property* prop, swish_Config* c, xmlChar* name); 
    9692static headmaker * 
    9793init_headmaker(); 
     
    10399write_element_with_content(xmlTextWriterPtr writer, xmlChar* tag, xmlChar* content); 
    104100static void 
     101write_metaname(swish_MetaName* meta, xmlTextWriterPtr writer, xmlChar* name); 
     102static void 
    105103write_metanames(xmlTextWriterPtr writer, xmlHashTablePtr metanames); 
    106104static void 
    107105write_hash_entry(xmlChar* value, xmlTextWriterPtr writer, xmlChar* key); 
    108106static void 
     107write_property(swish_Property* prop, xmlTextWriterPtr writer, xmlChar* name); 
     108static void 
    109109write_properties(xmlTextWriterPtr writer, xmlHashTablePtr properties); 
    110110static void 
     111write_parser(xmlChar* val, xmlTextWriterPtr writer, xmlChar* key); 
     112static void 
    111113write_parsers(xmlTextWriterPtr writer, xmlHashTablePtr parsers); 
     114static void 
     115write_mime(xmlChar* type, things* things, xmlChar* ext); 
    112116static void 
    113117write_mimes(xmlTextWriterPtr writer, xmlHashTablePtr mimes); 
     
    150154                newmeta->ref_cnt++; 
    151155                newmeta->id = h->meta_id++; 
     156                newmeta->bias = meta->bias; 
    152157                swish_hash_add( h->config->metanames, newmeta->name, newmeta ); 
    153158            } 
     
    278283            newprop->alias_for = swish_xstrdup( prop->name ); 
    279284            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; 
    280290            swish_hash_add( h->config->properties, newprop->name, newprop ); 
    281291            //swish_debug_property(newprop); 
  • libswish3/trunk/src/libswish3/io.c

    r1952 r2098  
    2424#include <err.h> 
    2525#include <string.h> 
    26 #include <libxml/globals.h> 
    2726 
    2827#include "libswish3.h" 
     
    3029extern int      SWISH_DEBUG; 
    3130extern int      errno; 
     31 
     32static void  
     33no_nulls( 
     34     xmlChar * filename, 
     35     xmlChar * buffer, 
     36     int bytes_read 
     37); 
    3238 
    3339 
     
    6369        } 
    6470 
    65         if (j) 
     71        if (j) { 
    6672            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)", 
    6874                     j, filename); 
     75        } 
    6976    } 
    7077 
     
    8895    if (bytes_read != flen) 
    8996    { 
    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); 
    9198    } 
    9299    buffer[bytes_read] = '\0';    /* terminate the string */ 
     
    120127    if ((fp = fopen((char *) filename, "r")) == 0) 
    121128    { 
    122         SWISH_CROAK("Error reading file %s: %s\n",  
     129        SWISH_CROAK("Error reading file %s: %s",  
    123130                            filename, strerror(errno)); 
    124131    } 
     
    128135    if (bytes_read != flen) 
    129136    { 
    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)",  
    131138                            flen, bytes_read, strerror(errno)); 
    132139    } 
     
    135142    /* close the stream */ 
    136143    if (fclose(fp)) 
    137         SWISH_CROAK("error closing filehandle for %s: %s\n",  
     144        SWISH_CROAK("error closing filehandle for %s: %s",  
    138145                            filename, strerror(errno)); 
    139146 
  • libswish3/trunk/src/libswish3/parser.c

    r2096 r2098  
    820820    while (pop_tag_stack(ptr->metastack)) 
    821821    { 
    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) 
    828829        SWISH_DEBUG_MSG("freeing swish_ParserData metastack"); 
    829830 
     
    832833    while (pop_tag_stack(ptr->propstack)) 
    833834    { 
    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) 
    840842        SWISH_DEBUG_MSG("freeing swish_ParserData propstack"); 
    841843 
     
    843845 
    844846 
    845     if (SWISH_DEBUG > 9
     847    if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    846848        SWISH_DEBUG_MSG("freeing swish_ParserData properties"); 
    847849 
     
    849851    swish_free_nb(ptr->properties); 
    850852 
    851     if (SWISH_DEBUG > 9
     853    if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    852854        SWISH_DEBUG_MSG("freeing swish_ParserData metanames"); 
    853855 
     
    856858 
    857859 
    858     if (SWISH_DEBUG > 9
     860    if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    859861        SWISH_DEBUG_MSG("freeing swish_ParserData xmlBuffer"); 
    860862 
     
    862864 
    863865 
    864     if (SWISH_DEBUG > 9
     866    if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    865867        SWISH_DEBUG_MSG("freeing swish_ParserData prop xmlBuffer"); 
    866868 
     
    868870 
    869871 
    870     if (SWISH_DEBUG > 9
     872    if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    871873        SWISH_DEBUG_MSG("freeing swish_ParserData tag"); 
    872874 
     
    878880    { 
    879881 
    880         if (SWISH_DEBUG > 9
     882        if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    881883            SWISH_DEBUG_MSG("freeing swish_ParserData libxml2 parser ctxt"); 
    882884 
     
    889891    else 
    890892    { 
    891         if (SWISH_DEBUG > 9
     893        if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    892894            SWISH_DEBUG_MSG("swish_ParserData libxml2 parser ctxt already freed"); 
    893895 
     
    897899    { 
    898900 
    899         if (SWISH_DEBUG > 9
     901        if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    900902            SWISH_DEBUG_MSG("free swish_ParserData wordList"); 
    901903 
     
    907909    { 
    908910 
    909         if (SWISH_DEBUG > 9
     911        if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    910912            SWISH_DEBUG_MSG("free swish_ParserData docinfo"); 
    911913 
     
    915917    } 
    916918     
    917     if (SWISH_DEBUG > 9
     919    if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    918920        SWISH_DEBUG_MSG("freeing swish_ParserData ptr"); 
    919921 
    920922    swish_xfree(ptr); 
    921923 
    922     if (SWISH_DEBUG > 9
    923         SWISH_DEBUG_MSG("PARSE_DATA all 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 
     930static HEAD
    929931buf_to_head(xmlChar * buf) 
    930932{ 
     
    933935    HEAD           *h; 
    934936     
    935     if (SWISH_DEBUG > 3
     937    if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    936938        SWISH_DEBUG_MSG("parsing buffer into head: %s", buf); 
    937939 
     
    962964 
    963965            line[i] = '\0'; 
    964             h->lines[j++] = line
     966            h->lines[j++] = swish_xstrdup( line )
    965967            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++;     
    968971 
    969972            if (buf[k] == '\n') 
     
    974977            } 
    975978            i = 0; 
    976             line = swish_xmalloc(SWISH_MAXSTRLEN + 1); 
    977979 
    978980            continue; 
    979981        } 
    980982    } 
     983     
     984    swish_xfree(line); 
    981985 
    982986    return h; 
     
    11641168    } 
    11651169 
    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); 
    11691173        swish_debug_docinfo(info); 
    11701174    } 
     
    12161220    int                 file_cnt; 
    12171221 
    1218     i = 0; 
    1219     file_cnt = 0; 
    1220     nheaders = 0; 
     1222    i           = 0; 
     1223    file_cnt    = 0; 
     1224    nheaders    = 0; 
    12211225    min_headers = 2; 
    12221226     
     
    12241228        fh = stdin; 
    12251229     
    1226     swish_mem_debug(); 
    1227  
    12281230    ln          = swish_xmalloc(SWISH_MAXSTRLEN + 1); 
    12291231    head_buf    = xmlBufferCreateSize((SWISH_MAX_HEADERS * SWISH_MAXSTRLEN) + SWISH_MAX_HEADERS); 
    1230  
    1231     swish_mem_debug(); 
    12321232     
    12331233    /* based on extprog.c */ 
    1234     while (fgets((char *) ln, SWISH_MAXSTRLEN, fh) != 0) 
    1235     {             
     1234    while (fgets((char *) ln, SWISH_MAXSTRLEN, fh) != 0) {             
    12361235     
    12371236    /* we don't use fgetws() because we don't care about 
    12381237     * indiv characters yet */ 
    12391238 
    1240         xmlChar        *end; 
    1241         xmlChar        *line; 
     1239        xmlChar *end; 
     1240        xmlChar *line; 
    12421241 
    12431242        line = swish_str_skip_ws(ln);    /* skip leading white space */ 
     
    12521251            *end = '\0'; 
    12531252        } 
    1254  
    1255         swish_mem_debug(); 
    12561253         
    1257         if (nheaders >= min_headers && xmlStrlen(line) == 0) 
    1258         {         
     1254        if (nheaders >= min_headers && xmlStrlen(line) == 0)  
     1255        { 
    12591256         
    12601257        /* blank line indicates body */ 
     
    12651262            swish_check_docinfo(parser_data->docinfo, s3->config); 
    12661263 
    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",  
    12691266                                (long int) parser_data->docinfo->size); 
    12701267 
     
    12761273 
    12771274            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
    12811278            { 
    12821279                SWISH_DEBUG_MSG("\n===============================================================\n"); 
     
    12861283                SWISH_DEBUG_MSG(" (%d words)", parser_data->docinfo->nwords); 
    12871284            } 
    1288             if (SWISH_DEBUG > 9
     1285            if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    12891286                SWISH_DEBUG_MSG("passing to handler"); 
    12901287 
     
    12921289            (*s3->parser->handler)(parser_data); 
    12931290 
    1294             if (SWISH_DEBUG > 9
     1291            if (SWISH_DEBUG & SWISH_DEBUG_PARSER
    12951292                SWISH_DEBUG_MSG("handler done"); 
    12961293 
    12971294            /* reset everything for next time */ 
    1298  
     1295             
    12991296            swish_xfree(read_buffer); 
    13001297            free_parser_data(parser_data); 
    1301             free_head(head); 
     1298            free_head(head);             
    13021299            xmlBufferEmpty(head_buf); 
    13031300            nheaders = 0; 
     
    13061303            file_cnt++; 
    13071304 
    1308             if (SWISH_DEBUG) 
    1309             { 
     1305            if (SWISH_DEBUG) { 
    13101306                etime = swish_print_fine_time(swish_time_elapsed() - curTime); 
    13111307                SWISH_DEBUG_MSG("%s elapsed time", etime); 
     
    13151311            curTime = swish_time_elapsed(); 
    13161312 
    1317  
    1318             if (SWISH_DEBUG) 
     1313            if (SWISH_DEBUG & SWISH_DEBUG_PARSER) 
    13191314                SWISH_DEBUG_MSG("\n================ filehandle - done with file ===================\n"); 
    13201315 
    1321  
    1322         } 
    1323         else if (xmlStrlen(line) == 0) 
    1324         { 
     1316        } 
     1317        else if (xmlStrlen(line) == 0) { 
     1318         
    13251319            SWISH_CROAK("Not enough header lines reading from filehandle"); 
    13261320 
    1327  
    1328         } 
    1329         else 
    1330         { 
    1331          
    1332             swish_mem_debug(); 
    1333              
     1321        } 
     1322        else { 
     1323                     
    13341324        /* we are reading headers */ 
    13351325            if( xmlBufferAdd( head_buf, line, -1 ) ) 
     
    13441334    } 
    13451335     
    1346     swish_mem_debug(); 
    1347  
    1348     if (xmlBufferLength(head_buf)) 
    1349     { 
     1336    if (xmlBufferLength(head_buf)) { 
    13501337        SWISH_CROAK("Some unparsed header lines remaining"); 
    13511338    } 
     
    13541341    xmlBufferFree(head_buf); 
    13551342     
    1356     swish_mem_debug(); 
    1357  
    13581343    return file_cnt; 
    13591344} 
  • libswish3/trunk/src/libswish3/words.c

    r2096 r2098  
    3232 
    3333extern 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                 ); 
     34static 
     35int 
     36is_ignore_start_ascii(char c); 
     37static 
     38int 
     39is_ignore_end_ascii(char c); 
     40static 
     41int 
     42is_ignore_word_ascii(char c); 
     43static 
     44int 
     45is_ignore_start(wint_t c); 
     46static 
     47int 
     48is_ignore_end(wint_t c); 
     49static 
     50int 
     51is_ignore_word(wint_t c); 
     52static int 
     53bytes_in_chr(wint_t ch); 
     54static void 
     55make_ascii_tables(); 
     56static int 
     57strip_wide_chars(wchar_t * word, int len); 
     58static int 
     59strip_ascii_chars(xmlChar * word, int len); 
     60static int 
     61add_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); 
    5370 
    5471static int initialized = 0; 
  • libswish3/trunk/src/swish_lint.c

    r2096 r2098  
    8484    printf("nwords: %d\n", parser_data->docinfo->nwords); 
    8585     
     86    if (SWISH_DEBUG) 
     87        swish_mem_debug(); 
     88     
    8689    twords += parser_data->docinfo->nwords; 
    8790 
    88     if (SWISH_DEBUG) 
    89     { 
     91    if (SWISH_DEBUG & SWISH_DEBUG_DOCINFO) 
    9092        swish_debug_docinfo(parser_data->docinfo); 
     93         
     94    if (SWISH_DEBUG & SWISH_DEBUG_WORDLIST) 
    9195        swish_debug_wordlist(parser_data->wordlist); 
     96         
     97    if (SWISH_DEBUG & SWISH_DEBUG_NAMEDBUFFER) { 
    9298        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"); 
    94100    } 
    95101} 
     
    216222    if (config_file != NULL) 
    217223        swish_xfree(config_file); 
     224         
    218225     
    219226    return (0); 
  • libswish3/trunk/src/test.pl

    r2097 r2098  
    3131 
    3232my %stdindocs = ( 
    33     'doc.xml' => '8404
     33    'doc.xml' => '8407
    3434 
    3535); 
     
    6262    my $file = shift; 
    6363    my $o = join( ' ', `./swish_lint - < test_stdin/$file` ); 
    64     my ($count) = ( $o =~ m/nwords: (\d+)/ ); 
     64    my ($count) = ( $o =~ m/total words: (\d+)/ ); 
    6565    return $count || 0; 
    6666} 
  • libswish3/trunk/src/test_stdin/doc.xml

    r1913 r2098  
    77ozonometry 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