Windows CE port fixes/enhancements (from <Someone>)
A few other fixes: - bug: text window does not scroll left on left arrow - pcmain.c: fix warning: _fileno() returns void* in Windows CE SDK 3.5.0 only: - files.c: compile error: don't include <signal.h> if NO_SIGNAL is defined. WinMo does not support POSIX signals - version.c: compile error: append_port_id() is undeclared - link error: mktime() is unsupported -> define it in celib.c -<Someone>
This commit is contained in:
@@ -2400,6 +2400,10 @@ E unsigned long FDECL(get_feature_notice_ver, (char *));
|
|||||||
E unsigned long NDECL(get_current_feature_ver);
|
E unsigned long NDECL(get_current_feature_ver);
|
||||||
E const char *FDECL(copyright_banner_line, (int));
|
E const char *FDECL(copyright_banner_line, (int));
|
||||||
|
|
||||||
|
#ifdef RUNTIME_PORT_ID
|
||||||
|
E void FDECL(append_port_id, (char *));
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ### video.c ### */
|
/* ### video.c ### */
|
||||||
|
|
||||||
#ifdef MSDOS
|
#ifdef MSDOS
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,4 @@
|
|||||||
/* NetHack 3.5 wceconf.h $Date$ $Revision$ */
|
/* NetHack 3.5 wceconf.h $Date$ $Revision$ */
|
||||||
/* SCCS Id: @(#)wceconf.h 3.5 2005/01/23 */
|
|
||||||
/* Copyright (C) 2001 by Alex Kompel */
|
/* Copyright (C) 2001 by Alex Kompel */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -272,6 +271,7 @@ struct tm {
|
|||||||
|
|
||||||
extern struct tm * __cdecl localtime(const time_t *);
|
extern struct tm * __cdecl localtime(const time_t *);
|
||||||
extern time_t __cdecl time(time_t *);
|
extern time_t __cdecl time(time_t *);
|
||||||
|
extern time_t __cdecl mktime(struct tm * tb);
|
||||||
|
|
||||||
/* __stdio.h__ */
|
/* __stdio.h__ */
|
||||||
#ifndef BUFSIZ
|
#ifndef BUFSIZ
|
||||||
|
|||||||
+1
-1
@@ -45,7 +45,7 @@ extern int errno;
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(UNIX) || defined(VMS) || defined(_MSC_VER)
|
#if defined(UNIX) || defined(VMS) || !defined(NO_SIGNAL)
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -1,5 +1,4 @@
|
|||||||
/* NetHack 3.5 pcmain.c $Date$ $Revision$ */
|
/* NetHack 3.5 pcmain.c $Date$ $Revision$ */
|
||||||
/* SCCS Id: @(#)pcmain.c 3.5 2008/01/30 */
|
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -236,7 +235,7 @@ char *argv[];
|
|||||||
*/
|
*/
|
||||||
if (!strncmp(argv[1], "-s", 2)) {
|
if (!strncmp(argv[1], "-s", 2)) {
|
||||||
#if defined(MSWIN_GRAPHICS) || defined(WIN32CON)
|
#if defined(MSWIN_GRAPHICS) || defined(WIN32CON)
|
||||||
int sfd = _fileno(stdout);
|
int sfd = (int)_fileno(stdout);
|
||||||
redirect_stdout = (sfd >= 0) ? !isatty(sfd) : 0;
|
redirect_stdout = (sfd >= 0) ? !isatty(sfd) : 0;
|
||||||
|
|
||||||
# ifdef MSWIN_GRAPHICS
|
# ifdef MSWIN_GRAPHICS
|
||||||
|
|||||||
+15
-1
@@ -1,5 +1,4 @@
|
|||||||
/* NetHack 3.5 celib.c $Date$ $Revision$ */
|
/* NetHack 3.5 celib.c $Date$ $Revision$ */
|
||||||
/* SCCS Id: @(#)celib.c 3.5 2005/01/23 */
|
|
||||||
/* Copyright (C) 2001 by Alex Kompel */
|
/* Copyright (C) 2001 by Alex Kompel */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -67,6 +66,21 @@ time_t __cdecl time(time_t * timeptr)
|
|||||||
return _t_cnv.t_val;
|
return _t_cnv.t_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
time_t __cdecl mktime(struct tm * tb)
|
||||||
|
{
|
||||||
|
if(!tb) return (time_t)-1;
|
||||||
|
|
||||||
|
_t_cnv.tm_val.yr = tb->tm_year;
|
||||||
|
_t_cnv.tm_val.mo = tb->tm_mon;
|
||||||
|
_t_cnv.tm_val.dd = tb->tm_mday;
|
||||||
|
_t_cnv.tm_val.hh = tb->tm_hour;
|
||||||
|
_t_cnv.tm_val.mm = tb->tm_min;
|
||||||
|
_t_cnv.tm_val.ss = tb->tm_sec;
|
||||||
|
_t_cnv.tm_val.wd = tb->tm_wday;
|
||||||
|
|
||||||
|
return _t_cnv.t_val;
|
||||||
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------*/
|
||||||
/* __io.h__ */
|
/* __io.h__ */
|
||||||
/* Hack io.h function with stdio.h functions */
|
/* Hack io.h function with stdio.h functions */
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ copy ..\..\win\win32\mnunsel.uu ..\..\wince\mnunsel.uu
|
|||||||
copy ..\..\win\win32\petmark.uu ..\..\wince\petmark.uu
|
copy ..\..\win\win32\petmark.uu ..\..\wince\petmark.uu
|
||||||
copy ..\..\sys\wince\menubar.uu ..\..\wince\menubar.uu
|
copy ..\..\sys\wince\menubar.uu ..\..\wince\menubar.uu
|
||||||
copy ..\..\sys\wince\keypad.uu ..\..\wince\keypad.uu
|
copy ..\..\sys\wince\keypad.uu ..\..\wince\keypad.uu
|
||||||
|
copy ..\..\sys\wince\nhico.uu ..\..\wince\nhico.uu
|
||||||
REM
|
REM
|
||||||
REM Get these files from sys\wince
|
REM Get these files from sys\wince
|
||||||
REM
|
REM
|
||||||
|
|||||||
+2
-1
@@ -1,3 +1,4 @@
|
|||||||
|
/* NetHack 3.5 mhcmd.c $Date$ $Revision$ */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
#include "winMS.h"
|
#include "winMS.h"
|
||||||
@@ -218,7 +219,7 @@ NHCmdPadCell cells_layout_item_handling[NH_CMDPAD_CELLNUM] =
|
|||||||
{ -1, "T", "T", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
{ -1, "T", "T", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
||||||
{ -1, "R", "R", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
{ -1, "R", "R", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
||||||
{ -1, "D", "D", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
{ -1, "D", "D", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
||||||
{ -1, "Q", "Q", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
{ -1, "=", "=", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
||||||
{ -1, "i", "i", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
{ -1, "i", "i", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
||||||
{ -1, "Q", "Q", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
{ -1, "Q", "Q", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
||||||
{ -1, "A", "A", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
{ -1, "A", "A", -NH_CMDPAD_FONT_NORMAL, NH_CELL_REG, 1, (void*)-1 },
|
||||||
|
|||||||
+9
-26
@@ -876,21 +876,6 @@ LRESULT onWMCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
|||||||
DialogBox(GetNHApp()->hApp, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
|
DialogBox(GetNHApp()->hApp, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDM_CMD_DLG: {
|
|
||||||
char input[BUFSZ];
|
|
||||||
char* p;
|
|
||||||
boolean ctrl = FALSE;
|
|
||||||
mswin_getlin("Enter command", input);
|
|
||||||
for(p=input; *p; p++) {
|
|
||||||
if( *p == '^' ) {
|
|
||||||
ctrl = TRUE;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
NHEVENT_KBD(ctrl? C(*p) : *p);
|
|
||||||
ctrl = FALSE;
|
|
||||||
}
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case IDM_EXIT:
|
case IDM_EXIT:
|
||||||
done2();
|
done2();
|
||||||
break;
|
break;
|
||||||
@@ -1090,7 +1075,7 @@ void mswin_select_map_mode(int mode)
|
|||||||
/* update "Fit To Screen" item text */
|
/* update "Fit To Screen" item text */
|
||||||
{
|
{
|
||||||
TCHAR wbuf[BUFSZ];
|
TCHAR wbuf[BUFSZ];
|
||||||
MENUITEMINFO mi;
|
TBBUTTONINFO tbbi;
|
||||||
|
|
||||||
ZeroMemory( wbuf, sizeof(wbuf) );
|
ZeroMemory( wbuf, sizeof(wbuf) );
|
||||||
if( !LoadString(
|
if( !LoadString(
|
||||||
@@ -1101,17 +1086,15 @@ void mswin_select_map_mode(int mode)
|
|||||||
panic("cannot load main menu strings");
|
panic("cannot load main menu strings");
|
||||||
}
|
}
|
||||||
|
|
||||||
ZeroMemory( &mi, sizeof(mi) );
|
ZeroMemory( &tbbi, sizeof(tbbi) );
|
||||||
mi.cbSize = sizeof(mi);
|
tbbi.cbSize = sizeof(tbbi);
|
||||||
mi.fType = MFT_STRING;
|
tbbi.dwMask = TBIF_TEXT;
|
||||||
mi.fMask = MIIM_TYPE;
|
tbbi.pszText = wbuf;
|
||||||
mi.dwTypeData = wbuf;
|
if( !SendMessage(
|
||||||
mi.cch = wcslen(wbuf);
|
GetNHApp()->hMenuBar,
|
||||||
if( !SetMenuItemInfo(
|
TB_SETBUTTONINFO,
|
||||||
hmenuMap,
|
|
||||||
IDM_MAP_FIT_TO_SCREEN,
|
IDM_MAP_FIT_TO_SCREEN,
|
||||||
FALSE,
|
(LPARAM)&tbbi) ) {
|
||||||
&mi) ) {
|
|
||||||
error( "Cannot update IDM_MAP_FIT_TO_SCREEN menu item." );
|
error( "Cannot update IDM_MAP_FIT_TO_SCREEN menu item." );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -259,6 +259,10 @@ void LayoutText(HWND hWnd)
|
|||||||
LRESULT CALLBACK NHTextControlWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
LRESULT CALLBACK NHTextControlWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
switch(message) {
|
switch(message) {
|
||||||
|
/* tell Windows not to process arrow keys (we want them) */
|
||||||
|
case WM_GETDLGCODE:
|
||||||
|
return DLGC_WANTARROWS;
|
||||||
|
|
||||||
case WM_KEYDOWN:
|
case WM_KEYDOWN:
|
||||||
switch( wParam ) {
|
switch( wParam ) {
|
||||||
case VK_SPACE:
|
case VK_SPACE:
|
||||||
|
|||||||
@@ -149,16 +149,15 @@
|
|||||||
#define IDM_HELP_MENU 32828
|
#define IDM_HELP_MENU 32828
|
||||||
#define IDM_VIEW_OPTIONS 32829
|
#define IDM_VIEW_OPTIONS 32829
|
||||||
#define IDM_DIRECT_COMMAND 32830
|
#define IDM_DIRECT_COMMAND 32830
|
||||||
#define IDM_CMD_DLG 32832
|
#define IDS_TEXT_WRAP 32831
|
||||||
#define IDS_TEXT_WRAP 32833
|
#define IDS_TEXT_UNWRAP 32832
|
||||||
#define IDS_TEXT_UNWRAP 32834
|
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 155
|
#define _APS_NEXT_RESOURCE_VALUE 155
|
||||||
#define _APS_NEXT_COMMAND_VALUE 32831
|
#define _APS_NEXT_COMMAND_VALUE 32833
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1334
|
#define _APS_NEXT_CONTROL_VALUE 1334
|
||||||
#define _APS_NEXT_SYMED_VALUE 110
|
#define _APS_NEXT_SYMED_VALUE 110
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -182,4 +182,7 @@ void mswin_write_reg(void);
|
|||||||
BOOL mswin_has_keyboard(void);
|
BOOL mswin_has_keyboard(void);
|
||||||
|
|
||||||
void mswin_set_fullscreen(BOOL is_fullscreen);
|
void mswin_set_fullscreen(BOOL is_fullscreen);
|
||||||
|
|
||||||
|
extern winid WIN_STATUS;
|
||||||
|
|
||||||
#endif /* WINmswin_H */
|
#endif /* WINmswin_H */
|
||||||
|
|||||||
+4
-3
@@ -24,7 +24,7 @@ static void win_hack_init(int, char **);
|
|||||||
static void __cdecl mswin_moveloop(void *);
|
static void __cdecl mswin_moveloop(void *);
|
||||||
static BOOL setMapTiles(const char* fname);
|
static BOOL setMapTiles(const char* fname);
|
||||||
|
|
||||||
extern void FDECL(pcmain, (int,char **));
|
extern boolean FDECL(pcmain, (int,char **));
|
||||||
|
|
||||||
#define MAX_CMDLINE_PARAM 255
|
#define MAX_CMDLINE_PARAM 255
|
||||||
|
|
||||||
@@ -41,6 +41,7 @@ int APIENTRY WinMain(HINSTANCE hInstance,
|
|||||||
TCHAR* p;
|
TCHAR* p;
|
||||||
TCHAR wbuf[NHSTR_BUFSIZE];
|
TCHAR wbuf[NHSTR_BUFSIZE];
|
||||||
char buf[NHSTR_BUFSIZE];
|
char buf[NHSTR_BUFSIZE];
|
||||||
|
boolean resuming;
|
||||||
|
|
||||||
sys_early_init();
|
sys_early_init();
|
||||||
|
|
||||||
@@ -122,9 +123,9 @@ int APIENTRY WinMain(HINSTANCE hInstance,
|
|||||||
GetModuleFileName(NULL, wbuf, BUFSZ);
|
GetModuleFileName(NULL, wbuf, BUFSZ);
|
||||||
argv[0] = _strdup(NH_W2A(wbuf, buf, BUFSZ));
|
argv[0] = _strdup(NH_W2A(wbuf, buf, BUFSZ));
|
||||||
|
|
||||||
pcmain(argc,argv);
|
resuming = pcmain(argc,argv);
|
||||||
|
|
||||||
moveloop();
|
moveloop(resuming);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,12 +37,12 @@ IDI_WINHACK ICON DISCARDABLE "..\\..\\wince\\NETHACK.ICO"
|
|||||||
|
|
||||||
IDC_WINHACK MENU DISCARDABLE
|
IDC_WINHACK MENU DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Type Cmd", IDM_DIRECT_COMMAND
|
MENUITEM "Entire Map", IDM_MAP_FIT_TO_SCREEN
|
||||||
POPUP "Menu"
|
POPUP "Menu"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Options", IDM_VIEW_OPTIONS
|
MENUITEM "Options", IDM_VIEW_OPTIONS
|
||||||
MENUITEM "Keypad", IDM_VIEW_KEYPAD
|
MENUITEM "Keypad", IDM_VIEW_KEYPAD
|
||||||
MENUITEM "Cmd", IDM_CMD_DLG
|
MENUITEM "Cmd", IDM_DIRECT_COMMAND
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "ASCII", IDM_MAP_ASCII8X8
|
MENUITEM "ASCII", IDM_MAP_ASCII8X8
|
||||||
MENUITEM "Tiles", IDM_MAP_TILES
|
MENUITEM "Tiles", IDM_MAP_TILES
|
||||||
@@ -232,7 +232,7 @@ END
|
|||||||
IDC_WINHACK SHMENUBAR DISCARDABLE
|
IDC_WINHACK SHMENUBAR DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDC_WINHACK, 2,
|
IDC_WINHACK, 2,
|
||||||
I_IMAGENONE, IDM_DIRECT_COMMAND, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, IDM_DIRECT_COMMAND, 0, NOMENU,
|
I_IMAGENONE, IDM_MAP_FIT_TO_SCREEN, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, IDM_MAP_FIT_TO_SCREEN, 0, NOMENU,
|
||||||
I_IMAGENONE, ID_VIEW, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_CAP_VIEW, 0, 1,
|
I_IMAGENONE, ID_VIEW, TBSTATE_ENABLED, TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_CAP_VIEW, 0, 1,
|
||||||
END
|
END
|
||||||
|
|
||||||
@@ -313,7 +313,6 @@ END
|
|||||||
STRINGTABLE DISCARDABLE
|
STRINGTABLE DISCARDABLE
|
||||||
BEGIN
|
BEGIN
|
||||||
IDM_MAP_FIT_TO_SCREEN "Entire Map"
|
IDM_MAP_FIT_TO_SCREEN "Entire Map"
|
||||||
IDM_DIRECT_COMMAND "Type Cmd"
|
|
||||||
IDS_CAP_FILE "File"
|
IDS_CAP_FILE "File"
|
||||||
IDS_CAP_HELP "Help"
|
IDS_CAP_HELP "Help"
|
||||||
IDS_CAP_MAP "Map"
|
IDS_CAP_MAP "Map"
|
||||||
|
|||||||
Reference in New Issue
Block a user