@@ -172,27 +172,27 @@ static void compilerDeclareBuiltinIdents(Compiler *comp)
172
172
173
173
static void compilerDeclareExternalFuncs (Compiler * comp , bool fileSystemEnabled )
174
174
{
175
- externalAdd (& comp -> externals , "rtlmemcpy" , & rtlmemcpy );
176
- externalAdd (& comp -> externals , "rtlstdin" , & rtlstdin );
177
- externalAdd (& comp -> externals , "rtlstdout" , & rtlstdout );
178
- externalAdd (& comp -> externals , "rtlstderr" , & rtlstderr );
179
- externalAdd (& comp -> externals , "rtlfopen" , fileSystemEnabled ? & rtlfopen : & rtlfopenSandbox );
180
- externalAdd (& comp -> externals , "rtlfclose" , fileSystemEnabled ? & rtlfclose : & rtlfcloseSandbox );
181
- externalAdd (& comp -> externals , "rtlfread" , fileSystemEnabled ? & rtlfread : & rtlfreadSandbox );
182
- externalAdd (& comp -> externals , "rtlfwrite" , fileSystemEnabled ? & rtlfwrite : & rtlfwriteSandbox );
183
- externalAdd (& comp -> externals , "rtlfseek" , fileSystemEnabled ? & rtlfseek : & rtlfseekSandbox );
184
- externalAdd (& comp -> externals , "rtlftell" , fileSystemEnabled ? & rtlftell : & rtlftellSandbox );
185
- externalAdd (& comp -> externals , "rtlremove" , fileSystemEnabled ? & rtlremove : & rtlremoveSandbox );
186
- externalAdd (& comp -> externals , "rtlfeof" , fileSystemEnabled ? & rtlfeof : & rtlfeofSandbox );
187
- externalAdd (& comp -> externals , "rtlfflush" , & rtlfflush );
188
- externalAdd (& comp -> externals , "rtltime" , & rtltime );
189
- externalAdd (& comp -> externals , "rtlclock" , & rtlclock );
190
- externalAdd (& comp -> externals , "rtllocaltime" , & rtllocaltime );
191
- externalAdd (& comp -> externals , "rtlgmtime" , & rtlgmtime );
192
- externalAdd (& comp -> externals , "rtlmktime" , & rtlmktime );
193
- externalAdd (& comp -> externals , "rtlgetenv" , fileSystemEnabled ? & rtlgetenv : & rtlgetenvSandbox );
194
- externalAdd (& comp -> externals , "rtlsystem" , fileSystemEnabled ? & rtlsystem : & rtlsystemSandbox );
195
- externalAdd (& comp -> externals , "rtltrace" , & rtltrace );
175
+ externalAdd (& comp -> externals , "rtlmemcpy" , & rtlmemcpy , true );
176
+ externalAdd (& comp -> externals , "rtlstdin" , & rtlstdin , true );
177
+ externalAdd (& comp -> externals , "rtlstdout" , & rtlstdout , true );
178
+ externalAdd (& comp -> externals , "rtlstderr" , & rtlstderr , true );
179
+ externalAdd (& comp -> externals , "rtlfopen" , fileSystemEnabled ? & rtlfopen : & rtlfopenSandbox , true );
180
+ externalAdd (& comp -> externals , "rtlfclose" , fileSystemEnabled ? & rtlfclose : & rtlfcloseSandbox , true );
181
+ externalAdd (& comp -> externals , "rtlfread" , fileSystemEnabled ? & rtlfread : & rtlfreadSandbox , true );
182
+ externalAdd (& comp -> externals , "rtlfwrite" , fileSystemEnabled ? & rtlfwrite : & rtlfwriteSandbox , true );
183
+ externalAdd (& comp -> externals , "rtlfseek" , fileSystemEnabled ? & rtlfseek : & rtlfseekSandbox , true );
184
+ externalAdd (& comp -> externals , "rtlftell" , fileSystemEnabled ? & rtlftell : & rtlftellSandbox , true );
185
+ externalAdd (& comp -> externals , "rtlremove" , fileSystemEnabled ? & rtlremove : & rtlremoveSandbox , true );
186
+ externalAdd (& comp -> externals , "rtlfeof" , fileSystemEnabled ? & rtlfeof : & rtlfeofSandbox , true );
187
+ externalAdd (& comp -> externals , "rtlfflush" , & rtlfflush , true );
188
+ externalAdd (& comp -> externals , "rtltime" , & rtltime , true );
189
+ externalAdd (& comp -> externals , "rtlclock" , & rtlclock , true );
190
+ externalAdd (& comp -> externals , "rtllocaltime" , & rtllocaltime , true );
191
+ externalAdd (& comp -> externals , "rtlgmtime" , & rtlgmtime , true );
192
+ externalAdd (& comp -> externals , "rtlmktime" , & rtlmktime , true );
193
+ externalAdd (& comp -> externals , "rtlgetenv" , fileSystemEnabled ? & rtlgetenv : & rtlgetenvSandbox , true );
194
+ externalAdd (& comp -> externals , "rtlsystem" , fileSystemEnabled ? & rtlsystem : & rtlsystemSandbox , true );
195
+ externalAdd (& comp -> externals , "rtltrace" , & rtltrace , true );
196
196
}
197
197
198
198
@@ -225,7 +225,7 @@ void compilerInit(Compiler *comp, const char *fileName, const char *sourceString
225
225
comp -> lex .tok .pos = 1 ;
226
226
comp -> debug .fnName = "<unknown>" ;
227
227
228
- lexInit (& comp -> lex , & comp -> storage , & comp -> debug , filePath , sourceString , & comp -> error );
228
+ lexInit (& comp -> lex , & comp -> storage , & comp -> debug , filePath , sourceString , false, & comp -> error );
229
229
230
230
comp -> argc = argc ;
231
231
comp -> argv = argv ;
@@ -256,7 +256,9 @@ void compilerInit(Compiler *comp, const char *fileName, const char *sourceString
256
256
{
257
257
char runtimeModulePath [DEFAULT_STR_LEN + 1 ] = "" ;
258
258
moduleAssertRegularizePath (& comp -> modules , runtimeModuleNames [i ], comp -> modules .curFolder , runtimeModulePath , DEFAULT_STR_LEN + 1 );
259
- moduleAddSource (& comp -> modules , runtimeModulePath , runtimeModuleSources [i ]);
259
+
260
+ const bool runtimeModuleTrusted = strcmp (runtimeModuleNames [i ], "std.um" ) == 0 ;
261
+ moduleAddSource (& comp -> modules , runtimeModulePath , runtimeModuleSources [i ], runtimeModuleTrusted );
260
262
}
261
263
}
262
264
@@ -321,7 +323,7 @@ bool compilerAddModule(Compiler *comp, const char *fileName, const char *sourceS
321
323
if (moduleFindSource (& comp -> modules , modulePath ))
322
324
return false;
323
325
324
- moduleAddSource (& comp -> modules , modulePath , sourceString );
326
+ moduleAddSource (& comp -> modules , modulePath , sourceString , false );
325
327
return true;
326
328
}
327
329
@@ -331,7 +333,7 @@ bool compilerAddFunc(Compiler *comp, const char *name, ExternFunc func)
331
333
if (externalFind (& comp -> externals , name ))
332
334
return false;
333
335
334
- externalAdd (& comp -> externals , name , func );
336
+ externalAdd (& comp -> externals , name , func , false );
335
337
return true;
336
338
}
337
339
0 commit comments