+++ /dev/null
-diff -uNrX dosemu-ignore-files dosemu-1.1.1.3.eb1.1/src/base/dev/pic/pic.c
-dosemu-1.1.1.3.eb1.1.1/src/base/dev/pic/pic.c
---- src/base/dev/pic/pic.c Sat Oct 27 16:58:43 2001
-+++ src/base/dev/pic/pic.c Sun Oct 28 08:57:08 2001
-@@ -134,7 +134,6 @@
- #ifndef C_RUN_IRQS
- #define C_RUN_IRQS
- #include "bitops.h"
--#undef C_RUN_IRQS
- #else
- #include "bitops.h"
- #endif
-@@ -632,55 +631,83 @@
- * assembly macros, because such macros can only return a single result.
- * If I find a way to do it in c, I will, but don't hold your breath.
- *
-+ * I found a way to write it in C --EB 15 Jan 97
-+ *
- * DANG_END_FUNCTION
- */
- #ifdef C_RUN_IRQS
-+/* DANG_BEGIN_COMMENT
-+ * This is my C version of the assembly version of run_irqs.
-+ * I believe it is a correct translation of the assembly into C.
-+ *
-+ * I got frustrated with the old incomplete version. Especially
-+ * because of indent problems and I don't believe in changing code I
-+ * don't understand.
-+ *
-+ * This code is correct in the single process case.
-+ * Except possilby it's handling of special mask mode.
-+ * If pic_smm is set to 32 it appears to me that no interrupt is
-+ * ever run.
-+ *
-+ * But this code is certainly incorrect in the multiple process
-+ * case. Because it spins without rereading pic_irr, to recalculate
-+ * pic_ilevel. And I think there are other less serious problems as
-+ * well. However it doesn't matter because we aren't doing multiple
-+ * processes, or multiple threads. :)
-+ *
-+ * Note Comments taken from the original C version
-+ *
-+ * --EB 5 Jan 97
-+ * DANG_END_COMMENT
-+ */
- /* see assembly language version below */
--void run_irqs()
-+void run_irqs(void)
- /* find the highest priority unmasked requested irq and run it */
- {
-- int old_ilevel;
-- int int_request;
-+ int old_ilevel;
-+ int int_request;
-+ int priority;
- #warning using C run_irqs
-+ /* Old hack, to be removed */
-+ if (in_dpmi && in_dpmi_timer_int) return;
-
--/* check for and find any requested irqs. Having found one, we atomic-ly
-- * clear it and verify it was there when we cleared it. If it wasn't, we
-- * look for the next request. There are two in_service bits for pic1 irqs.
-- * This is needed, because irq 8-15 must do 2 outb20s, which, if the dos
-- * irq code actually runs, will reset the bits. We also reset them here,
-- * since dos code won't necessarily run.
-- */
--
--#if 0
-- if(!(pic_irr&~(pic_isr|pic_imr))) return; /* exit if nothing to do */
--#else
-- if(!(pic_irr&~(pic_isr))) return; /* exit if nothing to do */
--#endif
-- old_ilevel=pic_ilevel; /* save old pic_ilevl */
--
--#if 0
-- while(int_request= pic_irr&~(pic_isr|pic_imr)) /* while something to do*/
--#else
-- while(int_request= pic_irr&~(pic_isr)) /* while something to do*/
--#endif
-- {
--
-- pic_ilevel=find_bit(&int_request); /* find out what it is */
--
-- if(pic_ilevel<(old_ilevel+pic_smm)) /* priority check */
-- if(clear_bit(pic_ilevel,&pic_irr)) /* dbl check & clear req*/
-- {
-- /* we got one! it is identified by pic_ilevel */
--
-- set_bit(pic_ilevel,&pic_isr); /* set in-service bit */
-- pic1_isr = pic_isr & pic1_mask; /* pic1 too */
-- pic_iinfo[pic_ilevel].func(); /* run the function */
-- clear_bit(pic_ilevel,&pic_isr); /* clear in_service bit */
-- clear_bit(pic_ilevel,&pic1_isr); /* pic1 too */
-- }
-- }
-- /* whether we did or didn't :-( get one, we must still reset pic_ilevel */
-- pic_ilevel=old_ilevel;
-+ /* check for and find any requested irqs. Having found one, we atomic-ly
-+ * clear it and verify it was there when we cleared it. If it wasn't, we
-+ * look for the next request. There are two in_service bits for pic1 irqs.
-+ * This is needed, because irq 8-15 must do 2 outb20s, which, if the dos
-+ * irq code actually runs, will reset the bits. We also reset them here,
-+ * since dos code won't necessarily run.
-+ */
-+
-+ old_ilevel=pic_ilevel; /* save old pic_ilevl */
-+ priority = pic_smm + old_ilevel; /* check spec. mask mode */
-+
-+ while((int_request = pic_irr & ~(pic_isr | pic_imr)) != 0) { /* while something to do*/
-+ int local_pic_ilevel;
-+
-+ if (!isset_IF() && !in_dpmi)
-+ goto exit; /* exit if ints are disabled */
-+
-+ do {
-+ local_pic_ilevel = find_bit(int_request); /* find out what it is */
-+ /* In case int_request has no bits set */
-+ if (local_pic_ilevel == -1)
-+ goto exit;
-+ if (local_pic_ilevel > priority) /* priority check */
-+ goto exit;
-+ } while (clear_bit(local_pic_ilevel, &pic_irr) == 0); /* dbl check & clear req */
-+ pic_ilevel = local_pic_ilevel;
-+ set_bit(local_pic_ilevel, &pic_isr); /* set in-service bit */
-+ set_bit(local_pic_ilevel, &pic1_isr); /* pic1 too */
-+ pic1_isr &= pic_isr & pic1_mask; /* isolate pic1 irqs */
-+ pic_iinfo[local_pic_ilevel].func(); /* run the function */
-+ local_pic_ilevel = pic_ilevel;
-+ clear_bit(local_pic_ilevel, &pic_isr); /* clear in_service bit */
-+ clear_bit(local_pic_ilevel, &pic1_isr); /* pic1 too */
-+ }
-+ exit:
-+ /* whether we did or didn't :-( get one, we must still reset pic_ilevel */
-+ pic_ilevel=old_ilevel;
- }
-
- #else
---- src/include/bitops.h Sun Mar 5 05:57:39 2000
-+++ src/include/bitops.h Sun Oct 28 08:58:04 2001
-@@ -35,7 +35,7 @@
- #define _STATIC_ static
- #endif
-
--_STATIC_ int find_bit(void * addr);
-+_STATIC_ int find_bit(unsigned long int word);
- _STATIC_ long atomic_inc(long * addr);
- _STATIC_ long atomic_dec(long * addr);
- _STATIC_ int set_bit(int nr, void * addr);
-@@ -60,18 +60,20 @@
- #define ADDR (*(struct __dummy *) addr)
-
- /* JLS's stuff */
--/* find_bit returns the bit number of the lowest bit that's set */
--/* it doesn't need to be atomic, but it's much faster than using c */
--
-+/*
-+ * find_bit returns the bit number of the lowest bit that's set
-+ * Returns -1 if no one exists.
-+ */
- _INLINE_ int
--find_bit(void *addr)
-+find_bit(unsigned long int word)
- {
-- int bitno;
--
-- __asm__ __volatile__("bsfl %1,%0"
-- :"=r" (bitno):"m"(ADDR));
-- return bitno;
-+ int result = -1; /* value to return on error */
-+ __asm__("bsfl %2,%0"
-+ :"=r" (result) /* output */
-+ :"0" (result), "r" (word)); /* input */
-+ return result;
- }
-+
- /* atomic increment flag and decrement flag operations */
- _INLINE_ long int
- atomic_inc(long *addr)
+++ /dev/null
---- dosemu-0.98.1/src/base/init/config.c.security Thu Sep 10 17:22:11 1998
-+++ dosemu-0.98.1/src/base/init/config.c Tue Sep 15 18:54:14 1998
-@@ -627,6 +627,11 @@
- case 'f':
- {
- FILE *f;
-+ if (!get_orig_euid()) {
-+ /* we are running suid root as user */
-+ fprintf(stderr, "Sorry, -F option not allowed here\n");
-+ exit(1);
-+ }
- enter_priv_off();
- f=fopen(optarg, "r");
- leave_priv_setting();
---- dosemu-0.98.1/src/base/init/parser.y.security Thu Sep 10 17:20:50 1998
-+++ dosemu-0.98.1/src/base/init/parser.y Tue Sep 15 19:00:55 1998
-@@ -2508,7 +2508,8 @@
- pwd->pw_name);
- if(log_syslog>=1) {
- fprintf(stderr, "This event will be logged!\n");
-- sprintf(buf, "Illegal DOSEMU start attempt by %s (uid=%i)",
-+ snprintf(buf, sizeof(buf),
-+ "Illegal DOSEMU start attempt by %s (uid=%i)",
- pwd->pw_name, uid);
- write_to_syslog(buf);
- }
-@@ -2516,7 +2517,8 @@
- }
- else {
- if(log_syslog>=2) {
-- sprintf(buf, "DOSEMU started%s by %s (uid/euid=%i/%i)",
-+ snprintf(buf, sizeof(buf),
-+ "DOSEMU started%s by %s (uid/euid=%i/%i)",
- (can_do_root_stuff && !under_root_login)? " suid root" : "",
- pwd->pw_name, uid, get_orig_euid());
- write_to_syslog(buf);
+++ /dev/null
-diff -Nru dosemu-1.0.2/man/dosdebug.1 dosemu-1.0.2.new/man/dosdebug.1
---- dosemu-1.0.2/man/dosdebug.1 Mon Mar 18 11:43:03 1996
-+++ dosemu-1.0.2.new/man/dosdebug.1 Wed Dec 19 11:52:46 2001
-@@ -1 +1 @@
--.so man1/dos.1
-+.so dos.1
-diff -Nru dosemu-1.0.2/man/dosemu.bin.1 dosemu-1.0.2.new/man/dosemu.bin.1
---- dosemu-1.0.2/man/dosemu.bin.1 Fri Jun 1 01:36:11 2001
-+++ dosemu-1.0.2.new/man/dosemu.bin.1 Wed Dec 19 11:22:05 2001
-@@ -1,9 +1,9 @@
- .\" -*- nroff -*- (This is for Emacs)
--.TH DOSEMU.BIN 1 "May, 2001" "Version 1.0.2" "DOS Emulation"
-+.TH DOS 1 "May, 2001" "Version 1.0.2" "DOS Emulation"
- .SH NAME
--dosemu.bin, dosdebug \- run DOS and DOS programs under Linux
-+dos, xdos, dosdebug \- run DOS and DOS programs under Linux
- .SH SYNOPSIS
--.B dosemu.bin
-+.B dos
- [
- .B \-ABCcdkVNXtsgKm234OU
- ]
-diff -Nru dosemu-1.0.2/man/xdos.1 dosemu-1.0.2.new/man/xdos.1
---- dosemu-1.0.2/man/xdos.1 Fri Jun 1 23:47:21 2001
-+++ dosemu-1.0.2.new/man/xdos.1 Wed Dec 19 11:53:00 2001
-@@ -1 +1 @@
--.so man1/dosemu.bin.1
-+.so dos.1
--- /dev/null
+--- dosemu-1.1.3/src/plugin/kbd_unicode/serv_xlat.c.orig Thu Jun 20 16:20:54 2002
++++ dosemu-1.1.3/src/plugin/kbd_unicode/serv_xlat.c Thu Jun 20 19:57:10 2002
+@@ -1723,8 +1723,8 @@
+ */
+ bios_key = is_accent ? ascii : make_bios_code_r(make, key, ascii, keysym, state);
+
+- if (bios_key == 0x23e0) /* Cyrillic_er work around */
+- bios_key &= 0x00FF;
++ if (bios_key == 0x23e0 || bios_key == 0x18e0) /* Cyrillic_er work around */
++ bios_key &= 0x00FF; /* ^^^^^^^^^^^^^^^^^^ Oacute */
+ #if 0
+ k_printf("translate_key: keysym=%04x bios_key=%04x\n",
+ keysym, bios_key);
+++ /dev/null
---- dosemu-1.0.2/src/base/keyboard/keymaps.c Sun Mar 11 14:27:25 2001
-+++ dosemu-1.0.2.new/src/base/keyboard/keymaps.c Sun Dec 30 16:45:07 2001
-@@ -1374,6 +1374,7 @@
- 0};
-
- /* Polish keyboard */
-+/*
- CONST unsigned char key_map_pl[] =
- {
- 0, 27, '1', '2', '3', '4', '5', '6',
-@@ -1421,6 +1422,55 @@
- 0, 0, 0, 0, 0, 0, '|', 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0};
-+*/
-+CONST unsigned char key_map_pl[] =
-+{
-+ 0,27,'1','2','3','4','5','6',
-+ '7','8','9','0','-','=',127,9,
-+ 'q','w','e','r','t','y','u','i',
-+ 'o','p','[',']',13,0,'a','s',
-+ 'd','f','g','h','j','k','l',';',
-+ 39,96,0,92,'z','x','c','v',
-+ 'b','n','m',',','.','/',0,'*',
-+ 0,32,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,'-',0,0,0,'+',0,
-+ 0,0,0,0,0,0,'<',0,
-+ 0,0,0,0,0,0,0,0,
-+ 0};
-+
-+CONST unsigned char shift_map_pl[] =
-+{
-+ 0,27,'!','@','#','$','%','^',
-+ '&','*','(',')','_','+',127,9,
-+ 'Q','W','E','R','T','Y','U','I',
-+ 'O','P','{','}',13,0,'A','S',
-+ 'D','F','G','H','J','K','L',':',
-+ 34,'~',0,'|','Z','X','C','V',
-+ 'B','N','M','<','>','?',0,'*',
-+ 0,32,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,'-',0,0,0,'+',0,
-+ 0,0,0,0,0,0,'>',0,
-+ 0,0,0,0,0,0,0,0,
-+ 0};
-+
-+CONST unsigned char alt_map_pl[] =
-+{
-+ 0,0,0,'@',0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,DEAD_OGONEK,0,0,0,0,0,
-+ DEAD_ACUTE,0,0,0,0,0,DEAD_OGONEK,DEAD_ACUTE,
-+ 0,0,0,0,0,0,DEAD_STROKE,0,
-+ 0,0,0,0,DEAD_ABOVEDOT,DEAD_ACUTE,DEAD_ACUTE,0,
-+ 0,DEAD_ACUTE,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0,0,0,0,0,0,0,0,
-+ 0};
-+
-
- CONST unsigned char key_map_hr_cp852[] =
- {
-@@ -1741,7 +1791,7 @@
- {DEAD_CIRCUMFLEX, DEAD_CIRCUMFLEX, '^'}, {DEAD_DIAERESIS, DEAD_DIAERESIS, '"'},
- {DEAD_TILDE, DEAD_TILDE, '~'}, {DEAD_DOUBLEACUTE, DEAD_DOUBLEACUTE, 241},
- {DEAD_OGONEK, DEAD_OGONEK, 242}, {DEAD_CARON, DEAD_CARON, 243},
-- {DEAD_BREVE, DEAD_BREVE, 244},
-+ {DEAD_BREVE, DEAD_BREVE, 244}, {DEAD_STROKE, DEAD_STROKE, 245},
-
- {DEAD_ABOVERING, 'U', 222}, {DEAD_ABOVERING, 'u', 133},
-
-@@ -1768,6 +1818,7 @@
- {DEAD_ACUTE, 'U', 233}, {DEAD_ACUTE, 'u', 163},
- {DEAD_ACUTE, 'Y', 237}, {DEAD_ACUTE, 'y', 236},
- {DEAD_ACUTE, 'Z', 141}, {DEAD_ACUTE, 'z', 171},
-+ {DEAD_ACUTE, 'X', 141}, {DEAD_ACUTE, 'x', 171},
-
- {DEAD_CIRCUMFLEX, 'A', 182}, {DEAD_CIRCUMFLEX, 'a', 131},
- {DEAD_CIRCUMFLEX, 'I', 215}, {DEAD_CIRCUMFLEX, 'i', 140},
-@@ -1790,7 +1841,8 @@
-
- {DEAD_OGONEK, 'A', 164}, {DEAD_OGONEK, 'a', 165},
- {DEAD_OGONEK, 'E', 168}, {DEAD_OGONEK, 'e', 169},
--
-+ {DEAD_STROKE, 'L', 157}, {DEAD_STROKE, 'l', 136},
-+
- {0, 0, 0}
- };
-
---- dosemu-1.0.2/src/base/keyboard/serv_xlat.c Sun Mar 11 14:27:25 2001
-+++ dosemu-1.0.2.new/src/base/keyboard/serv_xlat.c Sun Dec 30 16:37:23 2001
-@@ -477,17 +477,29 @@
- * characters are generated. On US keyboards, translation is done
- * with both ALT keys.
- */
-- if (!(config.keytable->flags & KT_USES_ALTMAP) || (shiftstate & R_ALT))
-+
-+ /* BASIC style hack for Polish language. ALT+DEAD_KEY -> accent=DEAD_KEY
-+ * ch >= 32 should be "ch is not DEAD_KEY"
-+ */
-+
-+
-+ if (!(config.keytable->flags & KT_USES_ALTMAP) || (shiftstate & R_ALT)) {
- ch = config.keytable->alt_map[key];
-+ if (ch >= 32) goto NEXT_CONDITION;
-+ accent=ch;
-+ }
-+ else goto NEXT_CONDITION;
- }
-- else if (shiftstate & SHIFT) {
-+ if (shiftstate & SHIFT) {
- ch = config.keytable->shift_map[key];
- }
- else { /* unshifted */
- ch = config.keytable->key_map[key];
- }
- }
--
-+
-+NEXT_CONDITION:
-+
- if (shiftstate & CTRL) {
- switch(ch) {
- case 0x40 ... 0x7e: ch&=0x1f; break;
---- dosemu-1.0.2/src/include/keymaps.h Sun Mar 11 14:27:27 2001
-+++ dosemu-1.0.2.new/src/include/keymaps.h Sun Dec 30 15:26:04 2001
-@@ -73,10 +73,11 @@
- #define DEAD_IOTA 12
- #define DEAD_OGONEK 14
- #define DEAD_CARON 15
-+#define DEAD_STROKE 16
-
- #define FULL_DEADKEY_LIST DEAD_GRAVE, DEAD_ACUTE, DEAD_CIRCUMFLEX, \
- DEAD_TILDE, DEAD_BREVE, DEAD_ABOVEDOT, DEAD_DIAERESIS, DEAD_ABOVERING, \
-- DEAD_DOUBLEACUTE, DEAD_CEDILLA, DEAD_IOTA, DEAD_OGONEK, DEAD_CARON
-+ DEAD_DOUBLEACUTE, DEAD_CEDILLA, DEAD_IOTA, DEAD_OGONEK, DEAD_CARON, DEAD_STROKE
-
- struct dos_dead_key {
- unsigned char d_key;
+++ /dev/null
---- dosemu-1.0.2/src/base/bios/bios.S Tue Feb 12 21:34:49 2002
-+++ dosemu-1.0.2.new/src/base/bios/bios.S Wed Feb 13 00:39:13 2002
-@@ -519,6 +519,14 @@
- cmp bx, [KEYBUF_WRITE_PTR] /* set flag if buffer empty */
- je get_key_ret /* buffer empty */
- mov ax, [bx] /* put char into ax */
-+
-+ /* HACK!!! by Alexey Lukin <al@cn.ua> */
-+ /* little 'Cyrillic_er' */
-+ cmp ax,#0x00e0
-+ jne true_e0_key
-+ mov dl, #1
-+true_e0_key: /* end of HACK */
-+
- call do_extended /* differences for extended calls */
- jne get_key_ret
- inc bx
---- dosemu-1.0.2/src/base/keyboard/serv_backend.c Sun Mar 11 16:27:25 2001
-+++ dosemu-1.0.2.new/src/base/keyboard/serv_backend.c Wed Feb 13 00:39:13 2002
-@@ -43,6 +43,7 @@
- #define KEYBUF_HACK 1
-
- t_shiftstate shiftstate;
-+int lockaltmap;
-
- Bit16u bios_buffer;
- t_shiftstate shiftstate_buffer;
-@@ -112,6 +113,9 @@
- raw &= 0xff;
- }
- #endif
-+ if (bios_key == 0x23e0) { /* Cyrillic_er */
-+ bios_key &= 0x00FF;
-+ }
- k_printf("KBD: writing to queue: bios_key=%04x shift=%04x scan=%08x\n",
- bios_key,shift,(unsigned int)raw);
+++ /dev/null
---- dosemu-1.0.2/src/plugin/commands/comcom.c.orig Fri May 10 20:50:04 2002
-+++ dosemu-1.0.2/src/plugin/commands/comcom.c Fri May 10 20:57:14 2002
-@@ -104,6 +104,7 @@
- struct res_dta {
- struct batchdata *current_bdta;
- int exitcode;
-+ int errorlevel; /* exit code for external commands */
- int need_errprinting;
- int echo_on;
- int envsize; /* size of enlarged enviroment */
-@@ -1277,7 +1278,7 @@
- if (!strcasecmp(argv[argi], "errorlevel")) {
- if (argi+2 >= argc) return DOS_EINVAL;
- level = strtoul(argv[argi+1], 0, 10);
-- if (((EXITCODE >= level) ? 1 : 0) ^ invers) {
-+ if (((rdta->errorlevel >= level) ? 1 : 0) ^ invers) {
- argi += 2;
- SET_CHILD_ARGS(argi);
- dopath_exec(argc-argi, argv+argi);
-@@ -2740,6 +2741,7 @@
- saved_cannotexit = rdta->cannotexit;
- rdta->cannotexit = 0;
- ret = load_and_run_DOS_program(name, cmdline);
-+ rdta->errorlevel = ret;
- rdta->cannotexit = saved_cannotexit;
-
- /* re-enlarge the environment to maximum */
-@@ -3256,6 +3258,7 @@
- rdta->need_errprinting = 0;
-
- EXITCODE = 0;
-+ rdta->errorlevel = 0;
- ECHO_ON = 1;
-
- /* first free all memory we don't need for ourselves, such that
--- /dev/null
+--- dosemu-1.1.3/src/doc/tools/doSgmlTools.pl.old Fri Jun 21 10:56:49 2002
++++ dosemu-1.1.3/src/doc/tools/doSgmlTools.pl Fri Jun 21 11:01:46 2002
+@@ -200,7 +200,7 @@
+ }
+ close (CATFILE);
+
+- while ($file =~ /CATALOG\s+\"([^\"]+)\"/gm) {
++ while ($file =~ /CATALOG\s+([^\"]\S+)/gm) {
+ if ($verbose) {
+ print "Adding entry for \"$1\" to catalog list.\n";
+ }
---- etc/dosemu.conf Tue May 29 01:16:49 2001
-+++ etc.new/dosemu.conf Sun Dec 16 01:55:02 2001
-@@ -43,7 +43,7 @@
- $_xms = (1024) # in Kbyte
- $_ems = (2048) # in Kbyte
- $_ems_frame = (0xe000)
--$_dpmi = (off) # in Kbyte
-+$_dpmi = (4096) # in Kbyte
- $_dosmem = (640) # in Kbyte, < 640
- $_hardware_ram = "" # list of segment values/ranges such as
- # "0xc8000 range 0xcc000,0xcffff"
-@@ -71,8 +71,8 @@
- $_term_updfreq = (4) # time between refreshs (units: 20 == 1 second)
- $_escchar = (30) # 30 == Ctrl-^, special-sequence prefix
-
--$_rawkeyboard = (0) # bypass normal keyboard input, maybe dangerous
--$_layout = "auto" # one of: finnish(-latin1), de(-latin1), be, it, us
-+$_rawkeyboard = (0) # bypass normal keyboard input, maybe dangerous
+--- dosemu-1.1.4/etc/dosemu.conf.orig Wed Dec 18 02:36:44 2002
++++ dosemu-1.1.4/etc/dosemu.conf Sat Jan 25 23:35:28 2003
+@@ -27,7 +27,7 @@
+ # Please edit only between the brackets and quotes and keep the rest intact.
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
+ #
+-#$_hdimage = "freedos"
++$_hdimage = "bootdir"
+ # # List of hdimages or boot directories under
+ # # syshdimagedir (/var/lib/dosemu by default)
+ # # assigned in this order such as
+@@ -103,7 +103,7 @@
+ #
+ #$_rawkeyboard = (0) # bypass normal keyboard input on the Linux console,
+ # # maybe dangerous
+-#$_layout = "auto" # one of: finnish(-latin1), de(-latin1), be, it, us
+$_layout = "us" # one of: finnish(-latin1), de(-latin1), be, it, us
- # uk, dk(-latin1), keyb-no, no-latin1, dvorak, po
- # sg(-latin1), fr(-latin1), sf(-latin1), es(-latin1)
- # sw, hu(-latin2), hu-cwi, keyb-user
-@@ -110,8 +110,8 @@
-
-
- $_video = "vga" # one of: plainvga, vga, ega, mda, mga, cga
--$_console = (0) # use 'console' video
--$_graphics = (0) # use the cards BIOS to set graphics
-+$_console = (0) # use 'console' video
-+$_graphics = (0) # use the cards BIOS to set graphics
- $_videoportaccess = (1) # allow videoportaccess when 'graphics' enabled
- $_vbios_seg = (0xc000) # set the address of your VBIOS (e.g. 0xe000)
- $_vbios_size = (0x10000)# set the size of your BIOS (e.g. 0x8000)
-@@ -130,7 +130,7 @@
- # "threeinch:/dev/fd0"
- $_floppy_b = "" # dito for B:
-
--$_hdimage = "freedos" # list of hdimages under DOSEMU_LIB_DIR
-+$_hdimage = "bootdir" # list of hdimages under DOSEMU_LIB_DIR
- # assigned in this order such as
- # "hdimage_c hdimage_d hdimage_e"
- # If the name begins with '/dev/', then partion
-@@ -157,7 +157,7 @@
-
- $_mouse = "" # one of: microsoft, mousesystems, logitech, mmseries
- # mouseman, hitachi, busmouse, ps2, imps2
--$_mouse_dev = "" # one of: com1, com2, com3, com4 or /dev/mouse
+ # # uk, dk(-latin1), keyb-no, no-latin1, dvorak, po
+ # # sg(-latin1), fr(-latin1), sf(-latin1), es(-latin1)
+ # # sw, hu(-latin2), hu-cwi, keyb-user
+@@ -159,7 +159,7 @@
+ #
+ #$_mouse = "" # one of: microsoft, mousesystems, logitech, mmseries
+ # # mouseman, hitachi, busmouse, ps2, imps2
+-#$_mouse_dev = "" # one of: com1, com2, com3, com4 or /dev/mouse
+$_mouse_dev = "/dev/mouse" # one of: com1, com2, com3, com4 or /dev/mouse
- $_mouse_flags = "" # list of none or one or more of:
- # "emulate3buttons cleardtr"
- $_mouse_baud = (0) # baudrate, 0 == don't set
-@@ -172,7 +172,7 @@
-
- $_ipxsupport = (off) # or on
- $_novell_hack = (off)
--$_vnet = (off) # 'on' for packet-multi (used by dosnet)
-+$_vnet = (on) # 'on' for packet-multi (used by dosnet)
-
- $_sound = (off) # sound support on/off
- $_sb_base = (0x220)
+ #$_mouse_flags = "" # empty list or one or more of:
+ # # "emulate3buttons cleardtr"
+ #$_mouse_baud = (0) # baudrate, 0 == don't set
+++ /dev/null
---- dosemu-1.0.2/etc/global.conf Tue May 14 15:25:38 2002
-+++ dosemu-1.0.2/etc/global.conf.new Tue May 14 17:13:19 2002
-@@ -232,33 +232,53 @@
- # we have GNU sh-utils < 2.0
- $xxx = shell("who am i")
- endif
-- if ( ($DOSEMU_STDIN_IS_CONSOLE eq "1")
-- || ( strlen($xxx) && (strchr($xxx, "(" ) < 0 )))
-- $BEING_ON = "console"
-+
-+ if ($DISPLAY ne "")
-+ if (strchr($DOSEMU_OPTIONS,"X") >= 0)
-+ $USING_X = (1)
-+ $BEING_ON = ""
-+ else
-+ $BEING_ON = $BEING_ON, "_xterm"
-+ endif
- else
-- if (strstr($xxx, "(:") < 0)
-- $BEING_ON = "remote"
-- $REMOTE_HOST = strsplit($xxx, strchr($xxx,"(")+1,99)
-- $REMOTE_HOST = strdel($REMOTE_HOST, strchr($REMOTE_HOST,")"),99)
-- else
-- $BEING_ON = ""
-- endif
-- if ( (strchr($DOSEMU_OPTIONS,"X") >=0) && ($DISPLAY ne "") )
-- $USING_X = (1)
-- endif
-- if (strstr("xterm dtterm", $TERM) >= 0)
-- $BEING_ON = $BEING_ON, "_xterm"
-- else
-- if (strstr("linux console", $TERM) < 0)
-- # remote side must be some type of real terminal
-- $BEING_ON = $BEING_ON, "_terminal"
-- else
-- # remote side is a Linux console
-- $BEING_ON = $BEING_ON, "_console"
-- endif
-- endif
-+ if ($DOSEMU_STDIN_IS_CONSOLE eq "1")
-+ $BEING_ON = "console"
-+ else
-+ if (strstr("linux console", $TERM) < 0)
-+ $BEING_ON = $BEING_ON, "_terminal"
-+ else
-+ $BEIGN_ON = $BEIGN_ON, "_console"
-+ endif
-+ endif
- endif
-
-+# if ( ($DOSEMU_STDIN_IS_CONSOLE eq "1")
-+# || ( strlen($xxx) && (strchr($xxx, "(" ) < 0 )))
-+# $BEING_ON = "console"
-+# else
-+# if (strstr($xxx, "(:") < 0)
-+# $BEING_ON = "remote"
-+# $REMOTE_HOST = strsplit($xxx, strchr($xxx,"(")+1,99)
-+# $REMOTE_HOST = strdel($REMOTE_HOST, strchr($REMOTE_HOST,")"),99)
-+# else
-+# $BEING_ON = ""
-+# endif
-+# if ( (strchr($DOSEMU_OPTIONS,"X") >=0) && ($DISPLAY ne "") )
-+# $USING_X = (1)
-+# endif
-+# if (strstr("xterm dtterm", $TERM) >= 0)
-+# $BEING_ON = $BEING_ON, "_xterm"
-+# else
-+# if (strstr("linux console", $TERM) < 0)
-+# # remote side must be some type of real terminal
-+# $BEING_ON = $BEING_ON, "_terminal"
-+# else
-+# # remote side is a Linux console
-+# $BEING_ON = $BEING_ON, "_console"
-+# endif
-+# endif
-+# endif
-+
- warn "dosemu running on ", $BEING_ON;
-
- $xxx = $_term_char_set
-diff -ur dosemu-1.0.2.orig/base-configure.in dosemu-1.0.2/base-configure.in
---- dosemu-1.0.2.orig/base-configure.in Sun Jun 18 16:34:26 2000
-+++ dosemu-1.0.2/base-configure.in Thu Aug 17 09:56:30 2000
-@@ -3855,19 +3855,8 @@
- OPT="$OPT -fomit-frame-pointer" # never omit the frame pointer when debugging!
+--- dosemu-1.1.4/base-configure.in.orig Wed Dec 18 02:36:44 2002
++++ dosemu-1.1.4/base-configure.in Sat Jan 25 23:00:39 2003
+@@ -532,14 +532,13 @@
+ AC_SUBST(INCDIR)
+
+ if test "$dodebug" = "yes"; then
+- COPTFLAGS=" -g -Wall -D_DEBUG"
+- OPT="-O"
++ COPTFLAGS=" -Wall -D_DEBUG"
++ OPT="$OPTFLAGS"
+ else
+ COPTFLAGS=" -Wall"
+- OPT="-O2" # BIG NOTE: do _not_ use -O3,
++ OPT="$OPTFLAGS" # BIG NOTE: do _not_ use -O3,
+ # because in forces _inline_ at places where we don't want it !
+ # If we want _inline_, well then we 'code' it.
+- OPT="$OPT -fomit-frame-pointer" # never omit the frame pointer when debugging!
fi
--# -m486 is usually in the specs for the compiler
--case "$host_cpu" in
-- i[[456]]86)
-- OPT="$OPT -m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2"
-- ;;
-- i386)
-- OPT="$OPT -m386"
-- ;;
-- *)
-- ;;
--esac
-
--OPT="$OPT -MD" # this should give painless dependencies
-+OPT="$OPTFLAGS -MD" # this should give painless dependencies
-
- # OPT=-fno-inline
- if test "$CONFIG_HOST" = "linux"; then
-diff -ur dosemu-1.0.1.orig/man/Makefile dosemu-1.0.1/man/Makefile
+ dnl CPU emulator
+@@ -625,32 +624,6 @@
+ fi
+
+
+- # -m486 is usually in the specs for the compiler
+- # but gcc-3.0 wants -mcpu=i486 instead
+- # let the compiler options be dependent of the _target_
+- # where dosemu is compiled for, not the host
+- if test "$target_cpu" = "athlon" -a $GCC_VERSION_CODE -le 2095 ; then
+- target_cpu="i686"
+- fi
+- if test "$GCC_VERSION_CODE" -ge 2095 ; then
+- OPT="$OPT -mcpu=$target_cpu"
+- else
+- case "$target_cpu" in
+- i486)
+- OPT="$OPT -m486"
+- ;;
+- i386)
+- OPT="$OPT -m386"
+- ;;
+- *)
+- ;;
+- esac
+- fi
+- if test "$target_cpu" = "athlon"; then
+- OPT="$OPT -malign-functions=4 -fexpensive-optimizations"
+- elif test "$target_cpu" = "i486"; then
+- OPT="$OPT -malign-loops=2 -malign-jumps=2 -malign-functions=2"
+- fi
+ GCC_VERSION_CODE="-DGCC_VERSION_CODE=$GCC_VERSION_CODE"
+
+ echo -n "checking for glibc..."
--- dosemu-1.0.1.orig/man/Makefile Sun Mar 5 13:57:36 2000
+++ dosemu-1.0.1/man/Makefile Thu Aug 17 09:57:21 2000
@@ -7,6 +7,6 @@
+ install *dos*.1 mkfatimage*.1 $(INSTROOT)/usr/share/man/man1
clean realclean:
-diff -ur dosemu-1.0.2.orig/src/arch/linux/Makefile.main dosemu-1.0.2/src/arch/linux/Makefile.main
---- dosemu-1.0.2.orig/src/arch/linux/Makefile.main Tue Mar 28 01:22:01 2000
-+++ dosemu-1.0.2/src/arch/linux/Makefile.main Thu Aug 17 10:02:53 2000
-@@ -324,9 +324,9 @@
- install -m 0744 ../etc/keymap/* $(INSTROOT)/var/lib/dosemu/keymap; \
- fi
- @if [ -f $(INSTROOT)/lib/libemu ]; then rm -f $(INSTROOT)/lib/libemu ; fi
-- @install -c -o root -m 0755 $(BINPATH)/bin/$(DOSBIN) $(INSTROOT)/usr/bin
-+ @install -c $(BINPATH)/bin/$(DOSBIN) $(INSTROOT)/usr/bin
+--- dosemu-1.1.4/src/arch/linux/Makefile.main.orig Wed Dec 18 02:36:44 2002
++++ dosemu-1.1.4/src/arch/linux/Makefile.main Sat Jan 25 23:12:44 2003
+@@ -8,7 +8,7 @@
+ # You should do a "make" to compile and a "make install" as root to
+ # install DOSEMU.
+
+-INSTALL = install -c -o root
++INSTALL = install -c
+ TMP = ../tmp
+ COM = ../src/plugin/commands
+ SYS = ../commands
+@@ -273,11 +273,11 @@
+ install:
+ rm -rf $(TMP)
+ mkdir -p -m 0755 $(TMP)/dosemu/freedos/dosemu
+- if [ ! -d $(dosemudir) ]; then \
+- $(INSTALL) -d $(dosemudir); \
++ if [ ! -d $(DESTDIR)$(dosemudir) ]; then \
++ $(INSTALL) -d $(DESTDIR)$(dosemudir); \
+ fi
+- if [ ! -d $(syshdimagedir) ]; then \
+- $(INSTALL) -d $(syshdimagedir); \
++ if [ ! -d $(DESTDIR)$(syshdimagedir) ]; then \
++ $(INSTALL) -d $(DESTDIR)$(syshdimagedir); \
+ fi
+ for i in aspi.sys cdrom.sys dumpconf.sys ems.sys emufs.sys fossil.com isemu.com mgarrot.com; do \
+ $(INSTALL) -m 0644 $(SYS)/$$i $(TMP)/dosemu/freedos/dosemu; \
+@@ -286,93 +286,93 @@
+ for i in `(cd $(COM); for i in *.com; do if [ -L $$i ]; then echo -n " $$i";fi;done)`; do \
+ ln -sf generic.com $(TMP)/dosemu/freedos/dosemu/$$i; \
+ done
+- cp -a $(TMP)/dosemu/freedos $(dosemudir)
++ cp -a $(TMP)/dosemu/freedos $(DESTDIR)$(dosemudir)
+ cd $(TMP)/dosemu; \
+ for i in `find freedos -type f` ; do \
+- ln -snf $(dosemudir)/$$i $$i; \
++ ln -snf $(DESTDIR)$(dosemudir)/$$i $$i; \
+ done
+ tar -cf- -C $(TMP) dosemu/freedos | gzip -9 > $(TMP)/dosemu/dosemu-bin.tgz
+- $(INSTALL) -m 0644 $(TMP)/dosemu/dosemu-bin.tgz $(dosemudir)
++ $(INSTALL) -m 0644 $(TMP)/dosemu/dosemu-bin.tgz $(DESTDIR)$(dosemudir)
+ rm -rf $(TMP)
+ mkdir -p -m 0755 $(TMP)/dosemu/freedos/dosemu
+ if [ -f ../$(fdtarball) ]; then \
+ tar -C $(dosemudir)/.. -xpzf ../dosemu-freedos-bin.tgz; \
+ tar -C $(TMP) -xpzf ../dosemu-freedos-bin.tgz; \
+ cd $(TMP)/dosemu; \
+- rm -f FDchange.log $(dosemudir)/FDchange.log; \
+- rm -f README.bindist $(dosemudir)/README.bindist; \
++ rm -f FDchange.log $(DESTDIR)$(dosemudir)/FDchange.log; \
++ rm -f README.bindist $(DESTDIR)$(dosemudir)/README.bindist; \
+ for i in `find freedos -type f | grep -v autoexec.bat | grep -v config.sys` ; do \
+- ln -snf $(dosemudir)/$$i $$i; \
++ ln -snf $(DESTDIR)$(dosemudir)/$$i $$i; \
+ done; \
+- $(INSTALL) $(dosemudir)/freedos/config.sys freedos; \
+- $(INSTALL) $(dosemudir)/freedos/autoexec.bat freedos; \
+- cd .. ; tar -cf- dosemu |gzip -9 >$(dosemudir)/dosemu-freedos-bin.tgz; \
++ $(INSTALL) $(DESTDIR)$(dosemudir)/freedos/config.sys freedos; \
++ $(INSTALL) $(DESTDIR)$(dosemudir)/freedos/autoexec.bat freedos; \
++ cd .. ; tar -cf- dosemu |gzip -9 >$(DESTDIR)$(dosemudir)/dosemu-freedos-bin.tgz; \
+ fi
+ sed -e "s|SYSTEM_INSTALL_PATH=NOT_SYSTEM_WIDE|SYSTEM_INSTALL_PATH=$(dosemudir)|" \
+ -e "s|SYSTEM_CONF_PATH=NOT_SYSTEM_WIDE|SYSTEM_CONF_PATH=$(sysconfdir)|" \
+ -e "s|SYSTEM_XFONTS_PATH=NOT_SYSTEM_WIDE|SYSTEM_XFONTS_PATH=$(x11fontdir)|" \
+ ../dist/dosemu > $(TMP)/dosemu/dosemu
+- if [ ! -d $(sysconfdir) ]; then \
+- $(INSTALL) -d $(sysconfdir); \
++ if [ ! -d $(DESTDIR)$(sysconfdir) ]; then \
++ $(INSTALL) -d $(DESTDIR)$(sysconfdir); \
+ fi
+- if [ ! -f $(sysconfdir)/dosemu.conf ]; then \
+- $(INSTALL) -m 0644 ../etc/dosemu.conf ../etc/dosemu.users.easy ../etc/dosemu.users.secure $(sysconfdir); \
+- $(INSTALL) -m 0644 ../etc/global.conf $(sysconfdir)/global.conf.example; \
++ if [ ! -f $(DESTDIR)$(sysconfdir)/dosemu.conf ]; then \
++ $(INSTALL) -m 0644 ../etc/dosemu.conf ../etc/dosemu.users.easy ../etc/dosemu.users.secure $(DESTDIR)$(sysconfdir); \
++ $(INSTALL) -m 0644 ../etc/global.conf $(DESTDIR)$(sysconfdir)/global.conf.example; \
+ fi
+- if [ ! -d $(dosemudir)/keymap ]; then \
+- $(INSTALL) -d $(dosemudir)/keymap; \
+- $(INSTALL) -m 0644 ../etc/keymap/* $(dosemudir)/keymap; \
++ if [ ! -d $(DESTDIR)$(dosemudir)/keymap ]; then \
++ $(INSTALL) -d $(DESTDIR)$(dosemudir)/keymap; \
++ $(INSTALL) -m 0644 ../etc/keymap/* $(DESTDIR)$(dosemudir)/keymap; \
+ fi
+- $(INSTALL) -m 0755 ../bin/$(DOSBIN) $(bindir)
+- $(INSTALL) -m 0755 $(TMP)/dosemu/dosemu $(bindir)
+- $(INSTALL) -m 0644 ../bin/dosemu.map $(dosemudir)/dosemu-$(THISVERSION).map
+- $(INSTALL) -m 0755 ../bin/mkfatimage $(bindir)
+- $(INSTALL) -m 0755 ../bin/mkfatimage16 $(bindir)
++ $(INSTALL) -m 0755 ../bin/$(DOSBIN) $(DESTDIR)$(bindir)
++ $(INSTALL) -m 0755 $(TMP)/dosemu/dosemu $(DESTDIR)$(bindir)
++ $(INSTALL) -m 0644 ../bin/dosemu.map $(DESTDIR)$(dosemudir)/dosemu-$(THISVERSION).map
++ $(INSTALL) -m 0755 ../bin/mkfatimage $(DESTDIR)$(bindir)
++ $(INSTALL) -m 0755 ../bin/mkfatimage16 $(DESTDIR)$(bindir)
+ ifdef USE_SBEMU
+- $(INSTALL) -m 0755 ../bin/midid $(bindir)
++ $(INSTALL) -m 0755 ../bin/midid $(DESTDIR)$(bindir)
+ endif
ifdef USE_MHPDBG
-- @install -c -o root -m 0755 $(BINPATH)/bin/dosdebug $(INSTROOT)/usr/bin
-+ @install -c $(BINPATH)/bin/dosdebug $(INSTROOT)/usr/bin
+- $(INSTALL) -m 0755 ../bin/dosdebug $(bindir)
++ $(INSTALL) -m 0755 ../bin/dosdebug $(DESTDIR)$(bindir)
endif
- ifndef ELF
- @install -m 0644 $(LIBDOSEMU) $(INSTROOT)/usr/lib/libdosemu-$(THISVERSION)
+- if [ -f $(bindir)/xdosemu ]; then \
+- $(INSTALL) -m 0700 $(bindir)/xdosemu /tmp; \
+- rm -f $(bindir)/xdosemu; \
++ if [ -f $(DESTDIR)$(bindir)/xdosemu ]; then \
++ $(INSTALL) -m 0700 $(DESTDIR)$(bindir)/xdosemu /tmp; \
++ rm -f $(DESTDIR)$(bindir)/xdosemu; \
+ fi
+- if [ ! -d $(docdir) ]; then \
+- $(INSTALL) -d $(docdir); \
++ if [ ! -d $(DESTDIR)$(docdir) ]; then \
++ $(INSTALL) -d $(DESTDIR)$(docdir); \
+ fi
+- $(INSTALL) -m 0644 ../README.bindist $(docdir)
++ $(INSTALL) -m 0644 ../README.bindist $(DESTDIR)$(docdir)
+ $(INSTALL) -m 0644 ../doc/{README,README-tech,dosemu-HOWTO,sound-usage}.txt \
+- ../doc/announce $(docdir)
+- if [ ! -d $(mandir)/man1 ]; then \
+- $(INSTALL) -d $(mandir)/man1; \
++ ../doc/announce $(DESTDIR)$(docdir)
++ if [ ! -d $(DESTDIR)$(mandir)/man1 ]; then \
++ $(INSTALL) -d $(DESTDIR)$(mandir)/man1; \
+ fi
+ $(INSTALL) -m 0644 ../man/{mkfatimage16,dosemu,dosemu.bin,dosdebug}.1 \
+- $(mandir)/man1
+- ln -sf dosemu.1 $(mandir)/man1/xdosemu.1
++ $(DESTDIR)$(mandir)/man1
++ ln -sf dosemu.1 $(DESTDIR)$(mandir)/man1/xdosemu.1
+ ifdef X_SUPPORT
+- if [ ! -e $(prefix)/xdosemu ]; then ln -s dosemu $(bindir)/xdosemu; fi
+- if [ ! -d $(x11fontdir) ]; then \
+- $(INSTALL) -d $(x11fontdir); \
++ if [ ! -e $(DESTDIR)$(prefix)/xdosemu ]; then ln -s dosemu $(DESTDIR)$(bindir)/xdosemu; fi
++ if [ ! -d $(DESTDIR)$(x11fontdir) ]; then \
++ $(INSTALL) -d $(DESTDIR)$(x11fontdir); \
+ fi
+- if [ -w $(x11fontdir) ] && \
+- [ -d $(X11fontdir) ] && \
+- [ ! -e $(x11fontdir)/vga.pcf ] && \
+- [ ! -e $(x11fontdir)/vga.pcf.Z ] && \
+- [ ! -e $(x11fontdir)/vga.pcf.gz ]; then \
++ if [ -w $(DESTDIR)$(x11fontdir) ] && \
++ [ -d $(DESTDIR)$(X11fontdir) ] && \
++ [ ! -e $(DESTDIR)$(x11fontdir)/vga.pcf ] && \
++ [ ! -e $(DESTDIR)$(x11fontdir)/vga.pcf.Z ] && \
++ [ ! -e $(DESTDIR)$(x11fontdir)/vga.pcf.gz ]; then \
+ echo "-> Main DOSEMU files installation done. Installing the X PC fonts..."; \
+- $(INSTALL) -m 0644 ../etc/vga.pcf $(x11fontdir); \
+- gzip -9 $(x11fontdir)/vga.pcf; \
+- bdftopcf ../etc/vga11x19.bdf | gzip -c -9 > $(x11fontdir)/vga11x19.pcf.gz; \
+- bdftopcf ../etc/vga-cp866.bdf | gzip -c -9 > $(x11fontdir)/vga-cp866.pcf.gz; \
+- bdftopcf ../etc/vga10x20-cp866.bdf | gzip -c -9 > $(x11fontdir)/vga10x20-cp866.pcf.gz; \
+- chmod 0644 $(x11fontdir)/vga11x19.pcf.gz $(x11fontdir)/vga-cp866.pcf.gz $(x11fontdir)/vga10x20-cp866.pcf.gz; \
+- if [ ! -f $(x11fontdir)/fonts.alias ]; then \
+- $(INSTALL) -m 0644 ../etc/dosemu.alias $(x11fontdir)/fonts.alias; \
+- elif [ grep ^vga $(x11fontdir)/fonts.alias ]; then \
+- cat ../etc/dosemu.alias >> $(x11fontdir)/fonts.alias; \
++ $(INSTALL) -m 0644 ../etc/vga.pcf $(DESTDIR)$(x11fontdir); \
++ gzip -9 $(DESTDIR)$(x11fontdir)/vga.pcf; \
++ bdftopcf ../etc/vga11x19.bdf | gzip -c -9 > $(DESTDIR)$(x11fontdir)/vga11x19.pcf.gz; \
++ bdftopcf ../etc/vga-cp866.bdf | gzip -c -9 > $(DESTDIR)$(x11fontdir)/vga-cp866.pcf.gz; \
++ bdftopcf ../etc/vga10x20-cp866.bdf | gzip -c -9 > $(DESTDIR)$(x11fontdir)/vga10x20-cp866.pcf.gz; \
++ chmod 0644 $(DESTDIR)$(x11fontdir)/vga11x19.pcf.gz $(DESTDIR)$(x11fontdir)/vga-cp866.pcf.gz $(DESTDIR)$(x11fontdir)/vga10x20-cp866.pcf.gz; \
++ if [ ! -f $(DESTDIR)$(x11fontdir)/fonts.alias ]; then \
++ $(INSTALL) -m 0644 ../etc/dosemu.alias $(DESTDIR)$(x11fontdir)/fonts.alias; \
++ elif [ grep ^vga $(DESTDIR)$(x11fontdir)/fonts.alias ]; then \
++ cat ../etc/dosemu.alias >> $(DESTDIR)$(x11fontdir)/fonts.alias; \
+ fi; \
+- cd $(x11fontdir); \
++ cd $(DESTDIR)$(x11fontdir); \
+ mkfontdir; \
+ fi;
+ endif
+--- dosemu-1.1.4/src/arch/linux/dosext/sound/midid/Makefile.orig Wed Dec 18 02:36:44 2002
++++ dosemu-1.1.4/src/arch/linux/dosext/sound/midid/Makefile Sun Jan 26 00:14:10 2003
+@@ -15,7 +15,7 @@
+ # No servicable parts below
+
+ CC=gcc
+-CFLAGS=-Wall -pipe -O -g
++CFLAGS=-Wall -pipe $(OPTFLAGS)
+ LDFLAGS += -Wall
+ OBJECTS=midid.o events.o io.o stats.o emulation.o device.o \
+ oss.o midout.o timid.o null.o
--- /dev/null
+--- dosemu-1.1.4.orig/man/dosdebug.1 Mon Mar 18 11:43:03 1996
++++ dosemu-1.1.4/man/dosdebug.1 Wed Dec 19 11:52:46 2001
+@@ -1 +1 @@
+-.so man1/dosemu.bin.1
++.so dos.1
+--- dosemu-1.1.4.orig/man/dosemu.bin.1 Fri Jun 1 01:36:11 2001
++++ dosemu-1.1.4/man/dosemu.bin.1 Wed Dec 19 11:22:05 2001
+@@ -1,9 +1,9 @@
+ .\" -*- nroff -*- (This is for Emacs)
+-.TH DOSEMU.BIN 1 "Dec, 2002" "Version 1.1.4" "DOS Emulation"
++.TH DOS 1 "Dec, 2002" "Version 1.1.4" "DOS Emulation"
+ .SH NAME
+-dosemu.bin, dosdebug \- run DOS and DOS programs under Linux
++dos, xdos, dosdebug \- run DOS and DOS programs under Linux
+ .SH SYNOPSIS
+-.B dosemu.bin
++.B dos
+ [
+ .B \-ABCcdkVNXtsgKm234OU
+ ]
+diff -Nru dosemu-1.0.2/man/xdos.1 dosemu-1.0.2.new/man/xdos.1
+--- dosemu-1.0.2/man/xdos.1 Fri Jun 1 23:47:21 2001
++++ dosemu-1.0.2.new/man/xdos.1 Wed Dec 19 11:53:00 2001
+@@ -1 +1 @@
+-.so man1/dosemu.bin.1
++.so dos.1
--- /dev/null
+--- dosemu-1.1.4/src/base/init/parser.y.in.orig Wed Dec 18 02:36:44 2002
++++ dosemu-1.1.4/src/base/init/parser.y.in Sat Jan 25 22:52:12 2003
+@@ -2576,7 +2576,7 @@
+ pwd->pw_name);
+ if(log_syslog>=1) {
+ fprintf(stderr, "This event will be logged!\n");
+- sprintf(buf, "Illegal DOSEMU start attempt by %s (uid=%i)",
++ snprintf(buf, sizeof(buf), "Illegal DOSEMU start attempt by %s (uid=%i)",
+ pwd->pw_name, uid);
+ write_to_syslog(buf);
+ }
+@@ -2584,7 +2584,7 @@
+ }
+ else {
+ if(log_syslog>=2) {
+- sprintf(buf, "DOSEMU started%s by %s (uid/euid=%i/%i)",
++ snprintf(buf, sizeof(buf), "DOSEMU started%s by %s (uid/euid=%i/%i)",
+ (can_do_root_stuff && !under_root_login)? " suid root" : "",
+ pwd->pw_name, uid, get_orig_euid());
+ write_to_syslog(buf);
+++ /dev/null
---- src/base/keyboard/keyb_clients.c.old Thu Apr 4 02:00:53 2002
-+++ src/base/keyboard/keyb_clients.c Thu Apr 4 02:01:10 2002
-@@ -188,7 +188,7 @@
- }
- else
- #endif
-- if (config.usesX || (config.console_keyb && can_do_root_stuff)) {
-+ if (config.usesX || config.console_keyb) {
- if (config.usesX || config.console)
- Keyboard = &Keyboard_raw;
- else {
---- src/env/video/vc.c.old Thu Apr 4 01:49:50 2002
-+++ src/env/video/vc.c Thu Apr 4 01:50:13 2002
-@@ -136,7 +136,7 @@
- c_printf("major = %d minor = %d\n",
- major, minor);
- /* console major num is 4, minor 64 is the first serial line */
-- if (can_do_root_stuff && (major == 4) && (minor < 64)) {
-+ if ((major == 4) && (minor < 64)) {
- scr_state.console_no = minor;
- config.console=1;
- }
---- src/base/init/config.c.old Sun Apr 7 18:42:14 2002
-+++ src/base/init/config.c Sun Apr 7 18:43:05 2002
-@@ -741,7 +741,7 @@
- config.emuretrace = 0; /* already emulated */
- }
- else {
-- if (!can_do_root_stuff && config.console) {
-+ if (!can_do_root_stuff && config.console_video) {
- /* force use of Slang-terminal on console too */
- config.console = config.console_video = config.vga = config.graphics = 0;
- config.cardtype = 0;
+#
# Conditional build:
-# --with static - linked static
+# _with_static - linked static
#
Summary: A DOS emulator
Summary(de): DOS-Emulator
Summary(pt_BR): Emulador DOS
Summary(tr): DOS öykünümcüsü
Name: dosemu
-Version: 1.0.2
-Release: 19
+Version: 1.1.4
+Release: 1
License: GPL v2
Group: Applications/Emulators
Source0: ftp://ftp.sourceforge.net/pub/sourceforge/dosemu/%{name}-%{version}.tgz
Source3: %{name}-PRZECZYTAJ_TO
Source4: %{name}-README.PLD
Source5: %{name}.desktop
-Patch0: ftp://ftp.sourceforge.net/pub/sourceforge/dosemu/patch-1.0.2.1.gz
-Patch1: %{name}-1.0.2-man-pages.patch
-Patch2: %{name}-0.98.1-security.patch
-Patch3: %{name}-make-new.patch
-Patch4: %{name}-Polish_keyboard.patch
-Patch5: %{name}-%{name}_conf.patch
-Patch6: %{name}-alt224.patch
-Patch7: pmstack.diff
-Patch8: %{name}-rawkeyboard-console.patch
-Patch9: %{name}-comcom.patch
-Patch10: %{name}-global.conf-xdos.patch
-Patch11: c_run_irqs.diff
+#Source6: http://www.dosemu.org/~stas/patchset-%{version}.%{pver}.tgz
+Patch0: %{name}-man-pages.patch
+Patch1: %{name}-parser-buf.patch
+Patch2: %{name}-make-new.patch
+Patch3: %{name}-%{name}_conf.patch
+Patch4: %{name}-mfs-pts.patch
+Patch5: %{name}-Oacute.patch
+Patch6: %{name}-doSgmlTools.patch
+Patch7: %{name}-dont_build_dvi.patch
URL: http://www.dosemu.org/
BuildRequires: XFree86-devel
BuildRequires: autoconf
BuildRequires: bin86
BuildRequires: bison
-#BuildRequires: docbook-dtd-sgml
+BuildRequires: docbook-dtd30-sgml
BuildRequires: flex
-#BuildRequires: lynx
-#BuildRequires: openjade
+BuildRequires: lynx
+BuildRequires: openjade
BuildRequires: perl
-#BuildRequires: sgml-tools
+BuildRequires: sgml-tools
BuildRequires: slang-devel
BuildRequires: util-linux
BuildRequires: unzip
-#Requires: dos
+Requires: dos
%{?_with_static:BuildRequires: glibc-static}
%{?_with_static:BuildRequires: XFree86-static}
%{?_with_static:BuildRequires: slang-static}
Group: Applications/Emulators
Provides: dosemu
Obsoletes: dosemu
-#Requires: dos
+Requires: dos
%description -n xdosemu
Xdosemu is a version of the dosemu DOS emulator that runs with the X
%patch2 -p1
%patch3 -p1
%patch4 -p1
-%patch5 -p0
-%patch6 -p1
-%patch7 -p0
-%patch8 -p0
-%patch9 -p1
-%patch10 -p1
-%patch11 -p0
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
%build
OPTFLAGS="%{rpmcflags} %{!?debug:-fomit-frame-pointer}"; export OPTFLAGS
-#./mkpluginhooks enable plugin_keyboard off plugin_kbd_unicode on \
-#plugin_extra_charset on plugin_term on plugin_translate on plugin_demo off
+./mkpluginhooks enable plugin_keyboard off plugin_kbd_unicode on \
+plugin_extra_charset on plugin_term on plugin_translate on plugin_demo off
cp -f base-configure.in configure.in
%{__autoconf}
mv -f man/dosemu.bin.1 man/dos.1
# documentation
-#%{__make} docs
-#find src/doc -name "*.html" -exec cp -f '{}' doc/ ';'
+%{__make} docs
+find src/doc -name "*.html" -exec cp -f '{}' doc/ ';'
# midid daemon
-%{__make} midid
+#%{__make} midid
%install
rm -rf $RPM_BUILD_ROOT
install src/tools/periph/{dexeconfig,hdinfo,mkhdimage,mkfatimage16} $RPM_BUILD_ROOT%{_bindir}
ln -sf dos $RPM_BUILD_ROOT%{_bindir}/dosexec
-install etc/dosemu.xpm $RPM_BUILD_ROOT%{_prefix}/X11R6/share/pixmaps
+install etc/dosemu.xpm $RPM_BUILD_ROOT%{_pixmapsdir}
install etc/dosemu.users.secure $RPM_BUILD_ROOT%{_sysconfdir}/dosemu.users
install etc/global.conf $RPM_BUILD_ROOT%{_dosemudir}/global.conf
install etc/dosemu.conf $RPM_BUILD_ROOT%{_sysconfdir}/dosemu.conf
install dosemu/*.sys $RPM_BUILD_ROOT%{_dosemudir}/bootdir/dosemu
cp %{SOURCE3} PRZECZYTAJ_TO
cp %{SOURCE4} README.PLD
-install %{SOURCE5} $RPM_BUILD_ROOT%{_applnkdir}/System/
+install %{SOURCE5} $RPM_BUILD_ROOT%{_applnkdir}/System
#ln -sf dosemu/comcom.com $RPM_BUILD_ROOT%{_dosemudir}/bootdir/command.com
-# Take out irritating ^H's from the documentation
-for i in `ls --color=no doc/` ; do cat doc/$i > $i ; cat $i | perl -p -e 's/.\010//g' > doc/$i ; done
-
rm -f doc/{configuration,dosemu.lsm}
%clean
%files
%defattr(644,root,root,755)
-%doc QuickStart COPYING ChangeLog* doc/* PRZECZYTAJ_TO README.PLD
+%doc QuickStart COPYING ChangeLog* doc/*.html PRZECZYTAJ_TO README.PLD
%dir %{_dosemudir}
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/dosemu.conf
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/dosemu.users
%files -n xdosemu
%defattr(644,root,root,755)
-%doc QuickStart COPYING ChangeLog* doc/* PRZECZYTAJ_TO README.PLD
+%doc QuickStart COPYING ChangeLog* doc/*.html PRZECZYTAJ_TO README.PLD
%dir %{_dosemudir}
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/dosemu.conf
%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/dosemu.users
+++ /dev/null
---- src/base/dev/pic/pic.c Tue Mar 19 19:45:50 2002
-+++ src/base/dev/pic/pic.c Tue Mar 19 19:54:14 2002
-@@ -806,7 +806,7 @@
- #endif
- if(pic_ilevel < 16) pic_push(pic_ilevel);
- if (in_dpmi) {
-- run_pm_int(intr);
-+ run_pm_int(intr, 1);
- } else {
- #ifndef USE_NEW_INT
- pic_cli();
---- src/dosext/dpmi/dpmi.h Tue Mar 19 19:45:49 2002
-+++ src/dosext/dpmi/dpmi.h Tue Mar 19 19:56:56 2002
-@@ -37,6 +37,7 @@
- EXTERN int in_win31 INIT(0); /* Set to 1 when running Windows 3.1 */
- EXTERN int dpmi_eflags INIT(0); /* used for virtual interruptflag and pending interrupts */
- EXTERN int in_dpmi_dos_int INIT(0);
-+EXTERN int in_dpmi_hw_int INIT(0);
- EXTERN int in_dpmi_timer_int INIT(0);
- EXTERN int dpmi_mhp_TF INIT(0);
- EXTERN unsigned char dpmi_mhp_intxxtab[256] INIT({0});
-@@ -47,7 +48,7 @@
- void dpmi_fault(struct sigcontext_struct *);
- #endif
- void dpmi_realmode_hlt(unsigned char *);
--void run_pm_int(int);
-+void run_pm_int(int, int);
- void run_pm_mouse();
- void fake_pm_int(void);
-
---- src/dosext/dpmi/dpmi.c Tue Mar 19 19:45:51 2002
-+++ src/dosext/dpmi/dpmi.c Tue Mar 19 21:01:00 2002
-@@ -2016,8 +2016,9 @@
- * DANG_END_FUNCTION
- */
-
--void run_pm_int(int i)
-+void run_pm_int(int i, int async)
- {
-+ unsigned short CLIENT_PMSTACK_SEL;
- us *ssp;
-
- #ifndef USE_NEW_INT
-@@ -2044,9 +2045,19 @@
- return;
- }
-
-- if (dpmi_stack_frame[current_client].ss == PMSTACK_SEL)
-+ if (async && !in_dpmi_hw_int) {
-+ D_printf("DPMI: Switching to locked stack\n");
-+ CLIENT_PMSTACK_SEL = PMSTACK_SEL;
-+ }
-+ else {
-+ D_printf("DPMI: Not switching to locked stack, in_dpmi_hw_int=%d\n",
-+ in_dpmi_hw_int);
-+ CLIENT_PMSTACK_SEL = dpmi_stack_frame[current_client].ss;
-+ }
-+
-+ if (dpmi_stack_frame[current_client].ss == PMSTACK_SEL || in_dpmi_hw_int)
- PMSTACK_ESP = client_esp(0);
-- ssp = (us *) (GetSegmentBaseAddress(PMSTACK_SEL) +
-+ ssp = (us *) (GetSegmentBaseAddress(CLIENT_PMSTACK_SEL) +
- (DPMIclient_is_32 ? PMSTACK_ESP : (PMSTACK_ESP&0xffff)));
- /* ---------------------------------------------------
- | 000FC925 | <- ssp here, executes pm int
-@@ -2087,10 +2098,12 @@
- }
- dpmi_stack_frame[current_client].cs = Interrupt_Table[i].selector;
- dpmi_stack_frame[current_client].eip = Interrupt_Table[i].offset;
-- dpmi_stack_frame[current_client].ss = PMSTACK_SEL;
-+ dpmi_stack_frame[current_client].ss = CLIENT_PMSTACK_SEL;
- dpmi_stack_frame[current_client].esp = PMSTACK_ESP;
- if (i == 0x08 || in_dpmi_timer_int) in_dpmi_timer_int++;
- in_dpmi_dos_int = 0;
-+ if (async || in_dpmi_hw_int)
-+ in_dpmi_hw_int++;
- #ifdef USE_NEW_INT
- dpmi_cli();
- #endif /* USE_NEW_INT */
-@@ -2200,7 +2213,7 @@
- case 0x1c: /* ROM BIOS timer tick interrupt */
- case 0x23: /* DOS Ctrl+C interrupt */
- case 0x24: /* DOS critical error interrupt */
-- run_pm_int(VM86_ARG(retval));
-+ run_pm_int(VM86_ARG(retval), 0);
- break;
- default:
- #ifdef USE_MHPDBG
-@@ -2506,6 +2519,7 @@
- in_dpmi++;
- in_win31 = 0;
- in_dpmi_dos_int = 0;
-+ in_dpmi_hw_int = 0;
- pm_block_root[current_client] = 0;
- memset((void *)(&realModeCallBack[current_client][0]), 0,
- sizeof(RealModeCallBack)*0x10);
-@@ -2983,5 +2997,13 @@
-
- } else if (_eip==DPMI_OFF+1+HLT_OFF(DPMI_return_from_pm)) {
- D_printf("DPMI: Return from protected mode interrupt hander\n");
-+ D_printf("DPMI: Return from protected mode interrupt handler\n");
-+ if (in_dpmi_hw_int) {
-+ in_dpmi_hw_int--;
-+ if (!in_dpmi_hw_int && _ss != PMSTACK_SEL) {
-+ error("DPMI: Client's PM Stack corrupted!\n");
-+ leavedos(91);
-+ }
-+ }
- /* ---------------------------------------------------
- |(000FC925)|
- |(dpmi_sel)|