From 2fe162dacc88cf768f3766878dfcab74f59e7ac2 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 May 2021 17:57:37 +0500 Subject: [PATCH 1/4] Fix various bugs related to string handling in printer code: generic text printer saving output files in the working dir instead of printer subdir; generic ESC/P printer looking up font files in the wrong directory; generic PostScript printer saving output PDFs with a double ".ps.pdf" extension. --- src/printer/prt_escp.c | 2 +- src/printer/prt_ps.c | 2 +- src/printer/prt_text.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/printer/prt_escp.c b/src/printer/prt_escp.c index f8824f705..029d2d492 100644 --- a/src/printer/prt_escp.c +++ b/src/printer/prt_escp.c @@ -595,7 +595,7 @@ update_font(escp_t *dev) /* Create a full pathname for the ROM file. */ strcpy(path, dev->fontpath); plat_path_slash(path); - strcpy(path, fn); + strcat(path, fn); escp_log("Temp file=%s\n", path); diff --git a/src/printer/prt_ps.c b/src/printer/prt_ps.c index e22ae2339..f66d17f80 100644 --- a/src/printer/prt_ps.c +++ b/src/printer/prt_ps.c @@ -145,7 +145,7 @@ convert_to_pdf(ps_t *dev) strcat(input_fn, dev->filename); strcpy(output_fn, input_fn); - strcat(output_fn + strlen(output_fn) - 3, ".pdf"); + strcpy(output_fn + strlen(output_fn) - 3, ".pdf"); gsargv[0] = ""; gsargv[1] = "-dNOPAUSE"; diff --git a/src/printer/prt_text.c b/src/printer/prt_text.c index a8925dff1..e11d4f734 100644 --- a/src/printer/prt_text.c +++ b/src/printer/prt_text.c @@ -154,7 +154,7 @@ dump_page(prnt_t *dev) if (! plat_dir_check(path)) plat_dir_create(path); plat_path_slash(path); - strcpy(path, dev->filename); + strcat(path, dev->filename); /* Create the file. */ fp = plat_fopen(path, "a"); From 594c355940282948b85780cc2c7cec48e1e75838 Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 May 2021 18:13:01 +0500 Subject: [PATCH 2/4] Change the internal name for VLB IDE controllers This should fix an issue with HDDs and CD-ROMs connected to those controllers not appearing in the status bar. --- src/config.c | 8 ++++++++ src/disk/hdc.c | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/config.c b/src/config.c index 66a624aba..f1fc95293 100644 --- a/src/config.c +++ b/src/config.c @@ -1040,6 +1040,10 @@ load_storage_controllers(void) hdc_current = hdc_get_from_internal_name("st506_xt_dtc5150x"); else if (!strcmp(p, "mfm_at")) hdc_current = hdc_get_from_internal_name("st506_at"); + else if (!strcmp(p, "vlb_isa")) + hdc_current = hdc_get_from_internal_name("ide_vlb"); + else if (!strcmp(p, "vlb_isa_2ch")) + hdc_current = hdc_get_from_internal_name("ide_vlb_2ch"); else hdc_current = hdc_get_from_internal_name(p); @@ -1741,6 +1745,10 @@ load_other_peripherals(void) hdc_current = hdc_get_from_internal_name("st506_xt_dtc5150x"); else if (!strcmp(p, "mfm_at")) hdc_current = hdc_get_from_internal_name("st506_at"); + else if (!strcmp(p, "vlb_isa")) + hdc_current = hdc_get_from_internal_name("ide_vlb"); + else if (!strcmp(p, "vlb_isa_2ch")) + hdc_current = hdc_get_from_internal_name("ide_vlb_2ch"); else hdc_current = hdc_get_from_internal_name(p); config_delete_var(cat, "hdc"); diff --git a/src/disk/hdc.c b/src/disk/hdc.c index 9c0a2dbbb..dc2234fc0 100644 --- a/src/disk/hdc.c +++ b/src/disk/hdc.c @@ -118,8 +118,8 @@ static const struct { { "esdi_mca", &esdi_ps2_device }, { "ide_pci", &ide_pci_device }, { "ide_pci_2ch", &ide_pci_2ch_device }, - { "vlb_isa", &ide_vlb_device }, - { "vlb_isa_2ch", &ide_vlb_2ch_device }, + { "ide_vlb", &ide_vlb_device }, + { "ide_vlb_2ch", &ide_vlb_2ch_device }, { "", NULL } }; From ea5e598bf15279c19e2a043c2b4dbffa2906b30a Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 May 2021 18:14:52 +0500 Subject: [PATCH 3/4] Make the media menu recognize drives attached to external IDE controllers --- src/win/win_media_menu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/win/win_media_menu.c b/src/win/win_media_menu.c index a28499a81..4c925e8b5 100644 --- a/src/win/win_media_menu.c +++ b/src/win/win_media_menu.c @@ -293,7 +293,7 @@ is_valid_fdd(int i) static inline int is_valid_cdrom(int i) { - if ((cdrom[i].bus_type == CDROM_BUS_ATAPI) && !MACHINE_HAS_IDE) + if ((cdrom[i].bus_type == CDROM_BUS_ATAPI) && !MACHINE_HAS_IDE && memcmp(hdc_get_internal_name(hdc_current), "ide", 3)) return 0; if ((cdrom[i].bus_type == CDROM_BUS_SCSI) && !MACHINE_HAS_SCSI && (scsi_card_current == 0)) return 0; @@ -303,7 +303,7 @@ is_valid_cdrom(int i) static inline int is_valid_zip(int i) { - if ((zip_drives[i].bus_type == ZIP_BUS_ATAPI) && !MACHINE_HAS_IDE) + if ((zip_drives[i].bus_type == ZIP_BUS_ATAPI) && !MACHINE_HAS_IDE && memcmp(hdc_get_internal_name(hdc_current), "ide", 3)) return 0; if ((zip_drives[i].bus_type == ZIP_BUS_SCSI) && !MACHINE_HAS_SCSI && (scsi_card_current == 0)) return 0; @@ -313,7 +313,7 @@ is_valid_zip(int i) static inline int is_valid_mo(int i) { - if ((mo_drives[i].bus_type == MO_BUS_ATAPI) && !MACHINE_HAS_IDE) + if ((mo_drives[i].bus_type == MO_BUS_ATAPI) && !MACHINE_HAS_IDE && memcmp(hdc_get_internal_name(hdc_current), "ide", 3)) return 0; if ((mo_drives[i].bus_type == MO_BUS_SCSI) && !MACHINE_HAS_SCSI && (scsi_card_current == 0)) return 0; From 046aa86ffaf469857fee92f00f5f25f2d818043d Mon Sep 17 00:00:00 2001 From: Alexander Babikov Date: Wed, 26 May 2021 18:15:47 +0500 Subject: [PATCH 4/4] Remove a duplicate #include in win_stbar.c --- src/win/win_stbar.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/win/win_stbar.c b/src/win/win_stbar.c index 18d815cc2..4cbbdfd7e 100644 --- a/src/win/win_stbar.c +++ b/src/win/win_stbar.c @@ -51,7 +51,6 @@ #include <86box/plat.h> #include <86box/ui.h> #include <86box/win.h> -#include <86box/mo.h> #ifndef GWL_WNDPROC #define GWL_WNDPROC GWLP_WNDPROC