Palm-Ztxt

 view release on metacpan or  search on metacpan

makeztxt-1.62/libztxt/ztxt_generate_db.c  view on Meta::CPAN

ztxt_generate_db(ztxt *db)
{
  long          data_offset;
  int           num_data_records;
  int           curr_record;
  int           x;
  char          *y;
  long          offset;
  RecordEntryType *dbRecordEntries;
  int           sub;
  long          recdata_offset;
  long          anno_totalsize;
  anno_node     *anno;
  int           crc;


  /* Calculate the offset in the DB where the data will go */
  data_offset = sizeof(DatabaseHdrType) - sizeof(UInt16);

  /* One extra for record #0 */
  db->num_records++;

makeztxt-1.62/libztxt/ztxt_generate_db.c  view on Meta::CPAN

      dbRecordEntries->uniqueID[2] = y[3];
      dbRecordEntries++;
      curr_record++;
    }

  /* Add annotation records */
  anno_totalsize = 0;
  if (db->num_annotations > 0)
    {
      /* Add annotation index */
      recdata_offset =
        (data_offset + sizeof(zTXT_record0) + db->comp_size
         + ((sizeof(UInt32) + MAX_BMRK_LENGTH) * db->num_bookmarks));
      dbRecordEntries->localChunkID = htonl(recdata_offset);
      dbRecordEntries->attributes = dmRecAttrDirty;
      x = htonl(0x00424200 + curr_record);
      y = (char *)&x;
      dbRecordEntries->uniqueID[0] = y[1];
      dbRecordEntries->uniqueID[1] = y[2];
      dbRecordEntries->uniqueID[2] = y[3];
      dbRecordEntries++;
      curr_record++;

      anno = db->annotations;
      recdata_offset =
        (data_offset + sizeof(zTXT_record0) + db->comp_size
         + ((sizeof(UInt32) + MAX_BMRK_LENGTH) * db->num_bookmarks)
         + ((sizeof(UInt32) + MAX_BMRK_LENGTH) * db->num_annotations));
      while (anno)
        {
          /* Add record entry for each annotation */
          dbRecordEntries->localChunkID = htonl(recdata_offset
                                                + anno_totalsize);
          dbRecordEntries->attributes = dmRecAttrDirty;
          x = htonl(0x00424200 + curr_record);
          y = (char *)&x;
          dbRecordEntries->uniqueID[0] = y[1];
          dbRecordEntries->uniqueID[1] = y[2];
          dbRecordEntries->uniqueID[2] = y[3];
          dbRecordEntries++;
          curr_record++;



( run in 0.487 second using v1.01-cache-2.11-cpan-454fe037f31 )