mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-08-02 16:00:30 +00:00
Add C definition
Inline MAX_PATH, MAX_DEFAULTCHAR, MAX_LEADBYTES
This commit is contained in:
parent
4b11c2d832
commit
57eab10502
5 changed files with 43 additions and 7 deletions
|
@ -12,6 +12,7 @@
|
||||||
#include "libc/nt/files.h"
|
#include "libc/nt/files.h"
|
||||||
#include "libc/nt/ipc.h"
|
#include "libc/nt/ipc.h"
|
||||||
#include "libc/nt/memory.h"
|
#include "libc/nt/memory.h"
|
||||||
|
#include "libc/nt/nls.h"
|
||||||
#include "libc/nt/paint.h"
|
#include "libc/nt/paint.h"
|
||||||
#include "libc/nt/process.h"
|
#include "libc/nt/process.h"
|
||||||
#include "libc/nt/registry.h"
|
#include "libc/nt/registry.h"
|
||||||
|
|
|
@ -49,6 +49,7 @@ COSMOPOLITAN_C_START_
|
||||||
intptr_t LoadResource(int64_t hModule, int64_t hResInfo);
|
intptr_t LoadResource(int64_t hModule, int64_t hResInfo);
|
||||||
uint32_t SetHandleCount(uint32_t uNumber);
|
uint32_t SetHandleCount(uint32_t uNumber);
|
||||||
uint32_t GetLogicalDrives(void);
|
uint32_t GetLogicalDrives(void);
|
||||||
|
uint32_t GetLogicalDriveStringsA(uint32_t nBufferLength, char *lpBuffer);
|
||||||
bool32 FlushFileBuffers(int64_t hFile);
|
bool32 FlushFileBuffers(int64_t hFile);
|
||||||
|
|
||||||
int64_t ReOpenFile(int64_t hOriginalFile, uint32_t dwDesiredAccess,
|
int64_t ReOpenFile(int64_t hOriginalFile, uint32_t dwDesiredAccess,
|
||||||
|
@ -205,6 +206,7 @@ uint32_t GetFinalPathNameByHandle(int64_t hFile, char16_t *out_path,
|
||||||
|
|
||||||
uint32_t GetFullPathName(const char16_t *lpFileName, uint32_t nBufferLength,
|
uint32_t GetFullPathName(const char16_t *lpFileName, uint32_t nBufferLength,
|
||||||
char16_t *lpBuffer, char16_t **lpFilePart);
|
char16_t *lpBuffer, char16_t **lpFilePart);
|
||||||
|
uint32_t GetShortPathName(const char16_t *lpszLongPath, char16_t *out_lpszShortPath, uint32_t cchBuffer);
|
||||||
|
|
||||||
bool32 GetOverlappedResult(int64_t hFile, struct NtOverlapped *lpOverlapped,
|
bool32 GetOverlappedResult(int64_t hFile, struct NtOverlapped *lpOverlapped,
|
||||||
uint32_t *lpNumberOfBytesTransferred, bool32 bWait);
|
uint32_t *lpNumberOfBytesTransferred, bool32 bWait);
|
||||||
|
|
35
libc/nt/nls.h
Normal file
35
libc/nt/nls.h
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#ifndef COSMOPOLITAN_LIBC_NT_NLS_H_
|
||||||
|
#define COSMOPOLITAN_LIBC_NT_NLS_H_
|
||||||
|
#include "libc/nt/struct/cpinfoex.h"
|
||||||
|
/* ░░░░
|
||||||
|
▒▒▒░░░▒▒▒▒▒▒▒▓▓▓░
|
||||||
|
▒▒▒▒░░░▒▒▒▒▒▒▓▓▓▓▓▓░
|
||||||
|
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▒▓░
|
||||||
|
▒▒▒░░░░▒▒▒▒▒▒▓▓▓▓▓▓ ▓▓▓▓▓▓▒ ▒▒▒▓▓█
|
||||||
|
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||||||
|
░▒▒▒░░░░▒▒▒▒▒▒▓▓▓▓▓▓ █▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||||||
|
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓░ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||||||
|
▒▒▒▒░░░▒▒▒▒▒▒▒▓▓▓▓▓▓ ▒▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▒
|
||||||
|
▒▒▒▒▓▓ ▓▒▒▓▓▓▓ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||||||
|
▒▓ ▓▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓
|
||||||
|
░░░░░░░░░░░▒▒▒▒ ▓▓▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓█
|
||||||
|
▒▒░░░░░░░░░░▒▒▒▒▒▓▓▓ ▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▓▓▓
|
||||||
|
░▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓░ ░▓███▓
|
||||||
|
▒▒░░░░░░░░░░▒▒▒▒▒▓▓░ ▒▓▓▓▒▒▒ ░▒▒▒▓ ████████████
|
||||||
|
▒▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▒▓▓▓▓▒▒▒▒▒▒▒▒░░░▒▒▒▒▒░ ░███
|
||||||
|
▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▓ ███
|
||||||
|
▒▒░░░░░░░░░░▒▒▒▒▒▒▓▓ ▒▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▒ ▓██
|
||||||
|
▒░░░░░░░░░░░▒▒▒▒▒▓▓ ▓▓▓▓▒▒▒▒▒▒▒▒░░░▒▒▒▒▒▓ ▓██
|
||||||
|
▒▒░░░▒▒▒░░░▒▒░▒▒▒▓▓▒ ▒▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▒ ███
|
||||||
|
░▒▓ ░▓▓▓▓▒▒▒▒▒▒▒▒░░░░▒▒▒▒▓ ▓██
|
||||||
|
╔────────────────────────────────────────────────────────────────▀▀▀─────────│─╗
|
||||||
|
│ cosmopolitan § new technology » internationalization ─╬─│┼
|
||||||
|
╚────────────────────────────────────────────────────────────────────────────│*/
|
||||||
|
COSMOPOLITAN_C_START_
|
||||||
|
|
||||||
|
uint32_t GetOEMCP();
|
||||||
|
uint32_t GetACP();
|
||||||
|
bool32 GetCPInfoEx(uint32_t CodePage, uint32_t dwFlags, struct NtCpInfoEx *out_lpCPInfoEx) paramsnonnull((3));
|
||||||
|
|
||||||
|
COSMOPOLITAN_C_END_
|
||||||
|
#endif /* COSMOPOLITAN_LIBC_NT_NLS_H_ */
|
|
@ -51,6 +51,8 @@ int RegOpenKey(int64_t hKey, const char16_t *opt_lpSubKey,
|
||||||
int RegOpenKeyEx(int64_t hKey, const char16_t *opt_lpSubKey,
|
int RegOpenKeyEx(int64_t hKey, const char16_t *opt_lpSubKey,
|
||||||
uint32_t opt_ulOptions, int samDesired, int64_t *out_phkResult)
|
uint32_t opt_ulOptions, int samDesired, int64_t *out_phkResult)
|
||||||
paramsnonnull((5));
|
paramsnonnull((5));
|
||||||
|
int RegOpenKeyExA(int64_t hKey, const char *opt_lpSubKey, uint32_t opt_ulOptions,
|
||||||
|
int samDesired, int64_t *out_phkResult) paramsnonnull((5));
|
||||||
int RegCloseKey(int64_t hKey);
|
int RegCloseKey(int64_t hKey);
|
||||||
|
|
||||||
int RegGetValue(int64_t hkey, const char16_t *opt_lpSubKey,
|
int RegGetValue(int64_t hkey, const char16_t *opt_lpSubKey,
|
||||||
|
|
|
@ -1,17 +1,13 @@
|
||||||
#ifndef COSMOPOLITAN_LIBC_NT_STRUCT_CPINFOEX_H_
|
#ifndef COSMOPOLITAN_LIBC_NT_STRUCT_CPINFOEX_H_
|
||||||
#define COSMOPOLITAN_LIBC_NT_STRUCT_CPINFOEX_H_
|
#define COSMOPOLITAN_LIBC_NT_STRUCT_CPINFOEX_H_
|
||||||
|
|
||||||
#define MAX_LEADBYTES 12
|
|
||||||
#define MAX_DEFAULTCHAR 2
|
|
||||||
#define MAX_PATH 260
|
|
||||||
|
|
||||||
struct NtCpInfoEx {
|
struct NtCpInfoEx {
|
||||||
uint32_t MaxCharSize;
|
uint32_t MaxCharSize;
|
||||||
uint8_t DefaultChar[MAX_DEFAULTCHAR];
|
uint8_t DefaultChar[2];
|
||||||
uint8_t LeadByte[MAX_LEADBYTES];
|
uint8_t LeadByte[12];
|
||||||
char16_t UnicodeDefaultChar;
|
char16_t UnicodeDefaultChar;
|
||||||
uint32_t CodePage;
|
uint32_t CodePage;
|
||||||
char16_t CodePageName[MAX_PATH]
|
char16_t CodePageName[260];
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* COSMOPOLITAN_LIBC_NT_STRUCT_CPINFOEX_H_ */
|
#endif /* COSMOPOLITAN_LIBC_NT_STRUCT_CPINFOEX_H_ */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue