Commit graph

269 commits

Author SHA1 Message Date
Richard Frith-MacDonald
498b8300c3 add new class from Graham Lee <iamleeg@gmail.com>
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36860 72102866-910b-0410-8b05-ffd578937521
2013-07-09 18:59:38 +00:00
Richard Frith-MacDonald
9151fe541b Added Ibadinov's socks parsing code, modified to build without warnings/errors
on more systems.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36828 72102866-910b-0410-8b05-ffd578937521
2013-07-04 05:33:50 +00:00
Richard Frith-MacDonald
8398b7e156 fixups to avoid future ABI breakage
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36538 72102866-910b-0410-8b05-ffd578937521
2013-04-15 09:07:19 +00:00
Richard Frith-MacDonald
d314f0f843 experiment with slower but better hashes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@36344 72102866-910b-0410-8b05-ffd578937521
2013-03-12 16:11:10 +00:00
Gregory John Casamento
feb7c308aa * Headers/Foundation/NSMetadata.h: Add _ to delegate.
* Source/GNUmakefile: Remove reference to NSMetadata.m
	* Source/NSMetadata.m: Remove from here and add OS specific
	implementations.
	* Source/unix/GNUmakefile: Add new file...
	* Source/unix/NSMetadata.m: UNIX implementation...
	* Source/win32/GNUmakefile: Add new file..
	* Source/win32/NSMetadata.m: Windows implementation.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35932 72102866-910b-0410-8b05-ffd578937521
2013-01-05 05:50:21 +00:00
Gregory John Casamento
65d3018c68 * Headers/Foundation/NSMetadataQuery.h: Remove old file.
* Source/GNUmakefile: Change name to NSMetadata.[hm].
	* Source/NSMetadata.m: Add new file with correct name.
	* Source/NSMetadataQuery.m: Remove old file.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35804 72102866-910b-0410-8b05-ffd578937521
2012-11-18 16:54:08 +00:00
Gregory John Casamento
f6656b4051 * Headers/Foundation/Foundation.h: Add NSMetadataQuery.h to
include list.
	* Headers/Foundation/NSMetadataQuery.h: New header for class.
	* Source/GNUmakefile: Add NSMetadataQuery.[hm] to makefile.
	* Source/NSMetadataQuery.m: Abstract implementation for
	NSMetdataQuery.  The idea is much like NSFileStream and other
	classes which have operating system specific implementations.
	On linux this will, most likely, interface with locate/slocate.
	I'm not certain what it will talk to on Win32.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35803 72102866-910b-0410-8b05-ffd578937521
2012-11-18 16:37:57 +00:00
Richard Frith-MacDonald
a7171ab9be restructure for maintainability
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35598 72102866-910b-0410-8b05-ffd578937521
2012-09-24 09:07:55 +00:00
Richard Frith-MacDonald
a4140c8f51 Changes to restore sorting functiionality
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35579 72102866-910b-0410-8b05-ffd578937521
2012-09-20 09:32:00 +00:00
Niels Grewe
f8fd11f3fd Completely overhaul how we do sorting in -base. GSSorting.h now defines an
interface that can be used for all sorting tasks in the library. The actual sort
algorithms to use are now plugable. Timsort is the new default sorting
algorithm, the existing algorithms, shellsort and quicksort, can still be
selected using a configure switch.

Also implement the new NSComparator (blocks) based sorting and insertion index
searching methods for NSMutableArray and NSArray.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35573 72102866-910b-0410-8b05-ffd578937521
2012-09-19 13:31:09 +00:00
Gregory John Casamento
e26964a166 * Headers/Foundation/Foundation.h
* Headers/Foundation/NSScriptWhoseTests.h
	* Source/GNUmakefile
	* Source/NSObject+NSComparisonMethods.m: Move the
	comparison methods to the header for NSScriptWhoseTests.h,
	but don't define the abstract class since we don't support
	Apple script.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35570 72102866-910b-0410-8b05-ffd578937521
