[BACK]Return to mansearch.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mandoc

Diff for /src/usr.bin/mandoc/mansearch.c between version 1.36 and 1.37

version 1.36, 2014/11/11 19:03:10 version 1.37, 2014/11/18 01:14:40
Line 71 
Line 71 
   
 struct  match {  struct  match {
         uint64_t         pageid; /* identifier in database */          uint64_t         pageid; /* identifier in database */
           uint64_t         bits; /* name type mask */
         char            *desc; /* manual page description */          char            *desc; /* manual page description */
         int              form; /* bit field: formatted, zipped? */          int              form; /* bit field: formatted, zipped? */
 };  };
Line 293 
Line 294 
                         mp = mandoc_calloc(1, sizeof(struct match));                          mp = mandoc_calloc(1, sizeof(struct match));
                         mp->pageid = pageid;                          mp->pageid = pageid;
                         mp->form = sqlite3_column_int(s, 1);                          mp->form = sqlite3_column_int(s, 1);
                           mp->bits = sqlite3_column_int64(s, 3);
                         if (TYPE_Nd == outbit)                          if (TYPE_Nd == outbit)
                                 mp->desc = mandoc_strdup((const char *)                                  mp->desc = mandoc_strdup((const char *)
                                     sqlite3_column_text(s, 0));                                      sqlite3_column_text(s, 0));
Line 328 
Line 330 
                         }                          }
                         mpage = *res + cur;                          mpage = *res + cur;
                         mpage->ipath = i;                          mpage->ipath = i;
                           mpage->bits = mp->bits;
                         mpage->sec = 10;                          mpage->sec = 10;
                         mpage->form = mp->form;                          mpage->form = mp->form;
                         buildnames(mpage, db, s, mp->pageid,                          buildnames(mpage, db, s, mp->pageid,
Line 388 
Line 391 
   
         mp1 = vp1;          mp1 = vp1;
         mp2 = vp2;          mp2 = vp2;
         diff = mp1->sec - mp2->sec;          return( (diff = mp2->bits - mp1->bits) ? diff :
         return(diff ? diff : strcasecmp(mp1->names, mp2->names));                  (diff = mp1->sec - mp2->sec) ? diff :
                   strcasecmp(mp1->names, mp2->names));
 }  }
   
 static void  static void
Line 584 
Line 588 
         size_t           sz;          size_t           sz;
         int              needop;          int              needop;
   
         sql = mandoc_strdup(          sql = mandoc_strdup(e->equal ?
             "SELECT desc, form, pageid FROM mpages WHERE ");              "SELECT desc, form, pageid, bits "
                   "FROM mpages NATURAL JOIN names WHERE " :
               "SELECT desc, form, pageid, 0 FROM mpages WHERE ");
         sz = strlen(sql);          sz = strlen(sql);
   
         for (needop = 0; NULL != e; e = e->next) {          for (needop = 0; NULL != e; e = e->next) {
Line 605 
Line 611 
                         ? "pageid IN (SELECT pageid FROM names "                          ? "pageid IN (SELECT pageid FROM names "
                           "WHERE name REGEXP ?)"                            "WHERE name REGEXP ?)"
                         : e->equal                          : e->equal
                         ? "pageid IN (SELECT pageid FROM names "                          ? "name = ? "
                           "WHERE name = ?)"  
                         : "pageid IN (SELECT pageid FROM names "                          : "pageid IN (SELECT pageid FROM names "
                           "WHERE name MATCH ?)")                            "WHERE name MATCH ?)")
                     : (NULL == e->substr                      : (NULL == e->substr

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.37