View | Details | Raw Unified | Return to issue 121120
Collapse All | Expand All

(-)formula/inc/formula/compiler.hrc (-2 / +6 lines)
Lines 393-401 Link Here
393
#define SC_OPCODE_SUM_IFS           397
393
#define SC_OPCODE_SUM_IFS           397
394
#define SC_OPCODE_AVERAGE_IFS       398
394
#define SC_OPCODE_AVERAGE_IFS       398
395
#define SC_OPCODE_COUNT_IFS         399
395
#define SC_OPCODE_COUNT_IFS         399
396
#define SC_OPCODE_STOP_2_PAR        400
396
#define SC_OPCODE_LENB              400
397
#define SC_OPCODE_RIGHTB            401
398
#define SC_OPCODE_LEFTB             402
399
#define SC_OPCODE_MIDB              403
400
#define SC_OPCODE_STOP_2_PAR        404
397
401
398
#define SC_OPCODE_LAST_OPCODE_ID    399      /* last OpCode */
402
#define SC_OPCODE_LAST_OPCODE_ID    403      /* last OpCode */
399
403
400
/*** Interna ***/
404
/*** Interna ***/
401
#define SC_OPCODE_INTERNAL_BEGIN   9999
405
#define SC_OPCODE_INTERNAL_BEGIN   9999
(-)formula/inc/formula/opcode.hxx (+4 lines)
Lines 299-304 Link Here
299
		ocSubstitute		= SC_OPCODE_SUBSTITUTE,
299
		ocSubstitute		= SC_OPCODE_SUBSTITUTE,
300
		ocRept				= SC_OPCODE_REPT,
300
		ocRept				= SC_OPCODE_REPT,
301
		ocConcat			= SC_OPCODE_CONCAT,
301
		ocConcat			= SC_OPCODE_CONCAT,
302
		ocLenB              = SC_OPCODE_LENB,
303
		ocRightB            = SC_OPCODE_RIGHTB,
304
		ocLeftB             = SC_OPCODE_LEFTB,
305
		ocMidB              = SC_OPCODE_MIDB,
302
	// Matrix functions
306
	// Matrix functions
303
		ocMatValue			= SC_OPCODE_MAT_VALUE,
307
		ocMatValue			= SC_OPCODE_MAT_VALUE,
304
		ocMatDet			= SC_OPCODE_MAT_DET,
308
		ocMatDet			= SC_OPCODE_MAT_DET,
(-)formula/source/core/resource/core_resource.src (+24 lines)
Lines 261-266 Link Here
261
	String SC_OPCODE_RIGHT { Text = "RIGHT" ; };
261
	String SC_OPCODE_RIGHT { Text = "RIGHT" ; };
262
	String SC_OPCODE_SEARCH { Text = "SEARCH" ; };
262
	String SC_OPCODE_SEARCH { Text = "SEARCH" ; };
263
	String SC_OPCODE_MID { Text = "MID" ; };
263
	String SC_OPCODE_MID { Text = "MID" ; };
264
	String SC_OPCODE_LENB          { Text = "LENB" ; };
265
    String SC_OPCODE_RIGHTB        { Text = "RIGHTB" ; };
266
    String SC_OPCODE_LEFTB         { Text = "LEFTB" ; };
267
    String SC_OPCODE_MIDB          { Text = "MIDB" ; };
264
	String SC_OPCODE_TEXT { Text = "TEXT" ; };
268
	String SC_OPCODE_TEXT { Text = "TEXT" ; };
265
	String SC_OPCODE_SUBSTITUTE { Text = "SUBSTITUTE" ; };
269
	String SC_OPCODE_SUBSTITUTE { Text = "SUBSTITUTE" ; };
266
	String SC_OPCODE_REPT { Text = "REPT" ; };
270
	String SC_OPCODE_REPT { Text = "REPT" ; };
Lines 594-599 Link Here
594
	String SC_OPCODE_RIGHT { Text = "RIGHT" ; };
598
	String SC_OPCODE_RIGHT { Text = "RIGHT" ; };
595
	String SC_OPCODE_SEARCH { Text = "SEARCH" ; };
599
	String SC_OPCODE_SEARCH { Text = "SEARCH" ; };
