/usr/include/fifechan/utf8stringeditor.hpp is in libfifechan-dev 0.1.4-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | /***************************************************************************
* Copyright (c) 2017 by the fifechan team *
* https://github.com/fifengine/fifechan *
* This file is part of fifechan. *
* *
* fifechan is free software; you can redistribute it and/or *
* modify it under the terms of the GNU Lesser General Public *
* License as published by the Free Software Foundation; either *
* version 2.1 of the License, or (at your option) any later version. *
* *
* This library is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public *
* License along with this library; if not, write to the *
* Free Software Foundation, Inc., *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
***************************************************************************/
#ifndef FCN_UTF8STRINGEDITOR_HPP
#define FCN_UTF8STRINGEDITOR_HPP
// Standard C++ library includes
#include <string>
namespace fcn {
/**
* UTF-8 string editor.
*
* This is a helper class which allows to use UTF-8 strings in
* your application.
*
* @author Przemyslaw Grzywacz
*/
class UTF8StringEditor {
public:
/**
* Returns byte offset of the next character.
*
* @param text UTF-8 text to navigate.
* @param byteOffset Byte offset of current character.
* @return Byte offset of the next character.
*/
static int nextChar(const std::string& text, int byteOffset);
/**
* Returns byte offset of the previous character.
*
* @param text UTF-8 text to navigate.
* @param byteOffset Byte offset of current character.
* @return Byte offset of the previous character.
*/
static int prevChar(const std::string& text, int byteOffset);
/**
* Erase character at specified byte offset.
*
* @param text UTF-8 text to modify.
* @param byteOffset Byte offset of the character to erase.
* @return New byte offset (is equal to byteOffset).
*/
static int eraseChar(std::string& text, int byteOffset);
/**
* Insert a character at specified byte offset.
*
* @param text UTF-8 text to modify.
* @param byteOffset Byte offset where character will be inserted.
* @param ch Unicode character to insert.
* @return New byte offset (after the new character).
*/
static int insertChar(std::string& text, int byteOffset, int ch);
/**
* Counts characters up to byteOffset.
*
* @param text UTF-8 text to navigate.
* @param byteOffset Byte offset inside the text.
* @return Number of characters.
*/
static int countChars(const std::string& text, int byteOffset);
/**
* Gets byte offset for character index.
*
* This method automaticly clips charIndex to be inside
* the string + EOF
*
* @param text UTF-8 text to navigate.
* @param charIndex Character index to move to.
* @return Byte offset of character at charIndex.
*/
static int getOffset(const std::string& text, int charIndex);
};
};
#endif // !FCN_UTF8STRINGEDITOR_HPP
|