// textprocessing.cpp - Text processing subroutines. // // (c) 2012-2015 Xestia Software Development. // // This file is part of Xestia Address Book. // // Xestia Address Book is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by the // Free Software Foundation, version 3 of the license. // // Xestia Address Book 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 General Public License for more details. // // You should have received a copy of the GNU General Public License along // with Xestia Address Book. If not, see #include #include #include #include #include #include "textprocessing.h" void EscapeString(wxString *ReceivedString, bool StripQuotes) { // Escape a string that contains escapable characters. ReceivedString->Replace(wxT("\\"), wxT("\\\\"), TRUE); ReceivedString->Replace(wxT(","), wxT("\\,"), TRUE); ReceivedString->Replace(wxT(";"), wxT("\\;"), TRUE); ReceivedString->Replace(wxT("\r\n"), wxT("\\n"), TRUE); ReceivedString->Replace(wxT("\n"), wxT("\\n"), TRUE); if (StripQuotes == TRUE){ ReceivedString->Replace(wxT("\""), wxT(""), TRUE); } } void GetEscapeString(wxTextCtrl *TextCtrl, wxString *ProcessString, bool StripQuotes) { // Get an escaped string from a wxTextCtrl. *ProcessString = TextCtrl->GetValue(); EscapeString(ProcessString, StripQuotes); } void GetEscapeString(wxComboBox *ComboCtrl, wxString *ProcessString, bool StripQuotes) { // Get an escaped string from a wxComboBox. *ProcessString = ComboCtrl->GetValue(); EscapeString(ProcessString, StripQuotes); } void GetEscapeString(wxChoice *ChoiceCtrl, wxString *ProcessString, bool StripQuotes) { // Get an escaped string from a wxChoice. *ProcessString = ChoiceCtrl->GetString(ChoiceCtrl->GetSelection()); EscapeString(ProcessString, StripQuotes); } void CaptureString(wxString *ProcessString, bool StripQuotes) { // Capture a string for processing. ProcessString->Replace(wxT("\\n"), wxT("\n"), TRUE); ProcessString->Replace(wxT("\\;"), wxT(";"), TRUE); ProcessString->Replace(wxT("\\,"), wxT(","), TRUE); ProcessString->Replace(wxT("\\\\"), wxT("\\"), TRUE); if (StripQuotes == TRUE){ ProcessString->Replace(wxT("\""), wxT(""), TRUE); } } void ResetUnusedString(wxString *ProcessString) { // Reset an unused string. ProcessString->Replace(wxT("\\\\"), wxT("\\"), TRUE); ProcessString->Replace(wxT("\\n"), wxT("\n"), TRUE); ProcessString->Replace(wxT("\\;"), wxT(";"), TRUE); ProcessString->Replace(wxT("\\,"), wxT(","), TRUE); } void ConvertToHTML(wxString *ProcessString) { // Convert string into text that can be used with a // wxHTMLWindow. ProcessString->Replace(wxT("&"), wxT("&"), TRUE); ProcessString->Replace(wxT("<"), wxT("<"), TRUE); ProcessString->Replace(wxT(">"), wxT(">"), TRUE); ProcessString->Replace(wxT("\n"), wxT("
"), TRUE); } void DeleteMapDataProcess(int IndexNum, std::map* MapData){ // Delete map data (for map). MapData->erase(IndexNum); } void DeleteMapDataProcess(int IndexNum, std::map* MapData){ // Delete map data (for map). MapData->erase(IndexNum); } void DeleteMapDataProcess(int IndexNum, std::map* MapData){ // Delete map data (for map). MapData->erase(IndexNum); } void DeleteMapDataProcess(int IndexNum, std::map* MapData){ // Delete map data (for map). MapData->erase(IndexNum); } bool MapDataExists(int *ItemIndex, std::map *MapPtr){ // Check if map data exists (for map). if (MapPtr->find(*ItemIndex) == MapPtr->end()){ return FALSE; } else { return TRUE; } } bool MapDataExists(int *ItemIndex, std::map *MapPtr){ // Check if map data exists (for map). if (MapPtr->find(*ItemIndex) == MapPtr->end()){ return FALSE; } else { return TRUE; } } wxString OutputText(wxString *TextInput){ wxString OutputTextData; wxString OutputLine; int CharSeek = 0; int LineSeek = 0; int MaxLineSeek = 77; for (CharSeek = 0; CharSeek < TextInput->size(); CharSeek++){ LineSeek++; if (LineSeek == MaxLineSeek){ if (TextInput->substr(CharSeek, 1) != "\n"){ OutputLine += TextInput->substr(CharSeek, 1); } OutputLine += "\n"; OutputTextData += OutputLine; OutputLine = " "; LineSeek = 0; MaxLineSeek = 76; continue; } OutputLine += TextInput->substr(CharSeek, 1); } if (OutputLine != " " && OutputLine != " \n"){ OutputTextData += OutputLine; } return OutputTextData; }