• Home
  • Raw
  • Download

Lines Matching refs:states

188 ucm_addState(UCMStates *states, const char *s) {  in ucm_addState()  argument
191 if(states->countStates==MBCS_MAX_STATE_COUNT) { in ucm_addState()
196 error=parseState(s, states->stateTable[states->countStates], in ucm_addState()
197 &states->stateFlags[states->countStates]); in ucm_addState()
203 ++states->countStates; in ucm_addState()
209 UCMStates *states; in ucm_parseHeaderLine() local
213 states=&ucm->states; in ucm_parseHeaderLine()
267 states->conversionType=UCNV_DBCS; in ucm_parseHeaderLine()
269 states->conversionType = UCNV_SBCS; in ucm_parseHeaderLine()
271 states->conversionType = UCNV_MBCS; in ucm_parseHeaderLine()
273 states->conversionType = UCNV_EBCDIC_STATEFUL; in ucm_parseHeaderLine()
282 states->maxCharLength=(int8_t)(c-'0'); in ucm_parseHeaderLine()
283 states->outputType=(int8_t)(states->maxCharLength-1); in ucm_parseHeaderLine()
292 states->minCharLength=(int8_t)(c-'0'); in ucm_parseHeaderLine()
300 switch(states->conversionType) { in ucm_parseHeaderLine()
304 states->conversionType=UCNV_MBCS; in ucm_parseHeaderLine()
313 if(states->maxCharLength==0) { in ucm_parseHeaderLine()
317 ucm_addState(states, *pValue); in ucm_parseHeaderLine()
334 sumUpStates(UCMStates *states) { in sumUpStates() argument
347 for(count=states->countStates; !allStatesReady && count>=0; --count) { in sumUpStates()
349 for(state=states->countStates-1; state>=0; --state) { in sumUpStates()
350 if(!(states->stateFlags[state]&MBCS_STATE_FLAG_READY)) { in sumUpStates()
356 entry=states->stateTable[state][cell]; in sumUpStates()
360 states->stateTable[state][cell]=MBCS_ENTRY_FINAL_SET_VALUE(entry, sum); in sumUpStates()
364 states->stateTable[state][cell]=MBCS_ENTRY_FINAL_SET_VALUE(entry, sum); in sumUpStates()
376 entry=states->stateTable[state][cell]; in sumUpStates()
378 … if(states->stateFlags[MBCS_ENTRY_TRANSITION_STATE(entry)]&MBCS_STATE_FLAG_READY) { in sumUpStates()
379states->stateTable[state][cell]=MBCS_ENTRY_TRANSITION_SET_OFFSET(entry, sum); in sumUpStates()
380 sum+=states->stateOffsetSum[MBCS_ENTRY_TRANSITION_STATE(entry)]; in sumUpStates()
390 states->stateOffsetSum[state]=sum; in sumUpStates()
391 states->stateFlags[state]|=MBCS_STATE_FLAG_READY; in sumUpStates()
407 sum=states->stateOffsetSum[0]; in sumUpStates()
408 for(state=1; state<states->countStates; ++state) { in sumUpStates()
409 if((states->stateFlags[state]&0xf)==MBCS_STATE_FLAG_DIRECT) { in sumUpStates()
411 sum+=states->stateOffsetSum[state]; in sumUpStates()
413 entry=states->stateTable[state][cell]; in sumUpStates()
415 states->stateTable[state][cell]=MBCS_ENTRY_TRANSITION_ADD_OFFSET(entry, sum2); in sumUpStates()
422 return states->countToUCodeUnits=(sum+1)&~1; in sumUpStates()
426 ucm_processStates(UCMStates *states, UBool ignoreSISOCheck) { in ucm_processStates() argument
429 if(states->conversionType==UCNV_UNSUPPORTED_CONVERTER) { in ucm_processStates()
434 if(states->countStates==0) { in ucm_processStates()
435 switch(states->conversionType) { in ucm_processStates()
438 if(states->maxCharLength!=1) { in ucm_processStates()
442 states->conversionType=UCNV_MBCS; in ucm_processStates()
443 ucm_addState(states, "0-ff"); in ucm_processStates()
451 if(states->minCharLength!=1 || states->maxCharLength!=2) { in ucm_processStates()
455 states->conversionType=UCNV_MBCS; in ucm_processStates()
456 ucm_addState(states, "0-ff, e:1.s, f:0.s"); in ucm_processStates()
457 ucm_addState(states, "initial, 0-3f:4, e:1.s, f:0.s, 40:3, 41-fe:2, ff:4"); in ucm_processStates()
458 ucm_addState(states, "0-40:1.i, 41-fe:1., ff:1.i"); in ucm_processStates()
459 ucm_addState(states, "0-ff:1.i, 40:1."); in ucm_processStates()
460 ucm_addState(states, "0-ff:1.i"); in ucm_processStates()
464 if(states->minCharLength!=2 || states->maxCharLength!=2) { in ucm_processStates()
468 states->conversionType = UCNV_MBCS; in ucm_processStates()
469 ucm_addState(states, "0-3f:3, 40:2, 41-fe:1, ff:3"); in ucm_processStates()
470 ucm_addState(states, "41-fe"); in ucm_processStates()
471 ucm_addState(states, "40"); in ucm_processStates()
472 ucm_addState(states, ""); in ucm_processStates()
487 if(states->maxCharLength<states->minCharLength) { in ucm_processStates()
494 for(state=0; state<states->countStates; ++state) { in ucm_processStates()
495 if((states->stateFlags[state]&0xf)!=MBCS_STATE_FLAG_DIRECT) { in ucm_processStates()
499 if(states->maxCharLength>count+1) { in ucm_processStates()
504 if(states->minCharLength==1) { in ucm_processStates()
512 entry=states->stateTable[0][cell]; in ucm_processStates()
531 for(state=states->countStates-1; state>=0; --state) { in ucm_processStates()
533 entry=states->stateTable[state][cell]; in ucm_processStates()
534 if((uint8_t)MBCS_ENTRY_STATE(entry)>=states->countStates) { in ucm_processStates()
539 …if(MBCS_ENTRY_IS_FINAL(entry) && (states->stateFlags[MBCS_ENTRY_STATE(entry)]&0xf)!=MBCS_STATE_FLA… in ucm_processStates()
543 …} else if(MBCS_ENTRY_IS_TRANSITION(entry) && (states->stateFlags[MBCS_ENTRY_STATE(entry)]&0xf)==MB… in ucm_processStates()
552 if(states->countStates>=2 && (states->stateFlags[1]&0xf)==MBCS_STATE_FLAG_DIRECT) { in ucm_processStates()
553 if(states->maxCharLength!=2) { in ucm_processStates()
554 …r, "ucm error: SI/SO codepages must have max 2 bytes/char (not %x)\n", (int)states->maxCharLength); in ucm_processStates()
557 if(states->countStates<3) { in ucm_processStates()
558 …rr, "ucm error: SI/SO codepages must have at least 3 states (not %x)\n", (int)states->countStates); in ucm_processStates()
563 (states->stateTable[0][0xe]==MBCS_ENTRY_FINAL(1, MBCS_STATE_CHANGE_ONLY, 0) && in ucm_processStates()
564 states->stateTable[0][0xf]==MBCS_ENTRY_FINAL(0, MBCS_STATE_CHANGE_ONLY, 0) && in ucm_processStates()
565 states->stateTable[1][0xe]==MBCS_ENTRY_FINAL(1, MBCS_STATE_CHANGE_ONLY, 0) && in ucm_processStates()
566 states->stateTable[1][0xf]==MBCS_ENTRY_FINAL(0, MBCS_STATE_CHANGE_ONLY, 0)) in ucm_processStates()
568 states->outputType=MBCS_OUTPUT_2_SISO; in ucm_processStates()
579 while(state<states->countStates) { in ucm_processStates()
580 if((states->stateFlags[state]&0xf)==MBCS_STATE_FLAG_DIRECT) { in ucm_processStates()
587 sumUpStates(states); in ucm_processStates()
616 compactToUnicode2(UCMStates *states, in compactToUnicode2() argument
628 if(states->outputType==MBCS_OUTPUT_2_SISO) { in compactToUnicode2()
638 entry=states->stateTable[leadState][i]; in compactToUnicode2()
644 for(i=1; i<states->countStates; ++i) { in compactToUnicode2()
655 entry=states->stateTable[leadState][i]; in compactToUnicode2()
662 entry=states->stateTable[trailState][j]; in compactToUnicode2()
700 if(states->countStates>=MBCS_MAX_STATE_COUNT) { in compactToUnicode2()
706 oldStateTable=(int32_t (*)[256])uprv_malloc(states->countStates*1024); in compactToUnicode2()
711 uprv_memcpy(oldStateTable, states->stateTable, states->countStates*1024); in compactToUnicode2()
718 newState=states->countStates++; in compactToUnicode2()
719 states->stateFlags[newState]=0; in compactToUnicode2()
722 entry=states->stateTable[trailState][i]; in compactToUnicode2()
726states->stateTable[newState][i]=MBCS_ENTRY_FINAL_SET_ACTION_VALUE(entry, MBCS_STATE_UNASSIGNED, 0x… in compactToUnicode2()
729 states->stateTable[newState][i]=entry; in compactToUnicode2()
737states->stateTable[leadState][i]=MBCS_ENTRY_SET_STATE(states->stateTable[leadState][i], newState); in compactToUnicode2()
742 for(i=0; i<states->countStates; ++i) { in compactToUnicode2()
743 states->stateFlags[i]&=~MBCS_STATE_FLAG_READY; in compactToUnicode2()
745 sum=sumUpStates(states); in compactToUnicode2()
763 --states->countStates; in compactToUnicode2()
764 uprv_memcpy(states->stateTable, oldStateTable, states->countStates*1024); in compactToUnicode2()
782 for(leadState=0; leadState<states->countStates; ++leadState) { in compactToUnicode2()
783 if((states->stateFlags[leadState]&0xf)==MBCS_STATE_FLAG_DIRECT) { in compactToUnicode2()
786 entry=states->stateTable[leadState][i]; in compactToUnicode2()
795 entry=states->stateTable[trailState][j]; in compactToUnicode2()
843 findUnassigned(UCMStates *states, in findUnassigned() argument
853 entry=states->stateTable[state][i]; in findUnassigned()
855 savings=findUnassigned(states, in findUnassigned()
900 compactToUnicodeHelper(UCMStates *states, in compactToUnicodeHelper() argument
906 for(state=0; state<states->countStates; ++state) { in compactToUnicodeHelper()
907 if((states->stateFlags[state]&0xf)==MBCS_STATE_FLAG_DIRECT) { in compactToUnicodeHelper()
908 savings=findUnassigned(states, in compactToUnicodeHelper()
929 ucm_optimizeStates(UCMStates *states, in ucm_optimizeStates() argument
937 for(state=0; state<states->countStates; ++state) { in ucm_optimizeStates()
939 entry=states->stateTable[state][cell]; in ucm_optimizeStates()
946states->stateTable[state][cell]=MBCS_ENTRY_FINAL_SET_ACTION(entry, MBCS_STATE_UNASSIGNED); in ucm_optimizeStates()
952 if(states->maxCharLength==2) { in ucm_optimizeStates()
953 compactToUnicode2(states, pUnicodeCodeUnits, toUFallbacks, countToUFallbacks, verbose); in ucm_optimizeStates()
954 } else if(states->maxCharLength>2) { in ucm_optimizeStates()
956 compactToUnicodeHelper(states, *pUnicodeCodeUnits, toUFallbacks, countToUFallbacks); in ucm_optimizeStates()
978 ucm_countChars(UCMStates *states, in ucm_countChars() argument
988 if(states->countStates==0) { in ucm_countChars()
994 if(length==2 && states->outputType==MBCS_OUTPUT_2_SISO) { in ucm_countChars()
1004 entry=states->stateTable[state][bytes[i]]; in ucm_countChars()
1045 if(count>1 && states->outputType==MBCS_OUTPUT_2_SISO && length!=2*count) { in ucm_countChars()