mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-25 05:55:34 +00:00
better key handling, move some methods closer to caller, fix in lyxstring, change lyxsum to use istream_iterator
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2032 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
4bcf99c809
commit
ee7a1321a7
@ -1,3 +1,11 @@
|
|||||||
|
2001-05-29 Lars Gullik Bjønnes <larsbj@birdstep.com>
|
||||||
|
|
||||||
|
* boost/utility.hpp: update
|
||||||
|
|
||||||
|
* boost/smart_ptr.hpp: update... not finished
|
||||||
|
|
||||||
|
* boost/config.hpp: update
|
||||||
|
|
||||||
2001-04-17 Lars Gullik Bjønnes <larsbj@birdstep.com>
|
2001-04-17 Lars Gullik Bjønnes <larsbj@birdstep.com>
|
||||||
|
|
||||||
* boost/array.hpp: move array back into namespace boost
|
* boost/array.hpp: move array back into namespace boost
|
||||||
|
@ -11,6 +11,13 @@
|
|||||||
// http://www.boost.org/libs/config
|
// http://www.boost.org/libs/config
|
||||||
|
|
||||||
// Revision History (excluding minor changes for specific compilers)
|
// Revision History (excluding minor changes for specific compilers)
|
||||||
|
// 16 Mar 01 Added BOOST_VERSION (Jens Maurer)
|
||||||
|
// 06 Mar 01 Refactored EDG checks for Intel C++ (Dave Abrahams)
|
||||||
|
// 04 Mar 01 Factored EDG checks, added BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||||
|
// for Intel C++ 5.0 (Dave Abrahams)
|
||||||
|
// 17 Feb 01 BOOST_NO_CV_SPECIALIZATIONS
|
||||||
|
// BOOST_NO_CV_VOID_SPECIALIZATIONS (John Maddock)
|
||||||
|
// 11 Feb 01 Added BOOST_STATIC_CONSTANT (Dave Abrahams)
|
||||||
// 20 Jan 01 BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS moved here from
|
// 20 Jan 01 BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS moved here from
|
||||||
// cast.hpp. Added missing BOOST_NO_STRINGSTREAM which some
|
// cast.hpp. Added missing BOOST_NO_STRINGSTREAM which some
|
||||||
// boost code seemed to depend on. (Dave Abrahams)
|
// boost code seemed to depend on. (Dave Abrahams)
|
||||||
@ -51,6 +58,13 @@
|
|||||||
#ifndef BOOST_CONFIG_HPP
|
#ifndef BOOST_CONFIG_HPP
|
||||||
#define BOOST_CONFIG_HPP
|
#define BOOST_CONFIG_HPP
|
||||||
|
|
||||||
|
#define BOOST_VERSION 102200
|
||||||
|
|
||||||
|
// BOOST_VERSION % 100 is the sub-minor version
|
||||||
|
// BOOST_VERSION / 100 % 1000 is the minor version
|
||||||
|
// BOOST_VERSION / 100000 is the major version
|
||||||
|
|
||||||
|
|
||||||
// Conformance Flag Macros -------------------------------------------------//
|
// Conformance Flag Macros -------------------------------------------------//
|
||||||
//
|
//
|
||||||
// Conformance flag macros should identify the absence of C++ Standard
|
// Conformance flag macros should identify the absence of C++ Standard
|
||||||
@ -59,6 +73,12 @@
|
|||||||
// burden where it should be, on non-conforming compilers. In the future,
|
// burden where it should be, on non-conforming compilers. In the future,
|
||||||
// hopefully, less rather than more conformance flags will have to be defined.
|
// hopefully, less rather than more conformance flags will have to be defined.
|
||||||
|
|
||||||
|
// BOOST_NO_CV_SPECIALIZATIONS: if template specialisations for cv-qualified types
|
||||||
|
// conflict with a specialistaion for unqualififed type.
|
||||||
|
|
||||||
|
// BOOST_NO_CV_VOID_SPECIALIZATIONS: if template specialisations for cv-void types
|
||||||
|
// conflict with a specialistaion for void.
|
||||||
|
|
||||||
// BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP: Compiler does not implement
|
// BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP: Compiler does not implement
|
||||||
// argument-dependent lookup (also named Koenig lookup); see std::3.4.2
|
// argument-dependent lookup (also named Koenig lookup); see std::3.4.2
|
||||||
// [basic.koenig.lookup]
|
// [basic.koenig.lookup]
|
||||||
@ -194,6 +214,18 @@
|
|||||||
// BOOST_NO_STD_MIN_MAX: The C++ standard library does not provide
|
// BOOST_NO_STD_MIN_MAX: The C++ standard library does not provide
|
||||||
// the min() and max() template functions that should be in <algorithm>.
|
// the min() and max() template functions that should be in <algorithm>.
|
||||||
|
|
||||||
|
// Common compiler front-ends precede all compiler checks ------------------//
|
||||||
|
|
||||||
|
// Edison Design Group front-ends
|
||||||
|
# if defined(__EDG_VERSION__)
|
||||||
|
|
||||||
|
# if __EDG_VERSION__ <= 241
|
||||||
|
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Compiler-specific checks -------------------------------------------------//
|
||||||
// Compilers are listed in alphabetic order (except VC++ last - see below)---//
|
// Compilers are listed in alphabetic order (except VC++ last - see below)---//
|
||||||
|
|
||||||
// GNU CC (also known as GCC and G++) --------------------------------------//
|
// GNU CC (also known as GCC and G++) --------------------------------------//
|
||||||
@ -203,9 +235,11 @@
|
|||||||
// egcs 1.1 won't parse smart_ptr.hpp without this:
|
// egcs 1.1 won't parse smart_ptr.hpp without this:
|
||||||
# define BOOST_NO_AUTO_PTR
|
# define BOOST_NO_AUTO_PTR
|
||||||
# endif
|
# endif
|
||||||
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 95
|
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 97
|
||||||
# include <iterator> // not sure this is the right way to do this -JGS
|
# include <string> // not sure this is the right way to do this -JGS
|
||||||
# if !defined(_CXXRT_STD) && !defined(__SGI_STL) // need to ask Dietmar about this -JGS
|
# if defined(__BASTRING__) && !defined(__GLIBCPP__) && !defined(_CXXRT_STD) && !defined(__SGI_STL) // need to ask Dietmar about this -JGS
|
||||||
|
// this should only detect the stdlibc++ that ships with gcc, and
|
||||||
|
// not any replacements that may be installed...
|
||||||
# define BOOST_NO_STD_ITERATOR
|
# define BOOST_NO_STD_ITERATOR
|
||||||
# define BOOST_NO_LIMITS
|
# define BOOST_NO_LIMITS
|
||||||
# endif
|
# endif
|
||||||
@ -218,7 +252,7 @@
|
|||||||
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 8
|
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 8
|
||||||
# define BOOST_NO_MEMBER_TEMPLATES
|
# define BOOST_NO_MEMBER_TEMPLATES
|
||||||
# endif
|
# endif
|
||||||
# if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
|
# if (__GNUC__ == 2 && __GNUC_MINOR__ > 97) || __GNUC__ > 2
|
||||||
// upcoming gcc 3.0
|
// upcoming gcc 3.0
|
||||||
# include <iterator>
|
# include <iterator>
|
||||||
# if defined(__GLIBCPP__)
|
# if defined(__GLIBCPP__)
|
||||||
@ -229,7 +263,16 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// Kai C++ ------------------------------------------------------------------//
|
// Intel on Linux ---------------------------------------------------------
|
||||||
|
|
||||||
|
#elif defined __ICC
|
||||||
|
# include <iterator>
|
||||||
|
# ifdef _CPPLIB_VER
|
||||||
|
// shipped with Dinkumware 3.10, which has a different hash_map
|
||||||
|
# define BOOST_NO_HASH
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Kai C++ ----------------------------------------------------------------
|
||||||
|
|
||||||
#elif defined __KCC
|
#elif defined __KCC
|
||||||
# define BOOST_NO_SLIST
|
# define BOOST_NO_SLIST
|
||||||
@ -244,17 +287,11 @@
|
|||||||
|
|
||||||
#elif defined __sgi
|
#elif defined __sgi
|
||||||
|
|
||||||
# if defined(__EDG_VERSION__) && __EDG_VERSION__ <= 240
|
|
||||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
|
||||||
# endif
|
|
||||||
|
|
||||||
// Compaq Tru64 Unix cxx ---------------------------------------------------
|
// Compaq Tru64 Unix cxx ---------------------------------------------------
|
||||||
|
|
||||||
#elif defined __DECCXX
|
#elif defined __DECCXX
|
||||||
|
# define BOOST_NO_SLIST
|
||||||
# if defined(__EDG_VERSION__) && __EDG_VERSION__ <= 240
|
# define BOOST_NO_HASH
|
||||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
|
||||||
# endif
|
|
||||||
|
|
||||||
// Greenhills C++ -----------------------------------------------------------//
|
// Greenhills C++ -----------------------------------------------------------//
|
||||||
|
|
||||||
@ -267,6 +304,8 @@
|
|||||||
#elif defined __BORLANDC__
|
#elif defined __BORLANDC__
|
||||||
# define BOOST_NO_SLIST
|
# define BOOST_NO_SLIST
|
||||||
# define BOOST_NO_HASH
|
# define BOOST_NO_HASH
|
||||||
|
// pull in standard library version:
|
||||||
|
# include <memory>
|
||||||
# if __BORLANDC__ <= 0x0551
|
# if __BORLANDC__ <= 0x0551
|
||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||||
@ -290,8 +329,16 @@
|
|||||||
# else
|
# else
|
||||||
# define BOOST_DECL
|
# define BOOST_DECL
|
||||||
# endif
|
# endif
|
||||||
|
#if (__BORLANDC__ == 0x550) || (__BORLANDC__ == 0x551)
|
||||||
|
// <climits> is partly broken, some macos define symbols that are really in
|
||||||
|
// namespace std, so you end up having to use illegal constructs like
|
||||||
|
// std::DBL_MAX, as a fix we'll just include float.h and have done with:
|
||||||
|
#include <float.h>
|
||||||
|
#endif
|
||||||
|
# define BOOST_NO_CV_SPECIALIZATIONS
|
||||||
|
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||||
|
|
||||||
// Intel -------------------------------------------------------------------//
|
// Intel on Windows --------------------------------------------------------//
|
||||||
|
|
||||||
# elif defined __ICL
|
# elif defined __ICL
|
||||||
# include <iterator> // not sure this is the right way to do this -JGS
|
# include <iterator> // not sure this is the right way to do this -JGS
|
||||||
@ -299,6 +346,13 @@
|
|||||||
// a perfectly good implementation of std::iterator is supplied
|
// a perfectly good implementation of std::iterator is supplied
|
||||||
# elif defined(__SGI_STL_ITERATOR)
|
# elif defined(__SGI_STL_ITERATOR)
|
||||||
# define BOOST_NO_STD_ITERATOR // No std::iterator in this case
|
# define BOOST_NO_STD_ITERATOR // No std::iterator in this case
|
||||||
|
# elif defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
|
||||||
|
# // full dinkumware 3.06 and above
|
||||||
|
# define BOOST_NO_HASH
|
||||||
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
|
# if !_GLOBAL_USING // can be defined in yvals.h
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
|
# endif
|
||||||
# else // assume using dinkumware's STL that comes with VC++ 6.0
|
# else // assume using dinkumware's STL that comes with VC++ 6.0
|
||||||
# define BOOST_MSVC_STD_ITERATOR
|
# define BOOST_MSVC_STD_ITERATOR
|
||||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
@ -309,16 +363,17 @@
|
|||||||
# define BOOST_NO_STD_ALLOCATOR
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
# define BOOST_NO_STD_MIN_MAX
|
# define BOOST_NO_STD_MIN_MAX
|
||||||
# endif
|
# endif
|
||||||
|
# define BOOST_NO_INTRINSIC_WCHAR_T // tentative addition - required for VC6 compatibility? (added by JM 19 Feb 2001)
|
||||||
|
|
||||||
// Metrowerks CodeWarrior --------------------------------------------------//
|
// Metrowerks CodeWarrior --------------------------------------------------//
|
||||||
|
|
||||||
# elif defined __MWERKS__
|
# elif defined __MWERKS__
|
||||||
# if __MWERKS__ <= 0x4000
|
# if __MWERKS__ <= 0x2401 // 6.2
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
# endif
|
# endif
|
||||||
# if __MWERKS__ <= 0x2301
|
# if __MWERKS__ <= 0x2301 // 5.3?
|
||||||
# define BOOST_NO_POINTER_TO_MEMBER_CONST
|
# define BOOST_NO_POINTER_TO_MEMBER_CONST
|
||||||
|
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
# endif
|
# endif
|
||||||
# if __MWERKS__ >= 0x2300
|
# if __MWERKS__ >= 0x2300
|
||||||
# define BOOST_SYSTEM_HAS_STDINT_H
|
# define BOOST_SYSTEM_HAS_STDINT_H
|
||||||
@ -336,20 +391,41 @@
|
|||||||
|
|
||||||
# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
|
# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
|
||||||
|
|
||||||
// Sun Workshop Compiler C++ ------------------------------------------------//
|
// Sun Workshop Compiler C++ ------------------------------------------------
|
||||||
|
|
||||||
# elif defined __SUNPRO_CC
|
# elif defined __SUNPRO_CC
|
||||||
# if __SUNPRO_CC <= 0x520
|
# if __SUNPRO_CC <= 0x520
|
||||||
# define BOOST_NO_SLIST
|
# define BOOST_NO_SLIST
|
||||||
# define BOOST_NO_HASH
|
# define BOOST_NO_HASH
|
||||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
|
// although sunpro 5.1 supports the syntax for
|
||||||
|
// inline initialization it often gets the value
|
||||||
|
// wrong, especially where the value is computed
|
||||||
|
// from other constants (J Maddock 6th May 2001)
|
||||||
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
// although sunpro 5.1 supports the syntax for
|
||||||
|
// partial specialization, it often seems to
|
||||||
|
// bind to the wrong specialization. Better
|
||||||
|
// to disable it until suppport becomes more stable
|
||||||
|
// (J Maddock 6th May 2001).
|
||||||
|
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
# endif
|
# endif
|
||||||
# if __SUNPRO_CC <= 0x500
|
# if __SUNPRO_CC <= 0x500
|
||||||
# define BOOST_NO_MEMBER_TEMPLATES
|
# define BOOST_NO_MEMBER_TEMPLATES
|
||||||
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// Microsoft Visual C++ (excluding Intel/EDG front end) --------------------//
|
|
||||||
|
// HP aCC -------------------------------------------------------------------
|
||||||
|
|
||||||
|
# elif defined __HP_aCC
|
||||||
|
# define BOOST_NO_SLIST
|
||||||
|
# define BOOST_NO_HASH
|
||||||
|
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
|
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
|
// (support for HP aCC is not complete, see the regression test results)
|
||||||
|
|
||||||
|
// Microsoft Visual C++ (excluding Intel/EDG front end) --------------------
|
||||||
//
|
//
|
||||||
// Must remain the last #elif since some other vendors (Metrowerks, for
|
// Must remain the last #elif since some other vendors (Metrowerks, for
|
||||||
// example) also #define _MSC_VER
|
// example) also #define _MSC_VER
|
||||||
@ -384,6 +460,13 @@
|
|||||||
// a perfectly good implementation of std::iterator is supplied
|
// a perfectly good implementation of std::iterator is supplied
|
||||||
# elif defined(__SGI_STL_ITERATOR)
|
# elif defined(__SGI_STL_ITERATOR)
|
||||||
# define BOOST_NO_STD_ITERATOR // No std::iterator in this case
|
# define BOOST_NO_STD_ITERATOR // No std::iterator in this case
|
||||||
|
# elif defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
|
||||||
|
// full dinkumware 3.06 and above
|
||||||
|
# define BOOST_NO_HASH
|
||||||
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
|
# ifndef _GLOBAL_USING // can be defined in yvals.h
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
|
# endif
|
||||||
# else
|
# else
|
||||||
# define BOOST_MSVC_STD_ITERATOR 1
|
# define BOOST_MSVC_STD_ITERATOR 1
|
||||||
# define BOOST_NO_SLIST
|
# define BOOST_NO_SLIST
|
||||||
@ -403,6 +486,7 @@
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
|
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||||
|
|
||||||
|
|
||||||
// Make sure at least one standard library header is included so that library
|
// Make sure at least one standard library header is included so that library
|
||||||
@ -437,19 +521,22 @@
|
|||||||
|
|
||||||
// end of compiler specific portion ----------------------------------------//
|
// end of compiler specific portion ----------------------------------------//
|
||||||
|
|
||||||
#if defined(BOOST_NO_LIMITS) || \
|
#if defined(BOOST_NO_LIMITS) || (defined(_RWSTD_VER) && defined(__BORLANDC__) && _RWSTD_VER < 0x020300) || (defined(__SGI_STL_PORT) && __SGI_STL_PORT <= 0x410 && defined(__STL_STATIC_CONST_INIT_BUG))
|
||||||
(defined(_RWSTD_VER) && _RWSTD_VER < 0x0203) || \
|
|
||||||
(defined(__SGI_STL_PORT) && __SGI_STL_PORT <= 0x410 && __STL_STATIC_CONST_INIT_BUG)
|
|
||||||
// STLPort 4.0 doesn't define the static constants in numeric_limits<> so that they
|
// STLPort 4.0 doesn't define the static constants in numeric_limits<> so that they
|
||||||
// can be used at compile time if the compiler bug indicated by
|
// can be used at compile time if the compiler bug indicated by
|
||||||
// __STL_STATIC_CONST_INIT_BUG is present.
|
// __STL_STATIC_CONST_INIT_BUG is present.
|
||||||
|
|
||||||
// Rogue wave STL (C++ Builder) also has broken numeric_limits
|
// Rogue wave STL (C++ Builder) also has broken numeric_limits
|
||||||
// with default template defining members out of line.
|
// with default template defining members out of line.
|
||||||
// However, Compaq C++ also uses RogueWave (version 2.03) and it's ok.
|
// However, Compaq C++ also uses RogueWave (version 0x0203) and it's ok.
|
||||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__hpux)
|
||||||
|
// HP-UX has a nice stdint.h in a different location, see boost/cstdint.hpp
|
||||||
|
# define BOOST_SYSTEM_HAS_STDINT_H
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef BOOST_STD_EXTENSION_NAMESPACE
|
#ifndef BOOST_STD_EXTENSION_NAMESPACE
|
||||||
# define BOOST_STD_EXTENSION_NAMESPACE std
|
# define BOOST_STD_EXTENSION_NAMESPACE std
|
||||||
#endif
|
#endif
|
||||||
@ -497,5 +584,21 @@ namespace std {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
|
||||||
|
// On compilers which don't allow in-class initialization of static integral
|
||||||
|
// constant members, we must use enums as a workaround if we want the constants
|
||||||
|
// to be available at compile-time. This macro gives us a convenient way to
|
||||||
|
// declare such constants.
|
||||||
|
#ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
|
||||||
|
#else
|
||||||
|
# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // BOOST_CONFIG_HPP
|
#endif // BOOST_CONFIG_HPP
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,6 +17,10 @@
|
|||||||
// See http://www.boost.org for most recent version including documentation.
|
// See http://www.boost.org for most recent version including documentation.
|
||||||
|
|
||||||
// Revision History
|
// Revision History
|
||||||
|
// 21 May 01 Require complete type where incomplete type is unsafe.
|
||||||
|
// (suggested by Vladimir Prus)
|
||||||
|
// 21 May 01 operator= fails if operand transitively owned by *this, as in a
|
||||||
|
// linked list (report by Ken Johnson, fix by Beman Dawes)
|
||||||
// 21 Jan 01 Suppress some useless warnings with MSVC (David Abrahams)
|
// 21 Jan 01 Suppress some useless warnings with MSVC (David Abrahams)
|
||||||
// 19 Oct 00 Make shared_ptr ctor from auto_ptr explicit. (Robert Vugts)
|
// 19 Oct 00 Make shared_ptr ctor from auto_ptr explicit. (Robert Vugts)
|
||||||
// 24 Jul 00 Change throw() to // never throws. See lib guidelines
|
// 24 Jul 00 Change throw() to // never throws. See lib guidelines
|
||||||
@ -60,13 +64,19 @@
|
|||||||
#include <cstddef> // for std::size_t
|
#include <cstddef> // for std::size_t
|
||||||
#include <memory> // for std::auto_ptr
|
#include <memory> // for std::auto_ptr
|
||||||
#include <algorithm> // for std::swap
|
#include <algorithm> // for std::swap
|
||||||
#include <boost/utility.hpp> // for boost::noncopyable
|
#include <boost/utility.hpp> // for boost::noncopyable, checked_delete, checked_array_delete
|
||||||
#include <functional> // for std::less
|
#include <functional> // for std::less
|
||||||
|
#include <boost/static_assert.hpp> // for BOOST_STATIC_ASSERT
|
||||||
|
|
||||||
#ifdef LYX_NO_EXCEPTIONS
|
#ifdef LYX_NO_EXCEPTIONS
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef BOOST_MSVC // moved here to work around VC++ compiler crash
|
||||||
|
# pragma warning(push)
|
||||||
|
# pragma warning(disable:4284) // return type for 'identifier::operator->' is not a UDT or reference to a UDT. Will produce errors if applied using infix notation
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
|
|
||||||
// scoped_ptr --------------------------------------------------------------//
|
// scoped_ptr --------------------------------------------------------------//
|
||||||
@ -84,9 +94,9 @@ template<typename T> class scoped_ptr : noncopyable {
|
|||||||
typedef T element_type;
|
typedef T element_type;
|
||||||
|
|
||||||
explicit scoped_ptr( T* p=0 ) : ptr(p) {} // never throws
|
explicit scoped_ptr( T* p=0 ) : ptr(p) {} // never throws
|
||||||
~scoped_ptr() { delete ptr; }
|
~scoped_ptr() { checked_delete(ptr); }
|
||||||
|
void reset( T* p=0 ) { if ( ptr != p ) { checked_delete(ptr); ptr =
|
||||||
void reset( T* p=0 ) { if ( ptr != p ) { delete ptr; ptr = p; } }
|
p; } }
|
||||||
T& operator*() const { return *ptr; } // never throws
|
T& operator*() const { return *ptr; } // never throws
|
||||||
#ifdef BOOST_MSVC
|
#ifdef BOOST_MSVC
|
||||||
# pragma warning(push)
|
# pragma warning(push)
|
||||||
|
@ -11,6 +11,9 @@
|
|||||||
// Classes appear in alphabetical order
|
// Classes appear in alphabetical order
|
||||||
|
|
||||||
// Revision History
|
// Revision History
|
||||||
|
// 21 May 01 checked_delete() and checked_array_delete() added (Beman Dawes,
|
||||||
|
// suggested by Dave Abrahams, generalizing idea from Vladimir Prus)
|
||||||
|
// 21 May 01 made next() and prior() inline (Beman Dawes)
|
||||||
// 26 Jan 00 protected noncopyable destructor added (Miki Jovanovic)
|
// 26 Jan 00 protected noncopyable destructor added (Miki Jovanovic)
|
||||||
// 10 Dec 99 next() and prior() templates added (Dave Abrahams)
|
// 10 Dec 99 next() and prior() templates added (Dave Abrahams)
|
||||||
// 30 Aug 99 moved cast templates to cast.hpp (Beman Dawes)
|
// 30 Aug 99 moved cast templates to cast.hpp (Beman Dawes)
|
||||||
@ -22,12 +25,40 @@
|
|||||||
#ifndef BOOST_UTILITY_HPP
|
#ifndef BOOST_UTILITY_HPP
|
||||||
#define BOOST_UTILITY_HPP
|
#define BOOST_UTILITY_HPP
|
||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp> // broken compiler workarounds
|
||||||
#include <cstddef> // for size_t
|
#include <boost/static_assert.hpp>
|
||||||
#include <utility> // for std::pair
|
#include <cstddef> // for size_t
|
||||||
|
#include <utility> // for std::pair
|
||||||
|
|
||||||
namespace boost
|
namespace boost
|
||||||
{
|
{
|
||||||
|
// checked_delete() and checked_array_delete() -----------------------------//
|
||||||
|
|
||||||
|
// verify that types are complete for increased safety
|
||||||
|
|
||||||
|
template< typename T >
|
||||||
|
inline void checked_delete(T * x)
|
||||||
|
{
|
||||||
|
# if !((defined(__BORLANDC__) && __BORLANDC__ <= 0x0551) || (defined(__ICL) && __ICL <= 500))
|
||||||
|
BOOST_STATIC_ASSERT( sizeof(T) ); // assert type complete at point
|
||||||
|
// of instantiation
|
||||||
|
# else
|
||||||
|
sizeof(T); // force error if type incomplete
|
||||||
|
# endif
|
||||||
|
delete x;
|
||||||
|
}
|
||||||
|
|
||||||
|
template< typename T >
|
||||||
|
inline void checked_array_delete(T * x)
|
||||||
|
{
|
||||||
|
# if !((defined(__BORLANDC__) && __BORLANDC__ <= 0x0551) || (defined(__ICL) && __ICL <= 500))
|
||||||
|
BOOST_STATIC_ASSERT( sizeof(T) ); // assert type complete at point
|
||||||
|
// of instantiation
|
||||||
|
# else
|
||||||
|
sizeof(T); // force error if type incomplete
|
||||||
|
# endif
|
||||||
|
delete [] x;
|
||||||
|
}
|
||||||
|
|
||||||
// next() and prior() template functions -----------------------------------//
|
// next() and prior() template functions -----------------------------------//
|
||||||
|
|
||||||
@ -41,10 +72,10 @@ namespace boost
|
|||||||
// Contributed by Dave Abrahams
|
// Contributed by Dave Abrahams
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
T next(T x) { return ++x; }
|
inline T next(T x) { return ++x; }
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
T prior(T x) { return --x; }
|
inline T prior(T x) { return --x; }
|
||||||
|
|
||||||
|
|
||||||
// class noncopyable -------------------------------------------------------//
|
// class noncopyable -------------------------------------------------------//
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2001-05-29 Lars Gullik Bjønnes <larsbj@birdstep.com>
|
||||||
|
|
||||||
|
* bind/latinkeys.bind: add some bindings for KP_ keys.
|
||||||
|
|
||||||
2001-05-23 Lars Gullik Bjønnes <larsbj@birdstep.com>
|
2001-05-23 Lars Gullik Bjønnes <larsbj@birdstep.com>
|
||||||
|
|
||||||
* bind/latinkeys.bind: set quotedbl to quote-insert, set
|
* bind/latinkeys.bind: set quotedbl to quote-insert, set
|
||||||
|
@ -1,3 +1,20 @@
|
|||||||
|
# KP_ keys. Should possibly be moved to another file
|
||||||
|
|
||||||
|
\bind "KP_0" "self-insert 0"
|
||||||
|
\bind "KP_1" "self-insert 1"
|
||||||
|
\bind "KP_2" "self-insert 2"
|
||||||
|
\bind "KP_3" "self-insert 3"
|
||||||
|
\bind "KP_4" "self-insert 4"
|
||||||
|
\bind "KP_5" "self-insert 5"
|
||||||
|
\bind "KP_6" "self-insert 6"
|
||||||
|
\bind "KP_7" "self-insert 7"
|
||||||
|
\bind "KP_8" "self-insert 8"
|
||||||
|
\bind "KP_9" "self-insert 9"
|
||||||
|
\bind "KP_Decimal" "self-insert ."
|
||||||
|
\bind "KP_Add" "self-insert +"
|
||||||
|
\bind "KP_Divide" "self-insert /"
|
||||||
|
\bind "KP_Multiply" "self-insert *"
|
||||||
|
\bind "KP_Subtract" "self-insert -"
|
||||||
|
|
||||||
# Latin 1
|
# Latin 1
|
||||||
|
|
||||||
|
@ -151,20 +151,6 @@ public:
|
|||||||
///
|
///
|
||||||
void copyEnvironment();
|
void copyEnvironment();
|
||||||
///
|
///
|
||||||
void hfill();
|
|
||||||
///
|
|
||||||
void protectedBlank(LyXText *);
|
|
||||||
///
|
|
||||||
void newline();
|
|
||||||
///
|
|
||||||
void menuSeparator();
|
|
||||||
///
|
|
||||||
void endOfSentenceDot();
|
|
||||||
///
|
|
||||||
void ldots();
|
|
||||||
///
|
|
||||||
void hyphenationPoint();
|
|
||||||
///
|
|
||||||
void menuUndo();
|
void menuUndo();
|
||||||
///
|
///
|
||||||
void menuRedo();
|
void menuRedo();
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
#include "lyxtext.h"
|
#include "lyxtext.h"
|
||||||
#include "insets/inseterror.h"
|
#include "insets/inseterror.h"
|
||||||
#include "insets/insetinfo.h"
|
#include "insets/insetinfo.h"
|
||||||
#include "insets/insetspecialchar.h"
|
|
||||||
#include "LyXView.h"
|
#include "LyXView.h"
|
||||||
#include "bufferlist.h"
|
#include "bufferlist.h"
|
||||||
#include "support/FileInfo.h"
|
#include "support/FileInfo.h"
|
||||||
@ -44,6 +43,7 @@ using std::find;
|
|||||||
using std::count;
|
using std::count;
|
||||||
using std::count_if;
|
using std::count_if;
|
||||||
|
|
||||||
|
|
||||||
// Inserts a file into current document
|
// Inserts a file into current document
|
||||||
bool BufferView::insertLyXFile(string const & filen)
|
bool BufferView::insertLyXFile(string const & filen)
|
||||||
//
|
//
|
||||||
@ -313,91 +313,6 @@ void BufferView::menuRedo()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void BufferView::hyphenationPoint()
|
|
||||||
{
|
|
||||||
if (available()) {
|
|
||||||
hideCursor();
|
|
||||||
update(text, BufferView::SELECT|BufferView::FITCUR);
|
|
||||||
InsetSpecialChar * new_inset =
|
|
||||||
new InsetSpecialChar(InsetSpecialChar::HYPHENATION);
|
|
||||||
insertInset(new_inset);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BufferView::ldots()
|
|
||||||
{
|
|
||||||
if (available()) {
|
|
||||||
hideCursor();
|
|
||||||
update(text, BufferView::SELECT|BufferView::FITCUR);
|
|
||||||
InsetSpecialChar * new_inset =
|
|
||||||
new InsetSpecialChar(InsetSpecialChar::LDOTS);
|
|
||||||
insertInset(new_inset);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BufferView::endOfSentenceDot()
|
|
||||||
{
|
|
||||||
if (available()) {
|
|
||||||
hideCursor();
|
|
||||||
update(text, BufferView::SELECT|BufferView::FITCUR);
|
|
||||||
InsetSpecialChar * new_inset =
|
|
||||||
new InsetSpecialChar(InsetSpecialChar::END_OF_SENTENCE);
|
|
||||||
insertInset(new_inset);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BufferView::menuSeparator()
|
|
||||||
{
|
|
||||||
if (available()) {
|
|
||||||
hideCursor();
|
|
||||||
update(text, BufferView::SELECT|BufferView::FITCUR);
|
|
||||||
InsetSpecialChar * new_inset =
|
|
||||||
new InsetSpecialChar(InsetSpecialChar::MENU_SEPARATOR);
|
|
||||||
insertInset(new_inset);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BufferView::newline()
|
|
||||||
{
|
|
||||||
if (available()) {
|
|
||||||
hideCursor();
|
|
||||||
update(text, BufferView::SELECT|BufferView::FITCUR);
|
|
||||||
text->InsertChar(this, LyXParagraph::META_NEWLINE);
|
|
||||||
update(text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BufferView::protectedBlank(LyXText * lt)
|
|
||||||
{
|
|
||||||
if (available()) {
|
|
||||||
hideCursor();
|
|
||||||
update(lt, BufferView::SELECT|BufferView::FITCUR);
|
|
||||||
InsetSpecialChar * new_inset =
|
|
||||||
new InsetSpecialChar(InsetSpecialChar::PROTECTED_SEPARATOR);
|
|
||||||
if (!insertInset(new_inset))
|
|
||||||
delete new_inset;
|
|
||||||
else
|
|
||||||
updateInset(new_inset, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BufferView::hfill()
|
|
||||||
{
|
|
||||||
if (available()) {
|
|
||||||
hideCursor();
|
|
||||||
update(text, BufferView::SELECT|BufferView::FITCUR);
|
|
||||||
text->InsertChar(this, LyXParagraph::META_HFILL);
|
|
||||||
update(text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void BufferView::copyEnvironment()
|
void BufferView::copyEnvironment()
|
||||||
{
|
{
|
||||||
if (available()) {
|
if (available()) {
|
||||||
@ -433,6 +348,7 @@ void BufferView::copy()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void BufferView::cut()
|
void BufferView::cut()
|
||||||
{
|
{
|
||||||
if (available()) {
|
if (available()) {
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -125,6 +125,20 @@ private:
|
|||||||
/// open and lock an updatable inset
|
/// open and lock an updatable inset
|
||||||
bool open_new_inset(UpdatableInset * new_inset, bool behind = false);
|
bool open_new_inset(UpdatableInset * new_inset, bool behind = false);
|
||||||
///
|
///
|
||||||
|
void protectedBlank(LyXText * lt);
|
||||||
|
///
|
||||||
|
void newline();
|
||||||
|
///
|
||||||
|
void hfill();
|
||||||
|
///
|
||||||
|
void menuSeparator();
|
||||||
|
///
|
||||||
|
void endOfSentenceDot();
|
||||||
|
///
|
||||||
|
void ldots();
|
||||||
|
///
|
||||||
|
void hyphenationPoint();
|
||||||
|
///
|
||||||
void insertNote();
|
void insertNote();
|
||||||
///
|
///
|
||||||
BufferView * bv_;
|
BufferView * bv_;
|
||||||
|
@ -1,3 +1,15 @@
|
|||||||
|
2001-05-29 Lars Gullik Bjønnes <larsbj@birdstep.com>
|
||||||
|
|
||||||
|
* lyx_main.C (defaultKeyBindings): move self-insert KP_ bindings
|
||||||
|
to latinkeys.bind.
|
||||||
|
|
||||||
|
* lyxfunc.C (processKeySym): change method of getting to the
|
||||||
|
self-insert char.
|
||||||
|
|
||||||
|
* BufferView(2).[Ch]: move hfill, protectedBlank, newline,
|
||||||
|
menuSeparator, endOfSentenceDot, ldots, hypenationPoint and menuUndo
|
||||||
|
* BufferView_pimpl.[Ch]: here as private methods.
|
||||||
|
|
||||||
2001-05-28 Juergen Vigna <jug@sad.it>
|
2001-05-28 Juergen Vigna <jug@sad.it>
|
||||||
|
|
||||||
* text.C (SetHeightOfRow): added the update() call again as it is
|
* text.C (SetHeightOfRow): added the update() call again as it is
|
||||||
|
@ -165,7 +165,7 @@ void InsetSpecialChar::Write(Buffer const *, ostream & os) const
|
|||||||
void InsetSpecialChar::Read(Buffer const *, LyXLex & lex)
|
void InsetSpecialChar::Read(Buffer const *, LyXLex & lex)
|
||||||
{
|
{
|
||||||
lex.nextToken();
|
lex.nextToken();
|
||||||
string command = lex.GetString();
|
string const command = lex.GetString();
|
||||||
|
|
||||||
if (command == "\\-")
|
if (command == "\\-")
|
||||||
kind = HYPHENATION;
|
kind = HYPHENATION;
|
||||||
|
@ -464,34 +464,29 @@ void LyX::defaultKeyBindings(kb_keymap * kbmap)
|
|||||||
kbmap->bind("Next", LFUN_NEXT);
|
kbmap->bind("Next", LFUN_NEXT);
|
||||||
|
|
||||||
kbmap->bind("Return", LFUN_BREAKPARAGRAPH);
|
kbmap->bind("Return", LFUN_BREAKPARAGRAPH);
|
||||||
kbmap->bind("~C-~S-~M-nobreakspace", LFUN_PROTECTEDSPACE);
|
//kbmap->bind("~C-~S-~M-nobreakspace", LFUN_PROTECTEDSPACE);
|
||||||
|
|
||||||
kbmap->bind("Delete", LFUN_DELETE);
|
kbmap->bind("Delete", LFUN_DELETE);
|
||||||
kbmap->bind("BackSpace", LFUN_BACKSPACE);
|
kbmap->bind("BackSpace", LFUN_BACKSPACE);
|
||||||
|
|
||||||
// kbmap->bindings to enable the use of the numeric keypad
|
// kbmap->bindings to enable the use of the numeric keypad
|
||||||
// e.g. Num Lock set
|
// e.g. Num Lock set
|
||||||
kbmap->bind("KP_0", LFUN_SELFINSERT);
|
//kbmap->bind("KP_0", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_Decimal", LFUN_SELFINSERT);
|
//kbmap->bind("KP_Decimal", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_Enter", LFUN_BREAKPARAGRAPH);
|
kbmap->bind("KP_Enter", LFUN_BREAKPARAGRAPH);
|
||||||
kbmap->bind("KP_1", LFUN_SELFINSERT);
|
//kbmap->bind("KP_1", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_2", LFUN_SELFINSERT);
|
//kbmap->bind("KP_2", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_3", LFUN_SELFINSERT);
|
//kbmap->bind("KP_3", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_4", LFUN_SELFINSERT);
|
//kbmap->bind("KP_4", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_5", LFUN_SELFINSERT);
|
//kbmap->bind("KP_5", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_6", LFUN_SELFINSERT);
|
//kbmap->bind("KP_6", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_Add", LFUN_SELFINSERT);
|
//kbmap->bind("KP_Add", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_7", LFUN_SELFINSERT);
|
//kbmap->bind("KP_7", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_8", LFUN_SELFINSERT);
|
//kbmap->bind("KP_8", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_9", LFUN_SELFINSERT);
|
//kbmap->bind("KP_9", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_Divide", LFUN_SELFINSERT);
|
//kbmap->bind("KP_Divide", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_Multiply", LFUN_SELFINSERT);
|
//kbmap->bind("KP_Multiply", LFUN_SELFINSERT);
|
||||||
kbmap->bind("KP_Subtract", LFUN_SELFINSERT);
|
//kbmap->bind("KP_Subtract", LFUN_SELFINSERT);
|
||||||
|
|
||||||
/* Most self-insert keys are handled in the 'default:' section of
|
|
||||||
* WorkAreaKeyPress - so we don't have to define them all.
|
|
||||||
* However keys explicit decleared as self-insert are
|
|
||||||
* handled seperatly (LFUN_SELFINSERT.) Lgb. */
|
|
||||||
|
|
||||||
kbmap->bind("C-Tab", LFUN_TABINSERT); // ale970515
|
kbmap->bind("C-Tab", LFUN_TABINSERT); // ale970515
|
||||||
kbmap->bind("S-Tab", LFUN_SHIFT_TAB); // jug20000522
|
kbmap->bind("S-Tab", LFUN_SHIFT_TAB); // jug20000522
|
||||||
|
106
src/lyxfunc.C
106
src/lyxfunc.C
@ -237,31 +237,6 @@ void LyXFunc::processKeySym(KeySym keysym, unsigned int state)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
// This if clause should not be here, but should rather be changed
|
|
||||||
// to a lyxfunc and get XK_Escape bound to it (Lgb)
|
|
||||||
#warning Fix this please. (Lgb)
|
|
||||||
if (owner->view()->available()) {
|
|
||||||
// this function should be used always [asierra060396]
|
|
||||||
UpdatableInset * tli = owner->view()->theLockingInset();
|
|
||||||
if (tli && (keysym == XK_Escape)) {
|
|
||||||
if (tli == tli->GetLockingInset()) {
|
|
||||||
owner->view()->unlockInset(tli);
|
|
||||||
TEXT()->CursorRight(owner->view());
|
|
||||||
moveCursorUpdate(true, false);
|
|
||||||
owner->showState();
|
|
||||||
} else {
|
|
||||||
tli->UnlockInsetInInset(owner->view(),
|
|
||||||
tli->GetLockingInset(),
|
|
||||||
true);
|
|
||||||
}
|
|
||||||
//return 0;
|
|
||||||
//return FL_PREEMPT;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Can we be sure that this will work for all X-Windows
|
// Can we be sure that this will work for all X-Windows
|
||||||
// implementations? (Lgb)
|
// implementations? (Lgb)
|
||||||
// This code snippet makes lyx ignore some keys. Perhaps
|
// This code snippet makes lyx ignore some keys. Perhaps
|
||||||
@ -309,7 +284,7 @@ void LyXFunc::processKeySym(KeySym keysym, unsigned int state)
|
|||||||
if (lyxerr.debugging(Debug::KEY)) {
|
if (lyxerr.debugging(Debug::KEY)) {
|
||||||
string buf;
|
string buf;
|
||||||
keyseq.print(buf);
|
keyseq.print(buf);
|
||||||
lyxerr << "Key ["
|
lyxerr << "Key [action="
|
||||||
<< action << "]["
|
<< action << "]["
|
||||||
<< buf << "]"
|
<< buf << "]"
|
||||||
<< endl;
|
<< endl;
|
||||||
@ -330,10 +305,6 @@ void LyXFunc::processKeySym(KeySym keysym, unsigned int state)
|
|||||||
// the modifiers? (Lgb)
|
// the modifiers? (Lgb)
|
||||||
action = keyseq.addkey(keysym, 0);
|
action = keyseq.addkey(keysym, 0);
|
||||||
|
|
||||||
// We keep the shift state, but remove the others.
|
|
||||||
// This is for the sake of the LFUN_SELFINSERT below.
|
|
||||||
state &= ShiftMask;
|
|
||||||
|
|
||||||
if (lyxerr.debugging(Debug::KEY)) {
|
if (lyxerr.debugging(Debug::KEY)) {
|
||||||
lyxerr << "Removing modifiers...\n"
|
lyxerr << "Removing modifiers...\n"
|
||||||
<< "Action now set to ["
|
<< "Action now set to ["
|
||||||
@ -347,39 +318,34 @@ void LyXFunc::processKeySym(KeySym keysym, unsigned int state)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (action == LFUN_SELFINSERT) {
|
if (action == LFUN_SELFINSERT) {
|
||||||
// We must set the argument to the char looked up by
|
// This is very X dependant.
|
||||||
// XKeysymToString
|
unsigned int c = keysym;
|
||||||
XKeyEvent xke;
|
|
||||||
xke.type = KeyPress;
|
|
||||||
xke.serial = 0;
|
|
||||||
xke.send_event = False;
|
|
||||||
xke.display = fl_get_display();
|
|
||||||
xke.window = 0;
|
|
||||||
xke.root = 0;
|
|
||||||
xke.subwindow = 0;
|
|
||||||
xke.time = 0;
|
|
||||||
xke.x = 0;
|
|
||||||
xke.y = 0;
|
|
||||||
xke.x_root = 0;
|
|
||||||
xke.y_root = 0;
|
|
||||||
xke.state = state;
|
|
||||||
xke.keycode = XKeysymToKeycode(fl_get_display(), keysym);
|
|
||||||
xke.same_screen = True;
|
|
||||||
char ret[10];
|
|
||||||
KeySym tmpkeysym;
|
|
||||||
int const res = XLookupString(&xke, ret, 10, &tmpkeysym, 0);
|
|
||||||
//Assert(keysym == tmpkeysym);
|
|
||||||
lyxerr[Debug::KEY] << "TmpKeysym ["
|
|
||||||
<< tmpkeysym << "]" << endl;
|
|
||||||
|
|
||||||
if (res > 0)
|
switch (c & 0x0000FF00) {
|
||||||
argument = string(ret, res);
|
// latin 1 byte 3 = 0
|
||||||
|
case 0x00000000: break;
|
||||||
lyxerr[Debug::KEY] << "SelfInsert arg["
|
// latin 2 byte 3 = 1
|
||||||
<< argument << "]" << endl;
|
case 0x00000100:
|
||||||
|
// latin 3 byte 3 = 2
|
||||||
|
case 0x00000200:
|
||||||
|
// latin 4 byte 3 = 3
|
||||||
|
case 0x00000300:
|
||||||
|
// latin 8 byte 3 = 18 (0x12)
|
||||||
|
case 0x00001200:
|
||||||
|
// latin 9 byte 3 = 19 (0x13)
|
||||||
|
case 0x00001300:
|
||||||
|
c &= 0x000000FF;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
c = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (c > 0)
|
||||||
|
argument = static_cast<char>(c);
|
||||||
|
lyxerr[Debug::KEY] << "SelfInsert arg[`"
|
||||||
|
<< argument << "']" << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool tmp_sc = show_sc;
|
bool tmp_sc = show_sc;
|
||||||
show_sc = false;
|
show_sc = false;
|
||||||
Dispatch(action, argument);
|
Dispatch(action, argument);
|
||||||
@ -1004,27 +970,7 @@ string const LyXFunc::Dispatch(int ac,
|
|||||||
owner->view()->fitCursor(TEXT());
|
owner->view()->fitCursor(TEXT());
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LFUN_HYPHENATION:
|
|
||||||
owner->view()->hyphenationPoint();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LFUN_LDOTS:
|
|
||||||
owner->view()->ldots();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LFUN_END_OF_SENTENCE:
|
|
||||||
owner->view()->endOfSentenceDot();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LFUN_MENU_SEPARATOR:
|
|
||||||
owner->view()->menuSeparator();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LFUN_HFILL:
|
|
||||||
owner->view()->hfill();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LFUN_DEPTH:
|
case LFUN_DEPTH:
|
||||||
changeDepth(owner->view(), TEXT(false), 0);
|
changeDepth(owner->view(), TEXT(false), 0);
|
||||||
break;
|
break;
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
2001-05-29 Lars Gullik Bjønnes <larsbj@birdstep.com>
|
||||||
|
|
||||||
|
* lyxsum.C (sum): don't use sstream anymore, use istream_iterator
|
||||||
|
directly instead.
|
||||||
|
|
||||||
|
* lyxstring.C (operator): make const operator[] behave as
|
||||||
|
non-const and at.
|
||||||
|
|
||||||
2001-05-22 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
|
2001-05-22 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
|
||||||
|
|
||||||
* Makefile.am (EXTRA_DIST): add the os_*.C files.
|
* Makefile.am (EXTRA_DIST): add the os_*.C files.
|
||||||
|
@ -658,9 +658,14 @@ lyxstring & lyxstring::assign(const_iterator first, const_iterator last)
|
|||||||
|
|
||||||
lyxstring::const_reference lyxstring::operator[](size_type pos) const
|
lyxstring::const_reference lyxstring::operator[](size_type pos) const
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
lyx::Assert(pos <= rep->sz); // OURS!
|
lyx::Assert(pos <= rep->sz); // OURS!
|
||||||
static char helper = '\0';
|
static char helper = '\0';
|
||||||
return pos == rep->sz ? helper : rep->s[pos];
|
return pos == rep->sz ? helper : rep->s[pos];
|
||||||
|
#else
|
||||||
|
lyx::Assert(pos < rep->sz); // OURS!
|
||||||
|
return rep->s[pos];
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* LyX, The Document Processor
|
* LyX, The Document Processor
|
||||||
*
|
*
|
||||||
* The function lyx::sum is taken from GNU textutill-1.22
|
* The function lyx::sum is taken from GNU textutill-1.22
|
||||||
* and is there part of the program chsum. The chsum program
|
* and is there part of the program chsum. The cksum program
|
||||||
* is written by Q. Frank Xia, qx@math.columbia.edu.
|
* is written by Q. Frank Xia, qx@math.columbia.edu.
|
||||||
*
|
*
|
||||||
* Modified for use in LyX by Lars G. Bjønnes.
|
* Modified for use in LyX by Lars G. Bjønnes.
|
||||||
@ -16,13 +16,13 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
#include <iterator>
|
||||||
#include "Lsstream.h"
|
|
||||||
|
|
||||||
#include "support/lyxlib.h"
|
#include "support/lyxlib.h"
|
||||||
|
|
||||||
using std::ifstream;
|
using std::ifstream;
|
||||||
using std::ios;
|
using std::ios;
|
||||||
|
using std::istream_iterator;
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ unsigned long do_crc(InputIterator first, InputIterator last)
|
|||||||
{
|
{
|
||||||
unsigned long crc = 0;
|
unsigned long crc = 0;
|
||||||
long bytes_read = 0;
|
long bytes_read = 0;
|
||||||
while(first != last) {
|
while (first != last) {
|
||||||
++bytes_read;
|
++bytes_read;
|
||||||
crc = (crc << 8)
|
crc = (crc << 8)
|
||||||
^ crctab[((crc >> 24) ^ *first++) & 0xFF];
|
^ crctab[((crc >> 24) ^ *first++) & 0xFF];
|
||||||
@ -114,11 +114,7 @@ unsigned long lyx::sum(string const & file)
|
|||||||
ifstream ifs(file.c_str());
|
ifstream ifs(file.c_str());
|
||||||
if (!ifs) return 0;
|
if (!ifs) return 0;
|
||||||
ifs.unsetf(ios::skipws);
|
ifs.unsetf(ios::skipws);
|
||||||
ostringstream ostr;
|
istream_iterator<char> beg(ifs);
|
||||||
ostr << ifs.rdbuf();
|
istream_iterator<char> end;
|
||||||
// The .c_str() is here in case we use our lyxstring class
|
return do_crc(beg, end);
|
||||||
// instead of standard string.
|
|
||||||
string w = ostr.str().c_str();
|
|
||||||
return do_crc(w.begin(), w.end());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user