Commit graph

7200 commits

Author SHA1 Message Date
Daniel Ferreira
270c1bcea9 NSFileManager: implement -attributesOfFileSystemForPath:withError:
Implement a method for getting attribytes of a file system path. Reuse
the implementation of -fileSystemAttributesAtPath: for this purpose but
export the last system errors to the caller. Make
-fileSystemAttributesAtPath: use the new implementation, without
exposing error info to the caller.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
7636967f30 api: generate stubs for new classes
Generate class stubs (without any method definition) for
NSFileCoordinator, NSFilePresenter, NSFileVersion and NSURLSession.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
8bd630f004 NSURLCredential: add stub for keychain-stored credential
Declare the NSURLCredentialPersistenceSynchronizable enumeration case to
NSURLCredential persistence options. Since GNUstep does not support
iCloud synchronization for credentials, this case will default to
NSURLCredentialPersistencePermanent.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
814c19ecce NSURLProtectionSpace: improve authentication method handling
Improve handling of NSURL authentication methods. Make "HTMLForm"
authentication a no-op as it should be instead of making it fall back to
Basic authentication.

Add stubs for NTLM and Negotiate IIS methods. They should be easily
implementable given the current framework for authentication methods.

Add stubs for ClientCertificate and ServerTrust authentication methods.
A blocker for supporting them is the lack of a Security.framework
implementation (since they rely on SecTrustRef). They would also require
additions to the current SSL handling code for GNUstep https requests.
Also stub the -distinguishedNames property of NSURLProtectionSpace,
which also deals with certificate-related authentication methods.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
d49db3ab29 NSProcessInfo: add stubs for new APIs
Add stubs for sudden termination APIs and for application activity
management methods.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
cbfa4d8cc9 NSProcessInfo: implement getting system uptime
Introduce the systemUptime property to NSProcessInfo, which can compute
platform-independently what is the uptime of the system.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
277ae581a6 NSHTTPCookie: fix bug in Set-Cookie parser
Fix a bug in NSHTTPCookie's Set-Cookie parser where it would fail to
parse more than one key-only cookie (such as "Secure; HTTPOnly;") in a
header.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
644b676949 NSHTTPCookie: add support for HTTPOnly cookies
Add support for parsing HTTPOnly cookies (those that cannot be accessed
by clients). Implement -[NSHTTPCookie isHTTPOnly].
2017-06-29 21:18:16 +01:00
Daniel Ferreira
3111003ca1 NSFileManager: create NSFileManagerDelegate
Create NSFileManagerDelegate, a more modern manner to verify whether to
proceed a file operation after an error or whether an operation should
actually be performed by NSFileManager.

No functionality using the delegate is yet implemented.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
2ec3c7bc27 NSURL: create stub for -getResourceValue:forKey:error:
Create an unimplemented stub for NSURL's -getResourceValue:... method,
which can gather a numerous set of information about a URL.

Define the constants which are passed into -getResourceValue:... for
requiring information so that a build that relies on this method does
not break.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
064df5ba69 NSURL: add stubs for alias functions
The OSX filesystem implements "aliases", a species of symlink which
tracks its source if it was moved. Create stubs for the NSURL functions
which handle these aliases.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
e813dde02c NSURL: implement +fileURLWithPath:isDirectory:
Implement +[NSURL fileURLWithPath:isDirectory:], a class method added in
OSX 10.5, which was missing from the implementation.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
314f437f43 NSCoder: implement NSSecureCoding stub
Implement stubs for NSSecureCoding which do not break projects that rely
on it.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
be874e5d8f NSDate: declare system clock change notification
Declare a system clock change notification. Base still does not emit
this notification, but this allows applications that wait for it not to
have their build broken.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
5ab00e2c49 NSCalendar: add new calendar identifier constants
Add new calendar identifier constants to NSCalendar, to add
compatibility for newer OSX applications. Some identifiers do not hold
parity with the older equivalents and have been left unimplemented, with
the gregorian calendar as a fallback.
2017-06-29 21:18:16 +01:00
Daniel Ferreira
a9df1b104a NSGeometry: create NSEdgeInsets struct
Create the NSEdgeInsets struct in NSGeometry, introduced in OSX 10.7.
Add helper functions for creating these insets.

