[BACK]Return to mandocdb.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/mandocdb.c between version 1.8 and 1.9

version 1.8, 2011/11/13 10:49:57 version 1.9, 2011/11/20 12:39:08
Line 83  static void    buf_append(struct buf *, const char *);
Line 83  static void    buf_append(struct buf *, const char *);
 static  void              buf_appendb(struct buf *,  static  void              buf_appendb(struct buf *,
                                 const void *, size_t);                                  const void *, size_t);
 static  void              dbt_put(DB *, const char *, DBT *, DBT *);  static  void              dbt_put(DB *, const char *, DBT *, DBT *);
 static  void              hash_put(DB *, const struct buf *, int);  static  void              hash_put(DB *, const struct buf *, uint64_t);
 static  void              hash_reset(DB **);  static  void              hash_reset(DB **);
 static  void              index_merge(const struct of *, struct mparse *,  static  void              index_merge(const struct of *, struct mparse *,
                                 struct buf *, struct buf *,                                  struct buf *, struct buf *,
Line 450  index_merge(const struct of *of, struct mparse *mp,
Line 450  index_merge(const struct of *of, struct mparse *mp,
         const char      *fn, *msec, *mtitle, *arch;          const char      *fn, *msec, *mtitle, *arch;
         size_t           sv;          size_t           sv;
         unsigned         seq;          unsigned         seq;
         char             vbuf[8];          struct db_val    vbuf;
   
         for (rec = 0; of; of = of->next) {          for (rec = 0; of; of = of->next) {
                 fn = of->fname;                  fn = of->fname;
Line 513  index_merge(const struct of *of, struct mparse *mp,
Line 513  index_merge(const struct of *of, struct mparse *mp,
                  * Copy from the in-memory hashtable of pending keywords                   * Copy from the in-memory hashtable of pending keywords
                  * into the database.                   * into the database.
                  */                   */
   
                 memset(vbuf, 0, sizeof(uint32_t));  
                 memcpy(vbuf + 4, &rec, sizeof(uint32_t));  
   
                   vbuf.rec = rec;
                 seq = R_FIRST;                  seq = R_FIRST;
                 while (0 == (ch = (*hash->seq)(hash, &key, &val, seq))) {                  while (0 == (ch = (*hash->seq)(hash, &key, &val, seq))) {
                         seq = R_NEXT;                          seq = R_NEXT;
   
                         memcpy(vbuf, val.data, sizeof(uint32_t));                          vbuf.mask = *(uint64_t *)val.data;
                         val.size = sizeof(vbuf);                          val.size = sizeof(struct db_val);
                         val.data = vbuf;                          val.data = &vbuf;
   
                         if (verb > 1)                          if (verb > 1)
                                 printf("%s: Added keyword: %s\n",                                  printf("%s: Added keyword: %s\n",
Line 568  index_prune(const struct of *ofile, DB *db, const char
Line 566  index_prune(const struct of *ofile, DB *db, const char
 {  {
         const struct of *of;          const struct of *of;
         const char      *fn;          const char      *fn;
           struct db_val   *vbuf;
         unsigned         seq, sseq;          unsigned         seq, sseq;
         DBT              key, val;          DBT              key, val;
         size_t           reccur;          size_t           reccur;
Line 600  index_prune(const struct of *ofile, DB *db, const char
Line 599  index_prune(const struct of *ofile, DB *db, const char
                 sseq = R_FIRST;                  sseq = R_FIRST;
                 while (0 == (ch = (*db->seq)(db, &key, &val, sseq))) {                  while (0 == (ch = (*db->seq)(db, &key, &val, sseq))) {
                         sseq = R_NEXT;                          sseq = R_NEXT;
                         assert(8 == val.size);                          assert(sizeof(struct db_val) == val.size);
                         if (*maxrec != *(recno_t *)(val.data + 4))                          vbuf = val.data;
                           if (*maxrec != vbuf->rec)
                                 continue;                                  continue;
                         if (verb)                          if (verb)
                                 printf("%s: Deleted keyword: %s\n",                                  printf("%s: Deleted keyword: %s\n",
Line 982  pmdoc_Nm(MDOC_ARGS)
Line 982  pmdoc_Nm(MDOC_ARGS)
 }  }
   
 static void  static void
 hash_put(DB *db, const struct buf *buf, int mask)  hash_put(DB *db, const struct buf *buf, uint64_t mask)
 {  {
         DBT              key, val;          DBT              key, val;
         int              rc;          int              rc;
Line 997  hash_put(DB *db, const struct buf *buf, int mask)
Line 997  hash_put(DB *db, const struct buf *buf, int mask)
                 perror("hash");                  perror("hash");
                 exit((int)MANDOCLEVEL_SYSERR);                  exit((int)MANDOCLEVEL_SYSERR);
         } else if (0 == rc)          } else if (0 == rc)
                 mask |= *(int *)val.data;                  mask |= *(uint64_t *)val.data;
   
         val.data = &mask;          val.data = &mask;
         val.size = sizeof(int);          val.size = sizeof(uint64_t);
   
         if ((rc = (*db->put)(db, &key, &val, 0)) < 0) {          if ((rc = (*db->put)(db, &key, &val, 0)) < 0) {
                 perror("hash");                  perror("hash");

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

CVSweb