596
	String SC_OPCODE_MID { Text = "MID" ; };
600
	String SC_OPCODE_MID { Text = "MID" ; };
601
	String SC_OPCODE_LENB { Text = "LENB" ; };
602
    String SC_OPCODE_RIGHTB { Text = "RIGHTB" ; };
603
    String SC_OPCODE_LEFTB { Text = "LEFTB" ; };
604
    String SC_OPCODE_MIDB { Text = "MIDB" ; };
597
	String SC_OPCODE_TEXT { Text = "TEXT" ; };
605
	String SC_OPCODE_TEXT { Text = "TEXT" ; };
598
	String SC_OPCODE_SUBSTITUTE { Text = "SUBSTITUTE" ; };
606
	String SC_OPCODE_SUBSTITUTE { Text = "SUBSTITUTE" ; };
599
	String SC_OPCODE_REPT { Text = "REPT" ; };
607
	String SC_OPCODE_REPT { Text = "REPT" ; };
Lines 1554-1559 Link Here
1554
	{
1562
	{
1555
		Text [ en-US ] = "MID" ;
1563
		Text [ en-US ] = "MID" ;
1556
	};
1564
	};
1565
	String SC_OPCODE_LENB
1566
    {
1567
        Text [ en-US ] = "LENB" ;
1568
    };
1569
    String SC_OPCODE_RIGHTB
1570
    {
1571
        Text [ en-US ] = "RIGHTB" ;
1572
    };
1573
    String SC_OPCODE_LEFTB
1574
    {
1575
        Text [ en-US ] = "LEFTB" ;
1576
    };
1577
    String SC_OPCODE_MIDB
1578
    {
1579
        Text [ en-US ] = "MIDB" ;
1580
    };
1557
	String SC_OPCODE_TEXT
1581
	String SC_OPCODE_TEXT
