From 3aa74deb68d1b0e038b6ef2d7bc3f34ff50922b1 Mon Sep 17 00:00:00 2001 From: n00b87 Date: Mon, 29 Sep 2025 23:42:41 -0500 Subject: [PATCH] Fixed environment variable resolution in INCLUDE having quotes --- rcbasic_build/env_resolve.h | 10 ++++++++++ rcbasic_build/main.cpp | 11 +++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/rcbasic_build/env_resolve.h b/rcbasic_build/env_resolve.h index 1938dc1..0bf67a3 100755 --- a/rcbasic_build/env_resolve.h +++ b/rcbasic_build/env_resolve.h @@ -48,6 +48,16 @@ string resolveEnvironmentVariables(string sdata) } string env_var = sdata.substr(i+2).substr(0, end_index); //cout << "env_var is " << env_var << endl; + + //remove quotes from environment variable + string tmp_env_var = env_var; + env_var = ""; + for(int c = 0; c < env_var.length(); c++) + { + if(tmp_env_var.substr(c, 1).compare("\"")!=0) + env_var += tmp_env_var.substr(c,1); + } + string env_value = rc_intern_env(env_var); sdata_out += env_value; i = (i+2) + end_index; diff --git a/rcbasic_build/main.cpp b/rcbasic_build/main.cpp index 49b9398..ec0c768 100755 --- a/rcbasic_build/main.cpp +++ b/rcbasic_build/main.cpp @@ -133,6 +133,13 @@ bool rc_preprocessor() tmp_token[1] = resolveEnvironmentVariables(tmp_token[1]); inc_file.filename = tmp_token[1].substr(8); + + if(inc_file.filename.length() == 0) + { + rc_setError("Expected file as argument in include"); + return false; + } + inc_file.filename = rc_absFilePath(inc_file.filename); for(int i = 0; i < inc_once.size(); i++) @@ -919,8 +926,8 @@ int main(int argc, char * argv[]) bool clean_after_build = true; //DEBUG START - //chdir("/home/n00b/test/SpriteShapeTest"); - //rc_filename = "/home/n00b/test/stp/serenity_main.bas"; + //chdir("/home/n00b/GameDev/Ambient/Ambient_Project"); + //rc_filename = "main.bas"; //rc_filename = "/home/n00b/test/SpriteShapeTest/main.bas"; //rc_filename = "/home/n00b/Programs/RCBasic_v400_Linux64/examples/Constraint/main.bas"; //rc_filename = "/home/n00b/Programs/RCBasic_v401_Linux64/examples/Simple_3D_Platformer/main.bas";