struct SPStyle { float value; float computed; }; template < typename _Iterator, typename _Container > class __normal_iterator { _Iterator _M_current; public:explicit __normal_iterator(const _Iterator & __i):_M_current(__i) { } const _Iterator & base() const { return _M_current; }}; template < typename _IteratorL, typename _IteratorR, typename _Container > inline int operator-(const __normal_iterator < _IteratorL, _Container > &__lhs, const __normal_iterator < _IteratorR, _Container > &__rhs) { return __lhs.base() - __rhs.base(); } template < typename _Tp > class allocator { }; template < typename _Tp, typename _Alloc > struct _Vector_base { struct _Vector_impl { _Tp *_M_start; _Tp *_M_finish; }; public: _Vector_impl _M_impl; }; template < typename _Tp, typename _Alloc = allocator < _Tp > >class vector:protected _Vector_base < _Tp, _Alloc > { public:typedef __normal_iterator < const _Tp *, void >const_iterator; unsigned int size() const { return const_iterator(this->_M_impl._M_finish) - const_iterator(this->_M_impl._M_start); } const _Tp & operator[] (unsigned int __n)const { }}; class Layout { public:class iterator; iterator end() const; unsigned lineIndex(iterator const &) const; struct Chunk; struct Character { Chunk const &chunk(Layout const *l) const { }}; struct Chunk { unsigned in_line; }; vector < Character > _characters; }; class Layout::iterator { public:unsigned _char_index; iterator(Layout const *p, unsigned c, int g):_char_index(c) { }}; inline Layout::iterator Layout::end() const { return iterator(this, _characters.size(), _characters.size()); } inline unsigned Layout::lineIndex(iterator const &it) const { return it._char_index == _characters.size()? 1 : _characters[0].chunk(this).in_line; }; void sp_te_adjust_linespacing_screen(double by) { Layout *layout; SPStyle *style; unsigned line_count = layout->lineIndex(layout->end()); double all_lines_height; double average_line_height = all_lines_height / line_count; if (style->computed) style->computed = by; else style->computed = (average_line_height) / average_line_height; if (style->value) style->value = by; else style->value = (average_line_height) / average_line_height; }