File 0001-Use-ROMDIR-and-HOME-for-files.patch of Package dapple

From 1a3adc40189e2f48a84d16c17d55b1f88f918e0c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <kkaempf@suse.de>
Date: Thu, 28 Sep 2023 17:44:51 +0200
Subject: [PATCH 1/4] Use ROMDIR and HOME for files

---
 dapple.c | 21 +++++++++++----------
 ini.c    | 11 +++++++++--
 2 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/dapple.c b/dapple.c
index 8fa2387..3303454 100644
--- a/dapple.c
+++ b/dapple.c
@@ -177,7 +177,8 @@ putpixel(bufferzor,x,1+(y*2),vga2alleg(c));
 }
 
 extern int hdd;
-char rompath[128]={"apple.rom"};
+#define ROMDIR "/usr/share/dapple/"
+char rompath[128]={ROMDIR "apple.rom"};
 //static char cmap[16]={0,4,1,5,3,7,2,9,6,13,8,12,10,14,11,15};
 //zD was here too ]xD
 //#ifdef SAFE
@@ -1541,11 +1542,11 @@ FONT *myfont;
  strcpy(hd2,"hdv2.hdv");
 
  /* if (!isatty(fileno(stdin))) */
-   freopen("con","r",stdin);
+//   freopen("con","r",stdin);
 
 // if (argc>3) {usage(); return;}
 
-  rom=fopen("disk.rom","rb");
+  rom=fopen(ROMDIR "disk.rom","rb");
   if (!rom) {
     printf ("disk ][ : ROM not available\n");
     memset(DISKROM,0xff,sizeof(DISKROM));       /* set rom to 0xff */
@@ -1555,7 +1556,7 @@ FONT *myfont;
     fclose(rom);
   }
 
-  rom=fopen("parallel.rom","rb");
+  rom=fopen(ROMDIR "parallel.rom","rb");
   if (!rom) {
     printf ("Parallel port : ROM not available\n");
     memset(PICROM,0xff,sizeof(PICROM));         /* set rom to 0xff */
@@ -1565,7 +1566,7 @@ FONT *myfont;
     fclose(rom);
   }
 
-  rom=fopen("massstor.rom","rb");
+  rom=fopen(ROMDIR "massstor.rom","rb");
   if (!rom) {
     printf ("Mass storage devices : ROM not available\n");
     memset(HDDROM,0xff,sizeof(HDDROM));         /* set rom to 0xff */
@@ -1665,19 +1666,19 @@ FONT *myfont;
 
   rom=fopen(rompath,"rb");
   if (!rom) {
-    strcpy(rompath,"apple.rom");
+    strcpy(rompath,ROMDIR "apple.rom");
     rom=fopen(rompath,"rb");
     if (!rom) {
-      strcpy(rompath,"apple2o.rom");
+      strcpy(rompath,ROMDIR "apple2o.rom");
       rom=fopen(rompath,"rb");
       if (!rom) {
-        strcpy(rompath,"apple2m.rom");
+        strcpy(rompath,ROMDIR "apple2m.rom");
         rom=fopen(rompath,"rb");
         if (!rom) {
-          strcpy(rompath,"apple2eo.rom");
+          strcpy(rompath,ROMDIR "apple2eo.rom");
           rom=fopen(rompath,"rb");
           if (!rom) {
-            strcpy(rompath,"apple2ee.rom");
+            strcpy(rompath,ROMDIR "apple2ee.rom");
             rom=fopen(rompath,"rb");
             if (!rom) {
               printf ("No BIOS ROMs found.\n");
diff --git a/ini.c b/ini.c
index 51803ef..5d38fcb 100644
--- a/ini.c
+++ b/ini.c
@@ -22,6 +22,7 @@
 
 #include <stdio.h>
 #include <string.h>
+#include <sys/param.h>
 
 extern void virtsetmonochrome(unsigned int mode);
 extern unsigned char virtgetmonochrome();
@@ -52,12 +53,16 @@ extern char parallel[128], rompath[128];
 
 void wrini(void)
 {
+ char inipath[PATH_MAX];
  FILE *file;
  unsigned char vpal;
 
  vpal=virtgetpalette();
 
- file=fopen("dapple.ini","wt");
+ sprintf(inipath, "%s/.dapple", getenv("HOME"));
+ mkdir(inipath, 0755);
+ strcat(inipath, "/dapple.ini");
+ file=fopen(inipath,"wt");
  if (!file) return;
  fprintf(file,"[Dapple]\n");
  fprintf(file,"Sound=%s\n",smode?"Yes":"No");
@@ -108,10 +113,12 @@ void wrini(void)
 
 void rdini(void)
 {
+ char inipath[PATH_MAX];
  FILE *file;
  unsigned char mono;
 
- file=fopen("dapple.ini","rt");
+ sprintf(inipath, "%s/.dapple/dapple.ini", getenv("HOME"));
+ file=fopen(inipath,"rt");
  if (!file) return;
  while (!feof(file))
  {
-- 
2.42.0

openSUSE Build Service is sponsored by