int init_smg_module (void) { if ((-1 == SLadd_intrin_fun_table (Smg_Intrinsics, "__SMG__")) || (-1 == SLadd_intrin_var_table (Smg_Variables, NULL)) || (-1 == SLadd_iconstant_table (Smg_Constants, NULL))) return -1; SLtt_get_terminfo (); Smg_Initialized = 0; return 0; }
int init_miscio_module_ns (char *ns_name) { SLang_NameSpace_Type *ns; SLang_NameSpace_Type *pub_ns; if (NULL == (ns = SLns_create_namespace (ns_name))) return isis_trace_return(-1); if (NULL == (pub_ns = SLns_create_namespace (Isis_Public_Namespace_Name))) return isis_trace_return(-1); if ((-1 == SLns_add_intrin_fun_table (ns, Misc_Intrinsics, NULL)) || (-1 == SLns_add_intrin_var_table (pub_ns, Misc_Intrin_Vars, NULL)) || (-1 == SLadd_intrin_var_table (Global_Intrin_Vars, NULL)) || (-1 == SLns_add_iconstant_table (ns, Misc_Intrin_Const, NULL))) return isis_trace_return(-1); return 0; }
int SLang_init_slang (void) /*{{{*/ { char name[3]; unsigned int i; SLFUTURE_CONST char **s; static SLFUTURE_CONST char *sys_defines [] = { #if defined(__os2__) "OS2", #endif #if defined(__MSDOS__) "MSDOS", #endif #if defined(__WIN16__) "WIN16", #endif #if defined (__WIN32__) "WIN32", #endif #if defined(__NT__) "NT", #endif #if defined (VMS) "VMS", #endif #ifdef REAL_UNIX_SYSTEM "UNIX", #endif #if SLANG_HAS_FLOAT "SLANG_DOUBLE_TYPE", #endif NULL }; if (-1 == _pSLerr_init ()) return -1; if (-1 == _pSLregister_types ()) return -1; if ((-1 == SLadd_intrin_fun_table(SLang_Basic_Table, NULL)) || (-1 == SLadd_intrin_var_table (Intrin_Vars, NULL)) || (-1 == _pSLang_init_slstrops ()) || (-1 == _pSLang_init_sltime ()) || (-1 == _pSLang_init_sllist ()) || (-1 == _pSLstruct_init ()) #if SLANG_HAS_ASSOC_ARRAYS || (-1 == SLang_init_slassoc ()) #endif #if SLANG_HAS_BOSEOS || (-1 == _pSLang_init_boseos ()) #endif || (-1 == _pSLang_init_exceptions ()) ) return -1; /* More nonsense for the windoze loader */ if ((-1 == SLadd_intrinsic_variable ("_NARGS", &SLang_Num_Function_Args, SLANG_INT_TYPE, 1)) || (-1 == SLadd_intrinsic_variable ("_traceback", &SLang_Traceback, SLANG_INT_TYPE, 0)) || (-1 == SLadd_intrinsic_variable ("_slang_version", &SLang_Version, SLANG_INT_TYPE, 1)) || (-1 == SLadd_intrinsic_variable ("_slang_version_string", &SLang_Version_String, SLANG_STRING_TYPE, 1)) || (-1 == SLadd_intrinsic_variable ("_slang_doc_dir", &SLang_Doc_Dir, SLANG_STRING_TYPE, 1))) return -1; SLadd_global_variable (SLANG_SYSTEM_NAME); s = sys_defines; while (*s != NULL) { if (-1 == SLdefine_for_ifdef (*s)) return -1; s++; } /* give temp global variables $0 --> $9 */ name[2] = 0; name[0] = '$'; for (i = 0; i < 10; i++) { name[1] = (char) (i + '0'); SLadd_global_variable (name); } SLang_init_case_tables (); /* Now add a couple of macros */ SLang_load_string (".(_NARGS 1 - Sprintf error)verror"); SLang_load_string (".(_NARGS 1 - Sprintf message)vmessage"); #if SLANG_HAS_SIGNALS if (-1 == SLang_add_interrupt_hook (_pSLang_check_signals_hook, NULL)) return -1; #endif if ((SLang_Doc_Dir != NULL) && (*SLang_Doc_Dir != 0)) { char *docfile = SLpath_dircat (SLang_Doc_Dir, "slangfun.txt"); /* NULL ok */ (void) add_doc_file (docfile); SLfree (docfile); } if (_pSLang_Error) return -1; return 0; }