@@ -287,6 +287,10 @@ void setsysvar_str(int index, const char *value) {
287287 activate_task (tid );
288288}
289289
290+ void sysvar_getcwd (var_t * r ) {
291+ v_setstr (r , dev_getcwd ());
292+ }
293+
290294/**
291295 * create predefined system variables for this task
292296 */
@@ -298,12 +302,12 @@ void exec_setup_predefined_variables() {
298302
299303 setsysvar_str (SYSVAR_SBVER , SB_STR_VER );
300304 setsysvar_num (SYSVAR_PI , SB_PI );
301- setsysvar_int (SYSVAR_XMAX , os_graf_mx - 1 );
302- setsysvar_int (SYSVAR_YMAX , os_graf_my - 1 );
303305 setsysvar_int (SYSVAR_TRUE , 1 );
304306 setsysvar_int (SYSVAR_FALSE , 0 );
305- setsysvar_str (SYSVAR_CWD , dev_getcwd ());
306307 setsysvar_str (SYSVAR_COMMAND , opt_command );
308+ setsysvar_fn (SYSVAR_CWD , sysvar_getcwd );
309+ setsysvar_fn (SYSVAR_XMAX , graph_get_mx );
310+ setsysvar_fn (SYSVAR_YMAX , graph_get_my );
307311 setsysvar_fn (SYSVAR_LASTX , graph_get_xstep );
308312 setsysvar_fn (SYSVAR_LASTY , graph_get_ystep );
309313
@@ -321,14 +325,13 @@ void exec_setup_predefined_variables() {
321325 }
322326 setsysvar_str (SYSVAR_HOME , homedir );
323327#elif defined(_Win32 )
324- if (dev_getenv ("HOME" )) { // this works on cygwin
328+ if (dev_getenv ("HOME" )) {
329+ // this works on cygwin
325330 strcpy (homedir , dev_getenv ("HOME" ));
326331 }
327332 else {
328- char * p ;
329-
330333 GetModuleFileName (NULL , homedir , 1024 );
331- p = strrchr (homedir , '\\' );
334+ char * p = strrchr (homedir , '\\' );
332335 * p = '\0' ;
333336 strcat (homedir , "\\" );
334337
0 commit comments