Commit graph

349 commits

Author SHA1 Message Date
Richard Frith-MacDonald
9390c9ae42 Guess at fix for bug #30766
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31186 72102866-910b-0410-8b05-ffd578937521
2010-08-19 21:02:29 +00:00
Niels Grewe
4848c265e9 Make NSLocale use information about libicu availablity (perviously, it would
never build the ICU stuff because the corresponding macro wasn't defined).



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30995 72102866-910b-0410-8b05-ffd578937521
2010-07-19 07:54:52 +00:00
Richard Frith-MacDonald
1452902204 Attempt to integrate Niels Grewe's avahi code
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30952 72102866-910b-0410-8b05-ffd578937521
2010-07-13 10:35:13 +00:00
Richard Frith-MacDonald
2edf4d1b0c emergency fixup for broken build
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30907 72102866-910b-0410-8b05-ffd578937521
2010-07-01 07:17:53 +00:00
David Chisnall
3b2211e891 Added some documentation for the CXXException class.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30905 72102866-910b-0410-8b05-ffd578937521
2010-06-30 15:59:52 +00:00
David Chisnall
edcd8d0c5d Added class for catching C++ exceptions. When using libobjc2, you can catch C++ exceptions by writing @catch(CXXException *e). This will wrap the C++ exception in an Objective-C object and allow you to access it by sending a -thrownValue message to the object. This returns a pointer to the exception. For example, if the exception is an integer, you would retrieve it like this from Objective-C:
@catch(CXXException *e)
{
	int i = *(int*)[e thrownValue];
}

In ObjC++, you can also make sure that it really is an int, by doing:

assert(typeid(int) == *(std::type_info*)[e cxx_type_info]);

These interfaces are experimental and subject to change without notice.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30904 72102866-910b-0410-8b05-ffd578937521
2010-06-30 13:08:22 +00:00
Richard Frith-MacDonald
1e0ab98f12 dd autoconf stuff for ICU
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30850 72102866-910b-0410-8b05-ffd578937521
2010-06-25 10:33:55 +00:00
Richard Frith-MacDonald
cfd056e44e include runtime header for blocks support if the compiler has it.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30812 72102866-910b-0410-8b05-ffd578937521
2010-06-22 10:09:51 +00:00
Richard Frith-MacDonald
8f53f101f0 regenerate to fix problems of buggy autoconf version
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30771 72102866-910b-0410-8b05-ffd578937521
2010-06-17 16:50:45 +00:00
Richard Frith-MacDonald
fcdd57d05f minor memory management updates/cleanups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30760 72102866-910b-0410-8b05-ffd578937521
2010-06-16 08:45:49 +00:00
Richard Frith-MacDonald
23b7ff95cd Simplify source by usuing autoconf
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30692 72102866-910b-0410-8b05-ffd578937521
2010-06-12 07:19:26 +00:00
Richard Frith-MacDonald
dcf5647de3 tweak for performance
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30673 72102866-910b-0410-8b05-ffd578937521
2010-06-11 12:00:02 +00:00
Richard Frith-MacDonald
d2a49f16a8 Fixes for bug #29845 and mime parsing improvements.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30635 72102866-910b-0410-8b05-ffd578937521
2010-06-09 15:03:37 +00:00
Richard Frith-MacDonald
3c6801eae6 Revert code which belongs in gdl2 rather than base
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30508 72102866-910b-0410-8b05-ffd578937521
2010-05-31 07:18:54 +00:00
Dave Wetzel
64f6e96d0a added encodingNamed:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30507 72102866-910b-0410-8b05-ffd578937521
2010-05-31 06:34:28 +00:00
Richard Frith-MacDonald
6388ec9d4f various minor bugfixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30470 72102866-910b-0410-8b05-ffd578937521
2010-05-29 06:42:38 +00:00
Richard Frith-MacDonald
27dde9d07b Attempt to get correct charset for xml parsing.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30441 72102866-910b-0410-8b05-ffd578937521
2010-05-21 17:40:43 +00:00
Dave Wetzel
9e723901b6 * Source/Additions/Unicode.m: replace objc_malloc with NSZoneMalloc
and objc_free with NSZoneFree

* Source/Additions/NSFileHandle+GNUstepBase.m: should work with ipv6
(The old code does fail on Snow Leopard, even with ipv4 addresses.)    

* Source/Additions/GSXML.m: added GSObjCRuntime.h
* Headers/Additions/GNUstepBase/GSObjCRuntime.h: 
replace objc_malloc with NSZoneMalloc and objc_free with NSZoneFree



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30221 72102866-910b-0410-8b05-ffd578937521
2010-04-23 04:06:17 +00:00
Nicola Pero
40d25d9fea Fixed installation-domains.conf on Windows - merged back the path configuration into the main configure script to do it. Minor other fixes to configuration.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30180 72102866-910b-0410-8b05-ffd578937521
2010-04-18 18:18:45 +00:00
Richard Frith-MacDonald
ac3ce7be00 make mixed abi default now
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30063 72102866-910b-0410-8b05-ffd578937521
2010-03-28 08:22:46 +00:00
Richard Frith-MacDonald
f784646663 generalize define from __MINGW32__ to __MINGW__
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30001 72102866-910b-0410-8b05-ffd578937521
2010-03-19 12:10:11 +00:00
Richard Frith-MacDonald
97653c21a2 Made experimental API for sending emails available.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29999 72102866-910b-0410-8b05-ffd578937521
2010-03-18 09:56:51 +00:00
Richard Frith-MacDonald
8b6d77380c experimental configure option
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29994 72102866-910b-0410-8b05-ffd578937521
2010-03-17 15:34:51 +00:00
Richard Frith-MacDonald
7a0ddec62c Apply tidyup by Anibal Rindisbacher
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29986 72102866-910b-0410-8b05-ffd578937521
2010-03-17 05:36:11 +00:00
Richard Frith-MacDonald
d435122451 fix typo
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29979 72102866-910b-0410-8b05-ffd578937521
2010-03-16 12:03:10 +00:00
Richard Frith-MacDonald
7112daa5b4 mingw tweaks suggested by Vincent Richomme
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29973 72102866-910b-0410-8b05-ffd578937521
2010-03-16 06:19:58 +00:00
Richard Frith-MacDonald
4bbf250188 add explicit bracketing for safer macros.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29969 72102866-910b-0410-8b05-ffd578937521
2010-03-15 21:16:20 +00:00
Richard Frith-MacDonald
a83ae2b69d Prevent builds where nonfragile-abi state does not match that with which
the base library was configured.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29929 72102866-910b-0410-8b05-ffd578937521
2010-03-13 19:45:23 +00:00
Richard Frith-MacDonald
ee25a8f059 improve exception support
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29898 72102866-910b-0410-8b05-ffd578937521
2010-03-11 07:22:10 +00:00
Richard Frith-MacDonald
e21f059bf0 fix includes to iumports
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29894 72102866-910b-0410-8b05-ffd578937521
2010-03-10 14:53:51 +00:00
Richard Frith-MacDonald
42db2fdf50 Improve debug
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29874 72102866-910b-0410-8b05-ffd578937521
2010-03-08 09:27:48 +00:00
Richard Frith-MacDonald
3132d54a5d 64bit fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29872 72102866-910b-0410-8b05-ffd578937521
2010-03-08 07:06:47 +00:00
Richard Frith-MacDonald
22f8bdb8c4 64 bit fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29871 72102866-910b-0410-8b05-ffd578937521
2010-03-08 06:43:14 +00:00
Richard Frith-MacDonald
026d6fc751 Add mechanism for gdl2.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29866 72102866-910b-0410-8b05-ffd578937521
2010-03-07 13:35:07 +00:00
Richard Frith-MacDonald
f59ba481f0 Move NSStream addition declarations to separate file.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29853 72102866-910b-0410-8b05-ffd578937521
2010-03-05 12:41:40 +00:00
Richard Frith-MacDonald
1a4662001d Remove obsolete headers
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29850 72102866-910b-0410-8b05-ffd578937521
2010-03-05 10:32:15 +00:00
Richard Frith-MacDonald
8ffe9f3c80 tweaks to build on osx
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29849 72102866-910b-0410-8b05-ffd578937521
2010-03-05 10:24:42 +00:00
Richard Frith-MacDonald
39fc4419b0 further cleanup ... always use -zone method to get an object's zone ...
so people can safely write subclasses using different allocation schemes.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29847 72102866-910b-0410-8b05-ffd578937521
2010-03-05 09:30:18 +00:00
Richard Frith-MacDonald
e947396a6e include stdio.h for GSPrintf
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29843 72102866-910b-0410-8b05-ffd578937521
2010-03-05 05:54:56 +00:00
Richard Frith-MacDonald
ef908fbb5b remove obsolete code and update other stuff fro new runtime api
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29840 72102866-910b-0410-8b05-ffd578937521
2010-03-05 05:24:43 +00:00
Richard Frith-MacDonald
102df587f7 more changes for new runtime
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29828 72102866-910b-0410-8b05-ffd578937521
2010-03-04 08:15:08 +00:00
Richard Frith-MacDonald
4fcce15ee0 Fix header error spotted by Fred
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29817 72102866-910b-0410-8b05-ffd578937521
2010-03-02 09:51:12 +00:00
Richard Frith-MacDonald
f710cb72e9 Remove obsolete code
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29813 72102866-910b-0410-8b05-ffd578937521
2010-03-01 08:46:21 +00:00
Richard Frith-MacDonald
b59b875d50 mprove ifdef's for non-fragile-abi
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29809 72102866-910b-0410-8b05-ffd578937521
2010-02-28 19:43:35 +00:00
Richard Frith-MacDonald
bbc0ddd60f Use NSGetSizeAndAlignment
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29798 72102866-910b-0410-8b05-ffd578937521
2010-02-28 11:51:59 +00:00
Richard Frith-MacDonald
b1b69523be add objc_sizeOfType()
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29795 72102866-910b-0410-8b05-ffd578937521
2010-02-28 11:36:29 +00:00
Richard Frith-MacDonald
299c3aefeb cleanup compatibility header installation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29793 72102866-910b-0410-8b05-ffd578937521
2010-02-28 09:10:16 +00:00
Richard Frith-MacDonald
6b3e53917e inon-fragile ivar update
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29780 72102866-910b-0410-8b05-ffd578937521
2010-02-26 11:04:14 +00:00
Richard Frith-MacDonald
e43d625338 improve instance variable hiding
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29779 72102866-910b-0410-8b05-ffd578937521
2010-02-26 10:25:35 +00:00
Richard Frith-MacDonald
166f1afb4b build additions with NO_GNUSTEP=1
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29771 72102866-910b-0410-8b05-ffd578937521
2010-02-26 08:39:47 +00:00
Richard Frith-MacDonald
a000beebcb tweak for if bool is a reserved word
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29754 72102866-910b-0410-8b05-ffd578937521
2010-02-25 19:00:23 +00:00
Richard Frith-MacDonald
0d8647856e support very recent glibc
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29738 72102866-910b-0410-8b05-ffd578937521
2010-02-25 10:51:10 +00:00
Richard Frith-MacDonald
c22351a70f regenerate
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29737 72102866-910b-0410-8b05-ffd578937521
2010-02-25 10:03:00 +00:00
Richard Frith-MacDonald
62939c969a compatibility and portability fixes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29736 72102866-910b-0410-8b05-ffd578937521
2010-02-25 10:00:48 +00:00
Richard Frith-MacDonald
3968c44cec Cleanup some deprecated code
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29730 72102866-910b-0410-8b05-ffd578937521
2010-02-25 08:19:52 +00:00
Richard Frith-MacDonald
b60b8bf73f Move gnustep specific macros
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29729 72102866-910b-0410-8b05-ffd578937521
2010-02-25 05:36:10 +00:00
Richard Frith-MacDonald
b1e904b3ae move GNUstep.h into common.h
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29727 72102866-910b-0410-8b05-ffd578937521
2010-02-25 05:26:57 +00:00
Richard Frith-MacDonald
8da37b5bf9 move a few functions from header to source file
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29725 72102866-910b-0410-8b05-ffd578937521
2010-02-25 05:07:34 +00:00
Richard Frith-MacDonald
8769dd8b6f deprecates some gnustep runtime wrappers
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29697 72102866-910b-0410-8b05-ffd578937521
2010-02-22 10:13:20 +00:00
Richard Frith-MacDonald
ec2ebc1c47 tweaks to avoid compiler warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29691 72102866-910b-0410-8b05-ffd578937521
2010-02-20 18:05:00 +00:00
Richard Frith-MacDonald
b107ae4ac4 preparation for possibly excluding GNUstep extensions by default
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29690 72102866-910b-0410-8b05-ffd578937521
2010-02-20 17:16:23 +00:00
Richard Frith-MacDonald
c7fc73ec19 make runtime.h available to other code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29684 72102866-910b-0410-8b05-ffd578937521
2010-02-20 06:49:32 +00:00
Richard Frith-MacDonald
14a557fcd7 avoid obsolete include
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29667 72102866-910b-0410-8b05-ffd578937521
2010-02-18 16:27:32 +00:00
Richard Frith-MacDonald
85760d2563 move a bit more stuff into additions
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29666 72102866-910b-0410-8b05-ffd578937521
2010-02-18 16:18:54 +00:00
Richard Frith-MacDonald
746afbcb53 Update integer limits code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29661 72102866-910b-0410-8b05-ffd578937521
2010-02-18 07:06:42 +00:00
Richard Frith-MacDonald
43bcaac3ad Attempt to allow documentation to be generated for uninstalled base package.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29655 72102866-910b-0410-8b05-ffd578937521
2010-02-16 19:51:52 +00:00
Richard Frith-MacDonald
2d237c91ae remove obsolete invocation stuff
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29649 72102866-910b-0410-8b05-ffd578937521
2010-02-15 17:14:12 +00:00
Richard Frith-MacDonald
d763014aa5 cleanup fast enumeration issues
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29647 72102866-910b-0410-8b05-ffd578937521
2010-02-15 16:56:31 +00:00
Richard Frith-MacDonald
da2a563929 Fix erroneous configure change
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29631 72102866-910b-0410-8b05-ffd578937521
2010-02-14 17:22:47 +00:00
Richard Frith-MacDonald
ea34103f35 fixup for old runtime
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29627 72102866-910b-0410-8b05-ffd578937521
2010-02-14 15:47:30 +00:00
Richard Frith-MacDonald
cd6051a668 fix missing check for runtime.h
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29626 72102866-910b-0410-8b05-ffd578937521
2010-02-14 15:41:44 +00:00
Richard Frith-MacDonald
79ce6ac700 minor include fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29616 72102866-910b-0410-8b05-ffd578937521
2010-02-14 11:01:08 +00:00
Richard Frith-MacDonald
21d597e740 merge back reorganisation branch
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29615 72102866-910b-0410-8b05-ffd578937521
2010-02-14 10:48:10 +00:00
Richard Frith-MacDonald
55d4f390aa re-instate cleaned up version of string proxy code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29518 72102866-910b-0410-8b05-ffd578937521
2010-02-09 06:07:10 +00:00
Riccardo Mottola
d18782ed0e fixed c99-ism
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29486 72102866-910b-0410-8b05-ffd578937521
2010-02-05 21:00:10 +00:00
Riccardo Mottola
fb3ec312b6 provide gcc 2.95 variadic macro
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29485 72102866-910b-0410-8b05-ffd578937521
2010-02-05 20:57:36 +00:00
Richard Frith-MacDonald
49a063af84 Reinstate working symbolic stack trace code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29392 72102866-910b-0410-8b05-ffd578937521
2010-01-24 17:13:03 +00:00
Richard Frith-MacDonald
b662140e16 Apply patch to switch completely to using pthreads
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29367 72102866-910b-0410-8b05-ffd578937521
2010-01-23 17:00:13 +00:00
Richard Frith-MacDonald
138ba2c0ae Re-instate lost check for setsid
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29341 72102866-910b-0410-8b05-ffd578937521
2010-01-21 08:23:19 +00:00
Richard Frith-MacDonald
1c4d02d09d Fix for exception handling with libobjc2
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29247 72102866-910b-0410-8b05-ffd578937521
2010-01-09 07:24:05 +00:00
David Chisnall
c5103403f6 Refactored last two commits so that all of the real code is in GSIMap.h and is just called from the relevant classes, rather than copied and pasted everywhere. Also added fast enumeration support to GSCountedSet.
I think that's all of the classes that use GSIMaps for their implementation now fully supporting fast enumeration.  If there are any that I've missed, then just copy the methods from GSSet to implement them.  You just need to set the mutations pointer to something sensible (i.e. something that will change if the collection mutates) and then call the new GSIMapCountByEnumeratingWithStateObjectsCount() function.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29181 72102866-910b-0410-8b05-ffd578937521
2009-12-29 16:49:07 +00:00
David Chisnall
2c401de4f4 Added GSBlocks header. This defines two macros:
DEFINE_BLOCK_TYPE() defines a new block type.
CALL_BLOCK() calls a block.

These use the compiler's native support for blocks if it exists, but otherwise implement the lower-level version.  Note that the structure defined by the fall-back versions is NOT a complete definition of the block layout, and copies of this structure should never be instantiated.

This does not allow non-blocks-aware compiles (like GCC) to create blocks, but it does allow them to use blocks.  This means that we can implement things like NSArray's -enumerateObjectsUsingBlock: without breaking GCC compatibility.  To do so, you'd first need to declare a block type in the header, like this:

DEFINE_BLOCK_TYPE(GSEnumeratorBlock, void, id, NSUInteger, BOOL*);

Then declare the method like this:

- (void)enumerateObjectsUsingBlock: (GSEnumeratorBlock)aBlock;

Finally, implement it like this:

- (void)enumerateObjectsUsingBlock: (GSEnumeratorBlock)aBlock
{
	NSUInteger count = 0;
	BOOL shouldStop = NO;
	for (obj in self)
	{
		CALL_BLOCK(aBlock, obj, count++, &shouldStop);
		if (shouldStop)
		{
			return;
		}
	}
}

If you compile this with clang -fblocks then it will work using Clang's native support for blocks.  If you compile it with GCC or clang without -fblocks then it will use the other version.  Note that this example uses fast enumeration, so will only compile with clang.  A proper GNUstep implementation should have some fall-back code for primitive compilers that don't support this either.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29169 72102866-910b-0410-8b05-ffd578937521
2009-12-27 13:54:51 +00:00
Richard Frith-MacDonald
2cc7e401da avoid preprocessor warnings on mingw
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28951 72102866-910b-0410-8b05-ffd578937521
2009-11-04 07:00:23 +00:00
Richard Frith-MacDonald
20d59a0d7a fix missing macro
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28817 72102866-910b-0410-8b05-ffd578937521
2009-10-12 19:04:21 +00:00
Richard Frith-MacDonald
d0bd5c8983 Fix files missed from last ocmmit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28780 72102866-910b-0410-8b05-ffd578937521
2009-10-07 14:54:37 +00:00
Richard Frith-MacDonald
715bdcaa0a a bit step towards removing obsolete mframe code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28774 72102866-910b-0410-8b05-ffd578937521
2009-10-04 15:26:07 +00:00
Richard Frith-MacDonald
fcc33c1b71 explicitly specify types in union
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28762 72102866-910b-0410-8b05-ffd578937521
2009-10-02 15:14:42 +00:00
Richard Frith-MacDonald
7b1dbbff0b Default to an empty array type
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28761 72102866-910b-0410-8b05-ffd578937521
2009-10-02 14:41:25 +00:00
David Chisnall
7f8c48ddfc Added configure thingy to detect presence of runtime.h. Autoconf stuff by Wonfgang Lux.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28730 72102866-910b-0410-8b05-ffd578937521
2009-09-23 11:52:32 +00:00
Richard Frith-MacDonald
6455c3e533 tweak header parsing
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28687 72102866-910b-0410-8b05-ffd578937521
2009-09-15 15:28:35 +00:00
Richard Frith-MacDonald
75638580ff Log excess data.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28686 72102866-910b-0410-8b05-ffd578937521
2009-09-15 11:51:08 +00:00
Richard Frith-MacDonald
640ae938c6 Cleanups and minor bugfixes for new code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28665 72102866-910b-0410-8b05-ffd578937521
2009-09-12 07:37:00 +00:00
Richard Frith-MacDonald
418330b29d Avoid exposing pthread details in NSLock.h (as much as possible without
impacting performance).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28612 72102866-910b-0410-8b05-ffd578937521
2009-09-06 10:56:04 +00:00
David Chisnall
9ddfb17425 Added version macro for Snow Leopard.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28576 72102866-910b-0410-8b05-ffd578937521
2009-08-30 16:35:39 +00:00
Richard Frith-MacDonald
5975ccf95f Fix for bug introduced by adding OSX compatibility for the -path method of
NSURL.  This was causing loading of URLs where the path ends in a slash to
fail (load the wrong URL).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28548 72102866-910b-0410-8b05-ffd578937521
2009-08-26 16:48:15 +00:00
Richard Frith-MacDonald
2e2d640c4d Add comments to avoid confusion.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28390 72102866-910b-0410-8b05-ffd578937521
2009-07-11 14:02:00 +00:00
Richard Frith-MacDonald
80a1dc28ae Add explicit disclaimer
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28350 72102866-910b-0410-8b05-ffd578937521
2009-06-13 08:10:40 +00:00
Richard Frith-MacDonald
4f5344d2c2 minor performance tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28237 72102866-910b-0410-8b05-ffd578937521
2009-04-20 08:18:11 +00:00
Richard Frith-MacDonald
067a687974 zeroing weak key fixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28236 72102866-910b-0410-8b05-ffd578937521
2009-04-19 13:56:29 +00:00
Richard Frith-MacDonald
807d1b8a65 gc improvements
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28234 72102866-910b-0410-8b05-ffd578937521
2009-04-19 10:03:18 +00:00