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

(-)sal/inc/rtl/ustring.h (+52 lines)
Lines 1501-1506 void SAL_CALL rtl_uString_internConvert( Link Here
1501
                                         sal_uInt32       convertFlags,
1501
                                         sal_uInt32       convertFlags,
1502
                                         sal_uInt32      *pInfo) SAL_THROW_EXTERN_C();
1502
                                         sal_uInt32      *pInfo) SAL_THROW_EXTERN_C();
1503
1503
1504
/** Iterate through a string based on code points instead of UTF-16 code units.
1505
1506
    See Chapter 3 of The Unicode Standard 5.0 (Addison--Wesley, 2006) for
1507
    definitions of the various terms used in this description.
1508
1509
    The given string is interpreted as a sequence of zero or more UTF-16 code
1510
    units.  For each index into this sequence (from zero to the length of the
1511
    sequence, inclusive), a code point represented starting at the given index
1512
    is computed as follows:
1513
1514
    - If the index points to the end of the sequence, the computed code point
1515
    is the special marker SAL_MAX_UINT32.
1516
1517
    - Otherwise, if the UTF-16 code unit addressed by the index constitutes a
1518
    well-formed UTF-16 code unit sequence, the computed code point is the scalar
1519
    value encoded by that UTF-16 code unit sequence.
1520
1521
    - Otherwise, if the index is at least two UTF-16 code units away from the
1522
    end of the sequence, and the sequence of two UTF-16 code units addressed by
1523
    the index constitutes a well-formed UTF-16 code unit sequence, the computed
1524
    code point is the scalar value encoded by that UTF-16 code unit sequence.
1525
1526
    - Otherwise, the computed code point is the UTF-16 code unit addressed by
1527
    the index.  (This last case catches unmatched surrogates as well as indices
1528
    pointing into the middle of surrogate pairs.)
1529
1530
    @param string
1531
    pointer to a valid string; must not be null.
1532
1533
    @param indexUtf16
1534
    pointer to a UTF-16 based index into the given string; must not be null.  On
1535
    entry, the index must be in the range from zero to the length of the string
1536
    (in UTF-16 code units), inclusive.  Upon successful return, the index will
1537
    be updated to address the UTF-16 code unit that is the given
1538
    postIncrementCodePoints away from the initial index.
1539
1540
    @param postIncrementCodePoints
1541
    the number of code points to move the given indexUtf16; can be negative.
1542
    The value must be such that the resulting UTF-16 based index is in the range
1543
    from zero to the length of the string (in UTF-16 code units), inclusive.
1544
1545
    @return
1546
    the code point (an integer in the range from 0 to 0x10FFFF, inclusive) or
1547
    the special marker SAL_UINT_MAX that is represented at the given indexUtf16
1548
    starting index within the given string.
1549
1550
    @since UDK 3.2.7
1551
*/
1552
sal_uInt32 SAL_CALL rtl_uString_iterateCodePoints(
1553
    rtl_uString const * string, sal_Int32 * indexUtf16,
1554
    sal_Int32 postIncrementCodePoints);
1555
1504
#ifdef __cplusplus
1556
#ifdef __cplusplus
1505
}
1557
}
1506
#endif
1558
#endif
(-)sal/inc/rtl/ustring.hxx (+55 lines)
Lines 1186-1191 public: Link Here
1186
                                            pData->length, nEncoding, nFlags);
1186
                                            pData->length, nEncoding, nFlags);
1187
    }
1187
    }