2012-09-17 16:05:06 +00:00
Richard Frith-MacDonald
84ce4ee4e3 evert/improve last changes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34925 72102866-910b-0410-8b05-ffd578937521
2012-03-12 18:13:27 +00:00
Richard Frith-MacDonald
f3da6a5455 restructure a bit to make it easier to add namespace support.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34924 72102866-910b-0410-8b05-ffd578937521
2012-03-12 13:27:32 +00:00
Richard Frith-MacDonald
37f430d9d9 tidyup private api
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34029 72102866-910b-0410-8b05-ffd578937521
2011-10-19 15:25:38 +00:00
Richard Frith-MacDonald
4cc58b721a Use _POSIX_C_SOURCE=199506L
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33998 72102866-910b-0410-8b05-ffd578937521
2011-10-15 05:02:22 +00:00
Richard Frith-MacDonald
0282c8146e windows compile fixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33974 72102866-910b-0410-8b05-ffd578937521
2011-10-12 16:23:52 +00:00
David Chisnall
c1cca9a336 Added NSJSONSerialization (10.7) implementation. The code path reading from an NSInputStream is not well tested - please try and break it!
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33631 72102866-910b-0410-8b05-ffd578937521
2011-07-25 15:50:51 +00:00
Richard Frith-MacDonald
4a5cb96bef For the avoidance of confusion, remove references to obsolete header.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33562 72102866-910b-0410-8b05-ffd578937521
2011-07-15 13:53:45 +00:00
Richard Frith-MacDonald
899590c40c tweaks for OpenBSD
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32766 72102866-910b-0410-8b05-ffd578937521
2011-04-03 09:54:57 +00:00
Richard Frith-MacDonald
09bd40334c simplify header layout
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32545 72102866-910b-0410-8b05-ffd578937521
2011-03-13 12:52:37 +00:00
Richard Frith-MacDonald
46cf25ebed add config check for blocks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32539 72102866-910b-0410-8b05-ffd578937521
2011-03-13 08:20:17 +00:00
Richard Frith-MacDonald
98c6309213 Update ChangeLog. reverse accidental addition of GSBlocks.m to makefile ...
we mustn't thave it there until it can be added without causing link error.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32533 72102866-910b-0410-8b05-ffd578937521
2011-03-11 09:17:34 +00:00
Richard Frith-MacDonald
4f9574fc5d add missing headers etc
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32531 72102866-910b-0410-8b05-ffd578937521
2011-03-11 08:14:04 +00:00
Richard Frith-MacDonald
05e186ac65 fix gc heade rlocation.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32388 72102866-910b-0410-8b05-ffd578937521
2011-02-27 17:53:14 +00:00
David Chisnall
a139de7bcb Move method declarations on blocks from EtoileFoundation into GNUstep.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32376 72102866-910b-0410-8b05-ffd578937521
2011-02-26 13:10:49 +00:00
Stefan Bidigaray
c4fdcb6d93 Started working on NSCalendar. I have done very limited testing and would really appreciate if people could start testing the code here.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31741 72102866-910b-0410-8b05-ffd578937521
2010-12-16 02:57:31 +00:00
Stefan Bidigaray
5db47c44eb Add new, completely empty and useless NSCalendar class.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31735 72102866-910b-0410-8b05-ffd578937521
2010-12-15 00:04:51 +00:00
David Chisnall
a5335c34fb Added implementation of NSRegularExpression, from iOS 4 Foundation.
This class is a thin wrapper around libicu regular expressions, so if we don't
have libicu we simply don't compile it at all.  This will give people a linker
failure, rather than a nonfunctional class if they try to use GNUstep without
ICU with code that requires it.

The Apple documentation says that this class has a primitive method that takes
a block as an argument and that this method is called by others, so subclasses
can replace that block method without touching the convenience methods.  We
mimic this behaviour when compiling with block, but when compiling without them
it's a problem.  The current code contains some ugly hacks that will work in
normal usage but break with subclassing when not compiling with blocks.

This commit also includes a partial implementation of NSTextCheckingResult,
implementing the subset of its functionality required for NSRegularExpression
to work.

It also includes numerous fixes to GSICUString.  This is heavily used by
NSRegularExpression, to avoid copying strings when mapping between UText for
libicu and NSString for GNUstep.


