mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-07 09:46:54 +00:00
fix remaining usses with RH7.0 compile and also with systems with suboptimal string. not compile tested.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/lyx-1_1_5@1266 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
78531e008a
commit
13394206d1
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
2000-12-06 Lars Gullik Bjønnes <larsbj@lyx.org>
|
||||||
|
|
||||||
|
* src/lyx_cb.C (InsertAsciiFile): use a vector to temporary store
|
||||||
|
the file when std::string does not have push_back.
|
||||||
|
|
||||||
|
* config/lyxinclude.m4 (public): add LYX_CXX_GOOD_STD_STRING
|
||||||
|
|
||||||
|
* configure.in (INSTALL_SCRIPT): call LYX_CXX_GOOD_STD_STRING
|
||||||
|
|
||||||
|
* src/support/lstrings.C (prefixIs): use STD_STRING_IS_GOOD
|
||||||
|
(suffixIs): ditto
|
||||||
|
|
||||||
2000-12-06 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
|
2000-12-06 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
|
||||||
|
|
||||||
* lib/layouts/lyxmacros.inc: do not use \verbatim@font in lyxcode.
|
* lib/layouts/lyxmacros.inc: do not use \verbatim@font in lyxcode.
|
||||||
|
37
acinclude.m4
37
acinclude.m4
@ -376,6 +376,43 @@ dnl AC_MSG_RESULT([$with_included_string])
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl Usage: LYX_CXX_GOOD_STD_STRING : checks whether the C++ compiler
|
||||||
|
dnl has a std::string that is close to the standard. So close that
|
||||||
|
dnl methods not found in "unstandard" std::strings are present here.
|
||||||
|
AC_DEFUN(LYX_CXX_GOOD_STD_STRING,[
|
||||||
|
AC_REQUIRE([LYX_PROG_CXX])
|
||||||
|
AC_CACHE_CHECK([whether the systems std::string is really good],
|
||||||
|
[lyx_cv_std_string_good],
|
||||||
|
[AC_TRY_COMPILE([
|
||||||
|
#include <string>
|
||||||
|
using std::string;
|
||||||
|
],[
|
||||||
|
// From a std::string that is supposed to be close to the
|
||||||
|
// standard we require at least three things:
|
||||||
|
// - clear() and erase()
|
||||||
|
// - the strncmp of compare()
|
||||||
|
// - push_back()
|
||||||
|
string a("hello there");
|
||||||
|
a.erase();
|
||||||
|
a = "hey";
|
||||||
|
char s[] = "y";
|
||||||
|
int t = a.compare(a.length() - 1, 1, s);
|
||||||
|
a.push_back('g');
|
||||||
|
a.clear();
|
||||||
|
],[
|
||||||
|
lyx_cv_std_string_good=yes
|
||||||
|
],[
|
||||||
|
lyx_cv_std_string_good=no
|
||||||
|
|
||||||
|
])
|
||||||
|
])
|
||||||
|
if test x$lyx_cv_std_string_good = xyes ; then
|
||||||
|
AC_DEFINE(STD_STRING_IS_GOOD, 1,
|
||||||
|
[Define if the systems std::string is really good.])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl Usage: LYX_REGEX : checks if the header regex.h is available
|
dnl Usage: LYX_REGEX : checks if the header regex.h is available
|
||||||
dnl if it is not available the automake variable USE_REGEX will be
|
dnl if it is not available the automake variable USE_REGEX will be
|
||||||
dnl defined and the regex.h and regex.c that we provide will be used.
|
dnl defined and the regex.h and regex.c that we provide will be used.
|
||||||
|
@ -376,6 +376,43 @@ dnl AC_MSG_RESULT([$with_included_string])
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl Usage: LYX_CXX_GOOD_STD_STRING : checks whether the C++ compiler
|
||||||
|
dnl has a std::string that is close to the standard. So close that
|
||||||
|
dnl methods not found in "unstandard" std::strings are present here.
|
||||||
|
AC_DEFUN(LYX_CXX_GOOD_STD_STRING,[
|
||||||
|
AC_REQUIRE([LYX_PROG_CXX])
|
||||||
|
AC_CACHE_CHECK([whether the systems std::string is really good],
|
||||||
|
[lyx_cv_std_string_good],
|
||||||
|
[AC_TRY_COMPILE([
|
||||||
|
#include <string>
|
||||||
|
using std::string;
|
||||||
|
],[
|
||||||
|
// From a std::string that is supposed to be close to the
|
||||||
|
// standard we require at least three things:
|
||||||
|
// - clear() and erase()
|
||||||
|
// - the strncmp of compare()
|
||||||
|
// - push_back()
|
||||||
|
string a("hello there");
|
||||||
|
a.erase();
|
||||||
|
a = "hey";
|
||||||
|
char s[] = "y";
|
||||||
|
int t = a.compare(a.length() - 1, 1, s);
|
||||||
|
a.push_back('g');
|
||||||
|
a.clear();
|
||||||
|
],[
|
||||||
|
lyx_cv_std_string_good=yes
|
||||||
|
],[
|
||||||
|
lyx_cv_std_string_good=no
|
||||||
|
|
||||||
|
])
|
||||||
|
])
|
||||||
|
if test x$lyx_cv_std_string_good = xyes ; then
|
||||||
|
AC_DEFINE(STD_STRING_IS_GOOD, 1,
|
||||||
|
[Define if the systems std::string is really good.])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl Usage: LYX_REGEX : checks if the header regex.h is available
|
dnl Usage: LYX_REGEX : checks if the header regex.h is available
|
||||||
dnl if it is not available the automake variable USE_REGEX will be
|
dnl if it is not available the automake variable USE_REGEX will be
|
||||||
dnl defined and the regex.h and regex.c that we provide will be used.
|
dnl defined and the regex.h and regex.c that we provide will be used.
|
||||||
|
@ -77,6 +77,7 @@ dnl we do not use stl stack, or at least not on gcc 2.7, which was the
|
|||||||
dnl cause for this test.
|
dnl cause for this test.
|
||||||
dnl LYX_CXX_STL_STACK
|
dnl LYX_CXX_STL_STACK
|
||||||
LYX_CXX_STL_STRING
|
LYX_CXX_STL_STRING
|
||||||
|
LYX_CXX_GOOD_STD_STRING
|
||||||
LYX_CXX_NAMESPACES
|
LYX_CXX_NAMESPACES
|
||||||
LYX_CXX_CHEADERS
|
LYX_CXX_CHEADERS
|
||||||
LYX_STD_COUNT
|
LYX_STD_COUNT
|
||||||
|
@ -1147,10 +1147,16 @@ void InsertAsciiFile(BufferView * bv, string const & f, bool asParagraph)
|
|||||||
ifs.unsetf(ios::skipws);
|
ifs.unsetf(ios::skipws);
|
||||||
istream_iterator<char> ii(ifs);
|
istream_iterator<char> ii(ifs);
|
||||||
istream_iterator<char> end;
|
istream_iterator<char> end;
|
||||||
|
#if !defined(USE_INCLUDED_STRING) && !defined(STD_STRING_IS_GOOD)
|
||||||
|
vector<char> tmp;
|
||||||
|
copy(ii, end, back_inserter(tmp));
|
||||||
|
string tmpstr(tmp.begin(), tmp.end());
|
||||||
|
#else
|
||||||
//string tmpstr(ii, end); // yet a reason for using std::string
|
//string tmpstr(ii, end); // yet a reason for using std::string
|
||||||
// alternate approach to get the file into a string:
|
// alternate approach to get the file into a string:
|
||||||
string tmpstr;
|
string tmpstr;
|
||||||
copy(ii, end, back_inserter(tmpstr));
|
copy(ii, end, back_inserter(tmpstr));
|
||||||
|
#endif
|
||||||
// insert the string
|
// insert the string
|
||||||
current_view->hideCursor();
|
current_view->hideCursor();
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ bool prefixIs(string const & a, char const * pre)
|
|||||||
if (l > a.length() || a.empty())
|
if (l > a.length() || a.empty())
|
||||||
return false;
|
return false;
|
||||||
else {
|
else {
|
||||||
#if !defined(USE_INCLUDED_STRING)
|
#if !defined(USE_INCLUDED_STRING) && !defined(STD_STRING_IS_GOOD)
|
||||||
return ::strncmp(a.c_str(), pre, l) == 0;
|
return ::strncmp(a.c_str(), pre, l) == 0;
|
||||||
#else
|
#else
|
||||||
return a.compare(0, l, pre, l) == 0;
|
return a.compare(0, l, pre, l) == 0;
|
||||||
@ -198,7 +198,7 @@ bool suffixIs(string const & a, char const * suf)
|
|||||||
if (suflen > a.length())
|
if (suflen > a.length())
|
||||||
return false;
|
return false;
|
||||||
else {
|
else {
|
||||||
#if !defined(USE_INCLUDED_STRING)
|
#if !defined(USE_INCLUDED_STRING) && !defined(STD_STRING_IS_GOOD)
|
||||||
string const tmp(a, a.length() - suflen);
|
string const tmp(a, a.length() - suflen);
|
||||||
return ::strncmp(tmp.c_str(), suf, suflen) == 0;
|
return ::strncmp(tmp.c_str(), suf, suflen) == 0;
|
||||||
#else
|
#else
|
||||||
|
Loading…
Reference in New Issue
Block a user