IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 25, 2006, 2:26:24 PM (20 years ago)
Author:
Paul Price
Message:

Want to reformat all concepts so that they can be altered --- not simply copied.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/astrom/pmConceptsRead.c

    r6955 r6983  
    6161        }
    6262
    63         // Reformat so that everything's clean
    64         if (strcmp(spec->blank->name, parsed->name) != 0 ||
    65                 strcmp(spec->blank->comment, parsed->comment) != 0) {
    66             psMetadataItem *cleaned = NULL;     // Item that's been cleaned up --- correct name and comment
    67             switch (spec->blank->type) {
    68             case PS_DATA_STRING:
    69                 cleaned = psMetadataItemAllocStr(spec->blank->name, spec->blank->comment, parsed->data.V);
    70                 break;
    71             case PS_DATA_S32:
    72                 cleaned = psMetadataItemAllocS32(spec->blank->name, spec->blank->comment, parsed->data.S32);
    73                 break;
    74             case PS_DATA_F32:
    75                 cleaned = psMetadataItemAllocF32(spec->blank->name, spec->blank->comment, parsed->data.F32);
    76                 break;
    77             case PS_DATA_F64:
    78                 cleaned = psMetadataItemAllocF64(spec->blank->name, spec->blank->comment, parsed->data.F64);
    79                 break;
    80             default:
    81                 cleaned = psMetadataItemAlloc(spec->blank->name, concept->type, spec->blank->comment,
    82                                               parsed->data.V);
    83             }
    84             psFree(parsed);
    85             parsed = cleaned;
    86         }
    87         psMetadataAddItem(target, parsed, PS_LIST_TAIL, PS_META_REPLACE);
    88         psFree(parsed);     // Drop reference
     63        // Plug the parsed concept into a new psMetadataItem, so each "concept" has its own version that can
     64        // be altered without affecting the others.  Also, so that we maintain the template name and comment.
     65        psMetadataItem *cleaned = NULL;     // Item that's been cleaned up --- correct name and comment
     66        switch (spec->blank->type) {
     67        case PS_DATA_STRING:
     68            cleaned = psMetadataItemAllocStr(spec->blank->name, spec->blank->comment, parsed->data.V);
     69            break;
     70        case PS_DATA_S32:
     71            cleaned = psMetadataItemAllocS32(spec->blank->name, spec->blank->comment, parsed->data.S32);
     72            break;
     73        case PS_DATA_F32:
     74            cleaned = psMetadataItemAllocF32(spec->blank->name, spec->blank->comment, parsed->data.F32);
     75            break;
     76        case PS_DATA_F64:
     77            cleaned = psMetadataItemAllocF64(spec->blank->name, spec->blank->comment, parsed->data.F64);
     78            break;
     79        default:
     80            cleaned = psMetadataItemAlloc(spec->blank->name, parsed->type, spec->blank->comment,
     81                                          parsed->data.V);
     82        }
     83        psFree(parsed);
     84        psMetadataAddItem(target, cleaned, PS_LIST_TAIL, PS_META_REPLACE);
     85        psFree(cleaned);                 // Drop reference
    8986        return true;
    9087    }
Note: See TracChangeset for help on using the changeset viewer.