add uclibc++ (from packages)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32367 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
a178df6dde
commit
5dd04b43f5
|
@ -0,0 +1,87 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006-2012 OpenWrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the GNU General Public License v2.
|
||||||
|
# See /LICENSE for more information.
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=uclibc++
|
||||||
|
PKG_VERSION:=0.2.3
|
||||||
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
|
PKG_SOURCE:=uClibc++-$(PKG_VERSION).tar.bz2
|
||||||
|
PKG_SOURCE_URL:=http://cxx.uclibc.org/src/
|
||||||
|
PKG_MD5SUM:=fd71a433ce1de85885d658f47885ab30
|
||||||
|
|
||||||
|
PKG_BUILD_DIR:=$(BUILD_DIR)/uClibc++-$(PKG_VERSION)
|
||||||
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
|
||||||
|
PKG_INSTALL:=1
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/uclibcxx
|
||||||
|
NAME:=uclibc++
|
||||||
|
SECTION:=libs
|
||||||
|
CATEGORY:=Libraries
|
||||||
|
TITLE:=C++ library for embedded systems
|
||||||
|
URL:=http://cxx.uclibc.org/src/
|
||||||
|
endef
|
||||||
|
|
||||||
|
UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \
|
||||||
|
-e 's/i.86/i386/' \
|
||||||
|
-e 's/sparc.*/sparc/' \
|
||||||
|
-e 's/m68k.*/m68k/' \
|
||||||
|
-e 's/ppc/powerpc/g' \
|
||||||
|
-e 's/v850.*/v850/g' \
|
||||||
|
-e 's/sh64/sh/' \
|
||||||
|
-e 's/sh[234].*/sh/' \
|
||||||
|
-e 's/mips.*/mips/' \
|
||||||
|
-e 's/mipsel.*/mips/' \
|
||||||
|
-e 's/cris.*/cris/' \
|
||||||
|
)
|
||||||
|
|
||||||
|
TARGET_CFLAGS += $(FPIC)
|
||||||
|
|
||||||
|
MAKE_FLAGS:= \
|
||||||
|
TOPDIR="$(PKG_BUILD_DIR)/" \
|
||||||
|
$(TARGET_CONFIGURE_OPTS) \
|
||||||
|
CPU_CFLAGS="$(TARGET_CFLAGS)" \
|
||||||
|
CROSS="$(TARGET_CROSS)" \
|
||||||
|
CP="$(CP)" \
|
||||||
|
GEN_LIBS="-lc $(LIBGCC_S)" \
|
||||||
|
check_as_needed=
|
||||||
|
|
||||||
|
# check_as_needed overrides dependency on libgcc_s
|
||||||
|
|
||||||
|
define Build/Configure
|
||||||
|
if [ -f ./files/config.$(UCLIBC_TARGET_ARCH) ]; then \
|
||||||
|
cp ./files/config.$(UCLIBC_TARGET_ARCH) $(PKG_BUILD_DIR)/.config; \
|
||||||
|
else \
|
||||||
|
cp ./files/config.default $(PKG_BUILD_DIR)/.config; \
|
||||||
|
fi
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Build/InstallDev
|
||||||
|
$(INSTALL_DIR) $(2)/bin $(1)/usr/include/uClibc++ $(1)/usr/lib
|
||||||
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/g++-uc $(2)/bin/
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/include/* $(1)/usr/include/uClibc++/
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/lib/libuClibc++*.{a,so}* $(1)/usr/lib/
|
||||||
|
$(SED) 's|-I/include/|-I$(STAGING_DIR)/usr/include/uClibc++/|g' $(2)/bin/g++-uc
|
||||||
|
$(SED) 's|-L/lib/|-L$(STAGING_DIR)/usr/lib/|g' $(2)/bin/g++-uc
|
||||||
|
# add another wrapper which links against both uClibc++ and libstdc++
|
||||||
|
$(INSTALL_BIN) $(2)/bin/g++-uc $(2)/bin/g++-uc+std
|
||||||
|
$(SED) 's|^WRAPPER_INCLUDEDIR=.*||g' $(2)/bin/g++-uc+std
|
||||||
|
$(SED) 's|-luClibc++|-Wl,-Bdynamic,-luClibc++,-Bstatic,-lstdc++,-Bdynamic|g' $(2)/bin/g++-uc+std
|
||||||
|
$(SED) 's|-nostdinc++||g' $(2)/bin/g++-uc+std
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/uclibcxx/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/lib
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/lib/libuClibc++.so.* $(1)/usr/lib/
|
||||||
|
$(CP) $(PKG_INSTALL_DIR)/lib/libuClibc++-*.so $(1)/usr/lib/
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,uclibcxx))
|
|
@ -0,0 +1,58 @@
|
||||||
|
#
|
||||||
|
# Automatically generated make config: don't edit
|
||||||
|
#
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target Features and Options
|
||||||
|
#
|
||||||
|
UCLIBCXX_HAS_FLOATS=y
|
||||||
|
# UCLIBCXX_HAS_LONG_DOUBLE is not set
|
||||||
|
# UCLIBCXX_HAS_TLS is not set
|
||||||
|
WARNINGS="-Wall"
|
||||||
|
BUILD_EXTRA_LIBRARIES=""
|
||||||
|
HAVE_DOT_CONFIG=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# String and I/O Stream Support
|
||||||
|
#
|
||||||
|
UCLIBCXX_HAS_WCHAR=y
|
||||||
|
UCLIBCXX_IOSTREAM_BUFSIZE=32
|
||||||
|
UCLIBCXX_HAS_LFS=y
|
||||||
|
UCLIBCXX_SUPPORT_CDIR=y
|
||||||
|
UCLIBCXX_SUPPORT_CIN=y
|
||||||
|
UCLIBCXX_SUPPORT_COUT=y
|
||||||
|
UCLIBCXX_SUPPORT_CERR=y
|
||||||
|
UCLIBCXX_SUPPORT_CLOG=y
|
||||||
|
UCLIBCXX_SUPPORT_WCIN=y
|
||||||
|
UCLIBCXX_SUPPORT_WCOUT=y
|
||||||
|
UCLIBCXX_SUPPORT_WCERR=y
|
||||||
|
UCLIBCXX_SUPPORT_WCLOG=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# STL and Code Expansion
|
||||||
|
#
|
||||||
|
UCLIBCXX_STL_BUFFER_SIZE=32
|
||||||
|
UCLIBCXX_CODE_EXPANSION=y
|
||||||
|
UCLIBCXX_EXPAND_CONSTRUCTORS_DESTRUCTORS=y
|
||||||
|
UCLIBCXX_EXPAND_STRING_CHAR=y
|
||||||
|
UCLIBCXX_EXPAND_VECTOR_BASIC=y
|
||||||
|
UCLIBCXX_EXPAND_IOS_CHAR=y
|
||||||
|
UCLIBCXX_EXPAND_STREAMBUF_CHAR=y
|
||||||
|
UCLIBCXX_EXPAND_ISTREAM_CHAR=y
|
||||||
|
UCLIBCXX_EXPAND_OSTREAM_CHAR=y
|
||||||
|
UCLIBCXX_EXPAND_FSTREAM_CHAR=y
|
||||||
|
UCLIBCXX_EXPAND_SSTREAM_CHAR=y
|
||||||
|
|
||||||
|
#
|
||||||
|
# Library Installation Options
|
||||||
|
#
|
||||||
|
UCLIBCXX_RUNTIME_PREFIX=""
|
||||||
|
UCLIBCXX_RUNTIME_INCLUDE_SUBDIR="/include"
|
||||||
|
UCLIBCXX_RUNTIME_LIB_SUBDIR="/lib"
|
||||||
|
UCLIBCXX_RUNTIME_BIN_SUBDIR="/bin"
|
||||||
|
UCLIBCXX_EXCEPTION_SUPPORT=y
|
||||||
|
IMPORT_LIBSUP=y
|
||||||
|
# IMPORT_LIBGCC_EH is not set
|
||||||
|
BUILD_STATIC_LIB=y
|
||||||
|
# BUILD_ONLY_STATIC_LIB is not set
|
||||||
|
# DODEBUG is not set
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -ur old/bin/Makefile dev/bin/Makefile
|
||||||
|
--- old/bin/Makefile Sat Oct 14 17:49:54 2006
|
||||||
|
+++ dev/bin/Makefile Sat Oct 14 17:57:33 2006
|
||||||
|
@@ -13,7 +13,7 @@
|
||||||
|
$(INSTALL) -m 755 $(WRAPPER) $(PREFIX)$(UCLIBCXX_RUNTIME_BINDIR)
|
||||||
|
|
||||||
|
$(WRAPPER):
|
||||||
|
- echo '#!/bin/sh' > $(WRAPPER)
|
||||||
|
+ echo '#!/usr/bin/env bash' > $(WRAPPER)
|
||||||
|
echo '' >> $(WRAPPER)
|
||||||
|
echo 'WRAPPER_INCLUDEDIR="$${WRAPPER_INCLUDEDIR:=-I$(UCLIBCXX_RUNTIME_INCLUDEDIR)}"' >> $(WRAPPER)
|
||||||
|
echo 'WRAPPER_LIBDIR="$${WRAPPER_LIBDIR:=-L$(UCLIBCXX_RUNTIME_LIBDIR)}"' >> $(WRAPPER)
|
|
@ -0,0 +1,19 @@
|
||||||
|
diff -ur old/src/Makefile dev/src/Makefile
|
||||||
|
--- old/src/Makefile Sat Oct 14 17:49:54 2006
|
||||||
|
+++ dev/src/Makefile Sat Oct 14 18:02:30 2006
|
||||||
|
@@ -25,12 +25,14 @@
|
||||||
|
|
||||||
|
all: libgcc_eh libsupc $(EXOBJS) $(ALLBIN)
|
||||||
|
|
||||||
|
+CP = cp -fPR
|
||||||
|
+
|
||||||
|
install:
|
||||||
|
$(INSTALL) -d $(PREFIX)$(UCLIBCXX_RUNTIME_LIBDIR)
|
||||||
|
ifneq ($(BUILD_ONLY_STATIC_LIB),y)
|
||||||
|
$(INSTALL) -m 755 $(SHARED_FULLNAME) \
|
||||||
|
$(PREFIX)$(UCLIBCXX_RUNTIME_LIBDIR)
|
||||||
|
- cp -fa $(SHARED_MAJORNAME) $(LIBNAME).so $(PREFIX)$(UCLIBCXX_RUNTIME_LIBDIR)
|
||||||
|
+ $(CP) $(SHARED_MAJORNAME) $(LIBNAME).so $(PREFIX)$(UCLIBCXX_RUNTIME_LIBDIR)
|
||||||
|
endif
|
||||||
|
ifeq ($(BUILD_STATIC_LIB),y)
|
||||||
|
$(INSTALL) -m 644 $(LIBNAME).a $(PREFIX)$(UCLIBCXX_RUNTIME_LIBDIR)
|
|
@ -0,0 +1,24 @@
|
||||||
|
diff -ruN uClibc++-0.2.2-old/src/abi/libgcc_eh/Makefile uClibc++-0.2.2-new/src/abi/libgcc_eh/Makefile
|
||||||
|
--- uClibc++-0.2.2-old/src/abi/libgcc_eh/Makefile 2007-06-04 00:51:13.000000000 +0200
|
||||||
|
+++ uClibc++-0.2.2-new/src/abi/libgcc_eh/Makefile 2007-09-03 21:51:07.000000000 +0200
|
||||||
|
@@ -16,7 +16,7 @@
|
||||||
|
#
|
||||||
|
#else
|
||||||
|
# echo Binary
|
||||||
|
- $(AR) x $(shell CC=$(CC) $(TOPDIR)/scripts/find_libgcc_eh.sh)
|
||||||
|
+ $(AR) x $(shell CC="$(CC)" $(TOPDIR)/scripts/find_libgcc_eh.sh)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
diff -ruN uClibc++-0.2.2-old/src/abi/libsupc/Makefile uClibc++-0.2.2-new/src/abi/libsupc/Makefile
|
||||||
|
--- uClibc++-0.2.2-old/src/abi/libsupc/Makefile 2007-06-04 00:51:13.000000000 +0200
|
||||||
|
+++ uClibc++-0.2.2-new/src/abi/libsupc/Makefile 2007-09-03 21:51:17.000000000 +0200
|
||||||
|
@@ -14,7 +14,7 @@
|
||||||
|
#
|
||||||
|
#else
|
||||||
|
# echo Binary
|
||||||
|
- $(AR) x $(shell CC=$(CC) $(TOPDIR)/scripts/find_libsupc.sh)
|
||||||
|
+ $(AR) x $(shell CC="$(CC)" $(TOPDIR)/scripts/find_libsupc.sh)
|
||||||
|
$(RM) -f new_op*.o del_op*.o pure.o new_handler.o eh_alloc.o eh_globals.o
|
||||||
|
#
|
||||||
|
#endif
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -ruN uClibc++-0.2.2-old/bin/Makefile uClibc++-0.2.2-new/bin/Makefile
|
||||||
|
--- uClibc++-0.2.2-old/bin/Makefile 2007-09-23 13:46:10.000000000 +0200
|
||||||
|
+++ uClibc++-0.2.2-new/bin/Makefile 2007-09-23 13:47:03.000000000 +0200
|
||||||
|
@@ -25,7 +25,7 @@
|
||||||
|
echo 'while [ -n "$$1" ]' >> $(WRAPPER)
|
||||||
|
echo 'do' >> $(WRAPPER)
|
||||||
|
echo ' WRAPPER_OPTIONS="$$WRAPPER_OPTIONS $$1"' >> $(WRAPPER)
|
||||||
|
- echo ' if [ "$$1" = "-c" -o "$$1" = "-E" -o "$$1" = "-S" ]' >> $(WRAPPER)
|
||||||
|
+ echo ' if [ "$$1" = "-c" -o "$$1" = "-E" -o "$$1" = "-S" -o "$$1" = "-MF" ]' >> $(WRAPPER)
|
||||||
|
echo ' then' >> $(WRAPPER)
|
||||||
|
echo ' WRAPPER_INCLIB="N"' >> $(WRAPPER)
|
||||||
|
echo ' fi' >> $(WRAPPER)
|
|
@ -0,0 +1,42 @@
|
||||||
|
Index: uClibc++-0.2.2/include/typeinfo
|
||||||
|
===================================================================
|
||||||
|
--- uClibc++-0.2.2.orig/include/typeinfo 2008-02-13 00:37:04.000000000 +0100
|
||||||
|
+++ uClibc++-0.2.2/include/typeinfo 2008-02-13 00:37:34.000000000 +0100
|
||||||
|
@@ -44,6 +44,7 @@
|
||||||
|
class __class_type_info;
|
||||||
|
} // namespace __cxxabiv1
|
||||||
|
|
||||||
|
+#ifndef __GXX_MERGED_TYPEINFO_NAMES
|
||||||
|
#if !__GXX_WEAK__
|
||||||
|
// If weak symbols are not supported, typeinfo names are not merged.
|
||||||
|
#define __GXX_MERGED_TYPEINFO_NAMES 0
|
||||||
|
@@ -51,6 +52,7 @@
|
||||||
|
// On platforms that support weak symbols, typeinfo names are merged.
|
||||||
|
#define __GXX_MERGED_TYPEINFO_NAMES 1
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
namespace std
|
||||||
|
{
|
||||||
|
Index: uClibc++-0.2.2/include/unwind-cxx.h
|
||||||
|
===================================================================
|
||||||
|
--- uClibc++-0.2.2.orig/include/unwind-cxx.h 2008-02-13 00:38:04.000000000 +0100
|
||||||
|
+++ uClibc++-0.2.2/include/unwind-cxx.h 2008-02-13 00:40:32.000000000 +0100
|
||||||
|
@@ -135,6 +135,7 @@
|
||||||
|
|
||||||
|
// This is the exception class we report -- "GNUCC++\0".
|
||||||
|
const _Unwind_Exception_Class __gxx_exception_class
|
||||||
|
+#ifndef __ARM_EABI_UNWINDER__
|
||||||
|
= ((((((((_Unwind_Exception_Class) 'G'
|
||||||
|
<< 8 | (_Unwind_Exception_Class) 'N')
|
||||||
|
<< 8 | (_Unwind_Exception_Class) 'U')
|
||||||
|
@@ -143,6 +144,9 @@
|
||||||
|
<< 8 | (_Unwind_Exception_Class) '+')
|
||||||
|
<< 8 | (_Unwind_Exception_Class) '+')
|
||||||
|
<< 8 | (_Unwind_Exception_Class) '\0');
|
||||||
|
+#else
|
||||||
|
+= "GNUC++";
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
// GNU C++ personality routine, Version 0.
|
||||||
|
extern "C" _Unwind_Reason_Code __gxx_personality_v0
|
|
@ -0,0 +1,126 @@
|
||||||
|
--- a/include/associative_base
|
||||||
|
+++ b/include/associative_base
|
||||||
|
@@ -511,7 +511,7 @@
|
||||||
|
|
||||||
|
pair<iterator, bool> insert(const value_type& x){
|
||||||
|
pair<iterator, bool> retval;
|
||||||
|
- iterator location = lower_bound(value_to_key(x));
|
||||||
|
+ iterator location = lower_bound(this->value_to_key(x));
|
||||||
|
retval.second = true;
|
||||||
|
//Empty list or need to insert at end
|
||||||
|
if(end() == location){
|
||||||
|
@@ -520,7 +520,7 @@
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
//Something in the list
|
||||||
|
- if(c(value_to_key(x), value_to_key(*location))){
|
||||||
|
+ if(c(this->value_to_key(x), this->value_to_key(*location))){
|
||||||
|
location = backing.insert(location.base_iterator(), x);
|
||||||
|
retval.first = location;
|
||||||
|
}else{
|
||||||
|
@@ -604,7 +604,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
iterator insert(const value_type& x){
|
||||||
|
- iterator location = lower_bound(value_to_key(x));
|
||||||
|
+ iterator location = lower_bound(this->value_to_key(x));
|
||||||
|
|
||||||
|
if(location == begin()){
|
||||||
|
backing.push_front(x);
|
||||||
|
--- a/include/fstream
|
||||||
|
+++ b/include/fstream
|
||||||
|
@@ -72,9 +72,9 @@
|
||||||
|
pbuffer = new char_type[__UCLIBCXX_IOSTREAM_BUFSIZE__];
|
||||||
|
gbuffer = new char_type[__UCLIBCXX_IOSTREAM_BUFSIZE__];
|
||||||
|
|
||||||
|
- setp(pbuffer, pbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__);
|
||||||
|
+ this->setp(pbuffer, pbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__);
|
||||||
|
//Position get buffer so that there is no data available
|
||||||
|
- setg(gbuffer, gbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__,
|
||||||
|
+ this->setg(gbuffer, gbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__,
|
||||||
|
gbuffer + __UCLIBCXX_IOSTREAM_BUFSIZE__);
|
||||||
|
}
|
||||||
|
|
||||||
|
--- a/include/string
|
||||||
|
+++ b/include/string
|
||||||
|
@@ -426,7 +426,7 @@
|
||||||
|
}
|
||||||
|
_UCXXEXPORT size_type find (Ch c, size_type pos = 0) const{
|
||||||
|
for(size_type i = pos; i < length(); ++i){
|
||||||
|
- if(operator[](i) == c){
|
||||||
|
+ if(this->operator[](i) == c){
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -456,7 +456,7 @@
|
||||||
|
_UCXXEXPORT size_type find_first_of(const basic_string& str, size_type pos = 0) const{
|
||||||
|
for(size_type i = pos; i < length(); ++i){
|
||||||
|
for(size_type j = 0; j < str.length() ; ++j){
|
||||||
|
- if( Tr::eq(str[j], operator[](i)) ){
|
||||||
|
+ if( Tr::eq(str[j], this->operator[](i)) ){
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -472,7 +472,7 @@
|
||||||
|
}
|
||||||
|
_UCXXEXPORT size_type find_first_of(Ch c, size_type pos = 0) const{
|
||||||
|
for(size_type i = pos; i< length(); ++i){
|
||||||
|
- if( Tr::eq(operator[](i), c) ){
|
||||||
|
+ if( Tr::eq(this->operator[](i), c) ){
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -485,7 +485,7 @@
|
||||||
|
}
|
||||||
|
for(size_type i = pos; i >0 ; --i){
|
||||||
|
for(size_type j = 0 ; j < str.length(); ++j){
|
||||||
|
- if( Tr::eq(operator[](i-1), str[j]) ){
|
||||||
|
+ if( Tr::eq(this->operator[](i-1), str[j]) ){
|
||||||
|
return i-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -503,7 +503,7 @@
|
||||||
|
pos = length();
|
||||||
|
}
|
||||||
|
for(size_type i = pos; i >0 ; --i){
|
||||||
|
- if( Tr::eq(operator[](i-1), c) ){
|
||||||
|
+ if( Tr::eq(this->operator[](i-1), c) ){
|
||||||
|
return i-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -515,7 +515,7 @@
|
||||||
|
for(size_type i = pos; i < length(); ++i){
|
||||||
|
foundCharacter = false;
|
||||||
|
for(size_type j = 0; j < str.length() ; ++j){
|
||||||
|
- if( Tr::eq(str[j], operator[](i)) ){
|
||||||
|
+ if( Tr::eq(str[j], this->operator[](i)) ){
|
||||||
|
foundCharacter = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -534,7 +534,7 @@
|
||||||
|
}
|
||||||
|
_UCXXEXPORT size_type find_first_not_of(Ch c, size_type pos = 0) const{
|
||||||
|
for(size_type i = pos; i < length() ; ++i){
|
||||||
|
- if(operator[](i) != c){
|
||||||
|
+ if(this->operator[](i) != c){
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -546,7 +546,7 @@
|
||||||
|
xpos = pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
- while(xpos != npos && npos != str.find_first_of(at(xpos))){
|
||||||
|
+ while(xpos != npos && npos != str.find_first_of(this->at(xpos))){
|
||||||
|
--xpos;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -564,7 +564,7 @@
|
||||||
|
if(xpos > pos){
|
||||||
|
xpos = pos;
|
||||||
|
}
|
||||||
|
- while(xpos != npos && Tr::eq(at(xpos), c)){
|
||||||
|
+ while(xpos != npos && Tr::eq(this->at(xpos), c)){
|
||||||
|
--xpos;
|
||||||
|
}
|
||||||
|
return xpos;
|
Loading…
Reference in New Issue