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:
nethack.allison
2009-10-22 02:59:35 +00:00
parent dea62334c0
commit 3197e22563
13 changed files with 51 additions and 43 deletions
+4
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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 */
+1
View File
@@ -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
View File
@@ -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
View File
@@ -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." );
} }
} }
+4
View File
@@ -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:
+3 -4
View File
@@ -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
+3
View File
@@ -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
View File
@@ -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;
} }
+3 -4
View File
@@ -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"