1558
	{
1582
	{
1559
		Text [ en-US ] = "TEXT" ;
1583
		Text [ en-US ] = "TEXT" ;
(-)oox/source/xls/formulabase.cxx (-4 / +4 lines)
Lines 442-451 Link Here
442
    { 0/*"FIND"*/,              "FINDB",                205,    205,    2,  3,  V, { VR }, 0 },
442
    { 0/*"FIND"*/,              "FINDB",                205,    205,    2,  3,  V, { VR }, 0 },
443
    { 0/*"SEARCH"*/,            "SEARCHB",              206,    206,    2,  3,  V, { VR }, 0 },
443
    { 0/*"SEARCH"*/,            "SEARCHB",              206,    206,    2,  3,  V, { VR }, 0 },
444
    { 0/*"REPLACE"*/,           "REPLACEB",             207,    207,    4,  4,  V, { VR }, 0 },
444
    { 0/*"REPLACE"*/,           "REPLACEB",             207,    207,    4,  4,  V, { VR }, 0 },
445
    { 0/*"LEFT"*/,              "LEFTB",                208,    208,    1,  2,  V, { VR }, 0 },
445
    { "LEFTB",                  "LEFTB",                208,    208,    1,  2,  V, { VR }, 0 },
446
    { 0/*"RIGHT"*/,             "RIGHTB",               209,    209,    1,  2,  V, { VR }, 0 },
446
    { "RIGHTB",                 "RIGHTB",               209,    209,    1,  2,  V, { VR }, 0 },
447
    { 0/*"MID"*/,               "MIDB",                 210,    210,    3,  3,  V, { VR }, 0 },
447
    { "MIDB",                   "MIDB",                 210,    210,    3,  3,  V, { VR }, 0 },
448
    { 0/*"LEN"*/,               "LENB",                 211,    211,    1,  1,  V, { VR }, 0 },
448
    { "LENB",                   "LENB",                 211,    211,    1,  1,  V, { VR }, 0 },
449
    { "ROUNDUP",                "ROUNDUP",              212,    212,    2,  2,  V, { VR }, 0 },
449
    { "ROUNDUP",                "ROUNDUP",              212,    212,    2,  2,  V, { VR }, 0 },
450
    { "ROUNDDOWN",              "ROUNDDOWN",            213,    213,    2,  2,  V, { VR }, 0 },
450
    { "ROUNDDOWN",              "ROUNDDOWN",            213,    213,    2,  2,  V, { VR }, 0 },
451
    { "ASC",                    "ASC",                  214,    214,    1,  1,  V, { VR }, 0 },
451
    { "ASC",                    "ASC",                  214,    214,    1,  1,  V, { VR }, 0 },
(-)sc/inc/helpids.h (+5 lines)
Lines 687-692 Link Here
687
#define HID_FUNC_LINKS                                          "SC_HID_FUNC_LINKS"
687
#define HID_FUNC_LINKS                                          "SC_HID_FUNC_LINKS"
688
#define HID_FUNC_RECHTS                                         "SC_HID_FUNC_RECHTS"
688
#define HID_FUNC_RECHTS                                         "SC_HID_FUNC_RECHTS"
689
#define HID_FUNC_TEIL                                           "SC_HID_FUNC_TEIL"
689
#define HID_FUNC_TEIL                                           "SC_HID_FUNC_TEIL"
690
#define HID_FUNC_LENB                                           "SC_HID_FUNC_LENB"
691
#define HID_FUNC_RIGHTB                                         "SC_HID_FUNC_RIGHTB"
692
#define HID_FUNC_LEFTB                                          "SC_HID_FUNC_LEFTB"
693
#define HID_FUNC_MIDB                                           "SC_HID_FUNC_MIDB"
690
#define HID_FUNC_WIEDERHOLEN                                    "SC_HID_FUNC_WIEDERHOLEN"
694
#define HID_FUNC_WIEDERHOLEN                                    "SC_HID_FUNC_WIEDERHOLEN"
691
#define HID_FUNC_WECHSELN                                       "SC_HID_FUNC_WECHSELN"
695
#define HID_FUNC_WECHSELN                                       "SC_HID_FUNC_WECHSELN"
692
#define HID_FUNC_BASIS                                          "SC_HID_FUNC_BASIS"
696
#define HID_FUNC_BASIS                                          "SC_HID_FUNC_BASIS"
Lines 699-701 Link Here
699
#define HID_FUNC_UNICODE                                        "SC_HID_FUNC_UNICODE"
703
#define HID_FUNC_UNICODE                                        "SC_HID_FUNC_UNICODE"
700
#define HID_FUNC_UNICHAR                                        "SC_HID_FUNC_UNICHAR"
704
#define HID_FUNC_UNICHAR                                        "SC_HID_FUNC_UNICHAR"
701
#define HID_FUNC_NUMBERVALUE                                    "SC_HID_FUNC_NUMBERVALUE"
705
#define HID_FUNC_NUMBERVALUE                                    "SC_HID_FUNC_NUMBERVALUE"
706
(-)sc/source/core/inc/interpre.hxx (+4 lines)
Lines 787-792 Link Here
787
void ScSlope();
787
void ScSlope();
788
void ScTrend();
788
void ScTrend();
789
void ScInfo();
789
void ScInfo();
790
void ScLenB();
791
void ScRightB();
792
void ScLeftB();
793
void ScMidB();
790
794
791
//------------------------ Functions in interpr6.cxx -------------------------
795
//------------------------ Functions in interpr6.cxx -------------------------
792
796
(-)sc/source/core/tool/interpr1.cxx (+177 lines)
Lines 40-45 Link Here
40
#include <unotools/transliterationwrapper.hxx>
40
#include <unotools/transliterationwrapper.hxx>
41
#include <rtl/ustring.hxx>
41
#include <rtl/ustring.hxx>
42
#include <rtl/logfile.hxx>
42
#include <rtl/logfile.hxx>
43
#include <unicode/uchar.h>
43
44
44
#include "interpre.hxx"
45
#include "interpre.hxx"
45
#include "patattr.hxx"
46
#include "patattr.hxx"
Lines 7632-7638 Link Here
7632
    }
7633
    }
