/* Copyright (C) 2004 Michael C. Shultz 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. Michael C. Shultz ringworm@inbox.lv Box 3238 Landers, CA 92285 */ #include <MGrInStringSwap.h> int MGrInStringSwap( char* stringOrig, char* oldTag, char* newTag ) { char* Buffer = NULL; unsigned int stringLength = 0; unsigned int stringLengthLeft = 0; unsigned int stringLengthNew = 0; int stringLengthRight = 0; int stringLengthNewTag = 0; int stringLengthOldTag = 0; stringLength = strlen( stringOrig ); if( !( strnstr( stringOrig, oldTag, stringLength ) ) ) { return( 1 ); } stringLengthLeft = strnstr( stringOrig, oldTag, stringLength ) - stringOrig; stringLengthRight = stringLength - ( stringLengthLeft + strlen( oldTag ) ); stringLengthNewTag = strlen( newTag ); stringLengthNew = stringLengthLeft + stringLengthNewTag + stringLengthRight; stringLengthOldTag = strlen( oldTag ); Buffer = ( char* )malloc( stringLengthNew + 1 ); strncpy( Buffer, stringOrig, stringLengthLeft ); Buffer[ stringLengthLeft ] = 0; strncat( Buffer, newTag, strlen(newTag)+1 ); strncat( Buffer, stringOrig + stringLengthLeft + stringLengthOldTag, strlen(stringOrig + stringLengthLeft + stringLengthOldTag)+1 ); strncpy( stringOrig, Buffer, strlen(Buffer)+1 ); free( Buffer ); return( 0 ); }