Fix finding 32-bit LLW from 64-bit; fix \e[K; release v1.65.
This commit is contained in:
parent
1448c72b66
commit
75a65af4d6
5
ANSI.c
5
ANSI.c
@ -104,6 +104,9 @@
|
|||||||
|
|
||||||
v1.64, 2 August, 2013:
|
v1.64, 2 August, 2013:
|
||||||
better method of determining a console handle (see IsConsoleHandle).
|
better method of determining a console handle (see IsConsoleHandle).
|
||||||
|
|
||||||
|
v1.65, 28 August, 2013:
|
||||||
|
fix \e[K (was using window, not buffer).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ansicon.h"
|
#include "ansicon.h"
|
||||||
@ -547,7 +550,7 @@ void InterpretEscSeq( void )
|
|||||||
switch (es_argv[0])
|
switch (es_argv[0])
|
||||||
{
|
{
|
||||||
case 0: // ESC[0K Clear to end of line
|
case 0: // ESC[0K Clear to end of line
|
||||||
len = Info.srWindow.Right - Info.dwCursorPosition.X + 1;
|
len = Info.dwSize.X - Info.dwCursorPosition.X + 1;
|
||||||
FillConsoleOutputCharacter( hConOut, ' ', len,
|
FillConsoleOutputCharacter( hConOut, ' ', len,
|
||||||
Info.dwCursorPosition,
|
Info.dwCursorPosition,
|
||||||
&NumberOfCharsWritten );
|
&NumberOfCharsWritten );
|
||||||
|
@ -78,7 +78,7 @@
|
|||||||
don't write the reset sequence if output is redirected.
|
don't write the reset sequence if output is redirected.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define PDATE L"2 August, 2013"
|
#define PDATE L"4 September, 2013"
|
||||||
|
|
||||||
#include "ansicon.h"
|
#include "ansicon.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
|
10
injdll32.c
10
injdll32.c
@ -32,10 +32,11 @@ TWow64SetThreadContext Wow64SetThreadContext;
|
|||||||
#define GetThreadContext Wow64GetThreadContext
|
#define GetThreadContext Wow64GetThreadContext
|
||||||
#define SetThreadContext Wow64SetThreadContext
|
#define SetThreadContext Wow64SetThreadContext
|
||||||
|
|
||||||
#define MakeVA( cast, offset ) (cast)((DWORD_PTR)base + (DWORD)(offset))
|
#define MakeVA( cast, offset ) (cast)((DWORD_PTR)pDosHeader + (DWORD)(offset))
|
||||||
|
|
||||||
extern DWORD LLW32;
|
extern DWORD LLW32;
|
||||||
LPVOID base;
|
LPVOID base;
|
||||||
|
static PIMAGE_DOS_HEADER pDosHeader;
|
||||||
|
|
||||||
int export_cmp( const void* a, const void* b )
|
int export_cmp( const void* a, const void* b )
|
||||||
{
|
{
|
||||||
@ -54,7 +55,6 @@ BOOL get_LLW32( void )
|
|||||||
HMODULE kernel32;
|
HMODULE kernel32;
|
||||||
TCHAR buf[MAX_PATH];
|
TCHAR buf[MAX_PATH];
|
||||||
UINT len;
|
UINT len;
|
||||||
PIMAGE_DOS_HEADER pDosHeader;
|
|
||||||
PIMAGE_NT_HEADERS32 pNTHeader;
|
PIMAGE_NT_HEADERS32 pNTHeader;
|
||||||
PIMAGE_EXPORT_DIRECTORY pExportDir;
|
PIMAGE_EXPORT_DIRECTORY pExportDir;
|
||||||
PDWORD fun_table, name_table;
|
PDWORD fun_table, name_table;
|
||||||
@ -63,7 +63,7 @@ BOOL get_LLW32( void )
|
|||||||
|
|
||||||
len = GetSystemWow64Directory( buf, MAX_PATH );
|
len = GetSystemWow64Directory( buf, MAX_PATH );
|
||||||
wcscpy( buf + len, L"\\kernel32.dll" );
|
wcscpy( buf + len, L"\\kernel32.dll" );
|
||||||
// MinGW-w64 has a typo, calling it LINRARY.
|
// MinGW-w64 had a typo, calling it LINRARY.
|
||||||
kernel32 = LoadLibraryEx( buf, NULL, 0x20/*LOAD_LIBRARY_AS_IMAGE_RESOURCE*/ );
|
kernel32 = LoadLibraryEx( buf, NULL, 0x20/*LOAD_LIBRARY_AS_IMAGE_RESOURCE*/ );
|
||||||
if (kernel32 == NULL)
|
if (kernel32 == NULL)
|
||||||
{
|
{
|
||||||
@ -71,9 +71,7 @@ BOOL get_LLW32( void )
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
// The handle uses low bits as flags, so strip 'em off.
|
// The handle uses low bits as flags, so strip 'em off.
|
||||||
base = (LPVOID)((DWORD_PTR)kernel32 & ~0xFFFF);
|
pDosHeader = (PIMAGE_DOS_HEADER)((DWORD_PTR)kernel32 & ~0xFFFF);
|
||||||
|
|
||||||
pDosHeader = (PIMAGE_DOS_HEADER)base;
|
|
||||||
pNTHeader = MakeVA( PIMAGE_NT_HEADERS32, pDosHeader->e_lfanew );
|
pNTHeader = MakeVA( PIMAGE_NT_HEADERS32, pDosHeader->e_lfanew );
|
||||||
pExportDir = MakeVA( PIMAGE_EXPORT_DIRECTORY,
|
pExportDir = MakeVA( PIMAGE_EXPORT_DIRECTORY,
|
||||||
pNTHeader->OptionalHeader.
|
pNTHeader->OptionalHeader.
|
||||||
|
12
readme.txt
12
readme.txt
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
Copyright 2005-2013 Jason Hood
|
Copyright 2005-2013 Jason Hood
|
||||||
|
|
||||||
Version 1.64. Freeware
|
Version 1.65. Freeware
|
||||||
|
|
||||||
|
|
||||||
Description
|
Description
|
||||||
@ -270,6 +270,10 @@ Version History
|
|||||||
|
|
||||||
Legend: + added, - bug-fixed, * changed.
|
Legend: + added, - bug-fixed, * changed.
|
||||||
|
|
||||||
|
1.65 - 4 September, 2013:
|
||||||
|
- fix finding 32-bit LoadLibraryW address from 64-bit;
|
||||||
|
- fix \e[K (was using window, not buffer).
|
||||||
|
|
||||||
1.64 - 2 August, 2013:
|
1.64 - 2 August, 2013:
|
||||||
- improved detection of console output.
|
- improved detection of console output.
|
||||||
|
|
||||||
@ -425,6 +429,8 @@ Acknowledgments
|
|||||||
|
|
||||||
Leigh Hebblethwaite for documentation tweaks.
|
Leigh Hebblethwaite for documentation tweaks.
|
||||||
|
|
||||||
|
Vincent Fatica for pointing out \e[K was not right.
|
||||||
|
|
||||||
|
|
||||||
Contact
|
Contact
|
||||||
=======
|
=======
|
||||||
@ -452,5 +458,5 @@ Distribution
|
|||||||
in LICENSE.txt.
|
in LICENSE.txt.
|
||||||
|
|
||||||
|
|
||||||
===========================
|
==============================
|
||||||
Jason Hood, 2 August, 2013.
|
Jason Hood, 4 September, 2013.
|
||||||
|
10
version.h
10
version.h
@ -2,11 +2,11 @@
|
|||||||
version.h - Version defines.
|
version.h - Version defines.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define PVERS L"1.64" // wide string
|
#define PVERS L"1.65" // wide string
|
||||||
#define PVERSA "1.64" // ANSI string (windres 2.16.91 didn't like L)
|
#define PVERSA "1.65" // ANSI string (windres 2.16.91 didn't like L)
|
||||||
#define PVERE L"164" // wide environment string
|
#define PVERE L"165" // wide environment string
|
||||||
#define PVEREA "164" // ANSI environment string
|
#define PVEREA "165" // ANSI environment string
|
||||||
#define PVERB 1,6,4,0 // binary (resource)
|
#define PVERB 1,6,5,0 // binary (resource)
|
||||||
|
|
||||||
#ifdef _WIN64
|
#ifdef _WIN64
|
||||||
# define BITS L"64"
|
# define BITS L"64"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user