1188
1188
1189
    /** Iterate through this string based on code points instead of UTF-16 code
1190
        units.
1191
1192
        See Chapter 3 of The Unicode Standard 5.0 (Addison--Wesley, 2006) for
1193
        definitions of the various terms used in this description.
1194
1195
        This string is interpreted as a sequence of zero or more UTF-16 code
1196
        units.  For each index into this sequence (from zero to the length of
1197
        the sequence, inclusive), a code point represented starting at the
1198
        given index is computed as follows:
1199
1200
        - If the index points to the end of the sequence, the computed code
1201
        point is the special marker SAL_MAX_UINT32.
1202
1203
        - Otherwise, if the UTF-16 code unit addressed by the index constitutes
1204
        a well-formed UTF-16 code unit sequence, the computed code point is the
1205
        scalar value encoded by that UTF-16 code unit sequence.
1206
1207
        - Otherwise, if the index is at least two UTF-16 code units away from
1208
        the end of the sequence, and the sequence of two UTF-16 code units
1209
        addressed by the index constitutes a well-formed UTF-16 code unit
1210
        sequence, the computed code point is the scalar value encoded by that
1211
        UTF-16 code unit sequence.
1212
1213
        - Otherwise, the computed code point is the UTF-16 code unit addressed
1214
        by the index.  (This last case catches unmatched surrogates as well as
1215
        indices pointing into the middle of surrogate pairs.)
1216
1217
        @param indexUtf16
1218
        pointer to a UTF-16 based index into this string; must not be null.  On
1219
        entry, the index must be in the range from zero to the length of this
1220
        string (in UTF-16 code units), inclusive.  Upon successful return, the
1221
        index will be updated to address the UTF-16 code unit that is the given
1222
        postIncrementCodePoints away from the initial index.
1223
1224
        @param postIncrementCodePoints
1225
        the number of code points to move the given indexUtf16; can be negative.
1226
        The value must be such that the resulting UTF-16 based index is in the
1227
        range from zero to the length of this string (in UTF-16 code units),
1228
        inclusive.
1229
1230
        @return
1231
        the code point (an integer in the range from 0 to 0x10FFFF, inclusive)
1232
        or the special marker SAL_UINT_MAX that is represented at the given
1233
        indexUtf16 starting index within this string.
1234
1235
        @since UDK 3.2.7
1236
    */
1237
    inline sal_uInt32 iterateCodePoints(
1238
        sal_Int32 * indexUtf16, sal_Int32 postIncrementCodePoints = 1)
1239
    {
1240
        return rtl_uString_iterateCodePoints(
1241
            pData, indexUtf16, postIncrementCodePoints);
1242
    }
