1/* 2 DefaultScannerHandler.m 3 4 Copyright (C) 1995, 1996 Ovidiu Predescu and Mircea Oancea. 5 All rights reserved. 6 7 Author: Ovidiu Predescu <ovidiu@apache.org> 8 Helge Hess <helge.hess@opengroupware.org> 9 10 This file is part of libFoundation. 11 12 Permission to use, copy, modify, and distribute this software and its 13 documentation for any purpose and without fee is hereby granted, provided 14 that the above copyright notice appear in all copies and that both that 15 copyright notice and this permission notice appear in supporting 16 documentation. 17 18 We disclaim all warranties with regard to this software, including all 19 implied warranties of merchantability and fitness, in no event shall 20 we be liable for any special, indirect or consequential damages or any 21 damages whatsoever resulting from loss of use, data or profits, whether in 22 an action of contract, negligence or other tortious action, arising out of 23 or in connection with the use or performance of this software. 24*/ 25 26#import <Foundation/NSString.h> 27#include "FormatScanner.h" 28#include "DefaultScannerHandler.h" 29 30@implementation DefaultScannerHandler 31 32- (id)init { 33 int i; 34 IMP unknownSpecifierIMP 35 = [self methodForSelector:@selector(unknownSpecifier:scanner:)]; 36 37 for(i = 0; i < 256; i++) 38 specHandler[i] = unknownSpecifierIMP; 39 return self; 40} 41 42- (NSString *)unknownSpecifier:(void *)arg scanner:scanner 43{ 44 char str[] = { [scanner characterSpecifier], 0 }; 45 return [NSString stringWithCString:str]; 46} 47 48- (NSString *)stringForArgument:(void *)arg scanner:scanner 49{ 50 return (*specHandler[(int)[scanner characterSpecifier]]) 51 (self, _cmd, arg, scanner); 52} 53 54@end /* DefaultScannerHandler */ 55 56@implementation DefaultEnumScannerHandler 57 58- (id)init 59{ 60 int i; 61 IMP unknownSpecifierIMP; 62 63 unknownSpecifierIMP = 64 [self methodForSelector:@selector(unknownSpecifier:scanner:)]; 65 66 for(i = 0; i < 256; i++) 67 self->specHandler[i] = unknownSpecifierIMP; 68 return self; 69} 70 71- (NSString *)unknownSpecifier:(void *)arg scanner:scanner 72{ 73 char str[] = { [scanner characterSpecifier], 0 }; 74 return [NSString stringWithCString:str]; 75} 76 77- (NSString *)stringForArgument:(void *)arg scanner:scanner 78{ 79 return (*specHandler[(int)[scanner characterSpecifier]]) 80 (self, _cmd, arg, scanner); 81} 82 83@end /* DefaultEnumScannerHandler */ 84 85/* 86 Local Variables: 87 c-basic-offset: 4 88 tab-width: 8 89 End: 90*/ 91