From 31d61837355f75a12351ba2e1b3464148a65fd41 Mon Sep 17 00:00:00 2001 From: David Griffith Date: Mon, 9 Jul 2012 01:08:18 -0700 Subject: [PATCH] DOS tweaks --- .metadata | Bin 7075 -> 7106 bytes Makefile | 1 + src/dos/bcinit.c | 3 +-- src/dos/bcinput.c | 3 ++- src/dos/bcscreen.c | 7 ++++++- src/dos/bctext.c | 3 ++- 6 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.metadata b/.metadata index 343e131d69acb80a60c875fe0897692084675540..ef65c34bfc149c2db5c5e095e4d4ed8cff72ac1b 100644 GIT binary patch literal 7106 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 diff --git a/Makefile b/Makefile index 9abd506..5a7a1b9 100644 --- a/Makefile +++ b/Makefile @@ -146,6 +146,7 @@ CURSES_OBJECT = $(CURSES_DIR)/ux_init.o \ $(CURSES_DIR)/ux_pic.o \ $(CURSES_DIR)/ux_screen.o \ $(CURSES_DIR)/ux_text.o \ + $(CURSES_DIR)/ux_blorb.o \ $(CURSES_DIR)/ux_audio_none.o \ $(CURSES_DIR)/ux_audio_oss.o diff --git a/src/dos/bcinit.c b/src/dos/bcinit.c index 8136ba3..72780dd 100644 --- a/src/dos/bcinit.c +++ b/src/dos/bcinit.c @@ -20,7 +20,6 @@ static char information[] = "Complies with standard 1.0 of Graham Nelson's specification.\n" "\n" "Syntax: frotz [options] story-file\n" -"\n" " -a watch attribute setting \t -o watch object movement\n" " -A watch attribute testing \t -O watch object locating\n" " -b # background colour \t -p alter piracy opcode\n" @@ -202,7 +201,7 @@ static void interrupt fast_exit () * */ -void os_fatal (const char *s) +void os_fatal (const char *s, ...) { if (h_interpreter_number) diff --git a/src/dos/bcinput.c b/src/dos/bcinput.c index 3ccca00..87a0361 100644 --- a/src/dos/bcinput.c +++ b/src/dos/bcinput.c @@ -463,7 +463,8 @@ static void input_move (zchar newc, zchar oldc) cursor_y + 1, cursor_x + 1, cursor_y + h_font_height, - cursor_x + oldwidth - newwidth); + cursor_x + oldwidth - newwidth, + -1); switch_scrn_attr (FALSE); diff --git a/src/dos/bcscreen.c b/src/dos/bcscreen.c index ed42e2e..0cd6091 100644 --- a/src/dos/bcscreen.c +++ b/src/dos/bcscreen.c @@ -117,9 +117,14 @@ static void clear_line (int y, int left, int right) * Fill a rectangular area of the screen with the current background * colour. Top left coordinates are (1,1). The cursor does not move. * + * The final argument gives the window being changed, -1 if only a + * portion of a window is being erased, or -2 if the whole screen is + * being erased. This is not relevant for the DOS interface, and so + * this function ignores that argument. + * */ -void os_erase_area (int top, int left, int bottom, int right) +void os_erase_area (int top, int left, int bottom, int right, int win) { int y; diff --git a/src/dos/bctext.c b/src/dos/bctext.c index 1d4e20f..1f99c45 100644 --- a/src/dos/bctext.c +++ b/src/dos/bctext.c @@ -793,7 +793,8 @@ void os_more_prompt (void) os_erase_area (cursor_y + 1, saved_x + 1, cursor_y + h_font_height, - cursor_x + 1); + cursor_x + 1, + -1); cursor_x = saved_x; -- 2.34.1