1/* -*- c -*- */
2/*****************************************************************************/
3/*  LibreDWG - free implementation of the DWG file format                    */
4/*                                                                           */
5/*  Copyright (C) 2019 Free Software Foundation, Inc.                        */
6/*                                                                           */
7/*  This library is free software, licensed under the terms of the GNU       */
8/*  General Public License as published by the Free Software Foundation,     */
9/*  either version 3 of the License, or (at your option) any later version.  */
10/*  You should have received a copy of the GNU General Public License        */
11/*  along with this program.  If not, see <http://www.gnu.org/licenses/>.    */
12/*****************************************************************************/
13
14/*
15 * summaryinfo.spec: DWG file AcDb::SummaryInfo section specification
16 * written by Reini Urban
17 */
18
19  #include "spec.h"
20
21  SINCE (R_2004) {
22    IF_ENCODE_FROM_EARLIER {
23      FIELD_VALUE (TDINDWG)    = dwg->header_vars.TDINDWG;
24      FIELD_VALUE (TDCREATE)   = dwg->header_vars.TDCREATE;
25      FIELD_VALUE (TDUPDATE)   = dwg->header_vars.TDUPDATE;
26      if (dat->version < R_2007 ||       /* if 2004 -> 2004: TV -> TV */
27          dat->from_version >= R_2007) { /* or already TU */
28        FIELD_VALUE (HYPERLINKBASE) = (BITCODE_TU)dwg->header_vars.HYPERLINKBASE;
29      }
30      else { /* 2004 -> 2007+ */
31        FIELD_VALUE (HYPERLINKBASE) = bit_utf8_to_TU (dwg->header_vars.HYPERLINKBASE, 0);
32      }
33    }
34  }
35
36  FIELD_TU16 (TITLE, 1);
37  FIELD_TU16 (SUBJECT, 1);
38  FIELD_TU16 (AUTHOR, 1);
39  FIELD_TU16 (KEYWORDS, 1);
40  FIELD_TU16 (COMMENTS, 1);
41  FIELD_TU16 (LASTSAVEDBY, 1);
42  FIELD_TU16 (REVISIONNUMBER, 1);
43  FIELD_TU16 (HYPERLINKBASE, 1);
44  //DEBUG_HERE;
45  FIELD_TIMERLL (TDINDWG, 0);
46  FIELD_TIMERLL (TDCREATE, 0);
47  FIELD_TIMERLL (TDUPDATE, 0);
48
49  // CustomPropertyInfo str pair's
50  FIELD_RS (num_props, 0);
51  REPEAT (num_props, props, Dwg_SummaryInfo_Property)
52  REPEAT_BLOCK
53    FIELD_TU16 (props[rcount1].tag, 0);   // CUSTOMPROPERTYTAG
54    FIELD_TU16 (props[rcount1].value, 0); // CUSTOMPROPERTY
55  END_REPEAT_BLOCK
56  END_REPEAT (props)
57
58  FIELD_RL (unknown1, 0);
59  FIELD_RL (unknown2, 0);
60