7633
}
7634
}
7634
7635
7636
typedef struct {
7637
	UBlockCode from;
7638
	UBlockCode to;
7639
} UBlockScript;
7635
7640
7641
static UBlockScript scriptList[] = {
7642
    {UBLOCK_HANGUL_JAMO, UBLOCK_HANGUL_JAMO},
7643
    {UBLOCK_CJK_RADICALS_SUPPLEMENT, UBLOCK_HANGUL_SYLLABLES},
7644
	{UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS,UBLOCK_CJK_RADICALS_SUPPLEMENT },
7645
	{UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS,UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS},
7646
    {UBLOCK_CJK_COMPATIBILITY_FORMS, UBLOCK_CJK_COMPATIBILITY_FORMS},
7647
    {UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS, UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS},
7648
    {UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B, UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT},
7649
    {UBLOCK_CJK_STROKES, UBLOCK_CJK_STROKES}
7650
};
7651
#define scriptListCount sizeof (scriptList) / sizeof (UBlockScript)
7652
bool SAL_CALL lcl_getScriptClass(sal_uInt32 currentChar)
7653
{
7654
	// for the locale of ja-JP, character U+0x005c and U+0x20ac should be ScriptType::Asian
7655
	if( (currentChar == 0x005c || currentChar == 0x20ac) && 
7656
		  (MsLangId::getSystemLanguage() == LANGUAGE_JAPANESE) )
7657
		return true;
7658
	sal_uInt16 i;
7659
    static sal_Int16 nRet = 0;
7660
    UBlockCode block = (UBlockCode)ublock_getCode((sal_uInt32)currentChar);
7661
    for ( i = 0; i < scriptListCount; i++) {
7662
        if (block <= scriptList[i].to) break;
7663
    }
7664
    nRet = (i < scriptListCount && block >= scriptList[i].from);
7665
    return nRet;
7666
}
7667
bool IsDBCS(sal_Unicode ch)
7668
{
7669
	return lcl_getScriptClass(ch);
7670
}
7671
sal_Int32 getLengthB(String &str)
7672
{
7673
	sal_Int32 index = 0;
7674
	sal_Int32 length = 0;
7675
	if(0 == str.Len())
7676
		return 0;
7677
	while(index < str.Len()){
7678
		if(IsDBCS(str.GetChar(index)))
7679
			length += 2;
7680
		else
7681
			length++;
7682
		index++;
7683
	}
7684
	return length;
7685
}
7686
void ScInterpreter::ScLenB()
7687
{
7688
	RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "luzhang", "ScInterpreter::ScLenB" );
7689
    String aStr( GetString() );
7690
    PushDouble( getLengthB(aStr) );
7691
}
7692
void lcl_RightB(String &aStr, sal_Int32 n)
7693
{
7694
	if( n < getLengthB(aStr) )
7695
	{
7696
		sal_Int32 index = aStr.Len();
7697
		while(index-- >= 0)
7698
		{
7699
			if(0 == n)
7700
			{
7701
				aStr.Erase( 0, index + 1);
7702
				break;
7703
			}
7704
			if(-1 == n)
7705
			{
7706
				aStr.Erase( 0, index + 2 );
7707
				aStr.InsertAscii(" ", 0);
7708
				break;
7709
			}
7710
			if(IsDBCS(aStr.GetChar(index)))
7711
				n -= 2;
7712
			else
7713
				n--;
7714
		}
7715
	}
7716
}
7717
void ScInterpreter::ScRightB()
7718
{
7719
    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "luzhang", "ScInterpreter::ScRightB" );
7720
    sal_uInt8 nParamCount = GetByte();
7721
    if ( MustHaveParamCount( nParamCount, 1, 2 ) )
7722
    {
7723
        sal_Int32 n;
7724
        if (nParamCount == 2)
7725
        {
7726
            double nVal = ::rtl::math::approxFloor(GetDouble());
7727
            if ( nVal < 0.0 || nVal > STRING_MAXLEN )
7728
            {
7729
                PushIllegalArgument();
7730
                return ;
7731
            }
7732
            else
7733
                n = (xub_StrLen) nVal;
7734
        }
7735
        else
7736
            n = 1;
7737
        String aStr( GetString() );
7738
		lcl_RightB(aStr, n);
7739
        PushString( aStr );
7740
    }
