mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 08:21:25 +00:00
NSUserDefaults: Retrieve native UI languages from Windows and Android System APIs (#426)
* Create NSString Win32Additions Category * NSUserDefaults: Fetch Windows UI language information * NSUserDefaults: Add winnls include * Android Native UI Language * NSUserDefaults: Replace incorrect separator on Windows * NSProcessInfo: BCP-47 Note * GSConfig: Bump MinGW WINVER to Vista * NSString+Win32Additions: Do not add array to arp twice * NSUserDefaults: Increase default length
This commit is contained in:
parent
726777bf6e
commit
81b3c721bc
6 changed files with 229 additions and 4 deletions
|
@ -37,6 +37,7 @@ win32_OBJC_FILES =\
|
|||
NSMessagePortNameServer.m \
|
||||
NSStream.m \
|
||||
NSUserDefaults.m \
|
||||
NSString+Win32Additions.m\
|
||||
|
||||
-include Makefile.preamble
|
||||
|
||||
|
|
40
Source/win32/NSString+Win32Additions.h
Normal file
40
Source/win32/NSString+Win32Additions.h
Normal file
|
@ -0,0 +1,40 @@
|
|||
/** Category for converting Windows Strings
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
|
||||
Written by: Hugo Melder <hugo@algoriddim.com>
|
||||
Created: July 2024
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#import <Foundation/NSString.h>
|
||||
|
||||
#include <wchar.h>
|
||||
|
||||
/**
|
||||
* Converts a wchar_t list to an array of strings.
|
||||
* The list is NULL-delimited and terminated by two NULL (wchar_t) characters.
|
||||
*
|
||||
* The encoding is Unicode (UTF-16LE).
|
||||
*/
|
||||
@interface NSString (Win32Additions)
|
||||
|
||||
+ (GS_GENERIC_CLASS(NSArray, NSString *) *) arrayFromWCharList: (wchar_t *)list
|
||||
length: (unsigned long)length;
|
||||
|
||||
@end
|
45
Source/win32/NSString+Win32Additions.m
Normal file
45
Source/win32/NSString+Win32Additions.m
Normal file
|
@ -0,0 +1,45 @@
|
|||
/** Category for converting Windows Strings
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
|
||||
Written by: Hugo Melder <hugo@algoriddim.com>
|
||||
Created: July 2024
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#import "NSString+Win32Additions.h"
|
||||
|
||||
@implementation NSString (Win32Additions)
|
||||
|
||||
+ (GS_GENERIC_CLASS(NSArray, NSString *) *) arrayFromWCharList: (wchar_t *)list
|
||||
length: (unsigned long)length
|
||||
{
|
||||
NSString *string;
|
||||
GS_GENERIC_CLASS(NSArray, NSString *) * array;
|
||||
|
||||
string = [[NSString alloc] initWithBytes: list
|
||||
length: (length - 2) * sizeof(wchar_t)
|
||||
encoding: NSUTF16LittleEndianStringEncoding];
|
||||
|
||||
array = [string componentsSeparatedByString: @"\0"];
|
||||
RELEASE(string);
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
@end
|
Loading…
Add table
Add a link
Reference in a new issue