< prev index next >

src/java.desktop/share/native/liblcms/cmscgats.c

Print this page




 817                 if (it8->ch == '.') {
 818 
 819                     ReadReal(it8, it8->inum);
 820                     it8->sy = SDNUM;
 821                     it8->dnum *= sign;
 822                     return;
 823                 }
 824 
 825                 it8 -> inum *= sign;
 826 
 827                 // Special case. Numbers followed by letters are taken as identifiers
 828 
 829                 if (isidchar(it8 ->ch)) {
 830 
 831                     if (it8 ->sy == SINUM) {
 832 
 833                         sprintf(it8->id, "%d", it8->inum);
 834                     }
 835                     else {
 836 
 837                         sprintf(it8->id, it8 ->DoubleFormatter, it8->dnum);
 838                     }
 839 
 840                     k = (int) strlen(it8 ->id);
 841                     idptr = it8 ->id + k;
 842                     do {
 843 
 844                         if (++k < MAXID) *idptr++ = (char) it8->ch;
 845 
 846                         NextCh(it8);
 847 
 848                     } while (isidchar(it8->ch));
 849 
 850                     *idptr = '\0';
 851                     it8->sy = SIDENT;
 852                 }
 853                 return;
 854 
 855             }
 856             else
 857                 switch ((int) it8->ch) {


 994 {
 995     while (it8->sy == SEOLN) {
 996              InSymbol(it8);
 997     }
 998 }
 999 
1000 
1001 // Returns a string holding current value
1002 static
1003 cmsBool GetVal(cmsIT8* it8, char* Buffer, cmsUInt32Number max, const char* ErrorTitle)
1004 {
1005     switch (it8->sy) {
1006 
1007     case SEOLN:   // Empty value
1008                   Buffer[0]=0;
1009                   break;
1010     case SIDENT:  strncpy(Buffer, it8->id, max);
1011                   Buffer[max-1]=0;
1012                   break;
1013     case SINUM:   snprintf(Buffer, max, "%d", it8 -> inum); break;
1014     case SDNUM:   snprintf(Buffer, max, it8->DoubleFormatter, it8 -> dnum); break;
1015     case SSTRING: strncpy(Buffer, it8->str, max);
1016                   Buffer[max-1] = 0;
1017                   break;
1018 
1019 
1020     default:
1021          return SynError(it8, "%s", ErrorTitle);
1022     }
1023 
1024     Buffer[max] = 0;
1025     return TRUE;
1026 }
1027 
1028 // ---------------------------------------------------------- Table
1029 
1030 static
1031 TABLE* GetTable(cmsIT8* it8)
1032 {
1033    if ((it8 -> nTable >= it8 ->TablesCount)) {
1034 


1375 
1376     return AddToList(it8, &GetTable(it8)->HeaderList, "# ", NULL, Val, WRITE_UNCOOKED) != NULL;
1377 }
1378 
1379 // Sets a property
1380 cmsBool CMSEXPORT cmsIT8SetPropertyStr(cmsHANDLE hIT8, const char* Key, const char *Val)
1381 {
1382     cmsIT8* it8 = (cmsIT8*) hIT8;
1383 
1384     if (!Val) return FALSE;
1385     if (!*Val) return FALSE;
1386 
1387     return AddToList(it8, &GetTable(it8)->HeaderList, Key, NULL, Val, WRITE_STRINGIFY) != NULL;
1388 }
1389 
1390 cmsBool CMSEXPORT cmsIT8SetPropertyDbl(cmsHANDLE hIT8, const char* cProp, cmsFloat64Number Val)
1391 {
1392     cmsIT8* it8 = (cmsIT8*) hIT8;
1393     char Buffer[1024];
1394 
1395     sprintf(Buffer, it8->DoubleFormatter, Val);
1396 
1397     return AddToList(it8, &GetTable(it8)->HeaderList, cProp, NULL, Buffer, WRITE_UNCOOKED) != NULL;
1398 }
1399 
1400 cmsBool CMSEXPORT cmsIT8SetPropertyHex(cmsHANDLE hIT8, const char* cProp, cmsUInt32Number Val)
1401 {
1402     cmsIT8* it8 = (cmsIT8*) hIT8;
1403     char Buffer[1024];
1404 
1405     sprintf(Buffer, "%u", Val);
1406 
1407     return AddToList(it8, &GetTable(it8)->HeaderList, cProp, NULL, Buffer, WRITE_HEXADECIMAL) != NULL;
1408 }
1409 
1410 cmsBool CMSEXPORT cmsIT8SetPropertyUncooked(cmsHANDLE hIT8, const char* Key, const char* Buffer)
1411 {
1412     cmsIT8* it8 = (cmsIT8*) hIT8;
1413 
1414     return AddToList(it8, &GetTable(it8)->HeaderList, Key, NULL, Buffer, WRITE_UNCOOKED) != NULL;
1415 }


2589 }
2590 
2591 
2592 cmsBool CMSEXPORT cmsIT8SetDataRowCol(cmsHANDLE hIT8, int row, int col, const char* Val)
2593 {
2594     cmsIT8* it8 = (cmsIT8*) hIT8;
2595 
2596     _cmsAssert(hIT8 != NULL);
2597 
2598     return SetData(it8, row, col, Val);
2599 }
2600 
2601 
2602 cmsBool CMSEXPORT cmsIT8SetDataRowColDbl(cmsHANDLE hIT8, int row, int col, cmsFloat64Number Val)
2603 {
2604     cmsIT8* it8 = (cmsIT8*) hIT8;
2605     char Buff[256];
2606 
2607     _cmsAssert(hIT8 != NULL);
2608 
2609     sprintf(Buff, it8->DoubleFormatter, Val);
2610 
2611     return SetData(it8, row, col, Buff);
2612 }
2613 
2614 
2615 
2616 const char* CMSEXPORT cmsIT8GetData(cmsHANDLE hIT8, const char* cPatch, const char* cSample)
2617 {
2618     cmsIT8* it8 = (cmsIT8*) hIT8;
2619     int iField, iSet;
2620 
2621     _cmsAssert(hIT8 != NULL);
2622 
2623     iField = LocateSample(it8, cSample);
2624     if (iField < 0) {
2625         return NULL;
2626     }
2627 
2628     iSet = LocatePatch(it8, cPatch);
2629     if (iSet < 0) {


2679     else {
2680         iSet = LocatePatch(it8, cPatch);
2681         if (iSet < 0) {
2682             return FALSE;
2683         }
2684     }
2685 
2686     return SetData(it8, iSet, iField, Val);
2687 }
2688 
2689 
2690 cmsBool CMSEXPORT cmsIT8SetDataDbl(cmsHANDLE hIT8, const char* cPatch,
2691                                    const char* cSample,
2692                                    cmsFloat64Number Val)
2693 {
2694     cmsIT8* it8 = (cmsIT8*) hIT8;
2695     char Buff[256];
2696 
2697     _cmsAssert(hIT8 != NULL);
2698 
2699     snprintf(Buff, 255, it8->DoubleFormatter, Val);

2700     return cmsIT8SetData(hIT8, cPatch, cSample, Buff);
2701 }
2702 
2703 // Buffer should get MAXSTR at least
2704 
2705 const char* CMSEXPORT cmsIT8GetPatchName(cmsHANDLE hIT8, int nPatch, char* buffer)
2706 {
2707     cmsIT8* it8 = (cmsIT8*) hIT8;
2708     TABLE* t;
2709     char* Data;
2710 
2711     _cmsAssert(hIT8 != NULL);
2712 
2713     t = GetTable(it8);
2714     Data = GetData(it8, nPatch, t->SampleID);
2715 
2716     if (!Data) return NULL;
2717     if (!buffer) return Data;
2718 
2719     strncpy(buffer, Data, MAXSTR-1);




 817                 if (it8->ch == '.') {
 818 
 819                     ReadReal(it8, it8->inum);
 820                     it8->sy = SDNUM;
 821                     it8->dnum *= sign;
 822                     return;
 823                 }
 824 
 825                 it8 -> inum *= sign;
 826 
 827                 // Special case. Numbers followed by letters are taken as identifiers
 828 
 829                 if (isidchar(it8 ->ch)) {
 830 
 831                     if (it8 ->sy == SINUM) {
 832 
 833                         sprintf(it8->id, "%d", it8->inum);
 834                     }
 835                     else {
 836 
 837                         sprintf(it8->id, DEFAULT_DBL_FORMAT, it8->dnum);
 838                     }
 839 
 840                     k = (int) strlen(it8 ->id);
 841                     idptr = it8 ->id + k;
 842                     do {
 843 
 844                         if (++k < MAXID) *idptr++ = (char) it8->ch;
 845 
 846                         NextCh(it8);
 847 
 848                     } while (isidchar(it8->ch));
 849 
 850                     *idptr = '\0';
 851                     it8->sy = SIDENT;
 852                 }
 853                 return;
 854 
 855             }
 856             else
 857                 switch ((int) it8->ch) {


 994 {
 995     while (it8->sy == SEOLN) {
 996              InSymbol(it8);
 997     }
 998 }
 999 
1000 
1001 // Returns a string holding current value
1002 static
1003 cmsBool GetVal(cmsIT8* it8, char* Buffer, cmsUInt32Number max, const char* ErrorTitle)
1004 {
1005     switch (it8->sy) {
1006 
1007     case SEOLN:   // Empty value
1008                   Buffer[0]=0;
1009                   break;
1010     case SIDENT:  strncpy(Buffer, it8->id, max);
1011                   Buffer[max-1]=0;
1012                   break;
1013     case SINUM:   snprintf(Buffer, max, "%d", it8 -> inum); break;
1014     case SDNUM:   snprintf(Buffer, max, DEFAULT_DBL_FORMAT, it8 -> dnum); break;
1015     case SSTRING: strncpy(Buffer, it8->str, max);
1016                   Buffer[max-1] = 0;
1017                   break;
1018 
1019 
1020     default:
1021          return SynError(it8, "%s", ErrorTitle);
1022     }
1023 
1024     Buffer[max] = 0;
1025     return TRUE;
1026 }
1027 
1028 // ---------------------------------------------------------- Table
1029 
1030 static
1031 TABLE* GetTable(cmsIT8* it8)
1032 {
1033    if ((it8 -> nTable >= it8 ->TablesCount)) {
1034 


1375 
1376     return AddToList(it8, &GetTable(it8)->HeaderList, "# ", NULL, Val, WRITE_UNCOOKED) != NULL;
1377 }
1378 
1379 // Sets a property
1380 cmsBool CMSEXPORT cmsIT8SetPropertyStr(cmsHANDLE hIT8, const char* Key, const char *Val)
1381 {
1382     cmsIT8* it8 = (cmsIT8*) hIT8;
1383 
1384     if (!Val) return FALSE;
1385     if (!*Val) return FALSE;
1386 
1387     return AddToList(it8, &GetTable(it8)->HeaderList, Key, NULL, Val, WRITE_STRINGIFY) != NULL;
1388 }
1389 
1390 cmsBool CMSEXPORT cmsIT8SetPropertyDbl(cmsHANDLE hIT8, const char* cProp, cmsFloat64Number Val)
1391 {
1392     cmsIT8* it8 = (cmsIT8*) hIT8;
1393     char Buffer[1024];
1394 
1395     sprintf(Buffer, DEFAULT_DBL_FORMAT, Val);
1396 
1397     return AddToList(it8, &GetTable(it8)->HeaderList, cProp, NULL, Buffer, WRITE_UNCOOKED) != NULL;
1398 }
1399 
1400 cmsBool CMSEXPORT cmsIT8SetPropertyHex(cmsHANDLE hIT8, const char* cProp, cmsUInt32Number Val)
1401 {
1402     cmsIT8* it8 = (cmsIT8*) hIT8;
1403     char Buffer[1024];
1404 
1405     sprintf(Buffer, "%u", Val);
1406 
1407     return AddToList(it8, &GetTable(it8)->HeaderList, cProp, NULL, Buffer, WRITE_HEXADECIMAL) != NULL;
1408 }
1409 
1410 cmsBool CMSEXPORT cmsIT8SetPropertyUncooked(cmsHANDLE hIT8, const char* Key, const char* Buffer)
1411 {
1412     cmsIT8* it8 = (cmsIT8*) hIT8;
1413 
1414     return AddToList(it8, &GetTable(it8)->HeaderList, Key, NULL, Buffer, WRITE_UNCOOKED) != NULL;
1415 }


2589 }
2590 
2591 
2592 cmsBool CMSEXPORT cmsIT8SetDataRowCol(cmsHANDLE hIT8, int row, int col, const char* Val)
2593 {
2594     cmsIT8* it8 = (cmsIT8*) hIT8;
2595 
2596     _cmsAssert(hIT8 != NULL);
2597 
2598     return SetData(it8, row, col, Val);
2599 }
2600 
2601 
2602 cmsBool CMSEXPORT cmsIT8SetDataRowColDbl(cmsHANDLE hIT8, int row, int col, cmsFloat64Number Val)
2603 {
2604     cmsIT8* it8 = (cmsIT8*) hIT8;
2605     char Buff[256];
2606 
2607     _cmsAssert(hIT8 != NULL);
2608 
2609     sprintf(Buff, DEFAULT_DBL_FORMAT, Val);
2610 
2611     return SetData(it8, row, col, Buff);
2612 }
2613 
2614 
2615 
2616 const char* CMSEXPORT cmsIT8GetData(cmsHANDLE hIT8, const char* cPatch, const char* cSample)
2617 {
2618     cmsIT8* it8 = (cmsIT8*) hIT8;
2619     int iField, iSet;
2620 
2621     _cmsAssert(hIT8 != NULL);
2622 
2623     iField = LocateSample(it8, cSample);
2624     if (iField < 0) {
2625         return NULL;
2626     }
2627 
2628     iSet = LocatePatch(it8, cPatch);
2629     if (iSet < 0) {


2679     else {
2680         iSet = LocatePatch(it8, cPatch);
2681         if (iSet < 0) {
2682             return FALSE;
2683         }
2684     }
2685 
2686     return SetData(it8, iSet, iField, Val);
2687 }
2688 
2689 
2690 cmsBool CMSEXPORT cmsIT8SetDataDbl(cmsHANDLE hIT8, const char* cPatch,
2691                                    const char* cSample,
2692                                    cmsFloat64Number Val)
2693 {
2694     cmsIT8* it8 = (cmsIT8*) hIT8;
2695     char Buff[256];
2696 
2697     _cmsAssert(hIT8 != NULL);
2698 
2699     sprintf(Buff, DEFAULT_DBL_FORMAT, Val);
2700 
2701     return cmsIT8SetData(hIT8, cPatch, cSample, Buff);
2702 }
2703 
2704 // Buffer should get MAXSTR at least
2705 
2706 const char* CMSEXPORT cmsIT8GetPatchName(cmsHANDLE hIT8, int nPatch, char* buffer)
2707 {
2708     cmsIT8* it8 = (cmsIT8*) hIT8;
2709     TABLE* t;
2710     char* Data;
2711 
2712     _cmsAssert(hIT8 != NULL);
2713 
2714     t = GetTable(it8);
2715     Data = GetData(it8, nPatch, t->SampleID);
2716 
2717     if (!Data) return NULL;
2718     if (!buffer) return Data;
2719 
2720     strncpy(buffer, Data, MAXSTR-1);


< prev index next >