Lines Matching full:converter
50 * I am disabling the generic ISO-2022 converter after proposing to do so on
60 * 2. I believe that no one is really using the generic ISO-2022 converter
62 * Note that ICU's generic ISO-2022 converter has always output one escape
65 * the previous converter is closed and a new one opened,
72 * The ICU ISO-2022 converter does not handle this - and has no information
171 * Note: The converter uses some leniency:
277 * v) Get the converter name form escSeqStateTable_Result_2022[21] which is JISX208
315 * When the generic ISO-2022 converter is completely removed, not just disabled
387 /*********** ISO 2022 Converter Protos ***********/
392 _ISO2022Close(UConverter *converter);
395 _ISO2022Reset(UConverter *converter, UConverterResetChoice choice);
428 /*************** Converter implementations ******************/
447 setInitialStateToUnicodeKR(UConverter* /*converter*/, UConverterDataISO2022 *myConverterData){
458 setInitialStateFromUnicodeKR(UConverter* converter,UConverterDataISO2022 *myConverterData){
462 if( converter->charErrorBufferLength==0){
464 converter->charErrorBufferLength = 4;
465 converter->charErrorBuffer[0] = 0x1b;
466 converter->charErrorBuffer[1] = 0x24;
467 converter->charErrorBuffer[2] = 0x29;
468 converter->charErrorBuffer[3] = 0x43;
505 // ICU 55 fails to open a converter for an unsupported version.
546 // ICU 55 fails to open a converter for an unsupported version.
594 // ICU 55 fails to open a converter for an unsupported version.
663 _ISO2022Close(UConverter *converter) {
664 UConverterDataISO2022* myData =(UConverterDataISO2022 *) (converter->extraInfo);
668 if (converter->extraInfo != NULL) {
669 /*close the array of converter pointers and free the memory*/
678 if(!converter->isExtraLocal){
679 uprv_free (converter->extraInfo);
680 converter->extraInfo = NULL;
686 _ISO2022Reset(UConverter *converter, UConverterResetChoice choice) {
687 UConverterDataISO2022 *myConverterData=(UConverterDataISO2022 *) (converter->extraInfo);
701 if (converter->mode == UCNV_SO){
705 converter->mode = UCNV_SI;
709 converter->charErrorBufferLength = 3;
710 converter->charErrorBuffer[0] = 0x1b;
711 converter->charErrorBuffer[1] = 0x28;
712 converter->charErrorBuffer[2] = 0x42;
721 setInitialStateToUnicodeKR(converter, myConverterData);
724 setInitialStateFromUnicodeKR(converter, myConverterData);
1258 * ISO-2022 Converter
1273 saveThis = args->converter;
1297 args->converter = myData->currentConverter;
1298 ucnv_toUnicode(args->converter,
1306 args->converter = saveThis;
1355 changeState_2022(args->converter,
1397 * The UConverter_fromUnicode_ISO2022_JP converter does not use ucnv_fromUnicode() functions for SBCS,DBCS and
1399 * The converter iterates over each Unicode codepoint
1401 * processed one char at a time it would make sense to reduce the extra processing a canned converter
1562 * for Shift-JIS so that the converter catches it.
1671 UConverter *cnv = args->converter;
1908 * This is necessary because the sub-converter (windows-949)
2100 myData=(UConverterDataISO2022*)(args->converter->extraInfo);
2106 } else if(args->converter->toULength == 1 && mySource < mySourceLimit && myTarget < args->targetLimit) {
2108 mySourceChar = args->converter->toUBytes[0];
2109 args->converter->toULength = 0;
2151 int8_t toULengthBefore = args->converter->toULength;
2153 changeState_2022(args->converter,&(mySource),
2159 args->converter->toUCallbackReason = UCNV_IRREGULAR;
2160 args->converter->toULength = (int8_t)(toULengthBefore + (mySource - mySourceBefore));
2279 args->converter->toUBytes[0] = (uint8_t)mySourceChar;
2280 args->converter->toULength = 1;
2307 args->converter->UCharErrorBuffer[args->converter->UCharErrorBufferLength++]=
2314 toUnicodeCallback(args->converter,mySourceChar,targetUniChar,err);
2341 UConverter* saveConv = args->converter;
2343 args->converter=myConverterData->currentConverter;
2359 args->converter=saveConv;
2379 converterData=(UConverterDataISO2022*)args->converter->extraInfo;
2382 * MBCS converter and return
2391 useFallback = args->converter->useFallback;
2392 isTargetByteDBCS=(UBool)args->converter->fromUnicodeStatus;
2395 isTargetByteDBCS = (UBool) args->converter->fromUnicodeStatus;
2396 if((sourceChar = args->converter->fromUChar32)!=0 && target <targetLimit) {
2410 args->converter->fromUChar32=sourceChar;
2451 args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) (targetByteUnit);
2466 args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) (targetByteUnit -0x80);
2470 args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) ((targetByteUnit>>8) -0x80);
2471 args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (unsigned char) (targetByteUnit-0x80);
2515 args->converter->fromUChar32=sourceChar;
2538 args->flush && source>=sourceLimit && args->converter->fromUChar32==0
2566 args->converter,
2576 args->converter->fromUnicodeStatus = (uint32_t)isTargetByteDBCS;
2585 UConverterDataISO2022* myData=(UConverterDataISO2022*)(args->converter->extraInfo);
2599 subArgs.converter = myData->currentConverter;
2619 * converter, can handle truncated and illegal input etc.
2621 if(args->converter->toULength > 0) {
2622 uprv_memcpy(subArgs.converter->toUBytes, args->converter->toUBytes, args->converter->toULength);
2624 subArgs.converter->toULength = args->converter->toULength;
2651 if(subArgs.converter->toULength > 0) {
2652 uprv_memcpy(args->converter->toUBytes, subArgs.converter->toUBytes, subArgs.converter->toULength);
2654 args->converter->toULength = subArgs.converter->toULength;
2657 if(subArgs.converter->UCharErrorBufferLength > 0) {
2658 uprv_memcpy(args->converter->UCharErrorBuffer, subArgs.converter->UCharErrorBuffer,
2659 subArgs.converter->UCharErrorBufferLength);
2661 args->converter->UCharErrorBufferLength=subArgs.converter->UCharErrorBufferLength;
2662 subArgs.converter->UCharErrorBufferLength = 0;
2671 changeState_2022(args->converter,
2692 myData=(UConverterDataISO2022*)(args->converter->extraInfo);
2700 useFallback = args->converter->useFallback;
2705 } else if(args->converter->toULength == 1 && mySource < mySourceLimit && myTarget < args->targetLimit) {
2707 mySourceChar = args->converter->toUBytes[0];
2708 args->converter->toULength = 0;
2723 args->converter->toUCallbackReason = UCNV_IRREGULAR;
2724 args->converter->toUBytes[0] = (uint8_t)mySourceChar;
2725 args->converter->toULength = 1;
2741 changeState_2022(args->converter,&(mySource),
2784 args->converter->toUBytes[0] = (uint8_t)mySourceChar;
2785 args->converter->toULength = 1;
2802 toUnicodeCallback(args->converter,mySourceChar,targetUniChar,err);
2923 UConverter *cnv = args->converter;
3022 /* try the current SO/G1 converter first */
3033 /* try the other SO/G1 converter; a CNS_11643_1 lookup may result in any plane */
3284 myData=(UConverterDataISO2022*)(args->converter->extraInfo);
3290 } else if(args->converter->toULength == 1 && mySource < mySourceLimit && myTarget < args->targetLimit) {
3292 mySourceChar = args->converter->toUBytes[0];
3293 args->converter->toULength = 0;
3312 args->converter->toUCallbackReason = UCNV_IRREGULAR;
3313 args->converter->toUBytes[0] = mySourceChar;
3314 args->converter->toULength = 1;
3337 int8_t toULengthBefore = args->converter->toULength;
3339 changeState_2022(args->converter,&(mySource),
3345 args->converter->toUCallbackReason = UCNV_IRREGULAR;
3346 args->converter->toULength = (int8_t)(toULengthBefore + (mySource - mySourceBefore));
3419 args->converter->toUBytes[0] = (uint8_t)mySourceChar;
3420 args->converter->toULength = 1;
3452 args->converter->UCharErrorBuffer[args->converter->UCharErrorBufferLength++]=
3459 toUnicodeCallback(args->converter,mySourceChar,targetUniChar,err);
3476 UConverter *cnv = args->converter;
3521 if((UBool)args->converter->fromUnicodeStatus) {
3523 args->converter->fromUnicodeStatus = 0;
3528 if(!(UBool)args->converter->fromUnicodeStatus) {
3530 args->converter->fromUnicodeStatus = 1;
3547 args->converter = myConverterData->currentConverter;
3551 args->converter = cnv;
3579 * Structure for cloning an ISO 2022 converter into a single memory block.
3580 * ucnv_safeClone() of the converter will align the entire cloneStruct,
3581 * and then ucnv_safeClone() of the sub-converter may additionally align
3710 /* there is only one converter for KR, and it is not in the myConverterArray[] */
3713 /* the loop over myConverterArray[] will simply not find another converter */