home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-11-10 | 3.1 KB | 112 lines | [TEXT/CWIE] |
- ///--------------------------------------------------------------------------------------
- // StringUtils.c
- //
- // Created: 12/17/91 at 12:35:35 AM
- // By: Tony Myles
- //
- // Copyright: © 1991-93 Tony Myles, All rights reserved worldwide.
- ///--------------------------------------------------------------------------------------
-
-
- #ifndef __MEMORY__
- #include <Memory.h>
- #endif
-
- #ifndef __STRINGUTILS__
- #include "StringUtils.h"
- #endif
-
-
- ///--------------------------------------------------------------------------------------
- // PStrCpy
- ///--------------------------------------------------------------------------------------
-
- void PStrCpy(
- Str255 srcStr,
- Str255 dstStr)
- {
- BlockMove(srcStr, dstStr, 1 + srcStr[0]);
- }
-
-
- ///--------------------------------------------------------------------------------------
- // PStrCat
- ///--------------------------------------------------------------------------------------
-
- void PStrCat(Str255 appendStr, Str255 dstStr) {
- BlockMove(appendStr + 1, dstStr + dstStr[0] + 1, appendStr[0]);
-
- dstStr[0] += appendStr[0];
- }
-
- // ==========================================================================
-
- void PStrPad(Str255 destStr, short padToLen, register char padChar) {
- register short i;
-
- if (padToLen > 255)
- padToLen = 255;
-
- for (i = destStr[0] + 1; i <= padToLen; i++) {
- destStr[i] = padChar;
- }
- destStr[0] = padToLen;
- } // END PStrPad
-
- // ---------------------------------------------------------------------------
-
- void PStrPadCpy(Str255 srcStr, Str255 destStr, short padToLen, register char padChar) {
- register short i;
-
- BlockMove((Ptr)&srcStr[0], (Ptr)&destStr[0], srcStr[0] + 1);
-
- if (padToLen > 255)
- padToLen = 255;
-
- for (i = destStr[0] + 1; i <= padToLen; i++) {
- destStr[i] = padChar;
- }
- destStr[0] = padToLen;
- } // END PStrPadCpy
-
- // ---------------------------------------------------------------------------
- // PStrDelete
- // ---------------------------------------------------------------------------
-
- // When specifying the starting location, remember to include the length byte
- // i.e. to start deleting at first char, use 1 (not 0).
-
- void PStrDelete(Str255 srcStr, short start, short length) {
- // Buggy. Fix later
- return;
- if ((start - 1) == srcStr[0])
- srcStr[0]--; // i.e. delete last char, since we start at last char.
- else {
- srcStr[0] -= length;
- BlockMove(&srcStr[start + length], &srcStr[start], 256 - (start + length));
- }
- } // END PStrDelete
-
- // ---------------------------------------------------------------------------
- // PStrReplaceSuffix
- // ---------------------------------------------------------------------------
-
- Boolean PStrReplaceSuffix(Str255 searchSuffix, Str255 replaceSuffix, Str255 destStr) {
- Str255 destStrCpy;
- short destStrLen = destStr[0];
- short backwardsOffset;
- Boolean found;
-
- PStrCpy(destStr, destStrCpy);
- backwardsOffset = destStrCpy[0] - searchSuffix[0];
- destStrCpy[backwardsOffset] = searchSuffix[0];
- found = EqualString(searchSuffix, &destStrCpy[backwardsOffset], false, true);
-
- if (found) {
- destStr[0] -= searchSuffix[0];
- PStrCat(replaceSuffix, destStr);
- }
-
- return(found);
- } // END PStrReplaceSuffix
-