fix argv && os_argv
This commit is contained in:
parent
86a79e2cab
commit
fca75670bc
20
C/stdpreds.c
20
C/stdpreds.c
@ -1526,6 +1526,18 @@ mk_argc_list( USES_REGS1 )
|
|||||||
return(t);
|
return(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Term
|
||||||
|
mk_os_argc_list( USES_REGS1 )
|
||||||
|
{
|
||||||
|
int i =0;
|
||||||
|
Term t = TermNil;
|
||||||
|
for (i = 0 ; i < GLOBAL_argc; i++) {
|
||||||
|
char *arg = GLOBAL_argv[i];
|
||||||
|
t = MkPairTerm(MkAtomTerm(Yap_LookupAtom(arg)),t);
|
||||||
|
}
|
||||||
|
return(t);
|
||||||
|
}
|
||||||
|
|
||||||
static Int
|
static Int
|
||||||
p_argv( USES_REGS1 )
|
p_argv( USES_REGS1 )
|
||||||
{
|
{
|
||||||
@ -1533,6 +1545,13 @@ p_argv( USES_REGS1 )
|
|||||||
return Yap_unify(t, ARG1);
|
return Yap_unify(t, ARG1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Int
|
||||||
|
p_os_argv( USES_REGS1 )
|
||||||
|
{
|
||||||
|
Term t = mk_os_argc_list( PASS_REGS1 );
|
||||||
|
return Yap_unify(t, ARG1);
|
||||||
|
}
|
||||||
|
|
||||||
static Int
|
static Int
|
||||||
p_executable( USES_REGS1 )
|
p_executable( USES_REGS1 )
|
||||||
{
|
{
|
||||||
@ -1954,6 +1973,7 @@ consisting of just a number.
|
|||||||
Yap_InitCPred("$statistics_db_size", 4, p_statistics_db_size, SafePredFlag|SyncPredFlag);
|
Yap_InitCPred("$statistics_db_size", 4, p_statistics_db_size, SafePredFlag|SyncPredFlag);
|
||||||
Yap_InitCPred("$statistics_lu_db_size", 5, p_statistics_lu_db_size, SafePredFlag|SyncPredFlag);
|
Yap_InitCPred("$statistics_lu_db_size", 5, p_statistics_lu_db_size, SafePredFlag|SyncPredFlag);
|
||||||
Yap_InitCPred("$argv", 1, p_argv, SafePredFlag);
|
Yap_InitCPred("$argv", 1, p_argv, SafePredFlag);
|
||||||
|
Yap_InitCPred("$os_argv", 1, p_os_argv, SafePredFlag);
|
||||||
Yap_InitCPred("$executable", 1, p_executable, SafePredFlag);
|
Yap_InitCPred("$executable", 1, p_executable, SafePredFlag);
|
||||||
Yap_InitCPred("$runtime", 2, p_runtime, SafePredFlag|SyncPredFlag);
|
Yap_InitCPred("$runtime", 2, p_runtime, SafePredFlag|SyncPredFlag);
|
||||||
Yap_InitCPred("$cputime", 2, p_cputime, SafePredFlag|SyncPredFlag);
|
Yap_InitCPred("$cputime", 2, p_cputime, SafePredFlag|SyncPredFlag);
|
||||||
|
@ -77,7 +77,7 @@ we want to be able to have a lot of flags and don't harm thread_create/3
|
|||||||
too much.
|
too much.
|
||||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||||
|
|
||||||
static void setArgvPrologFlag(const char *flag, int argc, char **argv);
|
//static void setArgvPrologFlag(const char *flag, int argc, char **argv);
|
||||||
static void setTZPrologFlag(void);
|
static void setTZPrologFlag(void);
|
||||||
static void setVersionPrologFlag(void);
|
static void setVersionPrologFlag(void);
|
||||||
static void initPrologFlagTable(void);
|
static void initPrologFlagTable(void);
|
||||||
@ -1243,11 +1243,14 @@ initPrologFlags(void)
|
|||||||
setTZPrologFlag();
|
setTZPrologFlag();
|
||||||
setOSPrologFlags();
|
setOSPrologFlags();
|
||||||
setVersionPrologFlag();
|
setVersionPrologFlag();
|
||||||
|
#ifndef __YAP_PROLOG__
|
||||||
setArgvPrologFlag("os_argv", GD->cmdline.os_argc, GD->cmdline.os_argv);
|
setArgvPrologFlag("os_argv", GD->cmdline.os_argc, GD->cmdline.os_argv);
|
||||||
setArgvPrologFlag("argv", GD->cmdline.appl_argc, GD->cmdline.appl_argv);
|
setArgvPrologFlag("argv", GD->cmdline.appl_argc, GD->cmdline.appl_argv);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __YAP_PROLOG__
|
||||||
static void
|
static void
|
||||||
setArgvPrologFlag(const char *flag, int argc, char **argv)
|
setArgvPrologFlag(const char *flag, int argc, char **argv)
|
||||||
{ GET_LD
|
{ GET_LD
|
||||||
@ -1267,7 +1270,7 @@ setArgvPrologFlag(const char *flag, int argc, char **argv)
|
|||||||
setPrologFlag(flag, FT_TERM, l);
|
setPrologFlag(flag, FT_TERM, l);
|
||||||
PL_discard_foreign_frame(fid);
|
PL_discard_foreign_frame(fid);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
setTZPrologFlag(void)
|
setTZPrologFlag(void)
|
||||||
|
11
pl/flags.yap
11
pl/flags.yap
@ -1049,6 +1049,15 @@ yap_flag(toplevel_print_options,Opts) :-
|
|||||||
yap_flag(host_type,X) :-
|
yap_flag(host_type,X) :-
|
||||||
'$host_type'(X).
|
'$host_type'(X).
|
||||||
|
|
||||||
|
yap_flag(host_type,X) :-
|
||||||
|
'$host_type'(X).
|
||||||
|
|
||||||
|
yap_flag(argv,X) :-
|
||||||
|
'$argv'(X).
|
||||||
|
|
||||||
|
yap_flag(os_argv,X) :-
|
||||||
|
'$os_argv'(X).
|
||||||
|
|
||||||
yap_flag(float_format,X) :-
|
yap_flag(float_format,X) :-
|
||||||
var(X), !,
|
var(X), !,
|
||||||
'$float_format'(X).
|
'$float_format'(X).
|
||||||
@ -1118,6 +1127,7 @@ yap_flag(max_threads,X) :-
|
|||||||
|
|
||||||
'$yap_system_flag'(agc_margin).
|
'$yap_system_flag'(agc_margin).
|
||||||
'$yap_system_flag'(arithmetic_exceptions).
|
'$yap_system_flag'(arithmetic_exceptions).
|
||||||
|
'$yap_system_flag'(argv).
|
||||||
'$yap_system_flag'(chr_toplevel_show_store).
|
'$yap_system_flag'(chr_toplevel_show_store).
|
||||||
'$yap_system_flag'(debugger_print_options).
|
'$yap_system_flag'(debugger_print_options).
|
||||||
'$yap_system_flag'(discontiguous_warnings).
|
'$yap_system_flag'(discontiguous_warnings).
|
||||||
@ -1144,6 +1154,7 @@ yap_flag(max_threads,X) :-
|
|||||||
'$yap_system_flag'(max_threads).
|
'$yap_system_flag'(max_threads).
|
||||||
'$yap_system_flag'(n_of_integer_keys_in_db).
|
'$yap_system_flag'(n_of_integer_keys_in_db).
|
||||||
'$yap_system_flag'(open_expands_filename).
|
'$yap_system_flag'(open_expands_filename).
|
||||||
|
'$yap_system_flag'(os_argv).
|
||||||
'$yap_system_flag'(profiling).
|
'$yap_system_flag'(profiling).
|
||||||
'$yap_system_flag'(prompt_alternatives_on).
|
'$yap_system_flag'(prompt_alternatives_on).
|
||||||
'$yap_system_flag'(redefine_warnings).
|
'$yap_system_flag'(redefine_warnings).
|
||||||
|
Reference in New Issue
Block a user