Skip to content

Commit 93d7851

Browse files
[[ LinuxServer ]] Fixes Pango font crash and $_* variable parsing
1 parent 6dd8fb0 commit 93d7851

5 files changed

Lines changed: 33 additions & 8 deletions

File tree

Server.files

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@ engine/src/lnxprefix.h
288288
engine/src/lnxpsprinter.h
289289
engine/src/lnxtheme.h
290290
engine/src/lnxtransfer.h
291+
engine/src/lnxtxt.cpp
291292
engine/src/magnify.h
292293
engine/src/mblad.h
293294
engine/src/mblandroidcontrol.h
@@ -417,7 +418,6 @@ engine/src/w32text.h
417418
engine/src/w32theme.h
418419
engine/src/w32transfer.h
419420

420-
421421
libfoundation/include/foundation-auto.h
422422
libfoundation/include/foundation-inline.h
423423
libfoundation/include/foundation-locale.h
@@ -444,6 +444,23 @@ libfoundation/src/foundation-unicode.cpp
444444
libfoundation/src/foundation-unicode-private.h
445445
libfoundation/src/foundation-value.cpp
446446

447+
libgraphics/include/graphics.h
448+
libgraphics/src/blur.cpp
449+
libgraphics/src/cachetable.cpp
450+
libgraphics/src/context.cpp
451+
libgraphics/src/graphics-internal.h
452+
libgraphics/src/image.cpp
453+
libgraphics/src/legacyblendmodes.cpp
454+
libgraphics/src/legacygradients.cpp
455+
libgraphics/src/lnxtext.cpp
456+
libgraphics/src/mblandroidtext.cpp
457+
libgraphics/src/mbliphonetext.mm
458+
libgraphics/src/osxtext.cpp
459+
libgraphics/src/path.cpp
460+
libgraphics/src/spread.cpp
461+
libgraphics/src/utils.cpp
462+
libgraphics/src/w32text.cpp
463+
447464
Makefile
448465
engine/Makefile.standalone
449466
engine/Makefile.server

Server.includes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ libexternal/include/revolution
55
libexternalv1/include
66
libfoundation/include
77
libfoundation/src
8+
libgraphics/include
9+
libexternal/include
10+
libexternalv1/include
811
revbrowser/src
912
revdb/src
1013
revfont/src

engine/src/srvcgi.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -663,7 +663,7 @@ static void cgi_store_data_urlencoded(MCVariable *p_variable, MCDataRef p_data,
663663
/* UNCHECKED */ MCNameCreate(*t_key_as_string, &t_key_as_name);
664664

665665
uindex_t t_encoded_value_end;
666-
t_encoded_value_end = t_delimiter_index - 1;
666+
t_encoded_value_end = t_delimiter_index;
667667

668668
if (p_remove_whitespace)
669669
while (t_encoded_value_end > t_encoded_value_index && MCDataGetByteAtIndex(p_data, t_encoded_value_end) == ' ')

libfoundation/src/foundation-string.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -814,6 +814,10 @@ bool MCStringCopySubstring(MCStringRef self, MCRange p_range, MCStringRef& r_sub
814814
if (__MCStringIsIndirect(self))
815815
self = self -> string;
816816

817+
// Avoid copying in case the substring is actually the whole string
818+
if (p_range . offset == 0 && self -> char_count < p_range . length)
819+
return MCStringCopy(self, r_substring);
820+
817821
__MCStringClampRange(self, p_range);
818822

819823
if (MCStringIsNative(self))

libgraphics/src/lnxtext.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,13 @@ static bool lnx_pango_initialize(void)
7979

8080
static void lnx_pango_finalize(void)
8181
{
82-
if (s_layout != NULL)
83-
g_object_unref(s_layout);
84-
if (s_pango != NULL)
85-
g_object_unref(s_pango);
86-
if (s_font_map != NULL)
87-
g_object_unref(s_font_map);
82+
if (s_layout != NULL)
83+
g_object_unref(s_layout);
84+
if (s_pango != NULL)
85+
g_object_unref(s_pango);
86+
// Causes a SIGSERV on linux server
87+
// if (s_font_map != NULL)
88+
// g_object_unref(s_font_map);
8889
}
8990

9091
////////////////////////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)