(root)/
libredwg-0.13/
test/
unit-testing/
field.c
       1  #define DWG_TYPE DWG_TYPE_FIELD
       2  #include "common.c"
       3  
       4  void
       5  api_process (dwg_object *obj)
       6  {
       7    int error, isnew;
       8    BITCODE_TV id;         /* 1 */
       9    BITCODE_TV code;       /* 2,3 */
      10    BITCODE_BL num_childs; /* 90 */
      11    BITCODE_H *childs, *hdls;
      12    BITCODE_BL num_objects;           /* 97 */
      13    BITCODE_H *objects;               /* code:5, 331 */
      14    BITCODE_TV format;                /* 4, until r2004 only */
      15    BITCODE_BL evaluation_option;     /* 91 */
      16    BITCODE_BL filing_option;         /* 92 */
      17    BITCODE_BL field_state;           /* 94 */
      18    BITCODE_BL evaluation_status;     /* 95 */
      19    BITCODE_BL evaluation_error_code; /* 96 */
      20    BITCODE_TV evaluation_error_msg;  /* 300 */
      21    // Dwg_TABLE_value value;
      22    BITCODE_TV value_string;        /* 301,9 */
      23    BITCODE_BL value_string_length; /* 98 ODA bug: TV */
      24    BITCODE_BL i, num_childval;     /* 93 */
      25    Dwg_FIELD_ChildValue *childval;
      26  
      27    Dwg_Version_Type dwg_version = obj->parent->header.version;
      28    dwg_obj_field *_obj = dwg_object_to_FIELD (obj);
      29  
      30    CHK_ENTITY_UTF8TEXT (_obj, FIELD, id);
      31    CHK_ENTITY_UTF8TEXT (_obj, FIELD, code);
      32    CHK_ENTITY_TYPE (_obj, FIELD, num_childs, BL);
      33    if (!dwg_dynapi_entity_value (_obj, "FIELD", "childs", &childs, NULL))
      34      fail ("FIELD.childs");
      35    hdls = _obj->childs;
      36    for (i = 0; i < num_childs; i++)
      37      {
      38        if (hdls[i] == childs[i])
      39          ok ("FIELD.childs[%d]: " FORMAT_REF, i, ARGS_REF (childs[i]));
      40        else
      41          fail ("FIELD.childs[%d]: " FORMAT_REF, i, ARGS_REF (childs[i]));
      42      }
      43    CHK_ENTITY_TYPE (_obj, FIELD, num_objects, BL);
      44    if (!dwg_dynapi_entity_value (_obj, "FIELD", "objects", &objects, NULL))
      45      fail ("FIELD.objects");
      46    hdls = _obj->objects;
      47    for (i = 0; i < num_objects; i++)
      48      {
      49        if (hdls[i] == objects[i])
      50          ok ("FIELD.objects[%d]: " FORMAT_REF, i, ARGS_REF (objects[i]));
      51        else
      52          fail ("FIELD.objects[%d]: " FORMAT_REF, i, ARGS_REF (objects[i]));
      53      }
      54    CHK_ENTITY_UTF8TEXT (_obj, FIELD, format);
      55    CHK_ENTITY_TYPE (_obj, FIELD, evaluation_option, BL);
      56    CHK_ENTITY_TYPE (_obj, FIELD, filing_option, BL);
      57    CHK_ENTITY_TYPE (_obj, FIELD, field_state, BL);
      58    CHK_ENTITY_TYPE (_obj, FIELD, evaluation_status, BL);
      59    CHK_ENTITY_TYPE (_obj, FIELD, evaluation_error_code, BL);
      60    CHK_ENTITY_UTF8TEXT (_obj, FIELD, evaluation_error_msg);
      61    // Dwg_TABLE_value value;
      62    CHK_ENTITY_UTF8TEXT (_obj, FIELD, value_string);
      63    CHK_ENTITY_TYPE (_obj, FIELD, value_string_length, BL);
      64    CHK_ENTITY_TYPE (_obj, FIELD, num_childval, BL);
      65    if (!dwg_dynapi_entity_value (_obj, "FIELD", "childval", &childval, NULL))
      66      fail ("FIELD.childval");
      67    for (i = 0; i < num_childval; i++)
      68      {
      69        CHK_SUBCLASS_UTF8TEXT (childval[i], FIELD_ChildValue, key);
      70        // embedded value
      71      }
      72  }