This struct is not used in Base. Rather, it is used as part of newer
APIs in GUI.
2017-06-29 21:18:16 +01:00
Richard Frith-Macdonald
383c3246ee partial fix for compiler without properties 2017-06-25 15:17:12 +01:00
Richard Frith-Macdonald
e1e0315e34 Use new NSFileManager behavior rather than operating system specific calls. 2017-06-21 11:25:05 +01:00
Richard Frith-Macdonald
24d29934cf Fix directory creation to match actual OSX sematics as determined by adding
a few testcases ...
The basic method should fail if the directory already exists.
The intermediate directories method should fail if the directory exists unless
the option to create intermediate directories is selected, in which case a
pre-existing directory is counted as a success.
2017-06-18 09:13:57 +01:00
Richard Frith-Macdonald
ed721bf4da Fix directory creation to use low level methods which consider the presence
of an existing directory to be an error, rather than the NSFileManager methods
that consider it a success.  The logic of distributed locking requires us to
fail if a directory already exists.
2017-06-17 06:52:05 +01:00
Richard Frith-MacDonald
a5a2e85423 improve debug log
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40510 72102866-910b-0410-8b05-ffd578937521
2017-05-19 16:20:17 +00:00
Richard Frith-MacDonald
9400f9105d Make TLS client certificate issuer/owner names available
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40508 72102866-910b-0410-8b05-ffd578937521
2017-05-19 11:38:48 +00:00
Richard Frith-MacDonald
1f786ad7a8 fixes for #47618
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40462 72102866-910b-0410-8b05-ffd578937521
2017-04-09 12:45:18 +00:00
Richard Frith-MacDonald
073fb54804 apply bug #49021
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40461 72102866-910b-0410-8b05-ffd578937521
2017-04-09 09:56:55 +00:00
Richard Frith-MacDonald
c6b8f4fb03 fix memory leak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40433 72102866-910b-0410-8b05-ffd578937521
2017-04-03 20:23:31 +00:00
Riccardo Mottola
b5b9126290 Correct format specifier to char*
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40432 72102866-910b-0410-8b05-ffd578937521
2017-04-01 14:09:01 +00:00
Richard Frith-MacDonald
71d1d5c42b implement methods to create a stream to read from a URL
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40420 72102866-910b-0410-8b05-ffd578937521
2017-03-27 09:44:13 +00:00
Richard Frith-MacDonald
173079f8f5 fix swapped arguments (spotted by Fred in testplant changes)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40419 72102866-910b-0410-8b05-ffd578937521
2017-03-27 09:27:12 +00:00
Richard Frith-MacDonald
7c9d7acafa Update NSComparisonResult to use NS_ENUM
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40418 72102866-910b-0410-8b05-ffd578937521
2017-03-27 09:00:35 +00:00
Riccardo Mottola
b19d076452 Skip file if no valid filename could be retrieved most probably due to Charset mismatches, this is is more a last resort: probably a lossy conversion should be attempted before
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40397 72102866-910b-0410-8b05-ffd578937521
2017-03-17 14:11:14 +00:00
Richard Frith-MacDonald
d28ab9eaac Implement OSX compatible non-lossy ascii encoding
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40395 72102866-910b-0410-8b05-ffd578937521
2017-03-17 12:04:19 +00:00
Richard Frith-MacDonald
343ceb58a8 fix to build on osx
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40392 72102866-910b-0410-8b05-ffd578937521
2017-03-17 09:28:01 +00:00
Wolfgang Lux
e3caba204b Fix a serious misunderstanding of the icu string access API: The value
of nativeIndexingLimit must not exceed the length of the current chunk.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40333 72102866-910b-0410-8b05-ffd578937521
2017-02-11 14:24:58 +00:00
Richard Frith-MacDonald
31772e50c5 fix for bug #50032
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40289 72102866-910b-0410-8b05-ffd578937521
2017-01-12 10:34:23 +00:00
Richard Frith-MacDonald
60a86946d3 fix typo
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40282 72102866-910b-0410-8b05-ffd578937521
2016-12-29 20:35:55 +00:00
Wolfgang Lux
80a0d3f28d Fix an off by 1 calculation which meant that weekOfYear would return 2
for the first week of a year whenever the first Thursday of that year
is 7 Jan, for instance 2016.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40239 72102866-910b-0410-8b05-ffd578937521
2016-11-28 09:01:04 +00:00
Richard Frith-MacDonald
af09204ffb typdef for refcount when no atimics available
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40225 72102866-910b-0410-8b05-ffd578937521
2016-11-18 06:49:16 +00:00
Richard Frith-MacDonald
07e0609e42 Additions ot last change
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40209 72102866-910b-0410-8b05-ffd578937521
2016-11-10 11:31:33 +00:00
Richard Frith-MacDonald
f5b4336181 Fix for error decoding archives made on machine with different word size
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40208 72102866-910b-0410-8b05-ffd578937521
2016-11-10 10:23:14 +00:00
Richard Frith-MacDonald
e0267770ef fix crash and other memory management tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40196 72102866-910b-0410-8b05-ffd578937521
2016-11-08 10:21:00 +00:00
Richard Frith-MacDonald
5c3acb5693 Fail quietly when asked to read non-existent file
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40188 72102866-910b-0410-8b05-ffd578937521
2016-11-01 21:02:31 +00:00
Niels Grewe
fe155240e7 Re-enable fast-ARC mode when possible.
Define _ARCCompliantRetainRelease on 32bit platforms and when
we have copmiler intrinsics for atomic operations that allow us
to extend the refcount field to match libobjc2.

