This is StringTestUNIX.m in view mode; [Download] [Up]
// // StringTestUNIX.m -- test out the String class' UNIX category // Written by Don Yacktman Copyright (c) 1994 by Don Yacktman. // Version 1.0. All rights reserved. // // This notice may not be removed from this source code. // // This program is included in the MiscKit by permission from the author // and its use is governed by the MiscKit license, found in the file // "LICENSE.rtf" in the MiscKit distribution. Please refer to that file // for a list of all applicable permissions and restrictions. // void printPathAndFileName(id aString) { printf("Given: \"%s\"\n", [aString stringValue]); printf(" Path is: \"%s\"\n", [[aString pathName] stringValueAndFree]); printf(" Filename is: \"%s\"\n", [[aString fileName] stringValueAndFree]); printf("Extension is: \"%s\"\n", [[aString fileExtension] stringValueAndFree]); printf("Base name is: \"%s\"\n", [[aString fileBasename] stringValueAndFree]); } #define USTRINGS 5 void testMiscStringUNIX() { id string[USTRINGS]; int i; printf("***** Testing MiscStringUNIX category\n"); // Test MiscStringUNIX.m methods: // -fileName, -fileNameFromZone:, -pathName, -pathNameFromZone: string[0] = [MiscString newWithString: "/Net/darth/Users/don/Projects/daymisckit_proj/daymisckit-1/DAYString.m"]; printPathAndFileName(string[0]); [string[0] setStringValue:"DAYString.m"]; printPathAndFileName(string[0]); [string[0] setStringValue:"README"]; printPathAndFileName(string[0]); [string[0] setStringValue:"/a/README.tar.gz"]; printPathAndFileName(string[0]); [string[0] setStringValue:"~/.cshrc"]; printPathAndFileName(string[0]); [string[0] setStringValue:"~/.newsrc.old"]; printPathAndFileName(string[0]); [string[0] setStringValue:""]; printPathAndFileName(string[0]); // -encrypt: [string[0] setStringValue:"Blahbla0"]; string[1] = [MiscString newWithString:"DY"]; string[2] = [MiscString newWithString:NULL]; string[3] = [MiscString newWithString:""]; string[4] = [MiscString newWithString:"Blahbla0xyzpdq"]; printf("String \"%s\" with salt \"%s\" encrypts to \"%s\" .\n", [string[0] stringValue], [string[1] stringValue], [[string[0] encrypt:string[1]] stringValueAndFree]); printf("String \"%s\" with salt \"%s\" encrypts to \"%s\" .\n", [string[4] stringValue], [string[1] stringValue], [[string[4] encrypt:string[1]] stringValueAndFree]); printf("String \"%s\" with salt \"%s\" encrypts to \"%s\" .\n", [string[2] stringValue], [string[1] stringValue], [[string[2] encrypt:string[1]] stringValueAndFree]); printf("String \"%s\" with salt \"%s\" encrypts to \"%s\" .\n", [string[0] stringValue], [string[2] stringValue], [[string[0] encrypt:string[2]] stringValueAndFree]); [string[2] setStringValue:""]; printf("String \"%s\" with salt \"%s\" encrypts to \"%s\" .\n", [string[3] stringValue], [string[1] stringValue], [[string[3] encrypt:string[1]] stringValueAndFree]); printf("String \"%s\" with salt \"%s\" encrypts to \"%s\" .\n", [string[0] stringValue], [string[3] stringValue], [[string[0] encrypt:string[3]] stringValueAndFree]); // -replaceHomeWithTilde, -replaceTildeWithHome [string[0] setStringValue:NXHomeDirectory()]; [string[0] cat:"/aFile.txt"]; [string[1] setStringValue:"/usr/local/bin/spew"]; for (i=0; i<4; i++) printf("Replace home with tilde: \"%s\" to \"%s\".\n", [string[i] stringValue], [[[string[i] copy] replaceHomeWithTilde] stringValueAndFree]); [string[0] setStringValue:"~/SomeCode.c"]; for (i=0; i<4; i++) printf("Replace tilde with home: \"%s\" to \"%s\".\n", [string[i] stringValue], [[[string[i] copy] replaceTildeWithHome] stringValueAndFree]); // ***** Not yet tested! // - addExtensionIfNeeded:(const char *)aString; // - (BOOL)isRelativePath; // - (BOOL)isAbsolutePath; // - (BOOL)doesExistInFileSystem; // - (BOOL)isFileOfType:(MiscFileType)fileType; // - pathComponentAt:(int)index // - (int)numberOfPathComponents // - setDirectory:(const char *)dir file:(const char *)file; // - initDirectory:(const char *)dir file:(const char *)file; for (i=0; i<USTRINGS; i++) [string[i] free]; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.