Merge branch 'master' into NSUserActivity_branch

This commit is contained in:
Gregory Casamento 2024-07-06 14:17:38 -04:00 committed by GitHub
commit 94a52550f3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
347 changed files with 9414 additions and 4839 deletions

View file

@ -14,7 +14,7 @@ install_gnustep_make() {
if [ -n "$RUNTIME_VERSION" ]; then
MAKE_OPTS="$MAKE_OPTS --with-runtime-abi=$RUNTIME_VERSION"
fi
./configure --prefix=$INSTALL_PATH --with-library-combo=$LIBRARY_COMBO $MAKE_OPTS || cat config.log
./configure --prefix=$INSTALL_PATH --with-library-combo=$LIBRARY_COMBO --with-libdir=$LIBDIR $MAKE_OPTS || cat config.log
make install
echo Objective-C build flags:
@ -49,14 +49,15 @@ install_libdispatch() {
mkdir libdispatch/build
cd libdispatch/build
# -Wno-error=void-pointer-to-int-cast to work around build error in queue.c due to -Werror
# -Wno-error=unused-but-set-variable to work around build error in shims/yield.c due to -Werror
cmake \
-DBUILD_TESTING=off \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PATH \
-DCMAKE_C_FLAGS="-Wno-error=void-pointer-to-int-cast" \
-DCMAKE_C_FLAGS="-Wno-error=void-pointer-to-int-cast -Wno-error=unused-but-set-variable" \
-DINSTALL_PRIVATE_HEADERS=1 \
-DBlocksRuntime_INCLUDE_DIR=$INSTALL_PATH/include \
-DBlocksRuntime_LIBRARIES=$INSTALL_PATH/lib/libobjc.so \
-DBlocksRuntime_LIBRARIES=$INSTALL_PATH/$LIBDIR/libobjc.so \
../
make install
echo "::endgroup::"
@ -64,8 +65,9 @@ install_libdispatch() {
mkdir -p $DEPS_PATH
# Windows MSVC toolchain uses tools-windows-msvc scripts to install non-GNUstep dependencies
if [ "$LIBRARY_COMBO" = "ng-gnu-gnu" -a "$IS_WINDOWS_MSVC" != "true" ]; then
# Windows MSVC toolchain uses tools-windows-msvc scripts to install non-GNUstep dependencies;
# the MSYS2 toolchain uses Pacman to install non-GNUstep dependencies.
if [ "$LIBRARY_COMBO" = "ng-gnu-gnu" -a "$IS_WINDOWS_MSVC" != "true" -a "$IS_WINDOWS_MINGW" != "true" ]; then
install_libobjc2
install_libdispatch
fi

View file

@ -23,6 +23,9 @@ on:
env:
APT_PACKAGES: >-
git
cmake
clang
pkg-config
libgnutls28-dev
libffi-dev
@ -45,6 +48,23 @@ env:
APT_PACKAGES_clang: >-
libpthread-workqueue-dev
RPM_PACKAGES: >-
which
gzip
git
cmake
clang
lld
pkg-config
gnutls-devel
gnutls-utils
libcurl-devel
libffi-devel
libicu-devel
libxml2-devel
libxslt-devel
glibc-gconv-extra
# GNUstep Windows MSVC toolchain release tag to be used (keep up to date with latest release):
# https://github.com/gnustep/tools-windows-msvc/releases
TOOLS_WINDOWS_MSVC_RELEASE_TAG: release-20230104
@ -53,6 +73,7 @@ jobs:
########### Linux ###########
linux:
name: ${{ matrix.name }}
container: ${{ matrix.container }}
runs-on: ubuntu-latest
# don't run pull requests from local branches twice
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository
@ -62,21 +83,27 @@ jobs:
matrix:
include:
- name: Ubuntu x64 GCC
container: ubuntu:22.04
library-combo: gnu-gnu-gnu
CC: gcc
CXX: g++
- name: Ubuntu x64 Clang gnustep-1.9
library-combo: ng-gnu-gnu
runtime-version: gnustep-1.9
CC: clang
CXX: clang++
libdir: lib
- name: Ubuntu x64 Clang gnustep-2.0
container: ubuntu:22.04
library-combo: ng-gnu-gnu
runtime-version: gnustep-2.0
CC: clang
CXX: clang++
libdir: lib
- name: Rocky Linux x64 Clang gnustep-2.0
container: rockylinux:9
library-combo: ng-gnu-gnu
runtime-version: gnustep-2.0
CC: clang
CXX: clang++
libdir: lib64
env:
SRC_PATH: ${{ github.workspace }}/source
@ -86,6 +113,7 @@ jobs:
CXX: ${{ matrix.CXX }}
LIBRARY_COMBO: ${{ matrix.library-combo }}
RUNTIME_VERSION: ${{ matrix.runtime-version }}
LIBDIR: ${{ matrix.libdir }}
defaults:
run:
@ -96,15 +124,26 @@ jobs:
with:
path: ${{ env.SRC_PATH }}
- name: Install packages
- name: Install apt packages
run: |
sudo apt-get -q -y update
sudo apt-get -q -y install $APT_PACKAGES $APT_PACKAGES_${{ matrix.library-combo == 'ng-gnu-gnu' && 'clang' || 'gcc' }}
apt-get -q -y update
apt-get -q -y install $APT_PACKAGES $APT_PACKAGES_${{ matrix.library-combo == 'ng-gnu-gnu' && 'clang' || 'gcc' }}
# gnustep-2.0 runtime requires ld.gold or lld
if [ "$RUNTIME_VERSION" = "gnustep-2.0" ]; then
sudo update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.gold" 10
update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.gold" 10
fi
if: ${{ startsWith(matrix.container, 'ubuntu') }}
- name: Install rpm packages
run: |
yum install -y $RPM_PACKAGES
# gnustep-2.0 runtime requires ld.gold or lld
if [ "$RUNTIME_VERSION" = "gnustep-2.0" ]; then
update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/lld" 10
fi
if: ${{ startsWith(matrix.container, 'rockylinux') }}
- name: Install dependencies
env:
@ -115,7 +154,7 @@ jobs:
run: |
. $INSTALL_PATH/share/GNUstep/Makefiles/GNUstep.sh
./configure
make && make install
make -j$(nproc) && make install
- name: Run tests
run: |
@ -123,14 +162,13 @@ jobs:
make check
- name: Upload logs
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: always()
with:
name: Logs - ${{ matrix.name }}
path: |
${{ env.SRC_PATH }}/config.log
${{ env.SRC_PATH }}/Tests/tests.log
source/config.log
source/Tests/tests.log
########### Windows ###########
windows:
@ -158,6 +196,15 @@ jobs:
CC: gcc
CXX: g++
- name: Windows x64 MinGW Clang gnustep-2.0
arch: x86_64
msystem: MINGW64
library-combo: ng-gnu-gnu
runtime-version: gnustep-2.0
CC: clang
CXX: clang
LDFLAGS: -fuse-ld=lld -lstdc++ -lgcc_s
- name: Windows x86 MSVC Clang gnustep-2.0
allow-test-failures: true
arch: x86
@ -198,6 +245,7 @@ jobs:
MSYS2_ARG_CONV_EXCL: --prefix=
# provide GitHub token to scripts to prevent rate limit errors when accessing GitHub
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
LIBDIR: lib
defaults:
run:
@ -223,7 +271,6 @@ jobs:
libffi-devel
libgnutls-devel
icu-devel
mingw-w64-${{matrix.arch}}-gcc-objc
mingw-w64-${{matrix.arch}}-pkg-config
mingw-w64-${{matrix.arch}}-libxml2
mingw-w64-${{matrix.arch}}-libxslt
@ -231,6 +278,25 @@ jobs:
mingw-w64-${{matrix.arch}}-gnutls
mingw-w64-${{matrix.arch}}-icu
- name: Set up MSYS2 (gcc)
uses: msys2/setup-msys2@v2
if: env.CC == 'gcc'
with:
msystem: ${{ matrix.msystem }}
install: >
mingw-w64-${{matrix.arch}}-gcc-objc
- name: Set up MSYS2 (clang)
uses: msys2/setup-msys2@v2
if: env.CC == 'clang'
with:
msystem: ${{ matrix.msystem }}
update: true
install: >
mingw-w64-${{matrix.arch}}-libobjc2
mingw-w64-${{matrix.arch}}-clang
mingw-w64-${{matrix.arch}}-lld
- name: Set up MSYS2 (MSVC)
uses: msys2/setup-msys2@v2
if: env.IS_WINDOWS_MSVC == 'true'
@ -319,10 +385,10 @@ jobs:
make check
- name: Upload logs
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: always()
with:
name: Logs - ${{ matrix.name }}
path: |
${{ env.SRC_PATH }}/config.log
${{ env.SRC_PATH }}/Tests/tests.log
source/config.log
source/Tests/tests.log

33
.gitignore vendored
View file

@ -8,6 +8,15 @@ dynamic-load.h
Tests/base/*/GNUmakefile
*.log
*.sum
Tools/BaseTools/dependencies
Source/gnustep-base.pc
# Unit test byproducts
*.err
*.out
# Core files
*.core
# Autoconf
autom4te.cache
@ -25,10 +34,13 @@ Tests/base/NSURL/SimpleResponse.dat
Tests/base/NSURLConnection/Helpers/TestConnection.bundle/
Tests/base/coding/long-8.type
Tests/base/coding/ulong-8.type
Tests/*.tmp
# Editor byproducts
*.orig
*.swp
\#*\#
*~
# MacOS Desktop Services Store
.DS_Store
@ -72,3 +84,24 @@ DerivedData/
**/xcshareddata/WorkspaceSettings.xcsettings
# End of https://www.gitignore.io/api/xcode
.cache
compile_commands.json
**.kdev4
# Documentation
Documentation/Base*
Documentation/General
Documentation/manual
Documentation/ReleaseNotes
Documentation/ANNOUNCE
Documentation/*.pdf
Documentation/README
Documentation/version.texi
Documentation/*.aux
Documentation/*.toc
Documentation/INSTALL
Documentation/NEWS
**/dependencies
Source/Base.gsdoc
Source/BaseAdditions.gsdoc

154
ANNOUNCE
View file

@ -1,7 +1,7 @@
1 Announcement
**************
The GNUstep Base Library, version 1.28.0, is now available.
The GNUstep Base Library, version 1.30.0, is now available.
1.1 What is the GNUstep Base Library?
=====================================
@ -18,110 +18,78 @@ portion of the OpenStep standard (the Foundation library).
There is more information available at the GNUstep homepage at
'http://www.gnustep.org'.
1.2 Noteworthy changes in version '1.28.0'
1.2 Noteworthy changes in version '1.30.0'
==========================================
Aside from an assortment of bugfixes, this release includes a lot of
improvements for Windows support as well as numerous new classes and
methods.
* Library version changed from 1.29 to 1.30
Not every bugfix, improvement or a new feature will be listed here.
* Reading and setting File Creation Date attribute on Windows.
* Added new 'ASSIGNMUTABLECOPY()' macro for consistency with
'ASSIGNCOPY()'.
* Replaced character set data headers for URLs with loading these
from a standard data source, and updated bitmap representation to
use much less space for character sets residing wholly in the base
plane, such as the URL charsets (given they are purely ASCII).
* Updated character set data with newer Unicode data set.
* '[NSURLProtocol -initWithRequest:cachedResponse:client:]' will now
retain the client up until the last message is sent to it, which
improves compatibility with OS X.
* Percent-escaping code in 'NSURL' simplified.
* Removed mixed ABI support.
* Use of Apple runtime now assumes non-fragile ABI (which is true on
modern systems).
* Improve typing on method implementation pointers in some classes.
* In 'NSHTTPCookie', rewritten code for extracting individual cookies
from the HTTP header.
* In 'NSKeyedArchiver', implement secure coding methods.
* New methods in 'NSDateComponents'.
* Improvements in 'NSCalendar' and 'NSLocale' for calendar locale and
'NSDateComponents'.
* In 'NSFileManager', use 'utimensat()' to set file modification
date, if available.
* Correctly stop parsing number being decoded in
'NSJSONSerialization' when encountering a number with an invalid
exponent.
* Improve OS X compatibility for 'NSURLQueryItem' initializers.
* For 'NSFileManager', in 'changeFileAttributes', implement setting
creation date for Unix-like systems. Implement reading the
creation date if a supported method was detected.
* Support reading Android assets from the main bundle in
'NSInputStream'.
* Support Android assets directories in 'NSBundle' and
'NSFileManager'.
* Implement '-[NSXMLParser initWithStream:]'.
* Allow clearer choice between 'sloppy' 'GSSloppyXMLParser' used in
'NSXMLParser' and the libxml2-based 'GSStrictXMLParser'.
* Fix building Win32 implementations for 'GSFileHandle' and
'NSMessagePort' with nonfragile ABI.
* Use 'NSNumber' and not 'NSString' in '-[NSUserDefaults
setBool:forKey:]'.
* Posting notification before 'NSThread' exit.
* Actually declare optional 'NSFilePresenter' methods as optional.
* In 'NSConcreteMapTable', fix replacing existing values in a weak
objects map table.
* Fix leaks in 'NSOperation'.
* Various compat fixes for various MSYS systems, particularly around
sockets code.
* In 'NSData', 'NSFileManager' and more, various improvements when
overwriting and creating files with respect to file attributes
(owners, creation timestamp, etc).
* Improve 'NSLog' output on Android.
* Use 'instancetype' in 'NSURLRequest' header.
* Define 'NSAttributedStringKey' and 'NSNotificationName'.
* Add new 'NSURL' methods.
* In 'GSMime', have '-contentFile' check the 'Content-Type' header
before checking 'Content-Disposition'.
* Fix a bug linking with WEAK symbols where binutils 2.3.5 would fail
to link due to not all expected symbols being exported.
* New 'plutil' utility.
* Implementation of '[NSData rangeOfData:options:range:]' which finds
the 'NSRange' in which the passed data occurs.
* Change 'ENTER_POOL'/'LEAVE_POOL' so they no longer wrap the
enclosed code in a loop, enabling use in some loops.
* New 10.5 methods in 'NSRunLoop'/'NSURLConnection'.
* Improve compatibility when building with ICU 68.
* Fix compiling libdispatch integration of 'NSRunLoop' on Windows.
* Add support for building on Windows with MSVC's Clang by passing
the 'configure' flag '--host=x86_64-pc-windows'. Use of an MSYS2
shell without '-devel' packages is recommended.
* Implementation of 'NSURLSession' and related classes. This adds
some dependencies on more recent versions of 'libcurl',
'libdispatch' etc.
* Fix initializing 'NSUUID' from a string.
* Disable use of 'libcurl' if its headers are not found.
* In 'NSURLProtocol', continue writing data if not all of it was
written.
* Fix use of GnuTLS under MinGW by using 'send/recv' rather than
'read/write'.
* Add support for libobjc2 runtime on Windows.
* Fix BOM insertion when generating data from a string using one of
the Unicode encodings.
* autogsdoc (and many source/header files) updated for ObjC-2 support
* gdnc gspath spelling error fixes
* GSFileHandle remove handle from run loop when -dealloc is called
* GSHTTPURLHandle close socket if we end loading with I/O in
progress.
* GSMimeDocimnet optimisations
* GSPrivateSymbolPath() portability improvements
* GSVersionMacros add GS_UNIMPLEMENTED to mark unimplemented methods
* HTMLLinker man page groff warning fixed
* Make GSTcpTune options available to streams as well as file handles
and improve debug logging for stream operations.
* NSBundle improvements in librarym bundle lookup
* NSCache thread safety fix
* NSData caching data of file URLs and OSX consistency tweak to
permissions when writing file atomically
* NSDate implements +now constructor.
* NSDecimalNumber fix possible coimparison bug for zero values
* NSError -description and -localizedDescription formats match OSX
* NSException portability improvments
* NSFileManager makeed safety fix and make enumerating a file URL
return URLs rather than paths.
* NSIndexSet implements enumerateRangesInRange convenience methods.
* NSISO8601DateFormatter.m: bugfix for date/time string generation
* NSJSONSerialization fix memory leak, fix issue with unicode
surrogate pairs.
* NSKeyValueObserving Add methods to remove observers
* NSLocale Fix -countryCode incorrectly returning language code, fix
for hyphen and underscore in locale identifier
* NSMessagePort remove restriction on Distributed Objects message
length
* NSNotificationCenter fix for memory leak, minor bugfixes (use
before initialise)
* NSNull fix for -valueForUndefinedKey: to return singleton
* NSNumberFormatter make minimum/maximum properties NSNumbers
* NSObject optimise allocation with new runtime library
* NSOperation fix occasional scheduling bug
* NSOrderedSet Fix keyed encoding to match Apple platforms.
* NSPathUtilities fix intialisation order deadlock.
* NSPredicate fix for array access keywords
* NSProcessInfo android support
* NSString correct class used when loading empty string from
file/URL, implements regular expression search methods.
* NSTask return an error if the path to launch in is bad, use _exit
to terminate forked process if needed, use closefrom() to close
descriptors in child process if possible
* NSTimer wrap call to block in exception handler (bug #289)
* NSTimeZone improvements
* NSURL Fix NSURL path on Windows for UNC paths.
* NSURLRequest: Support deleting using setValue:forHTTPHeaderField:
with nil value.
* NSURLSession many bugfixes and improvements
* NSUserDefaults fix potential deadlock
* NSXMLElement bugfix to remove previous attributes when setting
attributes.
* NSXMLNode returns NSError on failure to evaluate xpath expression.
1.3 Where can you get it? How can you compile it?
=================================================
The gnustep-base-1.28.0.tar.gz distribution file has been placed at
The gnustep-base-1.30.0.tar.gz distribution file has been placed at
<ftp://ftp.gnustep.org/pub/gnustep/core>.
It is accompanied by gnustep-base-1.28.0.tar.gz.sig, a PGP signature
It is accompanied by gnustep-base-1.30.0.tar.gz.sig, a PGP signature
which you can validate by putting both files in the same directory and
using:
gpg --verify gnustep-base-1.28.0.tar.gz.sig
gpg --verify gnustep-base-1.30.0.tar.gz.sig
Signature has been created using the key with the following
fingerprint:

579
ChangeLog
View file

@ -1,3 +1,571 @@
2024-06-21 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSDistantObject.m: Use standard method name conventions
* Tools/AGSOutput.m:
* Tools/AGSParser.m:
* Tools/autogsdoc.m:
* Tools/make_strings/make_strings.m:
* Tools/plutil.m:
Fix various memory leaks.
* Tools/NSObject.m:
* Documentation/Base.gsdoc:
Make GSLogZombie() an external function for debuggers which can't find
it as a static function. Add [NSZombie -logZombie:] method to call the
function in case there is a debugger which can set a breakpoint on the
method more easily than on the function.
2024-06-21 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Additions/Unicode.m:
* Source/GSTLS.m:
* Source/NSDictionary.m:
* Source/NSThread.m:
* Source/NSURLSession.m:
* Tools/AGSHtml.m:
* Tools/AGSOutput.m:
* Tools/AGSParser.m:
Fix dead assignments.
2024-06-21 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSHTTPURLProtocol.m:
* Source/GSTLS.m:
* Source/NSConnection.m:
* Source/NSSpellServer.m:
* Tools/AGSParser.m
Fix dead initialisations.
* Source/GSAttributedString.m:
* Source/tzdb.h:
Fix dead assignments
* Source/NSTask.m:
Use fork() becuse vfork() behavior is undefined when we make assignments
to variables or system calls before exec().
* Source/GSArray.m:
Ignore nil values in collection (should never happen) possibly caused
by retain/release errors. Old code would have crashed.
* Source/NSException.m:
Avoid compiler warning about malloced memory type compatibility.
2024-06-19 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Additions/GSInsensitiveDictionary.m:
* Source/NSKeyedUnarchiver.m:
* Source/NSXMLParser.m:
Fix rare memory management issues.
* Source/NSURL.m: Fix C-string termination issues
and a few dead assignments
* Source/NSOrderedSet.m: Fix ranged initialisation index errors
* Source/GSDictionary.m: Avoid excess copies of dictionary keys
* Source/NSPropertyList.m: Fix potential leaks
* Source/NSSortDescriptor.m: Fix potential use after dealloc
2024-06-18 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/Foundation/NSDebug.h: Remove deprecated function and add
new function to turn on tracing objects of a specific class.
* Source/NSDebug.m: Fix locking issues when recording object allocation.
Fix bug removing recoded objects. Implement tracing recorded object
allocation with stack trace (also option to veto recording of
individual objects).
* Source/GSFileHandle.m: Fix memory leak found using changes above.
2024-06-10 Marco Rebhan <me@dblsaiko.net>
* Headers/Foundation/NSFileManager.h:
* Source/NSFileManager.m:
Implement -[NSFileManager URLsForDirectory:inDomains:].
2024-06-10 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSFileHandle.m: debug log of closing a closed file handle
rather than raising exception (reported by Wolfgang).
2024-05-31 Hugo Melder <hugo@algoriddim.com>
* Source/NSPredicate.m:
* Tests/base/NSPredicate/basic.m:
Improve implementation of BETWEEN operator in NSPredicate
for data types other than NSNumber. Proper support
for constant values.
2024-05-18 Hugo Melder <hugo@algoriddim.com>
* Source/NSString.m:
* Headers/Foundation/NSString.h:
* Tests/base/NSString/enumerateLinesUsingBlock.m:
Implemented -[NSString enumerateLinesUsingBlock:].
2024-04-30 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/Foundation/NSObject.h:
* Headers/GNUstepBase/GSLock.h:
* Headers/GNUstepBase/NSLock+GNUstepBase.h:
* Source/Additions/GNUmakefile:
* Source/Additions/GSLock.m:
* Source/Additions/NSError+GNUstepBase.m:
* Source/Additions/NSLock+GNUstepBase.m:
* Source/Additions/NSObject+GNUstepBase.m:
* Source/Additions/Unicode.m:
* Source/DocMakefile:
* Source/GSLocale.m:
* Source/NSDistributedNotificationCenter.m:
* Source/NSFileManager.m:
* Source/NSHTTPCookieStorage.m:
* Source/NSKeyValueObserving.m:
* Source/NSLog.m:
* Source/NSObject.m:
* Source/NSPortNameServer.m:
* Source/NSTask.m:
* Source/NSThread.m:
* Source/NSURLCache.m:
* Source/NSURLCredentialStorage.m:
* Source/ObjectiveC2/properties.m:
Remove deprecated locking code. Use lightweight and more fine-grained
locking for simple cases protecting short regions. Retain a global
lock for more complex siutations where there is a significant chance of
deadlock.
2024-04-26 Richard Frith-Macdonald <rfm@gnu.org>
* ChangeLog: Update for new release
* ANNOUNCE:
* NEWS:
* Documentation/ReleaseNotes.gsdoc:
* Documentation/news.texi:
Update release notes for 1.30.0 release.
* Version: bump to 1.30.0
2024-04-29 Doug Simons <douglas.simons@keysight.com>
* NSXMLNode.m:
Fix execute_xpath() to return an NSError when xpath expression can't
be evaluated instead of just calling NSLog.
* NSXMLElement.m:
Fix setAttributes: and setAttributesWithDictionary: to remove previous
attributes.
2024-05-12 ethanc8R (github user)
* Headers/Foundation/NSRegularExpression.h:
* Headers/Foundation/NSString.h:
* Source/NSRegularExpression.m:
* Source/NSString.m:
* Tests/base/NSString/enumerateSubstringsInRange.m:
Added regular expression search methods.
2024-05-08 Hugo Melder <hugo@algoriddim.com>
* Source/NSIndexSet.m:
* Tests/base/NSIndexSet/enumerateRanges.m:
Implement enumerateRangesInRange convenience methods
and tests.
2024-05-07 Hugo Melder <hugo@algoriddim.com>
* Source/NSURLSession.m:
_NSURLProtocolClient did not call completion handlers
in task:didFailWithError:.
Removed extraneous runtime calls.
2024-04-28 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSPrivate.h:
* Source/NSLock.m:
* Source/NSPathUtilities.m:
Fix for bug #399 ... the problem occurred becaause gnustep_global_lock
does not exist until +initialize is called on NSObject so in the path
utilities function the -lock message as sent to nil and the -unlock
message as sent to the lock.
The change adds a new GSPrivateGlobalLock() function to reliably return
a recursive lock, and alters the NSPathUtilities code to use it instead
of gnustep_global_lock (we should probably do that elsewhere too).
2024-04-15 Frederik Seiffert <frederik@algoriddim.com>
* Source/NSObject.m: add +[NSObject _TrivialAllocInit] to enable
fast-path alloc / init methods with libobjc2 2.2.
2024-04-02 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSURLSession.m: fix for #385
2024-03-11 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSNotificationCenter.m: Ensure class pointer is initialised
before use (git issue #381).
2024-03-10 Hugo Melder <service@hugomelder.com>
* Headers/Foundation/NSDate.h:
* Source/NSDate.m:
Added the +[NSDate now] constructor, which was introduced
in macOS 10.15.
2024-03-04 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSJSONSerialization.m: Fix leak reported by Larry Campbell
git issue #377
2024-02-20 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSUserDefaults.m: Move posting of notification outside lock
protected region to avoid deadlock.
2024-02-16 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSData.m: fix for #361
2024-02-13 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSFileHandle.m:
* Source/GSNetwork.h:
* Source/GSSocketStream.m:
* Source/GSStream.m:
* Source/NSMessagePort.m:
* Source/NSSocketPort.m:
Improve handling of error responses from socket operations and tweak
behavior in windows to try to recognise end of connection more reliably.
2024-02-13 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSError.m: Make -description and -localizedDescription formats
2024-02-12 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSException.m: Prefer objc_set_unexpected() to the older
_objc_unexpected_exception for setting handler. Should cure problem
where _objc_unexpected_exception exists in library but not header.
2024-02-11 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/Foundation/NSURLProtocol.h:
* Source/GSEasyHandle.m:
* Source/GSHTTPURLProtocol.m:
* Source/GSNativeProtocol.m:
* Source/NSURLProtocol.m:
* Source/NSURLSession.m:
Add +canInitWithTask: and altered code to differentiate between
protocols which can be used with NSURLConnection and those which
can be used with NSURLSession to fix #302
2024-02-11 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSLocale.m: (+canonicalLocaleIdentifierFromString:)
Fix for #368 ... then check for presence of huphen...underscore script
identifier and delete it, as suggested by the existing comments.
Avoids the exception.
* Tests/base/NSLocale/general.m: Simple testcase
2024-02-02 Richard Frith-Macdonald <rfm@gnu.org>
Source/NSString.m: Return empty string of correct class when loading
from an empty file or URL.
Source/Additions/GSMime.m: minor optimisation usng more efficient
method to append headers to mutable data object.
2024-02-01 Frederik Seiffert <frederik@algoriddim.com>
* Source/NSProcessInfo.m:
* Headers/Foundation/NSProcessInfo.h:
Initialize Android process with current locale and system time zone.
2024-02-01 Frederik Seiffert <frederik@algoriddim.com>
* Source/NSLocale.m: Fix -countryCode incorrectly returning language
code.
2024-01-30 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSFileHandle.m:
* Source/GSPrivate.h:
* Source/GSSocketStream.m:
* Source/GSStream.m:
* Source/unix/GSRunLoopCtxt.m:
Make GSTcpTune options available to streams as well as file handles.
Improve debug logging for streasm operations.
Schedule streams in run loop on conclusion of TLS handshake (so we get
events telling us to start again after a blocked write).
2024-01-29 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSOperation.m: patch for issue #366 by Larry Campbell.
2024-01-28 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSJSONSerialization.m: Fix for issue #365 ... don't try to
create a string ending with the first half of a unicode surrogate pair.
2024-01-08 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSNotificationCenter.m: fix for memory leak should keep the
observer retained until removed.
2023-12-21 Richard Frith-Macdonald <rfm@gnu.org>
* Tools/AGSParser.m: Replace GS_GENERIC macros in method types etc
with the basic type name.
* Tools/AGSIndex.h:
* Tools/AGSIndex.m: Create index of all authors in the project
2023-12-09 Richard Frith-Macdonald <rfm@gnu.org>
* Source/objc-load.m:
* Source/GSPrivate.h:
In GSPrivateSymbolPath() check for dladdr returning argv[0] as the
file path, and map it to the path of the executable so bundle checks
for the location of the file containing the code can work consistently.
2023-12-09: Hugo Melder <contact@hugomelder.com>
* Source/NSNull.m:
Implement valueForUndefinedKey: and always return the NSNull singleton
object.
* Tests/base/KVC/nsnull.m:
Test for various KVC interactions with NSNull.
* Tests/base/NSPredicate/nsnull.m:
Test if predicate evaluation on collections with NSNull objects works.
2023-12-06 Daniel Boyd <danieljboyd@icloud.com>
* Source/NSDecimal.m:
For compare, handle the case where one or both operands are zero.
* Tests/base/NSNumber/test03.m: add tests
2023-12-05 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSMessagePort.m:
* Source/NSSocketPort.m:
Remove obsolete restriction on DO message length. Add exception handler
to invalidate port if we are unable to allocate more memory for a very
large port message.
2023-11-23 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSBundle.m:
* Source/GSPrivate.h:
* Headers/Foundation/NSBundle.m:
Make +bundleForLibrary:version: behavior match documenation.
Make +bundleForClass: call new private method to get library name
and version, warnign if version cannot be determined.
Mark +bundleForLibrary: as deprecated since we want a version.
2023-11-21 Richard Frith-Macdonald <rfm@gnu.org>
* Source/objc-load.m: Fix to get library path in standardised form to
match code for getting executable path.
2023-11-21 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/GNUstepBase/GSVersionMacros.h: Added GS_UNIMPLEMENTED to
mark methods and functions as unimplemented for compiler warnings
and documentation. github #350
2023-11-14 Frederik Seiffert <frederik@algoriddim.com>
* Source/NSURLRequest.m: Support deleting NSMutableURLRequest headers by
calling setValue:forHTTPHeaderField: with nil value.
* Headers/Foundation/NSURLRequest.h: Update method documentation.
* Tests/base/NSURLRequest/basic.m: Extended NSMutableURLRequest tests.
2023-11-14 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSFileManager.m: Fix issue #292
* Tests/base/NSFileManager/general.m: test for enumerator at URL
* Source/NSNotificationCenter.m: fix indentation/style errors
* Headers/GNUstepBase/GSBlocks.h: Add new macros for calling blocks
which return a value.
2023-11-14 Richard Frith-Macdonald <rfm@gnu.org> Riccardo Mottola <rm@gnu.org>
* Documentation/Base.gsdoc:
* Documentation/ReleaseNotes.gsdoc:
* Documentation/install.texi:
* Headers/Foundation/NSBundle.h:
* Headers/Foundation/NSCalendar.h:
* Headers/Foundation/NSDate.h:
* Headers/Foundation/NSDateFormatter.h:
* Headers/Foundation/NSExpression.h:
* Headers/Foundation/NSMetadata.h:
* Headers/Foundation/NSNetServices.h:
* Headers/Foundation/NSObject.h:
* Headers/Foundation/NSOperation.h:
* Headers/Foundation/NSRegularExpression.h:
* Headers/Foundation/NSSortDescriptor.h:
* Headers/Foundation/NSURLConnection.h:
* Headers/Foundation/NSURLDownload.h:
* Headers/Foundation/NSUserDefaults.h:
* Headers/Foundation/NSZone.h:
* Headers/GNUstepBase/GSObjCRuntime.h:
* Headers/GNUstepBase/GSVersionMacros.h:
* Headers/GNUstepBase/NSLock+GNUstepBase.h:
* Headers/GNUstepBase/NSObject+GNUstepBase.h:
* Source/Additions/GSObjCRuntime.m:
* Source/DocMakefile:
* Source/GSInvocation.h:
* Source/GSPrivate.h:
* Source/GSTLS.m:
* Source/NSAppleEventDescriptor.m:
* Source/NSAppleEventManager.m:
* Source/NSAppleScript.m:
* Source/NSCallBacks.h:
* Source/NSCountedSet.m:
* Source/NSDateComponentsFormatter.m:
* Source/NSDateInterval.m:
* Source/NSDateIntervalFormatter.m:
* Source/NSDictionary.m:
* Source/NSExtensionContext.m:
* Source/NSExtensionItem.m:
* Source/NSFileVersion.m:
* Source/NSHFSFileTypes.m:
* Source/NSItemProvider.m:
* Source/NSItemProviderReadingWriting.m:
* Source/NSLinguisticTagger.m:
* Source/NSMetadata.m:
* Source/NSMetadataAttributes.m:
* Source/NSNotificationCenter.m:
* Source/NSObjectScripting.m:
* Source/NSPathUtilities.m:
* Source/NSProgress.m:
* Source/NSRunLoop.m:
* Source/NSScriptClassDescription.m:
* Source/NSScriptCoercionHandler.m:
* Source/NSScriptCommand.m:
* Source/NSScriptCommandDescription.m:
* Source/NSScriptExecutionContext.m:
* Source/NSScriptKeyValueCoding.m:
* Source/NSScriptObjectSpecifiers.m:
* Source/NSScriptStandardSuiteCommands.m:
* Source/NSScriptSuiteRegistry.m:
* Source/NSUserActivity.m:
* Source/NSUserScriptTask.m:
* Source/NSXMLDocument.m:
* Source/NSXMLNode.m:
* Source/objc-load.h:
* Tools/AGSHtml.h:
* Tools/AGSHtml.m:
* Tools/AGSIndex.h:
* Tools/AGSIndex.m:
* Tools/AGSOutput.m:
* Tools/AGSPme.arser.h:
* Tools/AGSParser.m:
* Tools/DocMakefile:
* Tools/autogsdoc.m:
* Tools/gsdoc-1_0_4.dtd:
Autogsdoc changes to avoide parser being confused by ObjectiveC-2
features. Automatic generation for the setter/getter methods of
properties. Various fixes and cleanups in documentation generation.
Many tweaks to correct documentation errors in comments etc.
2023-11-14 Richard Frith-Macdonald <rfm@gnu.org>
* configure.ac: Add check for closefrom()
* configure: regenerate
* Headers/GNUstepBase/config.h.in: regenerate
* Source/NSTask.m: Use closefrom() to close descriptors in child
process if it is available.
2023-10-26 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSISO8601DateFormatter.m:
* Tests/base/NSDateFormatter/NSISO8601DateFormatter.m:
Add a couple of testcases, tidy up source code formatting, and make
fix for github issue #339 as suggested by kevinpeizner
2023-10-10 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSPrivate.h: New method to set up system error information.
* Source/Additions/NSError+GNUstepBase.m: Implement method.
* Source/NSTask.m(launchAndReturnError:): Return an error if the
path to launch in does not exist, is not a directory or is not
accessible.
2023-10-09 Wolfgang Lux <wolfgang.lux@gmail.com>
* Source/NSTask.m(launchAndReturnError:): Use _exit instead of
exit to terminate the vfork'ed process. This avoids running the
atexit handlers, which could have visible side effects in the
parent process.
2023-10-08 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSPredicate.m: fixup for array access keywords
* Tests/base/NSPredicate/basic.m: add simple testcases for array
2023-10-07 Gregory John Casamento <greg.casamento@gmail.com>
* Headers/Foundation/NSKeyValueObserving.h
* Source/NSKeyValueObserving.m: Add nethods
removeObserver:forKeyPath:context: and
removeObserver:forObjectsAtIndexes:forKeyPath:context:
* Tests/base/KVC/mutable.m: Add tests for the above
methods.
2023-08-18 Richard Frith-Macdonald <rfm@gnu.org>
* Headers/Foundation/NSCache.h: Add _lock ivar
* Source/NSCache.m: Protect cache operations with a lock for
thread safety.
2023-08-10 Frederik Seiffert <frederik@algoriddim.com>
* Headers/Foundation/NSNumberFormatter.h:
* Source/NSNumberFormatter.m:
Change NSNumberFormatter minimum/maximum properties from
NSDecimalNumber to NSNumber to match Apple platforms.
2023-07-30 Yavor Doganov <yavor@gnu.org>
* Tools/HTMLLinker.1: Fix a groff warning.
2023-07-30 Yavor Doganov <yavor@gnu.org>
* Tools/gdnc.m ([GDNCServer init]):
* Tools/gspath.1: Fix spelling errors.
2023-07-26 Frederik Seiffert <frederik@algoriddim.com>
* Source/NSData.m:
Fix NSData initWithContentsOfURL: caching data of file URLs.
2023-07-26 Frederik Seiffert <frederik@algoriddim.com>
* Source/NSURL.m:
* Tests/base/NSURL/basic.m:
Fix NSURL path on Windows for UNC paths.
2023-07-25 Frederik Seiffert <frederik@algoriddim.com>
* Headers/Foundation/NSFileManager.h:
* Source/NSFileManager.m:
Fixed NSFileManager thread safety.
2023-07-17 Yavor Doganov <yavor@gnu.org>
* Tests/base/NSTimeZone/localtime.m (testTZDB): Skip tests relying
on 64bit time_t on all 32bit architectures.
* Source/NSTimeZone.m: Move #include "tzdb.h" a bit earlier so
that the POSIX_TZONES preprocessor conditional is correct.
([GSTimeZoneDetail
initWithTimeZone:withAbbrev:withOffset:withDST:]): Retain abbrev.
([GSTimeZoneDetail dealloc]): Release abbrev.
([NSTimeZone timeZoneArray]): Skip files *.zi, *.list and
leapseconds which are not zone files.
2023-06-10 Riccardo Mottola <rm@gnu.org>
* Tests/base/NSURL/Helpers/Launch.h:
Declare method in interface to provide accurate signature fixing
bug on sparc 64
2023-06-26 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSHTTPURLHandle.m: close socket if we end loading with an
I/O operation in progress.
2023-06-15 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSFileHandle.m: Fix to reliably remove handle from run loop
when -dealloc is called without the handle having been closed first.
2023-05-08 Richard Frith-Macdonald <rfm@gnu.org>
* Tools/AGSParser.m: Add support for OSX version numbers up to 15
@ -1181,9 +1749,12 @@
* configure:
* configure.ac:
Added support for building on Windows with Clang MSVC target and
libobjc2. This requires using a standard (non-MinGW) Clang build that
e.g. comes with Visual Studio or is available as pre-built binary from
the LLVM website, and requires passing a host to configure like
libobjc2. This requires using
a
standard(non - MinGW) Clang build that e.g.comes with Visual Studio
or is available as pre - built binary from the LLVM website,
and
requires passing a host to configure like
--host=x86_64-pc-windows.
The build is best done in an MSYS2 shell that does not have any
additional *-devel packages installed that might get picked up by
@ -1566,7 +2137,7 @@
2020-11-22 Richard Frith-Macdonald <rfm@gnu.org>
* Source/Additions/NSMutableString+GNUstepBase.m:
Report YES for GSImmutableString being a proxy
Report YES for GSImmutableString being a proxy
2020-11-21 Richard Frith-Macdonald <rfm@gnu.org>

View file

@ -8,13 +8,7 @@ notice and this notice are preserved.
<gsdoc base="Base">
<head>
<title>GNUstep Base</title>
<author name="Richard Frith-Macdonald">
<email address="rfm@gnu.org"/>
<url url="http://www.gnustep.org/developers/whoiswho.html"/>
</author>
<version>$Revision$</version>
<date>$Date$</date>
<copy>2005 Free Software Foundation, Inc.</copy>
<copy>1993-2023 Free Software Foundation, Inc.</copy>
</head>
<body>
<chapter>
@ -515,11 +509,13 @@ notice and this notice are preserved.
<p>
If this is set to YES, then deallocation of an object causes
the object to be morphed into a Zombie ... a special object
which will call the GNUstep specific GSLogZombie() function
to log the method call.<br />
of class NSZombie whose -logZombie: method will call the
GNUstep specific GSLogZombie() function to log the method
call.<br />
If GNUstep-base was built for debugging (make debug=yes),
you can set a breakpoint in this function and examine the
process memory when you are running under a debugger.<br />
you can set a breakpoint in this method or function and
examine the process memory when you are running under a
debugger.<br />
As this overrides actual object deallocation, all memory
allocated for objects will be leaked unless the
NSDeallocateZombies environment variable is also set.<br />

View file

@ -100,7 +100,7 @@ ReleaseNotes.gsdoc
ReleaseNotes_AGSDOC_FLAGS = -DTDs ../Tools
# Use local version of autogsdoc in case it is not installed
LD_LIBRARY_PATH := $(dir $(CURDIR))/Source/$(GNUSTEP_OBJ_DIR_NAME):$(LD_LIBRARY_PATH)
LD_LIBRARY_PATH := $(dir $(CURDIR))/../Source/$(GNUSTEP_OBJ_DIR_NAME):$(LD_LIBRARY_PATH)
AUTOGSDOC=../Tools/$(GNUSTEP_OBJ_DIR_NAME)/autogsdoc
BASE_MAKE_LOADED=yes

View file

@ -16,9 +16,7 @@ notice and this notice are preserved.
<email address="rfm@gnu.org"/>
<url url="http://www.gnustep.org/developers/whoiswho.html"/>
</author>
<version>$Revision$</version>
<date>$Date$</date>
<copy>2005-2022 Free Software Foundation, Inc.</copy>
<copy>2005-2023 Free Software Foundation, Inc.</copy>
</head>
<body>
<chapter>
@ -29,6 +27,56 @@ notice and this notice are preserved.
migrate to using a newer version of the library.
</p>
<section>
<heading>Version 1.30.0</heading>
<p>
</p>
autogsdoc (and many source/header files) updated for ObjC-2 support<br>
gdnc gspath spelling error fixes<br>
GSFileHandle remove handle from run loop when -dealloc is called<br>
GSHTTPURLHandle close socket if we end loading with I/O in progress.<br>
GSMimeDocimnet optimisations<br>
GSPrivateSymbolPath() portability improvements<br>
GSVersionMacros add GS_UNIMPLEMENTED to mark unimplemented methods<br>
HTMLLinker man page groff warning fixed<br>
Make GSTcpTune options available to streams as well as file handles and improve debug logging for stream operations.<br>
NSBundle improvements in librarym bundle lookup<br>
NSCache thread safety fix<br>
NSData caching data of file URLs and OSX consistency tweak to permissions when writing file atomically<br>
NSDate implements +now constructor.<br>
NSDecimalNumber fix possible coimparison bug for zero values<br>
NSError -description and -localizedDescription formats match OSX<br>
NSException portability improvments<br>
NSFileManager makeed safety fix and make enumerating a file URL return URLs rather than paths.<br>
NSIndexSet implements enumerateRangesInRange convenience methods.<br>
NSISO8601DateFormatter.m: bugfix for date/time string generation<br>
NSJSONSerialization fix memory leak, fix issue with unicode surrogate pairs.<br>
NSKeyValueObserving Add methods to remove observers<br>
NSLocale Fix -countryCode incorrectly returning language code, fix for hyphen and underscore in locale identifier<br>
NSMessagePort remove restriction on Distributed Objects message length<br>
NSNotificationCenter fix for memory leak, minor bugfixes (use before initialise)<br>
NSNull fix for -valueForUndefinedKey: to return singleton<br>
NSNumberFormatter make minimum/maximum properties NSNumbers<br>
NSObject optimise allocation with new runtime library<br>
NSOperation fix occasional scheduling bug<br>
NSOrderedSet Fix keyed encoding to match Apple platforms.<br>
NSPathUtilities fix intialisation order deadlock.<br>
NSPredicate fix for array access keywords<br>
NSProcessInfo android support<br>
NSString correct class used when loading empty string from file/URL, implements regular expression search methods.<br>
NSTask return an error if the path to launch in is bad, use _exit to terminate forked process if needed, use closefrom() to close descriptors in child process if possible<br>
NSTimer wrap call to block in exception handler (bug #289)<br>
NSTimeZone improvements<br>
NSURL Fix NSURL path on Windows for UNC paths.<br>
NSURLRequest: Support deleting using setValue:forHTTPHeaderField: with nil value.<br>
NSURLSession many bugfixes and improvements<br>
NSUserDefaults fix potential deadlock<br>
NSXMLElement bugfix to remove previous attributes when setting attributes.<br>
NSXMLNode returns NSError on failure to evaluate xpath expression.<br>
gnustep_global_lock and GSLazyLock deprecated for removal in next release.
</section>
<section>
<heading>Version 1.29.0</heading>
<p>

View file

@ -32,8 +32,12 @@ Other external libraries that you may need to install include:
@item gnutls (HIGHLY RECOMMENDED)
@item libxml2 (RECOMMENDED)
@item libxslt (OPTIONAL)
@item libavahi (RECOMMENDED for NSNetServices)
@item zlib (RECOMMENDED)
@item iconv (OPTIONAL, not needed if you have glibc)
@item openssl (OPTIONAL, not needed if you have gnutls)
@item libcurl (RECOMMENDED)
@item libdispatch (RECOMMENDED)
@end itemize
If you are installing the GNUstep libraries individually, make sure you

View file

@ -884,9 +884,7 @@ filesystem.
If you are writing a class library and do not know whether it will be used in
a multithreaded environment or not, and would like to avoid locking overhead
if not, use the @code{NSThread +isMultiThreaded} method. You can also
register to receive @code{NSWillBecomeMultiThreadedNotification}s. You can
also use the @code{GSLazyLock} and @code{GSLazyRecursiveLock} classes (see
next section) which handle this automatically.
register to receive @code{NSWillBecomeMultiThreadedNotification}s.
@subsection Using @code{NSConnection} to Communicate Between Threads
@ -966,10 +964,6 @@ Classes for parsing HTML documents (not necessarily XHTML).
@item GSMimeXxx
Classes for handling MIME messages or HTML POST documents.
@item GSLazyXxx
Classes implementing ``lazy'' locking that do not actually attempt any locking
unless running in a multithreaded application. See @ref{Base Library, ,
Threads and Run Control}.
@end table
All of these classes have excellent API reference documentation and you

View file

@ -11,7 +11,58 @@ The currently released version of the library is
See the @url{ReleaseNotes.html} document for more information.
@end ifclear
This is a bugfix release increasing the library version number to reflect ABI change that should have been included when the previous release was made.
@section Noteworthy changes in version @samp{1.30.0}
@itemize @bullet
@item Library version changed from 1.29 to 1.30
@item autogsdoc (and many source/header files) updated for ObjC-2 support
@item gdnc gspath spelling error fixes
@item GSFileHandle remove handle from run loop when -dealloc is called
@item GSHTTPURLHandle close socket if we end loading with I/O in progress.
@item GSMimeDocimnet optimisations
@item GSPrivateSymbolPath() portability improvements
@item GSVersionMacros add GS_UNIMPLEMENTED to mark unimplemented methods
@item HTMLLinker man page groff warning fixed
@item Make GSTcpTune options available to streams as well as file handles and improve debug logging for stream operations.
@item NSBundle improvements in librarym bundle lookup
@item NSCache thread safety fix
@item NSData caching data of file URLs and OSX consistency tweak to permissions when writing file atomically
@item NSDate implements +now constructor.
@item NSDecimalNumber fix possible coimparison bug for zero values
@item NSError -description and -localizedDescription formats match OSX
@item NSException portability improvments
@item NSFileManager makeed safety fix and make enumerating a file URL return URLs rather than paths.
@item NSIndexSet implements enumerateRangesInRange convenience methods.
@item NSISO8601DateFormatter.m: bugfix for date/time string generation
@item NSJSONSerialization fix memory leak, fix issue with unicode surrogate pairs.
@item NSKeyValueObserving Add methods to remove observers
@item NSLocale Fix -countryCode incorrectly returning language code, fix for hyphen and underscore in locale identifier
@item NSMessagePort remove restriction on Distributed Objects message length
@item NSNotificationCenter fix for memory leak, minor bugfixes (use before initialise)
@item NSNull fix for -valueForUndefinedKey: to return singleton
@item NSNumberFormatter make minimum/maximum properties NSNumbers
@item NSObject optimise allocation with new runtime library
@item NSOperation fix occasional scheduling bug
@item NSOrderedSet Fix keyed encoding to match Apple platforms.
@item NSPathUtilities fix intialisation order deadlock.
@item NSPredicate fix for array access keywords
@item NSProcessInfo android support
@item NSString correct class used when loading empty string from file/URL, implements regular expression search methods.
@item NSTask return an error if the path to launch in is bad, use _exit to terminate forked process if needed, use closefrom() to close descriptors in child process if possible
@item NSTimer wrap call to block in exception handler (bug #289)
@item NSTimeZone improvements
@item NSURL Fix NSURL path on Windows for UNC paths.
@item NSURLRequest: Support deleting using setValue:forHTTPHeaderField: with nil value.
@item NSURLSession many bugfixes and improvements
@item NSUserDefaults fix potential deadlock
@item NSXMLElement bugfix to remove previous attributes when setting attributes.
@item NSXMLNode returns NSError on failure to evaluate xpath expression.
@item gnustep_global_lock and GSLazyLock deprecated for removal in next release.
@end itemize
@ifclear ANNOUNCE-ONLY
@section Noteworthy changes in version @samp{1.29.0}
@ -19,8 +70,6 @@ This is a bugfix release increasing the library version number to reflect ABI ch
@item Library version changed from 1.28 to 1.29
@end itemize
@ifclear ANNOUNCE-ONLY
@section Noteworthy changes in version @samp{1.28.1}
@itemize @bullet

View file

@ -2,7 +2,7 @@
Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
Written by: Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
Rewrite by: Richard Frith-Macdonald <rfm@gnu.org>
Written by: Richard Frith-Macdonald <rfm@gnu.org>
Date: March 1995
This file is part of the GNUstep Base Library.

View file

@ -1,4 +1,4 @@
/* Interface for NSArray for GNUStep
/**Interface for NSArray for GNUStep
Copyright (C) 1995-2015 Free Software Foundation, Inc.
Written by: Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>

View file

@ -530,13 +530,12 @@ GS_EXPORT_CLASS
* not exist on disk.
* </p>
*/
+ (NSBundle *) bundleForLibrary: (NSString *)libraryName
version: (NSString *)interfaceVersion;
+ (NSBundle *) bundleForLibrary: (NSString*)libraryName
version: (NSString*)interfaceVersion;
/** This method is a equivalent to bundleForLibrary:version: with a nil
* version.
/** Use +bundleForLibrary:version: instead.
*/
+ (NSBundle *) bundleForLibrary: (NSString *)libraryName;
+ (NSBundle*) bundleForLibrary: (NSString*)libraryName NS_DEPRECATED();
@ -565,7 +564,7 @@ GS_EXPORT_CLASS
* Returns the Android asset for the given path if path is in main bundle
* resources and asset exists.
* Uses `AASSET_MODE_UNKNOWN` to open the asset if it exists.
* The returned object must be released using AAsset_close().
* The returned object must be released using the AAsset_close function.
*/
+ (AAsset *) assetForPath: (NSString *)path;
@ -573,14 +572,14 @@ GS_EXPORT_CLASS
* Returns the Android asset for the given path if path is in main bundle
* resources and asset exists.
* Uses the given mode to open the AAsset if it exists.
* The returned object must be released using AAsset_close().
* The returned object must be released using the AAsset_close function.
*/
+ (AAsset *) assetForPath: (NSString *)path withMode: (int)mode;
/**
* Returns the Android asset dir for the given path if path is in main bundle
* resources and the asset directory exists.
* The returned object must be released using AAssetDir_close().
* The returned object must be released using the AAssetDir_close function.
*/
+ (AAssetDir *) assetDirForPath: (NSString *)path;

View file

@ -1,4 +1,4 @@
/* Definition of class NSByteCountFormatter
/** Definition of class NSByteCountFormatter
Copyright (C) 2019 Free Software Foundation, Inc.
Written by: Gregory Casamento <greg.casamento@gmail.com>

View file

@ -1,4 +1,4 @@
/* Interface for NSCache for GNUStep
/** Interface for NSCache for GNUStep
Copyright (C) 2009 Free Software Foundation, Inc.
Written by: David Chisnall <csdavec@swan.ac.uk>
@ -36,6 +36,7 @@ extern "C" {
@class NSString;
@class NSMapTable;
@class NSRecursiveLock;
@class GS_GENERIC_CLASS(NSMutableArray, ElementT);
GS_EXPORT_CLASS
@ -61,6 +62,8 @@ GS_EXPORT_CLASS
GS_GENERIC_CLASS(NSMutableArray, ValT) *_accesses;
/** Total number of accesses to objects */
int64_t _totalAccesses;
/** locking for thread safety */
NSRecursiveLock *_lock;
#endif
#if GS_NONFRAGILE
#else

View file

@ -235,7 +235,7 @@ GS_EXPORT_CLASS
/**
* Sets the number of the week in this year.
* Identical to calling <code>-setWeek</code>. */
* Identical to calling <code>-setWeek:</code>. */
- (void) setWeekOfYear: (NSInteger) v;
/**
@ -305,8 +305,8 @@ GS_EXPORT_CLASS
* Values are summed up as long as now higher-granularity unit is specified.
* That means if you want to extract the year and the day from two dates
* which are 13 months + 1 day apart, you will get 1 as the result for the year
* but the rest of the difference in days. (29 <= x <= 32, depending on the
* month).
* but the rest of the difference in days. (29 &lt;= x &lt;= 32, depending
* on the month).
*
* Please note that the NSWrapCalendarComponents option that should affect the
* calculations is not presently supported.

View file

@ -1,4 +1,4 @@
/* Interface for NSComparisonPredicate for GNUStep
/** Interface for NSComparisonPredicate for GNUStep
Copyright (C) 2005 Free Software Foundation, Inc.
Written by: Dr. H. Nikolaus Schaller

View file

@ -1,4 +1,4 @@
/* Interface for NSCompoundPredicate for GNUStep
/** Interface for NSCompoundPredicate for GNUStep
Copyright (C) 2005 Free Software Foundation, Inc.
Written by: Dr. H. Nikolaus Schaller

View file

@ -1,4 +1,4 @@
/* Interface for NSData for GNUStep
/**Interface for NSData for GNUStep
Copyright (C) 1995 Free Software Foundation, Inc.
Written by: Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>

View file

@ -163,6 +163,13 @@ GS_EXPORT_CLASS
*/
+ (instancetype) distantFuture;
#if OS_API_VERSION(MAC_OS_X_VERSION_10_15, GS_API_LATEST)
/** Returns an autoreleased instance with the date/time set to
* the time of access.
*/
+ (instancetype) now;
#endif
/** Returns the time interval between the reference date and the current
* time.
*/
@ -247,7 +254,7 @@ GS_EXPORT_CLASS
- (instancetype) initWithTimeIntervalSinceReferenceDate: (NSTimeInterval)secs;
/** Returns NO if other is not a date, otherwise returns the result of
* calling the -isEqualtoDate: method.
* calling the -isEqualToDate: method.
*/
- (BOOL) isEqual: (id)other;

View file

@ -86,7 +86,7 @@ typedef NSUInteger NSDateFormatterBehavior;
* <desc>day of the month as a decimal number (01-31)</desc>
* <term>%e</term>
* <desc>same as %d but does not print the leading 0 for days 1 through 9
* (unlike strftime(), does not print a leading space)</desc>
* (unlike "strftime()", does not print a leading space)</desc>
* <term>%F</term>
* <desc>milliseconds as a decimal number (000-999)</desc>
* <term>%H</term>
@ -107,17 +107,17 @@ typedef NSUInteger NSDateFormatterBehavior;
* <desc>weekday as a decimal number (0-6), where Sunday is 0</desc>
* <term>%x</term>
* <desc>date using the date representation for the locale, including the
* time zone (produces different results from strftime())</desc>
* time zone (produces different results from "strftime()")</desc>
* <term>%X</term>
* <desc>time using the time representation for the locale (produces
* different results from strftime())</desc>
* different results from "strftime()")</desc>
* <term>%y</term>
* <desc>year without century (00-99)</desc>
* <term>%Y</term>
* <desc>year with century (such as 1990)</desc>
* <term>%Z</term>
* <desc>time zone name (such as Pacific Daylight Time; produces different
* results from strftime())</desc>
* results from "strftime()")</desc>
* <term>%z</term>
* <desc>time zone offset in hours and minutes from GMT (HHMM)</desc>
* </deflist>

View file

@ -40,6 +40,9 @@
# endif
#endif
@class NSArray;
@class NSMapTable;
#if defined(__cplusplus)
extern "C" {
#endif
@ -97,12 +100,14 @@ extern "C" {
* hopeless about actually finding out where the leak is, the
* following functions could come handy as they allow you to find
* exactly *what* objects you are leaking (warning! these functions
* could slow down your system appreciably - use them only temporarily
* eill slow down your system appreciably - use them only temporarily
* and only in debugging systems):
*
* GSDebugAllocationRecordAndTrace()
* GSDebugAllocationRecordObjects()
* GSDebugAllocationListRecordedObjects()
* GSDebugAllocationTagRecordedObject()
* GSDebugAllocationTaggedObjects()
*/
/**
@ -238,31 +243,37 @@ GS_EXPORT const char* GSDebugAllocationList(BOOL changeFlag);
*/
GS_EXPORT const char* GSDebugAllocationListAll(void);
/**
* DEPRECATED ... use GSDebugAllocationRecordObjects instead.
*/
GS_EXPORT void GSDebugAllocationActiveRecordingObjects(Class c);
/**
* This function activates (or deactivates) tracking all allocated
* instances of the specified class c.<br />
* Turning on tracking implicitly turns on memory debug (counts)
* for all classes (GSAllocationActive()).<br />
* Deactivation of tracking releases all currently tracked instances
* Deactivation of tracking removes all currently tracked instances
* of the class (but deactivation of general counting does not).<br />
* The previous tracking state as reported as the return value of
* If a trace function is supplied, it takes the object to be recorded
* as an argument and either returns a value used as the tag for the
* object to be recorded, or nil to prevent the recording of that
* particular object.<br />
* As a special case the trace function may be the integer 1
* (cast to a function) to tag recorded objects by stack trace. This
* allows you to see where each leaked object was allocated.<br />
* The previous tracking state is reported as the return value of
* this function.<br />
* This tracking can slow your application down, so you should use it
* This tracking will slow your application down, so you should use it
* only when you are into serious debugging.
* Usually, you will monitor your application by using the functions
* GSDebugAllocationList() and similar, which do not slow things down
* much and return * the number of allocated instances; when
* GSDebugAllocationList() and similar (which do not slow things down
* much) and return the number of allocated instances; when
* (if) by studying the reports generated by these functions
* you have found a leak of objects of a certain class, and
* if you can't figure out how to fix it by looking at the
* code, you can use this function to start tracking
* allocated instances of that class, and the following one
* can sometime allow you to list the leaked objects directly.
* allocated instances of that class.
*/
GS_EXPORT BOOL GSDebugAllocationRecordAndTrace(
Class c, BOOL record, NSObject* (*traceFunction)(id));
/** Calls GSDebugAllocationRecordAndTrace() with a null trace function.
*/
GS_EXPORT BOOL GSDebugAllocationRecordObjects(Class c, BOOL newState);
@ -270,7 +281,7 @@ GS_EXPORT BOOL GSDebugAllocationRecordObjects(Class c, BOOL newState);
* This function returns an array
* containing all the allocated objects of a certain class
* which have been recorded ... to start the recording, you need
* to invoke GSDebugAllocationRecordObjects().
* to invoke GSDebugAllocationRecordAndTrace().
* Presumably, you will immediately call [NSObject-description] on them
* to find out the objects you are leaking. The objects are
* returned in an autoreleased array, so until the array is deallocated,
@ -278,6 +289,14 @@ GS_EXPORT BOOL GSDebugAllocationRecordObjects(Class c, BOOL newState);
*/
GS_EXPORT NSArray *GSDebugAllocationListRecordedObjects(Class c);
/** Returns a map containing recorded objects as keys and their corresponding
* tags as values. This does not return any objects which do not have tags,
* and returns nil if there are no tagged objects to report. The returned
* map table is autoreleased and will retain the objects and their tags
* until it is deallocated.
*/
GS_EXPORT NSMapTable *GSDebugAllocationTaggedObjects(Class c);
/**
* This function associates the supplied tag with a recorded
* object and returns the tag which was previously associated
@ -286,8 +305,7 @@ GS_EXPORT NSArray *GSDebugAllocationListRecordedObjects(Class c);
* The tag is retained while it is associated with the object.<br />
* If the tagged object is deallocated, the tag is released
* (so you can track the lifetime of the object by having the tag
* perform some operation when it is released).<br />
* See also the NSDebugFRLog() and NSDebugMRLog() macros.
* perform some operation when it is released).
*/
GS_EXPORT id GSDebugAllocationTagRecordedObject(id object, id tag);

View file

@ -1,4 +1,4 @@
/* Interface for GNU Objective-C version of NSDistantObject
/**Interface for GNU Objective-C version of NSDistantObject
Copyright (C) 1997 Free Software Foundation, Inc.
Written by: Richard Frith-Macdonald <richard@brainstorm.co.uk>

View file

@ -1,4 +1,4 @@
/* Definition of class NSEnergyFormatter
/** Definition of class NSEnergyFormatter
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -54,17 +54,6 @@
#include <setjmp.h>
#include <stdarg.h>
#if defined(__WIN64__)
/* This hack is to deal with the fact that currently (June 2016) the
* implementation of longjmp in mingw-w64 sometimes crashes in msvcrt.dll
* but the builtin version provided by gcc seems to work.
*/
#undef setjmp
#define setjmp(X) __builtin_setjmp(X)
#undef longjmp
#define longjmp(X,Y) __builtin_longjmp(X,Y)
#endif
#if defined(__cplusplus)
extern "C" {
#endif

View file

@ -1,26 +1,26 @@
/* Interface for NSExpression for GNUStep
/** Interface for NSExpression for GNUStep
Copyright (C) 2005 Free Software Foundation, Inc.
Written by: Dr. H. Nikolaus Schaller
Created: 2005
This file is part of the GNUstep Base Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110 USA.
*/
*/
#ifndef __NSExpression_h_GNUSTEP_BASE_INCLUDE
#define __NSExpression_h_GNUSTEP_BASE_INCLUDE
@ -40,12 +40,26 @@ extern "C" {
enum
{
NSConstantValueExpressionType=0,
NSConstantValueExpressionType = 0,
NSEvaluatedObjectExpressionType,
NSVariableExpressionType,
NSKeyPathExpressionType,
NSFunctionExpressionType,
NSKeyPathCompositionExpressionType
NSKeyPathCompositionExpressionType,
#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
NSUnionSetExpressionType,
NSIntersectSetExpressionType,
NSMinusSetExpressionType,
NSSubqueryExpressionType = 13,
NSAggregateExpressionType = 14,
#endif
#if OS_API_VERSION(MAC_OS_X_VERSION_10_9, GS_API_LATEST)
NSAnyKeyExpressionType = 15,
#endif
NSBlockExpressionType = 19,
#if OS_API_VERSION(MAC_OS_X_VERSION_10_11, GS_API_LATEST)
NSConditionalExpressionType = 20
#endif
};
typedef NSUInteger NSExpressionType;
@ -64,6 +78,24 @@ GS_EXPORT_CLASS
+ (NSExpression *) expressionForKeyPath: (NSString *)path;
+ (NSExpression *) expressionForVariable: (NSString *)string;
#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ (NSExpression *) expressionForIntersectSet: (NSExpression *)left
with: (NSExpression *)right;
+ (NSExpression *) expressionForAggregate: (NSArray *)subExpressions;
+ (NSExpression *) expressionForUnionSet: (NSExpression *)left
with: (NSExpression *)right;
+ (NSExpression *) expressionForMinusSet: (NSExpression *)left
with: (NSExpression *)right;
#endif
#if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ (NSExpression *) expressionWithFormat: (NSString *)format, ...;
+ (NSExpression *) expressionWithFormat: (NSString *)format
arguments: (va_list)args;
+ (NSExpression *) expressionWithFormat: (NSString *)format
argumentArray: (NSArray *)args;
#endif
- (NSArray *) arguments;
- (id) constantValue;
- (NSExpressionType) expressionType;
@ -75,6 +107,11 @@ GS_EXPORT_CLASS
- (NSExpression *) operand;
- (NSString *) variable;
#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
- (id) collection;
- (NSExpression *) leftExpression;
- (NSExpression *) rightExpression;
#endif
@end
#if defined(__cplusplus)
@ -84,4 +121,3 @@ GS_EXPORT_CLASS
#endif /* 100400 */
#endif /* __NSExpression_h_GNUSTEP_BASE_INCLUDE */

View file

@ -1,7 +1,7 @@
/* Definition of class NSExtensionRequestHandling
/**Definition of class NSExtensionRequestHandling
Copyright (C) 2019 Free Software Foundation, Inc.
By: heron
By: Gregory John Casamento <greg.casamento@gmail.com>
Date: Sun Nov 10 04:00:05 EST 2019
This file is part of the GNUstep Library.

View file

@ -1,4 +1,4 @@
/* Definition of class NSFileCoordinator
/** Definition of class NSFileCoordinator
Copyright (C) 2019 Free Software Foundation, Inc.
Implemented by: Gregory Casamento <greg.casamento@gmail.com>

View file

@ -216,7 +216,6 @@ GS_EXPORT_CLASS
#if GS_EXPOSE(NSFileManager)
@private
id<NSFileManagerDelegate> _delegate;
NSString *_lastError;
#endif
#if GS_NONFRAGILE
#else
@ -357,6 +356,21 @@ GS_EXPORT_CLASS
create: (BOOL)shouldCreate
error: (NSError **)error;
/**
* Returns an array of search paths to look at for resources.<br/ >
* The paths are returned in domain order:
* USER, LOCAL, NETWORK then SYSTEM.<br />
* The presence of a path in this list does <em>not</em> mean that the
* path actually exists in the filesystem.<br />
* If you are wanting to locate an existing resource, you should normally
* call this method with NSAllDomainsMask, but if you wish to find the
* path in which you should create a new file, you would generally
* specify a particular domain, and then create the path in the file
* system if it does not already exist.
*/
- (GS_GENERIC_CLASS(NSArray, NSURL *) *)URLsForDirectory: (NSSearchPathDirectory)directory
inDomains: (NSSearchPathDomainMask)domain;
/**
* Enumerate over the contents of a directory.
*/

View file

@ -1,9 +1,9 @@
/* Definition of class NSFilePresenter
/** Definition of class NSFilePresenter
Copyright (C) 2019 Free Software Foundation, Inc.
Implemented by: Gregory Casamento <greg.casamento@gmail.com>
Written by: Gregory Casamento <greg.casamento@gmail.com>
Date: Sep 2019
Original File by: Daniel Ferreira
Written by: Daniel Ferreira
This file is part of the GNUstep Library.

View file

@ -1,4 +1,4 @@
/* Interface for NSGeometry routines for GNUStep
/** Interface for NSGeometry routines for GNUStep
* Copyright (C) 1995 Free Software Foundation, Inc.
*
* Written by: Adam Fedor <fedor@boulder.colorado.edu>

View file

@ -1,7 +1,7 @@
/* Interface for NSHTTPCookie for GNUstep
/** Interface for NSHTTPCookie for GNUstep
Copyright (C) 2006 Software Foundation, Inc.
Written by: Richard Frith-Macdonald <frm@gnu.org>
Written by: Richard Frith-Macdonald <rfm@gnu.org>
Date: 2006
This file is part of the GNUstep Base Library.

View file

@ -1,7 +1,7 @@
/* Interface for NSHTTPCookieStorage for GNUstep
/** Interface for NSHTTPCookieStorage for GNUstep
Copyright (C) 2006 Software Foundation, Inc.
Written by: Richard Frith-Macdonald <frm@gnu.org>
Written by: Richard Frith-Macdonald <rfm@gnu.org>
Date: 2006
This file is part of the GNUstep Base Library.

View file

@ -1,4 +1,4 @@
/* Definition of class NSISO8601DateFormatter
/** Definition of class NSISO8601DateFormatter
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -113,6 +113,19 @@ DEFINE_BLOCK_TYPE(GSIndexSetEnumerationBlock, void, NSUInteger, BOOL*);
#endif
#if OS_API_VERSION(MAC_OS_X_VERSION_10_7,GS_API_LATEST)
DEFINE_BLOCK_TYPE(GSIndexSetRangeEnumerationBlock, void, NSRange, BOOL*);
- (void) enumerateRangesInRange: (NSRange)range
options: (NSEnumerationOptions)opts
usingBlock: (GSIndexSetRangeEnumerationBlock)aBlock;
- (void) enumerateRangesUsingBlock: (GSIndexSetRangeEnumerationBlock)aBlock;
- (void) enumerateRangesWithOptions: (NSEnumerationOptions)opts
usingBlock: (GSIndexSetRangeEnumerationBlock)aBlock;
#endif
/**
* Returns the first index value in the receiver or NSNotFound if the
* receiver is empty.

View file

@ -1,7 +1,7 @@
/* Definition of class NSItemProvider
/**Definition of class NSItemProvider
Copyright (C) 2019 Free Software Foundation, Inc.
By: heron
By: Gregory Casamento <greg.casamento@gmail.com>
Date: Sun Nov 10 04:00:17 EST 2019
This file is part of the GNUstep Library.

View file

@ -1,7 +1,7 @@
/* Definition of class NSItemProviderReadingWriting
/**Definition of class NSItemProviderReadingWriting
Copyright (C) 2019 Free Software Foundation, Inc.
By: heron
By: Gregory Casamento <greg.casamento@gmail.com>
Date: Sun Nov 10 04:00:24 EST 2019
This file is part of the GNUstep Library.

View file

@ -1,3 +1,27 @@
/**Definition of class NSJSONSerialization
Copyright (C) 2011-2021 Free Software Foundation, Inc.
By: David Chisnall <github@theravensnest.org>
Date: Jul 2011
This file is part of the GNUstep Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110 USA.
*/
#import "Foundation/NSObject.h"
@class NSData;

View file

@ -138,6 +138,11 @@ GS_EXPORT NSString *const NSKeyValueChangeNotificationIsPriorKey;
- (void) removeObserver: (NSObject*)anObserver
forKeyPath: (NSString*)aPath;
#if OS_API_VERSION(MAC_OS_X_VERSION_10_7,GS_API_LATEST)
- (void) removeObserver: (NSObject*)anObserver
forKeyPath: (NSString*)aPath
context: (void *)context;
#endif
@end
@interface NSArray (NSKeyValueObserverRegistration)
@ -152,6 +157,12 @@ GS_EXPORT NSString *const NSKeyValueChangeNotificationIsPriorKey;
fromObjectsAtIndexes: (NSIndexSet*)indexes
forKeyPath: (NSString*)aPath;
#if OS_API_VERSION(MAC_OS_X_VERSION_10_7,GS_API_LATEST)
- (void) removeObserver: (NSObject*)anObserver
fromObjectsAtIndexes: (NSIndexSet *)indexes
forKeyPath: (NSString*)aPath
context: (void *)context;
#endif
@end
/**

View file

@ -1,4 +1,4 @@
/* Definition of class NSLengthFormatter
/**Definition of class NSLengthFormatter
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,4 +1,4 @@
/* Definition of class NSLinguisticTagger
/**Definition of class NSLinguisticTagger
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,8 +1,9 @@
/* NSLocale.h
/** NSLocale.h
Copyright (C) 2010 Free Software Foundation, Inc.
Written by: Stefan Bidigaray, Richard Frith-Macdonald
Written by: Stefan Bidigaray
Written by: Richard Frith-Macdonald
Date: June, 2010
This library is free software; you can redistribute it and/or

View file

@ -362,9 +362,5 @@ GS_EXPORT NSLock_error_handler *_NSLock_error_handler;
}
#endif
#if !NO_GNUSTEP && !defined(GNUSTEP_BASE_INTERNAL)
#import <GNUstepBase/NSLock+GNUstepBase.h>
#endif
#endif /* __NSLock_h_GNUSTEP_BASE_INCLUDE */

View file

@ -1,11 +1,10 @@
/* NSMapTable interface for GNUStep.
/**NSMapTable interface for GNUStep.
* Copyright (C) 1994, 1995, 1996, 2002, 2009 Free Software Foundation, Inc.
*
* Author: Albin L. Jones <Albin.L.Jones@Dartmouth.EDU>
* Created: Tue Dec 13 00:05:02 EST 1994
* Updated: Thu Mar 21 15:12:42 EST 1996
* Serial: 96.03.21.05
* Modified by: Richard Frith-Macdonald <rfm@gnu.org>
* Author: Richard Frith-Macdonald <rfm@gnu.org>
* Updated: March 2009
*
* This file is part of the GNUstep Base Library.

View file

@ -1,5 +1,4 @@
/* Definition of class NSMassFormatter
/**Definition of class NSMassFormatter
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,4 +1,4 @@
/* Definition of class NSMeasurement
/**Definition of class NSMeasurement
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,4 +1,4 @@
/* Definition of class NSMeasurementFormatter
/**Definition of class NSMeasurementFormatter
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,7 +1,7 @@
/**Interface for NSMetadataQuery for GNUStep
Copyright (C) 2012 Free Software Foundation, Inc.
Written by: Gregory Casamento
Written by: Gregory John Casamento <greg.casamento@gmail.com>
Date: 2012
This file is part of the GNUstep Base Library.
@ -20,8 +20,6 @@
License along with this library; if not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110 USA.
AutogsdocSource: NSMetadataQuery.h
*/
#ifndef __NSMetadata_h_GNUSTEP_BASE_INCLUDE

View file

@ -1,4 +1,4 @@
/* Interface for NSNetServices for GNUstep
/**Interface for NSNetServices for GNUstep
Copyright (C) 2006 Free Software Foundation, Inc.
Written by: Chris B. Vetter
@ -224,18 +224,6 @@ GS_EXPORT NSString * const NSNetServicesErrorDomain;
@end
/**
* <unit>
* <heading>
* NSNetServiceBrowserDelegate protocol description
* </heading>
* <p>
* <!-- Foreword -->
* </p>
* <unit />
* <p>
* <!-- Afterword -->
* </p>
* </unit>
* <p>
* This protocol must be adopted by any class wishing to implement
* an [NSNetServiceBrowser] delegate.
@ -254,7 +242,7 @@ GS_EXPORT NSString * const NSNetServicesErrorDomain;
* Notifies the delegate that the search is about to begin.
*
* <p><strong>See also:</strong><br />
* [NSNetServiceBrowser-netServiceBrowser:didNotSearch:]<br />
* -netServiceBrowser:didNotSearch:<br />
* </p>
*/
@ -264,7 +252,7 @@ GS_EXPORT NSString * const NSNetServicesErrorDomain;
* Notifies the delegate that the search was unsuccessful.
*
* <p><strong>See also:</strong><br />
* [NSNetServiceBrowser-netServiceBrowserWillSearch:]<br />
* -netServiceBrowserWillSearch:<br />
* </p>
*/
@ -336,18 +324,6 @@ GS_EXPORT NSString * const NSNetServicesErrorDomain;
/**
* <unit>
* <heading>
* NSNetService class description
* </heading>
* <p>
* <!-- Foreword -->
* </p>
* <unit />
* <p>
* <!-- Afterword -->
* </p>
* </unit>
* <p>
* [NSNetService] lets you publish a network service in a domain using
* multicast DNS. Additionally, it lets you resolve a network service that
@ -416,18 +392,6 @@ GS_EXPORT_CLASS
@end
/**
* <unit>
* <heading>
* NSNetServiceBrowser class description
* </heading>
* <p>
* <!-- Foreword -->
* </p>
* <unit />
* <p>
* <!-- Afterword -->
* </p>
* </unit>
* <p>
* [NSNetServiceBrowser] asynchronously lets you discover network domains
* and, additionally, search for a type of network service. It sends its
@ -473,18 +437,6 @@ GS_EXPORT_CLASS
@end
/**
* <unit>
* <heading>
* NSNetServiceDelegate protocol description
* </heading>
* <p>
* <!-- Foreword -->
* </p>
* <unit />
* <p>
* <!-- Afterword -->
* </p>
* </unit>
* <p>
* This protocol must be adopted by any class wishing to implement
* an [NSNetService] delegate.

View file

@ -74,7 +74,7 @@ GS_EXPORT_CLASS
{
#if GS_EXPOSE(NSNotificationCenter)
@private
void *_table;
void *_table;
#endif
}

View file

@ -129,8 +129,8 @@ GS_EXPORT_CLASS
unichar _thousandSeparator;
unichar _decimalSeparator;
NSDecimalNumberHandler *_roundingBehavior;
NSDecimalNumber *_maximum;
NSDecimalNumber *_minimum;
NSNumber *_maximum;
NSNumber *_minimum;
NSAttributedString *_attributedStringForNil;
NSAttributedString *_attributedStringForNotANumber;
NSAttributedString *_attributedStringForZero;
@ -337,25 +337,25 @@ GS_NSNumberFormatter_IVARS;
* Returns maximum value that will be accepted as valid in number parsing.
* Default is none.
*/
- (NSDecimalNumber*) maximum;
- (NSNumber*) maximum;
/**
* Sets maximum value that will be accepted as valid in number parsing.
* Default is none.
*/
- (void) setMaximum: (NSDecimalNumber*)aMaximum;
- (void) setMaximum: (NSNumber*)aMaximum;
/**
* Returns minimum value that will be accepted as valid in number parsing.
* Default is none.
*/
- (NSDecimalNumber*) minimum;
- (NSNumber*) minimum;
/**
* Sets minimum value that will be accepted as valid in number parsing.
* Default is none.
*/
- (void) setMinimum: (NSDecimalNumber*)aMinimum;
- (void) setMinimum: (NSNumber*)aMinimum;
#if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
/** Sets the behavior of the formatter.<br />

View file

@ -56,21 +56,24 @@ extern "C" {
* in assuming that the receiver can handle it.
*/
@protocol NSObject
/**
* Returns the class of the receiver. If the receiver is a proxy, then this
* may return the class of the proxy target. Use -isProxy to determine whether
* the receiver is a proxy. If you wish to find the real class of the
* receiver, ignoring proxies, then use object_getClass().
* receiver, ignoring proxies, then use "object_getClass()".
*/
- (Class) class;
/**
* Returns the superclass of receiver's class. If the receiver is a proxy,
* then this may return the class of the proxy target. Use -isProxy to
* determine whether the receiver is a proxy. If you wish to find the real
* superclass of the receiver's class, ignoring proxies, then use
* class_getSuperclass(object_getClass()).
* "class_getSuperclass(object_getClass())".
*/
- (Class) superclass;
/**
* Returns whether the receiver is equal to the argument. Defining equality is
* complex, so be careful when implementing this method. Collections such as
@ -89,12 +92,14 @@ extern "C" {
* equal hash values do not imply equality.
*/
- (BOOL) isEqual: (id)anObject;
/**
* Returns YES if the receiver is an instance of the class, an instance of the
* subclass, or (in the case of proxies), an instance of something that can be
* treated as an instance of the class.
*/
- (BOOL) isKindOfClass: (Class)aClass;
/**
* Returns YES if the receiver is an instance of the class or (in the case of
* proxies), an instance of something that can be treated as an instance of the
@ -106,12 +111,14 @@ extern "C" {
* subclass.
*/
- (BOOL) isMemberOfClass: (Class)aClass;
/**
* Returns YES if the receiver is a proxy, NO otherwise. The default
* implementation of this method in NSObject returns NO, while the
* implementation in NSProxy returns YES.
*/
- (BOOL) isProxy;
/**
* Returns a hash value for the object. All objects that are equal *MUST*
* return the same hash value. For efficient storage in sets, or as keys in
@ -124,16 +131,19 @@ extern "C" {
* modified while stored in an unordered collection.
*/
- (NSUInteger) hash;
/**
* Returns the receiver. In a proxy, this may (but is not required to) return
* the proxied object.
*/
- (id) self;
/**
* Performs the specified selector. The selector must correspond to a method
* that takes no arguments.
*/
- (id) performSelector: (SEL)aSelector;
/**
* Performs the specified selector, with the object as the argument. This
* method does not perform any automatic unboxing, so the selector must
@ -141,6 +151,7 @@ extern "C" {
*/
- (id) performSelector: (SEL)aSelector
withObject: (id)anObject;
/**
* Performs the specified selector, with the objects as the arguments. This
* method does not perform any automatic unboxing, so the selector must
@ -149,6 +160,7 @@ extern "C" {
- (id) performSelector: (SEL)aSelector
withObject: (id)object1
withObject: (id)object2;
/**
* Returns YES if the object can respond to messages with the specified
* selector. The default implementation in NSObject returns YES if the
@ -157,16 +169,19 @@ extern "C" {
* forwarding mechanisms.
*/
- (BOOL) respondsToSelector: (SEL)aSelector;
/**
* Returns YES if the receiver conforms to the specified protocol.
*/
- (BOOL) conformsToProtocol: (Protocol*)aProtocol;
/**
* Increments the reference count of the object and returns the receiver. In
* garbage collected mode, this method does nothing. In automated reference
* counting mode, you may neither implement this method nor call it directly.
*/
- (id) retain NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
/**
* Decrements the reference count of the object and destroys if it there are no
* remaining references. In garbage collected mode, this method does nothing.
@ -174,6 +189,7 @@ extern "C" {
* nor call it directly.
*/
- (oneway void) release NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
/**
* Performs a deferred -release operation. The object's reference count is
* decremented at the end of the scope of the current autorelease pool,
@ -185,6 +201,7 @@ extern "C" {
* counting mode, you may neither implement this method nor call it directly.
*/
- (id) autorelease NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
/**
* Returns the current retain count of an object. This does not include the
* result of any pending autorelease operations.
@ -197,11 +214,13 @@ extern "C" {
* occasionally be useful for debugging.
*/
- (NSUInteger) retainCount NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
/**
* Returns the description of the object. This is used by the %@ format
* specifier in strings.
*/
- (NSString*) description;
/**
* Returns the zone of the object.
*/
@ -363,7 +382,7 @@ GS_EXPORT_CLASS GS_ROOT_CLASS
+ (BOOL) isSubclassOfClass: (Class)aClass;
+ (id) new;
+ (void) poseAsClass: (Class)aClassObject;
+ (id) setVersion: (NSInteger)aVersion;
+ (void) setVersion: (NSInteger)aVersion;
+ (NSInteger) version;
- (id) awakeAfterUsingCoder: (NSCoder*)aDecoder;
@ -483,11 +502,6 @@ NSIncrementExtraRefCount(id anObject);
#if OS_API_VERSION(GS_API_NONE, GS_API_NONE)
/** Global lock to be used by classes when operating on any global
data that invoke other methods which also access global; thus,
creating the potential for deadlock. */
GS_EXPORT NSRecursiveLock *gnustep_global_lock;
@interface NSObject (NEXTSTEP)
- (id) error:(const char *)aString, ...;
/* - (const char *) name;

View file

@ -1,7 +1,7 @@
/* Definition of class NSObjectScripting
/**Definition of class NSObjectScripting
Copyright (C) 2019 Free Software Foundation, Inc.
By: heron
By: Gregory John Casamento <greg.casamento@gmail.com>
Date: Fri Nov 1 00:25:37 EDT 2019
This file is part of the GNUstep Library.

View file

@ -1,9 +1,8 @@
/**Interface for NSOperation for GNUStep
Copyright (C) 2009,2010 Free Software Foundation, Inc.
Copyright (C) 2008-2022 Free Software Foundation, Inc.
Written by: Gregory Casamento <greg.casamento@gmail.com>
Written by: Richard Frith-Macdonald <rfm@gnu.org>
Date: 2009,2010
This file is part of the GNUstep Base Library.
@ -132,7 +131,7 @@ GS_EXPORT_CLASS
* This is the method which actually performs the operation ...
* the default implementation does nothing.<br />
* You MUST ensure that your implemention of -main does not raise any
* exception or call [NSThread-exit] as either of these will terminate
* exception or call [NSThread+exit] as either of these will terminate
* the operation prematurely resulting in the operation never reaching
* the -isFinished state.<br />
* If you are writing a concurrent subclass, you should override -start
@ -140,7 +139,7 @@ GS_EXPORT_CLASS
*/
- (void) main;
/** Returns the priority set using the -setQueuePriority method, or
/** Returns the priority set using the -setQueuePriority: method, or
* NSOperationQueuePriorityNormal if no priority has been set.
*/
- (NSOperationQueuePriority) queuePriority;

View file

@ -1,7 +1,7 @@
/* Definition of class NSOrthography
/**Definition of class NSOrthography
Copyright (C) 2019 Free Software Foundation, Inc.
By: heron
By: Gregory Casamento <greg.casamento@gmail.com>
Date: Tue Nov 5 03:43:39 EST 2019
This file is part of the GNUstep Library.

View file

@ -1,4 +1,4 @@
/* Definition of class NSPersonNameComponents
/**Definition of class NSPersonNameComponents
Copyright (C) 2019 Free Software Foundation, Inc.
Implemented by: Gregory Casamento <greg.casamento@gmail.com>

View file

@ -1,4 +1,4 @@
/* Definition of class NSPersonNameComponents
/**Definition of class NSPersonNameComponents
Copyright (C) 2019 Free Software Foundation, Inc.
Implemented by: Gregory Casamento <greg.casamento@gmail.com>

View file

@ -298,6 +298,7 @@ GS_EXPORT void GSInitializeProcess(int argc, char **argv, char **envp);
* for the Android data directory and asset loading via NSBundle.
*/
GS_EXPORT void GSInitializeProcessAndroid(JNIEnv *env, jobject context);
GS_EXPORT void GSInitializeProcessAndroidWithArgs(JNIEnv *env, jobject context, int argc, char **argv, char **envp);
#endif
/**

View file

@ -1,4 +1,4 @@
/* Definition of class NSProgress
/**Definition of class NSProgress
Copyright (C) 2019 Free Software Foundation, Inc.
Written by: Gregory Casamento <greg.casamento@gmail.com>

View file

@ -1,5 +1,4 @@
/* Definition of class NSRegularExpression
/**Definition of class NSRegularExpression
Copyright (C) 2011 Free Software Foundation, Inc.
This file is part of the GNUstep Library.
@ -67,7 +66,7 @@ static const NSMatchingOptions NSMatchingWithTransparentBounds = 1<<3;
static const NSMatchingOptions NSMatchingWithoutAnchoringBounds = 1<<4;
DEFINE_BLOCK_TYPE(GSRegexBlock, void, NSTextCheckingResult*,
DEFINE_BLOCK_TYPE(GSRegexBlock, void, NSTextCheckingResult*,\
NSMatchingFlags, BOOL*);
#ifndef GSREGEXTYPE
@ -150,6 +149,9 @@ GS_EXPORT_CLASS
inString: (NSString*)string
offset: (NSInteger)offset
template: (NSString*)templat;
#if OS_API_VERSION(MAC_OS_X_VERSION_10_7, GS_API_LATEST)
+ (NSString *) escapedPatternForString: (NSString *)string;
#endif
#if GS_HAS_DECLARED_PROPERTIES
@property (readonly) NSRegularExpressionOptions options;
@property (readonly) NSUInteger numberOfCaptureGroups;

View file

@ -1,5 +1,4 @@
/* Definition of class NSScriptCoercionHandler
/**Definition of class NSScriptCoercionHandler
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,5 +1,4 @@
/* Definition of class NSScriptCommand
/**Definition of class NSScriptCommand
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,5 +1,4 @@
/* Definition of class NSScriptCommandDescription
/**Definition of class NSScriptCommandDescription
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,5 +1,4 @@
/* Definition of class NSScriptExecutionContext
/**Definition of class NSScriptExecutionContext
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,5 +1,4 @@
/* Definition of class NSScriptKeyValueCoding
/**Definition of class NSScriptKeyValueCoding
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,5 +1,4 @@
/* Definition of class NSScriptObjectSpecifiers
/**Definition of class NSScriptObjectSpecifiers
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,5 +1,4 @@
/* Definition of class NSScriptStandardSuiteCommands
/**Definition of class NSScriptStandardSuiteCommands
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,5 +1,4 @@
/* Definition of class NSScriptSuiteRegistry
/**Definition of class NSScriptSuiteRegistry
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,4 +1,4 @@
/*
/**
Global include file for the GNUstep Base Library.
Copyright (C) 1997 Free Software Foundation, Inc.

View file

@ -1,9 +1,9 @@
/* Protocol for NSSerialization for GNUStep
/** Protocol for NSSerialization for GNUStep
Copyright (C) 1995 Free Software Foundation, Inc.
Written by: Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
Date: 1995
Updated by: Richard Frith-Macdonald <richard@brainstorm.co.uk>
Author: Richard Frith-Macdonald <richard@brainstorm.co.uk>
Date: 1998
This file is part of the GNUstep Base Library.

View file

@ -1,4 +1,4 @@
/* Interface for NSSortDescriptor for GNUStep
/**Interface for NSSortDescriptor for GNUStep
Copyright (C) 2005 Free Software Foundation, Inc.
Written by: Saso Kiselkov <diablos@manga.sk>
@ -147,7 +147,7 @@ GS_EXPORT_CLASS
/**
* Produces a sorted array using the mechanism described for
* [NSMutableArray-sortUsingDescriptors:]
* [NSMutableArray(NSSortDescriptorSorting)-sortUsingDescriptors:]
*/
- (GS_GENERIC_CLASS(NSArray, ElementT) *) sortedArrayUsingDescriptors: (NSArray *)sortDescriptors;
@ -174,7 +174,7 @@ GS_EXPORT_CLASS
@interface GS_GENERIC_CLASS(NSSet, ElementT) (NSSortDescriptorSorting)
/**
* Produces a sorted array from using the mechanism described for
* [NSMutableArray-sortUsingDescriptors:]
* [NSMutableArray(NSSortDescriptorSorting)-sortUsingDescriptors:]
*/
- (GS_GENERIC_CLASS(NSArray, ElementT) *) sortedArrayUsingDescriptors: (NSArray *)sortDescriptors;
@end

View file

@ -426,6 +426,49 @@ enum {
typedef NSUInteger NSStringEncodingConversionOptions;
#endif
#if OS_API_VERSION(MAC_OS_X_VERSION_10_6,GS_API_LATEST)
/** For enumerateSubstringsInRange:options:usingBlock:
You must include an substring type (`NSStringEnumerationBy`), and may
bitwise or (`|`) with any of the other options. */
enum {
/* Must include one of these
Must fit into 8 bits. */
/** Enumerate by lines. Uses lineRangeForRange: */
NSStringEnumerationByLines = 0,
/** Enumerate by paragraph. Uses paragraphRangeForRange: */
NSStringEnumerationByParagraphs = 1,
/** Enumerate by composed character sequence. Uses rangeOfComposedCharacterSequencesForRange: */
NSStringEnumerationByComposedCharacterSequences = 2,
/** Enumerate by word, as specified in Unicode TR 29.
Only supported if GNUstep is compiled with ICU.
Uses UBRK_WORD, with current locale and standard abbreviation lists if
NSStringEnumerationLocalized is passed, otherwise the locale is "en_US_POSIX". */
NSStringEnumerationByWords = 3,
/** Enumerate by sentence, as specified in Unicode TR 29.
Only supported if GNUstep is compiled with ICU.
Uses UBRK_WORD, with current locale and standard abbreviation lists if
NSStringEnumerationLocalized is passed, otherwise the locale is "en_US_POSIX". */
NSStringEnumerationBySentences = 4,
#if OS_API_VERSION(MAC_OS_X_VERSION_11,GS_API_LATEST)
/** Undocumented public API on macOS. Not supported by GNUstep. */
NSStringEnumerationByCaretPositions = 5,
/** Undocumented public API on macOS. Not supported by GNUstep. */
NSStringEnumerationByDeletionClusters = 6,
#endif
/* May pass one of these via bitwise or.
Must be a single bit set at an offset >= 8. */
NSStringEnumerationReverse = 1UL << 8,
NSStringEnumerationSubstringNotRequired = 1UL << 9,
NSStringEnumerationLocalized = 1UL << 10
};
typedef NSUInteger NSStringEnumerationOptions;
DEFINE_BLOCK_TYPE(GSNSStringEnumerationBlock, void, NSString* substring, NSRange substringRange, NSRange enclosingRange, BOOL* stop);
DEFINE_BLOCK_TYPE(GSNSStringLineEnumerationBlock, void, NSString *line, BOOL *stop);
#endif
/**
* <p>
* <code>NSString</code> objects represent an immutable string of Unicode 3.0
@ -485,7 +528,7 @@ GS_EXPORT_CLASS
length: (NSUInteger)length;
+ (instancetype) stringWithCString: (const char*)byteString;
+ (instancetype) stringWithFormat: (NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
+ (instancetype) stringWithContentsOfFile:(NSString *)path;
+ (instancetype) stringWithContentsOfFile: (NSString *)path;
// Initializing Newly Allocated Strings
- (instancetype) init;
@ -1050,6 +1093,15 @@ GS_EXPORT_CLASS
+ (Class) constantStringClass;
#endif /* GS_API_NONE */
#if OS_API_VERSION(MAC_OS_X_VERSION_10_6,GS_API_LATEST)
- (void) enumerateLinesUsingBlock: (GSNSStringLineEnumerationBlock)block;
- (void) enumerateSubstringsInRange: (NSRange)range
options: (NSStringEnumerationOptions)opts
usingBlock: (GSNSStringEnumerationBlock)block;
#endif
@end
GS_EXPORT_CLASS

View file

@ -1,4 +1,4 @@
/* Copyright (C) 2011 Free Software Foundation, Inc.
/**Copyright (C) 2011 Free Software Foundation, Inc.
This file is part of the GNUstep Library.

View file

@ -1,4 +1,4 @@
/* Interface for NSTimeZone for GNUStep
/**Interface for NSTimeZone for GNUStep
Copyright (C) 1994, 1996, 1999 Free Software Foundation, Inc.
This file is part of the GNUstep Base Library.

View file

@ -1,4 +1,4 @@
/* Interface for NSURLAuthenticationChallenge for GNUstep
/**Interface for NSURLAuthenticationChallenge for GNUstep
Copyright (C) 2006 Software Foundation, Inc.
Written by: Richard Frith-Macdonald <frm@gnu.org>

View file

@ -1,7 +1,8 @@
/* Interface for NSURLConnection for GNUstep
/** Interface for NSURLConnection for GNUstep
Copyright (C) 2006 Software Foundation, Inc.
Written by: Richard Frith-Macdonald <frm@gnu.org>
Written by: Armando Pesenti Gritti
Written by: Richard Frith-Macdonald <rfm@gnu.org>
Date: 2006
This file is part of the GNUstep Base Library.
@ -180,6 +181,7 @@ GS_EXPORT_CLASS
* </list>
*/
#if OS_API_VERSION(MAC_OS_X_VERSION_10_7,GS_API_LATEST) && GS_API_VERSION(11300,GS_API_LATEST)
/** <ignore> autogsdoc will ignore everything up to the end tag */
@protocol NSURLConnectionDelegate <NSObject>
#if GS_PROTOCOLS_HAVE_OPTIONAL
@ -188,6 +190,7 @@ GS_EXPORT_CLASS
@end
@interface NSObject (NSURLConnectionDelegate)
#endif
/** end of text ignored by autogsdoc </ignore> */
#else
@interface NSObject (NSURLConnectionDelegate)

View file

@ -1,4 +1,4 @@
/* Interface for NSURLCredential for GNUstep
/**Interface for NSURLCredential for GNUstep
Copyright (C) 2006 Software Foundation, Inc.
Written by: Richard Frith-Macdonald <frm@gnu.org>

View file

@ -1,4 +1,4 @@
/* Interface for NSURLCredentialStorage for GNUstep
/**Interface for NSURLCredentialStorage for GNUstep
Copyright (C) 2006 Software Foundation, Inc.
Written by: Richard Frith-Macdonald <frm@gnu.org>

View file

@ -1,4 +1,4 @@
/* Interface for NSURLDownload for GNUstep
/**Interface for NSURLDownload for GNUstep
Copyright (C) 2006 Software Foundation, Inc.
Written by: Richard Frith-Macdonald <frm@gnu.org>
@ -122,6 +122,7 @@ GS_EXPORT_CLASS
*/
#if OS_API_VERSION(MAC_OS_X_VERSION_10_7, GS_API_LATEST)
/** <ignore> autogsdoc will ignore everything up to the end tag */
@protocol NSURLDownloadDelegate <NSObject>
#if GS_PROTOCOLS_HAVE_OPTIONAL
@optional
@ -129,6 +130,7 @@ GS_EXPORT_CLASS
@end
@interface NSObject (NSURLDownloadDelegate)
#endif
/** end of text ignored by autogsdoc </ignore> */
#else
@interface NSObject (NSURLDownloadDelegate)
#endif

View file

@ -1,4 +1,4 @@
/* Interface for NSURLProtectionSpace for GNUstep
/**Interface for NSURLProtectionSpace for GNUstep
Copyright (C) 2006 Software Foundation, Inc.
Written by: Richard Frith-Macdonald <frm@gnu.org>

View file

@ -1,4 +1,4 @@
/* Interface for NSURLProtocol for GNUstep
/**Interface for NSURLProtocol for GNUstep
Copyright (C) 2006 Software Foundation, Inc.
Written by: Richard Frith-Macdonald <frm@gnu.org>
@ -209,6 +209,11 @@ GS_EXPORT_CLASS
*/
+ (BOOL) canInitWithRequest: (NSURLRequest *)request;
/** This method is called to decide whether a class can deal with
* the specified task. The abstract class implementation return NO.
*/
+ (BOOL) canInitWithTask: (NSURLSessionTask*)task;
/** <override-subclass />
* Returns the 'canonical' version of the request.<br />
* The canonical form is used to look up requests in the cache by

View file

@ -1,4 +1,4 @@
/* Interface for NSURLRequest for GNUstep
/**Interface for NSURLRequest for GNUstep
Copyright (C) 2006 Software Foundation, Inc.
Written by: Richard Frith-Macdonald <frm@gnu.org>
@ -321,8 +321,9 @@ GS_EXPORT_CLASS
- (void) setHTTPShouldHandleCookies: (BOOL)should;
/**
* Sets the value for the sapecified header field, replacing any
* previously set value.
* Sets the value for the specified header field, replacing any
* previously set value. Setting a nil value deletes a previously set
* header field.
*/
- (void) setValue: (NSString *)value forHTTPHeaderField: (NSString *)field;

View file

@ -1,7 +1,7 @@
/* Interface for NSURLResponse for GNUstep
/** Interface for NSURLResponse for GNUstep
Copyright (C) 2006 Software Foundation, Inc.
Written by: Richard Frith-Macdonald <frm@gnu.org>
Written by: Richard Frith-Macdonald <rfm@gnu.org>
Date: 2006
This file is part of the GNUstep Base Library.

View file

@ -1,3 +1,33 @@
/**
NSURLSession.h
Copyright (C) 2017-2023 Free Software Foundation, Inc.
Written by: Daniel Ferreira <dtf@stanford.edu>
Date: November 2017
Author: Richard Frith-Macdonald <richard@brainstorm.co.uk>
This file is part of GNUStep-base
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
If you are interested in a warranty or support for this source code,
contact Scott Christley <scottc@net-community.com> for more information.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110 USA.
*/
#ifndef __NSURLSession_h_GNUSTEP_BASE_INCLUDE
#define __NSURLSession_h_GNUSTEP_BASE_INCLUDE

View file

@ -1,4 +1,4 @@
/* Definition of class NSUnit
/** Definition of class NSUnit
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,7 +1,7 @@
/* Definition of class NSUserActivity
Copyright (C) 2019 Free Software Foundation, Inc.
By: heron
By: Gregory John Casamento <greg.casamento@gmail.com>
Date: Fri Nov 1 00:25:47 EDT 2019
This file is part of the GNUstep Library.

View file

@ -49,7 +49,7 @@ extern "C" {
* User defaults domain for process arguments. Command-line arguments
* (key-value pairs, as in "-NSFoo bar") are placed in this domain.<br />
* Where there is a sequence of arguments beginning with '-', only the
* last one is used (so "-a -b -c d" will produce a single user default
* last one is used (so "-a" "-b" "-c" "d" will produce a single user default
* 'c' with value 'd').<br />
* NB. On OSX the argument "-" means a key consisting of an empty string
* (so you can't use a '-' as a default value), while in GNUstep a "-" is

View file

@ -1,4 +1,4 @@
/* Interface for NSUserNotification for GNUstep
/**Interface for NSUserNotification for GNUstep
Copyright (C) 2014 Free Software Foundation, Inc.
Written by: Marcus Mueller <znek@mulle-kybernetik.com>

View file

@ -1,5 +1,4 @@
/* Definition of class NSUserScriptTask
/**Definition of class NSUserScriptTask
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory John Casamento <greg.casamento@gmail.com>

View file

@ -1,9 +1,9 @@
/* Interface for NSValueTransformer for GNUStep
/**Interface for NSValueTransformer for GNUStep
Copyright (C) 2006 Free Software Foundation, Inc.
Written Dr. H. Nikolaus Schaller
Created on Mon Mar 21 2005.
Updatesd and documented by Richard Frith-Macdonald
Written by:Dr. H. Nikolaus Schaller
Created: Mon Mar 21 2005.
Author: Richard Frith-Macdonald
This file is part of the GNUstep Base Library.

View file

@ -1,4 +1,4 @@
/* Interface for NSXMLDTD for GNUStep
/**Interface for NSXMLDTD for GNUStep
Copyright (C) 2008 Free Software Foundation, Inc.
Written by: Richard Frith-Macdonald <rfm@gnu.org>

View file

@ -1,4 +1,4 @@
/* Interface for NSXMLDTDNode for GNUStep
/**Interface for NSXMLDTDNode for GNUStep
Copyright (C) 2008 Free Software Foundation, Inc.
Written by: Richard Frith-Macdonald <rfm@gnu.org>

View file

@ -1,4 +1,4 @@
/* Interface for NSXMLDocument for GNUStep
/**Interface for NSXMLDocument for GNUStep
Copyright (C) 2008 Free Software Foundation, Inc.
Written by: Richard Frith-Macdonald <rfm@gnu.org>

View file

@ -1,4 +1,4 @@
/* Interface for NSXMLElement for GNUStep
/**Interface for NSXMLElement for GNUStep
Copyright (C) 2008 Free Software Foundation, Inc.
Written by: Richard Frith-Macdonald <rfm@gnu.org>

View file

@ -1,4 +1,4 @@
/* Interface for NSXMLNode for GNUStep
/**Interface for NSXMLNode for GNUStep
Copyright (C) 2008 Free Software Foundation, Inc.
Written by: Richard Frith-Macdonald <rfm@gnu.org>

View file

@ -1,4 +1,4 @@
/* Definition of class NSXPCConnection
/**Definition of class NSXPCConnection
Copyright (C) 2019 Free Software Foundation, Inc.
By: Gregory Casamento <greg.casamento@gmail.com>

View file

@ -93,7 +93,7 @@ GS_EXPORT NSZone*
NSCreateZone (NSUInteger start, NSUInteger gran, BOOL canFree);
/** Returns the default zone for memory allocation. Memory created in this
* zone is the same as memory allocates using the system malloc() function.
* zone is the same as memory allocates using the system malloc function.
*/
GS_EXPORT NSZone*
NSDefaultMallocZone (void);

View file

@ -36,7 +36,6 @@
#endif
#import <GNUstepBase/GSFunctions.h>
#import <GNUstepBase/GSLocale.h>
#import <GNUstepBase/GSLock.h>
#import <GNUstepBase/GSMime.h>
#import <GNUstepBase/GSXML.h>
#import <GNUstepBase/Unicode.h>
@ -48,7 +47,6 @@
#import <GNUstepBase/NSData+GNUstepBase.h>
#import <GNUstepBase/NSDebug+GNUstepBase.h>
#import <GNUstepBase/NSFileHandle+GNUstepBase.h>
#import <GNUstepBase/NSLock+GNUstepBase.h>
#import <GNUstepBase/NSMutableString+GNUstepBase.h>
#import <GNUstepBase/NSNetServices+GNUstepBase.h>
#import <GNUstepBase/NSNumber+GNUstepBase.h>

View file

@ -107,8 +107,11 @@ typedef retTy(^name)()
#endif /* __has_feature(blocks) */
#define CALL_BLOCK(block, args...) ((NULL != block) ? CALL_NON_NULL_BLOCK(block, args) : nil)
#define CALL_BLOCK_NO_ARGS(block) ((NULL != block) ? CALL_NON_NULL_BLOCK_NO_ARGS(block) : nil)
#define CALL_BLOCK(block, args...) ({if (NULL != block) CALL_NON_NULL_BLOCK(block, args);})
#define CALL_BLOCK_RET(block, rettype, args...) ((NULL != block) ? (rettype)CALL_NON_NULL_BLOCK(block, args) : (rettype)0)
#define CALL_BLOCK_NO_ARGS(block) ({if (NULL != block) CALL_NON_NULL_BLOCK_NO_ARGS(block);})
#define CALL_BLOCK_RET_NO_ARGS(block, rettype) ((NULL != block) ? (rettype)CALL_NON_NULL_BLOCK_NO_ARGS(block) : (rettype)0)
#if __has_include(<objc/blocks_runtime.h>)
# include <objc/blocks_runtime.h>

Some files were not shown because too many files have changed in this diff Show more