]> err.no Git - sope/blob - sope-core/NGExtensions/FdExt.subproj/NSDictionary+misc.m
do not escape URL safe chars (like @ or .)
[sope] / sope-core / NGExtensions / FdExt.subproj / NSDictionary+misc.m
1 /*
2   Copyright (C) 2000-2003 SKYRIX Software AG
3
4   This file is part of OGo
5
6   OGo is free software; you can redistribute it and/or modify it under
7   the terms of the GNU Lesser General Public License as published by the
8   Free Software Foundation; either version 2, or (at your option) any
9   later version.
10
11   OGo is distributed in the hope that it will be useful, but WITHOUT ANY
12   WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14   License for more details.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with OGo; see the file COPYING.  If not, write to the
18   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19   02111-1307, USA.
20 */
21 // $Id$
22
23 #import "common.h"
24 #import "NSDictionary+misc.h"
25
26 @implementation NSDictionary(misc)
27
28 - (NSDictionary *)dictionaryByExchangingKeysAndValues {
29   NSDictionary *reverse;
30   NSArray  *oKeys;
31   unsigned i, len;
32   id *keys, *values;
33   
34   oKeys = [self allKeys];
35   if ((len = [oKeys count]) == 0)
36     return [[self copy] autorelease];
37   
38   keys   = calloc(len + 10, sizeof(id));
39   values = calloc(len + 10, sizeof(id));
40   for (i = 0; i < len; i++) {
41     values[i] = [oKeys objectAtIndex:i];
42     keys[i]   = [self objectForKey:values[i]];
43   }
44   
45   reverse =
46     [[NSDictionary alloc] initWithObjects:values forKeys:keys count:len];
47   free(keys);
48   free(values);
49   return [reverse autorelease];
50 }
51
52 @end /* NSDictionary(misc) */
53
54 @implementation NSMutableDictionary(misc)
55
56 - (void)removeObjectsForKeysV:(id)_firstKey, ... {
57   va_list ap;
58
59   va_start(ap, _firstKey);
60   while (_firstKey) {
61     [self removeObjectForKey:_firstKey];
62     _firstKey = va_arg(ap, id);
63   }
64   va_end(ap);
65 }
66
67 @end /* NSMutableDictionary(misc) */
68
69 void __link_NSDictionary_misc() {
70   __link_NSDictionary_misc();
71 }