Note: I don't have a copy of iOS anywhere to test this against, so it's
entirely possible that there are significant discrepancies between this
implementation of NSRegularExpression and the iOS version.  This version should
function exactly as the iOS one is described as functioning, but I think we've
all seen that Apple documentation refers more to hopes than facts.  Any testing
that someone who does have an ip{hone,od,ad} can do is very welcome.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31635 72102866-910b-0410-8b05-ffd578937521
2010-11-19 22:06:18 +00:00
Richard Frith-MacDonald
a30baac0de avoid a couple of makefile warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31459 72102866-910b-0410-8b05-ffd578937521
2010-10-01 11:39:06 +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
Niels Grewe
7a35233e0c Fix makefile to copy common.h into $GNUSTEP_TARGET_DIR so that it is found when
building with a non-flattened namespace.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30908 72102866-910b-0410-8b05-ffd578937521
2010-07-01 10:15:37 +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
1de22f472c initial addition of NSLocale
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30849 72102866-910b-0410-8b05-ffd578937521
2010-06-25 07:18:20 +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
Gregory John Casamento
b5dbc1afc5 * Source/GNUmakefile: Remove reference to synchonization.m.
* Source/synchronization.m: Remove, since ObjectiveC2 has been
	merged.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29903 72102866-910b-0410-8b05-ffd578937521
2010-03-11 17:11:25 +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
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
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
8d72e6f951 Don't build synchronisation.m ... I don't think we need it any more.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29673 72102866-910b-0410-8b05-ffd578937521
2010-02-19 15:30:27 +00:00
Richard Frith-MacDonald
073595b9e9 Attempt to link in ObjC2 compatibility code if we have an older runtime.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29670 72102866-910b-0410-8b05-ffd578937521
2010-02-19 12:51:02 +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
6a1ff80510 Backward compatibility fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29663 72102866-910b-0410-8b05-ffd578937521
2010-02-18 11:40:58 +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
5297a2e32b Rewrite NSNumber code to compile on most systems and to mostly conform to
style/coding standards.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29639 72102866-910b-0410-8b05-ffd578937521
2010-02-15 10:58:34 +00:00
Richard Frith-MacDonald
d2f84d8995 Restore working NSNumber pending fixes to new version to get it to compile
and conform to coding standards/style.  Should get svn trunk working again.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29629 72102866-910b-0410-8b05-ffd578937521
2010-02-14 16:32:02 +00:00
David Chisnall
99cb20ae16 Rewritten NSNumber implementation. This fixes several OS X-compatibility issues:
The -pointerValue method now returns the value cast to a pointer, not some random value, as the documentation says it should.  This is a change from OpenStep, which said:

> It's an error to send this message to an NSValue that doesn't store a pointer.

The OS X docs now say:

> The receiver's value as a pointer to void. If the receiver was not created to hold a pointer-sized data item, the result is undefined.

This means that any NSNumber created with a word-sized integer should return the same value.

Fixed a number of corner-cases in the compare: implementation caused by incorrect type promotion.  The OS X docs say:

> The compare: method follows the standard C rules for type conversion.

The OS X implementation does not do this.  We now match Apple's conversion rules bug-for-bug: Every value is stored in the smallest signed type that will hold it, unless there is no unsigned type that can hold it, in which case it is stored in an `unsigned long long`, comparisons between integer and floating point values cast both to a double, comparisons between integer types perform a real comparison (so an unsigned long long is always greater than any negative number, at any precision).  The Apple implementation is actually quite sane, it is just completely unrelated to the documentation in any way.

We now use the same range of reusable objects.  Note that there is an error in Cocoa Design Patterns in the description of how Apple's implementation works.  Do not use this as a reference.

We now return `nil` when an NSNumber is sent an -init message.  This is consistent with Apple's implementation but breaks some things in the GNUstep test suite (which RFM said he will fix).

There is a small change in NSValue.h so that the locale parameter is now an `id` not an `NSString*`.  This is because, under recent OS X, it may also be an `NSLocale` instance.  I am not sure how much GNUstep supports `NSLocale`, but this change shouldn't affect anything.

The new (private) GSNumberTypes.h file lets you define macros that are instantiated with each of the names of primitive C types.  These might be useful for simplifying other classes that have -intValue, -floatValue, and so on methods, such as the `NSCell` family.

The old NSConcreteNumberTemplate and NSConcreteNumber stuff has been removed.  The code is now a bit more than 10% of the size of the old NSNumber code, and is hopefully maintainable now, so the next change won't require a complete rewrite.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29618 72102866-910b-0410-8b05-ffd578937521
2010-02-14 12:57:44 +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
Nicola Pero
08d4ae4d8d Preliminary fix for allowing to build libraries in parallel
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29553 72102866-910b-0410-8b05-ffd578937521
2010-02-11 17:50:01 +00:00
David Chisnall
05f18160df Added -enumerateObjectsUsingBlock: implementation to NSArray.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29174 72102866-910b-0410-8b05-ffd578937521
2009-12-27 15:25:12 +00:00