Commit graph

2745 commits

Author SHA1 Message Date
rfm
67af9faecb fix missing space 2024-10-29 16:10:46 +00:00
Hugo Melder
6eef1c3289
NSKeyValueCoding: Safe-Caching for -[NSObject valueForKey:] (#445)
* KVC Caching Implementation

* Do not ignore struct name when comparing type encoding as NSPoint and NSSize have the same layout

* Use fast-path when using Objective-C 2

* Guard old ValueForKey function when using the fast-path

* Add basic NSKeyValueCoding tests

* Update Copyright Years

* NSKeyValueCoding+Caching: Add Versioning to IVar Slot

* safe_caching: Remove Guards

* Add type encoding helper header

* Rename geometry structs (NSRect, NSPoint, NSSize) for toll-free bridging with CoreGraphics

* Move CG struct definitions to CFCGTypes.h

* Update known struct encoding prefixes

* Windows 64-bit is LLP64 and not LP64

* Re-order to avoid complier warning

---------

Co-authored-by: rfm <richardfrithmacdonald@gmail.com>
2024-10-29 14:12:34 +01:00
rfm
68964f188e
Merge pull request #443 from buzzdeee/NSURLError_constants
Add some missing NSURLErrorDomain constants, as described here:
2024-10-13 11:15:05 +01:00
Riccardo Mottola
1c5f581a46 encode angular brackets to fix gsdoc error 2024-09-24 11:39:47 +02:00
Sebastian Reitenbach
8b64cf4a53
Add typedef NSKeyValueChangeKey to NSKeyValueObserving.h (#444) 2024-09-23 14:33:50 +02:00
Hugo Melder
5cd19978d5
NSString: Cache ICU collator in thread-local storage (#450)
* Add ICU collator caching

* Update ChangeLog
2024-09-23 14:32:36 +02:00
Hugo Melder
012947f09e
NSOperationQueue: Proper names for worker threads (#437)
* NSOperationQueue: Give Worker Threads a name

* Update Changelog

* Remove empty string test
2024-09-08 16:54:01 +02:00
Sebastian Reitenbach
7f7371acc8 Add some missing NSURLErrorDomain constants, as described here:
https://web.archive.org/web/20131113010445/https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/Reference/reference.html
2024-08-29 22:48:05 +02:00
rfm
ed4e305026
NSURLSession rewrite (#422)
* clang-format: Do not use tabs

* Ignore clangd cache and compile_commands

* NSBlockOperation: Fix memory leak

* NSHTTPCookie: Fix expires date parsing

* NSHTTPCookie: Release DateFormatter after use

* NSOperation: Remove all objects at end of execution

* Reimplementation of NSURLSession

* NSURLSession: Update expiration dates in test

* Update ChangeLog

* Fix trivial compiler warning caused by missing import

* Import GSDispatch.h for definition of DISPATCH_QUEUE_SERIAL

* Import common.h early to avoid header conflict

* Fix import order to avoid conflicts and ensure we have correct localisation macro

* Check for presence of dispatch_cancel

* Cancel timer using dispatch_source_cancel() if dispatch_cancel() is missing.

* NSURLSession: Replace dispatch_io with dispatch_source in unit test HTTP server

---------

Co-authored-by: hmelder <service@hugomelder.com>
2024-08-16 14:08:41 +02:00
Gregory John Casamento
f7d74e2020 Quick fix: Correct documentation for NSUbiquitousKeyValueStore class 2024-08-14 18:04:35 -04:00
Hugo Melder
81b3c721bc
NSUserDefaults: Retrieve native UI languages from Windows and Android System APIs (#426)
* Create NSString Win32Additions Category

* NSUserDefaults: Fetch Windows UI language information

* NSUserDefaults: Add winnls include

* Android Native UI Language

* NSUserDefaults: Replace incorrect separator on Windows

* NSProcessInfo: BCP-47 Note

* GSConfig: Bump MinGW WINVER to Vista

* NSString+Win32Additions: Do not add array to arp twice

* NSUserDefaults: Increase default length
2024-08-07 16:26:16 +02:00
rfm
4c687e6dee Avoid confusing autogsdoc 2024-08-06 19:41:18 +01:00
rfm
28a6e6ebbd Final batch of GC cleanups (for the forseeable future). 2024-07-25 17:11:34 +01:00
rfm
b49af95359 Hide internals of _NSZone struct for consistency with OSX 2024-07-23 13:06:24 +01:00
rfm
52c127c950 GC was deprecated several releases ago and notinally removed a couple of releases ago ... delete more remnants of the old code. 2024-07-22 15:14:13 +01:00
rfm
c46d447100 Deprecate/remove old GC options 2024-07-21 09:16:09 +01:00
rfm
fcc06a3d9f update documentation for osx compatibility changes 2024-07-17 21:19:31 +01:00
rfm
a2b9be6287 update config for recent autoconf 2024-07-16 14:20:38 +01:00
rfm
4629a4e1f6 Tweaks related to issue #311 2024-07-15 17:19:16 +01:00
rfm
3fedf31c2d
Revert "NSURLSession Reimplementation (#411)"
This reverts commit 07233534e6.
2024-07-02 19:19:14 +01:00
Hugo Melder
07233534e6
NSURLSession Reimplementation (#411)
* clang-format: Do not use tabs

* Ignore clangd cache and compile_commands

* NSBlockOperation: Fix memory leak

* NSHTTPCookie: Fix expires date parsing

* NSOperation: Remove all objects at end of execution

* Reimplementation of NSURLSession

* Update ChangeLog
2024-07-02 15:58:48 +02:00
rfm
4d0b00776c Memory leak improvments 2024-06-18 11:23:15 +01:00
rfm
92247d13c9
Merge pull request #419 from 2xsaiko/outgoing/nsfmurls
Implement -[NSFileManager URLsForDirectory:inDomains:]
2024-06-12 11:00:49 +01:00
Gregory Casamento
ced4cd0531
Merge pull request #410 from gnustep/NSExpression_branch 2024-06-11 11:46:56 -04:00
Marco Rebhan
952e076084
Implement -[NSFileManager URLsForDirectory:inDomains:] 2024-06-11 17:14:36 +02:00
Hugo Melder
4d3926d250
Implement -[NSString enumerateLinesUsingBlock:] (#407)
* Implement -[NSString enumerateLinesUsingBlock:]

* Fix formatting

* Use GNUstep CALL_BLOCK macro
2024-06-04 22:19:45 +02:00
rfm
58ae7db59a fixup headers for deletion of obsolete lock code 2024-05-30 11:06:23 +01:00
rfm
241e2a47ca locking updates (fine grained locking rather than global lock) 2024-05-30 10:40:52 +01:00
Gregory John Casamento
25ebe42c22 Merge branch 'master' of github.com:gnustep/libs-base into NSExpression_branch 2024-05-30 01:10:52 -04:00
rfm
430629b097 Note deprecation of old locking stuff 2024-05-27 07:57:03 +01:00
Gregory John Casamento
a49ae59a79 Add description method and a few minor changes 2024-05-26 16:16:40 -04:00
Gregory John Casamento
0a440a5303 Add missing NSMinusSetExpression 2024-05-26 09:11:21 -04:00
Gregory John Casamento
dc9ff1ff6f Add declarations and skeletons for new subclasses 2024-05-26 08:39:44 -04:00
Gregory John Casamento
392a626444 Add missing enum values, add skeleton implementations for metods, add simple tests 2024-05-25 00:39:34 -04:00
Gregory John Casamento
f6eb49bdf7 Add skeleton for 10.5 methods 2024-05-24 16:55:16 -04:00
Gregory John Casamento
5eea30b530 Add 10.6 NSExpression methods 2024-05-24 14:28:04 -04:00
Frederik Seiffert
94a6cb9919 Fix Unicode includes in NSString.m
Fixes compilation using ICU bundled with Windows.
2024-05-15 17:09:00 +02:00
rfm
35bb9f48ef regular expression range search 2024-05-12 10:03:15 +01:00
rfm
1fdf6395bd
Merge pull request #370 from ethanc8/ethanc8-3
Implement +[NSRegularExpression escapedPatternForString:] and -[NSString enumerateSubstringsInRange:options:usingBlock]
2024-05-12 09:32:34 +01:00
rfm
00a95fef78 trivial coding style fixups 2024-05-09 12:20:45 +01:00
hmelder
6155329b64 NSIndexSet: Implement enumerateRangesInRange convenience methods 2024-05-08 16:06:44 +02:00
williameveretteggplant
21a48f6136
NotificationCenter removeObserver (#396)
This modifies the NotificationCenter class to do the following:

- add an ivar to the class for an array to hold observers that need to be released when they are removed
- adds an observer to that array if the observer is of class GSNotificationObserver
- upon removing an observer, check if it is in that array, if so remove it from the array and release it.

This replaces the previous implementation which checked the class of the observer as it was being removed, which would cause a crash if the observer had been deallocated.
2024-04-30 18:44:26 +02:00
hmelder
53b02bab91 Generate configure and config.h.in 2024-04-28 23:22:20 +02:00
rfm
4f24e0e35d
Merge pull request #389 from qmfrederik/rocky-check
Use AC_SEARCH_LIBS instead of AC_CHECK_LIB for sframe
2024-04-28 10:31:38 +01:00
Gregory John Casamento
ec8e784f82 Quick Fix: Add macro for macOS14, Sonoma 2024-04-21 11:56:17 -04:00
Frederik Carlier
e0af8f8035
Use AC_SEARCH_LIBS instead of AC_CHECK_LIB for sframe
Make it optional, this library is not available on Enterprise linux
2024-04-20 20:07:56 +00:00
rfm
b9ae7bf03c
Merge pull request #332 from qmfrederik/fixes/blocks-header-detection
Use `__has_include` to choose between <Block.h> and <objc/blocks_runtime.h>
2024-04-14 11:46:12 +01:00
hmelder
ca1d07dcf2 Implement +[NSDate now] 2024-03-11 11:48:28 +01:00
rfm
ec914793c3 fix for #302 2024-02-11 19:50:06 +00:00
Frederik Seiffert
6d1fe8fadf Initialize Android process with current locale and system time zone 2024-02-11 09:04:04 +01:00
Frederik Carlier
c1d982a854 MinGW: Add dllimport/dllexport attributes when compiling with clang
The GCC compiler will automatically export all symbols on MinGW, but this is not the case for clang.  Add the `__declspec` attributes when compiling with clang on MinGW.
2024-01-19 14:20:45 +01:00
ethanc8
b8239f604f Implement -[NSString enumerateSubstringsInRange:options:usingBlock] 2023-12-31 22:41:45 -06:00
ethanc8
7862434d85 Implement +[NSRegularExpression escapedPatternForString:] 2023-12-29 22:43:35 -06:00
Riccardo Mottola
08858caf29 cleanup biolerplate comments, enable autogsdoc comments, cleanup some old RCS/CVS tags, fix emails 2023-12-23 02:44:50 +01:00
rfm
07fed93200 Improvements for github issue 352 2023-11-23 16:39:58 +00:00
rfm
5917e32dbb Add macro to mark unimplemented functions and methods 2023-11-21 08:54:39 +00:00
Frederik Seiffert
fd7f11a134 Support deleting NSMutableURLRequest headers by calling setValue:forHTTPHeaderField: with nil value. 2023-11-14 23:04:42 +01:00
rfm
b4feee311f Fix for #334 2023-11-14 21:20:50 +00:00
rfm
58397df4bc Merge branch 'autogsdoc-improvements'
Adds ObjC2 support and various bugfixes
2023-11-14 20:00:36 +00:00
rfm
ae9892db11 Use closefrom() if available 2023-11-14 11:34:55 +00:00
Riccardo Mottola
96ed084569 header cleanup for documentation: copyrights, texinfo comments, etc 2023-11-13 22:38:16 +01:00
rfm
086ea5d04e Changes to avoid autogsdoc warnings 2023-11-13 20:16:46 +00:00
rfm
c9b878ba54 Fixup macro to be on one line (for autogsdoc) 2023-11-13 20:04:25 +00:00
hmelder
a66d25598e NSObject: Change return type of setVersion: from id to void 2023-11-13 20:01:11 +01:00
rfm
40ebe6df30 Minore documentation cross reference fixes 2023-10-30 19:55:45 +00:00
rfm
e027ff8585 Minor documentation tweaks 2023-10-30 16:56:05 +00:00
rfm
44dc5cef3d Documentation error tweaks 2023-10-30 16:09:10 +00:00
rfm
e58f37337c Fix empty preprocessor directive 2023-10-30 13:56:21 +00:00
rfm
112c60b48b Tweaks to make preprocessor documentation more reliable 2023-10-30 12:27:25 +00:00
rfm
384a0de0ba Fix minor documentation errors 2023-10-28 15:38:22 +01:00
rfm
a881fc25f3 Merge branch 'autogsdoc-improvements' of ssh://github.com/gnustep/libs-base into autogsdoc-improvements 2023-10-23 20:57:53 +01:00
rfm
4c4397bdcd fix bad comment markup 2023-10-23 20:49:19 +01:00
Riccardo Mottola
02262e9ac0 some cleanup for autogsdoc 2023-10-23 21:41:59 +02:00
Frederik Carlier
1f2eba393c Use __has_include to choose between <Block.h> and <objc/blocks_runtime.h>
Most Linux distributions and MSYS2 include a version of BlocksRuntime which includes the `Block.h` header.
2023-10-08 20:19:25 +02:00
Gregory Casamento
e58b83c1f3
Merge pull request #330 from gnustep/NSKeyValueObserving_issue327 2023-10-08 05:49:59 -04:00
Gregory John Casamento
f2e31e0b54 Move implementation of new method to correct category 2023-10-07 20:51:47 -04:00
Gregory John Casamento
edc15778d2 Add removeObserver:fromObjectsAtIndexes:forKeyPath:context: method 2023-10-07 20:51:47 -04:00
Frederik Carlier
673a6880ee Win64: Remove workaround for setjmp/longjmp misbehaving
Using `__builtin_setjmp` when compiling with Clang on MSYS2 will result in compiler warnings and runtime crashes.
Additionally, all tests seem to pass on recent versions of MSYS2 without this workaround in place.

Compiler warning on Clang:

warning: incompatible pointer types passing 'jmp_buf' (aka 'struct _SETJMP_FLOAT128[16]') to parameter of type 'void **' [-Wincompatible-pointer-types]
                NS_DURING
                ^~~~~~~~~
note: expanded from macro 'NS_DURING'
                    if (!setjmp(NSLocalHandler.jumpState)) {
                                ^~~~~~~~~~~~~~~~~~~~~~~~
note: expanded from macro 'setjmp'
                                         ^
1 warning generated.
2023-10-07 17:35:54 +02:00
Richard Frith-Macdonald
24653e63c3 Ensure sockaddr_any is future proof for new socket addresse sizes on
platforms where sockaddr_storage is provided
2023-09-24 12:26:59 +01:00
Riccardo Mottola
5773700b93 some date cleanup for updated doc generation 2023-09-21 01:27:10 +02:00
Gregory Casamento
0f3bb3d2b8 Use keysight implementation of the method removeObjserver:forKeyPath:context: 2023-09-15 14:13:44 -04:00
Gregory John Casamento
2c81d3e003 Add removeObserver:forKeyPath:context: to implementation 2023-09-13 12:49:01 -04:00
Richard Frith-Macdonald
c1833e1130 Github issue #312 ... add thread safety for Apple compatibility 2023-08-18 11:21:24 +01:00
Frederik Seiffert
668d6c4977 Change NSNumberFormatter minimum/maximum properties from NSDecimalNumber to NSNumber to match Apple platforms 2023-08-10 12:20:06 +02:00
Frederik Seiffert
f0e33a48d5 Fix NSFileManager thread safety 2023-07-26 11:56:04 +02:00
Gregory John Casamento
7a76635360 Revert "Add method declarations to NSUserActivity"
This reverts commit 32cda86b09.

Accidentally committed to master.
2023-05-23 19:56:05 -04:00
Gregory John Casamento
32cda86b09 Add method declarations to NSUserActivity 2023-05-23 19:54:45 -04:00
Gregory John Casamento
6fbaa7ca33 Update macOS version to 10.10 as per documentation. Minor update 2023-05-23 15:16:56 -04:00
Frederik Seiffert
f3555406af Add stub methods for secure unarchiving 2023-05-10 06:59:40 +02:00
Frederik Seiffert
b1e43eb5dd Add OSX version defines for 10.15 - 13 and fix 10.10 - 10.14 to match Apple platforms 2023-05-10 06:59:40 +02:00
Frederik Seiffert
82d9917c2c NSURLSession: implement missing body data for data completion handlers
Now using the previously unused "in-memory" body data drain if a task has a completion handler, which requires the full body to be passed on completion.

Also consolidated private NSURLSessionTask methods, some of which were previously implemented twice in separate categories with the same name, leading to possible undefined runtime behavior.
2023-03-11 20:22:00 +01:00
Frederik Seiffert
2f5b26df06 Add missing NSURLSession APIs 2023-03-11 20:22:00 +01:00
Doug Simons
bf586eca1b implement setAttributes:ofItemAtPath:error: method
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/branches/gnustep_testplant_branch@40428 72102866-910b-0410-8b05-ffd578937521
2022-12-09 15:58:39 +01:00
Richard Frith-Macdonald
d5d8a71c79 Allow certificate based rejection of DO connection attempts. 2022-11-21 10:40:33 +00:00
rfm
a9901204e2
Merge pull request #269 from gnustep/libcurl-autoconf
Rewrite autoconf libcurl detection
2022-11-21 10:30:41 +00:00
Richard Frith-Macdonald
78642305c6 Fix for occasional hang 2022-11-07 10:03:16 +00:00
Richard Frith-Macdonald
b1da997d25 Revert "tweaks to build on osx" ... made in wrong branch
This reverts commit 73a6e17dc1.
2022-08-25 09:54:07 +01:00
Richard Frith-Macdonald
79d3d7b498 fix error editing constant name 2022-08-25 09:49:24 +01:00
Richard Frith-Macdonald
86461e2c95 tweaks to build on OSX 2022-08-25 09:45:34 +01:00
Richard Frith-Macdonald
73a6e17dc1 tweaks to build on osx 2022-08-25 09:22:48 +01:00