summaryrefslogtreecommitdiff
path: root/plugins/SendScreenshotPlus/src/mir_string.cpp
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2012-07-23 13:49:28 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2012-07-23 13:49:28 +0000
commita9580df150d799246eaecbf3c1fb5cecf9f8ab49 (patch)
treece046b1cd432d65718c9f6af80521d533ce6d4ca /plugins/SendScreenshotPlus/src/mir_string.cpp
parent60338d55bb73d0c45b6e092703c4bb88a3c49755 (diff)
SecureIM, SeenPlugin, SendSS, Sessions: changed folder structure
git-svn-id: http://svn.miranda-ng.org/main/trunk@1122 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/SendScreenshotPlus/src/mir_string.cpp')
-rw-r--r--plugins/SendScreenshotPlus/src/mir_string.cpp179
1 files changed, 179 insertions, 0 deletions
diff --git a/plugins/SendScreenshotPlus/src/mir_string.cpp b/plugins/SendScreenshotPlus/src/mir_string.cpp
new file mode 100644
index 0000000000..0ee154b7b9
--- /dev/null
+++ b/plugins/SendScreenshotPlus/src/mir_string.cpp
@@ -0,0 +1,179 @@
+/*
+
+Miranda IM: the free IM client for Microsoft* Windows*
+
+Copyright 2000-2009 Miranda ICQ/IM project,
+
+This file is part of Send Screenshot Plus, a Miranda IM plugin.
+Copyright (c) 2010 Ing.U.Horn
+
+Parts of this file based on original sorce code
+from UserInfoEx Plugin
+
+This program 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; either version 2
+of the License, or (at your option) any later version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+File name : $HeadURL: http://merlins-miranda.googlecode.com/svn/trunk/miranda/plugins/SendSSPlus/mir_string.cpp $
+Revision : $Revision: 13 $
+Last change on : $Date: 2010-04-02 02:54:30 +0400 (Пт, 02 апр 2010) $
+Last change by : $Author: ing.u.horn $
+
+*/
+
+#include "global.h"
+#include "mir_string.h"
+
+char *mir_strncpy(char *pszDest, const char *pszSrc, const size_t cchDest)
+{
+ if (!pszDest || !pszSrc || !cchDest)
+ return NULL;
+ pszDest = strncpy(pszDest, pszSrc, cchDest-1);
+ pszDest[cchDest-1] = 0;
+ return pszDest;
+}
+
+wchar_t *mir_wcsncpy(wchar_t *pszDest, const wchar_t *pszSrc, const size_t cchDest)
+{
+ if (!pszDest || !pszSrc || !cchDest)
+ return NULL;
+ pszDest = wcsncpy(pszDest, pszSrc, cchDest-1);
+ pszDest[cchDest-1] = 0;
+ return pszDest;
+}
+
+char *mir_strncat(char *pszDest, const char *pszSrc, const size_t cchDest)
+{
+ if (!pszDest || !pszSrc || !cchDest)
+ return NULL;
+ strncat(pszDest, pszSrc, cchDest-1);
+ pszDest[cchDest-1] = 0;
+ return pszDest;
+}
+
+wchar_t *mir_wcsncat(wchar_t *pszDest, const wchar_t *pszSrc, const size_t cchDest)
+{
+ if (!pszDest || !pszSrc || !cchDest)
+ return NULL;
+ pszDest = wcsncat(pszDest, pszSrc, cchDest-1);
+ pszDest[cchDest-1] = 0;
+ return pszDest;
+}
+
+char *mir_strncat_c(char *pszDest, const char cSrc) {
+ size_t lenNew = strlen(pszDest) + 2;
+ if (!pszDest)
+ pszDest = (char *) mir_alloc(sizeof(char) * lenNew);
+ else
+ pszDest = (char *) mir_realloc(pszDest, sizeof(char) * lenNew);
+ pszDest[lenNew-2] = cSrc;
+ pszDest[lenNew-1] = 0;
+ return pszDest;
+}
+
+wchar_t *mir_wcsncat_c(wchar_t *pwszDest, const wchar_t wcSrc) {
+ size_t lenNew = wcslen(pwszDest) + 2;
+ if (!pwszDest)
+ pwszDest = (wchar_t *) mir_alloc(sizeof(wchar_t) * lenNew);
+ else
+ pwszDest = (wchar_t *) mir_realloc(pwszDest, sizeof(wchar_t) * lenNew);
+ pwszDest[lenNew-2] = wcSrc;
+ pwszDest[lenNew-1] = 0;
+ return pwszDest;
+}
+
+char *mir_strnerase(char *pszDest, size_t sizeFrom, size_t sizeTo) {
+ char *pszReturn = NULL;
+ size_t sizeNew, sizeLen = strlen(pszDest);
+ if (sizeFrom >= 0 && sizeFrom < sizeLen && sizeTo >= 0 && sizeTo <= sizeLen && sizeFrom < sizeTo) {
+ sizeNew = sizeLen - (sizeTo - sizeFrom);
+ size_t sizeCopy = sizeNew - sizeFrom;
+ pszReturn = (char *) mir_alloc(sizeNew + 1);
+ memcpy(pszReturn, pszDest, sizeFrom);
+ memcpy(pszReturn + sizeFrom, pszDest + sizeTo, sizeCopy);
+ pszReturn[sizeNew] = 0;
+ }
+
+ pszDest = (char *) mir_realloc(pszDest, sizeNew + 1);
+ pszDest = mir_strcpy(pszDest, pszReturn);
+ mir_free(pszReturn);
+ return pszDest;
+}
+
+size_t mir_vsnwprintf(wchar_t *pszDest, const size_t cchDest, const wchar_t *pszFormat, va_list& argList)
+{
+ size_t iRet, cchMax;
+
+ if (!pszDest || !pszFormat || !*pszFormat)
+ return -1;
+
+ cchMax = cchDest - 1;
+ iRet = _vsnwprintf(pszDest, cchMax, pszFormat, argList);
+ if (iRet < 0) pszDest[0] = 0;
+ else if (iRet >= cchMax) {
+ pszDest[cchMax] = 0;
+ iRet = cchMax;
+ }
+ return iRet;
+}
+
+size_t mir_snwprintf(wchar_t *pszDest, const size_t cchDest, const wchar_t *pszFormat, ...)
+{
+ size_t iRet;
+ va_list argList;
+
+ va_start(argList, pszFormat);
+ iRet = mir_vsnwprintf(pszDest, cchDest, pszFormat, argList);
+ va_end(argList);
+ return iRet;
+}
+
+//---------------------------------------------------------------------------
+void mir_stradd(char* &pszDest, const char *pszSrc)
+{
+ if(!pszSrc) {
+ return;
+ }
+ else if(!pszDest) {
+ pszDest = mir_strdup(pszSrc);
+ }
+ else {
+ size_t lenDest = strlen(pszDest);
+ size_t lenSrc = strlen(pszSrc);
+ size_t lenNew = lenDest + lenSrc + 1;
+ pszDest = (char *) mir_realloc(pszDest, sizeof(char)* lenNew);
+
+ strcpy(pszDest + lenDest, pszSrc);
+ pszDest[lenNew-1] = 0;
+ }
+}
+
+void mir_wcsadd(wchar_t* &pszDest, const wchar_t *pszSrc)
+{
+ if(!pszSrc) {
+ return;
+ }
+ else if(!pszDest) {
+ pszDest = mir_wstrdup(pszSrc);
+ }
+ else {
+ size_t lenDest = wcslen(pszDest);
+ size_t lenSrc = wcslen(pszSrc);
+ size_t lenNew = lenDest + lenSrc + 1;
+ pszDest = (wchar_t *) mir_realloc(pszDest, sizeof(wchar_t)*lenNew);
+
+ wcscpy(pszDest + lenDest, pszSrc);
+ pszDest[lenNew-1] = 0;
+ }
+}
+