about summary refs log tree commit diff stats
path: root/src/librarian
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-11-21 22:20:28 +0100
committerptitSeb <sebastien.chev@gmail.com>2021-11-21 22:20:28 +0100
commit07767d42ccd1a09fb78ccae6571d2a99a1d3b925 (patch)
tree0d77b4639250b6bdbe18e2cb4c70684853ca12be /src/librarian
parent9d97ce087a460b6b5be721b3673ac1543eb77484 (diff)
downloadbox64-07767d42ccd1a09fb78ccae6571d2a99a1d3b925.tar.gz
box64-07767d42ccd1a09fb78ccae6571d2a99a1d3b925.zip
Fixed some issue with getopt (for #170)
Diffstat (limited to 'src/librarian')
-rwxr-xr-xsrc/librarian/globalsymbols.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/librarian/globalsymbols.c b/src/librarian/globalsymbols.c
index dfc163f3..3a932d86 100755
--- a/src/librarian/globalsymbols.c
+++ b/src/librarian/globalsymbols.c
@@ -18,10 +18,16 @@
 

 #define GLOB(A) \

     if (GetGlobalNoWeakSymbolStartEnd(my_context->maplib, #A, &globoffs, &globend, -1, NULL)) {     \

-        printf_log(LOG_DEBUG, "Global " #A " workaround, @%p <= %p\n", (void*)globoffs, &A);        \

+        printf_log(LOG_DEBUG, "Global " #A " workaround, @%p <- %p\n", (void*)globoffs, &A);        \

         memcpy((void*)globoffs, &A, sizeof(A));                                                     \

     }

 

+#define TOGLOB(A) \

+    if (GetGlobalNoWeakSymbolStartEnd(my_context->maplib, #A, &globoffs, &globend, -1, NULL)) {     \

+        printf_log(LOG_DEBUG, "Global " #A " workaround, @%p -> %p\n", (void*)globoffs, &A);        \

+        memcpy(&A, (void*)globoffs, sizeof(A));                                                     \

+    }

+

 

 // *********** GTK *****************

 EXPORT void* gdk_display = NULL;   // in case it's used...

@@ -87,10 +93,36 @@ void my_checkGlobalTInfo()
     GLOB(ttytype)

 }

 

+void my_updateGlobalTInfo()

+{

+    uintptr_t globoffs, globend;

+    TOGLOB(COLS)

+    TOGLOB(LINES)

+    TOGLOB(TABSIZE)

+    TOGLOB(curscr)

+    TOGLOB(newscr)

+    TOGLOB(stdscr)

+    TOGLOB(acs_map)

+    TOGLOB(UP)

+    TOGLOB(BC)

+    TOGLOB(PC)

+    TOGLOB(ospeed)

+    TOGLOB(ttytype)

+}

+

 // **************** getopts ****************

 EXPORT char *optarg;

 EXPORT int optind, opterr, optopt;

 

+void my_updateGlobalOpt()

+{

+    uintptr_t globoffs, globend;

+    TOGLOB(optarg);

+    TOGLOB(optind);

+    TOGLOB(opterr);

+    TOGLOB(optopt);

+}

+

 void my_checkGlobalOpt()

 {

     uintptr_t globoffs, globend;