(root)/
libredwg-0.13/
src/
summaryinfo.spec
/* -*- c -*- */
/*****************************************************************************/
/*  LibreDWG - free implementation of the DWG file format                    */
/*                                                                           */
/*  Copyright (C) 2019 Free Software Foundation, Inc.                        */
/*                                                                           */
/*  This library is free software, licensed under the terms of the GNU       */
/*  General Public License as published by the Free Software Foundation,     */
/*  either version 3 of the License, or (at your option) any later version.  */
/*  You should have received a copy of the GNU General Public License        */
/*  along with this program.  If not, see <http://www.gnu.org/licenses/>.    */
/*****************************************************************************/

/*
 * summaryinfo.spec: DWG file AcDb::SummaryInfo section specification
 * written by Reini Urban
 */

  #include "spec.h"

  SINCE (R_2004) {
    IF_ENCODE_FROM_EARLIER {
      FIELD_VALUE (TDINDWG)    = dwg->header_vars.TDINDWG;
      FIELD_VALUE (TDCREATE)   = dwg->header_vars.TDCREATE;
      FIELD_VALUE (TDUPDATE)   = dwg->header_vars.TDUPDATE;
      if (dat->version < R_2007) /* if 2004 -> 2004: TV -> TV */
        FIELD_VALUE (HYPERLINKBASE)
            = (BITCODE_T16)strdup (dwg->header_vars.HYPERLINKBASE);
      else if (dat->from_version >= R_2007)
        { /* or already TU */
          FIELD_VALUE (HYPERLINKBASE) = (BITCODE_T16)bit_wcs2dup (
              (BITCODE_TU)dwg->header_vars.HYPERLINKBASE);
        }
      else
        { /* 2004 -> 2007+ */
          FIELD_VALUE (HYPERLINKBASE) = (BITCODE_T16)bit_utf8_to_TU (
              dwg->header_vars.HYPERLINKBASE, 0);
        }
    }
  }
  FIELD_T16 (TITLE, 1);
  FIELD_T16 (SUBJECT, 1);
  FIELD_T16 (AUTHOR, 1);
  FIELD_T16 (KEYWORDS, 1);
  FIELD_T16 (COMMENTS, 1);
  FIELD_T16 (LASTSAVEDBY, 1);
  FIELD_T16 (REVISIONNUMBER, 1);
  FIELD_T16 (HYPERLINKBASE, 1);
  //DEBUG_HERE;
  FIELD_TIMERLL (TDINDWG, 0);
  FIELD_TIMERLL (TDCREATE, 0);
  FIELD_TIMERLL (TDUPDATE, 0);

  // CustomPropertyInfo str pair's
  FIELD_RS (num_props, 0);
  REPEAT (num_props, props, Dwg_SummaryInfo_Property)
  REPEAT_BLOCK
    FIELD_TU16 (props[rcount1].tag, 0);   // CUSTOMPROPERTYTAG
    FIELD_TU16 (props[rcount1].value, 0); // CUSTOMPROPERTY
  END_REPEAT_BLOCK
  END_REPEAT (props)

  FIELD_RL (unknown1, 0);
  FIELD_RL (unknown2, 0);