1243
1189
    /**
1244
    /**
1190
      Returns the string representation of the sal_Bool argument.
1245
      Returns the string representation of the sal_Bool argument.
1191
1246
(-)sal/qa/rtl/oustring/rtl_OUString2.cxx (+56 lines)
Lines 1054-1059 public: Link Here
1054
    CPPUNIT_TEST_SUITE_END();
1054
    CPPUNIT_TEST_SUITE_END();
1055
};
1055
};
1056
1056
1057
class iterateCodePoints: public CppUnit::TestFixture {
1058
public:
1059
    void testEmpty();
1060
1061
    void testNotWellFormed();
1062
1063
    CPPUNIT_TEST_SUITE(iterateCodePoints);
1064
    CPPUNIT_TEST(testEmpty);
1065
    CPPUNIT_TEST(testNotWellFormed);
1066
    CPPUNIT_TEST_SUITE_END();
1067
};
1068
1069
void iterateCodePoints::testEmpty() {
1070
    sal_Int32 i = 0;
1071
    CPPUNIT_ASSERT_EQUAL(
1072
        SAL_MAX_UINT32, rtl::OUString().iterateCodePoints(&i, 0));
1073
    CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i);
1074
}
1075
1076
void iterateCodePoints::testNotWellFormed() {
1077
    static sal_Unicode const utf16[] =
1078
        { 0xD800, 0xDC00, 0x0041, 0xDBFF, 0xDFFF, 0xDDEF, 0xD9AB };
1079
    rtl::OUString s(utf16, sizeof utf16 / sizeof (sal_Unicode));
1080
    sal_Int32 i = 0;
1081
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10000), s.iterateCodePoints(&i));
1082
    CPPUNIT_ASSERT_EQUAL(sal_Int32(2), i);
1083
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x0041), s.iterateCodePoints(&i));
1084
    CPPUNIT_ASSERT_EQUAL(sal_Int32(3), i);
1085
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10FFFF), s.iterateCodePoints(&i));
1086
    CPPUNIT_ASSERT_EQUAL(sal_Int32(5), i);
1087
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xDDEF), s.iterateCodePoints(&i));
1088
    CPPUNIT_ASSERT_EQUAL(sal_Int32(6), i);
1089
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xD9AB), s.iterateCodePoints(&i));
1090
    CPPUNIT_ASSERT_EQUAL(sal_Int32(7), i);
1091
    CPPUNIT_ASSERT_EQUAL(SAL_MAX_UINT32, s.iterateCodePoints(&i, -1));
1092
    CPPUNIT_ASSERT_EQUAL(sal_Int32(6), i);
1093
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xD9AB), s.iterateCodePoints(&i, -1));
1094
    CPPUNIT_ASSERT_EQUAL(sal_Int32(5), i);
1095
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xDDEF), s.iterateCodePoints(&i, -1));
1096
    CPPUNIT_ASSERT_EQUAL(sal_Int32(3), i);
1097
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10FFFF), s.iterateCodePoints(&i, -1));
1098
    CPPUNIT_ASSERT_EQUAL(sal_Int32(2), i);
1099
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x0041), s.iterateCodePoints(&i, -1));
1100
    CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i);
1101
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0x10000), s.iterateCodePoints(&i, 0));
1102
    CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i);
1103
    i = 1;
1104
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xDC00), s.iterateCodePoints(&i, 2));
1105
    CPPUNIT_ASSERT_EQUAL(sal_Int32(3), i);
1106
    i = 4;
1107
    CPPUNIT_ASSERT_EQUAL(sal_uInt32(0xDFFF), s.iterateCodePoints(&i, -3));
1108
    CPPUNIT_ASSERT_EQUAL(sal_Int32(0), i);
1109
}
1110
1057
// -----------------------------------------------------------------------------
1111
// -----------------------------------------------------------------------------
1058
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::valueOf, "rtl_OUString");
1112
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::valueOf, "rtl_OUString");
1059
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::toDouble, "rtl_OUString");
1113
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::toDouble, "rtl_OUString");
Lines 1063-1068 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rt Link Here
1063
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(
1117
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(
1064
    rtl_OUString::convertToString, "rtl_OUString");
1118
    rtl_OUString::convertToString, "rtl_OUString");
1065
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::construction, "rtl_OUString");
1119
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(rtl_OUString::construction, "rtl_OUString");
1120
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(
1121
    rtl_OUString::iterateCodePoints, "rtl_OUString");
1066
1122
1067
} // namespace rtl_OUString
1123
} // namespace rtl_OUString
1068
1124
(-)sal/rtl/source/string.c (-18 / +4 lines)
Lines 55-60 Link Here
55
#endif
55
#endif
56
56
57
#include "strimp.h"
57
#include "strimp.h"
58
#include "surrogates.h"
58
59
59
#ifndef _RTL_STRING_H_
60
#ifndef _RTL_STRING_H_
60
#include <rtl/string.h>
61
#include <rtl/string.h>
Lines 136-152 double SAL_CALL rtl_str_toDouble(sal_Cha Link Here
136
137
137
/* ======================================================================= */
138
/* ======================================================================= */
138
139
139
#define RTL_UNICODE_START_HIGH_SURROGATES                   0xD800
140
#define RTL_UNICODE_END_HIGH_SURROGATES                     0xDBFF
141
#define RTL_UNICODE_START_LOW_SURROGATES                    0xDC00
142
#define RTL_UNICODE_END_LOW_SURROGATES                      0xDFFF
143
144
#define RTL_UNICODE_SURROGATES_HALFMASK                     0x03FFUL
145
#define RTL_UNICODE_SURROGATES_HALFBASE                     0x0010000UL
146
#define RTL_UNICODE_SURROGATES_HALFSHIFT                    10
147
148
/* ----------------------------------------------------------------------- */
149
150
static int rtl_ImplGetFastUTF8ByteLen( const sal_Unicode* pStr, sal_Int32 nLen )
140
static int rtl_ImplGetFastUTF8ByteLen( const sal_Unicode* pStr, sal_Int32 nLen )
151
{
141
{
152
    int                 n;
142
    int                 n;
Lines 166-173 static int rtl_ImplGetFastUTF8ByteLen( c Link Here
166
            n += 2;
156
            n += 2;
167
        else
157
        else
168
        {
158
        {
169
            if ( (c < RTL_UNICODE_START_HIGH_SURROGATES) ||
159
            if ( !SAL_RTL_IS_HIGH_SURROGATE(c) )
170
                 (c > RTL_UNICODE_END_HIGH_SURROGATES) )
171
                n += 3;
160
                n += 3;
172
            else
161
            else
173
            {
162
            {
Lines 176-187 static int rtl_ImplGetFastUTF8ByteLen( c Link Here
176
                if ( pStr+1 < pEndStr )
165
                if ( pStr+1 < pEndStr )
177
                {
166
                {
178
                    c = *(pStr+1);
167
                    c = *(pStr+1);
179
                    if ( (c >= RTL_UNICODE_START_LOW_SURROGATES) &&
168
                    if ( SAL_RTL_IS_LOW_SURROGATE(c) )
180
                         (c <= RTL_UNICODE_END_LOW_SURROGATES) )
181
                    {
169
                    {
182
                        nUCS4Char -= RTL_UNICODE_START_HIGH_SURROGATES;
170
                        nUCS4Char = SAL_RTL_COMBINE_SURROGATES(nUCS4Char, c);
183
                        nUCS4Char <<= RTL_UNICODE_SURROGATES_HALFSHIFT;
184
                        nUCS4Char += (c-RTL_UNICODE_START_LOW_SURROGATES) + RTL_UNICODE_SURROGATES_HALFBASE;
185
                        pStr++;
171
                        pStr++;
186
                    }
172
                    }
187
                }
173
                }
(-)sal/rtl/source/surrogates.h (+58 lines)
Line 0 Link Here
1
/*************************************************************************
2
 *
3
 *  OpenOffice.org - a multi-platform office productivity suite
4
 *
5
 *  $RCSfile: $
6
 *
7
 *  $Revision: $
8
 *
9
 *  last change: $Author: $ $Date: $
10
 *
11
 *  The Contents of this file are made available subject to
12
 *  the terms of GNU Lesser General Public License Version 2.1.
13
 *
14
 *
15
 *    GNU Lesser General Public License Version 2.1
16
 *    =============================================
17
 *    Copyright 2007 by Sun Microsystems, Inc.
18
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
19
 *
20
 *    This library is free software; you can redistribute it and/or
21
 *    modify it under the terms of the GNU Lesser General Public
22
 *    License version 2.1, as published by the Free Software Foundation.
23
 *
24
 *    This library is distributed in the hope that it will be useful,
25
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
26
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
27
 *    Lesser General Public License for more details.
28
 *
29
 *    You should have received a copy of the GNU Lesser General Public
30
 *    License along with this library; if not, write to the Free Software
31
 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
32
 *    MA  02111-1307  USA
33
 *
34
 ************************************************************************/
35
36
#ifndef INCLUDED_SAL_RTL_SOURCE_SURROGATES_H
37
#define INCLUDED_SAL_RTL_SOURCE_SURROGATES_H
38
39
#include "sal/config.h"
40
41
#define SAL_RTL_FIRST_HIGH_SURROGATE 0xD800
42
#define SAL_RTL_LAST_HIGH_SURROGATE 0xDBFF
43
#define SAL_RTL_FIRST_LOW_SURROGATE 0xDC00
44
#define SAL_RTL_LAST_LOW_SURROGATE 0xDFFF
45
46
#define SAL_RTL_IS_HIGH_SURROGATE(utf16) \
47
    ((utf16) >= SAL_RTL_FIRST_HIGH_SURROGATE && \
48
     (utf16) <= SAL_RTL_LAST_HIGH_SURROGATE)
49
50
#define SAL_RTL_IS_LOW_SURROGATE(utf16) \
51
    ((utf16) >= SAL_RTL_FIRST_LOW_SURROGATE && \
52
     (utf16) <= SAL_RTL_LAST_LOW_SURROGATE)
53
54
#define SAL_RTL_COMBINE_SURROGATES(high, low) \
55
    ((((high) - SAL_RTL_FIRST_HIGH_SURROGATE) << 10) + \
56
     ((low) - SAL_RTL_FIRST_LOW_SURROGATE) + 0x10000)
57
58
#endif
(-)sal/rtl/source/uri.cxx (-7 / +11 lines)
Lines 38-43 Link Here
38
38
39
#include "rtl/uri.h"
39
#include "rtl/uri.h"
40
40
41
#include "surrogates.h"
42
41
#include "osl/diagnose.h"
43
#include "osl/diagnose.h"
42
#include "rtl/strbuf.hxx"
44
#include "rtl/strbuf.hxx"
43
#include "rtl/textenc.h"
45
#include "rtl/textenc.h"
Lines 70-81 inline bool isAlpha(sal_uInt32 nUtf32) Link Here
70
72
71
inline bool isHighSurrogate(sal_uInt32 nUtf16)
73
inline bool isHighSurrogate(sal_uInt32 nUtf16)
72
{
74
{
73
    return nUtf16 >= 0xD800 && nUtf16 <= 0xDBFF;
75
    return SAL_RTL_IS_HIGH_SURROGATE(nUtf16);
74
}
76
}
75
77
76
inline bool isLowSurrogate(sal_uInt32 nUtf16)
78
inline bool isLowSurrogate(sal_uInt32 nUtf16)
77
{
79
{
78
    return nUtf16 >= 0xDC00 && nUtf16 <= 0xDFFF;
80
    return SAL_RTL_IS_LOW_SURROGATE(nUtf16);
81
}
82
83
inline sal_uInt32 combineSurrogates(sal_uInt32 high, sal_uInt32 low)
84
{
85
    return SAL_RTL_COMBINE_SURROGATES(high, low);
79
}
86
}
80
87
81
inline int getHexWeight(sal_uInt32 nUtf32)
88
inline int getHexWeight(sal_uInt32 nUtf32)
Lines 214-222 sal_uInt32 readUcs4(sal_Unicode const ** Link Here
214
                        || (nDstSize == 2 && isHighSurrogate(aDst[0])
221
                        || (nDstSize == 2 && isHighSurrogate(aDst[0])
215
                            && isLowSurrogate(aDst[1])));
222
                            && isLowSurrogate(aDst[1])));
216
                    return nDstSize == 1
223
                    return nDstSize == 1
217
                        ? aDst[0]
224
                        ? aDst[0] : combineSurrogates(aDst[0], aDst[1]);
218
                        : (((aDst[0] & 0x3FF) << 10) + (aDst[1] & 0x3FF)
219
                           + 0x10000);
220
                }
225
                }
221
                else if (nInfo == RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
226
                else if (nInfo == RTL_TEXTTOUNICODE_INFO_SRCBUFFERTOSMALL
222
                         && pEnd - p >= 3 && p[0] == cEscapePrefix
227
                         && pEnd - p >= 3 && p[0] == cEscapePrefix
Lines 249-256 sal_uInt32 readUcs4(sal_Unicode const ** Link Here
249
        *pType = EscapeNo;
254
        *pType = EscapeNo;
250
        return isHighSurrogate(nChar) && *pBegin < pEnd
255
        return isHighSurrogate(nChar) && *pBegin < pEnd
251
               && isLowSurrogate(**pBegin) ?
256
               && isLowSurrogate(**pBegin) ?
252
                   ((nChar & 0x3FF) << 10 | *(*pBegin)++ & 0x3FF) + 0x10000 :
257
                   combineSurrogates(nChar, *(*pBegin)++) : nChar;
253
                   nChar;
254
    }
258
    }
255
}
259
}
256
260
(-)sal/rtl/source/ustring.c (+50 lines)
Lines 61-66 Link Here
61
61
62
#include "hash.h"
62
#include "hash.h"
63
#include "strimp.h"
63
#include "strimp.h"
64
#include "surrogates.h"
64
65
65
#ifndef _RTL_USTRING_H_
66
#ifndef _RTL_USTRING_H_
66
#include <rtl/ustring.h>
67
#include <rtl/ustring.h>
Lines 799-801 internRelease (rtl_uString *pThis) Link Here
799
    if (pFree)
800
    if (pFree)
800
        rtl_freeMemory (pFree);
801
        rtl_freeMemory (pFree);
801
}
802
}
803
804
sal_uInt32 SAL_CALL rtl_uString_iterateCodePoints(
805
    rtl_uString const * string, sal_Int32 * indexUtf16,
806
    sal_Int32 postIncrementCodePoints)
807
{
808
    sal_Int32 n;
809
    sal_uInt32 cp;
810
    OSL_ASSERT(
811
        string != NULL && indexUtf16 != NULL && *indexUtf16 >= 0 &&
812
        *indexUtf16 <= string->length);
813
    n = *indexUtf16;
814
    if (n == string->length) {
815
        cp = SAL_MAX_UINT32;
816
    } else {
817
        sal_Unicode cu = string->buffer[n];
818
        if (SAL_RTL_IS_HIGH_SURROGATE(cu) && string->length - n >= 2 &&
819
            SAL_RTL_IS_LOW_SURROGATE(string->buffer[n + 1]))
820
        {
821
            cp = SAL_RTL_COMBINE_SURROGATES(cu, string->buffer[n + 1]);
822
        } else {
823
            cp = cu;
824
        }
825
    }
826
    while (postIncrementCodePoints > 0) {
827
        sal_Unicode cu;
828
        OSL_ASSERT(n < string->length);
829
        cu = string->buffer[n++];
830
        if (SAL_RTL_IS_HIGH_SURROGATE(cu) && n != string->length &&
831
            SAL_RTL_IS_LOW_SURROGATE(string->buffer[n]))
832
        {
833
            ++n;
834
        }
835
        --postIncrementCodePoints;
836
    }
837
    while (postIncrementCodePoints < 0) {
838
        sal_Unicode cu;
839
        OSL_ASSERT(n > 0);
840
        cu = string->buffer[--n];
841
        if (SAL_RTL_IS_LOW_SURROGATE(cu) && n != 0 &&
842
            SAL_RTL_IS_HIGH_SURROGATE(string->buffer[n - 1]))
843
        {
844
            --n;
845
        }
846
        ++postIncrementCodePoints;
847
    }
848
    OSL_ASSERT(n >= 0 && n <= string->length);
849
    *indexUtf16 = n;
850
    return cp;
851
}
(-)sal/util/sal.map (-1 / +2 lines)
Lines 551-560 UDK_3.5 { Link Here
551
		rtl_cache_free;
551
		rtl_cache_free;
552
} UDK_3.4;
552
} UDK_3.4;
553
553
554
UDK_3.6 {
554
UDK_3.6 { # OOo 2.3
555
    global:
555
    global:
556
		rtl_uString_intern;
556
		rtl_uString_intern;
557
		rtl_uString_internConvert;
557
		rtl_uString_internConvert;
558
        rtl_uString_iterateCodePoints;
558
} UDK_3.5;
559
} UDK_3.5;
559
560
560
PRIVATE_1.0 {
561
PRIVATE_1.0 {
(-)solenv/inc/_cppunit.mk (-10 / +10 lines)
Lines 5-11 TEST1LIB=$(SHL1TARGETN) Link Here
5
.IF "$(TESTOPT)"==""
5
.IF "$(TESTOPT)"==""
6
	TEST1OPT="-jobexclude"
6
	TEST1OPT="-jobexclude"
7
	TEST1OPT+=$(SHL1TARGET).xsce
7
	TEST1OPT+=$(SHL1TARGET).xsce
8
	TEST1OPT="-sf"
8
	TEST1OPT+="-sf"
9
	TEST1OPT+=$(mktmp "foo")
9
	TEST1OPT+=$(mktmp "foo")
10
	TEST1OPT+="-onlyerrors"
10
	TEST1OPT+="-onlyerrors"
11
	TEST1OPT+=" "
11
	TEST1OPT+=" "
Lines 30-36 TEST2LIB=$(SHL2TARGETN) Link Here
30
.IF "$(TESTOPT)"==""
30
.IF "$(TESTOPT)"==""
31
	TEST2OPT="-jobexclude"
31
	TEST2OPT="-jobexclude"
32
	TEST2OPT+=$(SHL2TARGET).xsce
32
	TEST2OPT+=$(SHL2TARGET).xsce
33
	TEST2OPT="-sf"
33
	TEST2OPT+="-sf"
34
	TEST2OPT+=$(mktmp "foo")
34
	TEST2OPT+=$(mktmp "foo")
35
	TEST2OPT+="-onlyerrors"
35
	TEST2OPT+="-onlyerrors"
36
	TEST2OPT+=" "
36
	TEST2OPT+=" "
Lines 55-61 TEST3LIB=$(SHL3TARGETN) Link Here
55
.IF "$(TESTOPT)"==""
55
.IF "$(TESTOPT)"==""
56
	TEST3OPT="-jobexclude"
56
	TEST3OPT="-jobexclude"
57
	TEST3OPT+=$(SHL3TARGET).xsce
57
	TEST3OPT+=$(SHL3TARGET).xsce
58
	TEST3OPT="-sf"
58
	TEST3OPT+="-sf"
59
	TEST3OPT+=$(mktmp "foo")
59
	TEST3OPT+=$(mktmp "foo")
60
	TEST3OPT+="-onlyerrors"
60
	TEST3OPT+="-onlyerrors"
61
	TEST3OPT+=" "
61
	TEST3OPT+=" "
Lines 80-86 TEST4LIB=$(SHL4TARGETN) Link Here
80
.IF "$(TESTOPT)"==""
80
.IF "$(TESTOPT)"==""
81
	TEST4OPT="-jobexclude"
81
	TEST4OPT="-jobexclude"
82
	TEST4OPT+=$(SHL4TARGET).xsce
82
	TEST4OPT+=$(SHL4TARGET).xsce
83
	TEST4OPT="-sf"
83
	TEST4OPT+="-sf"
84
	TEST4OPT+=$(mktmp "foo")
84
	TEST4OPT+=$(mktmp "foo")
85
	TEST4OPT+="-onlyerrors"
85
	TEST4OPT+="-onlyerrors"
86
	TEST4OPT+=" "
86
	TEST4OPT+=" "
Lines 105-111 TEST5LIB=$(SHL5TARGETN) Link Here
105
.IF "$(TESTOPT)"==""
105
.IF "$(TESTOPT)"==""
106
	TEST5OPT="-jobexclude"
106
	TEST5OPT="-jobexclude"
107
	TEST5OPT+=$(SHL5TARGET).xsce
107
	TEST5OPT+=$(SHL5TARGET).xsce
108
	TEST5OPT="-sf"
108
	TEST5OPT+="-sf"
109
	TEST5OPT+=$(mktmp "foo")
109
	TEST5OPT+=$(mktmp "foo")
110
	TEST5OPT+="-onlyerrors"
110
	TEST5OPT+="-onlyerrors"
111
	TEST5OPT+=" "
111
	TEST5OPT+=" "
Lines 130-136 TEST6LIB=$(SHL6TARGETN) Link Here
130
.IF "$(TESTOPT)"==""
130
.IF "$(TESTOPT)"==""
131
	TEST6OPT="-jobexclude"
131
	TEST6OPT="-jobexclude"
132
	TEST6OPT+=$(SHL6TARGET).xsce
132
	TEST6OPT+=$(SHL6TARGET).xsce
133
	TEST6OPT="-sf"
133
	TEST6OPT+="-sf"
134
	TEST6OPT+=$(mktmp "foo")
134
	TEST6OPT+=$(mktmp "foo")
135
	TEST6OPT+="-onlyerrors"
135
	TEST6OPT+="-onlyerrors"
136
	TEST6OPT+=" "
136
	TEST6OPT+=" "
Lines 155-161 TEST7LIB=$(SHL7TARGETN) Link Here
155
.IF "$(TESTOPT)"==""
155
.IF "$(TESTOPT)"==""
156
	TEST7OPT="-jobexclude"
156
	TEST7OPT="-jobexclude"
157
	TEST7OPT+=$(SHL7TARGET).xsce
157
	TEST7OPT+=$(SHL7TARGET).xsce
158
	TEST7OPT="-sf"
158
	TEST7OPT+="-sf"
159
	TEST7OPT+=$(mktmp "foo")
159
	TEST7OPT+=$(mktmp "foo")
160
	TEST7OPT+="-onlyerrors"
160
	TEST7OPT+="-onlyerrors"
161
	TEST7OPT+=" "
161
	TEST7OPT+=" "
Lines 180-186 TEST8LIB=$(SHL8TARGETN) Link Here
180
.IF "$(TESTOPT)"==""
180
.IF "$(TESTOPT)"==""
181
	TEST8OPT="-jobexclude"
181
	TEST8OPT="-jobexclude"
182
	TEST8OPT+=$(SHL8TARGET).xsce
182
	TEST8OPT+=$(SHL8TARGET).xsce
183
	TEST8OPT="-sf"
183
	TEST8OPT+="-sf"
184
	TEST8OPT+=$(mktmp "foo")
184
	TEST8OPT+=$(mktmp "foo")
185
	TEST8OPT+="-onlyerrors"
185
	TEST8OPT+="-onlyerrors"
186
	TEST8OPT+=" "
186
	TEST8OPT+=" "
Lines 205-211 TEST9LIB=$(SHL9TARGETN) Link Here
205
.IF "$(TESTOPT)"==""
205
.IF "$(TESTOPT)"==""
206
	TEST9OPT="-jobexclude"
206
	TEST9OPT="-jobexclude"
207
	TEST9OPT+=$(SHL9TARGET).xsce
207
	TEST9OPT+=$(SHL9TARGET).xsce
208
	TEST9OPT="-sf"
208
	TEST9OPT+="-sf"
209
	TEST9OPT+=$(mktmp "foo")
209
	TEST9OPT+=$(mktmp "foo")
210
	TEST9OPT+="-onlyerrors"
210
	TEST9OPT+="-onlyerrors"
211
	TEST9OPT+=" "
211
	TEST9OPT+=" "
Lines 230-236 TEST10LIB=$(SHL10TARGETN) Link Here
230
.IF "$(TESTOPT)"==""
230
.IF "$(TESTOPT)"==""
231
	TEST10OPT="-jobexclude"
231
	TEST10OPT="-jobexclude"
232
	TEST10OPT+=$(SHL10TARGET).xsce
232
	TEST10OPT+=$(SHL10TARGET).xsce
233
	TEST10OPT="-sf"
233
	TEST10OPT+="-sf"
234
	TEST10OPT+=$(mktmp "foo")
234
	TEST10OPT+=$(mktmp "foo")
235
	TEST10OPT+="-onlyerrors"
235
	TEST10OPT+="-onlyerrors"
236
	TEST10OPT+=" "
236
	TEST10OPT+=" "
(-)solenv/inc/cppunit.mk (-3 / +3 lines)
Lines 4-12 Link Here
4
#
4
#
5
#   $RCSfile: cppunit.mk,v $
5
#   $RCSfile: cppunit.mk,v $
6
#
6
#
7
#   $Revision: 1.6 $
7
#   $Revision: 1.6.50.1 $
8
#
8
#
9
#   last change: $Author: obo $ $Date: 2007/01/22 14:48:20 $
9
#   last change: $Author: lla $ $Date: 2007/03/09 13:43:35 $
10
#
10
#
11
#   The Contents of this file are made available subject to
11
#   The Contents of this file are made available subject to
12
#   the terms of GNU Lesser General Public License Version 2.1.
12
#   the terms of GNU Lesser General Public License Version 2.1.
Lines 63-69 TEST$(TNR)LIB=$(SHL$(TNR)TARGETN) Link Here
63
.IF "$(TESTOPT)"==""
63
.IF "$(TESTOPT)"==""
64
	TEST$(TNR)OPT="-jobexclude"
64
	TEST$(TNR)OPT="-jobexclude"
65
	TEST$(TNR)OPT+=$(SHL$(TNR)TARGET).xsce
65
	TEST$(TNR)OPT+=$(SHL$(TNR)TARGET).xsce
66
	TEST$(TNR)OPT="-sf"
66
	TEST$(TNR)OPT+="-sf"
67
	TEST$(TNR)OPT+=$(mktmp "foo")
67
	TEST$(TNR)OPT+=$(mktmp "foo")
68
	TEST$(TNR)OPT+="-onlyerrors"
68
	TEST$(TNR)OPT+="-onlyerrors"
69
	TEST$(TNR)OPT+=" "
69
	TEST$(TNR)OPT+=" "

Return to issue 76869