* 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
* 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
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
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
* 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
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
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
@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
* 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