7741
}
7742
void lcl_LeftB(String &aStr, sal_Int32 n)
7743
{
7744
	if( n < getLengthB(aStr) )
7745
	{
7746
		sal_Int32 index = -1;
7747
		while(index++ < aStr.Len())
7748
		{
7749
			if(0 == n)
7750
			{
7751
				aStr.Erase( index );
7752
				break;
7753
			}
7754
			if(-1 == n)
7755
			{
7756
				aStr.Erase( index - 1 );
7757
				aStr.InsertAscii(" ");
7758
				break;
7759
			}
7760
			if(IsDBCS(aStr.GetChar(index)))
7761
				n -= 2;
7762
			else
7763
				n--;
7764
		}
7765
	}
7766
}
7767
void ScInterpreter::ScLeftB()
7768
{
7769
	RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "luzhang", "ScInterpreter::ScLeftB" );
7770
    sal_uInt8 nParamCount = GetByte();
7771
    if ( MustHaveParamCount( nParamCount, 1, 2 ) )
7772
    {
7773
        sal_Int32 n;
7774
        if (nParamCount == 2)
7775
        {
7776
            double nVal = ::rtl::math::approxFloor(GetDouble());
7777
            if ( nVal < 0.0 || nVal > STRING_MAXLEN )
7778
            {
7779
                PushIllegalArgument();
7780
                return ;
7781
            }
7782
            else
7783
                n = (xub_StrLen) nVal;
7784
        }
7785
        else
7786
            n = 1;
7787
        String aStr( GetString() );
7788
		lcl_LeftB(aStr, n);
7789
        PushString( aStr );
7790
    }
7791
}
7792
void ScInterpreter::ScMidB()
7793
{
7794
	RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "luzhang", "ScInterpreter::ScMidB" );
7795
    if ( MustHaveParamCount( GetByte(), 3 ) )
7796
    {
7797
        double fAnz    = ::rtl::math::approxFloor(GetDouble());
7798
        double fAnfang = ::rtl::math::approxFloor(GetDouble());
7799
        String rStr( GetString() );
7800
        if (fAnfang < 1.0 || fAnz < 0.0 || fAnfang > double(STRING_MAXLEN) || fAnz > double(STRING_MAXLEN))
7801
            PushIllegalArgument();
7802
        else
7803
		{
7804
			
7805
			lcl_LeftB(rStr, (xub_StrLen)fAnfang + (xub_StrLen)fAnz - 1);
7806
			sal_Int32 nCnt = getLengthB(rStr) - (xub_StrLen)fAnfang + 1;
7807
			lcl_RightB(rStr, nCnt>0 ? nCnt:0);
7808
            PushString(rStr);
7809
		}
7810
    }
7811
}
7812
7636
void ScInterpreter::ScRight()
7813
void ScInterpreter::ScRight()
7637
{
7814
{
7638
    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScRight" );
7815
    RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScRight" );
(-)sc/source/core/tool/interpr4.cxx (+4 lines)
Lines 3759-3764 Link Here
3759
                case ocGetPivotData     : ScGetPivotData();             break;
3759
                case ocGetPivotData     : ScGetPivotData();             break;
3760
                case ocJis              : ScJis();                      break;
3760
                case ocJis              : ScJis();                      break;
3761
                case ocAsc              : ScAsc();                      break;
3761
                case ocAsc              : ScAsc();                      break;
3762
				case ocLenB             : ScLenB();                     break;
3763
				case ocRightB           : ScRightB();                   break;
3764
				case ocLeftB            : ScLeftB();                    break;
3765
				case ocMidB             : ScMidB();                     break;
3762
                case ocUnicode          : ScUnicode();                  break;
3766
                case ocUnicode          : ScUnicode();                  break;
3763
                case ocUnichar          : ScUnichar();                  break;
3767
                case ocUnichar          : ScUnichar();                  break;
3764
                case ocTTT              : ScTTT();                      break;
3768
                case ocTTT              : ScTTT();                      break;
(-)sc/source/filter/excel/xlformula.cxx (+4 lines)
Lines 208-213 Link Here
208
    { ocIsLogical,          198,    1,  1,  V, { VR }, 0, 0 },
208
    { ocIsLogical,          198,    1,  1,  V, { VR }, 0, 0 },
209
    { ocDBCount2,           199,    3,  3,  V, { RO, RR }, 0, 0 },
209
    { ocDBCount2,           199,    3,  3,  V, { RO, RR }, 0, 0 },
210
    { ocCurrency,           204,    1,  2,  V, { VR }, EXC_FUNCFLAG_IMPORTONLY, 0 },
210
    { ocCurrency,           204,    1,  2,  V, { VR }, EXC_FUNCFLAG_IMPORTONLY, 0 },
211
	{ ocLeftB,              208,    1,  2,  V, { VR }, 0, 0 },
212
	{ ocRightB,             209,    1,  2,  V, { VR }, 0, 0 },
213
	{ ocMidB,               210,    3,  3,  V, { VR }, 0, 0 },
214
	{ ocLenB,               211,    1,  1,  V, { VR }, 0, 0 },
211
    { ocRoundUp,            212,    2,  2,  V, { VR }, 0, 0 },
215
    { ocRoundUp,            212,    2,  2,  V, { VR }, 0, 0 },
212
    { ocRoundDown,          213,    2,  2,  V, { VR }, 0, 0 },
216
    { ocRoundDown,          213,    2,  2,  V, { VR }, 0, 0 },
213
    { ocExternal,           255,    1,  MX, R, { RO_E, RO }, EXC_FUNCFLAG_IMPORTONLY, 0 }
217
    { ocExternal,           255,    1,  MX, R, { RO_E, RO }, EXC_FUNCFLAG_IMPORTONLY, 0 }
(-)sc/source/ui/src/scfuncs.src (+124 lines)
Lines 9217-9222 Link Here
9217
			Text [ en-US ] = "Defines the character used as the decimal point." ;
9217
			Text [ en-US ] = "Defines the character used as the decimal point." ;
9218
		};
9218
		};
