Skip to content

Commit 46b6188

Browse files
authored
Merge pull request #290 from chrisws/12_35
12 35
2 parents bf0f50d + 9194db0 commit 46b6188

15 files changed

Lines changed: 112 additions & 44 deletions

File tree

ChangeLog

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
1+
2026-04-28 (12.34)
2+
COMMON: implement plugin_refresh_id for variable lifecycle handling
3+
COMMON: fix bug with comma in string assigned as local #283
4+
COMMON: fix crash when missing () on module function call
5+
CONSOLE: fix argument parsing to void adding switches to opt_command
6+
ANDROID: Fix stability issue with chromebooks
7+
18
2026-02-26 (12.33)
29
COMMON: Fix build for FreeBSD
10+
ANDROID: fix race with graphics drawing while pausing
11+
ANDROID: fix back-button handling
312

413
2026-01-23 (12.33)
514
SDL: Fix issue with flatpak release

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ dnl This program is distributed under the terms of the GPL v2.0
77
dnl Download the GNU Public License (GPL) from www.gnu.org
88
dnl
99

10-
AC_INIT([smallbasic], [12.34])
10+
AC_INIT([smallbasic], [12.35])
1111
AC_CONFIG_SRCDIR([configure.ac])
1212

1313
AC_CANONICAL_TARGET

samples/distro-examples/tests/strings.bas

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,3 +215,7 @@ REM Bug: RTRIM trimed input string on the right side
215215
s1 = " test "
216216
s2 = rtrim(s1)
217217
if(s1 != " test ") then throw "err: RTRIM changed input string"
218+
219+
REM bug with comma in string assigned as local
220+
local d="ab,"
221+
if d != "ab," then throw "err: comma bug"

src/common/eval.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -786,7 +786,11 @@ static inline void eval_var(var_t *r, var_t *var_p) {
786786
v_set(r, var_p);
787787
break;
788788
case V_FUNC:
789-
var_p->v.fn.cb(var_p, r);
789+
if (!var_p->v.fn.cb) {
790+
err_missing_sep();
791+
} else {
792+
var_p->v.fn.cb(var_p, r);
793+
}
790794
break;
791795
case V_NIL:
792796
r->type = V_NIL;

src/common/scan.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1583,9 +1583,13 @@ int comp_getlist(char *source, char_p_t *args, int maxarg) {
15831583
int square = 0;
15841584
int round = 0;
15851585
int brace = 0;
1586+
int quote = 0;
15861587

15871588
while (*p && count < maxarg) {
15881589
switch (*p) {
1590+
case '"':
1591+
quote = !quote;
1592+
break;
15891593
case '[':
15901594
square++;
15911595
break;
@@ -1605,7 +1609,7 @@ int comp_getlist(char *source, char_p_t *args, int maxarg) {
16051609
brace--;
16061610
break;
16071611
case ',':
1608-
if (!square && !round && !brace) {
1612+
if (!square && !round && !brace && !quote) {
16091613
*p = '\0';
16101614
SKIP_SPACES(ps);
16111615
args[count] = ps;

src/lib/maapi.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#define EVENT_TYPE_KEY_PRESSED 11
3838
#define EVENT_TYPE_OPTIONS_BOX_BUTTON_CLICKED 41
3939
#define EVENT_TYPE_SCREEN_CHANGED 21
40+
#define EVENT_TYPE_SCREEN_CHANGING 22
4041

4142
typedef int MAExtent;
4243
typedef intptr_t MAHandle;

src/platform/android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ android {
99
applicationId 'net.sourceforge.smallbasic'
1010
minSdkVersion 23
1111
targetSdkVersion 36
12-
versionCode 91
13-
versionName '12.33'
12+
versionCode 94
13+
versionName '12.35'
1414
resourceConfigurations += ['en']
1515
}
1616

5.59 KB
Loading

src/platform/android/app/src/main/java/net/sourceforge/smallbasic/MainActivity.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,14 @@ public int getWindowHeight() {
434434
return rect.height();
435435
}
436436

437+
public boolean isInsetBasedOnResize() {
438+
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA;
439+
}
440+
441+
public boolean isPredictiveBack() {
442+
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA;
443+
}
444+
437445
/**
438446
* Check if traditional 3-button navigation is enabled
439447
* @return true if 3-button navigation is active
@@ -449,14 +457,6 @@ public boolean isThreeButtonNavigationEnabled() {
449457
return false;
450458
}
451459

452-
public boolean isInsetBasedOnResize() {
453-
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA;
454-
}
455-
456-
public boolean isPredictiveBack() {
457-
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA;
458-
}
459-
460460
public boolean loadModules() {
461461
Log.i(TAG, "loadModules: " + getActivity());
462462
boolean result;
@@ -589,6 +589,17 @@ public String request(String endPoint, String data, String apiKey) throws IOExce
589589
return connection.invoke();
590590
}
591591

592+
public boolean requestApplyInsets() {
593+
final View view = getWindow().getDecorView();
594+
view.postDelayed(new Runnable() {
595+
@Override
596+
public void run() {
597+
ViewCompat.requestApplyInsets(view);
598+
}
599+
}, 100);
600+
return true;
601+
}
602+
592603
public boolean requestLocationUpdates() {
593604
final LocationManager locationService = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
594605
boolean result = false;

src/platform/android/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ buildscript {
55
mavenCentral()
66
}
77
dependencies {
8-
classpath 'com.android.tools.build:gradle:9.1.1'
8+
classpath 'com.android.tools.build:gradle:9.3.1'
99
}
1010
}
1111

@@ -19,7 +19,7 @@ allprojects {
1919
apply plugin: 'idea'
2020

2121
tasks.register('clean', Delete) {
22-
delete rootProject.buildDir
22+
delete rootProject.layout.buildDirectory
2323
}
2424

2525
tasks.register('test') {

0 commit comments

Comments
 (0)