Skip to content

Commit

Permalink
Enforce clang-format style
Browse files Browse the repository at this point in the history
  • Loading branch information
jchv committed Jul 23, 2024
1 parent 9e54080 commit b93b487
Show file tree
Hide file tree
Showing 9 changed files with 467 additions and 443 deletions.
16 changes: 16 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Format
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: DeterminateSystems/nix-installer-action@v11
- uses: DeterminateSystems/magic-nix-cache-action@v6
- name: Check formatting
run: nix develop --command clang-format --dry-run -Werror src/**.c src/**.h
7 changes: 3 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Nix
uses: cachix/install-nix-action@v19
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: DeterminateSystems/nix-installer-action@v11
- uses: DeterminateSystems/magic-nix-cache-action@v6
- uses: DeterminateSystems/flake-checker-action@v7
- name: Configure
run: nix develop --command make -j8 all
- name: Upload
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Nix
uses: cachix/install-nix-action@v19
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: DeterminateSystems/nix-installer-action@v11
- uses: DeterminateSystems/magic-nix-cache-action@v6
- name: Compile
run: nix develop --command make -j8 all
- name: Create Release
Expand Down
4 changes: 3 additions & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@
};

# Dev shell
devShell = pkgs.mkShell { nativeBuildInputs = nativeBuildInputs ++ nativeCheckInputs; };
devShell = pkgs.mkShell {
nativeBuildInputs = nativeBuildInputs ++ nativeCheckInputs ++ [ pkgs.clang-tools ];
};

# Clangd setup
setupClangd = pkgs.writeShellScriptBin "setup-clangd.sh" ''
Expand Down
162 changes: 89 additions & 73 deletions src/common-fnptr.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,18 @@
#ifdef __MINGW32__

typedef struct _DNS_QUERY_REQUEST {
ULONG Version;
PCWSTR QueryName;
WORD QueryType;
ULONG64 QueryOptions;
PVOID pDnsServerList;
ULONG InterfaceIndex;
PVOID pQueryCompletionCallback;
PVOID pQueryContext;
ULONG Version;
PCWSTR QueryName;
WORD QueryType;
ULONG64 QueryOptions;
PVOID pDnsServerList;
ULONG InterfaceIndex;
PVOID pQueryCompletionCallback;
PVOID pQueryContext;
} DNS_QUERY_REQUEST, *PDNS_QUERY_REQUEST;

typedef struct _DNS_QUERY_CANCEL {
CHAR Reserved[32];
CHAR Reserved[32];
} DNS_QUERY_CANCEL, *PDNS_QUERY_CANCEL;

#endif
Expand All @@ -39,84 +39,100 @@ typedef struct tagINITCOMMONCONTROLSEX {
typedef BOOL(STDCALL *PFNINITCOMMONCONTROLSEXPROC)(const INITCOMMONCONTROLSEX *picce);

// general
typedef BOOL (WINAPI *PFNDLLMAINPROC)(HANDLE, DWORD, LPVOID);
typedef BOOL(WINAPI *PFNDLLMAINPROC)(HANDLE, DWORD, LPVOID);

// ws2_32.dll
typedef int (STDCALL *PFNCONNECTPROC)(SOCKET, const struct sockaddr *, int);
typedef BOOL (STDCALL *PFNCONNECTEXPROC)(SOCKET, const struct sockaddr *, int, PVOID, DWORD, LPDWORD, LPOVERLAPPED);
typedef int (STDCALL *PFNWSACONNECTPROC)(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS);
typedef WORD (WSAAPI *PFNHTONSPROC)(WORD);
typedef INT (WSAAPI *PFNGETADDRINFO)(PCSTR, PCSTR, const PADDRINFOA, PADDRINFOA*);
typedef VOID (WSAAPI *PFNFREEADDRINFO)(PADDRINFOA);
typedef int(STDCALL *PFNCONNECTPROC)(SOCKET, const struct sockaddr *, int);
typedef BOOL(STDCALL *PFNCONNECTEXPROC)(SOCKET, const struct sockaddr *, int, PVOID, DWORD, LPDWORD,
LPOVERLAPPED);
typedef int(STDCALL *PFNWSACONNECTPROC)(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF,
LPQOS, LPQOS);
typedef WORD(WSAAPI *PFNHTONSPROC)(WORD);
typedef INT(WSAAPI *PFNGETADDRINFO)(PCSTR, PCSTR, const PADDRINFOA, PADDRINFOA *);
typedef VOID(WSAAPI *PFNFREEADDRINFO)(PADDRINFOA);

// dnsapi.dll
typedef DNS_STATUS (STDCALL *PFNDNSQUERYEXPROC)(PDNS_QUERY_REQUEST pQueryRequest, PDNS_QUERY_RESULT pQueryResults, PDNS_QUERY_CANCEL pCancelHandle);
typedef DNS_STATUS(STDCALL *PFNDNSQUERYEXPROC)(PDNS_QUERY_REQUEST pQueryRequest,
PDNS_QUERY_RESULT pQueryResults,
PDNS_QUERY_CANCEL pCancelHandle);

// advapi32.dll
typedef BOOL (STDCALL *PFNCRYPTDECRYPTPROC)(HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE *, DWORD *);
typedef BOOL (STDCALL *PFNCRYPTGETHASHPARAMPROC)(HCRYPTHASH, DWORD, BYTE*, DWORD*, DWORD);
typedef BOOL (STDCALL *PFNCRYPTVERIFYSIGNATUREAPROC)(HCRYPTHASH, CONST BYTE *, DWORD, HCRYPTKEY, LPCSTR, DWORD);
typedef BOOL (STDCALL *PFNCRYPTIMPORTKEYPROC)(HCRYPTPROV, CONST BYTE *, DWORD, HCRYPTKEY, DWORD, HCRYPTKEY *);
typedef BOOL(STDCALL *PFNCRYPTDECRYPTPROC)(HCRYPTKEY, HCRYPTHASH, BOOL, DWORD, BYTE *, DWORD *);
typedef BOOL(STDCALL *PFNCRYPTGETHASHPARAMPROC)(HCRYPTHASH, DWORD, BYTE *, DWORD *, DWORD);
typedef BOOL(STDCALL *PFNCRYPTVERIFYSIGNATUREAPROC)(HCRYPTHASH, CONST BYTE *, DWORD, HCRYPTKEY,
LPCSTR, DWORD);
typedef BOOL(STDCALL *PFNCRYPTIMPORTKEYPROC)(HCRYPTPROV, CONST BYTE *, DWORD, HCRYPTKEY, DWORD,
HCRYPTKEY *);

// user32.dll
typedef int (STDCALL *PFNMESSAGEBOXAPROC)(HWND, LPCSTR, LPCSTR, UINT);
typedef HWND (STDCALL *PFNCREATEWINDOWEXAPROC)(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID);
typedef LRESULT (STDCALL *PFNSENDMESSAGEPROC)(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
typedef BOOL (STDCALL *PFNPEEKMESSAGEAPROC)(LPMSG, HWND, UINT, UINT, UINT);
typedef BOOL (STDCALL *PFNGETMESSAGEAPROC)(LPMSG, HWND, UINT, UINT);
typedef UINT_PTR (STDCALL *PFNSETTIMERPROC)(HWND, UINT_PTR, UINT, TIMERPROC);
typedef int (STDCALL *PFNWVSPRINTFAPROC)(LPSTR, LPCSTR, void *);
typedef int(STDCALL *PFNMESSAGEBOXAPROC)(HWND, LPCSTR, LPCSTR, UINT);
typedef HWND(STDCALL *PFNCREATEWINDOWEXAPROC)(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int,
HWND, HMENU, HINSTANCE, LPVOID);
typedef LRESULT(STDCALL *PFNSENDMESSAGEPROC)(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
typedef BOOL(STDCALL *PFNPEEKMESSAGEAPROC)(LPMSG, HWND, UINT, UINT, UINT);
typedef BOOL(STDCALL *PFNGETMESSAGEAPROC)(LPMSG, HWND, UINT, UINT);
typedef UINT_PTR(STDCALL *PFNSETTIMERPROC)(HWND, UINT_PTR, UINT, TIMERPROC);
typedef int(STDCALL *PFNWVSPRINTFAPROC)(LPSTR, LPCSTR, void *);

// kernel32.dll
typedef HMODULE (STDCALL *PFNLOADLIBRARYAPROC)(LPCSTR);
typedef VOID (STDCALL *PFNFREELIBRARYPROC)(HMODULE);
typedef FARPROC (STDCALL *PFNGETPROCADDRESSPROC)(HMODULE, LPCSTR);
typedef DWORD (STDCALL *PFNGETENVIRONMENTVARIABLEAPROC)(LPCSTR, LPSTR, DWORD);
typedef BOOL (STDCALL *PFNCREATEPROCESSAPROC)(LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION);
typedef BOOL (STDCALL *PFNISWOW64PROCESSPROC)(HANDLE, PBOOL);
typedef HANDLE (STDCALL *PFNCREATEFILEAPROC)(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE);
typedef HANDLE (STDCALL *PFNCREATEFILEMAPPINGAPROC)(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR);
typedef HANDLE (STDCALL *PFNOPENMUTEXAPROC)(DWORD, BOOL, LPCSTR);
typedef HANDLE (STDCALL *PFNCREATEMUTEXAPROC)(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR);
typedef DWORD (STDCALL *PFNGETCURRENTTHREADIDPROC)(VOID);
typedef DWORD (STDCALL *PFNGETCURRENTPROCESSIDPROC)(VOID);
typedef VOID (STDCALL *PFNSLEEPPROC)(DWORD);
typedef DWORD (STDCALL *PFNSLEEPEXPROC)(DWORD, BOOL);
typedef DWORD (STDCALL *PFNWAITFORSINGLEOBJECTPROC)(HANDLE, DWORD);
typedef HANDLE (STDCALL *PFNOPENEVENTAPROC)(DWORD, BOOL, LPCSTR);
typedef HANDLE (STDCALL *PFNCREATEEVENTAPROC)(LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCSTR lpName);
typedef BOOL (STDCALL *PFNGETEXITCODEPROCESSPROC)(HANDLE hProcess, LPDWORD lpExitCode);
typedef HLOCAL (STDCALL *PFNLOCALALLOCPROC)(UINT, UINT);
typedef HLOCAL (STDCALL *PFNLOCALFREEPROC)(HLOCAL);
typedef HMODULE (STDCALL *PFNGETMODULEHANDLEAPROC)(LPCSTR);
typedef DWORD (STDCALL *PFNGETMODULEFILENAMEAPROC)(HMODULE, LPCH, DWORD);
typedef DWORD (STDCALL *PFNGETFILEATTRIBUTESAPROC)(LPCSTR);
typedef VOID (STDCALL *PFNEXITPROCESSPROC)(UINT);
typedef DWORD (STDCALL *PFNGETFILESIZEPROC)(HANDLE, LPDWORD);
typedef BOOL (STDCALL *PFNREADFILEPROC)(HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED);
typedef BOOL (STDCALL *PFNWRITEFILEPROC)(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED);
typedef BOOL (STDCALL *PFNCLOSEHANDLEPROC)(HANDLE);
typedef LPSTR (STDCALL *PFNLSTRCPYAPROC)(LPSTR, LPCSTR);
typedef DWORD (STDCALL *PFNGETLASTERRORPROC)(VOID);
typedef BOOL (STDCALL *PFNSETENVIRONMENTVARIABLEAPROC)(LPCSTR, LPCSTR);
typedef BOOL (STDCALL *PFNVIRTUALPROTECTEXPROC)(HANDLE, LPVOID, SIZE_T, DWORD, PDWORD);
typedef BOOL (STDCALL *PFNREADPROCESSMEMORYPROC)(HANDLE, LPCVOID, LPVOID, SIZE_T, SIZE_T *);
typedef BOOL (STDCALL *PFNWRITEPROCESSMEMORYPROC)(HANDLE, LPVOID, LPCVOID, SIZE_T, SIZE_T *);
typedef BOOL (STDCALL *PFNFLUSHINSTRUCTIONCACHEPROC)(HANDLE, LPCVOID, SIZE_T);
typedef BOOL (STDCALL *PFNVIRTUALPROTECTPROC)(LPVOID, SIZE_T, DWORD, PDWORD);
typedef HANDLE (STDCALL *PFNGETCURRENTPROCESSPROC)(VOID);
typedef HANDLE (STDCALL *PFNCREATETHREADPROC)(LPSECURITY_ATTRIBUTES, SIZE_T, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD);
typedef HANDLE (STDCALL *PFNGETSTDHANDLEPROC)(DWORD);
typedef SIZE_T (STDCALL *PFNVIRTUALQUERYPROC)(LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, SIZE_T dwLength);
typedef VOID (STDCALL *PFNGETSTARTUPINFOAPROC)(LPSTARTUPINFOA lpStartupInfo);
typedef VOID (STDCALL *PFNGETSTARTUPINFOWPROC)(LPSTARTUPINFOW lpStartupInfo);
typedef HMODULE(STDCALL *PFNLOADLIBRARYAPROC)(LPCSTR);
typedef VOID(STDCALL *PFNFREELIBRARYPROC)(HMODULE);
typedef FARPROC(STDCALL *PFNGETPROCADDRESSPROC)(HMODULE, LPCSTR);
typedef DWORD(STDCALL *PFNGETENVIRONMENTVARIABLEAPROC)(LPCSTR, LPSTR, DWORD);
typedef BOOL(STDCALL *PFNCREATEPROCESSAPROC)(LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES,
LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCSTR,
LPSTARTUPINFOA, LPPROCESS_INFORMATION);
typedef BOOL(STDCALL *PFNISWOW64PROCESSPROC)(HANDLE, PBOOL);
typedef HANDLE(STDCALL *PFNCREATEFILEAPROC)(LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD,
DWORD, HANDLE);
typedef HANDLE(STDCALL *PFNCREATEFILEMAPPINGAPROC)(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD,
DWORD, LPCSTR);
typedef HANDLE(STDCALL *PFNOPENMUTEXAPROC)(DWORD, BOOL, LPCSTR);
typedef HANDLE(STDCALL *PFNCREATEMUTEXAPROC)(LPSECURITY_ATTRIBUTES, BOOL, LPCSTR);
typedef DWORD(STDCALL *PFNGETCURRENTTHREADIDPROC)(VOID);
typedef DWORD(STDCALL *PFNGETCURRENTPROCESSIDPROC)(VOID);
typedef VOID(STDCALL *PFNSLEEPPROC)(DWORD);
typedef DWORD(STDCALL *PFNSLEEPEXPROC)(DWORD, BOOL);
typedef DWORD(STDCALL *PFNWAITFORSINGLEOBJECTPROC)(HANDLE, DWORD);
typedef HANDLE(STDCALL *PFNOPENEVENTAPROC)(DWORD, BOOL, LPCSTR);
typedef HANDLE(STDCALL *PFNCREATEEVENTAPROC)(LPSECURITY_ATTRIBUTES lpEventAttributes,
BOOL bManualReset, BOOL bInitialState, LPCSTR lpName);
typedef BOOL(STDCALL *PFNGETEXITCODEPROCESSPROC)(HANDLE hProcess, LPDWORD lpExitCode);
typedef HLOCAL(STDCALL *PFNLOCALALLOCPROC)(UINT, UINT);
typedef HLOCAL(STDCALL *PFNLOCALFREEPROC)(HLOCAL);
typedef HMODULE(STDCALL *PFNGETMODULEHANDLEAPROC)(LPCSTR);
typedef DWORD(STDCALL *PFNGETMODULEFILENAMEAPROC)(HMODULE, LPCH, DWORD);
typedef DWORD(STDCALL *PFNGETFILEATTRIBUTESAPROC)(LPCSTR);
typedef VOID(STDCALL *PFNEXITPROCESSPROC)(UINT);
typedef DWORD(STDCALL *PFNGETFILESIZEPROC)(HANDLE, LPDWORD);
typedef BOOL(STDCALL *PFNREADFILEPROC)(HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED);
typedef BOOL(STDCALL *PFNWRITEFILEPROC)(HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED);
typedef BOOL(STDCALL *PFNCLOSEHANDLEPROC)(HANDLE);
typedef LPSTR(STDCALL *PFNLSTRCPYAPROC)(LPSTR, LPCSTR);
typedef DWORD(STDCALL *PFNGETLASTERRORPROC)(VOID);
typedef BOOL(STDCALL *PFNSETENVIRONMENTVARIABLEAPROC)(LPCSTR, LPCSTR);
typedef BOOL(STDCALL *PFNVIRTUALPROTECTEXPROC)(HANDLE, LPVOID, SIZE_T, DWORD, PDWORD);
typedef BOOL(STDCALL *PFNREADPROCESSMEMORYPROC)(HANDLE, LPCVOID, LPVOID, SIZE_T, SIZE_T *);
typedef BOOL(STDCALL *PFNWRITEPROCESSMEMORYPROC)(HANDLE, LPVOID, LPCVOID, SIZE_T, SIZE_T *);
typedef BOOL(STDCALL *PFNFLUSHINSTRUCTIONCACHEPROC)(HANDLE, LPCVOID, SIZE_T);
typedef BOOL(STDCALL *PFNVIRTUALPROTECTPROC)(LPVOID, SIZE_T, DWORD, PDWORD);
typedef HANDLE(STDCALL *PFNGETCURRENTPROCESSPROC)(VOID);
typedef HANDLE(STDCALL *PFNCREATETHREADPROC)(LPSECURITY_ATTRIBUTES, SIZE_T, LPTHREAD_START_ROUTINE,
LPVOID, DWORD, LPDWORD);
typedef HANDLE(STDCALL *PFNGETSTDHANDLEPROC)(DWORD);
typedef SIZE_T(STDCALL *PFNVIRTUALQUERYPROC)(LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer,
SIZE_T dwLength);
typedef VOID(STDCALL *PFNGETSTARTUPINFOAPROC)(LPSTARTUPINFOA lpStartupInfo);
typedef VOID(STDCALL *PFNGETSTARTUPINFOWPROC)(LPSTARTUPINFOW lpStartupInfo);

// wininet.dll
typedef void (STDCALL *PFNINTERNETCONNECTAPROC)(HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR);
typedef HINTERNET (STDCALL *PFNINTERNETOPENURLAPROC)(HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR);
typedef void(STDCALL *PFNINTERNETCONNECTAPROC)(HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR,
DWORD, DWORD, DWORD_PTR);
typedef HINTERNET(STDCALL *PFNINTERNETOPENURLAPROC)(HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD,
DWORD_PTR);

// winmm.dll
typedef DWORD (STDCALL *PFNTIMEGETTIMEPROC)();
typedef DWORD(STDCALL *PFNTIMEGETTIMEPROC)();

// ijl15.dll
typedef int(STDCALL *PFNIJLGETLIBVERSIONPROC)();
Expand Down
4 changes: 2 additions & 2 deletions src/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ typedef enum _PANGYAVER {
PANGYA_BR,
PANGYA_TW,
PANGYA_US,
PANGYA_EU,
PANGYA_SEA
PANGYA_EU,
PANGYA_SEA
} PANGYAVER;

// C standard library functions
Expand Down
10 changes: 5 additions & 5 deletions src/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ typedef struct _PORTREWRITERULE {
} PORTREWRITERULE, *LPPORTREWRITERULE;

typedef struct _PATCHADDRESS {
DWORD addr;
LPSTR patch;
DWORD patchLen;
DWORD addr;
LPSTR patch;
DWORD patchLen;
} PATCHADDRESS, *LPPATCHADDRESS;

typedef struct _RUGBURNCONFIG {
Expand All @@ -32,8 +32,8 @@ typedef struct _RUGBURNCONFIG {
PORTREWRITERULE PortRewriteRules[MAXPORTREWRITES];
int NumPortRewriteRules;

PATCHADDRESS PatchAddress[MAXPATCHADDRESS];
int NumPatchAddress;
PATCHADDRESS PatchAddress[MAXPATCHADDRESS];
int NumPatchAddress;
} RUGBURNCONFIG, *LPRUGBURNCONFIG;

extern RUGBURNCONFIG Config;
Expand Down
86 changes: 43 additions & 43 deletions src/hex.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,29 +99,29 @@ void ParsePatch(LPCSTR lpszText, LPSTR *pDataOut, DWORD *pSizeOut) {
inPos = lpszText;
while (*inPos) {
switch (*inPos++) {
case '\\':
switch (*inPos++) {
case 'x':
if (ParseHex(*inPos++, &hexDigitVal) == FALSE) {
FatalError("ParsePatch: Bad hex escape near %s", inPos);
}
if (ParseHex(*inPos++, &hexDigitVal) == FALSE) {
FatalError("ParsePatch: Bad hex escape near %s", inPos);
}
(*pSizeOut)++;
break;
case '\\':
(*pSizeOut)++;
break;
case '\0':
FatalError("ParsePatch: Unexpected end of string in escape code");
break;
default:
FatalError("ParsePatch: Unknown escape code: %s", inPos);
case '\\':
switch (*inPos++) {
case 'x':
if (ParseHex(*inPos++, &hexDigitVal) == FALSE) {
FatalError("ParsePatch: Bad hex escape near %s", inPos);
}
if (ParseHex(*inPos++, &hexDigitVal) == FALSE) {
FatalError("ParsePatch: Bad hex escape near %s", inPos);
}
(*pSizeOut)++;
break;
default:
case '\\':
(*pSizeOut)++;
break;
case '\0':
FatalError("ParsePatch: Unexpected end of string in escape code");
break;
default:
FatalError("ParsePatch: Unknown escape code: %s", inPos);
}
break;
default:
(*pSizeOut)++;
}
}

Expand All @@ -133,32 +133,32 @@ void ParsePatch(LPCSTR lpszText, LPSTR *pDataOut, DWORD *pSizeOut) {
outPos = *pDataOut;
while (*inPos) {
switch (*inPos) {
case '\\':
inPos++;
switch (*inPos++) {
case 'x':
if (!ParseHex(*inPos++, &hexDigitVal)) {
FatalError("ParsePatch: Bad hex escape near %s", inPos);
}
hexOctetVal = hexDigitVal << 4;
if (!ParseHex(*inPos++, &hexDigitVal)) {
FatalError("ParsePatch: Bad hex escape near %s", inPos);
}
hexOctetVal |= hexDigitVal;
*outPos++ = (CHAR)(BYTE)hexOctetVal;
break;
case '\\':
*outPos++ = '\\';
break;
case '\0':
FatalError("ParsePatch: Unexpected end of string in escape code");
break;
default:
FatalError("ParsePatch: Unknown escape code: %s", inPos);
case '\\':
inPos++;
switch (*inPos++) {
case 'x':
if (!ParseHex(*inPos++, &hexDigitVal)) {
FatalError("ParsePatch: Bad hex escape near %s", inPos);
}
hexOctetVal = hexDigitVal << 4;
if (!ParseHex(*inPos++, &hexDigitVal)) {
FatalError("ParsePatch: Bad hex escape near %s", inPos);
}
hexOctetVal |= hexDigitVal;
*outPos++ = (CHAR)(BYTE)hexOctetVal;
break;
case '\\':
*outPos++ = '\\';
break;
case '\0':
FatalError("ParsePatch: Unexpected end of string in escape code");
break;
default:
*(outPos++) = *(inPos++);
FatalError("ParsePatch: Unknown escape code: %s", inPos);
}
break;
default:
*(outPos++) = *(inPos++);
}
}
}
Loading

0 comments on commit b93b487

Please sign in to comment.