9219
	};
9219
	};
9220
	Resource SC_OPCODE_LENB
9221
	{
9222
		String 1 // Description
9223
		{
9224
			Text [ en-US ] = "Calculates length of a text string, with DBCS" ;
9225
		};
9226
		ExtraData =
9227
		{
9228
            0;
9229
			ID_FUNCTION_GRP_TEXT;
9230
			U2S( HID_FUNC_LENB );
9231
			1;	0;
9232
            0;
9233
		};
9234
		String 2 // Name of Parameter 1
9235
		{
9236
			Text [ en-US ] = "text" ;
9237
		};
9238
		String 3 // Description of Parameter 1
9239
		{
9240
			Text [ en-US ] = "The text in which the length is to be determined." ;
9241
		};
9242
	};
9243
	Resource SC_OPCODE_RIGHTB
9244
	{
9245
		String 1 // Description
9246
		{
9247
            Text [ en-US ] = "Returns the last character or characters of a text,with DBCS" ;
9248
		};
9249
		ExtraData =
9250
		{
9251
            0;
9252
			ID_FUNCTION_GRP_TEXT;
9253
			U2S( HID_FUNC_RIGHTB );
9254
			2;	0;	1;
9255
            0;
9256
		};
9257
		String 2 // Name of Parameter 1
9258
		{
9259
			Text [ en-US ] = "text" ;
9260
		};
9261
		String 3 // Description of Parameter 1
9262
		{
9263
			Text [ en-US ] = "The text in which the end partial words are to be determined." ;
9264
		};
9265
		String 4 // Name of Parameter 2
9266
		{
9267
			Text [ en-US ] = "number" ;
9268
		};
9269
		String 5 // Description of Parameter 2
9270
		{
9271
			Text [ en-US ] = "The number of characters for the end text." ;
9272
		};
9273
	};
9274
	Resource SC_OPCODE_LEFTB
9275
	{
9276
		String 1 // Description
9277
		{
9278
            Text [ en-US ] = "Returns the first character or characters of a text,with DBCS" ;
9279
		};
9280
		ExtraData =
9281
		{
9282
            0;
9283
			ID_FUNCTION_GRP_TEXT;
9284
			U2S( HID_FUNC_LEFTB );
9285
			2;	0;	1;
9286
            0;
9287
		};
9288
		String 2 // Name of Parameter 1
9289
		{
9290
			Text [ en-US ] = "text" ;
9291
		};
9292
		String 3 // Description of Parameter 1
9293
		{
9294
			Text [ en-US ] = "The text where the initial partial words are to be determined." ;
9295
		};
9296
		String 4 // Name of Parameter 2
9297
		{
9298
			Text [ en-US ] = "number" ;
9299
		};
9300
		String 5 // Description of Parameter 2
9301
		{
9302
			Text [ en-US ] = "The number of characters for the start text." ;
9303
		};
9304
	};
9305
	Resource SC_OPCODE_MIDB
9306
	{
9307
		String 1 // Description
9308
		{
9309
			Text [ en-US ] = "Returns a partial text string of a text, with DBCS" ;
9310
		};
9311
		ExtraData =
9312
		{
9313
            0;
9314
			ID_FUNCTION_GRP_TEXT;
9315
			U2S( HID_FUNC_MIDB );
9316
			3;	0;	0;	0;
9317
            0;
9318
		};
9319
		String 2 // Name of Parameter 1
9320
		{
9321
			Text [ en-US ] = "text" ;
9322
		};
9323
		String 3 // Description of Parameter 1
9324
		{
9325
			Text [ en-US ] = "The text in which partial words are to be determined." ;
9326
		};
9327
		String 4 // Name of Parameter 2
9328
		{
9329
			Text [ en-US ] = "start" ;
9330
		};
9331
		String 5 // Description of Parameter 2
9332
		{
9333
			Text [ en-US ] = "The position from which the part word is to be determined." ;
9334
		};
9335
		String 6 // Name of Parameter 3
9336
		{
9337
			Text [ en-US ] = "number" ;
9338
		};
9339
		String 7 // Description of Parameter 3
9340
		{
9341
			Text [ en-US ] = "The number of characters for the text." ;
9342
		};
9343
	};
9220
};
9344
};
9221
9345
9222
#if defined(U2S)
9346
#if defined(U2S)
(-)sc/util/hidother.src (+4 lines)
Lines 345-350 Link Here
345
hidspecial HID_FUNC_LINKS		 { HelpID = HID_FUNC_LINKS; };
345
hidspecial HID_FUNC_LINKS		 { HelpID = HID_FUNC_LINKS; };
346
hidspecial HID_FUNC_RECHTS		 { HelpID = HID_FUNC_RECHTS; };
346
hidspecial HID_FUNC_RECHTS		 { HelpID = HID_FUNC_RECHTS; };
347
hidspecial HID_FUNC_TEIL		 { HelpID = HID_FUNC_TEIL; };
347
hidspecial HID_FUNC_TEIL		 { HelpID = HID_FUNC_TEIL; };
348
hidspecial HID_FUNC_LENB            { HelpID = HID_FUNC_LENB; };
349
hidspecial HID_FUNC_RIGHTB          { HelpID = HID_FUNC_RIGHTB; };
350
hidspecial HID_FUNC_LEFTB           { HelpID = HID_FUNC_LEFTB; };
351
hidspecial HID_FUNC_MIDB            { HelpID = HID_FUNC_MIDB; };
348
hidspecial HID_FUNC_WIEDERHOLEN		 { HelpID = HID_FUNC_WIEDERHOLEN; };
352
hidspecial HID_FUNC_WIEDERHOLEN		 { HelpID = HID_FUNC_WIEDERHOLEN; };
349
hidspecial HID_FUNC_WECHSELN		 { HelpID = HID_FUNC_WECHSELN; };
353
hidspecial HID_FUNC_WECHSELN		 { HelpID = HID_FUNC_WECHSELN; };
350
hidspecial HID_FUNC_BASIS		 { HelpID = HID_FUNC_BASIS; };
354
hidspecial HID_FUNC_BASIS		 { HelpID = HID_FUNC_BASIS; };
(-)sc/util/makefile.mk (-1 / +4 lines)
Lines 92-98 Link Here
92
	$(XMLOFFLIB)	\
92
	$(XMLOFFLIB)	\
93
	$(AVMEDIALIB) \
93
	$(AVMEDIALIB) \
94
	$(FORLIB) \
94
	$(FORLIB) \
95
    $(FORUILIB)
95
    $(FORUILIB) \
96
    $(ICUINLIB) \
97
	$(ICUUCLIB) \
98
	$(ICUDATALIB)
96
	
99
	
97
SHL1LIBS=$(LIB3TARGET) $(LIB4TARGET)
100
SHL1LIBS=$(LIB3TARGET) $(LIB4TARGET)
98
101

Return to issue 121120