Lines Matching full:converter
48 * I am disabling the generic ISO-2022 converter after proposing to do so on
58 * 2. I believe that no one is really using the generic ISO-2022 converter
60 * Note that ICU's generic ISO-2022 converter has always output one escape
63 * the previous converter is closed and a new one opened,
70 * The ICU ISO-2022 converter does not handle this - and has no information
169 * Note: The converter uses some leniency:
275 * v) Get the converter name form escSeqStateTable_Result_2022[21] which is JISX208
313 * When the generic ISO-2022 converter is completely removed, not just disabled
385 /*********** ISO 2022 Converter Protos ***********/
390 _ISO2022Close(UConverter *converter);
393 _ISO2022Reset(UConverter *converter, UConverterResetChoice choice);
421 /*************** Converter implementations ******************/
440 setInitialStateToUnicodeKR(UConverter* /*converter*/, UConverterDataISO2022 *myConverterData){
451 setInitialStateFromUnicodeKR(UConverter* converter,UConverterDataISO2022 *myConverterData){
455 if( converter->charErrorBufferLength==0){
457 converter->charErrorBufferLength = 4;
458 converter->charErrorBuffer[0] = 0x1b;
459 converter->charErrorBuffer[1] = 0x24;
460 converter->charErrorBuffer[2] = 0x29;
461 converter->charErrorBuffer[3] = 0x43;
503 // ICU 55 fails to open a converter for an unsupported version.
523 * sharing the table with the Shift-JIS converter
561 // ICU 55 fails to open a converter for an unsupported version.
609 // ICU 55 fails to open a converter for an unsupported version.
678 _ISO2022Close(UConverter *converter) {
679 UConverterDataISO2022* myData =(UConverterDataISO2022 *) (converter->extraInfo);
683 if (converter->extraInfo != NULL) {
684 /*close the array of converter pointers and free the memory*/
693 if(!converter->isExtraLocal){
694 uprv_free (converter->extraInfo);
695 converter->extraInfo = NULL;
701 _ISO2022Reset(UConverter *converter, UConverterResetChoice choice) {
702 UConverterDataISO2022 *myConverterData=(UConverterDataISO2022 *) (converter->extraInfo);
716 if (converter->mode == UCNV_SO){
720 converter->mode = UCNV_SI;
724 converter->charErrorBufferLength = 3;
725 converter->charErrorBuffer[0] = 0x1b;
726 converter->charErrorBuffer[1] = 0x28;
727 converter->charErrorBuffer[2] = 0x42;
736 setInitialStateToUnicodeKR(converter, myConverterData);
739 setInitialStateFromUnicodeKR(converter, myConverterData);
1269 * ISO-2022 Converter
1284 saveThis = args->converter;
1308 args->converter = myData->currentConverter;
1309 ucnv_toUnicode(args->converter,
1317 args->converter = saveThis;
1366 changeState_2022(args->converter,
1408 * The UConverter_fromUnicode_ISO2022_JP converter does not use ucnv_fromUnicode() functions for SBCS,DBCS and
1410 * The converter iterates over each Unicode codepoint
1412 * processed one char at a time it would make sense to reduce the extra processing a canned converter
1573 * for Shift-JIS so that the converter catches it.
1682 UConverter *cnv = args->converter;
1919 * This is necessary because the sub-converter (windows-949)
2111 myData=(UConverterDataISO2022*)(args->converter->extraInfo);
2117 } else if(args->converter->toULength == 1 && mySource < mySourceLimit && myTarget < args->targetLimit) {
2119 mySourceChar = args->converter->toUBytes[0];
2120 args->converter->toULength = 0;
2162 int8_t toULengthBefore = args->converter->toULength;
2164 changeState_2022(args->converter,&(mySource),
2170 args->converter->toUCallbackReason = UCNV_IRREGULAR;
2171 args->converter->toULength = (int8_t)(toULengthBefore + (mySource - mySourceBefore));
2291 args->converter->toUBytes[0] = (uint8_t)mySourceChar;
2292 args->converter->toULength = 1;
2319 args->converter->UCharErrorBuffer[args->converter->UCharErrorBufferLength++]=
2326 toUnicodeCallback(args->converter,mySourceChar,targetUniChar,err);
2353 UConverter* saveConv = args->converter;
2355 args->converter=myConverterData->currentConverter;
2371 args->converter=saveConv;
2391 converterData=(UConverterDataISO2022*)args->converter->extraInfo;
2394 * MBCS converter and return
2403 useFallback = args->converter->useFallback;
2404 isTargetByteDBCS=(UBool)args->converter->fromUnicodeStatus;
2407 isTargetByteDBCS = (UBool) args->converter->fromUnicodeStatus;
2408 if((sourceChar = args->converter->fromUChar32)!=0 && target <targetLimit) {
2422 args->converter->fromUChar32=sourceChar;
2463 args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) (targetByteUnit);
2478 args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) (targetByteUnit -0x80);
2482 args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) ((targetByteUnit>>8) -0x80);
2483 args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) (targetByteUnit-0x80);
2527 args->converter->fromUChar32=sourceChar;
2550 args->flush && source>=sourceLimit && args->converter->fromUChar32==0
2578 args->converter,
2588 args->converter->fromUnicodeStatus = (uint32_t)isTargetByteDBCS;
2597 UConverterDataISO2022* myData=(UConverterDataISO2022*)(args->converter->extraInfo);
2611 subArgs.converter = myData->currentConverter;
2631 * converter, can handle truncated and illegal input etc.
2633 if(args->converter->toULength > 0) {
2634 uprv_memcpy(subArgs.converter->toUBytes, args->converter->toUBytes, args->converter->toULength);
2636 subArgs.converter->toULength = args->converter->toULength;
2663 if(subArgs.converter->toULength > 0) {
2664 uprv_memcpy(args->converter->toUBytes, subArgs.converter->toUBytes, subArgs.converter->toULength);
2666 args->converter->toULength = subArgs.converter->toULength;
2669 if(subArgs.converter->UCharErrorBufferLength > 0) {
2670 uprv_memcpy(args->converter->UCharErrorBuffer, subArgs.converter->UCharErrorBuffer,
2671 subArgs.converter->UCharErrorBufferLength);
2673 args->converter->UCharErrorBufferLength=subArgs.converter->UCharErrorBufferLength;
2674 subArgs.converter->UCharErrorBufferLength = 0;
2683 changeState_2022(args->converter,
2704 myData=(UConverterDataISO2022*)(args->converter->extraInfo);
2712 useFallback = args->converter->useFallback;
2717 } else if(args->converter->toULength == 1 && mySource < mySourceLimit && myTarget < args->targetLimit) {
2719 mySourceChar = args->converter->toUBytes[0];
2720 args->converter->toULength = 0;
2735 args->converter->toUCallbackReason = UCNV_IRREGULAR;
2736 args->converter->toUBytes[0] = (uint8_t)mySourceChar;
2737 args->converter->toULength = 1;
2753 changeState_2022(args->converter,&(mySource),
2796 args->converter->toUBytes[0] = (uint8_t)mySourceChar;
2797 args->converter->toULength = 1;
2814 toUnicodeCallback(args->converter,mySourceChar,targetUniChar,err);
2935 UConverter *cnv = args->converter;
3034 /* try the current SO/G1 converter first */
3045 /* try the other SO/G1 converter; a CNS_11643_1 lookup may result in any plane */
3296 myData=(UConverterDataISO2022*)(args->converter->extraInfo);
3302 } else if(args->converter->toULength == 1 && mySource < mySourceLimit && myTarget < args->targetLimit) {
3304 mySourceChar = args->converter->toUBytes[0];
3305 args->converter->toULength = 0;
3324 args->converter->toUCallbackReason = UCNV_IRREGULAR;
3325 args->converter->toUBytes[0] = mySourceChar;
3326 args->converter->toULength = 1;
3349 int8_t toULengthBefore = args->converter->toULength;
3351 changeState_2022(args->converter,&(mySource),
3357 args->converter->toUCallbackReason = UCNV_IRREGULAR;
3358 args->converter->toULength = (int8_t)(toULengthBefore + (mySource - mySourceBefore));
3432 args->converter->toUBytes[0] = (uint8_t)mySourceChar;
3433 args->converter->toULength = 1;
3465 args->converter->UCharErrorBuffer[args->converter->UCharErrorBufferLength++]=
3472 toUnicodeCallback(args->converter,mySourceChar,targetUniChar,err);
3489 UConverter *cnv = args->converter;
3534 if((UBool)args->converter->fromUnicodeStatus) {
3536 args->converter->fromUnicodeStatus = 0;
3541 if(!(UBool)args->converter->fromUnicodeStatus) {
3543 args->converter->fromUnicodeStatus = 1;
3560 args->converter = myConverterData->currentConverter;
3564 args->converter = cnv;
3592 * Structure for cloning an ISO 2022 converter into a single memory block.
3593 * ucnv_safeClone() of the converter will align the entire cloneStruct,
3594 * and then ucnv_safeClone() of the sub-converter may additionally align
3719 /* there is only one converter for KR, and it is not in the myConverterArray[] */
3722 /* the loop over myConverterArray[] will simply not find another converter */