The effective maximum reference count is still 2^24 - 1 in either
case.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40183 72102866-910b-0410-8b05-ffd578937521
2016-10-28 08:30:16 +00:00
Wolfgang Lux
4cdf4004e8 Don't tell a lie. The retain count representation of gnustep-base and
libobjc2 differs, so we cannot use the ARC retain/release implementation
for now.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40181 72102866-910b-0410-8b05-ffd578937521
2016-10-27 15:00:17 +00:00
Richard Frith-MacDonald
1ab80b3f58 Fixes for problems spotted by Wolfgang
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40171 72102866-910b-0410-8b05-ffd578937521
2016-10-24 10:22:43 +00:00
Richard Frith-MacDonald
3d9ffaf168 Misc tidyuups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40165 72102866-910b-0410-8b05-ffd578937521
2016-10-21 15:32:31 +00:00
Richard Frith-MacDonald
57c16fcd8a Fix a few places to use NSUInteger
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40153 72102866-910b-0410-8b05-ffd578937521
2016-10-18 08:45:26 +00:00
Richard Frith-MacDonald
6b68c9a1ca gnutls memory management fixup
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40148 72102866-910b-0410-8b05-ffd578937521
2016-10-14 07:57:57 +00:00
Niels Grewe
6509aeb2de Fix handling of incorrect replacement patterns.
The error code from trying to apply a replacement pattern was not checked,
resulting in a crash inside libicu. This also fixes a few memory leaks
(replacement string objects not correctly autoreleased before returning them
 to the caller).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40142 72102866-910b-0410-8b05-ffd578937521
2016-10-12 13:43:32 +00:00
Niels Grewe
f9540e172e Improve support for loading encrypted private keys
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40139 72102866-910b-0410-8b05-ffd578937521
2016-10-11 11:59:04 +00:00
Richard Frith-MacDonald
28de617ef6 Check for file modification during copy
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@40137 72102866-910b-0410-8b05-ffd578937521
2016-10-08 07:02:06 +00:00